基于單片機的八人搶答器的設(shè)計與實踐_第1頁
基于單片機的八人搶答器的設(shè)計與實踐_第2頁
基于單片機的八人搶答器的設(shè)計與實踐_第3頁
基于單片機的八人搶答器的設(shè)計與實踐_第4頁
基于單片機的八人搶答器的設(shè)計與實踐_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機的八人搶答器的設(shè)計與實踐目錄摘要Abstract關(guān)鍵詞Keywords第一章前言............................................................................. 1第二章?lián)尨鹌鞯南到y(tǒng)概述..............................................................22.1系統(tǒng)的主要功能............................................................... 22.2系統(tǒng)需求分析..................................................................32.3搶答器的工作流程............................................................32.4搶答器的工作過程............................................................32.5器件選型方案及詳細清單.................................................... 52.6AT89C51特殊功能存放器.....................................................52.7AT89C51的功能及簡介....................................................... 52.7.1AT89C51單片機的內(nèi)部結(jié)構(gòu)圖.......................................52.7.2AT89C51單片機........................................................62.8搶答器的優(yōu)點及組成.........................................................7第三章系統(tǒng)總體方案的設(shè)計...........................................................83.1硬件電路的設(shè)計...............................................................83.2總體原理圖....................................................................93.3時鐘頻率電路的設(shè)計.........................................................103.4復(fù)位電路的設(shè)計...............................................................103.5顯示電路的設(shè)計...............................................................11顯示模塊在系統(tǒng)軟件中的安排.......................................113.6鍵盤掃描電路的設(shè)計......................................................... 13鍵盤抖動的軟件處理.................................................143.7發(fā)聲............................................................................143.8系統(tǒng)復(fù)位.......................................................................143.9本章小結(jié).......................................................................15第四章軟件設(shè)計........................................................................164.1主程序系統(tǒng)結(jié)構(gòu)圖............................................................164.2軟件任務(wù)分析..................................................................164.3程序流程圖....................................................................174.4本章小結(jié).................................................................18第五章Proteus仿真系列組圖.........................................................195.1系統(tǒng)仿真圖.....................................................................19復(fù)位圖.................................................................19設(shè)置計時時間.........................................................19非法搶答并顯示座號.................................................20搶答成功并顯示倒計時..............................................20三號選手搶答成功...................................................215.2本章小結(jié).......................................................................22總結(jié).......................................................................................23參考文獻.................................................................................24答謝詞....................................................................................25附錄一....................................................................................26附錄二....................................................................................33摘要在電視和學校中我們會經(jīng)??吹揭恍┲橇尨鸬墓?jié)目,如果要是讓搶答者用舉手等方法,主持人很容易誤判,會造成搶答的不公平,比賽中為了準確、公正、直觀地判斷出第一搶答者,所設(shè)計的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準確性來保障搶答的公平性。本設(shè)計是以八路搶答為根本理念??紤]到依需設(shè)定限時答復(fù)的功能,利用AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和答復(fù)下列問題的時間可在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有聲音提示;搶答時間和答復(fù)下列問題時間倒記時顯示,滿時后系統(tǒng)計時自動復(fù)位及主主持人強制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。關(guān)鍵詞:AT89C51LED數(shù)碼管搶答器計時報警AbstractIntelevisionandschool,wecanoftenseesomeintelligenceviestoanswerfirsttheprogram,ififletviestoanswerfirstpersonwithhandsandothermethods,thehostiseasytomisjudgment,andcancauseviestoanswerfirsttheunfair,inthegameinordertoaccurately,justiceandintuitivetodiagnosethefirstviestoanswerfirst,thedesignisusuallybydigitaldisplayviestoanswerfirst,lighting,soundandotherDuoZhongmeansthefirstviestoanswerfirsttheinstructions.Inordertomakethisunfairnotoccur,anditisonlybyelectronicproductshighaccuracytoguaranteethefairnessofthecontest.Thisdesignisthebasicconceptfor8viestoanswerfirst.Consideringtheneedtosetinthefunctionoftheanswerwithin,usingAT89C51andperipheralinterfacesviestoanswerfirstthesystem,ofthemicrocontrollertimer/countertimingandcountingprinciple,softwareandhardwareorganically,andmakesthesystemcancorrectlytothetime,atthesametimemakedigitaltubecanproperlyshowsthetime.Withaswitchtodothekeyboardoutput,thespeakerhappenshints.Inviestoanswerfirst,onlyafterthestart,ifonlyeffectiveinviestoanswerfirstbegantobeinvalid;beforeviestoanswerfirstviestoanswerfirstViestoanswerfirstthetimelimitandanswerproblemoftimecanbein199sset;Candisplayiswhichplayerseffectiveviestoanswerfirstandinvalidviestoanswerfirst,rightafterthekeyvoicetip;Viestoanswerfirsttimeandanswerthequestiontime,fulldisplayeventsafterthesystemtimeautomaticresetandmainhostforcedreset;Keylock,ineffectivestate,thekeyisinvalidillegal.Keywords:AT89C51LEDdigitaltubeViestoanswerfirstdevicetimingalarm第一章前言搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認出選手號碼。現(xiàn)在大多數(shù)搶答器均使用單片機(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。本設(shè)計利用AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間和選手號碼。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。系統(tǒng)到達要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和答復(fù)下列問題的時間可是在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和答復(fù)下列問題時間倒記時顯示,時間完后系統(tǒng)自動復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。作為電子愛好者,通過本次設(shè)計與裝配、調(diào)試,提高自己的動手能力,穩(wěn)固已學的理論知識,建立單片機理論和實踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握多功能搶答器的調(diào)整及測試方法,提高動手能力和排除故障的能力。第二章?lián)尨鹌鞯南到y(tǒng)概述2.1系統(tǒng)的主要功能本系統(tǒng)是借用單片機采用模塊化設(shè)計的智能搶答器,主控與參賽者設(shè)為終端分系統(tǒng)。參賽者分系統(tǒng)設(shè)有:搶答按紐、計時顯示、提示功能等〔根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能〕;主控分系統(tǒng)有:開始與結(jié)束控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功能等〔根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能〕。參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外[1],還有人性化的提示功能和時間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開始與結(jié)束控制,根據(jù)活動參賽者的層次,對提前掄答者的行為設(shè)定為非法或阻隔,假設(shè)設(shè)有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的臺位號,對搶答限時及答復(fù)下列問題限時設(shè)為倒計時式,并有公示性顯示。如圖2-1所示。主控制器初始化初始化YYY顯示搶答號并倒計時正常搶答顯示非法搶答處理去抖動調(diào)整搶答時間答復(fù)時間減一鍵按下?加一鍵按下?開始鍵按下?LED顯示聲生器鍵盤顯示時鐘頻率復(fù)位電路圖2.1系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。主持人有開始和結(jié)束復(fù)位鍵。在后臺主持人可以修改,搶答時間和選手答復(fù)下列問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為15s,答復(fù)下列問題時間為10s。通過加鍵和減鍵修改上述時間,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號,揚聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。系統(tǒng)的主要功能模塊方框圖如2-1所示。搶答主板:搶答主板是整個搶答器的核心,其關(guān)鍵是單片機AT89C51。內(nèi)部電路設(shè)計用匯編語言編寫。它完成了時間參數(shù)的設(shè)定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。顯示及指示:本設(shè)計中,有一個共陰的數(shù)碼管組,四個數(shù)碼管。其中兩個顯示時間,一個空位,一個顯示搶答號碼。主持人依次按下復(fù)位鍵〔RESET〕,開始鍵后開始搶答??梢該尠矗撼瑫r數(shù)碼管顯示“FFF〞,當搶按超過規(guī)定時間或答題超過規(guī)定時間后數(shù)碼管顯“FFF〞。假設(shè)有選手在規(guī)定時間內(nèi)搶按成功,那么可以答題,數(shù)碼管顯示搶答時間的同時也顯示選手號碼。假設(shè)在按開始鍵前搶答表示違規(guī),數(shù)碼管顯示“FF〞并顯示選手號碼。2.2系統(tǒng)需求分析1、在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。2、搶答限定時間和答復(fù)下列問題的時間可是在1~99s設(shè)定。3、可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示。4、搶答時間和答復(fù)下列問題時間倒記時顯示,時間完后系統(tǒng)自動復(fù)位。5、按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。2.3搶答器的工作流程搶答器的根本工作原理:在搶答競賽或呼叫時[2],有多個信號同時或不同時送入主電路中,搶答器內(nèi)部的存放器工作,并識別、記錄第一個號碼,同時內(nèi)部的定時器開始工作,記錄有關(guān)時間并產(chǎn)生超時信號。在整個搶答器工作過程中,顯示電路、語音電路等還要根據(jù)現(xiàn)場的實際情況向外電路輸出相應(yīng)信號。搶答器的工作流程分為、系統(tǒng)復(fù)位、正常流程、違例流程等幾局部,如圖2-2所示,下面分別予以介紹。如圖2-2所示2.4搶答器的工作過程1、如果想調(diào)節(jié)搶答時間或答題時間,按"加一"鍵或"減一"鍵進入調(diào)節(jié)狀態(tài),此時會顯示現(xiàn)在設(shè)定的搶答時間或答復(fù)時間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"減1s"鍵,時間LED上會顯示改變后的時間,調(diào)整范圍為0~99s,0s時再減1s會跳到99,99s時再加1s會變到0s。2、主持人按"搶答開始"鍵,會有提示音,并立刻進入搶答倒計時〔預(yù)設(shè)15s搶答時間〕,如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進入答復(fù)倒計時〔預(yù)設(shè)10s搶答時間〕,不進行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到小于5s會每秒響一下提示音。加載程序加載程序運行行開始開始數(shù)碼管顯示FFF開始搶按時間倒計時開始前有選手搶按顯示違例選手號碼并伴有語音報警倒計時結(jié)束,超時有選手搶按顯示FFF顯示選手號碼,倒計時時間,語音報警,答題,答題時間倒計時正常流程違規(guī)流程假設(shè)超過答題時間,那么數(shù)碼管顯示FFF答題完畢根據(jù)選手表現(xiàn),規(guī)那么由主持人減分圖2.2搶答器工作流程3、如倒計時期間,主持人想停止倒計時可以隨時按"停止"按鍵,系統(tǒng)會自動進入準備狀態(tài),等待主持人按"搶答開始"進入下次搶答計時。4、如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下"停止"鍵為止。總而言之,本課題利用AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng)設(shè)計了搶答器,該搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結(jié)構(gòu)、節(jié)約了本錢,是一個實用的工程設(shè)計。2.5器件選型方案及詳細清單微控制器選用ATMAL公司生產(chǎn)的AT89C51,該芯片貨源充足,并且價格也比擬廉價。如表2-1所示。2.6AT89C51特殊功能存放器特殊功能存放器也稱專用存放器,是具有特殊功能的所有存放器的集合,簡稱SFR〔SpecialFunctionRegister〕。特殊功能存放器共含有22個不同存放器。它們的地址分配在80H~FFH中,即在RAM地址中。這些存放器的名稱和地址如表2-2所示。表2-1器件選型方案的詳細清單器件名稱器件名稱規(guī)格型號數(shù)量微處理器AT89C511電阻3WTT10K8電容30PF3晶振12MHZ1按鈕--------11反相器--------37段數(shù)碼管7SEG-MPX4CC4揚聲器--------1雖然特殊功能存放器地址在80H~FFH之中,但在80H~FFH的地址單元中,不是雖然特殊功能存放器地址在80H~FFH之中,但在80H~FFH的地址單元中,不是所有的單元都被特殊功能存放器占用,未被占用的單元,其內(nèi)容是不確定的,如果對這些單元進行操作,得到的是一些隨機數(shù),而寫入那么無效。所以,用戶編程時不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元,它們是公司留待將來開發(fā)新產(chǎn)品時使用的。2.7AT89C51的功能及簡介2.7.1AT89C51單片機的內(nèi)部結(jié)構(gòu)圖AT89C51單片機內(nèi)部由CPU、4KB的FPEROM,128B的RAM,兩個16位的定時/計數(shù)器T0和T1,4個8位的I/O端P0、P1、P2、P3等組成。單片微機內(nèi)部最核心的局部是CPU。CPU主要功能是產(chǎn)生各種控制信號,控制存儲器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運算、邏輯運算以及位操作處理等,CPU按其功能可分為運算器和控制器兩局部??刂破饔沙绦蛴嫈?shù)器PC、指令儲存器、指令譯碼器、實時控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對來自存儲器中的指令進行譯碼,通過實時控制電路,在規(guī)定的時刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號,使各局部協(xié)調(diào)工作,完成指令所規(guī)定的操作。運算器由算術(shù)邏輯器部件ALU、累加器ACC、暫存器、程序狀態(tài)字存放器PSW,BCD碼運算調(diào)整電路等組成。如圖2-3所示。外部定時元件外部定時元件復(fù)位中斷電源系統(tǒng)時鐘ROMCPU定時/計數(shù)器串行I/O口并行I/O口RAM圖2.3AT89C51單片機的內(nèi)部結(jié)構(gòu)圖為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個通用存放器B和一些專用存放器,還增加了位處理邏輯電路的功能[3]。其內(nèi)部結(jié)構(gòu)如圖2-3所示。2.7.2AT89C51單片機AT89C51是一種低功耗、高性能的含有4KB閃速可編程電擦除只讀存儲器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的8位CMOS微控制器,使用高密度、非易失存儲技術(shù)制造,并且與80C51指令系統(tǒng)和引腳完成兼容。芯片上的FPEROM允許在線或采用通用的非易失存儲編程器對程序存儲器重復(fù)編程。〔1〕AT89C51的主要性能包括:AT89C51與MCS—51控制器系列產(chǎn)品兼容,片內(nèi)有4K可在線重復(fù)編程閃速電擦除存儲器〔FlashMemory〕,存儲器可循環(huán)寫入/擦除1000次;存儲器數(shù)據(jù)保存時間可達10年;工作電壓范圍寬:Vcc可由2.7V到6V;全靜態(tài)工作可由0Hz到16MHz;程序存儲器具有3級鎖存保護;128*8位內(nèi)部RAM;32條可編程I/O線;兩個16位定時器/計數(shù)器;中斷結(jié)構(gòu)具有5個中斷源和2個中斷優(yōu)先級;可編程全雙工串行通信;空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。〔2〕FPEROM的編程:AT89C51的I/O口P0、P1、P2和P3除具有與80C51相同的一些性能和用途外,在FPEROM編程時,P0口接收代碼字節(jié),并在程序檢驗時輸出代碼字節(jié),但在程序校驗時需要外部上拉負載電阻,在FPEROM編程和程序校驗期間,P1口接收低位地址字節(jié),P2口接收高位地址字節(jié)和一些控制信號,P3口也接收一些FPEROM編程和校驗用的信號,此時ALE/PROG引腳是編程脈沖輸入〔PROG〕端,在FPEROM編程期間,如果選擇12V編程電壓、那么EA/Vpp引腳也允許接受12V編程電壓〔Vpp〕。2.8搶答器的優(yōu)點及組成在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設(shè)計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用AT89C51單片機作為核心??刂葡到y(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、語音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過開關(guān)電路六個按鍵輸入搶答信號;利用存儲程序來完成軟件的設(shè)計;利用一個數(shù)碼管來完成顯示功能。工作時,用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機的處理,輸出控制信號,控制數(shù)碼管和語音芯片工作。在數(shù)碼管上顯示哪一組先答題,并通過語音系統(tǒng)讀出第N組請答題,從而實現(xiàn)整個搶答過程。第三章系統(tǒng)總體方案的設(shè)計3.1硬件電路的設(shè)計本設(shè)計分為硬件設(shè)計和軟件設(shè)計[5],這兩者相互結(jié)合,不可別離;從時間上看,硬件設(shè)計的絕大局部工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準備充分,硬件設(shè)計的大返工是比擬少的,軟件設(shè)計的任務(wù)貫徹始終,到中后期根本上都是軟件設(shè)計任務(wù),隨著集成電路技術(shù)的飛速開展,各種功能很強的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計的工作量在整個工程中的所占的比重逐漸下降。為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面:(1)盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替假設(shè)干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比假設(shè)干普通芯片價格的總和高。(2)留有設(shè)計余地。在設(shè)計硬件電路時,要考慮到將來修改擴展的方便。因為很少有一錘定音的電路設(shè)計,如果現(xiàn)在不留余地,將來可能要為一點小小的修改或擴展而被迫進行全面返工。(3)程序空間,選用片內(nèi)程序空間足夠大的單片機,本設(shè)計采用AT89C51單片機。(4)RAM空間,AT89C51內(nèi)部RAM不多,當要增強軟件數(shù)據(jù)處理功能時,往往覺得缺乏。如果系統(tǒng)配置了外部RAM,那么建議多留一些空間。如選用8155作I/O接口,就可以增強256字節(jié)RAM.如果有大批數(shù)據(jù)需要處理,那么應(yīng)配置足夠的RAM,如6264,62256等。隨著軟件設(shè)計水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級換代。只要在硬件電路設(shè)計初期考慮到這一點,就應(yīng)該為系統(tǒng)將來升級留足夠的RAM空間,哪怕多設(shè)計一個RAM的插座,暫不插芯片也好。(5)I/O端口:在樣機研制出來后進行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被無視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計就預(yù)留出一些I/O端口,雖然當時空著沒用,那么用的時候就派上用場了。3.2總體原理圖圖3.1系統(tǒng)原理圖P3.0為開始搶答[9],P3.1為停止,P1.0-P1.7為六路搶答輸入,數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.4為時間加1調(diào)整,P3.5為時間減1調(diào)整。3.3時鐘頻率電路的設(shè)計單片機必須在時鐘的驅(qū)動下才能工作.在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。如圖3-2所示。圖3.2為外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C1,C2的典型值為30PF。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,那么時鐘周期為1/12μs。3.4復(fù)位電路的設(shè)計單片機的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖3-3所示。圖3.3復(fù)位電路值得注意的是,在設(shè)計當中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知存放器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機進行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。3.5顯示電路的設(shè)計顯示功能與硬件關(guān)系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。顯示模塊在系統(tǒng)軟件中的安排操作者主要設(shè)計從顯示設(shè)備上獲取微機系統(tǒng)的信息的,因此,操作者每操作一下,顯示設(shè)備商都應(yīng)該有一定的反響。這說明,顯示模塊與操作有關(guān),即監(jiān)控程序是需要調(diào)用顯示模塊。不同的操作需要顯示不同的內(nèi)容,這又說明各執(zhí)行模塊對顯示模塊的驅(qū)動方式是不同的。另一方面,在操作者沒有進行操作時,顯示內(nèi)容也是變化的,如顯示現(xiàn)場各物理量的變化情況。這時顯示模塊不是由操作者通過命令鍵來驅(qū)動,而是由各類自動執(zhí)行的功能模塊來驅(qū)動。自動執(zhí)行的各類模塊在安排在各種中斷子程序中,這就是說,各種中斷子程序也要調(diào)用顯示模塊。如果監(jiān)控安排在中斷子程序中,兩者的要求就統(tǒng)一了,問題比擬好解決,如果監(jiān)控程序安排在主程序中,在監(jiān)控程序調(diào)用顯示模塊的過程中發(fā)生了中斷,中斷子程序也調(diào)用顯示模塊,這時就容易出問題。一種比擬妥善的方法是只讓一處調(diào)用顯示模塊,其他各處均不得直接調(diào)用顯示模塊,但有權(quán)申請顯示。這就要設(shè)置一個顯示申請標志,當某模塊需要顯示時,將申請標志置位,同時設(shè)定有關(guān)顯示內(nèi)容〔或指針〕。由于一處調(diào)用顯示模塊,故不會發(fā)生沖突。為了使顯示模塊能及時反響系統(tǒng)需要,應(yīng)將顯示模塊安排在一個重復(fù)執(zhí)行的循環(huán)〔如監(jiān)控循環(huán)或時鐘中斷子程序〕中。當監(jiān)控程序〔鍵盤解釋程序〕安排在時鐘中斷子程序中時,處理比擬方便,只要在監(jiān)控程序的集合處調(diào)用顯示模塊就可以了。例如用DISP作顯示申請標志,就可以這樣安排顯示模塊的調(diào)用,即DISPBIT2DH.4 ;顯示申請標志SKEYEND:JNBDISP,RETI0;有顯示申請否?LCALLDISPLAY;調(diào)用顯示模塊,更新顯示內(nèi)容CLRDISP;去除申請RETI;中斷返回KEYEND為鍵盤解釋程序的最后聚集點,這時如果發(fā)現(xiàn)有顯示申請,就進行集中操作,更新顯示內(nèi)容,否那么就跳過這一步。這里將顯示功能集中到一起,作為一個功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動完成顯示內(nèi)容的查找,變換和輸出驅(qū)動。這樣設(shè)計使得各功能模塊都不必考慮顯示問題,只要給出一個簡單的信息〔如顯示格式編碼〕甚至不用再提供額外信息,直接利用當前狀態(tài)變量和軟件標志就可以完成所需的顯示要求。如果編寫這樣一個集中顯示模塊有困難,也可以將顯示模塊編小一些,只完成顯示緩沖區(qū)的內(nèi)容輸出到顯示器件上的工作。這時各功能模塊在提出顯示申請時,還需要將顯示內(nèi)容按需要的格式送入顯示緩沖區(qū)中。這樣分而治之比擬容易編程,但要小心出現(xiàn)顯示混亂。例如后臺程序需要調(diào)用顯示,將有關(guān)信息送入到現(xiàn)實緩沖區(qū)進行顯示;中斷返回后,后臺程序繼續(xù)送完后半局部顯示內(nèi)容,但前半局部內(nèi)容已經(jīng)變了,這樣就出現(xiàn)了顯示錯誤。解決的方法是,在申請顯示前,先檢查是否已經(jīng)有顯示申請,如果有,就不再申請,等待下次時機;如果沒有,那么先申請標志位,再將顯示內(nèi)容送入顯示緩沖區(qū)。這時就不必擔憂其他前臺模塊來打攪了,就可以得到一次完整的顯示時機。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示[6]上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法。并通過查表法,將其在數(shù)碼管上顯示出來,其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字,如圖3-4所示。MOVA,R5MOVCA,@A+DPTR;查字型碼MOVP2,#01H;送位選碼MOVP0,A;送字型碼ACALLDELAY;調(diào)延時,去閃爍圖3.4共陰極數(shù)碼管在七段數(shù)碼管顯示中可分為共陽極和共陰極兩種類型極。以共陰為例,要想a段亮,向a段送1就是,返之送0,共陽剛好相反。3.6鍵盤掃描電路的設(shè)計鍵盤是人與微機系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否那么,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。如圖3-5所示。圖3.5獨立鍵盤它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺〞現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺〞脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是那么為有效按鍵,否那么無效。鍵盤抖動的軟件處理按鍵的觸點在閉合和斷開時均會產(chǎn)生抖動,這是觸點的邏輯電平是不穩(wěn)定的,如不妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復(fù)執(zhí)行。現(xiàn)在一般均用軟件延時的方法來避開抖動階段,這一延時過程一般大于5ms,例如取10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序〔后臺程序〕或鍵盤中斷〔外部中斷〕子程序中,那么該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。3.7發(fā)聲我們知道,聲音的頻譜范圍約在幾十到幾千赫茲[7],假設(shè)能利用程序來控制單片機某個口線的“高〞電平或低電平,那么在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,假設(shè)再利用延時程序控制“高〞“低〞電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。3.8系統(tǒng)復(fù)位使CPU進入初始狀態(tài),從0000H地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。從實現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過CPU外部的硬件電路給CPU的RESET端加上足夠時間的高電位才能實現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用存放器的狀態(tài)均被初始化,且對片內(nèi)通用存放器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動去除中斷激活標志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所無視。軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用存放器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標志的去除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用020000〔LJMP0000H〕作為軟件陷阱,認為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見去除中斷激活標志的重要性。在所有的指令中,只有RETI指令能夠去除中斷激活標志。前文各處提案到的出錯處理程序ERR主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。這局部程序如下:POWERDATA67H;上電標志存放單元ERR:CLREA;關(guān)中斷MOVDPTR,#ERR1;準備返回地址PUSHDPLPUSHDPHRETI;去除高級中斷激活標志ERR1:MOVPOWER,#0AAH;重建上電標志CLRA;準備復(fù)位地址PUSHACC;壓入復(fù)位地址0000HPUSHACCRETI;去除低級中斷激活標志,從程序0000H開始執(zhí)行。這段程序先關(guān)中斷,以便后續(xù)處理能順利進行,然后用兩個RETI指令代替兩個LJMP指令,從而去除了兩級中斷激活標志。有相應(yīng)軟件陷阱捕捉來的程序可能沒有全部激活兩個標志,這也無妨。3.9本章小結(jié)本章詳細講述了以AT89C51為核心元件的搶答器的硬件電路具體設(shè)計過程,分析了具體電路。在設(shè)計過程中,實現(xiàn)搶答功能的是通過編寫程序的方法集成在AT89C51內(nèi)部。接著將程序下載到硬件電路中,配合周邊的時鐘電路,復(fù)位電路等,制作出符合設(shè)計要求的搶答器。第四章軟件設(shè)計4.1主程序系統(tǒng)結(jié)構(gòu)圖系統(tǒng)初始化模塊按鍵模塊非法搶答模塊系統(tǒng)初始化模塊按鍵模塊非法搶答模塊正確搶答模塊調(diào)整搶答時間調(diào)整答復(fù)時間模塊數(shù)碼顯示模塊圖4.1軟件系統(tǒng)結(jié)構(gòu)圖4.2軟件任務(wù)分析軟件任務(wù)分析和硬件電路設(shè)計結(jié)合進行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計根本定型后,也就根本上決定下來了。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量,計算,顯示,打印[8],輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當組織調(diào)度角色的軟件。這兩類軟件的設(shè)計方法各有特色,執(zhí)行軟件的設(shè)計偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時,應(yīng)將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義〔輸入輸出定義〕。在各執(zhí)行模塊進行定義時,將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比擬容易編程,而監(jiān)控程序較易出問題。這如同當一名操作工人比擬容易,而當一個廠長就比擬難了。軟件任務(wù)分析的另一個內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個系統(tǒng)軟件可分為后臺程序〔背景程序〕和前臺程序。后臺程序指主程序及其調(diào)用的子程序,這類程序?qū)崟r性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序〔鍵盤解釋程序〕,顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而前臺程序安排一些實時性要求較高的內(nèi)容,如定時系統(tǒng)和外部中斷〔如掉電中斷〕。也可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進入睡眠狀態(tài)〞,以利于系統(tǒng)節(jié)電和抗干擾。4.3程序流程圖在本設(shè)計中包括了以下八個主要的程序:主程序;非法搶答序;搶答時間調(diào)整程序;答復(fù)時間調(diào)整程序;倒計時程序;正常搶答處理程序;犯規(guī)處理程序;顯示及發(fā)聲程序。主流程圖如4-2所示。顯示FFF顯示FFF開始鍵按下?加一鍵按下?減一鍵按下?答復(fù)時間調(diào)整搶答時間去抖動非法搶答處理顯示犯規(guī)正常搶答顯示搶答號并倒計時YYY初始化初始化YYY顯示搶答號并倒計時正常搶答顯示非法搶答處理去抖動調(diào)整搶答時間答復(fù)時間減一鍵按下?加一鍵按下?開始鍵按下?LED顯示圖4.2程序設(shè)計流程圖4.4本章小結(jié)本章是搶答器的軟件設(shè)計,實現(xiàn)搶答功能主要是通過編寫程序的方法集成在AT89C51內(nèi)部。將程序下載到硬件電路中,實現(xiàn)搶答功能。第五章Proteus仿真系列組圖復(fù)位圖圖5.1復(fù)位顯示三個FFF設(shè)置計時時間圖5.2計時時間為33秒非法搶答并顯示座號圖5.3六號選手非法搶答搶答成功并顯示倒計時圖5.4二號選手搶三號選手搶答成功圖5.5五號選手搶答5.2本章小結(jié)本章是搶答器的系統(tǒng)仿真局部,并對搶答器的各個流程做出了具體仿真結(jié)果。從仿真圖上可以進一步得出結(jié)論:利用單片機設(shè)計的搶答器工作性能穩(wěn)定,延遲時間小,電路結(jié)構(gòu)簡單,是一個實用、創(chuàng)新性的電路設(shè)計??偨Y(jié)本文研究與設(shè)計的六路多功能搶答器采用了通用的電子元器件,利用AT89C51單片機及外圍接口實現(xiàn)搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。計分接收的單片機局部利用匯編語言編寫。設(shè)計時,首先通過在線編程,然后具體安裝,仿真,完全實現(xiàn)了設(shè)計功能。本設(shè)計中,利用常規(guī)的單片機掃描識別的方法。通過硬件電路的具體應(yīng)用和系統(tǒng)的仿真研究得出,本設(shè)計不僅安裝簡單、本錢低,更重要的是工作性能穩(wěn)定,是一個實用、創(chuàng)新型的工程設(shè)計。由于采用匯編語言設(shè)計電路,所以本設(shè)計在編程成功后,硬件電路根本上不需要調(diào)試就可正常使用。即使在設(shè)計完畢交給用戶使用后,對系統(tǒng)的功能改良或升級也只是通過改寫程序來完成,極大地方便了用戶或設(shè)計者對電路更新。參考文獻〔1〕李眾張素琴陳嬌《單片機技術(shù)與工程訓練》常州信息職業(yè)技術(shù)學院印制2023(2)高偉《AT89單片機原理及應(yīng)用》北京:國防工業(yè)出版社2023〔3〕余發(fā)山《單片機原理及應(yīng)用技術(shù)》中國礦業(yè)大學出版社2003〔4〕馬淑華《單片機原理與接口技術(shù)》北京:北京郵電大學出版社2005〔5〕李海濱,片春暖《單片機技術(shù)》北京:中國電力出版社2023(6)高衛(wèi)東,辛友順《51單片機原理與實踐》北京航空航天大學出版社2023答謝辭本論文是在黃宇航老師、主任的悉心指導下完成的,他對本論文的選題、構(gòu)思、設(shè)計、工程產(chǎn)品的制作給予了許多指導使得本論文設(shè)計得以順利完成。黃宇航老師淵博的專業(yè)知識,嚴謹?shù)闹螌W態(tài)度,精益求精的工作作風,誨人不倦的高尚師德,嚴以律己,寬以待人的崇高風范,樸實無華,平易近人的人格魅力對我影響深遠。不僅使我樹立了遠大的學習目標,掌握了根本的學習研究方法,還使我明白了許多為人處事的道理。在此,謹向黃宇航老師表示崇高的敬意和衷心的感謝!我還要感謝我的一些同學,他們在我最需要幫助的時候無私的伸出了援助之手,在此,對于他們無私的幫助我表示深深的感謝??梢哉f如果沒有他們的幫助我就不可能順利的按時完成畢業(yè)設(shè)計。真誠的感謝所有的幫助過我的老師們,同學們和朋友們。感謝對本設(shè)計進行評審的老師們,感謝你們給我提出的珍貴意見和建議。劉賀賀2011附錄一源程序代碼:OKEQU20H;搶答開始標志位

RINGEQU22H;響鈴標志位

ORG0000H

AJMPMAIN

ORG0003H

AJMPINT0SUB

ORG000BH

AJMPT0INT

ORG0013H

AJMPINT1SUB

ORG001BH

AJMPT1INT

ORG0040H

MAIN:MOVR1,#30;初設(shè)搶答時間為30s

MOVR2,#60;初設(shè)答題時間為60s

MOVTMOD,#11H;設(shè)置未定時器/模式1

MOVTH0,#0F0H

MOVTL0,#0FFH;越高發(fā)聲頻率越高,越尖

MOVTH1,#3CH

MOVTL1,#0B0H;50ms為一次溢出中斷

SETBEA

SETBET0

SETBET1

SETBEX0

SETBEX1;允許四個中斷,T0/T1/INT0/INT1

CLROK

CLRRING

SETBTR1

SETBTR0;一開始就運行定時器,以開始顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了

;=====查詢程序=====

START:MOVR5,#0BH

MOVR4,#0BH

MOVR3,#0BH

ACALLDISPLAY;未開始搶答時候顯示FFF

JBP3.0,NEXT;ddddddd

ACALLDELAY

JBP3.0,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢

ACALLBARK;按鍵發(fā)聲

MOVA,R1

MOVR6,A;送R1->R6,因為R1中保存了搶答時間

SETBOK;搶答標志位,用于COUNT只程序中判斷是否查詢搶答

MOVR7,#01H;讀搶答鍵數(shù)據(jù)信號標志,這里表示只讀一次有用信號

MOVR3,#0AH;搶答只顯示計時,滅號數(shù)

AJMPCOUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT里面

NEXT:JNBP1.0,FALSE1

JNBP1.1,FALSE2

JNBP1.2,FALSE3

JNBP1.3,FALSE4

JNBP1.4,FALSE5

JNBP1.5,FALSE6

JNBP1.6,FALSE7

JNBP1.7,FALSE8

AJMPSTART

;=====非法搶答處理程序=====

FALSE1:MOVR3,#01H

AJMPERROR

FALSE2:MOVR3,#02H

AJMPERROR

FALSE3:MOVR3,#03H

AJMPERROR

FALSE4:MOVR3,#04H

AJMPERROR

FALSE5:MOVR3,#05H

AJMPERROR

FALSE6:MOVR3,#06H

AJMPERROR

FALSE7:MOVR3,#07H

AJMPERROR

FALSE8:MOVR3,#08H

AJMPERROR

;=====INT0(搶答時間R1調(diào)整程序)=====

INT0SUB:MOVA,R1

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVR3,#0AH

ACALLDISPLAY;先在兩個時間LED上顯示R1

JNBP3.4,INC0;P3.4為+1s鍵,如按下跳到INCO

JNBP3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO

JNBP3.1,BACK0;P3.1為確定鍵,如按下跳到BACKO

AJMPINT0SUB

INC0:MOVA,R1

CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。

MOVR1,#00H

ACALLDELAY1

AJMPINT0SUB

ADD0:INCR1

ACALLDELAY1

AJMPINT0SUB

DEC0:MOVA,R1

JZSETR1;如果R1為0,R1就置99,

DECR1

ACALLDELAY1

AJMPINT0SUB

SETR1:MOVR1,#63H

ACALLDELAY1

AJMPINT0SUB

BACK0:RETI

;=====INT1(答復(fù)時間R2調(diào)整程序)=====

INT1SUB:MOVA,R2

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVR3,#0AH

ACALLDISPLAY

JNBP3.4,INC1

JNBP3.5,DEC1

JNBP3.1,BACK1

AJMPINT1SUB

INC1:MOVA,R2

CJNEA,#63H,ADD1

MOVR2,#00H

ACALLDELAY1

AJMPINT1SUB

ADD1:INCR2

ACALLDELAY1

AJMPINT1SUB

DEC1:MOVA,R2

JZSETR2

DECR2

ACALLDELAY1

AJMPINT1SUB

SETR2:MOVR2,#63H

ACALLDELAY1

AJMPINT1SUB

BACK1:RETI

;=====倒計時程序(搶答倒計時和答復(fù)倒計時都跳到改程序)=====

REPEAT:MOVA,R2;使用錦囊時重新計時

MOVR6,A

CLRRING

COUNT:MOVR0,#00H;重置定時器中斷次數(shù)

MOVTH1,#3CH

MOVTL1,#0B0H;重置定時器

RECOUNT:MOVA,R6;R6保存了倒計時的時間,之前先將搶答時間或答復(fù)時間給R6

MOVB,#0AH

DIVAB;除十分出個位/十位

MOV30H,A;十位存于(30H)

MOV31H,B;個位存于(31H)

MOVR5,30H;取十位

MOVR4,31H;取個位

MOVA,R6

SUBBA,#07H

JNCLARGER;大于5s跳到LARGER,小于等于5s會提醒

MOVA,R0

CJNEA,#0AH,FULL;1s中0.5s向下運行

CLRRING

AJMPCHECK

FULL:CJNEA,#14H,CHECK;下面是1s的情況,響并顯示號數(shù)并清R0,重新計

SETBRING

MOVA,R6

JZQUIT;計時完畢

MOVR0,#00H

DECR6;一秒標志減1

AJMPCHECK

LARGER:MOVA,R0

CJNEA,#14H,CHECK;如果1s向下運行,否者跳到查"停/顯示"

DECR6;計時一秒R6自動減1

MOVR0,#00H

CHECK:JNBP3.1,QUIT;如按下停止鍵退出

JNBOK,CHECKK;只在答復(fù)倒計時才有效

AJMPNEXTT

CHECKK:JNBP3.0,REPEAT;判斷是否使用錦囊

NEXTT:ACALLDISPLAY

JBOK,ACCOUT;如果是搶答倒計時,如是那么查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)

AJMPRECOUNT

ACCOUT:

MOVA,36H

JNBACC.0,TRUE1

JNBACC.1,TRUE2

JNBACC.2,TRUE3

JNBACC.3,TRUE4

JNBACC.4,TRUE5

JNBACC.5,TRUE6JNBACC.6,TZ1

JNBACC.7,TZ2

AJMPRECOUNT

TZ1:JMPTRUE7

TZ2:JMPTRUE8

QUIT:CLROK;如果按下了"停止鍵"執(zhí)行的程序

CLRRING

AJM

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論