基于單片機控制的智力競賽搶答器_第1頁
基于單片機控制的智力競賽搶答器_第2頁
基于單片機控制的智力競賽搶答器_第3頁
基于單片機控制的智力競賽搶答器_第4頁
基于單片機控制的智力競賽搶答器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南理工大學(xué)單片機課程設(shè)計報告基于單片機控制的智力競賽搶答器姓 名: 學(xué) 號: 專業(yè)班級: 指導(dǎo)老師: 所在學(xué)院: 2008年9月18日摘要本設(shè)計是在學(xué)習(xí)過單片機原理及應(yīng)用技術(shù)這門課程后,利用所學(xué)過的課堂知識,發(fā)揮自己的創(chuàng)新能力,并結(jié)合動手動腦能力,來設(shè)計一個由單片機控制的智力競賽搶答器,并完成系統(tǒng)的軟硬件設(shè)計及調(diào)試。它的基本要求是:能容許26組搶答;能顯示搶答組號;各組計分,并能計分顯示;比賽結(jié)束時,能發(fā)出報警聲。本設(shè)計中的控制系統(tǒng)核心是單片機AT89C51,它主要負責(zé)控制各個部分協(xié)調(diào)工作。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚聲器。元件為:晶振X1、電容C1、C2、C3、 電阻R

2、P1及7SEG-MPX4-CC-BLUE。設(shè)計內(nèi)容為:P1.0和P1.7由裁判控制,分別是搶答開始和停止鍵。P1.1P1.6是6組搶答的輸入口,P0口為數(shù)碼管的段選口,位選口用的是P2口的低4位,外部中斷0,P3.2為搶答記口,實現(xiàn)的對個隊進行加減記分,外部中斷1,P3.3實現(xiàn)了答題時間調(diào)整.P3.4P3.5分別實現(xiàn)了時間的加一和減一.P3.6為蜂鳴器的控制口。外部中斷和內(nèi)部中斷并存,單片機有硬件復(fù)位端,只要輸入持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位。外部還接有蜂鳴器用來發(fā)出報警音。采用7SEG-MPX4-CC-BLUE顯示,它是共陰極的由高電平點亮。系統(tǒng)仿真用到了偉福軟件和PROTUCE軟件,

3、通過仿真可以完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助。目錄1 概述3 1.1 單片機的應(yīng)用及課程設(shè)計的意義3 1.2 設(shè)計任務(wù)及要求3 1.3 設(shè)計思路32 系統(tǒng)總體方案及硬件設(shè)計4 2.1 控制系統(tǒng)組成4 2.2 硬件組成及所需原件42.3 實驗原理83軟件設(shè)計104 Proteus軟件仿真115課程設(shè)計體會12參考文獻13附1:源程序代碼14附2:系統(tǒng)原理圖221 概述1.1 單片機的應(yīng)用及課程設(shè)計的意義 單片機使一種特殊的計算機,它是在一塊半導(dǎo)體芯片上集成了CPU、存儲器RAM、ROM以及輸入與輸出接口電路的芯片。由于單片機的集成度高、功能強、通用性好,特別是它具有體積小

4、、重量輕、能耗低、價格便宜、可靠性高、抗干擾能力強和使用方便等獨特優(yōu)點,使單片機迅速得到了推廣應(yīng)用。單片機原理及應(yīng)用技術(shù)是電氣專業(yè)的主要專業(yè)與特色課程之一。在學(xué)完本課程之后,通過課程設(shè)計再次鞏固了所學(xué)的單片機基本原理,培養(yǎng)了我們運用所學(xué)知識和技能去分析和解決技術(shù)問題的能力,建立正確的設(shè)計思想,掌握設(shè)計的一般程序和方法。在設(shè)計中,鍛煉自己的抽象思維和編寫程序的能力。加深了對單片機課程的理解和熟練應(yīng)用。1.2 設(shè)計任務(wù)及要求設(shè)計一個用于智力競賽的搶答器,其功能的實現(xiàn)是由單片機控制的,滿足(1)能容許2-6組進行搶答。(2)能顯示搶答組號。(3)各組記分,并能記分顯示。(4)比賽結(jié)束時,能發(fā)出報警聲

5、。1.3 設(shè)計思路AT89C51單片機的P1.0和P1.7由裁判控制,分別是搶答開始和停止鍵。P1.1-P1.6是6組搶答的輸入口,P0口為數(shù)碼管的段選口,位選口用的是P2口的低4位,外部中斷0,P3.2為搶答記口,實現(xiàn)的對個隊進行加減記分,外部中斷1,P3.3實現(xiàn)了答題時間調(diào)整.P3.4 P3.5分別實現(xiàn)了時間的加一和減一.P3.6為蜂鳴器的控制口。外部中斷和內(nèi)部中斷并存,單片機有硬件復(fù)位端,只要輸入持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位。外部還接有蜂鳴器用來發(fā)出報警音。采用7SEG-MPX4-CC-BLUE顯示,它是共陰極的由高電平點亮。軟件設(shè)計部分由匯編語言編寫。系統(tǒng)仿真用到了偉福軟件和P

6、ROTUCE軟件,通過仿真可以完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助。2系統(tǒng)總體方案及硬件設(shè)計2.1 控制系統(tǒng)組成控制系統(tǒng)主要由單片機應(yīng)用電路、存儲器接口電路、顯示接口電路組成。其中單片機AT89C51是系統(tǒng)工作的核心,它主要負責(zé)控制各個部分協(xié)調(diào)工作。2.2 硬件組成及所需原件該系統(tǒng)的核心器件是AT89C51。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制

7、造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。下面介紹一下AT89C51:主要特性:與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路管腳說明:VCC:供電電壓。GND:

8、接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/

9、O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于

10、外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用

11、于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/E

12、A/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬

13、無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚聲器。元件為:晶振X1、電容

14、C1、C2、C3、 電阻RP1、P1.0和P1.7由裁判控制,分別是搶答開始和停止鍵。P1.1-P1.6是6組搶答的輸入口,P0口為數(shù)碼管的段選口,位選口用的是P2口的低4位,外部中斷0,P3.2為搶答記口,實現(xiàn)的對個隊進行加減記分,外部中斷1,P3.3實現(xiàn)了答題時間調(diào)整.P3.4 P3.5分別實現(xiàn)了時間的加一和減一.P3.6為蜂鳴器的控制口。2.3 實驗原理 智力競賽搶答器用單片機來設(shè)計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成, 采用單片機AT89C51,它是低功耗、高性能的CMOS型8位單片機。片內(nèi)帶有4KB的Flash存儲器,且允許在系統(tǒng)內(nèi)改寫或用編程器編程。該智力競賽搶答器的準(zhǔn)

15、確度很高,其誤差主要由晶振自身的誤差所造成。AT89C51單片機由微處理器,存儲器,I/O口以及特殊功能寄存器SFR等部分構(gòu)成。其存儲器在物理上設(shè)計成程序存儲器和數(shù)據(jù)存儲器兩個獨立的空間,片內(nèi)程序存儲器的容量為4KB,片內(nèi)數(shù)據(jù)存儲器為128個字節(jié)。89C51單片機有4個8位的并行I/O口:P0口,P1口,P2口和P3口。各個接口均由接口鎖存器,輸出驅(qū)動器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲器和數(shù)據(jù)存儲器擴展時,

16、P0可作為分時復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時為閃爍編程和編程校驗接收一些控制信號。外部振蕩電路單片機必須在AT89C51的驅(qū)動下才能工作.在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元。外部振蕩電路見圖一(圖一)外部中斷和內(nèi)部中斷并存,單片機有硬件復(fù)位端,只要輸入持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位。硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,應(yīng)為本設(shè)計功能中有倒計時時間的記憶功能,所以不能對單片機進行硬件復(fù)位。只能用軟復(fù)位。軟復(fù)位實際上就是當(dāng)程序執(zhí)行

17、完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程。復(fù)位電路采用圖二所示:(圖二)外部還接有蜂鳴器用來發(fā)出報警音。其圖形如下:采用7SEG-MPX4-CC-BLUE顯示,它是共陰極的由高電平點亮。圖形如下:3軟件設(shè)計 智力競賽搶答器要求有計時記憶功能,一次時間設(shè)置完, 復(fù)位后不需重新進行時間設(shè)定,通過鍵盤掃描輸出按鍵信息,再通過單片機將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼.當(dāng)搶答完畢時,會在數(shù)碼管上顯示搶答者數(shù)字號碼提示以表示搶答成功.同時顯示其分數(shù),分數(shù)的加減可由裁判手動進行. 采用獨立式鍵盤,可實現(xiàn)6路搶答. 在顯示時使用的是數(shù)碼管顯示在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法. 并通過查表將

18、字型碼送給數(shù)碼管顯示的數(shù)字。軟件去抖動,如果開始鍵按下就向下執(zhí)行,否者跳到開始。采用倒計時程序,使其具有倒計時功能?;卮鸬褂嫊r20秒。搶答時間15秒。采用發(fā)聲警報,起到報警作用。系統(tǒng)流程圖:開始查詢倒計時開始搶答查詢有效搶答顯示,回答倒計時裁判打分加分重新開始查詢抖動違規(guī)搶答非法搶答處理違規(guī)者顯示減分4Proteus軟件仿真用到了偉福軟件,集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器,支持軟件模擬,支持項目管理功能強大的觀察窗口,支持所有的數(shù)據(jù)類型。樹狀結(jié)構(gòu)顯示,一目了然,支持ASM(匯編)、C語言,多語言多模塊源程序混合調(diào)試,在線直接修改、編譯、調(diào)試源程序,錯誤指令定位。功能很強大。 系統(tǒng)仿真

19、還用到了PROTUCE軟件,可通過仿真可以完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助。系統(tǒng)仿真時首先要在使用偉福編譯器,把所寫的程序進行編譯,同時在仿真器里設(shè)置生成HEX文件,編譯無錯誤時進行PROTUCE仿真。首先要新建一個文檔是DNS型的找出需要的器件,可以使用搜索功能。接著把各個器件放到合適的位置都要放到藍色框內(nèi)。然后根據(jù)自己的設(shè)計要求連線。等所有的元件都連接完成后可以把,偉福編譯生成的無錯誤文件加載到AT89C51中,方法是,右鍵點中器件然后在用左鍵點擊,出來一個對話框在program file后選擇要添加文件,文件要求必須是HEX文件。然后可以點擊運行觀察現(xiàn)象,看與自己

20、設(shè)置的符合否,如果不相符在查找錯誤進行修改,一般的錯誤都是程序中的,所以要認真的讀取程序的每一個部分??傮w的PROTUCE圖:5課程設(shè)計體會通過本次為期一周的設(shè)計使我的專業(yè)知識方面的水平得到了很大的提高,尤其在WAVE和PROTUES這兩個專業(yè)軟件的使用上有了很大的進步,使我懂得了以前不知道的和根本不會的東西,并且在編程方面也有了很大的進步。設(shè)計中要想把知識很好地運用到一個系統(tǒng)當(dāng)中去并不是一件容易的事,在剛接觸到proteus時甚至不知道怎樣去尋找元器件,這多虧了熱心的同學(xué)們,他們不厭其煩地解答我的問題,當(dāng)大家都不懂時我們就一起上網(wǎng)、去圖書館、請教老師,直到把問題搞清楚為止。最終我掌握了畫圖地

21、技巧,但這只是最開始地一小步,真正的困難還在后面。之前單片機在我的腦海中就如霧里看花一樣,迷迷糊糊的不知所云,對很多知識僅僅一知半解,不能系統(tǒng)地聯(lián)系起來,甚至連一些最基本的語句都搞不懂。而這些缺點通過這次設(shè)計全部給暴露出來了。然而剛開始的時候很是沮喪,當(dāng)困難總是要面對的,人不可能總是逃避。后來通過老師、同學(xué)以及上網(wǎng)查資料努力去克服種種困難,在不斷的學(xué)習(xí)中摸索,把以前學(xué)過的和沒有學(xué)到的一起重新學(xué)習(xí),經(jīng)過一個星期的努力,我的設(shè)計終于做出來了,這其中參考了不少的資料也得到了老師同學(xué)們的幫助,在此向幫助過我的老師和同學(xué)表示感謝。整體來說,這次設(shè)計對我個人的啟發(fā)還是很大的,我覺得自己知識近一步的增長了!

22、雖然很多方面還都非常欠缺,但是我在設(shè)計過程中學(xué)到了很多以前沒有學(xué)到的方法,在很大程度上提高了我的分析問題,解決問題的能力,增強了綜合實踐能力與自身的專業(yè)素質(zhì)。參考文獻1 余發(fā)山編著.單片機原理機機及應(yīng)用技術(shù).徐州:中國礦業(yè)大學(xué)出版社2 張淑清 婁萬錄等主編.單片微機計算機接口技術(shù)及其應(yīng)用.科學(xué)出版社3 李廣第主編.單片機基礎(chǔ).北京航空航天大學(xué)出版社3楊凌霄主編.微型計算機原理及應(yīng)用.中國礦業(yè)大學(xué)出版社附1 源程序代碼OK EQU 20H RING EQU 22H ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB OR

23、G 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#0FH MOV R2,#01EH MOV TMOD,#11H;設(shè)置未定時器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB EX1;允許3個中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一開始就運行定時器,以開始顯示888如果想重新計數(shù),重置TH1/TL1就可以了;=查詢程序

24、=START: MOV R5,#00H MOV R4,#00H MOV R3,#00HACALL DISPLAY;未開始搶答時候顯示888 JB P1.0,NEXT ACALL DELAY JB P1.0,NEXT;去抖動,如果開始鍵按下就向下執(zhí)行,否者跳到非法搶答查詢 ACALL BARK;按鍵發(fā)聲 MOV A,R1 MOV R6,A;送R1-R6,因為R1中保存了搶答時間 SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答 MOV R3,0AH;搶答只顯示計時,滅號數(shù) AJMP COUNT;進入倒計時程序,查詢有效搶答的程序在COUNT里面NEXT:JNB P1.1,FAL

25、SE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START ;=非法搶答處理程序=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

26、,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERROR;=INT1(答題對錯加減分數(shù)程序)=INT1SUB:MOV R4,#0AH MOV R5,#0AH JNB P3.4,INC1 JNB P3.5,DEC1 JNB P1.7,BACK1 ACALL DISPLAY AJMP INT1SUB MOV A,R3 SUBB A,#01H JZ XXY1 SUBB A,#02H JZ XXY2 SUBB A,#03H JZ XXY3 SUBB A,#04H JZ XXY4 SUBB A,#05H JZ XXY5 SUBB A,#06H J

27、Z XXY6 XXY1:MOV R7,41H XXY2:MOV R7,42H XXY3:MOV R7,43H XXY4:MOV R7,44H XXY5:MOV R7,45H XXY6:MOV R7,46H INC1:INC R7 CJNE R3,#01H,L1 MOV 51H,R7 L1:CJNE R3,#02H,L2 MOV 52H,R7 L2:CJNE R3,#03H,L3 MOV 53H,R7 L3:CJNE R3,#04H,L4 MOV 54H,R7 L4:CJNE R3,#05H,L5 MOV 55H,R7 L5:CJNE R3,#06H,LL MOV 56H,R7 LL:ACALL

28、 DELAY1 AJMP INT1SUB DEC1:DEC R7 ACALL DELAY1 AJMP INT1SUB BACK1:RETI;=倒計時程序(搶答倒計時和回答倒計時都跳到改程序)= COUNT: MOV R0,#00H;重置定時器中斷次數(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;取個

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

30、1 MOV R0,#00H CHECK: JNB P1.7,QUIT;如按下停止鍵退出 ACALL DISPLAY JB OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNT ACCOUT:JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNT QUIT:CLR OK;如果按下了停止鍵執(zhí)行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACAL

31、L BARK;按鍵發(fā)聲 MOV A,R2 MOV R6,A;搶答時間R2送R6 MOV R3,#01H MOV R7,41H CLR OK;因為答題的計時不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H MOV R7,42H CLR OK AJMP COUNTTRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H MOV R7,43H CLR OK AJMP COUNTTRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04

32、H MOV R7,44H CLR OK AJMP COUNTTRUE5:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H MOV R7,45H CLR OK AJMP COUNTTRUE6:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H MOV R7,46H 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向下運行-滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH:CJNE A,#14H,CHECK1;下面系1s的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV R0,#00H MOV R3,34H;取回號數(shù) MOV

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論