基于80C51的八路搶答器的單片機(jī)課程設(shè)計(jì)_第1頁
基于80C51的八路搶答器的單片機(jī)課程設(shè)計(jì)_第2頁
基于80C51的八路搶答器的單片機(jī)課程設(shè)計(jì)_第3頁
基于80C51的八路搶答器的單片機(jī)課程設(shè)計(jì)_第4頁
基于80C51的八路搶答器的單片機(jī)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄1 引言42 總體方案設(shè)計(jì)43 硬件電路設(shè)計(jì)53.1 單片機(jī)及其外圍電路53.2 硬件電路組成64 系統(tǒng)軟件設(shè)計(jì)104.1 初始化程序設(shè)計(jì)104.2 主程序設(shè)計(jì)114.3 倒計(jì)時(shí)30s子程序的設(shè)計(jì)124.4 外部中斷T1中斷子程序設(shè)計(jì)144.5 定時(shí)器T1中斷子程序設(shè)計(jì)174.6 選手按鍵程序的設(shè)計(jì)184.7 數(shù)碼管顯示程序的設(shè)計(jì)195 系統(tǒng)調(diào)試與總結(jié)21附錄A 系統(tǒng)原理圖22附錄B 源程序221 引言此次設(shè)計(jì)提出了用80C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)簡易的搶答器,本方案以80C51單片機(jī)作為主控核心,與數(shù)碼管、蜂鳴器等構(gòu)成八路搶答器,利用了單片機(jī)的延時(shí)電路、按鍵復(fù)位電路、時(shí)鐘電路

2、、定時(shí)/中斷等電路,設(shè)計(jì)的八路搶答器具有倒計(jì)時(shí)和實(shí)時(shí)顯示搶答選手的號(hào)碼的特點(diǎn),還有復(fù)位電路,使其再開始新的一輪的答題和比賽。它的功能實(shí)現(xiàn)是比賽開始,主持人讀完題之后按下總開關(guān),倒計(jì)時(shí)開始,此時(shí)數(shù)碼管開始進(jìn)行30s的倒計(jì)時(shí),是選手的思考時(shí)間,倒計(jì)時(shí)完后,才允許開始搶答,若有人答題,對(duì)應(yīng)的會(huì)在數(shù)碼管上顯示出該選手的編號(hào)并由蜂鳴器發(fā)出聲音,在30s倒計(jì)時(shí)內(nèi)答題無效。2 總體方案設(shè)計(jì)蜂鳴電路AT89C51復(fù)位電路/主持人案件搶答器倒計(jì)時(shí)顯示電路獨(dú)立式按鍵鍵盤 圖2.1 總體電路設(shè)計(jì)框圖總體程序設(shè)計(jì)思路圖為如圖2.1所示。復(fù)位電路:當(dāng)一輪進(jìn)行完時(shí),由主持人按下,下一輪倒計(jì)時(shí)開始,復(fù)位電路接P3.3口。獨(dú)

3、立式按鍵鍵盤:用于輸入高低電平,連接到P1口,由P1口檢測電平的變化。搶答器倒計(jì)時(shí)顯示電路:有三位數(shù)碼管組成,前兩位顯示30s倒計(jì)時(shí),由第三位顯示成功搶答選手編號(hào)。蜂鳴電路:有選手搶答成功,P3.1口發(fā)出脈沖,使蜂鳴器發(fā)出聲音。3 硬件電路設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)微控制器采用AT89C51。AT89C51是美國ATMEL公司生產(chǎn)的與MCS-51系列單片機(jī)完全兼容的高性能CMOS 8位單片機(jī),MCS-51系列單片機(jī)以其推出時(shí)間早、配套資源豐富、開發(fā)手段完善、性價(jià)比高等特點(diǎn)而得到了廣泛的應(yīng)用,是單片機(jī)的主流品種。AT89C51的內(nèi)部資源主要包括:與MCS-51 系列完全兼容的高性能8位CPU;4

4、K字節(jié)可重復(fù)編程的Flash存儲(chǔ)器;256字節(jié)的SRAM;4個(gè)8位的并行口,共32條I/O口線;3個(gè)16位的定時(shí)器/計(jì)數(shù)器;6個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí)的中斷系統(tǒng);一個(gè)全雙工的串行口;內(nèi)部振蕩器;可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路其最小系統(tǒng)主要包括復(fù)位電路,時(shí)鐘電路,如下圖3.1所示。圖3.1 單片機(jī)最小系統(tǒng)電路圖3.2 硬件電路功能說明(1)復(fù)位電路的設(shè)計(jì)MCS-5l的復(fù)位輸入引腳RST為MCS-51提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在MCS-5l的時(shí)鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個(gè)機(jī)器周期以上的高電平時(shí),即可產(chǎn)生復(fù)位的操作只要RST保持高電平

5、,則MCS-5l循環(huán)復(fù)位只有當(dāng)RST由高電平變低電平以后。MCS-51才從0000H地址開始執(zhí)行程序。本系統(tǒng)采用按鍵復(fù)位方式的復(fù)位電路。復(fù)位電路:當(dāng)一輪進(jìn)行完時(shí),由主持人按下,下一輪倒計(jì)時(shí)開始,如圖3.2所示。圖3.2 復(fù)位控制電路(2)獨(dú)立式按鍵鍵盤設(shè)計(jì)鍵盤接口中使用多少根I/O線,鍵盤中就有幾個(gè)按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個(gè)按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對(duì)鍵盤中的按鍵靈活的編碼。最簡單的編碼方式就是根據(jù)I/O輸入口所直接反映的相應(yīng)按鍵,按下的狀態(tài)進(jìn)行編碼,稱按鍵直接狀態(tài)碼,對(duì)于這樣編碼的獨(dú)立式鍵盤,CPU可以通過直

6、接讀取I/O口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個(gè)值直接進(jìn)行按鍵識(shí)別,這樣形式的鍵盤結(jié)構(gòu)簡單,按鍵識(shí)別容易。獨(dú)立式鍵盤的缺點(diǎn)是需要占用比較多的I/O口線,當(dāng)單片機(jī)應(yīng)用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時(shí),可以采用這樣類型的鍵盤。 獨(dú)立式按鍵鍵盤:用于輸入高低電平,八位選手搶答時(shí)高低電平發(fā)生變化,如圖3.3所示。圖3.3 搶答按鍵部分(3)數(shù)碼管顯示部分設(shè)計(jì) LED動(dòng)態(tài)顯示是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式,其接口電路是把所有顯示器的8個(gè)筆劃段a-dp 同名端并聯(lián)在一起,而每一個(gè)顯示器的公共極COM是各自獨(dú)立地受I/O線控制,CPU的字段輸出口送出字形碼時(shí),所有顯示器由于同名

7、端并連接收到相同的字形碼,但究竟哪個(gè)顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以就可以自行決定何時(shí)顯示哪一位了,在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間表是極為短暫的,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝將就盡管實(shí)際上各位顯示器并非間時(shí)點(diǎn)亮,但只要掃描速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。搶答器倒計(jì)時(shí)顯示電路:有三位數(shù)碼管組成,前兩位顯示30s倒計(jì)時(shí),第三位顯示成功搶答選手編號(hào),如圖3.4所示。圖3.4 顯示控制部分圖(4)蜂鳴器電路設(shè)計(jì)我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)

8、生一定頻率的巨型波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。單片機(jī)通過內(nèi)部定時(shí)器的操作實(shí)現(xiàn)交替變換的波形輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,有選手搶答成功,使蜂鳴器發(fā)出聲音,如圖3.5所示。圖3.5 蜂鳴器提示時(shí)間部分圖4 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件分為主程序、中斷服務(wù)程序和子程序三部分4.1 主程序(主程序流程框圖見圖4.1)圖4.1 主程序流程框圖主程序是系統(tǒng)上電或復(fù)位后首先要執(zhí)行的程序,主程序主要完成系統(tǒng)的初始化、掃描顯示、掃描鍵盤等工作。程序流程如圖4.1所示,對(duì)單片機(jī)進(jìn)行初始化,包括設(shè)置堆棧、倒計(jì)時(shí)30S設(shè)置、定

9、時(shí)器T0設(shè)置,外部中斷設(shè)置,鍵盤掃描設(shè)置,初始化狀態(tài)時(shí)顯示000。4.3 倒計(jì)時(shí)30s子程序:(定時(shí)器T0中斷子程序框圖如圖4.2所示) 圖4.2 定時(shí)器T0中斷子程序框圖 首先要把累加器ACC和程序狀態(tài)字PSW放入堆棧保護(hù),然后進(jìn)行倒計(jì)時(shí)的設(shè)置,設(shè)置為30S倒計(jì)時(shí),先看看1S到?jīng)],如果到,倒計(jì)時(shí)自動(dòng)減1,并在數(shù)碼管顯示,再判斷倒計(jì)時(shí)的30s到?jīng)],沒到繼續(xù)倒計(jì)時(shí)并顯示,倒計(jì)時(shí)計(jì)完為止,然后彈出累加器ACC與程序狀態(tài)字PSW,中斷退出,返回到中斷入口處。 4.4 外部中斷T1中斷子程序:(外部T1中斷子程序框圖如圖4.3所示)圖4.3 外部T1中斷子程序框圖外部中斷T1中斷時(shí)要先把累加器ACC和

10、程序狀態(tài)字PSW放入堆棧保護(hù),然后把20H標(biāo)志位置0,再調(diào)用顯示程序,T0開始定時(shí),T1停止,然后設(shè)置30S倒計(jì)時(shí),設(shè)置之后彈出累加器ACC與程序狀態(tài)字PSW,中斷退出,返回到中斷入口處。 4.5 定時(shí)器T1中斷子程序:(定時(shí)器T1中斷程序框圖如圖4.4所示)圖4.4 定時(shí)器T1中斷程序框圖定時(shí)器T1中斷時(shí)要先把累加器ACC和程序狀態(tài)字PSW放入堆棧保護(hù),然后就是響鈴,接上喇叭,利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。設(shè)置之后彈出累加器ACC與程序狀態(tài)字PSW,中斷退出,返回到中斷入口處。 4.6 選手按鍵程序:(鍵盤掃描程序框圖如圖4

11、.5所示)圖4.5 鍵盤掃描程序框圖鍵盤掃描時(shí)先判斷20H單元和21H單元標(biāo)志位是否為0,是的話說明允許鍵盤掃描,否的話即不允許鍵盤掃描,不允許掃描就返回調(diào)用,結(jié)束,允許掃描時(shí)開始掃描P1口看有沒有選手按下答題鍵,按下時(shí)此口變?yōu)榈碗娖?,如果沒有選手按鍵,則判斷P1口有沒有掃描完,沒有掃描完就繼續(xù)掃描,掃面完沒有選手按下就檢查20H和21H4.7 數(shù)碼管顯示程序:(顯示子程序框圖如圖4.6所示) 圖4.6 顯示子程序框圖進(jìn)入顯示子程序先把選手的號(hào)碼顯示于01數(shù)碼管,然后是選手的答題時(shí)間十秒鐘倒計(jì)時(shí)顯示,把個(gè)位顯示在02數(shù)碼管上,把十位顯示在04數(shù)碼管上,同時(shí)把倒計(jì)時(shí)的數(shù)值減1后存在61H和62

12、H中,判斷倒計(jì)時(shí)是否結(jié)束到0,結(jié)束的話返回調(diào)用,倒計(jì)時(shí)沒有結(jié)束即繼續(xù)倒計(jì)時(shí)。5 總結(jié)這次課程設(shè)計(jì)老師給我們安排了兩個(gè)星期的時(shí)間,可以說是比較充裕的。雖然如此,我還是很用心的做設(shè)計(jì)程序,剛拿到題目,感覺太繁雜了,不知怎么下手,雖然這些知識(shí)以前都有接觸過,但也只是分部分來接觸,而這次的設(shè)計(jì)是要對(duì)前面幾次實(shí)驗(yàn)的一個(gè)綜合,真的很難。也翻閱了一些資料,到圖書館翻閱了很多資料,可是還是一片空白,于是也在網(wǎng)上參考一些個(gè)程序,然后自己事先編寫好了程序,到了周一去到機(jī)房時(shí)候,把自己寫的程序燒進(jìn)去芯片里面,發(fā)現(xiàn)不行,才知是我把段碼地址搞錯(cuò)了,所以不能在數(shù)碼管上正常顯示。通過運(yùn)用單片機(jī)設(shè)計(jì)八路搶答器程設(shè)計(jì),發(fā)現(xiàn)自己

13、的很多不足,自己知識(shí)的很多漏洞,看到了自己的實(shí)踐經(jīng)驗(yàn)還是比較缺乏,理論聯(lián)系實(shí)際的能力還急需提高。附錄A 系統(tǒng)原理圖附錄B 源程序KEY_OPEN EQU 20HKEY EQU 21HBOOL EQU P3.1 ORG 0000H LJMP MAIN ORG 000BH LJMP T0 ORG 0013H LJMP INT1 ORG 0001BH LJMP T1MAIN: MOV SP,#70H MOV R1,#60H MOV R5,#20 MOV A,#0 MOV 59H,A MOV TMOD,#21H MOV TH0,#3CH MOV TL0,#0B0H MOV TH1,#7FH MOV T

14、L1,#7FH CLR BOOL CLR KEY SETB IT1 SETB ET0 SETB ET1 SETB EX1 SETB EA CLR KEY_OPENWAIT:LCALL KEY_SCAN LCALL DISPLY SJMP WAITT0: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H DJNZ R5,T0END MOV R5,#10 MOV A,59H DEC A CJNE A,#0,L1 CLR TR0 SETB KEYL1: MOV 59H,A MOV A,#10 MOV B,A MOV A,59H DIV AB MOV R1,#6

15、2H DA A MOV R1,A DEC R1 MOV A,B MOV R1,A LCALL DISPLYT0END:POP PSW POP ACC RETIT1:PUSH ACC PUSH PSW MOV R0,#20 DJNZ R0,L2 LJMP T1ENDL2:CPL BOOLT1END:POP PSW POP ACC RETIINT1:PUSH ACC PUSH PSW CLR KEY_OPEN MOV P1,#0FFH LCALL DISPLY MOV 60H,#0 MOV 61H,#0 MOV 62H,#0 SETB TR0 CLR TR1 CLR KEY MOV 59H,#31

16、 POP ACC POP PSW RETIKEY_SCAN:JNB KEY,KEYEND0JB KEY_OPEN ,KEYEND0JNB P1.0,KEY1JNB P1.1,KEY2JNB P1.2,KEY3JNB P1.3,KEY4JNB P1.4,KEY5JNB P1.5,KEY6JNB P1.6,KEY7JNB P1.7,KEY8LJMP KEYEND0KEY1: MOV 60H,#1 LJMP KEYENDKEY2: MOV 60H,#2 LJMP KEYENDKEY3: MOV 60H,#3 LJMP KEYENDKEY4: MOV 60H,#4 LJMP KEYENDKEY5: M

17、OV 60H,#5 LJMP KEYENDKEY6: MOV 60H,#6 LJMP KEYENDKEY7: MOV 60H,#7 LJMP KEYENDKEY8: MOV 60H,#8KEYEND:SETB KEY_OPEN SETB TR1KEYEND0:MOV P1,#0FFH RETDELAY: MOV R7,#100DS2: MOV R6,#100 DJNZ R6,$ DJNZ R7,DS2 RETDISPLY: MOV R4,#3 MOV R1,#60H MOV R3,#01HLOOP1: MOV A,R3 MOV DPTR,#9002H MOVX DPTR,A MOV DPTR,#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論