




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機(jī)課程設(shè)計(jì)專業(yè) 電氣工程及其自動化 指導(dǎo)教師 學(xué)生 顏良堂 學(xué)號 B 題 目 8位競賽搶答器的設(shè)計(jì) 2013年12月25日 目 錄1、 設(shè)計(jì)任務(wù)與要求以單片機(jī)為核心,設(shè)計(jì)一個8位競賽搶答器:同時供8名選手或8個代表隊(duì)比賽,分別用8個按鈕S0S7表示。 設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動“開始”鍵后,定時器進(jìn)行減計(jì)時,同時揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為0.
2、5s左右。參賽選手在設(shè)定的時間內(nèi)進(jìn)行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時顯示器上顯示00。 通過鍵盤改變搶答的時間,原理與鬧鐘時間的設(shè)定相同,將定時時間的變量置為全局變量后,通過鍵盤掃描程序使每按下一次按鍵,時間加1(超過30時置0)。同時單片機(jī)不斷進(jìn)行按鍵掃描,當(dāng)參賽選手的按鍵按下時,用于產(chǎn)生時鐘信號的定時計(jì)數(shù)器停止計(jì)數(shù),同時將選手編號(按鍵號)和搶答時間分別顯示在LED上。二、 方案設(shè)計(jì)與論證2.1 方案一:使用C語言編程實(shí)現(xiàn)基于單片機(jī)的八位搶答器的課程設(shè)計(jì),用到
3、的元器件有AT89C51、MAX7219、按鍵、數(shù)碼管、上拉電阻、蜂鳴器等。2.2 方案二:使用匯編語言編程實(shí)現(xiàn)八位搶答器的課程設(shè)計(jì),用到的元器件有AT89C51、74LS373、按鍵、數(shù)碼管、上拉電阻、蜂鳴器等。 選擇方案二的理由:首先匯編語言是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語言,具有很高的精確控制;其次選用74LS373芯片作為數(shù)碼管的控制芯片是因?yàn)樗菀卓刂七x用3個74ls373分別控制倒計(jì)時的兩個數(shù)碼管及一個顯示搶答結(jié)果的數(shù)碼管,所以我選擇了方案二。三、 單元電路的設(shè)計(jì)3.1 芯片的選擇及工作原理本設(shè)計(jì)使用到的元器件包括AT89C51芯片、數(shù)碼
4、管。工作原理:仿真開始 顯示FFF;按下“復(fù)位”鍵 顯示倒計(jì)時初值,起初設(shè)的是30秒;再按下“設(shè)時” 鍵,按一下計(jì)數(shù)初值加1,到30自動清零;按下“開始”鍵開始倒計(jì)時,每減一,有0.5秒的聲響;當(dāng)有選手按下,則倒計(jì)時停止,顯示當(dāng)前倒計(jì)時數(shù)值和選手編號;若在倒計(jì)時計(jì)數(shù)到0,無人搶答 則有1秒聲響的報(bào)警。2.3 系統(tǒng)的硬件構(gòu)成及功能1、 單片機(jī)晶振及復(fù)位部分電路電路 2 、選手搶答部分電路:由八個按鍵S0S7以及8個阻值為1k的上拉電阻組成 3、 開始、復(fù)位、時間設(shè)置及揚(yáng)聲器部分電路:由3個按鍵、1個電阻、NPN和1個BUZZER組成,用于主持人操作及揚(yáng)聲器提示報(bào)警 4、 顯示部分電路:由3個74
5、LS373芯片及3個數(shù)碼管構(gòu)成,用于顯示倒計(jì)時時間和搶答結(jié)果 4、 軟件的設(shè)計(jì)4.1 主程序流程圖 開始顯示FFF復(fù)位鍵時間設(shè)置開始按鈕30s搶答倒計(jì)時加1顯示搶答結(jié)果開始倒計(jì)時YYYYNNNN4.2 主程序MAIN: MOV TMOD,#01H ;主程序 MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB EX0 SETB IT0 MOV R4,#30 ; 30秒倒計(jì)時 MOV R3,#0AH ;搶答結(jié)果 MOV R7,#0AH ;倒計(jì)時 MOV R6,#0AH MOV R0,#30 ;R0存放倒計(jì)時的顯示值,初值設(shè)為30 LCALL XIANS
6、H24.3 子程序1、開始、復(fù)位程序;*復(fù)位程序*FW: JNB P3.1,FW1 ;預(yù)判 復(fù)位鍵按下否 JMP FWFW1: LCALL DELAY ;去抖動,判斷是否真按下 JNB P3.1,FW2 JMP FWFW2: MOV R3,#0BH ;復(fù)位按下,則存放選手編號的R3,放入"滅"的代碼 MOV A,R4 ;倒計(jì)時初值R4放入顯示倒計(jì)時寄存器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ù)設(shè)為10次,剛好1秒HERE: CJNE R1,#01H,YY ;若R1中存放的選手按鍵標(biāo)志位為1,則轉(zhuǎn)入STAR JMP STAR ;否則繼續(xù)循環(huán) 等待中斷YY: JMP HERE2、中斷程序;中斷程序IT0P: CLR TR0 DEC R2 CJNE R2,#05H,JX0 ; 中斷5次后,開啟揚(yáng)聲器 clr P3.6JX0: CJNE R2,#00H,JX1 ;中斷10次后,關(guān)閉揚(yáng)聲器,這樣喇叭響0.5秒 setb P3.6 DEC R0 LCALL XIANSH1 MOV R2,#
8、0AH ;R2中再存入中斷次數(shù)JX1: LCALL SAMO CJNE R1,#01H,JX2 ;掃描選手按鍵標(biāo)志位R1,未按下則轉(zhuǎn)JX2 ,按下則返回 JMP RETURNJX2: JNB P3.1,PK2 JMP CZPK2: LCALL DELAY ;檢測復(fù)位鍵按下否 JNB P3.1,QFW JMP CZQFW: MOV R1,#01H JMP RETURN ;按下則返回CZ: CJNE R0,#00H,CZ1 ;倒計(jì)時是否計(jì)時完畢 clr P3.6 ;及時完畢 無人搶答則揚(yáng)聲器開啟 LCALL DELAY5 ;延時1秒 MOV R1,#01H ;R1設(shè)1 JMP RETURN ;中斷
9、返回CZ1: MOV TH0,#3CH ;計(jì)時器初值重裝 MOV TL0,#0B0H SETB TR0RETURN: RETI3、選手鍵盤掃描程序;選手鍵盤掃描程序SAMO: JNB P1.0,XS1 JNB P1.1,XS2 JNB P1.2,XS3 JNB P1.3,XS4 ;預(yù)掃描 選手按鍵是否按下 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號 揚(yáng)聲器關(guān)閉 MOV R3,#01H LCALL XIANSH1 JMP RETURN2XS2: LCALL DELAY JNB P1.1,XS22 JMP RETURN2XS22: MOV R1,#01H setb P3.6 ;按下則 顯示2號 揚(yáng)聲器關(guān)閉 MOV R3,#02H LCALL XIANSH1 JMP RETURN2XS3: LCALL DELAY JNB P1.2,XS33 JMP RETURN2XS33: MOV R1,#01H setb P3.6 ;按下則 顯示3號 揚(yáng)聲器關(guān)閉 MOV R3,#03H LCALL
11、XIANSH1 JMP RETURN2XS4: LCALL DELAY JNB P1.3,XS44 JMP RETURN2XS44: MOV R1,#01H ;按下則 顯示4號 揚(yáng)聲器關(guān)閉 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號 揚(yáng)聲器關(guān)閉 MOV R3,#05H LCALL XIANSH1 JMP RETURN2XS6: LCALL DELAY JNB P1.5,XS66 JMP
12、RETURN2XS66: MOV R1,#01H setb P3.6 ;按下則 顯示6號 揚(yáng)聲器關(guān)閉 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號 揚(yáng)聲器關(guān)閉 LCALL XIANSH1 JMP RETURN2XS8: LCALL DELAY JNB P1.7,XS88 JMP RETURN2XS88: MOV R1,#01H setb P3.6 ;按下則 顯示8號 揚(yáng)聲器關(guān)閉 MOV
13、 R3,#08H LCALL XIANSH1 JMP RETURN24、數(shù)碼管顯示程序;顯示程序XIANSH1:MOV A,R0 MOV B,#0AH ;R0中存放的倒計(jì)時顯示值 除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 ;調(diào)入代碼 MOVC A,A+DPTR MOV P2,A ;顯示選手編號 CLR P0.4 SETB P0.5 ;選擇顯示十位的數(shù)碼管 CLR P0.6 MOV A
14、,R7 MOV DPTR,#SEGTAB ;調(diào)入代碼 MOVC A,A+DPTR MOV P2,A ;顯示十位 CLR P0.4 CLR P0.5 ;選擇顯示個位的數(shù)碼管 SETB P0.6 MOV A,R6 MOV DPTR,#SEGTAB ;調(diào)入代碼 MOVC A,A+DPTR MOV P2,A ;顯示個位 RET5、搶答時間設(shè)計(jì)程序;搶答時間設(shè)置程序SHESH:INC R0 ;倒計(jì)時初值加1 CJNE R0,#31,BQL ;倒計(jì)時初值設(shè)置超過30 自動清零 MOV R0,#00HBQL: MOV R3,#0BH MOV A,R0 ;倒計(jì)時初值存入其專用寄存器R4中,這樣可以全局不變,R
15、0會倒計(jì)時中遞減而改變 MOV R4,A LCALL XIANSH1 RETI6、延時子程序;10ms延時程序(用于去抖動)DELAY: MOV R7,#20D1: MOV R6,#248 D2: DJNZ R6,D2 DJNZ R7,D1 RET;1s延時程序(無人搶答報(bào)警)DELAY5:MOV R7,#40DL1: MOV R6,#50DL2: MOV R5,#248DL3: DJNZ R5,DL3 DJNZ R6,DL2 DJNZ R7,DL1 RET 五、仿真與調(diào)試5.1 搶答器調(diào)試結(jié)果1、 開始 開始運(yùn)行仿真電路數(shù)碼管顯示FFF。2、 倒計(jì)時首先按下復(fù)位按鈕,當(dāng)按下開始按鈕時開始倒計(jì)
16、時。3、 搶答在倒計(jì)時時間內(nèi)搶答有效,倒計(jì)時后和主持人還沒按開始按鈕搶答均無效。4、 倒計(jì)時時間設(shè)置在還沒開始和搶答結(jié)束后均可設(shè)置搶答倒計(jì)時時間030s5、 搶答結(jié)束復(fù)位清零搶答結(jié)束后可按復(fù)位鍵清零以便下一次搶答。六、 結(jié)論與心得此次課程設(shè)計(jì),開始很苦惱,無從下手。后來和同學(xué)討論決定首先借助于網(wǎng)絡(luò)資料。網(wǎng)絡(luò)上的資源大多并不完善,甚至有些根本看不懂。此時真的很頭疼。于是回想之前實(shí)驗(yàn)課上所學(xué)習(xí)的知識。尋找借鑒例題。零零散散下載摘錄很多東西。又結(jié)合搶答比賽的實(shí)際應(yīng)用,開始起草最初的設(shè)計(jì)草案。想法很多設(shè)計(jì)也幾近完整,然而很多功能卻無法實(shí)現(xiàn)。于是決定按照草案一步步依次解決,邊解決邊定稿最后設(shè)計(jì)方案。中間
17、遇到很多問題、困難。這時我才了解到對知識的掌握還有許多的生疏和欠缺。然而此時后悔已經(jīng)于事無補(bǔ)。我們只能不停在網(wǎng)絡(luò)上搜索查找學(xué)習(xí),盡量彌補(bǔ)自身知識的不足。漸漸完善此設(shè)計(jì)。在這次試驗(yàn)設(shè)計(jì)中在老師的嚴(yán)格要求下,我發(fā)現(xiàn)了自己知識上的不足和理論時間上的差距。通過此次的課程設(shè)計(jì)使我對本科知識有了更深入的了解提高了實(shí)踐的操作能力。同時,也規(guī)范了我對報(bào)告文體格式的掌握。并讓我了解到認(rèn)真刻苦,以真理為武,追求卓越的精神!附件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秒倒計(jì)時MOV R3,#0AH;搶答結(jié)果MOV R7,#0AH;倒計(jì)時MOV R6,#0AH MOV R0,#30 ;R0存放倒計(jì)時的顯示值,初值設(shè)為30LCALL XIANSH2 STAR:setb P3.6 ;關(guān)喇叭 MOV R1,#00H ;選手按鍵,復(fù)位按鍵,無人搶答的標(biāo)志位,用于從等待中斷中返回到初始;復(fù)位部分程序FW:JNB P3.1,FW1 ;預(yù)判 復(fù)位鍵按下否 JMP FWFW1:LCALL DELAY;去抖動,
19、判斷是否真按下 JNB P3.1,FW2JMP FWFW2: MOV R3,#0BH;復(fù)位按下,則存放選手編號的R3,放入"滅"的代碼 MOV A,R4;倒計(jì)時初值R4放入顯示倒計(jì)時寄存器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ù)設(shè)為10次,剛好1秒HERE: CJNE R1,#01H,YY
20、 ;若R1中存放的選手按鍵標(biāo)志位為1,則轉(zhuǎn)入STAR JMP STAR;否則繼續(xù)循環(huán) 等待中斷YY: JMP HERE;中斷程序IT0P: CLR TR0 DEC R2CJNE R2,#05H,JX0; 中斷5次后,開啟揚(yáng)聲器clr P3.6JX0: CJNE R2,#00H,JX1;中斷10次后,關(guān)閉揚(yáng)聲器,這樣喇叭響0.5秒 setb P3.6DEC R0LCALL XIANSH1MOV R2,#0AH;R2中再存入中斷次數(shù)JX1: LCALL SAMO CJNE R1,#01H,JX2;掃描選手按鍵標(biāo)志位R1,未按下則轉(zhuǎn)JX2 ,按下則返回JMP RETURNJX2: JNB P3.1,
21、PK2JMP CZPK2: LCALL DELAY ;檢測復(fù)位鍵按下否 JNB P3.1,QFWJMP CZQFW: MOV R1,#01H JMP RETURN;按下則返回CZ: CJNE R0,#00H,CZ1 ;倒計(jì)時是否計(jì)時完畢 clr P3.6 ;及時完畢 無人搶答則揚(yáng)聲器開啟LCALL DELAY5 ;延時1秒 MOV R1,#01H ;R1設(shè)1JMP RETURN ;中斷返回CZ1: MOV TH0,#3CH;計(jì)時器初值重裝 MOV TL0,#0B0HSETB TR0RETURN: RETI;選手鍵盤掃描程序SAMO: JNB P1.0,XS1 JNB P1.1,XS2JNB P
22、1.2,XS3JNB P1.3,XS4 ;預(yù)掃描 選手按鍵是否按下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號 揚(yáng)聲器關(guān)閉MOV R3,#01HLCALL XIANSH1JMP RETURN2XS2:LCALL DELAY JNB P1.1,XS22JMP RETURN2XS22: MOV R1,#01H
23、 setb P3.6 ;按下則 顯示2號 揚(yáng)聲器關(guān)閉MOV R3,#02HLCALL XIANSH1JMP RETURN2XS3:LCALL DELAY JNB P1.2,XS33JMP RETURN2XS33: MOV R1,#01H setb P3.6;按下則 顯示3號 揚(yáng)聲器關(guān)閉MOV R3,#03HLCALL XIANSH1 JMP RETURN2XS4:LCALL DELAY JNB P1.3,XS44JMP RETURN2XS44: MOV R1,#01H ;按下則 顯示4號 揚(yáng)聲器關(guān)閉 setb P3.6MOV R3,#04HLCALL XIANSH1 JMP RETURN2XS
24、5:LCALL DELAY JNB P1.4,XS55JMP RETURN2XS55: MOV R1,#01H setb P3.6 ;按下則 顯示5號 揚(yáng)聲器關(guān)閉MOV R3,#05HLCALL XIANSH1JMP RETURN2XS6:LCALL DELAY JNB P1.5,XS66JMP RETURN2XS66: MOV R1,#01H setb P3.6 ;按下則 顯示6號 揚(yáng)聲器關(guān)閉MOV R3,#06HLCALL XIANSH1JMP RETURN2XS7:LCALL DELAY JNB P1.6,XS77JMP RETURN2XS77: MOV R1,#01H setb P3.
25、6MOV R3,#07H ;按下則 顯示7號 揚(yáng)聲器關(guān)閉LCALL XIANSH1JMP RETURN2XS8:LCALL DELAY JNB P1.7,XS88JMP RETURN2XS88: MOV R1,#01H setb P3.6 ;按下則 顯示8號 揚(yáng)聲器關(guān)閉MOV R3,#08HLCALL XIANSH1JMP RETURN2;顯示程序XIANSH1:MOV A,R0 MOV B,#0AH ;R0中存放的倒計(jì)時顯示值 除10 分出十位和個位DIV ABMOV R7,A ;十位存入R7中MOV R6,B ;個位存入R6中XIANSH2:SETB P0.4CLR P0.5 ;選擇選手編號的數(shù)碼管CLR P0.6MOV A,R3MOV DPTR,#SEGTAB ;調(diào)入代碼MOVC A,A+DPTRMOV P2,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030乳化劑市場市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 2025-2030中國魚子醬行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國高跟鞋的治療行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 2025-2030中國高端女裝市場營銷策略與未來前景盈利研究報(bào)告
- 2025-2030中國高檔化妝品行業(yè)市場深度調(diào)研及投資前與投資策略景研究報(bào)告
- 2025-2030中國食用菌行業(yè)市場深度調(diào)研及投資策略與投資前景研究報(bào)告
- 2025-2030中國音箱行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 出租倉庫轉(zhuǎn)讓合同標(biāo)準(zhǔn)文本
- 修建混凝土道路合同樣本
- 減水劑母液銷售合同樣本
- 2025年中國建筑股份限公司崗位招聘(法律事務(wù)部)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 軟件信息技術(shù)服務(wù)行智能運(yùn)維管理方案設(shè)計(jì)
- 2025傳染病學(xué)考試試題庫(含答案)
- 橋梁路基施工安全
- 硅谷銀行金融倒閉
- DB31-T 1396-2023 風(fēng)機(jī)系統(tǒng)運(yùn)行能效評估技術(shù)規(guī)范
- 鋼結(jié)構(gòu)與玻璃雨棚的抗風(fēng)設(shè)計(jì)施工方案
- 管理制度企業(yè)安全生產(chǎn)管理制度(范本)
- 手術(shù)室護(hù)理帶教
- 化工廠施工吊裝方案
- 浙江省溫州市“十五校聯(lián)合體”2025屆高三二診模擬考試英語試卷含解析2
評論
0/150
提交評論