基于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),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、專業(yè)論文題目:基于80C51單片機(jī)的八路搶答器設(shè)計(jì)摘要:八路智力搶答器是一個可供八個參賽組進(jìn)行智力競賽的電路裝置,該裝置主要是由單片機(jī)最小系統(tǒng)、控制電路(八個選手搶答按鈕;三個主持人控制按鈕;四個修改按鈕)、數(shù)碼顯示電路與蜂鳴器電路組成的。單片機(jī)(MCU)是目前在電氣控制技術(shù)中廣泛應(yīng)用的重要元件。它具有體積小,穩(wěn)定性高,應(yīng)用范圍廣,控制能力強(qiáng),升級改造容易等諸多優(yōu)點(diǎn)。本論文介紹采用ATMEL公司AT89S52單片機(jī)設(shè)計(jì)八路智能搶答器。軟件采用匯編語言編程,匯編語言屬于計(jì)算機(jī)領(lǐng)域的低級語言,具有簡明易懂,執(zhí)行效率高等的優(yōu)點(diǎn)。智能八路搶答器具有搶答時(shí)間與答題時(shí)間調(diào)整,搶答錯誤報(bào)警提示等功能,可以廣

2、泛應(yīng)用于各類知識競賽。關(guān)鍵詞:搶答器;單片機(jī); 硬件系統(tǒng); 軟件編程基于80C51單片機(jī)的八路搶答器設(shè)計(jì)一、系統(tǒng)概述與原理方框圖在文中,我對八路搶答器的總體設(shè)計(jì)及其主要的功能特點(diǎn)進(jìn)行簡單的分析,并給出它的特點(diǎn),實(shí)現(xiàn)的功能以及系統(tǒng)的簡單操作,以對單片機(jī)及其控制系統(tǒng)的了解。(一)單片機(jī)技術(shù)發(fā)展的概述與系統(tǒng)問題的提出目前,單片機(jī)正朝著高性能和多品種方向發(fā)展,單片機(jī)的發(fā)展正朝著CMOS化,低功耗,小體積,大容量,高性能,低價(jià)格和外圍電路的內(nèi)裝化等幾個方面發(fā)展。近幾年,由于某種原因CHMOS技術(shù)的進(jìn)步,大大地促進(jìn)了單片機(jī)的CMOS化,此種芯片除了低功耗外,還具有功耗的可控性,使單片機(jī)可以工作在功耗精細(xì)管

3、理狀態(tài),特別是IIC,API等串行總線的引入,可以使單片機(jī)的引腳設(shè)計(jì)得更少,單片機(jī)系統(tǒng)結(jié)構(gòu)更加簡化及規(guī)范化。 我們設(shè)計(jì)出的8路搶答器是一種基于MCS-51單片機(jī)的硬件和軟件設(shè)計(jì)及實(shí)現(xiàn)方法,這種電路設(shè)計(jì)具有按鍵有效提示,輸入錯誤提示,控制報(bào)警電路,在線修改功能等多種功能,保密性強(qiáng),靈活性高,特別適用于家庭!辦公室!學(xué)生宿舍及賓館等場所。它具有全集成化,智能化,高精度,高性能,高可靠性和低價(jià)格等優(yōu)點(diǎn),是一個值得推廣的一種方法。接下來我們就對方案與設(shè)計(jì)原理方框圖進(jìn)行比較分析。(二)設(shè)計(jì)思路與系統(tǒng)組成及主要特點(diǎn)為了使設(shè)計(jì)更具有針對性,使用性更強(qiáng),我對其進(jìn)行精心的設(shè)計(jì),在設(shè)計(jì)過程中,我們想到了很多的設(shè)計(jì)

4、方案。1設(shè)計(jì)思路設(shè)計(jì)一個八路搶答器,可同時(shí)供8名選手或者8個代表隊(duì)參加比賽,他們的編號分別為18,各用一個搶答器按鈕,按鈕的編號與選手的編號相對應(yīng),分別設(shè)為S1S8。節(jié)目主持人設(shè)置一組控制開關(guān),用來控制系統(tǒng)的清零和搶答器的開始,修改搶答時(shí)間與答題時(shí)間,如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按"搶答時(shí)間調(diào)節(jié)"鍵或"答題時(shí)間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài)。并且搶答器具有數(shù)據(jù)鎖存和顯示的功能,搶答開始,若有選手按動搶答按鈕,編號立即鎖存,并在LED數(shù)碼管上顯示出選手的編號,同時(shí)蜂鳴器給出音響提示,此外,要封鎖輸入電路,禁止其他選手搶答,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清

5、零為止。2 系統(tǒng)的主要特點(diǎn)有:1)該產(chǎn)品的互換性好,響應(yīng)速度快,抗干擾能力強(qiáng),外圍電路簡單易懂,因此相對來說體積小。2) 該系統(tǒng)能用軟件的方式設(shè)計(jì)硬件,所以用軟件方式設(shè)計(jì)的系統(tǒng)向硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)開發(fā)軟件自動完成的,易操作。3) 具有具體數(shù)字顯示的功能。4) 可以從以前的組合設(shè)計(jì)轉(zhuǎn)向真正的自由設(shè)計(jì),所以設(shè)計(jì)的移植性好,效率高。可適合大規(guī)模的現(xiàn)場制作。5) 利用按鈕進(jìn)行輸入,輸入簡單。6) 具有智能報(bào)警的功能,當(dāng)選定之后就馬上鎖定,并且發(fā)出音樂聲音。大大提高了搶答器的可靠性。7) 因?yàn)檎麄€系統(tǒng)可集成在一個芯片上,因此體積小,功耗低,可靠邊性更高。3系統(tǒng)組成 硬件電路框架如圖1.2所示:硬件部

6、分由單片機(jī)控制模塊、按鍵模塊、蜂鳴器模塊和數(shù)碼顯示模塊組成。圖1.2二、系統(tǒng)硬件電路的設(shè)計(jì)(元器件選擇) 硬件電路應(yīng)能完成以下功能:當(dāng)主持人按下開始鍵時(shí),參與選手對主持人提出的問題要在最短的時(shí)間內(nèi)作出判斷 ,并按下?lián)尨鸢存I回答。當(dāng)?shù)谝粋€人按下按鍵后,則在顯示器上顯示此參賽選手號碼并進(jìn)行聲音提示,同時(shí)電路將其他搶答按鍵封鎖,使其不起作用。若有人在主持人按下開始鍵之前按鍵,應(yīng)有違規(guī)提示。當(dāng)選手開始答題時(shí),電路具有倒計(jì)時(shí)功能,倒計(jì)時(shí)時(shí)間可以設(shè)置并顯示,倒計(jì)時(shí)時(shí)間到時(shí)提醒主持人時(shí)間到。如果在規(guī)定時(shí)間內(nèi)沒有人搶答則蜂鳴器報(bào)警提示?;卮鹜昊虺瑫r(shí)后,由主持人將所有按鍵恢復(fù),重新開始下一輪答題。(一)單片機(jī)控

7、制模塊 該模塊采用AT89C52單片機(jī)作為核心控制元件,它對整個搶答器起到控制作用。當(dāng)主持人按下開始按鍵后,選手就可以按下自己的搶答鍵進(jìn)行搶答,當(dāng)主持人沒有按下開始鍵時(shí),選手按下自己的搶答鍵是無效的。AT89C52(二)按鍵輸入模塊(加口電路的介紹)該模塊主要由兩部分組成,一部分是主持人按鍵起到控制的作用,一部分是選手按鍵。其中,主持人按鍵起到控制的作用,當(dāng)主持人沒有按下開始鍵時(shí),選手不能搶答。另外,當(dāng)選手答題完畢后,主持人要按下復(fù)位鍵,準(zhǔn)備進(jìn)行下一輪的搶答,當(dāng)在規(guī)定的時(shí)間內(nèi),沒有選手搶答時(shí),主持人也要按下復(fù)位鍵,使其進(jìn)入下一輪的搶答。按鍵開關(guān)是實(shí)現(xiàn)人機(jī)對話的最簡單地輸入設(shè)備,通過它能隨時(shí)發(fā)出

8、各種控制指令和數(shù)據(jù)到單片機(jī)。按鍵輸入模塊的基本工作原理:當(dāng)有按鍵被按下時(shí)按鍵所接的單片機(jī)端口引腳接地,其引腳電平為0,未按下時(shí)引腳電平為1。所以,判斷按鍵開關(guān)是否有信號輸入,是通過測量按鍵所接的引腳電平高低,當(dāng)檢測到按鍵所接引腳的電平為0時(shí),說明該按鍵被按下,然后再檢測到電平為1時(shí),說明按鍵按下后又被放開,完成一次信號輸入的過程。單片機(jī)復(fù)位電路包括片內(nèi)、片外兩部分。外部復(fù)位電路就是為內(nèi)部復(fù)位電路提供兩個機(jī)器周期以上的高電平而設(shè)計(jì)的。通常采用上電自動復(fù)位和按鍵手動復(fù)位兩種方式。當(dāng)運(yùn)行出錯或進(jìn)入死循環(huán)時(shí),可按復(fù)位鍵重新運(yùn)行。復(fù)位操作可使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC0000H,這表

9、明程序從0000H地址單元開始執(zhí)行。 按鍵電平復(fù)位電路單片機(jī)有硬件復(fù)位端,只要輸入持續(xù)4個機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位。硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,應(yīng)為本設(shè)計(jì)功能中有倒計(jì)時(shí)時(shí)間的記憶功能,所以不能對單片機(jī)進(jìn)行硬件復(fù)位,只能用軟復(fù)位。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序的初始位置。(三)外部晶振模塊外部振蕩電路單片機(jī)必須在AT89C52的驅(qū)動下才能工作.在單片機(jī)內(nèi)部有一個時(shí)鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時(shí)鐘信號送到單片機(jī)內(nèi)部的各個單元。單片機(jī)內(nèi)部有一個高增益的反相放大器,用于構(gòu)成振蕩器,反相放大器的輸入端為XT

10、AL1,輸出端為XTAL2。內(nèi)部振蕩方式:是在XTAL1和XTAL2引腳兩端跨接石英晶體振蕩器和兩個電容構(gòu)成穩(wěn)定的自激振蕩電路。外部振蕩方式:外部振蕩方式就是把外部已有的時(shí)鐘信號引入單片機(jī)內(nèi)。 電容C1和C2通常取30pF,對振蕩頻率有微調(diào)作用。晶振頻率范圍是1.2MHz12MHz。(四)蜂鳴器模塊該模塊主要是起到提醒和報(bào)警的作用,當(dāng)主持人按下開始鍵時(shí),蜂鳴器響,當(dāng)有選手犯規(guī)時(shí),蜂鳴器也要發(fā)出聲音,還有就是當(dāng)?shù)褂?jì)時(shí)開始時(shí),蜂鳴器就要發(fā)出報(bào)警的聲音。單片機(jī)I/O引腳以軟件延時(shí)方法產(chǎn)出一定頻率的方波輸出,控制接在該引腳的三極管導(dǎo)通和截止,從而會使接在三極管上的蜂鳴器發(fā)出聲響。其發(fā)生模塊由三部分組成

11、:(1)產(chǎn)生方波輸出、(2)確定發(fā)生頻率、(3)確定維持發(fā)生的時(shí)間。蜂鳴器發(fā)聲時(shí)工作在三極管的飽和狀態(tài),不發(fā)聲時(shí)工作在三極管的截止?fàn)顟B(tài)。三極管在電路中起到開關(guān)與放大作用,即:發(fā)射結(jié)正偏,集電結(jié)反偏時(shí)三極管起放大作用;發(fā)射結(jié)正偏,集電結(jié)正偏時(shí)三極管起飽和(開關(guān)閉合)作用;發(fā)射結(jié)反偏 集電結(jié)反偏時(shí)三極管起截止(開關(guān)斷開)作用。電路中發(fā)射極與集電極上的電阻是限流電阻,起到保護(hù)三極管作用。在這里使用的是無緣蜂鳴器,工作時(shí)需要接入音頻方波,改變方波頻率可以得到不同音調(diào)的聲音。(五)數(shù)字顯示模塊(加四位一體數(shù)碼管的原理) 圖2.5.1 圖2.5.2圖2.5.3該模塊主要顯示兩部分內(nèi)容。一部分是參加選手的編

12、號,另一部分是顯示倒計(jì)時(shí)。圖2.5.1中R2R8七個330歐姆電阻起到限流作用,可用來控制顯示管的亮度,亮度隨阻值的增大而增大。圖2.5.2中數(shù)碼管上的8個引腳依照A、B、C、D、E、F、G、DP與單片機(jī)P0.0、P0.1、P0.2 、P0.3、P0.4、P0.5、P0.6、P0.7相連接的陽極接口。BIT1、BIT2、BIT3、BIT4是數(shù)碼管的片選,對應(yīng)選擇第幾個數(shù)碼管可以亮。對于圖2.5.3中的七段數(shù)碼管,各段二極管的陰極連接在一起作為公共端,這樣可以使驅(qū)動電路簡單,將陰極連接在一起的稱為共陰極數(shù)碼管,用高電平驅(qū)動數(shù)碼管各段的陽極,其COM端接地。(六)搶答器電路接線圖三、系統(tǒng)的軟件程序

13、設(shè)計(jì)(一)搶答器功能介紹1如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按"搶答時(shí)間調(diào)節(jié)"鍵或"答題時(shí)間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"鍵,時(shí)間LED上會顯示改變后的時(shí)間,調(diào)整范圍為0s99s, 0s時(shí)再減1s會跳到99,99s時(shí)再加1s會變到0s。 2主持人按"搶答開始"鍵,會有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)60s搶答時(shí)間),不進(jìn)行搶

14、答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時(shí)間到小于5s會每秒響一下提示音。 3如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按"停止"按鍵,系統(tǒng)會自動進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開始"進(jìn)入下次搶答計(jì)時(shí)。 4如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下"停止" 鍵為止。 5P3.0為開始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入 數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時(shí)間調(diào)整結(jié),P3.3回答時(shí)間調(diào)整,P3

15、.4為時(shí)間加1調(diào)整,P3.5為時(shí)間減1調(diào)整。(二)程序流程(三)程序設(shè)計(jì)OK EQU 20H;搶答開始標(biāo)志位RING EQU 22H;響鈴標(biāo)志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30;初設(shè)搶答時(shí)間為30s MOV R2,#60;初設(shè)答題時(shí)間為60s MOV TMOD,#11H;設(shè)置未定時(shí)器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖 MOV TH

16、1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允許四個中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一開始就運(yùn)行定時(shí)器,以開始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了;=查詢程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未開始搶答時(shí)候顯示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖動

17、,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢 ACALL BARK;按鍵發(fā)聲 MOV A,R1 MOV R6,A;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間 SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答 MOV R3,#0AH;搶答只顯示計(jì)時(shí),滅號數(shù) AJMP COUNT;進(jìn)入倒計(jì)時(shí)程序,"查詢有效搶答的程序"在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,FALS

18、E6 JNB P1.6,TZ1 JNB P1.7,TZ2 AJMP STARTTZ1: JMP FALSE7TZ2: JMP FALSE8;=非法搶答處理程序=FALSE1: ACALL BARK;按鍵發(fā)聲 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: AC

19、ALL BARK MOV R3,#06H AJMP ERRORFALSE7: ACALL BARK MOV R3,#07H AJMP ERRORFALSE8: ACALL BARK MOV R3,#08H AJMP ERROR;=INT0(搶答時(shí)間R1調(diào)整程序)=INT0SUB: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在兩個時(shí)間LED上顯示R1 JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCO JNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO JNB P

20、3.1,BACK0;P3.1為確定鍵,如按下跳到BACKO AJMP INT0SUBINC0:MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0

21、: RETI ;=INT1(回答時(shí)間R2調(diào)整程序)=INT1SUB: MOV A,R2 MOV B,#0AH DIV AB MOV 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 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 A

22、CALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;=倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)=COUNT: MOV R0,#00H;重置定時(shí)器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H;重置定時(shí)器RECOUNT: MOV A,R6;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6 MOV B,#0AH DIV AB;除十分出個位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;個位存于(31H) MOV R5,30H;取十位 MO

23、V R4,31H;取個位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s會提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK;下面是1s的情況,響并顯示號數(shù)并清R0,重新計(jì) SETB RING MOV A,R6 JZ QUIT;計(jì)時(shí)完畢 MOV R0,#00H DEC R6;一秒標(biāo)志減1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下運(yùn)行,否者跳到查"停/顯示

24、" DEC R6;計(jì)時(shí)一秒R6自動減1 MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止鍵退出 ACALL DISPLAY JB OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT: JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TZ3 JNB P1.7,TZ4 AJMP RECOUNT TZ3: JMP TRUE7 TZ4:

25、 JMP TRUE8 QUIT: CLR OK;如果按下了"停止鍵"執(zhí)行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACALL BARK;按鍵發(fā)聲 MOV A,R2 MOV R6,A;搶答時(shí)間R2送R6 MOV R3,#01H CLR OK;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR

26、 OK AJMP COUNTTRUE4: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#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

27、 A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;=犯規(guī)搶答程序=ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH;0.5s向下運(yùn)行->滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1;下面是1s的情況,響并顯示號數(shù)并清R0,重新計(jì) SETB RING MOV R0

28、,#00H MOV R3,34H;取回號數(shù) MOV R5,#0BH MOV R4,#0BH;顯示FF和號數(shù) AJMP CHECK1CHECK1: 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 DELAY MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DP

29、TR MOV P2,#0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY RETDAT1: DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;"滅","1","2","3","4","5","6","7","8","9","滅","F"DAT2: DB 3fh,06h,5bh,4fh,66h,6d

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論