基于單片機的八路數(shù)字搶答器的設計(共21頁)_第1頁
基于單片機的八路數(shù)字搶答器的設計(共21頁)_第2頁
基于單片機的八路數(shù)字搶答器的設計(共21頁)_第3頁
基于單片機的八路數(shù)字搶答器的設計(共21頁)_第4頁
基于單片機的八路數(shù)字搶答器的設計(共21頁)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上*級學生單片機課程設計 單片機課程設計報告書課題名稱基于單片機的八路數(shù)字搶答器的設計姓 名*學 號*院 系*專 業(yè)*指導教師*年 *月*日一、設計任務及要求: 1搶答器同時供8名選手或8個代表隊比賽。 2設置一個系統(tǒng)清除和搶答控制開關S,該開關由主持人控制。3搶答器具有鎖存與顯示功能。4搶答器具有定時搶答功能。 5參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。6如果定時時間到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,顯示器上顯示00 。指導教師簽名: 年 月 日 二、指導教師評語:指導教

2、師簽名: 年 月 日 三、成績 驗收蓋章 年 月 日 基于單片機的八路數(shù)字搶答器的設計*一 目的1學習掌握單片機的簡單應用。2掌握匯編語言的編程方法。3學習掌握Proteus、Keil軟件,能夠比較熟練的應用。4設計一個八路搶答器。二 設計任務與要求1搶答器同時供8名選手或8個代表隊比賽,分別用8個按鈕1、2、3、4、5、6、7、8表示。2設置一個系統(tǒng)清除和搶答控制開關S,該開關由主持人控制。3搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的編號,并在LED數(shù)碼管上顯示,同時揚聲器發(fā)出報警聲響提示。選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。4搶答器具有定時搶答

3、功能,且一次搶答的時間由主持人設定(如30秒)。當主持人啟動"開始"鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間0.5秒左右。5參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。6如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。 7熟悉Proteus、Keil_C51軟件的應用方法。三 整體設計方案用51系列單片機AT80C51作為控制核心,該系統(tǒng)可以完成運算控制、信號識別以及顯示功能的實現(xiàn)。并且單片機周圍的輔助電路也比較少,便于控制和實現(xiàn)。整個

4、系統(tǒng)具有極其靈活的可編程性,能方便地對系統(tǒng)進行功能的擴張和更改。單片機具有優(yōu)越的高集成電路性,使其工作速度更快、效率更高。另外80C51單片機采用12MHz的晶振,提高了信號的測量精度,并且使該系統(tǒng)可以通過軟件改進來擴張功能。MCS-51單片機特點如下: 1可靠性好:單片機按照工業(yè)控制要求設計,抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號通道都在同一芯片,因此可靠性高,易擴充。2單片機有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的輸入及輸出引腳,可擴充為各種規(guī)模的微電腦系統(tǒng)。 3控制功能強:單片機指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令

5、。搶答器在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設計一個系統(tǒng)來完成這個任務。為了完成這個任務設計時系統(tǒng)能顯示搶答組號、搶答計時結束時發(fā)出警報、搶答倒計時三個要求,必須由硬件部分和軟件部分構成,硬件和軟件分開設計。系統(tǒng)的總框圖如下:數(shù)碼管及上拉電阻AT80C51復位電路搶答器計時時間調整及語音報警獨立式按鍵鍵盤圖3.1 系統(tǒng)框架圖四 硬件電路設計1搶答器的電路原理圖如圖二所示為電路原理圖。其工作原理為:接通電源后,主持人將開關撥到“清除”狀態(tài),搶答器處于禁止狀態(tài),編號顯示器滅燈,定時器顯示設定時間;主持人將開關置,“開始”狀態(tài),宣布“開始”搶答器工作。定時器倒計時,揚聲器給出聲響提

6、示。選手在定時時間內搶答時,搶答器完成:優(yōu)先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作"開始、停止"狀態(tài)開關。圖4.1 搶答器的電路原理圖單片機AT80C51的引腳圖如下所示:圖4.2 80C51的管腳圖AT80C51,其外部接上復位電路、上拉電阻、數(shù)碼管、按鈕及揚聲器。元件為:晶體振蕩管X1,電容C1、C2、C3,電阻RP1,P3.0和P3.1有裁判控制分別是搶答停止和開始鍵;P1.0-P1.7是8組搶答的輸入口;P2.0-P2.3口為數(shù)碼管的段選口;位選口用的是P0.0-P0.6口

7、輸出,外部中斷0、1和P3.3,P3/4為搶答記時調整口,實現(xiàn)進行計時,并且加減調整,外部中斷0,1實現(xiàn)了答題時間調整。P3.4、P3.5分別實現(xiàn)了時間的加一和減一;P3.6為蜂鳴器控制口。搶答器用單片機來設計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成,采用單片機AT80C51,它是低功耗、高性能的CMOS型8位單片機。片內帶有4KB的Flash存儲器,并允許在系統(tǒng)內改寫或用編程器編程。這樣就會使搶答器的準確度很高,其誤差主要由晶振自身的誤差所造成。AT80C51單片機由微處理器,存儲器,I/O口以及特殊功能寄存器SFR等部分構成。其存儲器在物理上設計成程序存儲器和數(shù)據(jù)存儲器兩個獨立的空

8、間,片內程序存儲器的容量為4KB,片內數(shù)據(jù)存儲器為128個字節(jié)。80C51單片機有4個8位的并行I/O口:P0口,P1口,P2口和P3口。各個接口均由接口鎖存器,輸出驅動器和輸入緩沖器組成。P1口是唯一的但功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲存儲器和數(shù)據(jù)存儲器擴展時,P0可作為分時復用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT09C51的一些特殊功能口,同時為閃爍編程和編程校驗接收一些控制信號。2單元電路設計(1)搶

9、答電路圖4.3 搶答電路參考電路如圖4.3所示。該電路完成兩個功能:一是分辨出選手按鍵的先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。如有再次搶答需由主持人將S開關重新置,“清除”然后再進行下一次搶答。(2)時序控制電路設計時序控制電路是搶答器設計的關鍵,它要完成以下功能:a主持人將控制開關撥到"開始"位置時,揚聲器發(fā)聲,搶答電路和定時電路進人正常搶答工作狀態(tài)。 b當參賽選手按動搶答鍵時,揚聲器發(fā)聲,搶答電路和定時電路停止工作。(3)復位電路的設計外部中斷和內部中斷并存,單片機硬件復位端,只要持續(xù)4個機器周期的高電平即可實現(xiàn)復位,硬件

10、復位后的各狀態(tài)可知寄存器以及存儲器的值都恢復到了初始值,因為本設計中功能中有倒計時時間的記憶功能,所以不能對單片機進行硬件復位,只能用軟件復位,軟件復位實際上就是當程序執(zhí)行完之后,將程序通過一條跳轉指令讓它完成復位。復位電路如下圖示。圖4.4 復位電路(4)外部震蕩電路外部震蕩電路單片機必須在AT89C51的驅動下才能工作,在單片機內部有一個時鐘震蕩電路,只需要外接一個振蕩器就能產(chǎn)生一定的時鐘信號送到單片機內部的各個單元,外部震蕩電路如下圖所示。圖4.5 外部振蕩電路(5)報警電路設計報警電路用于報警,當遇到報警信號時,發(fā)出警報。一般喇叭是一種電感性。80C51驅動喇叭的信號為各種頻率的脈沖。

11、選手在設定的時間內搶答時,實現(xiàn):優(yōu)先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“清除”和“開始”狀態(tài)開關。圖4.6是數(shù)字搶答器的報警電路圖。圖4.6 報警電路圖五 軟件系統(tǒng)設計1系統(tǒng)總體軟件設計八路數(shù)字搶答器要求有記憶功能,一次時間設置完,復位后不需重新進行時間設定,通過鍵盤掃描輸出按鍵信息,再通過單片機將它轉換成能在七段數(shù)碼管上顯示字型碼。當搶答完畢時,會在數(shù)碼管上顯示搶答者數(shù)字號碼提示以表示搶答成功,采取獨立式鍵盤,可以實現(xiàn)8路搶答。在顯示時使用的是七段數(shù)碼管顯示在本設計中根據(jù)實際情況采用的是動態(tài)顯示

12、方法。并通過查表發(fā)將其在數(shù)碼管上顯示出來,其中P1口為字型碼輸入端,P2口低6位為字選段輸入端。通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。軟件去抖動,如果“開始鍵”按下就向下執(zhí)行,否則就跳到開始。采用發(fā)聲報警,起到報警作用。如果想調節(jié)搶答時間或答題時間,按"搶答時間調節(jié)"鍵或"答題時間調節(jié)"鍵進入調節(jié)狀態(tài),此時會顯示現(xiàn)在設定的搶答時間或回答時間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"鍵,時間LED上會顯示改變后的時間,調整范圍為0s99s, 0s時再減1s會跳到99s,99s時再加1s會變到0

13、s。 主持人按"搶答開始"鍵,會有提示音,并立刻進入搶答倒計時(預設30s搶答時間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進入回答倒計時(預設60s搶答時間),不進行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到小于5s會每秒響一下提示音。 如倒計時期間,主持人想停止倒計時可以隨時按"停止"按鍵,系統(tǒng)會自動進入準備狀態(tài),等待主持人按"搶答開始"進入下次搶答計時。 如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下"停止"

14、 鍵為止。2軟件調試的基本方法軟件的設計與調試實行分模塊實現(xiàn)方法。本設計軟件調試中的分模塊包括顯示功能模塊、調正時間功能模塊,搶答功能模塊以報警功能模塊。各個獨立模塊功能調試成功后,將這些模塊程序通過主程序合并在一起,最后再對合并后的總程序進行調試。各軟件模塊首先要通過PC和仿真器進行軟件調試,當仿真效果符合要求后,再下載進單片機看是否能正常工作。編程語言的軟件設計采用MCS-51匯編語言編寫,所使用的調試軟件包括proteus和Keil_C51。(1)軟件調試問題分析LED顯示問題:本次設計的最終方案是采用LED顯示屏實現(xiàn)顯示功能,最初數(shù)碼管顯示不正常,出現(xiàn)閃爍現(xiàn)象。通過調試發(fā)現(xiàn)這是由于延時

15、時間選擇不當會使人眼產(chǎn)生視覺暫留效果,每一次顯示時都必須加入適當?shù)臅r間延時。由于一開始所選用的延時時間太短,因此出現(xiàn)閃爍現(xiàn)象,在增加顯示延時之后,數(shù)碼管顯示正常。蜂鳴器異常啟動問題:蜂鳴器的啟動/關閉是通過單片機輸出的控制信號來實現(xiàn)的,當當前時間與鬧鐘設置時間比較吻合時,單片機將對鬧鈴控制口執(zhí)行取反命令,從而啟動蜂鳴器發(fā)聲。一開始編寫程序時,沒有對口的最初狀態(tài)作正確設置,由于系統(tǒng)開機復位后,口處于高電平狀態(tài),因此出現(xiàn)一開機蜂鳴器就處于啟動狀態(tài)的情況。通過在主程序最開始加入對口取零命令后,蜂鳴器啟動/關閉控制恢復正常。(2)按鍵消抖問題在最初編寫程序時,鍵盤控制部分按照常例加入了按鍵消抖程序。在

16、實際調試中,發(fā)現(xiàn)按鍵出現(xiàn)反應不靈敏現(xiàn)象。這是因為在鍵盤控制程序中,除了消抖程序外,還加入了按鍵提示音程序(每次按壓鍵盤時,蜂鳴器發(fā)出“嗶”的一聲提示音)。由于在調用提示音子程序時,實際上已實現(xiàn)了一次時間的延時,因此再加入按鍵消抖程序的延時后,致使延時時間過長而出現(xiàn)按鍵反應不靈敏問題。通過調試發(fā)現(xiàn)提示音子程序本身所產(chǎn)生的延時已能夠滿足按鍵消抖時間延遲的要求,因此在鍵盤控制程序中無需再加入專門的按鍵消抖程序。在去除按鍵消抖程序后,按鍵控制靈敏度恢復正常。3系統(tǒng)仿真用到了Proteus、Keil軟件,集成調試環(huán)境;繼承了編輯器、編譯器、調試器,支持軟件模擬,支持項目管理功能強大的觀察窗口,支持所有的

17、數(shù)據(jù)類型。數(shù)據(jù)結構顯示,一目了然,支持ASM(匯編)、C語言,多語言多模塊源程序混合調試,在線直接修改、編譯、調試源程序,錯誤指令定位。功能很強大。用于對程序的調試和編輯。(1)Keil仿真界面:圖5.1 Keil仿真界面圖(2)Proteus仿真界面:圖5.2 Proteus仿真界面圖六 調試1打開電源開關,數(shù)碼管顯示“FFF”。2設定"搶答"倒計時時間。3設定"答題"倒計時時間。4測試各組搶答按鍵。試按一下各組的搶答按鈕,應立即顯示該組的組別數(shù)字,同時機內喇叭發(fā)出"叮咚"的提示音。5啟動搶答倒計時,開始搶答。"FFF&q

18、uot;狀態(tài)下,當主持人宣布搶答開始時,馬上按一下"搶答"鍵,屏幕顯示所設定的搶答倒計時時間并開始倒計時,提示倒計時時間馬上臨近結束。倒計時到0以后,儀器發(fā)出"叮咚"的結束提示音,同時顯示屏返回"FFF"待命狀態(tài)。在"搶答"倒計時中,如果有參賽組搶答,儀器屏幕立即顯示該組的組別號,同時發(fā)出"叮咚"的搶答成功提示音。需要返回"FFF"待命狀態(tài),按"取消"鍵即可。6啟動答題倒計時"FFF"狀態(tài)下,或有參賽組搶答成功后,需要開始答題的計時時,

19、按"答題計時"鍵,屏幕顯示所設定的答題倒計時時間并開始倒計時,提示倒計時時間馬上臨近結束。倒計時到0以后,儀器發(fā)出"丁冬"的結束提示音,同時顯示屏返回"FFF"待命狀態(tài)。7提前取消倒計時無論是"搶答"還是"答題"的倒計時時間,需要提前退出,只要按一下"取消"鍵,即可返回到"FFF"待命狀態(tài)。8時間調整如果想調節(jié)搶答時間或答題時間,按“加一”鍵或“減一”鍵進入調節(jié)狀態(tài),此時會顯示現(xiàn)在設定的搶答時間或回答時間值,如想加一秒按一下"加1s"鍵

20、,如果想減一秒按一下“減1s”鍵,時間LED上會顯示改變后的時間,調整范圍為099s, 0s時再減1s會跳到99,99s時再加1s會變到0s。9違規(guī)搶答當主持人讀題過程中,而未宣布搶答開始時按下?lián)尨鸢粹o。主顯示屏將顯示該違規(guī)組號,及發(fā)出提示音。及該組的紅燈亮起。通過調試,結果完全符合搶答器設計要求。七 總結這次課程設計,完成八路數(shù)字搶答器的設計,期間遇到了一些問題,通過查閱課本和其他資料、互相討論和老師的熱心指導,最終設計出電路圖,又經(jīng)過上機仿真,不斷修改后完成設計。在這個過程中,我也曾經(jīng)因為實踐經(jīng)驗的缺乏失落過,也曾經(jīng)仿真成功而熱情高漲。特別是Proteus仿真軟件的使用,對軟件的使用一點都

21、不熟悉,要從頭開始學起。經(jīng)過這次的課程設計發(fā)現(xiàn)了自己的問題,就是理論知識和實際操作沒有很好的結合在一起,遇到問題不能及時的發(fā)現(xiàn),平時只注意了理論知識而忽略了實際操作。經(jīng)過這次課程設計以后希望我能在以后的工作中能培養(yǎng)自己的動手操作能力。參考文獻1艾德才.微型計算機原理與接口技術M. 高等教育出版社,1988.2沈美明.IBM-PC匯編語言程序設計M. 清華大學出版社,2000.3任致程.經(jīng)典集成電路400例M. 機械工業(yè)出版社,2002.4薛棟梁.單片機原理及應用M. 中國水利水電出版社,2001.5謝筑森.單片機開發(fā)與應用設計M. 中國科學技術大學出版社,1996.程序清單OK EQU 20H

22、;搶答開始標志位 RING EQU 22H;響鈴標志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#30;初設搶答時間為30s MOV R2,#60;初設答題時間為60s MOV TMOD,#11H;設置未定時器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 S

23、ETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允許四個中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一開始就運行定時器,以開始顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了;=查詢程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未開始搶答時候顯示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答

24、查詢 ACALL BARK;按鍵發(fā)聲 MOV A,R1 MOV R6,A;送R1->R6,因為R1中保存了搶答時間 SETB OK;搶答標志位,用于COUNT只程序中判斷是否查詢搶答 MOV R7,#01H ;讀搶答鍵數(shù)據(jù)信號標志,這里表示只讀一次有用信號 MOV R3,#0AH;搶答只顯示計時,滅號數(shù) AJMP COUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,F

25、ALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START;=非法搶答處理程序=FALSE1: MOV R3,#01H AJMP ERRORFALSE2: MOV R3,#02H AJMP ERRORFALSE3: MOV R3,#03H AJMP ERRORFALSE4: MOV R3,#04H AJMP ERRORFALSE5: MOV R3,#05H AJMP ERRORFALSE6: MOV R3,#06H AJMP ERRORFALSE7: MOV R3,#07H AJMP ERRORFALSE8: MOV R3,#08H AJMP ERROR;

26、=INT0(搶答時間R1調整程序)=INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在兩個時間LED上顯示R1 JNB P3.4,INC0 JNB P3.5,DEC0 JNB P3.1,BACK0 AJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0

27、SUBDEC0: MOV A,R1 JZ SETR1;如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;=INT1(回答時間R2調整程序)=INT1SUB:MOV A,R2 MOV B,#0AH DIV ABMOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJ

28、NE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;=倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=REPEAT:MOV A,R2 ;使用錦囊時重新計時 MOV R6,A CLR RING COUNT: MOV R0,#00H;重置定時器中斷次

29、數(shù) MOV TH1,#3CH MOV TL1,#0B0H;重置定時器RECOUNT:MOV A,R6;R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6 MOV B,#0AH DIV AB;除十分出個位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;個位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取個位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s會提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下運行 CLR RING AJMP CHECKFULL: CJNE

30、 A,#14H,CHECK;下面是1s的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV A,R6 JZ QUIT;計時完畢 MOV R0,#00H DEC R6;一秒標志減1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下運行,否者跳到查"停/顯示" DEC R6;計時一秒R6自動減1 MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止鍵退出 JNB OK,CHECKK ;只在回答倒計時才有效 AJMP NEXTTCHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊N

31、EXTT: ACALL DISPLAY JB OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT: MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNT TZ1:JMP TRUE7 TZ2:JMP TRUE8 QUIT: CLR OK;如果按下了"停止鍵"

32、執(zhí)行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACALL BARK MOV A,R2 MOV R6,A;搶答時間R2送R6 MOV R3,#01H CLR OK;因為答題的計時不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK MOV A,R2MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R

33、3,#04H CLR OK AJMP COUNTTRUE5:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;=犯規(guī)搶答程序=ERROR: MOV

34、 R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#06H,FLASH;0.3s向下運行->滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV R0,#00H MOV R3,34H;取回號數(shù) MOV R5,#0BH MOV R4,#0BH;顯示FF和號數(shù) AJMP CH

35、ECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;=顯示程序=DISPLAY:MOV DPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出, MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY2 RETDAT1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論