單片機(jī)課程設(shè)計-智力競賽搶答器_第1頁
單片機(jī)課程設(shè)計-智力競賽搶答器_第2頁
單片機(jī)課程設(shè)計-智力競賽搶答器_第3頁
單片機(jī)課程設(shè)計-智力競賽搶答器_第4頁
單片機(jī)課程設(shè)計-智力競賽搶答器_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

..精選實(shí)用文檔..精選單片機(jī)課程設(shè)計-智力競賽搶答器摘要設(shè)計要求:1〕能容許2-8組進(jìn)行搶答。2〕能顯示搶答組號。3〕各組記分,并能記分顯示。4〕比賽結(jié)束時,能發(fā)出報警聲。硬件系統(tǒng)設(shè)計1〕控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲器接口電路、顯示接口電路組成。其中單片機(jī)AT89C51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個局部協(xié)調(diào)工作.2〕硬件組成及所需元件:該系統(tǒng)的核心器件是AT89C51。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶振X1、電容C1、C2、C3、電阻RP1。P3.0和P3.1由裁判控制,分別是搶答停止和開始鍵。P1.0-P1.7是8組搶答的輸入口, P2.0--P2.3口為數(shù)碼管的段選口,位選口用的是P0.0--P0.6口輸出,外部中斷0、1和P3.3,P3.4為搶答記時調(diào)整口,實(shí)現(xiàn)的對個隊(duì)進(jìn)行計時,并且加減調(diào)整,外部中斷0,1實(shí)現(xiàn)了答題時間調(diào)整.P3.4P3.5分別實(shí)現(xiàn)了時間的加一和減一.P3.6為蜂鳴器的控制口。控制系統(tǒng)防真用到了偉福軟件,集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器,支持軟件模擬,支持工程管理功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型。樹狀結(jié)構(gòu)顯示,一目了然,支持ASM〔匯編〕、C語言,多語言多模塊源程序混合調(diào)試,在線直接修改、編譯、調(diào)試源程序,錯誤指令定位。功能很強(qiáng)大。系統(tǒng)仿真還用到了PROTUCE軟件,可通過仿真可以完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助...精選實(shí)用文檔..精選目錄1概述..................................................................................................................32系統(tǒng)總體方案及硬件計............................................................................4控制系統(tǒng)及所需元件組成..........................................................................4實(shí)驗(yàn)原理.......................................................................................................43軟件設(shè)計.........................................................................................................8.4Proteus軟件仿真.......................................................................................12偉福軟件......................................................................................................12在Proteus軟件............................................................................................12..精選實(shí)用文檔..精選5心得體會...........................................................................................................19參考文獻(xiàn)................................................................................................................20附1:源程序代碼.............................................................................................21附2:計算器模擬系統(tǒng)電圖.........................................................................301概述?單片機(jī)原理及應(yīng)用技術(shù)?是一門技術(shù)性,應(yīng)用性、實(shí)踐性很強(qiáng)的學(xué)科。課程設(shè)計是學(xué)好本門課程的又一重要實(shí)踐性教學(xué)環(huán)節(jié),課程設(shè)計的目的和任務(wù)就是配合單片機(jī)的教學(xué)和平時實(shí)驗(yàn),以到達(dá)穩(wěn)固消化課程的內(nèi)容,進(jìn)一步加強(qiáng)綜合應(yīng)用能力及單片機(jī)應(yīng)用系統(tǒng)開發(fā)和設(shè)計能力的訓(xùn)練,啟發(fā)創(chuàng)新思維,使之具有獨(dú)立單片機(jī)產(chǎn)品和科研的根本技能,是以培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識的過程,是知識轉(zhuǎn)化為能力和能力轉(zhuǎn)化為工程素質(zhì)的重要階段。在實(shí)際生活中有好多地方都用到了單片機(jī),因此學(xué)習(xí)好這門課程有著十分重要的意義。要求的模擬的搶答器:1〕能容許2-8組進(jìn)行搶答。2〕能顯示搶答組號。3〕各組記分,并能記分顯示。4〕比賽結(jié)束時,能發(fā)出報警聲。硬件系統(tǒng)設(shè)計1〕控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲器接口電路、顯示接口電路組成。其中單片機(jī)AT..精選實(shí)用文檔..精選89C51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個局部協(xié)調(diào)工作.2〕硬件組成及所需元件:該系統(tǒng)的核心器件是AT89C51。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶振X1、電容C1、C2、C3、電阻RP1。P3.0和P3.1由裁判控制,分別是搶答停止和開始鍵。P1.0-P1.7是8組搶答的輸入口, P2.0--P2.3口為數(shù)碼管的段選口,位選口用的是P0.0--P0.6口輸出,外部中斷0、1和P3.3,P3.4為搶答記時調(diào)整口,實(shí)現(xiàn)的對個隊(duì)進(jìn)行計時,并且加減調(diào)整,外部中斷0,1實(shí)現(xiàn)了答題時間調(diào)整.P3.4P3.5分別實(shí)現(xiàn)了時間的加一和減一.P3.6為蜂鳴器的控制口??刂葡到y(tǒng)防真用到了偉福軟件,集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器,支持軟件模擬,支持工程管理功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型。樹狀結(jié)構(gòu)顯示,一目了然,支持ASM〔匯編〕、C語言,多語言多模塊源程序混合調(diào)試,在線直接修改、編譯、調(diào)試源程序,錯誤指令定位。功能很強(qiáng)大。系統(tǒng)仿真還用到了PROTUCE軟件,可通過仿真可以完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助.2系統(tǒng)總體方案及硬件計1:控制系統(tǒng)及所需元件控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲器接口電路、顯示接口電路組成。其中單片機(jī)AT89C51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個局部協(xié)調(diào)工作.所需元件:該系統(tǒng)的核心器件是AT89C51。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶振X1、電容C1、C2、C3、電阻RP1、P3.0和P3.1由裁判控制,分別是搶答停止和開始鍵。P1.0-P1.7是8組搶答的輸入口, P2.0--P2.3口為數(shù)碼管的段選口,位選口用的是P0.0--P0.6口輸出,外部中斷0、1和P3.3,P3.4為搶答記時調(diào)整口,實(shí)現(xiàn)的對個隊(duì)進(jìn)行計時,并且加減調(diào)整,外部中斷0,1實(shí)現(xiàn)了答題時間調(diào)整.P3.4P3.5分別實(shí)現(xiàn)了時間的加一和減一.P3.6為蜂鳴器的控制口。..精選實(shí)用文檔..精選2:實(shí)驗(yàn)原理智力競賽搶答器用單片機(jī)來設(shè)計制作完成,由于其功能的實(shí)現(xiàn)主要通過軟件編程來完成,采用單片機(jī)AT89C51,它是低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有4KB的Flash存儲器,且允許在系統(tǒng)內(nèi)改寫或用編程器編程。該智力競賽搶答器的準(zhǔn)確度很高,其誤差主要由晶振自身的誤差所造成。AT89C51單片機(jī)由微處理器,存儲器,I/O口以及特殊功能存放器SFR等局部構(gòu)成。其存儲器在物理上設(shè)計成程序存儲器和數(shù)據(jù)存儲器兩個獨(dú)立的空間,片內(nèi)程序存儲器的容量為4KB,片內(nèi)數(shù)據(jù)存儲器為128個字節(jié)。89C51單片機(jī)有4個8位的并行I/O口:P0口,P1口,P2口和P3口。各個接口均由接口鎖存器,輸出驅(qū)動器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲器和數(shù)據(jù)存儲器擴(kuò)展時,P0可作為分時復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時為閃爍編程和編程校驗(yàn)接收一些控制信號。AT89C51的管腳圖:..精選實(shí)用文檔..精選外部振蕩電路單片機(jī)必須在AT89C51的驅(qū)動下才能工作.在單片機(jī)內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機(jī)內(nèi)部的各個單元。外部振蕩電路見圖一〔圖一〕外部中斷和內(nèi)部中斷并存,單片機(jī)有硬件復(fù)位端,只要輸入持續(xù)4個機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位。硬件復(fù)位后的各狀態(tài)可知存放器及存儲器的值都恢復(fù)到了初始值,應(yīng)為本設(shè)計功能中有倒計時時間的記憶功能,所以不能對單片機(jī)進(jìn)行硬件復(fù)位。只能用軟復(fù)位。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程。復(fù)位電路采用圖二所示:..精選實(shí)用文檔..精選外部還接有蜂鳴器〔由于缺少驅(qū)動器,發(fā)生器不響,所以,用綠燈換了〕用來發(fā)出報警音,其圖形如下:采用七段碼7SEG-MPX4-CC顯示,它是共陰極的由高電平點(diǎn)亮。圖形如下: 采用八個BUTTON按鈕作為搶答的選擇按鍵如下圖:..精選實(shí)用文檔..精選3軟件系統(tǒng)設(shè)計智力競賽搶答器要求有計時記憶功能,一次時間設(shè)置完,復(fù)位后不需重新進(jìn)行時間設(shè)定,通過鍵盤掃描輸出按鍵信息,再通過單片機(jī)將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼...精選實(shí)用文檔..精選當(dāng)搶答完畢時,會在數(shù)碼管上顯示搶答者數(shù)字號碼提示以表示搶答成功.同時顯示其分?jǐn)?shù),分?jǐn)?shù)的加減可由裁判手動進(jìn)行.采用獨(dú)立式鍵盤,可實(shí)現(xiàn)8路搶答.在顯示時使用的是七段數(shù)碼管顯示在本設(shè)計中根據(jù)實(shí)際情況采用的是動態(tài)顯示方法.并通過查表法將其在數(shù)碼管上顯示出來,其中P1口為字型碼輸入端,P2口低6位為字選段輸入端.通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。軟件去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到開始。采用倒計時程序,使其具有倒計時功能。答復(fù)倒計時30秒。搶答時間5秒。采用發(fā)聲警報〔由于發(fā)生器不響,所以,用綠燈換了〕,起到報警作用。1、如果想調(diào)節(jié)搶答時間或答題時間,按"搶答時間調(diào)節(jié)"鍵或"答題時間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時會顯示現(xiàn)在設(shè)定的搶答時間或答復(fù)時間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"鍵,時間LED上會顯示改變后的時間,調(diào)整范圍為0s~99s,0s時再減1s會跳到99,99s時再加1s會變到0s。主持人按"搶答開始"鍵,會有提示音,并立刻進(jìn)入搶答倒計時〔預(yù)設(shè)30s搶答時間〕,如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入答復(fù)倒計時〔預(yù)設(shè)60s搶答時間〕,不進(jìn)行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到小于5s會每秒響一下提示音。如倒計時期間,主持人想停止倒計時可以隨時按"停止"按鍵,系統(tǒng)會自動進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開始"進(jìn)入下次搶答計時。4、如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下"停止"鍵為止。5、P3.0為開始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時間調(diào)整結(jié),P3.3答復(fù)時間調(diào)整,P3.4為時間加1調(diào)整,P3.5為時間減1調(diào)整。下面是局部功能程序〔附局部說明〕:;=====查詢程序=====START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BH..精選實(shí)用文檔..精選ACALLDISPLAY;未開始搶答時候顯示FFFJBP3.0,NEXT;dddddddACALLDELAYJBP3.0,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢ACALLBARK;按鍵發(fā)聲MOVA,R1MOVR6,A;送R1->R6,因?yàn)镽1中保存了搶答時間SETBOK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答MOVR7,#01H;讀搶答鍵數(shù)據(jù)信號標(biāo)志,這里表示只讀一次有用信號MOVR3,#0AH;搶答只顯示計時,滅號數(shù)AJMPCOUNT;進(jìn)入倒計時程序,"查詢有效搶答的程序"在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,FALSE7JNBP1.7,FALSE8AJMPSTART;=====INT0(搶答時間R1調(diào)整程序)=====INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在兩個時間LED上顯示R1為+1s鍵,如按下跳到INCO為-1s鍵,如按下跳到DECO..精選實(shí)用文檔..精選為確定鍵,如按下跳到BACKOAJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;如果R1為0,R1就置99,DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI;=====讀搶答按鍵數(shù)據(jù)口程序=====;由于在讀搶答數(shù)據(jù)口的時候,單片機(jī)首先進(jìn)入倒計時程序,再調(diào)用顯示程序,最后才檢測按鍵口;然而在檢測按鍵口時動態(tài)掃描要調(diào)用三次(4ms)延時程序.這樣就會導(dǎo)致讀數(shù)據(jù)口出現(xiàn)滯后,造成1號優(yōu)先最高.8號最低.AAAA1:MOVA,P1CJNEA,#0FFH,AA1;當(dāng)不全為1時的數(shù)據(jù)為有效數(shù)據(jù)AA0:MOV36H,A;將有效數(shù)據(jù)送到36H暫存AJMPLOOP2 AA1:DECR7AJMPAA0..精選實(shí)用文檔..精選;=====發(fā)聲程序=====BARK:SETBRINGACALLDELAY1ACALLDELAY1CLRRING;按鍵發(fā)聲RET;=====TO溢出中斷(響鈴程序)=====T0INT:MOVTH0,#0ECHMOVTL0,#0FFHJNBRING,OUT;OUT:RETI;=====T1溢出中斷(計時程序)=====T1INT:MOVTH1,#3CHMOVTL1,#0B0HINCR0RETIEND4系統(tǒng)仿真1:偉福軟件..精選實(shí)用文檔..精選用到了偉福軟件,集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器,支持軟件模擬,支持工程管理功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型。樹狀結(jié)構(gòu)顯示,一目了然,支持ASM〔匯編〕、C語言,多語言多模塊源程序混合調(diào)試,在線直接修改、編譯、調(diào)試源程序,錯誤指令定位。功能很強(qiáng)大。用于對程序的調(diào)試和編輯。其界面如下:2:PROTUCE軟件系統(tǒng)仿真還用到了PROTUCE軟件,可通過仿真可以完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助.系統(tǒng)仿真時首先要在使用偉福編譯器,把所寫的程序進(jìn)行編譯,同時在仿真器里設(shè)置生成HEX文件,編譯無錯誤時進(jìn)行PROTUCE仿真。首先要新建一個文檔是DNS型的找出需要的器件,可以使用搜索功能。接著把各個器件放到適宜的位置都要放到藍(lán)色框內(nèi)。然后根據(jù)自己的設(shè)計要求連線。等所有的元件都連接完成后可以把,偉福編譯生成的無錯誤文件加載到AT89C51中,方法是,右鍵點(diǎn)中器件然后在用左鍵點(diǎn)擊,出來一個對話框在programfile后選擇要添加文件,文件要求必須是HEX文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,看與自己設(shè)置的符合否,如果不相符在查找錯誤進(jìn)行修改,一般的錯誤都是程序中的,所以要認(rèn)真的讀取程序的每一個局部..精選實(shí)用文檔..精選作好的PROTUCE圖:六號搶答到時時的顯示圖:..精選實(shí)用文檔..精選使用加法調(diào)整時的圖:..精選實(shí)用文檔..精選減法調(diào)整圖:..精選實(shí)用文檔..精選倒計時到30秒時的顯示圖:..精選實(shí)用文檔..精選倒計時還有5秒時的報警顯示圖:提示燈會呈閃亮狀:..精選實(shí)用文檔..精選..精選實(shí)用文檔..精選5心得體會單片機(jī)課程設(shè)計是一門很實(shí)用,很難的設(shè)計。這個設(shè)計用到了單片機(jī),電路等方面的知識,通過這次課程設(shè)計,使我對單片機(jī)及其附屬電路有了一定的了解,對課本上的知識有了近一步的掌握,也深刻明白了自己的缺乏。完本錢次課程設(shè)計的過程,是一個從無到有的過程,經(jīng)歷了興奮、自信、失落、發(fā)奮、所悟、完成幾個過程。剛做做課程設(shè)計時,仔細(xì)閱讀設(shè)計的題目和要求,以為沒什么困難的,所用的知識書上都有。可是當(dāng)我動手開始做的時候,才發(fā)現(xiàn)其中的算法,設(shè)計是那么繁瑣。經(jīng)過一天的努力,毫無結(jié)果。失落的心情油然而生。于是,再到圖書館和網(wǎng)上查找資料,在經(jīng)過借鑒很多類似的資料,文獻(xiàn)后,總算是有點(diǎn)眉目了。埋頭苦干的過程是痛苦的,尤其是在思考算法和程序框架時,迷茫,煩躁,特別是當(dāng)苦思出來一個結(jié)果,又被自己推翻,心痛的無法言繪。在痛苦中掙扎,建立,推翻,參考別人的思路,建立,再次在推翻,在這不斷循環(huán)中,終于最后完善了程序。其中的煎熬是很痛苦的,深刻明白攻克自己“未知領(lǐng)域〞的困難。但當(dāng)課程設(shè)計完成時,那感覺是甜蜜的,沒有耕耘,哪來得收獲的喜悅,不懂付出怎么能知道回報的快樂,一分耕耘一分收獲,有付出才會有回報,就在這樣的痛與快樂的交換中,我學(xué)到了知識,學(xué)到了做人的道理。通過這短短一周的實(shí)踐,我感覺到自己從課本上學(xué)到的理論知識和實(shí)踐仍有很大的差距。最少很多元器件根本不知道有什么成效,在仿真儀器中是什么代碼。有的知識,自己感覺已經(jīng)掌握得差不多了,但是實(shí)際操作起來就有問題出現(xiàn)了。我遇到了不少問題,花費(fèi)了很多的時間。這讓我重新反思我們的學(xué)習(xí),深刻領(lǐng)悟到我們這個專業(yè)動手,實(shí)踐的重要性。理論不經(jīng)過實(shí)踐考驗(yàn),是沒法實(shí)施的,就像我們編的程序,很多方面考慮的都不夠,幾乎沒有涉及到實(shí)際應(yīng)用時的防范方法措施。這次的課程設(shè)計,讓我學(xué)到了很多書本上學(xué)不到的東西,學(xué)到了實(shí)際應(yīng)用時,是取用本錢的最小化,做設(shè)計不僅要考慮大的方面,小的方面也必須做到完美。最大的收獲是:對鍵盤,顯示器, C51語言〔雖然最后還是用匯編語言編寫的,但是,我也試著學(xué)用了C51〕的應(yīng)用有了深刻的了解。..精選實(shí)用文檔..精選6參考文獻(xiàn)中國礦業(yè)大學(xué)出版社?單片機(jī)原理及應(yīng)用技術(shù)?主編余發(fā)山國防工業(yè)出版社?單片微型計算機(jī)接口技術(shù)及其應(yīng)用?主編張淑清等北京航空航天大學(xué)出版社?單片機(jī)課程設(shè)計實(shí)例指導(dǎo)?李光飛樓然苗胡佳文謝象佐編著..精選實(shí)用文檔..精選附1:源程序代碼OKEQU20H;搶答開始標(biāo)志位RINGEQU22H;響鈴標(biāo)志位ORG0000HAJMPMAINORG0003HAJMPINT0SUBORG000BHAJMPT0INTORG0013HAJMPINT1SUBORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#30;初設(shè)搶答時間為30sMOVR2,#60;初設(shè)答題時間為60sMOVTMOD,#11H;設(shè)置未定時器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高發(fā)聲頻率越高,越尖MOVTH1,#3CHMOVTL1,#0B0H;50ms為一次溢出中斷SETBEASETBET0SETBET1SETBEX0SETBEX1;允許四個中斷,T0/T1/INT0/INT1CLROKCLRRINGSETBTR1SETBTR0;一開始就運(yùn)行定時器,以開始顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了;=====查詢程序=====START:MOVR5,#0BHMOVR4,#0BH..精選實(shí)用文檔..精選MOVR3,#0BHACALLDISPLAY;未開始搶答時候顯示FFFJBP3.0,NEXT;dddddddACALLDELAYJBP3.0,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢ACALLBARK;按鍵發(fā)聲MOVA,R1MOVR6,A;送R1->R6,因?yàn)镽1中保存了搶答時間SETBOK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答MOVR7,#01H;讀搶答鍵數(shù)據(jù)信號標(biāo)志,這里表示只讀一次有用信號MOVR3,#0AH;搶答只顯示計時,滅號數(shù)AJMPCOUNT;進(jìn)入倒計時程序,"查詢有效搶答的程序"在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,FALSE7JNBP1.7,FALSE8AJMPSTART;=====非法搶答處理程序=====FALSE1:MOVR3,#01HAJMPERRORFALSE2:MOVR3,#02HAJMPERRORFALSE3:MOVR3,#03HAJMPERRORFALSE4:MOVR3,#04HAJMPERRORFALSE5:MOVR3,#05HAJMPERRORFALSE6:MOVR3,#06HAJMPERRORFALSE7:MOVR3,#07HAJMPERRORFALSE8:MOVR3,#08HAJMPERROR..精選實(shí)用文檔..精選;=====INT0(搶答時間R1調(diào)整程序)=====INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在兩個時間LED上顯示R1JNBP3.4,INC0;P3.4為+1s鍵,如按下跳到INCOJNBP3.5,DEC0;P3.5為-1s鍵,如按下跳到DECOJNBP3.1,BACK0;P3.1為確定鍵,如按下跳到BACKOAJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;如果R1為0,R1就置99,DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI;=====INT1(答復(fù)時間R2調(diào)整程序)=====INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1..精選實(shí)用文檔..精選JNBP3.5,DEC1JNBP3.1,BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#63HACALLDELAY1AJMPINT1SUBBACK1:RETI;=====倒計時程序(搶答倒計時和答復(fù)倒計時都跳到改程序)=====REPEAT:MOVA,R2;使用錦囊時重新計時MOVR6,ACLRRINGCOUNT:MOVR0,#00H;重置定時器中斷次數(shù)MOVTH1,#3CHMOVTL1,#0B0H;重置定時器RECOUNT:MOVA,R6;R6保存了倒計時的時間,之前先將搶答時間或答復(fù)時間給R6MOVB,#0AHDIVAB;除十分出個位/十位MOV30H,A;十位存于(30H)MOV31H,B;個位存于(31H)MOVR5,30H;取十位MOVR4,31H;取個位MOVA,R6SUBBA,#07HJNCLARGER;大于5s跳到LARGER,小于等于5s會提醒MOVA,R0..精選實(shí)用文檔..精選CLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECK;下面是1s的情況,響并顯示號數(shù)并清R0,重新計SETBRINGMOVA,R6JZQUIT;計時完畢MOVR0,#00HDECR6;一秒標(biāo)志減1AJMPCHECKLARGER:MOVA,R0CJNEA,#14H,CHECK;如果1s向下運(yùn)行,否者跳到查"停/顯示"DECR6;計時一秒R6自動減1MOVR0,#00HCHECK:JNBP3.1,QUIT;如按下停止鍵退出JNBOK,CHECKK;只在答復(fù)倒計時才有效AJMPNEXTTCHECKK:JNBP3.0,REPEAT;判斷是否使用錦囊NEXTT:ACALLDISPLAYJBOK,ACCOUT;如果是搶答倒計時,如是那么查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)AJMPRECOUNTACCOUT:MOVA,36HJNBACC.0,TRUE1JNBACC.1,TRUE2JNBACC.2,TRUE3JNBACC.3,TRUE4JNBACC.4,TRUE5JNBACC.5,TRUE6JNBACC.6,TZ1JNBACC.7,TZ2AJMPRECOUNTTZ1:JMPTRUE7TZ2:JMPTRUE8QUIT:CLROK;如果按下了"停止鍵"執(zhí)行的程序CLRRINGAJMPSTART..精選實(shí)用文檔..精選;=====正常搶答處理程序=====TRUE1:ACALLBARKMOVA,R2MOVR6,A;搶答時間R2送R6MOVR3,#01HCLROK;因?yàn)榇痤}的計時不再查詢搶答,所以就鎖了搶答AJMPCOUNTTRUE2:ACALLBARKMOVA,R2MOVR6,AMOVR3,#02HCLROKAJMPCOUNTTRUE3:ACALLBARKMOVA,R2MOVR6,AMOVR3,#03HCLROKAJMPCOUNTTRUE4:ACALLBARKMOVA,R2MOVR6,AMOVR3,#04HCLROKAJMPCOUNTTRUE5:ACALLBARKMOVA,R2MOVR6,AMOVR3,#05HCLROKAJMPCOUNTTRUE6:ACALLBARKMOVA,R2MOVR6,AMOVR3,#06HCLROKAJMPCOUNTTRUE7:ACALLBARK..精選實(shí)用文檔..精選MOVA,R2MOVR6,AMOVR3,#07HCLROKAJMPCOUNTTRUE8:ACALLBARKMOVA,R2MOVR6,AMOVR3,#08HCLROKAJMPCOUNT;=====犯規(guī)搶答程序=====ERROR:MOVR0,#00HMOVTH1,#3CHMOVTL1,#0B0HMOV34H,R3;犯規(guī)號數(shù)暫存與(34H)HERE:MOVA,R0CJNEA,#06H,FLASH;0.3s向下運(yùn)行->滅并停響CLRRINGMOVR3,#0AHMOVR4,#0AHMOVR5,#0AH;三燈全滅AJMPCHECK1FLASH:CJNEA,#0CH,CHECK1;下面是0.8s的情況,響并顯示號數(shù)并清R0,重新計SETBRINGMOVR0,#00HMOVR3,34H;取回號數(shù)MOVR5,#0BHMOVR4,#0BH;顯示FF和號數(shù)AJMPCHECK1CHECK1:JNBP3.1,QUIT1ACALLDISPLAYAJMPHEREQUIT1:CLRRINGCLROKAJMPSTART;=====顯示程序=====DISPLAY:MOVDPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,..精選實(shí)用文檔..精選

溫馨提示

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

評論

0/150

提交評論