版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理及接口技術(shù)</p><p><b> 課程設(shè)計(jì)報(bào)告 </b></p><p> 課題: 8路搶答器設(shè)計(jì) </p><p> 學(xué)院: 軌道交通學(xué)院 </p><p> 專業(yè): 交通設(shè)備信息工程 &l
2、t;/p><p> 班級(jí): </p><p> 姓名: </p><p> 成員: </p><p> 學(xué)號(hào):
3、 </p><p> 指導(dǎo)老師: </p><p><b> 2014年1月</b></p><p><b> 任 務(wù) 書</b></p><p> 課題: 8路搶答器設(shè)計(jì)</p><p><
4、b> 一、設(shè)計(jì)任務(wù)</b></p><p> 設(shè)計(jì)一個(gè)可供8組同時(shí)使用的搶答器。</p><p> 1.設(shè)計(jì)系統(tǒng)的硬件和軟件設(shè)計(jì)。</p><p> 2.要求顯示搶答的結(jié)果,并有45s的答題時(shí)間顯示。</p><p><b> 二、基本要求</b></p><p>
5、1、 設(shè)計(jì)系統(tǒng)的硬件和軟件設(shè)計(jì);</p><p> 2、撰寫課程設(shè)計(jì)報(bào)告。</p><p> 3、課程設(shè)計(jì)報(bào)告由封面、設(shè)計(jì)任務(wù)書、目錄、摘要、正文、參考文獻(xiàn)、附錄等部分組成。</p><p> 4、封面可自行設(shè)計(jì),應(yīng)包含課程設(shè)計(jì)名稱及設(shè)計(jì)題目、專業(yè)、班級(jí)、姓名、指導(dǎo)老師、設(shè)計(jì)日期等內(nèi)容。</p><p> 5、正文是設(shè)計(jì)報(bào)告的核心部分
6、。應(yīng)包含以下內(nèi)容:(1)概述所做課題的意義、本人所做的工作及系統(tǒng)的主要功能;(2)硬件電路設(shè)計(jì)及描述;(3)軟件設(shè)計(jì)流程圖及描述;(4)源程序代碼(要有注釋);(5)體會(huì)和建議等。</p><p><b> 摘 要</b></p><p> 搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識(shí)競(jìng)賽場(chǎng)合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低。作為一個(gè)
7、單位,如果專門購(gòu)一臺(tái)搶答器雖然在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長(zhǎng)期存放使(電子器件的)搶答器損壞,再購(gòu)置的麻煩和及時(shí)性就會(huì)影響活動(dòng)的開展,因此設(shè)計(jì)了本搶答器。本文設(shè)計(jì)出以AT89C51單片機(jī)為核心的八路搶答器,采用了數(shù)字顯示器直接指示,自動(dòng)鎖存顯示結(jié)果,并自動(dòng)復(fù)位的設(shè)計(jì)思想,它能根據(jù)不同的搶答輸入信號(hào),經(jīng)過單片機(jī)的控制處理并產(chǎn)生不同的與輸入信號(hào)相對(duì)應(yīng)的輸出信號(hào),最后通過LED數(shù)碼管顯示相應(yīng)的路數(shù),即使兩組的搶答時(shí)間相差幾微
8、秒,也可分辨出是哪組優(yōu)先按下的按鍵,充分利用了單片機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、功能強(qiáng)大、可靠性好、實(shí)用性強(qiáng)的特點(diǎn)。</p><p> 本設(shè)計(jì)是以八路搶答為基本理念??紤]到依需設(shè)定限時(shí)回答的功能,利用</p><p> AT89C51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。用開關(guān)
9、做鍵盤輸出,揚(yáng)聲器發(fā)生提示。同時(shí)系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;</p><p> 有45s的答題時(shí)間顯示;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時(shí)間和回答問題時(shí)間倒計(jì)時(shí)顯示,滿時(shí)后系統(tǒng)計(jì)時(shí)自動(dòng)復(fù)位及主控強(qiáng)制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。</p><p> 關(guān)鍵詞: 搶答器 單片機(jī) LED數(shù)碼顯示管
10、 計(jì)時(shí)</p><p><b> 目 錄</b></p><p><b> 1.概述1</b></p><p><b> 2.方案比較2</b></p><p><b> 2.1 方案A2</b></p><p>&
11、lt;b> 2.2 方案B3</b></p><p><b> 3.硬件設(shè)計(jì)4</b></p><p> 3.1原理圖的確定4</p><p> 3.2搶答器電路4</p><p> 3.3時(shí)序控制電路設(shè)計(jì)5</p><p> 3.4復(fù)位電路的設(shè)計(jì)5<
12、;/p><p> 3.5晶振電路的設(shè)計(jì)6</p><p> 3.6報(bào)警電路設(shè)計(jì)7</p><p> 3.7選手搶答鍵(矩陣式鍵盤)7</p><p> 3.8顯示與顯示驅(qū)動(dòng)電路8</p><p><b> 4.程序設(shè)計(jì)8</b></p><p> 4.1系
13、統(tǒng)主程序設(shè)計(jì)8</p><p> 4.2顯示搶答違規(guī)流程10</p><p> 4.3搶答成功流程圖10</p><p> 4.4程序清單10</p><p><b> 5.調(diào)試結(jié)果11</b></p><p><b> 6.元件清單12</b><
14、/p><p><b> 7.小結(jié)13</b></p><p><b> 參考文獻(xiàn)14</b></p><p><b> 附錄一15</b></p><p><b> 附錄二23</b></p><p><b>
15、 8路搶答器設(shè)計(jì)</b></p><p> 摘要: 本設(shè)計(jì)是以八路搶答為基本理念。考慮到依需設(shè)定限時(shí)回答的功能,利用AT89C51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)生提示。同時(shí)系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無
16、效;</p><p> 有45s的答題時(shí)間顯示;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時(shí)間和回答問題時(shí)間倒計(jì)時(shí)顯示,滿時(shí)后系統(tǒng)計(jì)時(shí)自動(dòng)復(fù)位及主控強(qiáng)制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。</p><p> 關(guān)鍵詞:搶答器 單片機(jī) LED數(shù)碼顯示管 計(jì)時(shí)</p><p><b> 1.概述</b><
17、;/p><p> 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)是學(xué)生綜合運(yùn)用所學(xué)知識(shí),全面掌握單片微型計(jì)算機(jī)及其接口的工作原理、編程和使用方法的重要實(shí)踐環(huán)節(jié)。通過獨(dú)立或協(xié)作提出并論證設(shè)計(jì)方案,進(jìn)行軟、硬件調(diào)試,最后獲得正確的運(yùn)行結(jié)果,可以加深和鞏固對(duì)理論教學(xué)和實(shí)驗(yàn)教學(xué)內(nèi)容的掌握,進(jìn)一步建立計(jì)算機(jī)應(yīng)用系統(tǒng)整體概念,初步掌握單片機(jī)軟、硬件開發(fā)方法。</p><p> 根據(jù)單片機(jī)原理及應(yīng)用課程的要求,主要進(jìn)行兩個(gè)方
18、面的設(shè)計(jì),即單片機(jī)最小系統(tǒng)和存儲(chǔ)器擴(kuò)展設(shè)計(jì)、接口技術(shù)應(yīng)用設(shè)計(jì)。其中,單片機(jī)最小系統(tǒng)主要要求學(xué)生熟悉單片機(jī)的內(nèi)部結(jié)構(gòu)和引腳功能、引腳的使用、復(fù)位電路、時(shí)鐘電路、4個(gè)并行接口和一個(gè)串行接口的實(shí)際應(yīng)用,從而可構(gòu)成最小應(yīng)用系統(tǒng),并編程進(jìn)行簡(jiǎn)單使用。</p><p> 存儲(chǔ)器擴(kuò)展設(shè)計(jì)要求學(xué)生掌握常用半導(dǎo)體芯片與單片機(jī)的接口,如EPROM存儲(chǔ)器用作外部程序存儲(chǔ)器時(shí)與單片機(jī)的連接關(guān)系,SRAM存儲(chǔ)器用作外部數(shù)據(jù)存儲(chǔ)器時(shí)與單片
19、機(jī)的連接關(guān)系,E2PROM存儲(chǔ)器用作外部程序/數(shù)據(jù)存儲(chǔ)器時(shí)與單片機(jī)的連接關(guān)系。能合理分配和使用單片機(jī)的內(nèi)部和外部存儲(chǔ)器,編程實(shí)現(xiàn)正常的讀寫功能。</p><p> 本文設(shè)計(jì)出以AT89C51單片機(jī)為核心的八路搶答器,采用了數(shù)字顯示器直接指示,自動(dòng)鎖存顯示結(jié)果,并自動(dòng)復(fù)位的設(shè)計(jì)思想,它能根據(jù)不同的搶答輸入信號(hào),經(jīng)過單片機(jī)的控制處理并產(chǎn)生不同的與輸入信號(hào)相對(duì)應(yīng)的輸出信號(hào),最后通過LED數(shù)碼管顯示相應(yīng)的路數(shù),即使兩組
20、的搶答時(shí)間相差幾微秒,也可分辨出是哪組優(yōu)先按下的按鍵,充分利用了單片機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、功能強(qiáng)大、可靠性好、實(shí)用性強(qiáng)的特點(diǎn)。</p><p><b> 2.方案比較</b></p><p><b> 2.1 方案A</b></p><p> 該系統(tǒng)采用51系列單片機(jī)AT89C51作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號(hào)
21、識(shí)別以及顯示功能的實(shí)現(xiàn)。由于用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來方便、簡(jiǎn)單并且單片機(jī)周圍的輔助電路也比較少,便于控制和實(shí)現(xiàn)。整個(gè)系統(tǒng)具有極其靈活的可編程性,能方便地對(duì)系統(tǒng)進(jìn)行功能的擴(kuò)張和更改。MCS-51單片機(jī)特點(diǎn)如下:</p><p> <1>可靠性好:?jiǎn)纹瑱C(jī)按照工業(yè)控制要求設(shè)計(jì),抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號(hào)通道都在同一芯片,因此可靠性高,易擴(kuò)充。
22、</p><p> <2>單片機(jī)有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的輸入及輸出引腳,可擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)。</p><p> <3> 控制功能強(qiáng):?jiǎn)纹瑱C(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。其原理框圖如下:</p><p><b> 2.2 方案B</b></p
23、><p> 根據(jù)PLC智能搶答器的控制要求,應(yīng)用程序采用一體化結(jié)構(gòu)。通過PLC控制程序來實(shí)現(xiàn)整體的運(yùn)行,系統(tǒng)僅需要少量的按鈕和接口,一般的PLC配置都可運(yùn)行。該系統(tǒng)本著簡(jiǎn)單易懂、可靠性強(qiáng)、適應(yīng)性強(qiáng)等方面進(jìn)行設(shè)計(jì)。在搶答時(shí)只需按動(dòng)按鈕即可數(shù)碼管在系統(tǒng)程序的控制下自動(dòng)顯示組號(hào)以及倒計(jì)時(shí)時(shí)間。安全、可靠、省時(shí)、省力、價(jià)格便宜。</p><p> 控制軟件應(yīng)用GX Developer編程軟件,采用
24、梯形圖語(yǔ)言編寫,工作系統(tǒng)自動(dòng)控制流程框圖(如下圖),根據(jù)系統(tǒng)控制要求,進(jìn)行針對(duì)性設(shè)計(jì),要充分保證系統(tǒng)的安全,保證整個(gè)系統(tǒng)的運(yùn)行安全可靠。自動(dòng)條件下,必須復(fù)位在滿足自動(dòng)條件下才能進(jìn)行自動(dòng)程序,當(dāng)中充分應(yīng)用各個(gè)過程的互鎖來保證系統(tǒng)的安全。如下圖,有主程序和若干子程序組成,其整體設(shè)計(jì)工作系統(tǒng)自動(dòng)控制流程圖如下圖所示:</p><p> 考慮到我們課程設(shè)計(jì)的目的之一是讓我們更加熟悉單片機(jī)的匯編語(yǔ)言和結(jié)構(gòu)規(guī)則,以及綜合各
25、種因素,我們選擇了方案A作為我們的實(shí)驗(yàn)方案。</p><p><b> 3.硬件設(shè)計(jì)</b></p><p><b> 3.1原理圖的確定</b></p><p> 單片機(jī)實(shí)現(xiàn)搶答的原理圖:</p><p><b> 搶答電路的接口電路</b></p>&
26、lt;p><b> 3.2搶答器電路</b></p><p> 參考電路如上圖所示。該電路完成兩個(gè)功能:一是分辨出選手按鍵的先后,并鎖存優(yōu)先搶答者的編號(hào),同時(shí)譯碼顯示電路顯示編號(hào);二是禁止其他選手按鍵操作無效。如有再次搶答需由主持人將S開關(guān)重新置,“清除”然后再進(jìn)行下一次搶答。</p><p> 3.3時(shí)序控制電路設(shè)計(jì)</p><p&g
27、t; 時(shí)序控制電路是搶答器設(shè)計(jì)的關(guān)鍵,它要完成以下功能:</p><p> 主持人將控制開關(guān)撥到“開始”位置時(shí),揚(yáng)聲器發(fā)聲,搶答器電路和定時(shí)電路進(jìn)入正確搶答工作狀態(tài)。</p><p> 當(dāng)參賽選手按下?lián)尨疰I時(shí),揚(yáng)聲器發(fā)聲,搶答電路和定時(shí)電路停止工作。</p><p> 3.4復(fù)位電路的設(shè)計(jì)</p><p> 外部中斷和內(nèi)部中斷并存,
28、單片機(jī)硬件復(fù)位端,只要持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,硬件復(fù)位后的各狀態(tài)可知寄存器以及存儲(chǔ)器的值都恢復(fù)到了初始值,因?yàn)楸驹O(shè)計(jì)中功能中有倒計(jì)時(shí)時(shí)間的記憶功能,所以不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位,只能用軟件復(fù)位,軟件復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完之后,將程序通過一條跳轉(zhuǎn)指令讓它完成復(fù)位。復(fù)位電路如下圖所示:</p><p><b> 復(fù)位電路原理圖</b></p><p>
29、 該復(fù)位電路采用上電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種復(fù)位方式,圖中網(wǎng)絡(luò)標(biāo)號(hào)所指9連接到單片機(jī)的復(fù)位引腳。要實(shí)現(xiàn)復(fù)位只需在,51系列單片機(jī)的RESET引腳上加上5ms的高電平就可以了。上電復(fù)位是利用電容的充電來實(shí)現(xiàn)的,即上電瞬間RESET端的電位與Vcc相同,隨著電容上儲(chǔ)能增加,電容電壓也逐漸增大,充電電流減小,RESET端的電位。這樣就會(huì)建立一個(gè)脈沖電壓,調(diào)節(jié)電容與電阻的大小可對(duì)脈沖的持續(xù)時(shí)間進(jìn)行調(diào)節(jié)。通常若采用12MHz的晶振時(shí),復(fù)位元件參數(shù)
30、為22μF的電解電容和10kΩ的電阻。按鈕復(fù)位電路是通過按下復(fù)位按鈕</p><p> 時(shí),電源對(duì)RESET端維持兩個(gè)機(jī)器周期的高電平實(shí)現(xiàn)復(fù)位的。</p><p> 3.5晶振電路的設(shè)計(jì)</p><p> MSC-51單片機(jī)的定時(shí)控制功能是用時(shí)鐘電路和振蕩器完成的,而根據(jù)硬件電路的不同,連接方式分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)中采用內(nèi)部時(shí)鐘方式。<
31、/p><p> 單片機(jī)內(nèi)部有一個(gè)反相放大器,XTAL1、XTAL2分別為反相放大器的輸入端和輸出端,外接定時(shí)反饋元件組成振蕩器(內(nèi)部時(shí)鐘方式),產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部各元件。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。</p><p> 一般來說單片機(jī)內(nèi)部有一個(gè)帶反饋的線性反相放大器,外界晶振(或接陶瓷振蕩器)和電容就可組成振蕩器,如圖2-2所示。加電以后延時(shí)一段時(shí)間(約
32、10ms)振蕩器產(chǎn)生時(shí)鐘,不受軟件控制,圖中Y1為晶振,震蕩產(chǎn)生的時(shí)鐘頻率主要由Y1確定。電容C1,C2的作用有兩個(gè):一是幫助振蕩器起振,二是對(duì)振蕩器的頻率起微調(diào)作用,典型值為30pF。</p><p> 晶振電路的設(shè)計(jì)如圖2-2所示:</p><p><b> 晶振電路原理圖</b></p><p><b> 3.6報(bào)警電路設(shè)
33、計(jì)</b></p><p> 報(bào)警電路用于報(bào)警,當(dāng)遇到報(bào)警信號(hào)時(shí),發(fā)出警報(bào)。一般喇叭是一種電感性圖5報(bào)警電路圖。8951驅(qū)動(dòng)喇叭的信號(hào)為各種頻率的脈沖。因此,最簡(jiǎn)單的喇叭驅(qū)動(dòng)方式就是利用達(dá)林頓晶體管,或者以兩個(gè)常用的小晶體管連接成達(dá)林頓架勢(shì)。在右圖中電阻R為限流電阻,在此利用晶體管的高電流增益,以達(dá)到電路快速飽和的目的。不過,如果要由P0輸出到此電路,還需要連接一個(gè)10K的上拉電阻。</p&g
34、t;<p> 選手在設(shè)定的時(shí)間內(nèi)搶答時(shí),實(shí)現(xiàn):優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次作"清除"和"開始"狀態(tài)開關(guān)。</p><p><b> 報(bào)警電路圖</b></p><p> 3.7選手搶答鍵(矩陣式鍵盤)<
35、;/p><p> AT89C51的P1口做一個(gè)為選手搶答的輸入按鍵引腳,P1.0至P1.7輪流輸出低電位,給每一個(gè)選手編號(hào)1至8,當(dāng)選手按下按鈕時(shí),P1口個(gè)端口的電平變化從P1口輸入,經(jīng)單片機(jī)處理后從P0輸出由數(shù)碼管顯示搶答者編號(hào)。</p><p> 3.8顯示與顯示驅(qū)動(dòng)電路</p><p> 此電路包括顯示和驅(qū)動(dòng),顯示采用數(shù)碼管,驅(qū)動(dòng)用P2口, 違規(guī)者編號(hào)、搶答
36、30秒倒計(jì)時(shí)、正常搶答者編號(hào)和回答問題時(shí)間60秒倒計(jì)時(shí),數(shù)碼管采用動(dòng)態(tài)</p><p> 顯示。驅(qū)動(dòng)電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動(dòng)數(shù)碼管使其顯示數(shù)字。在+5V電壓下接10k的電阻,保證正常壓降。</p><p><b> 4.程序設(shè)計(jì)</b></p><p> 4.1系統(tǒng)主程序設(shè)
37、計(jì)</p><p> 為了能夠達(dá)到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時(shí)間,因而在編開始搶答前的程序得先編寫設(shè)定時(shí)間的程序,當(dāng)時(shí)間設(shè)好了之后,主持人發(fā)布搶答命令按下P1.7按鍵,程序開始打開定時(shí)中斷開始倒計(jì)時(shí),然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序。當(dāng)在掃描到有人按下了答題鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。</p><p><b>
38、系統(tǒng)主程序流程</b></p><p> 4.2顯示搶答違規(guī)流程</p><p> 4.3搶答成功流程圖</p><p><b> 4.4程序清單</b></p><p><b> 詳見附錄一。</b></p><p><b> 5.調(diào)試結(jié)果&
39、lt;/b></p><p> 試驗(yàn)的程序通過Keil軟件編譯,產(chǎn)生HEX文件如圖4-1所示:</p><p> 程序在Keil軟件上編譯結(jié)果</p><p> 通過Proteus進(jìn)行仿真,如仿真結(jié)果所示,按下開始后,數(shù)碼管開始倒計(jì)時(shí),仿真結(jié)果如圖4-2所示。</p><p> Proteus仿真的結(jié)果</p>&
40、lt;p> 當(dāng)有選手按下按扭時(shí),數(shù)碼管顯示選手號(hào)碼并開始倒計(jì)時(shí),如下圖所示</p><p> Proteus仿真的結(jié)果</p><p><b> 6.元件清單</b></p><p><b> 7.小結(jié)</b></p><p> 經(jīng)過將近一周的單片機(jī)課程設(shè)計(jì),終于完成了八路搶答器的設(shè)
41、計(jì),雖然沒有完全達(dá)到設(shè)計(jì)要求,但還是收獲良多。通過這次課程設(shè)計(jì),使我更進(jìn)一步地熟悉了單片機(jī)芯片的工作原理和其具體的使用方法。單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,這鍛煉了自己獨(dú)立思考問題的能力和通過查看相關(guān)資料來解決問題的習(xí)慣。還有了解了課程設(shè)計(jì)的一般步驟,和設(shè)計(jì)中應(yīng)注意的問題。</p><p> 設(shè)計(jì)不僅是對(duì)前面所學(xué)知識(shí)的一種檢驗(yàn),而且也是對(duì)自己能力的一種提高。下面我對(duì)整個(gè)設(shè)計(jì)的過程
42、做一下簡(jiǎn)單的總結(jié)。第一,接到任務(wù)以后進(jìn)行選題。選題是設(shè)計(jì)的開端,選擇恰當(dāng)?shù)?、感興趣的題目,這對(duì)于整個(gè)設(shè)計(jì)是否能夠順利進(jìn)行關(guān)系極大。好比走路,這開始的第一步是具有決定意義的,第一步邁向何方,需要慎重考慮。否則,就可能走許多彎路、費(fèi)許多周折,甚至南轅北轍,難以到達(dá)目的地。因此,選題時(shí)一定要考慮好了。第二,題目確定后就是找資料了。查資料是做設(shè)計(jì)的前期準(zhǔn)備工作,不管通過哪種方式查的資料都是有利用價(jià)值的,要一一記錄下來以備后用。第三,通過上面的過
43、程,已經(jīng)積累了不少資料,對(duì)所選的題目也大概有了一些了解,這一步就是在這樣一個(gè)基礎(chǔ)上,綜合已有的資料來更透徹的分析題目。第四,有了研究方向,就應(yīng)該動(dòng)手實(shí)現(xiàn)了。其實(shí)以前的三步都是為這一步作的鋪墊。通過這次設(shè)計(jì),我對(duì)數(shù)字電路設(shè)計(jì)中的邏輯關(guān)系等有了一定的認(rèn)識(shí),對(duì)以前學(xué)的數(shù)字電路又有了一定的新認(rèn)識(shí),溫習(xí)了以前學(xué)的知識(shí),就像人們常說的溫故而知新嘛,但在設(shè)計(jì)的過程中,遇到了很多的問題,有一些知識(shí)都已經(jīng)不太清楚了,但是通過一些資料又重新的溫習(xí)了一下數(shù)字
44、電路部分的內(nèi)容。在這次設(shè)計(jì)中也使</p><p> 在此要感謝盧毓俊老師,感謝老師給我這樣的機(jī)會(huì)鍛煉。在整個(gè)設(shè)計(jì)過程中我懂得了許多東西,也培養(yǎng)了我獨(dú)立工作的能力,樹立了對(duì)自己工作能力的信心,相信會(huì)對(duì)今后的學(xué)習(xí)工作生活有非常重要的影響。而且大大提高了動(dòng)手的能力,使我充分體會(huì)到了在創(chuàng)造過程中的探索的艱難和成功的喜悅。雖然這個(gè)項(xiàng)目還不是很完善,但是在設(shè)計(jì)過程中所學(xué)到的東西是這次設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。&l
45、t;/p><p><b> 參考文獻(xiàn)</b></p><p> [1] 吳亦峰、陳德為.單片機(jī)原理與接口技術(shù). 北京:電子工業(yè)出版社.2005. </p><p> [2] 周潤(rùn)景、張麗娜.基于PROTEUS的電路及單片機(jī)仿真. 北京: 航空航天大學(xué)出版社.2007.</p><p> [3] 胡耀輝、朱朝華等.單片
46、機(jī)系統(tǒng)開發(fā)實(shí)例經(jīng)典.北京:冶金工業(yè)出版社.2006.</p><p> [4] 張迎新.單片機(jī)初級(jí)教程. 北京: 航空航天大學(xué)出版社.2007. </p><p><b> 附錄一</b></p><p><b> 源程序:</b></p><p> OK EQU 20H
47、 ;搶答開始標(biāo)志位</p><p> RING EQU 22H ;響鈴標(biāo)志位</p><p> DATA0 EQU 36H ;搶答按鍵口數(shù)據(jù)存放地址</p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b><
48、;/p><p><b> ORG 0003H</b></p><p> AJMP INT0SUB</p><p><b> ORG 000BH</b></p><p> AJMP T0INT</p><p><b> ORG 0013H</b>&l
49、t;/p><p> AJMP INT1SUB</p><p><b> ORG 001BH</b></p><p> AJMP T1INT</p><p><b> ORG 0040H</b></p><p> MAIN: MOV R1,#30 ;初設(shè)搶
50、答時(shí)間為30s</p><p> MOV R2,#45 ;初設(shè)答題時(shí)間為45s</p><p> MOV TMOD,#11H ;設(shè)置未定時(shí)器/模式1</p><p> MOV TH0,#0F0H</p><p> MOV TL0,#0FFH ;越高發(fā)聲頻率越高,越尖</p><p>
51、 MOV TH1,#3CH</p><p> MOV TL1,#0B0H ;50ms為一次溢出中斷</p><p><b> SETB EA</b></p><p><b> SETB ET0</b></p><p><b> SETB ET1</b><
52、/p><p><b> SETB EX0</b></p><p> SETB EX1 ;允許四個(gè)中斷,T0/T1/INT0/INT1</p><p><b> CLR OK</b></p><p><b> CLR RING</b></p>
53、<p><b> SETB TR1</b></p><p> SETB TR0 ;一開始就運(yùn)行定時(shí)器,以開始顯示PPP.如果想重新計(jì)數(shù),重置TH1/TL1就可以了</p><p><b> ;查詢程序</b></p><p> START: MOV DATA0,#0FFH
54、 ;初始化</p><p> MOV R5,#0BH</p><p> MOV R4,#0BH</p><p> MOV R3,#0BH</p><p> ACALL DISPLAY ;未開始搶答時(shí)候顯示PPP</p><p> JNB P3.3 ,INT0SUB</p&
55、gt;<p> JNB P3.4,TZ1 ;倒計(jì)時(shí)調(diào)整</p><p> JB P3.0,NEXT ;ddddddd</p><p> ACALL DELAY</p><p> JB P3.0,NEXT ;去抖動(dòng),如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢&l
56、t;/p><p> SETB EX0 ;開放INT0 </p><p> ACALL BARK ;按鍵發(fā)聲</p><p><b> MOV A,R1</b></p><p> MOV R6,A ;送R1->R6,因?yàn)镽
57、1中保存了搶答時(shí)間</p><p> SETB OK ;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答(在使用錦囊時(shí)用作判斷是搶答倒計(jì)時(shí)還是回答倒計(jì)時(shí))</p><p> MOV R3,#0AH ;搶答只顯示計(jì)時(shí),滅號(hào)數(shù)</p><p> AJMP COUNT
58、 ;進(jìn)入倒計(jì)時(shí)程序,"查詢有效搶答的程序"在COUNT里面</p><p> NEXT: JNB P1.0,FALSE1</p><p> JNB P1.1,FALSE2</p><p> JNB P1.2,FALSE3</p><p> JNB P1.3,FALSE4</p><p&
59、gt; JNB P1.4,FALSE5</p><p> JNB P1.5,FALSE6</p><p> JNB P1.6,TZ1</p><p> JNB P1.7,TZ2</p><p> AJMP START</p><p> TZ1: JMP FALSE7</p><p
60、> TZ2: JMP FALSE8</p><p><b> ;非法搶答處理程序</b></p><p> FALSE1: ACALL BARK ;按鍵發(fā)聲</p><p> MOV R3,#01H</p><p> AJMP ERROR</p><p&
61、gt; FALSE2: ACALL BARK</p><p> MOV R3,#02H</p><p> AJMP ERROR</p><p> FALSE3: ACALL BARK</p><p> MOV R3,#03H</p><p> AJMP ERROR</p><p>
62、 FALSE4: ACALL BARK</p><p> MOV R3,#04H</p><p> AJMP ERROR</p><p> FALSE5: ACALL BARK</p><p> MOV R3,#05H</p><p> AJMP ERROR</p><p> FAL
63、SE6: ACALL BARK</p><p> MOV R3,#06H</p><p> AJMP ERROR</p><p> FALSE7: ACALL BARK</p><p> MOV R3,#07H</p><p> AJMP ERROR</p><p> FALSE8:
64、 ACALL BARK</p><p> MOV R3,#08H</p><p> AJMP ERROR</p><p> ;INT0(搶答時(shí)間R1調(diào)整程序)</p><p> INT0SUB: MOV A,R1</p><p> MOV B,#0AH</p><p><b>
65、; DIV AB</b></p><p><b> MOV R5,A</b></p><p><b> MOV R4,B</b></p><p> MOV R3,#0AH</p><p> ACALL DISPLAY ;先在兩個(gè)時(shí)間LED上顯示R1<
66、;/p><p> JNB P3.4,INC0 ;P3.4為+1s鍵,如按下跳到INCO</p><p> JNB P3.5,DEC0 ;P3.5為-1s鍵,如按下跳到DECO</p><p> JNB P3.1,BACK0 ;P3.1為確定鍵,如按下跳到BACKO</p>
67、;<p> AJMP INT0SUB</p><p> INC0: MOV A,R1</p><p> CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。</p><p> MOV R1,#00H</p><p> ACALL D
68、ELAY1</p><p> AJMP INT0SUB</p><p> ADD0: INC R1</p><p> ACALL DELAY1</p><p> AJMP INT0SUB</p><p> DEC0: MOV A,R1</p><p> JZ SETR1
69、 ;如果R1為0, R1就置99,</p><p><b> DEC R1</b></p><p> ACALL DELAY1</p><p> AJMP INT0SUB</p><p> SETR1: MOV R1,#63H</p><p> ACA
70、LL DELAY1</p><p> AJMP INT0SUB</p><p> BACK0: RETI </p><p> ;INT1(回答時(shí)間R2調(diào)整程序)</p><p> INT1SUB: MOV A,R2</p><p> MOV B,#0AH</p><p><b
71、> DIV AB</b></p><p><b> MOV R5,A</b></p><p><b> MOV R4,B</b></p><p> MOV R3,#0AH</p><p> ACALL DISPLAY</p><p> JNB P
72、3.4,INC1</p><p> JNB P3.5,DEC1</p><p> JNB P3.1,BACK1</p><p> AJMP INT1SUB</p><p> INC1: MOV A,R2</p><p> CJNE A,#63H,ADD1</p><p> MOV
73、 R2,#00H</p><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> ADD1: INC R2</p><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> DEC1: MOV
74、A,R2</p><p><b> JZ SETR2</b></p><p><b> DEC R2</b></p><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> SETR2: MOV R2,#63H</p
75、><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> BACK1: RETI </p><p> ;倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)</p><p> COUNT: MOV R0,#00H ;重置定時(shí)器中斷次數(shù)</p&
76、gt;<p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H ;重置定時(shí)器</p><p> RECOUNT: MOV A,R6 ;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6</p><p> MOV B,#0AH</p><p>
77、; DIV AB ;除十分出個(gè)位/十位</p><p> MOV 30H,A ;十位存于(30H)</p><p> MOV 31H,B ;個(gè)位存于(31H)</p><p> MOV R5,30H ;取十位</p>
78、;<p> MOV R4,31H ;取個(gè)位</p><p><b> MOV A,R6</b></p><p> SUBB A,#07H</p><p> JNC LARGER ;大于5s跳到LARGER,小于等于5s會(huì)提醒</p><p>
79、;<b> MOV A,R0</b></p><p> CJNE A,#0AH,FULL ;1s中0.5s向下運(yùn)行</p><p><b> CLR RING </b></p><p> AJMP CHECK</p><p> FULL: CJNE A,#14H,CHECK
80、 ;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b> SETB RING</b></p><p><b> MOV A,R6</b></p><p> JZ QUIT ;計(jì)時(shí)完畢</p><p> MOV R0,#00H&l
81、t;/p><p> DEC R6 ;一秒標(biāo)志減1</p><p> AJMP CHECK</p><p> LARGER: MOV A,R0</p><p> CJNE A,#14H,CHECK ;如果1s向下運(yùn)行,否者跳到查"停/顯示"</p>
82、<p> DEC R6 ;計(jì)時(shí)一秒R6自動(dòng)減1</p><p> MOV R0,#00H</p><p> CHECK: JNB P3.1,QUIT ;如按下停止鍵退出</p><p> ACALL DISPLAY</p><p> JB OK,AC
83、COUT ;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p> AJMP RECOUNT</p><p> ACCOUT: MOV A,DATA0 </p><p> JNB P1.0,TRUE1</p><p> JNB P1.1,TRUE2<
84、;/p><p> JNB P1.2,TRUE3</p><p> JNB P1.3,TRUE4</p><p> JNB P1.4,TRUE5</p><p> JNB P1.5,TRUE6</p><p> JNB P1.6,TZ3</p><p> JNB P1.7,TZ4</
85、p><p> AJMP RECOUNT</p><p> TZ3: JMP TRUE7</p><p> TZ4: JMP TRUE8 </p><p> QUIT: CLR OK ;如果按下了"停止鍵"執(zhí)行的程序</p>&l
86、t;p><b> CLR RING</b></p><p> AJMP START</p><p><b> ;正常搶答處理程序</b></p><p> TRUE1: ACALL BARK ;按鍵發(fā)聲</p><p><b> MOV A
87、,R2</b></p><p> MOV R6,A ;搶答時(shí)間R2送R6</p><p> MOV R3,#01H</p><p> CLR OK ;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答</p><p> AJMP COUN
88、T</p><p> TRUE2:ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#02H</p><p><b> CLR OK</b&
89、gt;</p><p> AJMP COUNT</p><p> TRUE3:ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#03H</p>
90、<p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE4:ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p>
91、;<p> MOV R3,#04H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE5: ACALL BARK;</p><p><b> MOV A,R2</b></p><p>&
92、lt;b> MOV R6,A</b></p><p> MOV R3,#05H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE6: ACALL BARK;</p><p><b> MOV
93、 A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#06H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE7: ACALL BAR
94、K;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#07H</p><p><b> CLR OK</b></p><p> AJMP COUNT<
95、;/p><p> TRUE8: ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#08H</p><p><b> CLR OK</b>
96、;</p><p> AJMP COUNT</p><p><b> ;犯規(guī)搶答程序</b></p><p> ERROR: MOV R0,#00H</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H</p><p> M
97、OV 34H,R3 ;犯規(guī)號(hào)數(shù)暫存與(34H)</p><p> HERE: MOV A,R0</p><p> CJNE A,#0AH,FLASH ;0.5s向下運(yùn)行->滅并停響</p><p><b> CLR RING </b></p>
98、<p> MOV R3,#0AH</p><p> MOV R4,#0AH</p><p> MOV R5,#0AH ;三燈全滅</p><p> AJMP CHECK1</p><p> FLASH: CJNE A,#14H,CHECK1 ;下面是1s的情況,響并顯示號(hào)
99、數(shù)并清R0,重新計(jì)</p><p><b> SETB RING</b></p><p> MOV R0,#00H</p><p> MOV R3,34H ;取回號(hào)數(shù)</p><p> MOV R5,#0BH</p><p> MOV R4,#0
100、BH ;顯示PP和號(hào)數(shù)</p><p> AJMP CHECK1</p><p> CHECK1: JNB P3.1,QUIT1</p><p> ACALL DISPLAY</p><p><b> AJMP HERE</b></p><p> QUIT
101、1: CLR RING</p><p><b> CLR OK</b></p><p> AJMP START</p><p><b> ;顯示程序</b></p><p> DISPLAY:MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口輸出/P2
102、低三位做位選碼輸出,</p><p><b> MOV A,R3</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0feH</p><p><b> MOV P0,A</b></p><p> ACALL DELAY<
103、/p><p> MOV DPTR,#DAT2</p><p><b> MOV A,R5</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0fdH</p><p><b> MOV P0,A</b></p><
104、;p> ACALL DELAY</p><p><b> MOV A,R4</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0fbH</p><p><b> MOV P0,A</b></p><p> ACALL
105、DELAY</p><p><b> RET</b></p><p> DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H </p><p> ;"滅","1","2","3","4&qu
106、ot;,"5","6","7","8","9","滅","P"</p><p> DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H</p><p> ;第一個(gè)為零,其他與上相同,因?yàn)槭?/p>
107、如果為零顯示熄滅</p><p> ;加減時(shí)間延時(shí)(起到不會(huì)按下就加N個(gè)數(shù))</p><p> DELAY1: MOV 35H,#08H</p><p> LOOP0: ACALL DISPLAY</p><p> DJNZ 35H,LOOP0</p><p><b> RET</b>
108、</p><p> ;延時(shí)(顯示和去抖動(dòng)用到)</p><p> DELAY: MOV 32H,#12H</p><p> LOOP: MOV 33H,#0AFH</p><p> LOOP1: DJNZ 33H,LOOP1</p><p> DJNZ 32H,LOOP</p><
109、p><b> RET</b></p><p><b> ;發(fā)聲程序</b></p><p> BARK: SETB RING</p><p> ACALL DELAY1</p><p> ACALL DELAY1</p><p> CLR RING
110、 ;按鍵發(fā)聲</p><p><b> RET</b></p><p> ;TO溢出中斷(響鈴程序)</p><p> T0INT: MOV TH0,#0ECH</p><p> MOV TL0,#0FFH</p><p> JNB RING,OUT;
111、</p><p> CPL P3.6 ;RING標(biāo)志位為1時(shí)候P3.6口不斷取反使喇叭發(fā)出一定頻率的聲音</p><p> OUT: RETI</p><p> ;T1溢出中斷(計(jì)時(shí)程序)</p><p> T1INT: MOV TH1,#3CH</p><p> MO
112、V TL1,#0B0H</p><p><b> INC R0</b></p><p><b> RETI</b></p><p> ;INTT0中斷服務(wù)程序</p><p> INTT0:MOV DATA0,P1</p><p><b> CLR EX0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)搶答器(16路搶答器)
- 課程設(shè)計(jì)--基于51單片機(jī)8路搶答器設(shè)計(jì)
- 四路搶答器單片機(jī)課程設(shè)計(jì)
- 四路搶答器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì) --搶答器
- 基于單片機(jī)的8路搶答器課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---單片機(jī)八路搶答器設(shè)計(jì)
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)四路搶答器的設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---搶答器
- 搶答器 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---八路搶答器
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)八路搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--8位智能搶答器
- 單片機(jī)課程設(shè)計(jì)-8位智能搶答器
- 智力搶答器單片機(jī)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論