基于80C51單片機(jī)的八路搶答器設(shè)計(jì)_第1頁(yè)
基于80C51單片機(jī)的八路搶答器設(shè)計(jì)_第2頁(yè)
基于80C51單片機(jī)的八路搶答器設(shè)計(jì)_第3頁(yè)
基于80C51單片機(jī)的八路搶答器設(shè)計(jì)_第4頁(yè)
基于80C51單片機(jī)的八路搶答器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

2、泛應(yīng)用于各類(lèi)知識(shí)競(jìng)賽。關(guān)鍵詞:搶答器;單片機(jī); 硬件系統(tǒng); 軟件編程基于80C51單片機(jī)的八路搶答器設(shè)計(jì)一、系統(tǒng)概述與原理方框圖在文中,我對(duì)八路搶答器的總體設(shè)計(jì)及其主要的功能特點(diǎn)進(jìn)行簡(jiǎn)單的分析,并給出它的特點(diǎn),實(shí)現(xiàn)的功能以及系統(tǒng)的簡(jiǎn)單操作,以對(duì)單片機(jī)及其控制系統(tǒng)的了解。(一)單片機(jī)技術(shù)發(fā)展的概述與系統(tǒng)問(wèn)題的提出目前,單片機(jī)正朝著高性能和多品種方向發(fā)展,單片機(jī)的發(fā)展正朝著CMOS化,低功耗,小體積,大容量,高性能,低價(jià)格和外圍電路的內(nèi)裝化等幾個(gè)方面發(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)更加簡(jiǎn)化及規(guī)范化。 我們?cè)O(shè)計(jì)出的8路搶答器是一種基于MCS-51單片機(jī)的硬件和軟件設(shè)計(jì)及實(shí)現(xiàn)方法,這種電路設(shè)計(jì)具有按鍵有效提示,輸入錯(cuò)誤提示,控制報(bào)警電路,在線修改功能等多種功能,保密性強(qiáng),靈活性高,特別適用于家庭!辦公室!學(xué)生宿舍及賓館等場(chǎng)所。它具有全集成化,智能化,高精度,高性能,高可靠性和低價(jià)格等優(yōu)點(diǎn),是一個(gè)值得推廣的一種方法。接下來(lái)我們就對(duì)方案與設(shè)計(jì)原理方框圖進(jìn)行比較分析。(二)設(shè)計(jì)思路與系統(tǒng)組成及主要特點(diǎn)為了使設(shè)計(jì)更具有針對(duì)性,使用性更強(qiáng),我對(duì)其進(jìn)行精心的設(shè)計(jì),在設(shè)計(jì)過(guò)程中,我們想到了很多的設(shè)計(jì)

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

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

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

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

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

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

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

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

12、七個(gè)330歐姆電阻起到限流作用,可用來(lái)控制顯示管的亮度,亮度隨阻值的增大而增大。圖2.5.2中數(shù)碼管上的8個(gè)引腳依照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相連接的陽(yáng)極接口。BIT1、BIT2、BIT3、BIT4是數(shù)碼管的片選,對(duì)應(yīng)選擇第幾個(gè)數(shù)碼管可以亮。對(duì)于圖2.5.3中的七段數(shù)碼管,各段二極管的陰極連接在一起作為公共端,這樣可以使驅(qū)動(dòng)電路簡(jiǎn)單,將陰極連接在一起的稱(chēng)為共陰極數(shù)碼管,用高電平驅(qū)動(dòng)數(shù)碼管各段的陽(yáng)極,其COM端接地。(六)搶答器電路接線圖三、系統(tǒng)的軟件程序設(shè)計(jì)(一)搶答器功能介紹1如果想調(diào)節(jié)搶答時(shí)間或答

13、題時(shí)間,按搶答時(shí)間調(diào)節(jié)鍵或答題時(shí)間調(diào)節(jié)鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下加1s鍵,如果想減一秒按一下-1s鍵,時(shí)間LED上會(huì)顯示改變后的時(shí)間,調(diào)整范圍為0s99s, 0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。 2主持人按搶答開(kāi)始鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)60s搶答時(shí)間),不進(jìn)行搶答查詢(xún),所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。 3如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按停止按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人

14、按搶答開(kāi)始進(jìn)入下次搶答計(jì)時(shí)。 4如果主持人未按搶答開(kāi)始鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下停止 鍵為止。 5P3.0為開(kāi)始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入 數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時(shí)間調(diào)整結(jié),P3.3回答時(shí)間調(diào)整,P3.4為時(shí)間加1調(diào)整,P3.5為時(shí)間減1調(diào)整。(二)程序流程(三)程序設(shè)計(jì)OK EQU 20H;搶答開(kāi)始標(biāo)志位RING EQU 22H;響鈴標(biāo)志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTOR

15、G 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 TH1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允許四個(gè)中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR

16、0;一開(kāi)始就運(yùn)行定時(shí)器,以開(kāi)始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了;=查詢(xún)程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未開(kāi)始搶答時(shí)候顯示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖動(dòng),如果開(kāi)始鍵按下就向下執(zhí)行,否者跳到非法搶答查詢(xún) ACALL BARK;按鍵發(fā)聲 MOV A,R1 MOV R6,A;送R1-R6,因?yàn)镽1中保存了搶答時(shí)間 SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢(xún)搶答 MOV R3,#0AH;搶答只顯示計(jì)時(shí)

17、,滅號(hào)數(shù) AJMP COUNT;進(jìn)入倒計(jì)時(shí)程序,查詢(xún)有效搶答的程序在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,FALSE6 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 AJM

18、P ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL 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

19、 DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在兩個(gè)時(shí)間LED上顯示R1 JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCO JNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO JNB P3.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

20、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: 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 INT1SU

21、BINC1: 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 ACALL 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,#0B

22、0H;重置定時(shí)器RECOUNT: MOV A,R6;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6 MOV B,#0AH DIV AB;除十分出個(gè)位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;個(gè)位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取個(gè)位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s會(huì)提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK;下面是1s的情況,響并

23、顯示號(hào)數(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)行,否者跳到查停/顯示 DEC R6;計(jì)時(shí)一秒R6自動(dòng)減1 MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止鍵退出 ACALL DISPLAY JB OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢(xún)搶答,否者跳過(guò)查詢(xún)繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT: JNB P1.0,TRUE1 JNB P

24、1.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: 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í)不再查詢(xún)搶答,所以就鎖了搶答 AJMP COUNTTR

25、UE2: 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 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 M

26、OV 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 R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯規(guī)號(hào)數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH;0.5s向下運(yùn)行-滅并停響 CLR RING MOV R3

27、,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì) SETB RING MOV R0,#00H MOV R3,34H;取回號(hào)數(shù) MOV R5,#0BH MOV R4,#0BH;顯示FF和號(hào)數(shù) AJMP CHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;=顯示程序=DISPLAY: MOV DPTR,#DAT1;查表顯示程序,利用P0口做

28、段選碼口輸出/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+DPTR 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,滅,FDAT2: DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一個(gè)為零,其他

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論