版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 青島理工大學(xué)</b></p><p> 《單片機(jī)原理及接口技術(shù)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 目 錄</b></p><p> 引言………………………………………………………………(2)&l
2、t;/p><p> 一、設(shè)計(jì)任務(wù)及要求…………………………………………………(2)</p><p> 二、步驟及方案………………………………………………………(2)</p><p> (1)方案…………………………………………………………………………(2)</p><p> (2)設(shè)計(jì)步驟…………………………………………………………………
3、…(4)</p><p> 三、硬件設(shè)計(jì)…………………………………………………………(4)</p><p> ?。?)總體設(shè)計(jì)電路圖…………………………………………………………(4)</p><p> ?。?)搶答器電路………………………………………………………………(4)</p><p> ?。?)時(shí)序控制電路……………………………………
4、………………………(5)</p><p> (4)復(fù)位電路…………………………………………………………………(5)</p><p> (5)報(bào)警電路…………………………………………………………………(6)</p><p> (6)LED數(shù)碼顯示器和驅(qū)動(dòng)電路……………………………………………(6)</p><p> 四、軟件設(shè)計(jì)…………
5、………………………………………………(6)</p><p> (1)程序流程圖………………………………………………………………(6)</p><p> (2)顯示和查詢子程序………………………………………………………(7)</p><p> (3)搶答處理子程序…………………………………………………………(8)</p><p> (4
6、)倒計(jì)時(shí)子程序……………………………………………………………(12)</p><p> ?。?)報(bào)警子程序……………………………………………………………(12)</p><p> 五、Proteus軟件調(diào)試仿真…………………………………………(12)</p><p> ?。?)調(diào)試過(guò)程………………………………………………………………(12)</p>
7、<p> ?。?)仿真結(jié)果………………………………………………………………(12)</p><p> 六、心得體會(huì)…………………………………………………………(14)</p><p> 七、參考文獻(xiàn)…………………………………………………………(15)</p><p> 附錄………………………………………………………………(16)</p>
8、<p><b> 引言</b></p><p> 基于MCS-51系列單片機(jī)AT89C51的一種搶答器.該電路采用AT89C51單片機(jī)的四個(gè)8位并行I/O接口連接各個(gè)控制電路來(lái)實(shí)現(xiàn)搶答功能.該電路設(shè)計(jì)簡(jiǎn)單,進(jìn)行簡(jiǎn)單更改便可實(shí)現(xiàn)對(duì)8組或8組以下的人員搶答.應(yīng)用很廣泛.</p><p><b> 一、設(shè)計(jì)任務(wù)及要求</b></
9、p><p><b> (1)、設(shè)計(jì)任務(wù)</b></p><p> 基于MCS-51系列單片機(jī)AT89C51,設(shè)計(jì)一個(gè)多功能八路搶答器</p><p><b> ?。?)、設(shè)計(jì)要求</b></p><p> 1)搶答器同時(shí)供8名選手或8個(gè)代表比賽,分別用8個(gè)按鈕K1~K8。</p>&
10、lt;p> 2)設(shè)置一個(gè)系統(tǒng)清除和搶答控制開(kāi)關(guān)K0,該開(kāi)關(guān)由主持人控制。</p><p> 3)搶答器具有鎖存功能與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。</p><p> 4)主持人按下?lián)尨稹伴_(kāi)始”按鈕,搶答開(kāi)始。</p><p> 5)當(dāng)某一路搶答成功時(shí),在數(shù)碼管上顯示成功信息和該路的號(hào)數(shù);
11、</p><p> 6)當(dāng)某一路搶答違規(guī)時(shí),能在數(shù)碼管上顯示違規(guī)信息和該路的號(hào)數(shù);</p><p> 7)@具有定時(shí)搶答發(fā)功能,且一次搶答的時(shí)間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動(dòng)“開(kāi)始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間0.5秒左右。</p><p> 8)@參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯
12、示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。</p><p> 9)@如果定時(shí)時(shí)間已到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。</p><p><b> 10)☆其它功能。</b></p><p><b> 二、步驟及方案</b></p><p><
13、;b> (1)、方案</b></p><p> 用P0口連接上拉電阻,完成驅(qū)動(dòng)LED數(shù)碼顯示管的顯示功能;用P1口串接按鍵,可由選手自己控制搶答機(jī)會(huì);利用P3口的RXD、TXD做控制開(kāi)關(guān)。編寫(xiě)簡(jiǎn)單的匯編語(yǔ)言程序,導(dǎo)入單片機(jī),以達(dá)到搶答功能,若有選手進(jìn)行了犯規(guī)搶答,蜂鳴器會(huì)發(fā)出聲響,以告訴主持人有人違規(guī),搶答無(wú)效并進(jìn)行系統(tǒng)清除,重新開(kāi)始進(jìn)行搶答,并顯示除搶答倒計(jì)時(shí),當(dāng)時(shí)間剩余5秒時(shí)蜂鳴器發(fā)出聲
14、響以提醒選手趕快搶答。選手按正確的操作搶答,單片機(jī)倒計(jì)時(shí),利用AT89C51移位寄存8段數(shù)碼管,實(shí)現(xiàn)倒計(jì)時(shí)顯示時(shí)間,當(dāng)時(shí)間剩余5秒時(shí)提醒選手時(shí)間快到了,要及時(shí)作答,并啟動(dòng)蜂鳴器。若搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)為零,則顯示初始化狀態(tài).</p><p> 元件清單:MCS-51系列單片機(jī)AT89C51、4位LED數(shù)碼管(共陽(yáng))、普通按鈕Button、喇叭Sounder、晶振、排電阻(10K)上拉電阻和電容等。</p
15、><p><b> 總設(shè)計(jì)原理框架圖:</b></p><p><b> 單片機(jī)選擇:</b></p><p> AT89C51作為搶答電路系統(tǒng)的核心器件。該器件是INTEL公司生產(chǎn)的MCS-51系列單片機(jī)的基礎(chǔ)產(chǎn)品,采用了可靠的CMOS工藝制造技術(shù),具有高性能的8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS-51的CMOS產(chǎn)品。不僅結(jié)合
16、了HMOS的高速和高密度技術(shù)及HMOS的低功耗特征,而且繼承和擴(kuò)展了MCS-48單片機(jī)的體系結(jié)構(gòu)和指令系統(tǒng)。</p><p> ?、貯T89C51單片機(jī)的主要特征:</p><p> A、與MCS-51兼容,4K字節(jié)可編程閃爍存儲(chǔ)器;</p><p> b、靈活的在線系統(tǒng)編程,掉電標(biāo)識(shí)和快速編程特性;</p><p> c、壽命為100
17、0次寫(xiě)/擦周期,數(shù)據(jù)保留時(shí)間可10年以上;</p><p> d、全靜態(tài)工作模式:0HZ~33HZ;</p><p> e、三級(jí)程序存儲(chǔ)器鎖定;f128×8位內(nèi)部RAM,32位可編I/O線;</p><p> g、兩個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源,4個(gè)8位并行的I/O接口,1個(gè)全雙工I/O接口。</p><p> h、有
18、位尋址功能、適于布爾處理的位處理機(jī)。</p><p><b> ?、趩纹瑱C(jī)與報(bào)警電路</b></p><p> 系統(tǒng)中的報(bào)警電路是由發(fā)光二極管和限電流電阻組成,并與單片機(jī)的P1.2端口連接。P1端口的作用和接線方法與P2端口相同,不同的是Flash編程和程序校驗(yàn),P1接收低8位地址數(shù)據(jù)。</p><p><b> ?、鄢绦虼鎯?chǔ)器&l
19、t;/b></p><p> 本系統(tǒng)的所需的沒(méi)有必要外擴(kuò)程序存儲(chǔ)器,所以不用考慮存儲(chǔ)器擴(kuò)充容量的大小,單片機(jī)本身的存儲(chǔ)器就已足夠。</p><p><b> ④數(shù)據(jù)存儲(chǔ)器</b></p><p> 根據(jù)系統(tǒng)的功能要求,不需擴(kuò)展外部RAM,89C51本身的RAM就能滿足要求。</p><p><b>
20、 ⑤I/O接口芯片</b></p><p> 根據(jù)系統(tǒng)的功能要求,I/O接口芯片的也不需進(jìn)行擴(kuò)展。</p><p><b> ?、蘅偩€驅(qū)動(dòng)能力</b></p><p> MCS-51系列單片機(jī)的外部擴(kuò)展功能很強(qiáng),但4個(gè)8位并行的帶負(fù)載的能力是有限的。P0口能驅(qū)動(dòng)8個(gè)TTL電路,P1~P3口只能驅(qū)動(dòng)3個(gè)TTL電路。在實(shí)際運(yùn)用中,
21、這些端口的負(fù)載不應(yīng)超過(guò)總負(fù)載能力的70%,以保證留有一定的余量,以增強(qiáng)系統(tǒng)的抗干擾能力,在外接負(fù)載較多的情況下,應(yīng)采用總線驅(qū)動(dòng)電路,以提高端口的驅(qū)動(dòng)能力和抗干擾能力</p><p><b> (2)步驟</b></p><p> 1) 確定方案后,繪制總設(shè)計(jì)電路圖,并選擇適當(dāng)?shù)脑?huà)出設(shè)計(jì)圖;</p><p> 2)編寫(xiě)匯編語(yǔ)言程序,并進(jìn)
22、行認(rèn)真修改和調(diào)試;</p><p> 3)將程序?qū)雴纹瑱C(jī),并進(jìn)行仿真;</p><p> 4)成功完成所需功能后進(jìn)行整理,并書(shū)寫(xiě)報(bào)告總結(jié).</p><p><b> 三、硬件設(shè)計(jì)</b></p><p><b> ?。?)總設(shè)計(jì)電路圖</b></p><p><
23、b> (2)搶答器電路</b></p><p> 該電路完成兩個(gè)功能:一是分辨出選手按鍵的先后,并鎖存有縣搶答者的編號(hào),同時(shí)譯碼顯示電路顯示編號(hào);二是禁止其他選手按鍵,即使其他選手操作無(wú)效。搶答器具有鎖存、定時(shí)、顯示和報(bào)警功能。</p><p><b> (3)時(shí)序控制電路</b></p><p> 時(shí)序控制電路是搶答
24、器設(shè)計(jì)的關(guān)鍵,它要完成的功能是:一、主持人按動(dòng)“開(kāi)始”按鍵KO時(shí),搶答電路和定時(shí)電路進(jìn)入正常搶答狀態(tài)。二、當(dāng)主持人未按動(dòng)“開(kāi)始”按鍵,但有參賽選手按動(dòng)搶答鍵時(shí),蜂鳴器聲響,搶答電路和定時(shí)電路停止工作。</p><p><b> (4)復(fù)位電路</b></p><p> 復(fù)位是計(jì)算機(jī)的一個(gè)重要工作狀態(tài)。在單片機(jī)工作時(shí),接電之前要復(fù)位,斷電后也要復(fù)位,在搶答器中復(fù)位則
25、為定時(shí)做鋪墊的,在搶答之前要復(fù)位,搶答完畢后也要復(fù)位,按了復(fù)位鍵之后,LED的顯示全為P00,當(dāng)引腳RST端保持兩個(gè)機(jī)器周期以上的高電平,AT89C51可以進(jìn)入復(fù)位狀態(tài)。</p><p><b> (5)報(bào)警電路</b></p><p> 如果定時(shí)時(shí)間已到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示為00,并發(fā)出一段時(shí)間的報(bào)警聲</p>
26、;<p> (6)LED數(shù)碼顯示器和驅(qū)動(dòng)電路</p><p> 本設(shè)計(jì)所用的顯示器為7段共陰極接法LED顯示器,當(dāng)某一發(fā)光二極管的陽(yáng)極輸入高電平時(shí),則該段發(fā)光。利用P0口做段選碼口輸出,P2口的1\3\4三位做位選碼輸出.</p><p><b> 四、軟件設(shè)計(jì)</b></p><p><b> ?。?)程序流程圖
27、</b></p><p> ?。?)顯示和查詢子程序</p><p> ;=====查詢程序=====</p><p> START: MOV DATA0,#0FFH ;初始化</p><p> MOV R5,#0BH</p><p> MOV R4,#0BH</p>
28、<p> MOV R3,#0BH</p><p> ACALL DISPLAY ;未開(kāi)始搶答時(shí)候顯示P00 </p><p> JB P3.0,NEXT </p><p> ACALL DELAY</p><p> JB P3.0,NEXT ;抖動(dòng),如
29、果"開(kāi)始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢 </p><p> ACALL BARK </p><p><b> MOV A,R1</b></p><p> MOV R6,A ;送R1->R6,因?yàn)镽1中保存了
30、搶答時(shí)間</p><p> SETB OK ;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答</p><p> MOV R3,#0AH ;搶答只顯示計(jì)時(shí),滅號(hào)數(shù)</p><p> AJMP COUNT ;進(jìn)入倒計(jì)時(shí)程序,"查詢有效搶答的程序"在COUN
31、T里面</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> JNB P1.4,FALSE5</p><p&g
32、t; 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> TZ2: JMP FALSE8</p>&l
33、t;p> ;=====顯示程序=====</p><p> DISPLAY: MOV DPTR,#DAT1 ;查表顯示程序</p><p><b> MOV A,R3</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0feH</p><p&
34、gt;<b> MOV P0,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,
35、#0fdH</p><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>
36、;<p><b> 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>
37、; ;"滅","1","2","3","4","5","6","7","8","9","滅","P"</p><p> DAT2:DB 3fh,06h,5bh,4fh,66
38、h,6dh,7dh,07h,7fh,6fh,00H,3fH</p><p> ;第一個(gè)為零,最后一個(gè)為零,其他與上相同,因?yàn)槭蝗绻麨榱泔@示熄滅</p><p> (3)搶答處理子程序</p><p> ;=====非法搶答處理程序=====</p><p> FALSE1: ACALL BARK ;按鍵發(fā)聲&
39、lt;/p><p> MOV R3,#01H</p><p> AJMP ERROR</p><p> FALSE2: ACALL BARK</p><p> MOV R3,#02H</p><p> AJMP ERROR</p><p> FALSE3: ACALL BARK</
40、p><p> MOV R3,#03H</p><p> AJMP ERROR</p><p> FALSE4: ACALL BARK</p><p> MOV R3,#04H</p><p> AJMP ERROR</p><p> FALSE5: ACALL BARK</p>
41、;<p> MOV R3,#05H</p><p> AJMP ERROR</p><p> FALSE6: ACALL BARK</p><p> MOV R3,#06H</p><p> AJMP ERROR</p><p> FALSE7: ACALL BARK</p>&
42、lt;p> MOV R3,#07H</p><p> AJMP ERROR</p><p> FALSE8: ACALL BARK</p><p> MOV R3,#08H</p><p> AJMP ERROR</p><p> ;=====正常搶答處理程序=====</p><
43、p> TRUE1: ACALL BARK </p><p><b> MOV A,R2</b></p><p> MOV R6,A ;回答時(shí)間R2送R6</p><p> MOV R3,#01H</p><p> CLR OK
44、 ;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答,回答倒計(jì)時(shí)開(kāi)始.</p><p> AJMP COUNT</p><p> TRUE2:ACALL BARK</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p&g
45、t;<p> MOV R3,#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><
46、;b> MOV R6,A</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
47、</b></p><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<
48、/p><p><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>
49、;<p> TRUE6: 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
50、><p> AJMP 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&
51、gt;<b> CLR 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><
52、p> MOV R3,#08H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> ;=====犯規(guī)搶答程序=====</p><p> ERROR: MOV R0,#00H</p><p> MOV TH1,#3CH<
53、/p><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><
54、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> FLAS
55、H: 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>
56、MOV R5,#0BH</p><p> MOV R4,#0BH ;顯示00和號(hào)數(shù)</p><p> AJMP CHECK1</p><p> CHECK1: JNB P3.1,QUIT1</p><p> ACALL DISPLAY</p><p><b> AJM
57、P HERE</b></p><p> QUIT1: CLR RING</p><p><b> CLR OK</b></p><p> AJMP START </p><p><b> (4)倒計(jì)時(shí)子程序</b></p><p> ;=====倒計(jì)時(shí)
58、程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到該程序)=====</p><p> COUNT: MOV R0,#00H ;重置定時(shí)器中斷次數(shù)</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H ;重置定時(shí)器</p><p> RECOUNT: MOV A,R6
59、 ;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6</p><p> MOV B,#0AH</p><p> DIV AB ;除十分出個(gè)位/十位</p><p> MOV 30H,A ;十位存于(30H)</p><p> MOV 3
60、1H,B ;個(gè)位存于(31H)</p><p> MOV R5,30H ;取十位</p><p> MOV R4,31H ;取個(gè)位</p><p><b> MOV A,R6</b></p><p> SUBB A,#07H</
61、p><p> JNC LARGER ;大于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 </
62、b></p><p> AJMP CHECK</p><p> FULL: CJNE A,#14H,CHECK ;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)時(shí)</p><p><b> SETB RING</b></p><p><b> MOV A,R6</b>
63、</p><p> JZ QUIT ;計(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
64、><p> CJNE A,#14H,CHECK ;如果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
65、 ;如按下停止鍵退出</p><p> ACALL DISPLAY</p><p> JB OK,ACCOUT ;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過(guò)查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p> AJMP RECOUNT</p><p> ACCOUT: MOV A,DATA0 </p&
66、gt;<p> JNB P1.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</
67、p><p> JNB 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
68、 ;如果按下了"停止鍵"執(zhí)行的程序</p><p><b> CLR RING</b></p><p> AJMP START</p><p><b> (5)報(bào)警子程序</b></p><p> ;=====發(fā)聲程序=====</
69、p><p> BARK: SETB RING</p><p> ACALL DISPLAY</p><p> ACALL DISPLAY</p><p> CLR RING ;按鍵發(fā)聲</p><p><b> RET</b></p>
70、<p> ;=====TO溢出中斷(響鈴程序)=====</p><p> T0INT: MOV TH0,#0ECH</p><p> MOV TL0,#0FFH</p><p> JNB RING,OUT;</p><p> CPL P3.6 ;RING標(biāo)志位為1時(shí)候P3.6口不斷取反
71、使喇叭發(fā)出一定頻率的聲音</p><p> OUT: RETI</p><p> 五、Proteus的調(diào)試與仿真</p><p><b> ?。?)調(diào)試過(guò)程</b></p><p> 基于設(shè)計(jì)思想,我們將編寫(xiě)好的匯編語(yǔ)言程序?qū)肓藛纹瑱C(jī),利用軟件Proteus進(jìn)行仿真,得到想要的結(jié)果。 </p>
72、<p><b> ?。?)仿真結(jié)果</b></p><p> 1)按下仿真開(kāi)關(guān),出現(xiàn)下圖(圖.a)的結(jié)果:</p><p><b> 圖.a</b></p><p> 按下仿真開(kāi)關(guān),LED顯示管上顯示初始狀態(tài)P00,等待主持人按下“開(kāi)始”按鍵;</p><p> 2)開(kāi)始:當(dāng)按下
73、仿真開(kāi)始鍵,出現(xiàn)下圖(圖b)的仿真結(jié)果:</p><p><b> 圖.b</b></p><p> 主持人按下“開(kāi)始”按鍵,LED顯示管上顯示搶答倒計(jì)時(shí)30s,并逐漸往下減1,直到有人按下?lián)尨鸢存I。</p><p> 3)搶答倒計(jì)時(shí)剩余5秒時(shí)出現(xiàn)下圖(圖c)的結(jié)果:</p><p><b> 圖.c&
74、lt;/b></p><p> 若搶答倒計(jì)時(shí)剩余5秒時(shí),蜂鳴器發(fā)出聲響,直到為零時(shí)恢復(fù)初始狀態(tài)。</p><p> 4)正確搶答后出現(xiàn)下圖(圖d)的結(jié)果:</p><p><b> 圖.d</b></p><p> 有選手正確搶答后,顯示管上顯示選手號(hào)碼和回答倒計(jì)時(shí),并且回到倒計(jì)時(shí)開(kāi)始逐漸減1,直到按下“停
75、止”鍵。</p><p> 5)回答倒計(jì)時(shí)剩余5秒時(shí),出現(xiàn)下圖(圖e)的結(jié)果:</p><p><b> 圖.e</b></p><p> 若無(wú)人按下“停止”鍵,回答時(shí)間剩余5秒時(shí),蜂鳴器發(fā)出聲響,直到時(shí)間為零時(shí),恢復(fù)初始狀態(tài)。</p><p> 6)有選手違規(guī)搶答是,出現(xiàn)下圖(圖f)的結(jié)果:</p>
76、<p><b> 圖.f</b></p><p> 如果有選手在主持人還未按下“開(kāi)始”鍵就做搶答,顯示管將顯示出該選手的號(hào)碼,同時(shí)開(kāi)始閃爍,蜂鳴器發(fā)出聲響。</p><p><b> 六、心得體會(huì)</b></p><p> 開(kāi)始選擇課程設(shè)計(jì)題目是,看見(jiàn)這個(gè)題目覺(jué)得挺好弄得,但是想的總是美好的。這次課程
77、設(shè)計(jì)的仿真工具是從來(lái)沒(méi)有使用過(guò),是在老師和同學(xué)的指導(dǎo)下學(xué)會(huì)的,結(jié)合單片機(jī)設(shè)計(jì)電路更是從來(lái)沒(méi)有接觸過(guò),但是沒(méi)有辦法,所以通過(guò)上網(wǎng)或去圖書(shū)館查閱資料了解了一些,經(jīng)過(guò)兩個(gè)星期的設(shè)計(jì),從開(kāi)始的什么都不會(huì),慢慢的自己會(huì)更改電路,會(huì)仿真,導(dǎo)入程序后會(huì)自己進(jìn)行一些修改。雖然不是很系統(tǒng)的學(xué)習(xí)這些,但是基本的操作已經(jīng)了解了。通過(guò)這次課程設(shè)計(jì),我們意識(shí)到,要想設(shè)計(jì)出好的電路,必須清楚明白的知道題目所要表達(dá)的意思,并且要了解各種元器件的用途,這次設(shè)計(jì)綜合了我
78、們所學(xué)習(xí)過(guò)的知識(shí),也對(duì)這些知道進(jìn)行了一定的擴(kuò)展了解,這些對(duì)我們是很有幫助的。</p><p><b> 七、參考文獻(xiàn)</b></p><p> (1)吳亦峰,陳德為,單片機(jī)原理與接口技術(shù),電子工業(yè)出版社,2010</p><p> ?。?)程相波,衛(wèi)安軍,基于MCS-51單片機(jī)的八路搶答器設(shè)計(jì)方法研究【J】,北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào)2007
79、,6(2)</p><p><b> 附錄:</b></p><p> 定時(shí)器T1時(shí)間初值,設(shè)50ms時(shí)間初值為X,X的計(jì)算方法為X=(2</p><p> ^16-50*10^3),X=15536D=3CB0H</p><p> OK EQU 25H ;搶答開(kāi)始標(biāo)志位</p>&l
80、t;p> RING EQU 27H ;響鈴標(biāo)志位</p><p> DATA0 EQU 40H ;搶答按鍵口數(shù)據(jù)存放地址</p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b></p><p><b>
81、 ORG 000BH</b></p><p> AJMP T0INT</p><p><b> ORG 001BH</b></p><p> AJMP T1INT</p><p> MAIN: MOV R1,#30 ;初設(shè)搶答時(shí)間為30s</p><p>
82、MOV R2,#60 ;初設(shè)答題時(shí)間為60s</p><p> MOV TMOD,#10H ;設(shè)置未定時(shí)器方式2</p><p> MOV TH0,#0ECH</p><p> MOV TL0,#0FFH ;越高發(fā)聲頻率越高,越尖</p><p> MOV TH1,#3CH</p><p
83、> MOV TL1,#0B0H ;50ms為一次溢出中斷</p><p><b> SETB EA</b></p><p><b> SETB ET0</b></p><p> SETB ET1 ;允二個(gè)中斷,T0/T1</p><p><b>
84、 CLR OK</b></p><p><b> CLR RING</b></p><p><b> SETB TR1</b></p><p> SETB TR0 </p><p> ;=====查詢程序=====</p><p> ST
85、ART: 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í)候顯示P00 </p>&
86、lt;p> JB P3.0,NEXT </p><p> ACALL DELAY</p><p> JB P3.0,NEXT ;抖動(dòng),如果"開(kāi)始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢 </p><p> ACALL BARK
87、 </p><p><b> MOV A,R1</b></p><p> MOV R6,A ;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間</p><p> SETB OK ;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答</p><p>
88、MOV R3,#0AH ;搶答只顯示計(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>
89、<p> JNB P1.2,FALSE3</p><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>
90、;<p> AJMP START</p><p> TZ1: JMP FALSE7</p><p> TZ2: JMP FALSE8</p><p> ;=====非法搶答處理程序=====</p><p> FALSE1: ACALL BARK ;按鍵發(fā)聲</p>
91、<p> MOV R3,#01H</p><p> AJMP ERROR</p><p> FALSE2: ACALL BARK</p><p> MOV R3,#02H</p><p> AJMP ERROR</p><p> FALSE3: ACALL BARK</p><
92、;p> MOV R3,#03H</p><p> AJMP ERROR</p><p> FALSE4: ACALL BARK</p><p> MOV R3,#04H</p><p> AJMP ERROR</p><p> FALSE5: ACALL BARK</p><p&g
93、t; MOV R3,#05H</p><p> AJMP ERROR</p><p> FALSE6: ACALL BARK</p><p> MOV R3,#06H</p><p> AJMP ERROR</p><p> FALSE7: ACALL BARK</p><p>
94、MOV R3,#07H</p><p> AJMP ERROR</p><p> FALSE8: ACALL BARK</p><p> MOV R3,#08H</p><p> AJMP ERROR</p><p> ;=====倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到該程序)=====</p>
95、<p> 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í)
96、間或回答時(shí)間給R6</p><p> MOV B,#0AH</p><p> DIV AB ;除十分出個(gè)位/十位</p><p> MOV 30H,A ;十位存于(30H)</p><p> MOV 31H,B ;個(gè)位存于(31H)</p&
97、gt;<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
98、 ;大于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 CHE
99、CK</p><p> FULL: CJNE A,#14H,CHECK ;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)時(shí)</p><p><b> SETB RING</b></p><p><b> MOV A,R6</b></p><p> JZ QUIT
100、 ;計(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
101、 ;如果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> AC
102、ALL DISPLAY</p><p> JB OK,ACCOUT ;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過(guò)查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p> AJMP RECOUNT</p><p> ACCOUT: MOV A,DATA0 </p><p> JNB P1.0,TRUE1</p
103、><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 P1.6,TZ3</p
104、><p> JNB P1.7,TZ4</p><p> AJMP RECOUNT</p><p> TZ3: JMP TRUE7</p><p> TZ4: JMP TRUE8 </p><p> QUIT: CLR OK ;如果按下了"停止鍵&qu
105、ot;執(zhí)行的程序</p><p><b> CLR RING</b></p><p> AJMP START</p><p> ;=====正常搶答處理程序=====</p><p> TRUE1: ACALL BARK </p><p><b>
106、; MOV A,R2</b></p><p> MOV R6,A ;回答時(shí)間R2送R6</p><p> MOV R3,#01H</p><p> CLR OK ;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答,回答倒計(jì)時(shí)開(kāi)始.</p><
107、;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,#02H</p><p><b>
108、; 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</b></p><p> MOV R3
109、,#03H</p><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</
110、b></p><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>
111、;<p><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>&l
112、t;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> AJMP COUNT</p><p> TRUE7
113、: 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 OK</b></p><p> AJ
114、MP COUNT</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 O
115、K</b></p><p> AJMP COUNT</p><p> ;=====犯規(guī)搶答程序=====</p><p> ERROR: MOV R0,#00H</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H</p><p>
116、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><p><b> CLR RING </b></p><p>
117、; 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)數(shù)并清R0,重新
118、計(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,#0BH
119、 ;顯示00和號(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> QUIT1: CLR RING
120、</p><p><b> CLR OK</b></p><p> AJMP START</p><p> ;=====顯示程序=====</p><p> DISPLAY: MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口輸出/P2口的1\3\4三位做位選碼輸出.<
121、/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</p><p&
122、gt; 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><p> ACALL
123、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 DELAY</p>
124、;<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","5&qu
125、ot;,"6","7","8","9","滅","P"</p><p> DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,3fH</p><p> ;第一個(gè)為零,最后一個(gè)為零,其他與上相同,因?yàn)槭蝗绻麨榱泔@示熄
126、滅</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</
127、p><p><b> RET</b></p><p> ;=====發(fā)聲程序=====</p><p> BARK: SETB RING</p><p> ACALL DISPLAY</p><p> ACALL DISPLAY</p><p> CLR RIN
128、G ;按鍵發(fā)聲</p><p><b> RET</b></p><p> ;=====TO溢出中斷(響鈴程序)=====</p><p> T0INT: MOV TH0,#0ECH</p><p> MOV TL0,#0FFH</p><p>
129、 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> T1INT: MOV TH1,#3CH&
130、lt;/p><p> MOV TL1,#0B0H</p><p><b> INC R0</b></p><p><b> RETI</b></p><p> ;========INTT0中斷服務(wù)程序============</p><p> INTT0:MOV DAT
131、A0,P1</p><p><b> CLR EX0</b></p><p><b> RETI </b></p><p><b> END</b></p><p> g an employment tribunal claim</p><p>
132、 Employment tribunals sort out disagreements between employers and employees.</p><p> You may need to make a claim to an employment tribunal if:</p><p> you don't agree with the disciplin
133、ary action your employer has taken against you</p><p> your employer dismisses you and you think that you have been dismissed unfairly.</p><p> For more information about dismissal and unfair
134、dismissal, see Dismissal.</p><p> You can make a claim to an employment tribunal, even if you haven't appealed against the disciplinary action your employer has taken against you. However
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---八路搶答器
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)八路搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)八路搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--八路搶答器
- 單片機(jī)課程設(shè)計(jì)---基于51單片機(jī)的八路競(jìng)賽搶答器的設(shè)計(jì)
- 基于單片機(jī)的八路智能搶答器課程設(shè)計(jì)
- 基于單片機(jī)的八路智能搶答器課程設(shè)計(jì)
- 基于51單片機(jī)的八路搶答器課程設(shè)計(jì)
- 基于51單片機(jī)的八路搶答器課程設(shè)計(jì)
- 單片機(jī)八路搶答器)
- 單片機(jī)課程設(shè)計(jì)--8051系列單片機(jī)控制的八路智力搶答器設(shè)計(jì)
- 基于單片機(jī)的八路搶答器
- 基于單片機(jī)的八路智能搶答器課程設(shè)計(jì).doc
- 基于51單片機(jī)的八路搶答器課程設(shè)計(jì).doc
- 課程設(shè)計(jì)--基于單片機(jī)控制的八路搶答器計(jì)
- 課程設(shè)計(jì)--基于單片機(jī)控制的八路搶答器計(jì)
- 八路搶答器課程設(shè)計(jì)---基于單片機(jī)的八位搶答器的設(shè)計(jì)
- 基于單片機(jī)的八路搶答器設(shè)計(jì).doc
評(píng)論
0/150
提交評(píng)論