2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 單片機(jī)八路掃描式搶答器 </p><p>  二級(jí)學(xué)院 機(jī)械工程學(xué)院 </p><p>  專 業(yè) 機(jī)械設(shè)計(jì)與自動(dòng)化 </p><p>  班

2、 級(jí) 機(jī)械設(shè)計(jì)與自動(dòng)化專(1)班 </p><p>  學(xué) 號(hào) 1101030146 1101030136 </p><p>  學(xué)生姓名 </p><p>  指導(dǎo)教師 </p><p><b>  目

3、 錄</b></p><p>  引言................... .. .........................2</p><p>  第1章 課程設(shè)計(jì)的目的和要求 .................. ..........3</p><p>  第2章 總體設(shè)計(jì)...................................

4、.. ...........4</p><p>  2.1功能介紹..................................... .............5</p><p>  2.2搶答器工作原理................................ ............5</p><p>  第3章 硬件電路設(shè)計(jì)...........

5、..................... ............6</p><p>  3.1原理圖的確定................................. .............6</p><p>  3.2搶答器電路................................... .............6</p><p>  3

6、.3時(shí)序控制電路設(shè)計(jì)............................. .............6</p><p>  3.4復(fù)位電路設(shè)計(jì)................................ ..............7</p><p>  3.5晶體振電設(shè)計(jì)................................. ............ 8</p

7、><p>  3.6報(bào)警電路設(shè)計(jì)......................................... .. .. 9</p><p>  3.7選手搶答鍵................................... ............10</p><p>  3.8顯示與顯示驅(qū)動(dòng)電路.......................... ..

8、...........10</p><p>  第4章 軟件設(shè)計(jì)................................... ............11</p><p>  4.1系統(tǒng)主程序設(shè)計(jì)............................... ............11</p><p>  4.2顯示搶答違規(guī)流程圖............

9、............... ............13</p><p>  4.3搶答成功流程圖............................... ............13</p><p>  4.4程序清單................................. .. .............14</p><p>  第5章 仿真

10、調(diào)試................................... ............25</p><p>  附小組分工情況 ..............................................25 </p><p>  參考文獻(xiàn)..................................... ..

11、.............26</p><p>  致謝 ................................................ 27</p><p><b>  引 言</b></p><p><b>  課題研究的相關(guān)背景</b></p><p>  當(dāng)今的社會(huì)競(jìng)爭(zhēng)日益

12、激烈,選拔人才,評(píng)選優(yōu)勝,知識(shí)競(jìng)賽之類的活動(dòng)愈加頻繁,而在競(jìng)賽中往往分為幾組參加,這時(shí)針對(duì)主持人提出的問(wèn)題,如果要是讓搶答者用舉手等方法,這在某種程度上會(huì)因?yàn)橹鞒秩说闹饔^誤斷造成比賽的不公平性比賽中為準(zhǔn)確、公正、直觀地判 斷出第一搶答者,這就要有一種搶答設(shè)備作為裁判員,這就必然離不開(kāi)搶答器。搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競(jìng)賽、搶答場(chǎng)合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手。早期的搶答器只由幾個(gè)三極管、可控硅、發(fā)光管等組成

13、,能通過(guò)發(fā)光管的指示辯認(rèn)出選手號(hào)碼?,F(xiàn)在大多數(shù)搶答器均使用單片機(jī)或數(shù)字集成電 路,并增加了許多新功能,如選手號(hào)碼顯示、搶按前或搶按后的計(jì)時(shí)、選手得分顯示等功能。隨著科技的發(fā)展,現(xiàn)在的搶答器有著數(shù)字化,智能化的方向發(fā)展,這就必然提高了搶答器的成本。鑒于現(xiàn)在小規(guī)模的知識(shí)競(jìng)賽越來(lái)越多,操作簡(jiǎn)單,經(jīng)濟(jì)實(shí)的小型 搶答器必將大有市場(chǎng)。因此,我選擇簡(jiǎn)易邏輯數(shù)字搶答器這一課題。簡(jiǎn)易邏輯數(shù)字搶答器由主體電路與擴(kuò)展電路組成。優(yōu)先編碼電路、鎖存器、譯碼電路將

14、參賽隊(duì)的輸入信號(hào)在顯示器上輸出;用控制電路和主持人開(kāi)關(guān)啟動(dòng)報(bào)警電路,以上兩部分組成主體電路。通過(guò)定時(shí)電</p><p>  第1章 課程設(shè)計(jì)的目的和要求</p><p>  單片機(jī)原理及應(yīng)用課程設(shè)計(jì)是學(xué)生綜合運(yùn)用所學(xué)知識(shí),全面掌握單片微型計(jì)算機(jī)及其接口的工作原理、編程和使用方法的重要實(shí)踐環(huán)節(jié)。通過(guò)獨(dú)立或協(xié)作提出并論證設(shè)計(jì)方案,進(jìn)行軟、硬件調(diào)試,最后獲得正確的運(yùn)行結(jié)果,可以加深和鞏固對(duì)理論教

15、學(xué)和實(shí)驗(yàn)教學(xué)內(nèi)容的掌握,進(jìn)一步建立計(jì)算機(jī)應(yīng)用系統(tǒng)整體概念,初步掌握單片機(jī)軟、硬件開(kāi)發(fā)方法。</p><p>  根據(jù)單片機(jī)原理及應(yīng)用課程的要求,主要進(jìn)行兩個(gè)方面的設(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>

16、;<p>  存儲(chǔ)器擴(kuò)展設(shè)計(jì)要求學(xué)生掌握常用半導(dǎo)體芯片與單片機(jī)的接口,如EPROM存儲(chǔ)器用作外部程序存儲(chǔ)器時(shí)與單片機(jī)的連接關(guān)系,SRAM存儲(chǔ)器用作外部數(shù)據(jù)存儲(chǔ)器時(shí)與單片機(jī)的連接關(guān)系,E2PROM存儲(chǔ)器用作外部程序/數(shù)據(jù)存儲(chǔ)器時(shí)與單片機(jī)的連接關(guān)系。能合理分配和使用單片機(jī)的內(nèi)部和外部存儲(chǔ)器,編程實(shí)現(xiàn)正常的讀寫功能。</p><p><b>  設(shè)計(jì)目的</b></p>

17、<p>  在進(jìn)行智力競(jìng)賽時(shí),為了具有一種反應(yīng)準(zhǔn)確顯示方便的搶答裝置,下面設(shè)計(jì)了一種帶有定時(shí)功能的多路搶答器。 </p><p><b>  設(shè)計(jì)任務(wù)與要求: </b></p><p>  1、八路搶答,各用一個(gè)搶答按鈕; </p><p>  2、設(shè)置一個(gè)控制開(kāi)關(guān),該開(kāi)關(guān)由主持人控制;</p><p>  

18、3、具有數(shù)據(jù)鎖存和顯示功能,搶答開(kāi)始后若有選手按動(dòng)搶答按鈕,編號(hào)立即鎖存,此外,要封鎖輸入電路,禁止其他選手搶答。優(yōu)先搶答選手的編號(hào)一直保持到系統(tǒng)清零為止;</p><p>  4、當(dāng)主持人按下“開(kāi)始”按鈕,搶答開(kāi)始。</p><p>  5、當(dāng)某一路搶答成功時(shí),在數(shù)碼管上顯示成功信息和該路的號(hào)數(shù);</p><p>  6、當(dāng)某一路搶答違規(guī)時(shí),能在數(shù)碼管上顯示違規(guī)信

19、息和號(hào)數(shù);</p><p><b>  可擴(kuò)展以下功能: </b></p><p>  7、具有定時(shí)搶答的功能,選手在設(shè)定的時(shí)間內(nèi)搶答有效,且一次搶答的時(shí)間設(shè)定為30秒,超時(shí)揚(yáng)聲器報(bào)警; </p><p>  8、定時(shí)搶答的時(shí)間到,卻沒(méi)有選手搶答時(shí),本次搶答無(wú)效,系統(tǒng)短暫報(bào)警,并封鎖輸入電路,禁止選手超時(shí)搶答,時(shí)間顯示器上顯示00。</p

20、><p>  9、開(kāi)始開(kāi)關(guān)未動(dòng)作,在數(shù)碼管上顯示出選手的編號(hào)和搶答時(shí)刻,同時(shí)揚(yáng)聲器給出音響提示,選手搶答無(wú)效,并報(bào)警,系統(tǒng)復(fù)位,重新開(kāi)始。 </p><p><b>  10、其它功能。</b></p><p><b>  第2章 總體設(shè)計(jì)</b></p><p>  該系統(tǒng)采用51系列單

21、片機(jī)AT89C51作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號(hào)識(shí)別以及顯示功能的實(shí)現(xiàn)。由于用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來(lái)方便、簡(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ù)都可以寫

22、在ROM里,許多信號(hào)通道都在同一芯片,因此可靠性高,易擴(kuò)充。</p><p>  <2>單片機(jī)有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的輸入及輸出引腳,可擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)。</p><p>  <3> 控制功能強(qiáng):?jiǎn)纹瑱C(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。其原理框圖如下:</p><p>  如圖

23、所示為電路框圖。其工作原理為:接通電源后,主持人將開(kāi)關(guān)撥到“清除”狀態(tài),搶答器處于禁止?fàn)顟B(tài),編號(hào)顯示器滅燈,定時(shí)器顯示設(shè)定時(shí)間;主持人將開(kāi)關(guān)置,“開(kāi)始”狀態(tài),宣布“開(kāi)始”搶答器工作。定時(shí)器倒計(jì)時(shí),揚(yáng)聲器給出聲響提示。選手在定時(shí)時(shí)間內(nèi)搶答時(shí),搶答器完成:優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次操作“開(kāi)始、停止”狀態(tài)開(kāi)關(guān)。</p>&l

24、t;p><b>  2.1功能介紹</b></p><p>  1、如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按"搶答時(shí)間調(diào)節(jié)"鍵或"答題時(shí)間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"鍵,時(shí)間LED上會(huì)顯示改變后的時(shí)間,調(diào)整范圍為0s~99

25、s, 0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。 </p><p>  2、主持人按"搶答開(kāi)始"鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)60s搶答時(shí)間),

26、不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。 </p><p>  3、如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按"停止"按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按&q

27、uot;搶答開(kāi)始"進(jìn)入下次搶答計(jì)時(shí)。 </p><p>  4、如果主持人未按"搶答開(kāi)始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下&qu

28、ot;停止" 鍵為止。 </p><p>  5、P3.0為開(kāi)始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入 數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時(shí)間調(diào)整結(jié),P3.3回答時(shí)間調(diào)整,P3.4為時(shí)間加1調(diào)整,P3.5為時(shí)間減1調(diào)整.</p><p>  2.2搶答器的工作原理</p><p>  搶答器的工作

29、原理是利用單片機(jī)的定時(shí)器T0、T1中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子程序,用4個(gè)共陰極LED數(shù)碼管來(lái)顯示,用P0口作為數(shù)碼管的八個(gè)段選,用P2口中的P2.0、P2.1、P2.2、作為4個(gè)數(shù)碼管其中3個(gè)位選,P1口接8個(gè)按鍵,提供選手搶答,P3.0-P3.5四個(gè)接四個(gè)按鍵,提供開(kāi)始、結(jié)束、答題時(shí)間調(diào)整、搶答時(shí)間調(diào)整,加1、減1調(diào)整之用。</p><p><b>  搶答功能:</b></p

30、><p>  通過(guò)八路按鍵配合程序來(lái)實(shí)現(xiàn)搶答功能。當(dāng)主持人按下?lián)尨疰I開(kāi)始搶答后,此時(shí)任一路按下按鈕均閉鎖其它各路,由程序?qū)︽I盤譯碼并顯示最先按下?lián)尨疰I的路數(shù)及其當(dāng)前時(shí)間。</p><p><b>  搶答限時(shí):</b></p><p>  主持人按下?lián)尨疰I后,設(shè)置30秒為搶答時(shí)間(此時(shí)間可在1-99秒之間修改)。若30秒內(nèi)無(wú)人搶答,倒計(jì)時(shí)為5時(shí)發(fā)出

31、報(bào)警,說(shuō)明該搶答題目作廢。此時(shí)閉鎖所有搶答按鍵,只有當(dāng)主持人再次按下?lián)尨疰I開(kāi)始下一次搶答方可搶答。</p><p><b>  答題限時(shí):</b></p><p>  當(dāng)選手按下按鈕時(shí),啟動(dòng)倒計(jì)時(shí)(此倒計(jì)時(shí)時(shí)間可在1~99秒之間修改),倒計(jì)時(shí)為5時(shí)發(fā)出報(bào)警,說(shuō)明答題時(shí)間到。</p><p>  第3章 硬件電路設(shè)計(jì)</p><

32、;p>  3.1 原理圖的確定</p><p>  單片機(jī)實(shí)現(xiàn)搶答的原理圖:</p><p><b>  搶答電路的接口電路</b></p><p><b>  3.2.搶答器電路</b></p><p>  參考電路如上圖所示。該電路完成兩個(gè)功能:一是分辨出選手按鍵的先后,并鎖存優(yōu)先搶答者的

33、編號(hào),同時(shí)譯碼顯示電路顯示編號(hào);二是禁止其他選手按鍵操作無(wú)效。如有再次搶答需由主持人將S開(kāi)關(guān)重新置,“清除”然后再進(jìn)行下一次搶答。 </p><p>  3.3 時(shí)序控制電路設(shè)計(jì)</p><p>  時(shí)序控制電路是搶答器設(shè)計(jì)的關(guān)鍵,它要完成以下功能:</p><p>  a.主持人將控制開(kāi)關(guān)撥到"開(kāi)始"位置時(shí),揚(yáng)

34、聲器發(fā)聲,搶答電路和定時(shí)電路進(jìn)人正常搶答工作狀態(tài)。                      </p><p>  b.當(dāng)參賽選手按動(dòng)搶答鍵時(shí),揚(yáng)聲器發(fā)聲,搶答電路和定時(shí)電路停止工作</p><p>  3.4復(fù)位電路的設(shè)計(jì)</p><p>  外部中斷和內(nèi)部中斷并存,單片機(jī)硬件復(fù)位端,只要持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,硬件復(fù)位后的各狀態(tài)可知寄存器以及存儲(chǔ)

35、器的值都恢復(fù)到了初始值,因?yàn)楸驹O(shè)計(jì)中功能中有倒計(jì)時(shí)時(shí)間的記憶功能,所以不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位,只能用軟件復(fù)位,軟件復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完之后,將程序通過(guò)一條跳轉(zhuǎn)指令讓它完成復(fù)位。復(fù)位電路如圖3所示:</p><p><b>  復(fù)位電路原理圖</b></p><p>  該復(fù)位電路采用上電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種復(fù)位方式,圖中網(wǎng)絡(luò)標(biāo)號(hào)所指9連接到單片機(jī)的復(fù)位引腳。

36、要實(shí)現(xiàn)復(fù)位只需在,51系列單片機(jī)的RESET引腳上加上5ms的高電平就可以了。上電復(fù)位是利用電容的充電來(lái)實(shí)現(xiàn)的,即上電瞬間RESET端的電位與Vcc相同,隨著電容上儲(chǔ)能增加,電容電壓也逐漸增大,充電電流減小,RESET端的電位。這樣就會(huì)建立一個(gè)脈沖電壓,調(diào)節(jié)電容與電阻的大小可對(duì)脈沖的持續(xù)時(shí)間進(jìn)行調(diào)節(jié)。通常若采用12MHz的晶振時(shí),復(fù)位元件參數(shù)為22μF的電解電容和10kΩ的電阻。按鈕復(fù)位電路是通過(guò)按下復(fù)位按鈕時(shí),電源對(duì)RESET端維持兩

37、個(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í)鐘方式。</p><p>  單片機(jī)內(nèi)部有一個(gè)反相放大器,XTAL1、XTAL2分別為反相放大器的輸入端和輸出端,外接定時(shí)反饋元件組

38、成振蕩器(內(nèi)部時(shí)鐘方式),產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部各元件。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。</p><p>  一般來(lái)說(shuō)單片機(jī)內(nèi)部有一個(gè)帶反饋的線性反相放大器,外界晶振(或接陶瓷振蕩器)和電容就可組成振蕩器,如圖2-2所示。加電以后延時(shí)一段時(shí)間(約10ms)振蕩器產(chǎn)生時(shí)鐘,不受軟件控制,圖中Y1為晶振,震蕩產(chǎn)生的時(shí)鐘頻率主要由Y1確定。電容C1,C2的作用有兩個(gè):一是幫助振蕩器起振,二

39、是對(duì)振蕩器的頻率起微調(diào)作用,典型值為30pF。</p><p>  晶振電路的設(shè)計(jì)如圖2-2所示:</p><p><b>  晶振電路原理圖</b></p><p>  3.6 報(bào)警電路設(shè)計(jì)</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)為各

40、種頻率的脈沖。因此,最簡(jiǎn)單的喇叭驅(qū)動(dòng)方式就是利用達(dá)林頓晶體管,或者以兩個(gè)常用的小晶體管連接成達(dá)林頓架勢(shì)。在右圖中電阻R為限流電阻,在此利用晶體管的高電流增益,以達(dá)到電路快速飽和的目的。不過(guò),如果要由P0輸出到此電路,還需要連接一個(gè)10K的上拉電阻。</p><p>  選手在設(shè)定的時(shí)間內(nèi)搶答時(shí),實(shí)現(xiàn):優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶

41、答必須由主持人再次作"清除"和"開(kāi)始"狀態(tài)開(kāi)關(guān)。</p><p><b>  報(bào)警電路圖</b></p><p>  3.7選手搶答鍵(矩陣式鍵盤)</p><p>  AT89C51的P1口做一個(gè)為選手搶答的輸入按鍵引腳,P1.0至P1.7輪流輸出低電位,給每一個(gè)選手編號(hào)1至8,當(dāng)選手按下按鈕時(shí),P1口

42、個(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)、搶答30秒倒計(jì)時(shí)、正常搶答者編號(hào)和回答問(wèn)題時(shí)間60秒倒計(jì)時(shí),數(shù)碼管采用動(dòng)態(tài)顯示。驅(qū)動(dòng)電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動(dòng)數(shù)碼管

43、使其顯示數(shù)字。在+5V電壓下接10k的電阻,保證正常壓降。</p><p><b>  第4章 軟件設(shè)計(jì)</b></p><p>  4.1、系統(tǒng)主程序設(shè)計(jì)</p><p>  為了能夠達(dá)到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時(shí)間,因而在編開(kāi)始搶答前的程序得先編寫設(shè)定時(shí)間的程序,當(dāng)時(shí)間設(shè)好了之后,主持人發(fā)布搶答命

44、令按下P1.7按鍵,程序開(kāi)始打開(kāi)定時(shí)中斷開(kāi)始倒計(jì)時(shí),然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序。當(dāng)在掃描到有人按下了答題鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。</p><p><b>  系統(tǒng)主程序流程圖</b></p><p>  4.2 顯示搶答違規(guī)流程圖</p><p>  4.3 搶答成功流程圖</p><p>

45、;<b>  4.4 程序清單</b></p><p>  OK EQU 20H ;搶答開(kāi)始標(biāo)志位</p><p>  RING EQU 22H ;響鈴標(biāo)志位</p><p>  DATA0 EQU 36H ;搶答按鍵口數(shù)據(jù)存放地址</p><p>  ORG 0000H </

46、p><p><b>  AJMP MAIN</b></p><p><b>  ORG 0003H</b></p><p>  AJMP INT0SUB</p><p><b>  ORG 000BH</b></p><p>  AJMP T0INT<

47、/p><p><b>  ORG 0013H</b></p><p>  AJMP INT1SUB</p><p><b>  ORG 001BH</b></p><p>  AJMP T1INT</p><p><b>  ORG 0040H</b><

48、;/p><p>  MAIN: MOV R1,#30 ;初設(shè)搶答時(shí)間為30s</p><p>  MOV R2,#60 ;初設(shè)答題時(shí)間為60s</p><p>  MOV TMOD,#11H ;設(shè)置未定時(shí)器/模式1</p><p>  MOV TH0,#0F0H</p><p>  MO

49、V TL0,#0FFH ;越高發(fā)聲頻率越高,越尖</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H ;50ms為一次溢出中斷</p><p><b>  SETB EA</b></p><p><b>  SETB ET0</b></

50、p><p><b>  SETB ET1</b></p><p><b>  SETB EX0</b></p><p>  SETB EX1 ;允許四個(gè)中斷,T0/T1/INT0/INT1</p><p><b>  CLR OK</b></p>

51、<p><b>  CLR RING</b></p><p><b>  SETB TR1</b></p><p>  SETB TR0 ;一開(kāi)始就運(yùn)行定時(shí)器,以開(kāi)始顯示PPP.如果想重新計(jì)數(shù),重置TH1/TL1就可以了</p><p><b>  ;查詢程序</b>&

52、lt;/p><p>  START: MOV DATA0,#0FFH ;初始化</p><p>  MOV R5,#0BH</p><p>  MOV R4,#0BH</p><p>  MOV R3,#0BH</p><p>  ACALL DISPLAY ;未開(kāi)始搶答時(shí)候顯示P

53、PP</p><p>  JNB P3.3 ,INT0SUB</p><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

54、 ;去抖動(dòng),如果"開(kāi)始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢</p><p>  SETB EX0 ;開(kāi)放INT0 </p><p>  ACALL BARK ;按鍵發(fā)聲</p><p><b>  MOV A,R1</b></p>&l

55、t;p>  MOV R6,A ;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間</p><p>  SETB OK ;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答(在使用錦囊時(shí)用作判斷是搶答倒計(jì)時(shí)還是回答倒計(jì)時(shí))</p><p>  MOV R3,#0AH ;搶答只顯示

56、計(jì)時(shí),滅號(hào)數(shù)</p><p>  AJMP COUNT ;進(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&

57、gt;<p>  JNB P1.3,FALSE4</p><p>  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>

58、<p>  TZ1: JMP FALSE7</p><p>  TZ2: JMP FALSE8</p><p><b>  ;非法搶答處理程序</b></p><p>  FALSE1: ACALL BARK ;按鍵發(fā)聲</p><p>  MOV R3,#01H&l

59、t;/p><p>  AJMP ERROR</p><p>  FALSE2: ACALL BARK</p><p>  MOV R3,#02H</p><p>  AJMP ERROR</p><p>  FALSE3: ACALL BARK</p><p>  MOV R3,#03H</p

60、><p>  AJMP ERROR</p><p>  FALSE4: ACALL BARK</p><p>  MOV R3,#04H</p><p>  AJMP ERROR</p><p>  FALSE5: ACALL BARK</p><p>  MOV R3,#05H</p>

61、<p>  AJMP ERROR</p><p>  FALSE6: ACALL BARK</p><p>  MOV R3,#06H</p><p>  AJMP ERROR</p><p>  FALSE7: ACALL BARK</p><p>  MOV R3,#07H</p>&l

62、t;p>  AJMP ERROR</p><p>  FALSE8: 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>&

63、lt;p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV R5,A</b></p><p><b>  MOV R4,B</b></p><p>  MOV R3,#0AH</p><p&

64、gt;  ACALL DISPLAY ;先在兩個(gè)時(shí)間LED上顯示R1</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,

65、BACK0 ;P3.1為確定鍵,如按下跳到BACKO</p><p>  AJMP INT0SUB</p><p>  INC0: MOV A,R1</p><p>  CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。</p><

66、;p>  MOV R1,#00H</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  ADD0: INC R1</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  D

67、EC0: MOV A,R1</p><p>  JZ SETR1 ;如果R1為0, R1就置99,</p><p><b>  DEC R1</b></p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p&g

68、t;  SETR1: MOV R1,#63H</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  BACK0: RETI </p><p>  ;INT1(回答時(shí)間R2調(diào)整程序)</p><p>  INT1SUB: MOV A,R2</p>

69、<p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV R5,A</b></p><p><b>  MOV R4,B</b></p><p>  MOV R3,#0AH</p><

70、;p>  ACALL DISPLAY</p><p>  JNB P3.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><

71、p>  CJNE A,#63H,ADD1</p><p>  MOV R2,#00H</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  ADD1: INC R2</p><p>  ACALL DELAY1</p><p>

72、  AJMP INT1SUB</p><p>  DEC1: MOV A,R2</p><p><b>  JZ SETR2</b></p><p><b>  DEC R2</b></p><p>  ACALL DELAY1</p><p>  AJMP INT1SU

73、B</p><p>  SETR2: MOV R2,#63H</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  BACK1: RETI </p><p>  ;倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)</p><p>  

74、COUNT: MOV R0,#00H ;重置定時(shí)器中斷次數(shù)</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H ;重置定時(shí)器</p><p>  RECOUNT: MOV A,R6 ;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6<

75、/p><p>  MOV B,#0AH</p><p>  DIV AB ;除十分出個(gè)位/十位</p><p>  MOV 30H,A ;十位存于(30H)</p><p>  MOV 31H,B ;個(gè)位存于(31H)</p>&

76、lt;p>  MOV R5,30H ;取十位</p><p>  MOV R4,31H ;取個(gè)位</p><p><b>  MOV A,R6</b></p><p>  SUBB A,#07H</p><p>  JNC LARGER

77、 ;大于5s跳到LARGER,小于等于5s會(huì)提醒</p><p><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

78、</p><p>  FULL: CJNE A,#14H,CHECK ;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b>  SETB RING</b></p><p><b>  MOV A,R6</b></p><p>  JZ QUIT

79、 ;計(jì)時(shí)完畢</p><p>  MOV R0,#00H</p><p>  DEC R6 ;一秒標(biāo)志減1</p><p>  AJMP CHECK</p><p>  LARGER: MOV A,R0</p><p>  CJNE A,#14H,CHECK

80、 ;如果1s向下運(yùn)行,否者跳到查"停/顯示"</p><p>  DEC R6 ;計(jì)時(shí)一秒R6自動(dòng)減1</p><p>  MOV R0,#00H</p><p>  CHECK: JNB P3.1,QUIT ;如按下停止鍵退出</p><p&

81、gt;  ACALL DISPLAY</p><p>  JB OK,ACCOUT ;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過(guò)查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p>  AJMP RECOUNT</p><p>  ACCOUT: MOV A,DATA0 </p><p>  JNB P

82、1.0,TRUE1</p><p>  JNB P1.1,TRUE2</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

83、 P1.6,TZ3</p><p>  JNB P1.7,TZ4</p><p>  AJMP RECOUNT</p><p>  TZ3: JMP TRUE7</p><p>  TZ4: JMP TRUE8 </p><p>  QUIT: CLR OK

84、 ;如果按下了"停止鍵"執(zhí)行的程序</p><p><b>  CLR RING</b></p><p>  AJMP START</p><p><b>  ;正常搶答處理程序</b></p><p>  TRUE1: ACALL BARK

85、 ;按鍵發(fā)聲</p><p><b>  MOV A,R2</b></p><p>  MOV R6,A ;搶答時(shí)間R2送R6</p><p>  MOV R3,#01H</p><p>  CLR OK ;因?yàn)榇痤}

86、的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答</p><p>  AJMP COUNT</p><p>  TRUE2:ACALL BARK;</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,

87、#02H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE3:ACALL BARK;</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</

88、b></p><p>  MOV R3,#03H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE4:ACALL BARK;</p><p><b>  MOV A,R2</b></p>

89、<p><b>  MOV R6,A</b></p><p>  MOV R3,#04H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE5: ACALL BARK;</p><p>&l

90、t;b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#05H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE6

91、: ACALL BARK;</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#06H</p><p><b>  CLR OK</b></p><p>  A

92、JMP COUNT</p><p>  TRUE7: ACALL BARK;</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#07H</p><p><b>  CLR

93、 OK</b></p><p>  AJMP COUNT</p><p>  TRUE8: ACALL BARK;</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#0

94、8H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p><b>  ;犯規(guī)搶答程序</b></p><p>  ERROR: MOV R0,#00H</p><p>  MOV TH1,#3CH</p>

95、<p>  MOV TL1,#0B0H</p><p>  MOV 34H,R3 ;犯規(guī)號(hào)數(shù)暫存與(34H)</p><p>  HERE: MOV A,R0</p><p>  CJNE A,#0AH,FLASH ;0.5s向下運(yùn)行->滅并停響</p>&

96、lt;p><b>  CLR RING </b></p><p>  MOV R3,#0AH</p><p>  MOV R4,#0AH</p><p>  MOV R5,#0AH ;三燈全滅</p><p>  AJMP CHECK1</p><p>  F

97、LASH: CJNE A,#14H,CHECK1 ;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b>  SETB RING</b></p><p>  MOV R0,#00H</p><p>  MOV R3,34H ;取回號(hào)數(shù)</p><p

98、>  MOV R5,#0BH</p><p>  MOV R4,#0BH ;顯示PP和號(hào)數(shù)</p><p>  AJMP CHECK1</p><p>  CHECK1: JNB P3.1,QUIT1</p><p>  ACALL DISPLAY</p><p><b>

99、;  AJMP HERE</b></p><p>  QUIT1: CLR RING</p><p><b>  CLR OK</b></p><p>  AJMP START</p><p><b>  ;顯示程序</b></p><p>  DISPLAY:

100、MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,</p><p><b>  MOV A,R3</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0feH</p><p><b>  MOV P0,

101、A</b></p><p>  ACALL DELAY</p><p>  MOV DPTR,#DAT2</p><p><b>  MOV A,R5</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0fdH</p><

102、p><b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  MOV A,R4</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0fbH</p><p><b>

103、  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  RET</b></p><p>  DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H </p><p>  ;"滅",&qu

104、ot;1","2","3","4","5","6","7","8","9","滅","P"</p><p>  DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

105、,00H,73H</p><p>  ;第一個(gè)為零,其他與上相同,因?yàn)槭蝗绻麨榱泔@示熄滅</p><p>  ;加減時(shí)間延時(shí)(起到不會(huì)按下就加N個(gè)數(shù))</p><p>  DELAY1: MOV 35H,#08H</p><p>  LOOP0: ACALL DISPLAY</p><p>  DJNZ 35H,L

106、OOP0</p><p><b>  RET</b></p><p>  ;延時(shí)(顯示和去抖動(dòng)用到)</p><p>  DELAY: MOV 32H,#12H</p><p>  LOOP: MOV 33H,#0AFH</p><p>  LOOP1: DJNZ 33H,LOOP1<

107、;/p><p>  DJNZ 32H,LOOP</p><p><b>  RET</b></p><p><b>  ;發(fā)聲程序</b></p><p>  BARK: SETB RING</p><p>  ACALL DELAY1</p><p>

108、;  ACALL DELAY1</p><p>  CLR RING ;按鍵發(fā)聲</p><p><b>  RET</b></p><p>  ;TO溢出中斷(響鈴程序)</p><p>  T0INT: MOV TH0,#0ECH</p><p>  

109、MOV TL0,#0FFH</p><p>  JNB RING,OUT;</p><p>  CPL P3.6 ;RING標(biāo)志位為1時(shí)候P3.6口不斷取反使喇叭發(fā)出一定頻率的聲音</p><p>  OUT: RETI</p><p>  ;T1溢出中斷(計(jì)時(shí)程序)</p><p&g

110、t;  T1INT: MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p><b>  INC R0</b></p><p><b>  RETI</b></p><p>  ;INTT0中斷服務(wù)程序</p><p>  INTT0:MO

111、V DATA0,P1</p><p><b>  CLR EX0</b></p><p><b>  RETI </b></p><p><b>  END</b></p><p><b>  第5章 仿真調(diào)試</b></p><p&g

112、t;  通過(guò)Proteus進(jìn)行仿真,如仿真結(jié)果所示,按下開(kāi)始后,數(shù)碼管開(kāi)始倒計(jì)時(shí),仿真結(jié)果如圖4-2所示。</p><p>  Proteus仿真的結(jié)果</p><p>  分工情況。 硬件電路設(shè)計(jì)由吳文譚負(fù)責(zé) 軟件設(shè)計(jì)由任雪艷負(fù)責(zé)</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]51單片機(jī)

113、原理實(shí)用教程徐愛(ài)鈞編著電子工業(yè)出版社,2011.3</p><p>  [2]劉紅玲、邵曉根,《微機(jī)原理與接口技術(shù)》,中國(guó)電力出版社,2006年第一版</p><p>  [3]馮博琴,《微型計(jì)算機(jī)原理及接口技術(shù)》,清華大學(xué)出版社</p><p>  [4]艾德才,《微型計(jì)算機(jī)原理與接口技術(shù)》,高等教育出版社</p><p>  [5]沈美明

114、,《IBM-PC匯編語(yǔ)言程序設(shè)計(jì)》,清華大學(xué)出版社</p><p>  [6]任致程,《經(jīng)典集成電路400例》機(jī)械工業(yè)出版社,2002</p><p>  [7]薛棟梁,《單片機(jī)原理及應(yīng)用》,中國(guó)水利水電出版社,2001</p><p>  [8]謝筑森,張輝等,《單片機(jī)開(kāi)發(fā)與典型應(yīng)用設(shè)計(jì)》,中國(guó)科學(xué)技術(shù)大學(xué)出版社,</p><p><

115、b>  致謝</b></p><p>  這次我們做的單片機(jī)課程設(shè)計(jì)題目是八路搶答器.從一開(kāi)始我就對(duì)單片機(jī)產(chǎn)生了恐懼,時(shí)上課聽(tīng)老師講課,總是聽(tīng)得特別吃力,然后想到這次是做課程設(shè)計(jì),難度要求不用說(shuō)肯定非常大的。但一路走來(lái),看著我跟我的搭檔把一個(gè)一個(gè)難題突破的時(shí)候,我慢慢地就發(fā)現(xiàn)其單片機(jī)并不是我們想象中那么難,通過(guò)這次課設(shè)我發(fā)現(xiàn)只有理論水平提高了能將課本知識(shí)與實(shí)踐相結(jié)合理論知識(shí)服務(wù)于實(shí)踐以增強(qiáng)自己的

116、動(dòng)手能力。還知道了理論和實(shí)際相結(jié)合的重要性。在這個(gè)過(guò)程中,我也曾經(jīng)因?yàn)閷?shí)踐經(jīng)驗(yàn)的缺乏失落過(guò),也曾經(jīng)仿真成功而熱情高漲。</p><p>  特別是roteus仿真軟件的使用,不知是由于電腦的問(wèn)題還是怎么,這個(gè)軟件的安裝就花了我很長(zhǎng)的時(shí)間,好不容易安裝好了,又對(duì)軟件的使用一點(diǎn)都不熟悉,要從頭開(kāi)始學(xué)起,對(duì)著老師發(fā)給我們的芯片原理進(jìn)行仿真畫圖,剛剛開(kāi)始時(shí)候真的很難下手,因?yàn)槭怯⑽陌娴能浖?,很多東西都看不太明白,都是通過(guò)

117、自己一個(gè)個(gè)來(lái)慢慢琢磨,才把仿真圖畫了出來(lái),然后把寫好的程序?qū)胄酒M(jìn)行仿真,當(dāng)看到程序正常運(yùn)行的那一刻,心中真是有幾分的喜悅。生活就是這樣,汗水預(yù)示著結(jié)果也見(jiàn)證著收獲。勞動(dòng)是人類生存生活永恒不變的話題。為完成這次課程設(shè)計(jì)我們確實(shí)很辛苦。亮了起來(lái),喇叭響起的是我一生以來(lái)最好聽(tīng)的聲音,我們的心中就不免興奮,不免激動(dòng)。以前種種艱辛這時(shí)就變成了最甜美的回憶!這次學(xué)習(xí)給我留下了深刻的印象,使我受益匪淺。而且對(duì)于論文的總體構(gòu)思也有了很多經(jīng)驗(yàn),相信

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論