![8位競賽搶答器的設計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/2ee21b39-2e48-48ff-acfc-d695475e133c/2ee21b39-2e48-48ff-acfc-d695475e133c1.gif)
![8位競賽搶答器的設計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/2ee21b39-2e48-48ff-acfc-d695475e133c/2ee21b39-2e48-48ff-acfc-d695475e133c2.gif)
![8位競賽搶答器的設計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/2ee21b39-2e48-48ff-acfc-d695475e133c/2ee21b39-2e48-48ff-acfc-d695475e133c3.gif)
![8位競賽搶答器的設計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/2ee21b39-2e48-48ff-acfc-d695475e133c/2ee21b39-2e48-48ff-acfc-d695475e133c4.gif)
![8位競賽搶答器的設計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/2ee21b39-2e48-48ff-acfc-d695475e133c/2ee21b39-2e48-48ff-acfc-d695475e133c5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上單片機課程設計專業(yè) 電氣工程及其自動化 指導教師 學生 顏良堂 學號 B 題 目 8位競賽搶答器的設計 2013年12月25日 目 錄1、 設計任務與要求以單片機為核心,設計一個8位競賽搶答器:同時供8名選手或8個代表隊比賽,分別用8個按鈕S0S7表示。 設置一個系統(tǒng)清除和搶答控制開關S,開關由主持人控制。搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。搶答器具有定時搶答功能,且一次搶答的時間由主持人設定(如30秒)。當主持人啟動“開始”鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為0.
2、5s左右。參賽選手在設定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。 通過鍵盤改變搶答的時間,原理與鬧鐘時間的設定相同,將定時時間的變量置為全局變量后,通過鍵盤掃描程序使每按下一次按鍵,時間加1(超過30時置0)。同時單片機不斷進行按鍵掃描,當參賽選手的按鍵按下時,用于產(chǎn)生時鐘信號的定時計數(shù)器停止計數(shù),同時將選手編號(按鍵號)和搶答時間分別顯示在LED上。二、 方案設計與論證2.1 方案一:使用C語言編程實現(xiàn)基于單片機的八位搶答器的課程設計,用到
3、的元器件有AT89C51、MAX7219、按鍵、數(shù)碼管、上拉電阻、蜂鳴器等。2.2 方案二:使用匯編語言編程實現(xiàn)八位搶答器的課程設計,用到的元器件有AT89C51、74LS373、按鍵、數(shù)碼管、上拉電阻、蜂鳴器等。 選擇方案二的理由:首先匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言,具有很高的精確控制;其次選用74LS373芯片作為數(shù)碼管的控制芯片是因為它容易控制選用3個74ls373分別控制倒計時的兩個數(shù)碼管及一個顯示搶答結果的數(shù)碼管,所以我選擇了方案二。三、 單元電路的設計3.1 芯片的選擇及工作原理本設計使用到的元器件包括AT89C51芯片、數(shù)碼
4、管。工作原理:仿真開始 顯示FFF;按下“復位”鍵 顯示倒計時初值,起初設的是30秒;再按下“設時” 鍵,按一下計數(shù)初值加1,到30自動清零;按下“開始”鍵開始倒計時,每減一,有0.5秒的聲響;當有選手按下,則倒計時停止,顯示當前倒計時數(shù)值和選手編號;若在倒計時計數(shù)到0,無人搶答 則有1秒聲響的報警。2.3 系統(tǒng)的硬件構成及功能1、 單片機晶振及復位部分電路電路 2 、選手搶答部分電路:由八個按鍵S0S7以及8個阻值為1k的上拉電阻組成 3、 開始、復位、時間設置及揚聲器部分電路:由3個按鍵、1個電阻、NPN和1個BUZZER組成,用于主持人操作及揚聲器提示報警 4、 顯示部分電路:由3個74
5、LS373芯片及3個數(shù)碼管構成,用于顯示倒計時時間和搶答結果 4、 軟件的設計4.1 主程序流程圖 開始顯示FFF復位鍵時間設置開始按鈕30s搶答倒計時加1顯示搶答結果開始倒計時YYYYNNNN4.2 主程序MAIN: MOV TMOD,#01H ;主程序 MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB EX0 SETB IT0 MOV R4,#30 ; 30秒倒計時 MOV R3,#0AH ;搶答結果 MOV R7,#0AH ;倒計時 MOV R6,#0AH MOV R0,#30 ;R0存放倒計時的顯示值,初值設為30 LCALL XIANS
6、H24.3 子程序1、開始、復位程序;*復位程序*FW: JNB P3.1,FW1 ;預判 復位鍵按下否 JMP FWFW1: LCALL DELAY ;去抖動,判斷是否真按下 JNB P3.1,FW2 JMP FWFW2: MOV R3,#0BH ;復位按下,則存放選手編號的R3,放入"滅"的代碼 MOV A,R4 ;倒計時初值R4放入顯示倒計時寄存器R0中 MOV R0,A LCALL XIANSH1;開始程序SAM: JNB P3.0,PK JMP SAMPK: JNB P3.0,PK1 ;掃描開始鍵是否按下 JMP SAMPK1: MOV R3,#0BH ;按下則R
7、3存"滅"代碼, SETB TR0 ;/啟動定時器 MOV R2,#0AH ;中斷次數(shù)設為10次,剛好1秒HERE: CJNE R1,#01H,YY ;若R1中存放的選手按鍵標志位為1,則轉入STAR JMP STAR ;否則繼續(xù)循環(huán) 等待中斷YY: JMP HERE2、中斷程序;中斷程序IT0P: CLR TR0 DEC R2 CJNE R2,#05H,JX0 ; 中斷5次后,開啟揚聲器 clr P3.6JX0: CJNE R2,#00H,JX1 ;中斷10次后,關閉揚聲器,這樣喇叭響0.5秒 setb P3.6 DEC R0 LCALL XIANSH1 MOV R2,#
8、0AH ;R2中再存入中斷次數(shù)JX1: LCALL SAMO CJNE R1,#01H,JX2 ;掃描選手按鍵標志位R1,未按下則轉JX2 ,按下則返回 JMP RETURNJX2: JNB P3.1,PK2 JMP CZPK2: LCALL DELAY ;檢測復位鍵按下否 JNB P3.1,QFW JMP CZQFW: MOV R1,#01H JMP RETURN ;按下則返回CZ: CJNE R0,#00H,CZ1 ;倒計時是否計時完畢 clr P3.6 ;及時完畢 無人搶答則揚聲器開啟 LCALL DELAY5 ;延時1秒 MOV R1,#01H ;R1設1 JMP RETURN ;中斷
9、返回CZ1: MOV TH0,#3CH ;計時器初值重裝 MOV TL0,#0B0H SETB TR0RETURN: RETI3、選手鍵盤掃描程序;選手鍵盤掃描程序SAMO: JNB P1.0,XS1 JNB P1.1,XS2 JNB P1.2,XS3 JNB P1.3,XS4 ;預掃描 選手按鍵是否按下 JNB P1.4,XS5 JNB P1.5,XS6 JNB P1.6,XS7 JNB P1.7,XS80RETURN2:RET ;未按下則返回XS80: LJMP XS8XS1: LCALL DELAY ;去抖動再判是否按下 JNB P1.0,XS11 JMP RETURN2XS11: MO
10、V R1,#01H setb P3.6 ;按下則 顯示1號 揚聲器關閉 MOV R3,#01H LCALL XIANSH1 JMP RETURN2XS2: LCALL DELAY JNB P1.1,XS22 JMP RETURN2XS22: MOV R1,#01H setb P3.6 ;按下則 顯示2號 揚聲器關閉 MOV R3,#02H LCALL XIANSH1 JMP RETURN2XS3: LCALL DELAY JNB P1.2,XS33 JMP RETURN2XS33: MOV R1,#01H setb P3.6 ;按下則 顯示3號 揚聲器關閉 MOV R3,#03H LCALL
11、XIANSH1 JMP RETURN2XS4: LCALL DELAY JNB P1.3,XS44 JMP RETURN2XS44: MOV R1,#01H ;按下則 顯示4號 揚聲器關閉 setb P3.6 MOV R3,#04H LCALL XIANSH1 JMP RETURN2XS5: LCALL DELAY JNB P1.4,XS55 JMP RETURN2XS55: MOV R1,#01H setb P3.6 ;按下則 顯示5號 揚聲器關閉 MOV R3,#05H LCALL XIANSH1 JMP RETURN2XS6: LCALL DELAY JNB P1.5,XS66 JMP
12、RETURN2XS66: MOV R1,#01H setb P3.6 ;按下則 顯示6號 揚聲器關閉 MOV R3,#06H LCALL XIANSH1 JMP RETURN2XS7: LCALL DELAY JNB P1.6,XS77 JMP RETURN2XS77: MOV R1,#01H setb P3.6 MOV R3,#07H ;按下則 顯示7號 揚聲器關閉 LCALL XIANSH1 JMP RETURN2XS8: LCALL DELAY JNB P1.7,XS88 JMP RETURN2XS88: MOV R1,#01H setb P3.6 ;按下則 顯示8號 揚聲器關閉 MOV
13、 R3,#08H LCALL XIANSH1 JMP RETURN24、數(shù)碼管顯示程序;顯示程序XIANSH1:MOV A,R0 MOV B,#0AH ;R0中存放的倒計時顯示值 除10 分出十位和個位 DIV AB MOV R7,A ;十位存入R7中 MOV R6,B ;個位存入R6中XIANSH2:SETB P0.4 CLR P0.5 ;選擇選手編號的數(shù)碼管 CLR P0.6 MOV A,R3 MOV DPTR,#SEGTAB ;調入代碼 MOVC A,A+DPTR MOV P2,A ;顯示選手編號 CLR P0.4 SETB P0.5 ;選擇顯示十位的數(shù)碼管 CLR P0.6 MOV A
14、,R7 MOV DPTR,#SEGTAB ;調入代碼 MOVC A,A+DPTR MOV P2,A ;顯示十位 CLR P0.4 CLR P0.5 ;選擇顯示個位的數(shù)碼管 SETB P0.6 MOV A,R6 MOV DPTR,#SEGTAB ;調入代碼 MOVC A,A+DPTR MOV P2,A ;顯示個位 RET5、搶答時間設計程序;搶答時間設置程序SHESH:INC R0 ;倒計時初值加1 CJNE R0,#31,BQL ;倒計時初值設置超過30 自動清零 MOV R0,#00HBQL: MOV R3,#0BH MOV A,R0 ;倒計時初值存入其專用寄存器R4中,這樣可以全局不變,R
15、0會倒計時中遞減而改變 MOV R4,A LCALL XIANSH1 RETI6、延時子程序;10ms延時程序(用于去抖動)DELAY: MOV R7,#20D1: MOV R6,#248 D2: DJNZ R6,D2 DJNZ R7,D1 RET;1s延時程序(無人搶答報警)DELAY5:MOV R7,#40DL1: MOV R6,#50DL2: MOV R5,#248DL3: DJNZ R5,DL3 DJNZ R6,DL2 DJNZ R7,DL1 RET 五、仿真與調試5.1 搶答器調試結果1、 開始 開始運行仿真電路數(shù)碼管顯示FFF。2、 倒計時首先按下復位按鈕,當按下開始按鈕時開始倒計
16、時。3、 搶答在倒計時時間內(nèi)搶答有效,倒計時后和主持人還沒按開始按鈕搶答均無效。4、 倒計時時間設置在還沒開始和搶答結束后均可設置搶答倒計時時間030s5、 搶答結束復位清零搶答結束后可按復位鍵清零以便下一次搶答。六、 結論與心得此次課程設計,開始很苦惱,無從下手。后來和同學討論決定首先借助于網(wǎng)絡資料。網(wǎng)絡上的資源大多并不完善,甚至有些根本看不懂。此時真的很頭疼。于是回想之前實驗課上所學習的知識。尋找借鑒例題。零零散散下載摘錄很多東西。又結合搶答比賽的實際應用,開始起草最初的設計草案。想法很多設計也幾近完整,然而很多功能卻無法實現(xiàn)。于是決定按照草案一步步依次解決,邊解決邊定稿最后設計方案。中間
17、遇到很多問題、困難。這時我才了解到對知識的掌握還有許多的生疏和欠缺。然而此時后悔已經(jīng)于事無補。我們只能不停在網(wǎng)絡上搜索查找學習,盡量彌補自身知識的不足。漸漸完善此設計。在這次試驗設計中在老師的嚴格要求下,我發(fā)現(xiàn)了自己知識上的不足和理論時間上的差距。通過此次的課程設計使我對本科知識有了更深入的了解提高了實踐的操作能力。同時,也規(guī)范了我對報告文體格式的掌握。并讓我了解到認真刻苦,以真理為武,追求卓越的精神!附件1:電路圖附件2:源程序 ORG 0000H LJMP MAIN ORG 0003H LJMP SHESHORG 000BHLJMP IT0P ORG 0100HMAIN: MOV TMOD
18、,#01H ;主函數(shù) MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0SETB EX0SETB IT0MOV R4,#30; 30秒倒計時MOV R3,#0AH;搶答結果MOV R7,#0AH;倒計時MOV R6,#0AH MOV R0,#30 ;R0存放倒計時的顯示值,初值設為30LCALL XIANSH2 STAR:setb P3.6 ;關喇叭 MOV R1,#00H ;選手按鍵,復位按鍵,無人搶答的標志位,用于從等待中斷中返回到初始;復位部分程序FW:JNB P3.1,FW1 ;預判 復位鍵按下否 JMP FWFW1:LCALL DELAY;去抖動,
19、判斷是否真按下 JNB P3.1,FW2JMP FWFW2: MOV R3,#0BH;復位按下,則存放選手編號的R3,放入"滅"的代碼 MOV A,R4;倒計時初值R4放入顯示倒計時寄存器R0中MOV R0,ALCALL XIANSH1;開始部分程序SAM: JNB P3.0,PK JMP SAMPK: JNB P3.0,PK1 ;掃描開始鍵是否按下 JMP SAMPK1: MOV R3,#0BH ;按下則R3存"滅"代碼, SETB TR0 ;/啟動定時器 MOV R2,#0AH ;中斷次數(shù)設為10次,剛好1秒HERE: CJNE R1,#01H,YY
20、 ;若R1中存放的選手按鍵標志位為1,則轉入STAR JMP STAR;否則繼續(xù)循環(huán) 等待中斷YY: JMP HERE;中斷程序IT0P: CLR TR0 DEC R2CJNE R2,#05H,JX0; 中斷5次后,開啟揚聲器clr P3.6JX0: CJNE R2,#00H,JX1;中斷10次后,關閉揚聲器,這樣喇叭響0.5秒 setb P3.6DEC R0LCALL XIANSH1MOV R2,#0AH;R2中再存入中斷次數(shù)JX1: LCALL SAMO CJNE R1,#01H,JX2;掃描選手按鍵標志位R1,未按下則轉JX2 ,按下則返回JMP RETURNJX2: JNB P3.1,
21、PK2JMP CZPK2: LCALL DELAY ;檢測復位鍵按下否 JNB P3.1,QFWJMP CZQFW: MOV R1,#01H JMP RETURN;按下則返回CZ: CJNE R0,#00H,CZ1 ;倒計時是否計時完畢 clr P3.6 ;及時完畢 無人搶答則揚聲器開啟LCALL DELAY5 ;延時1秒 MOV R1,#01H ;R1設1JMP RETURN ;中斷返回CZ1: MOV TH0,#3CH;計時器初值重裝 MOV TL0,#0B0HSETB TR0RETURN: RETI;選手鍵盤掃描程序SAMO: JNB P1.0,XS1 JNB P1.1,XS2JNB P
22、1.2,XS3JNB P1.3,XS4 ;預掃描 選手按鍵是否按下JNB P1.4,XS5JNB P1.5,XS6JNB P1.6,XS7JNB P1.7,XS80RETURN2:RET ;未按下則返回XS80: LJMP XS8XS1: LCALL DELAY;去抖動再判是否按下 JNB P1.0,XS11JMP RETURN2XS11: MOV R1,#01H setb P3.6;按下則 顯示1號 揚聲器關閉MOV R3,#01HLCALL XIANSH1JMP RETURN2XS2:LCALL DELAY JNB P1.1,XS22JMP RETURN2XS22: MOV R1,#01H
23、 setb P3.6 ;按下則 顯示2號 揚聲器關閉MOV R3,#02HLCALL XIANSH1JMP RETURN2XS3:LCALL DELAY JNB P1.2,XS33JMP RETURN2XS33: MOV R1,#01H setb P3.6;按下則 顯示3號 揚聲器關閉MOV R3,#03HLCALL XIANSH1 JMP RETURN2XS4:LCALL DELAY JNB P1.3,XS44JMP RETURN2XS44: MOV R1,#01H ;按下則 顯示4號 揚聲器關閉 setb P3.6MOV R3,#04HLCALL XIANSH1 JMP RETURN2XS
24、5:LCALL DELAY JNB P1.4,XS55JMP RETURN2XS55: MOV R1,#01H setb P3.6 ;按下則 顯示5號 揚聲器關閉MOV R3,#05HLCALL XIANSH1JMP RETURN2XS6:LCALL DELAY JNB P1.5,XS66JMP RETURN2XS66: MOV R1,#01H setb P3.6 ;按下則 顯示6號 揚聲器關閉MOV R3,#06HLCALL XIANSH1JMP RETURN2XS7:LCALL DELAY JNB P1.6,XS77JMP RETURN2XS77: MOV R1,#01H setb P3.
25、6MOV R3,#07H ;按下則 顯示7號 揚聲器關閉LCALL XIANSH1JMP RETURN2XS8:LCALL DELAY JNB P1.7,XS88JMP RETURN2XS88: MOV R1,#01H setb P3.6 ;按下則 顯示8號 揚聲器關閉MOV R3,#08HLCALL XIANSH1JMP RETURN2;顯示程序XIANSH1:MOV A,R0 MOV B,#0AH ;R0中存放的倒計時顯示值 除10 分出十位和個位DIV ABMOV R7,A ;十位存入R7中MOV R6,B ;個位存入R6中XIANSH2:SETB P0.4CLR P0.5 ;選擇選手編號的數(shù)碼管CLR P0.6MOV A,R3MOV DPTR,#SEGTAB ;調入代碼MOVC A,A+DPTRMOV P2,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙教版數(shù)學七年級下冊3.5《整式的化簡》聽評課記錄
- 蘇科版九年級數(shù)學聽評課記錄:第32講 正多邊形的外接圓
- 青島版數(shù)學七年級上冊3.2《有理數(shù)的乘法與除法》聽評課記錄3
- 一年級下冊數(shù)學聽評課記錄《看一看(一)》4 北師大版
- 部編版八年級歷史(上)《第17課 中國工農(nóng)紅軍長征》聽課評課記錄
- 華師大版數(shù)學九年級下冊《復習題》聽評課記錄4
- 川教版歷史九年級下冊第3課《日本明治維新》聽課評課記錄
- 蘇科版數(shù)學九年級下冊《6.2 黃金分割》聽評課記錄
- 小學二年級數(shù)學口算訓練
- 小學二年級上冊數(shù)學除法口算題
- 江蘇省蘇州市2024-2025學年高三上學期1月期末生物試題(有答案)
- 銷售與銷售目標管理制度
- 特殊教育學校2024-2025學年度第二學期教學工作計劃
- 2025年技術員個人工作計劃例文(四篇)
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學語文模擬試卷(9)-江西省(解析版)
- 無人機運營方案
- 糖尿病高滲昏迷指南
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
- 南京信息工程大學《教師領導力》2021-2022學年第一學期期末試卷
評論
0/150
提交評論