基于-AT89C51八路搶答器設(shè)計_第1頁
基于-AT89C51八路搶答器設(shè)計_第2頁
基于-AT89C51八路搶答器設(shè)計_第3頁
基于-AT89C51八路搶答器設(shè)計_第4頁
基于-AT89C51八路搶答器設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z 中期設(shè)計基于AT89C51的八路搶答器設(shè)計班 級084學(xué) 號0810425學(xué)生鋒學(xué)院名稱物理機電工程學(xué)院專業(yè)名稱電子信息技術(shù)指導(dǎo)教師董安明2021年05月20日目 錄 TOC o 1-3 h z u HYPERLINK l _Toc2636328311 緒論HYPERLINK l _Toc2636328331目的與意義HYPERLINK l _Toc2636328352 系統(tǒng)概述HYPERLINK l _Toc2636328362.1 系統(tǒng)的主要功能HYPERLINK l _Toc2636328382.2 搶答器的工作流程HYPERLINK l _Toc2636328392.3搶答器

2、的工作過程HYPERLINK l _Toc2636328412.4器件的選擇HYPERLINK l _Toc2636328433 系統(tǒng)總體方案的設(shè)計HYPERLINK l _Toc2636328453.1硬件原理圖HYPERLINK l _Toc2636328513.2顯示電路的設(shè)計HYPERLINK l _Toc2636328523.3鍵盤掃描電路的設(shè)計HYPERLINK l _Toc2636328533.4發(fā)聲電路的設(shè)計HYPERLINK l _Toc2636328564 軟件設(shè)計HYPERLINK l _Toc2636328574.1 設(shè)計思想HYPERLINK l _Toc263632

3、8584.2 方案實現(xiàn)HYPERLINK l _Toc263632860結(jié)論HYPERLINK l _Toc263632863附錄1 緒論1.1目的與意義通過這次設(shè)計,掌握51單片機的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶答器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設(shè)計與裝配、調(diào)試,提高自己的動手能力,穩(wěn)固已學(xué)的理論知識,建立單片機理論和實踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握多功能搶答器的調(diào)整及測試方法。提高動手能力和排除故障的能力。2 系統(tǒng)概述2.1 系統(tǒng)的主要功能本系統(tǒng)是借用單片機

4、采用模塊化設(shè)計的八路搶答器,包括8路搶答按紐、計時顯示、提示功能等根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能、開場與完畢控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功能等根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能。參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外,還有人性化的提示功能和時間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開場與完畢控制,根據(jù)活動參賽者的層次,對提前掄答者的行為設(shè)定為非法或阻隔,假設(shè)設(shè)有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的臺位號,對搶答限時及答復(fù)下列問題限時設(shè)為倒計時,并有顯示提示。系統(tǒng)的主要功能模塊方框圖如圖2-1所示。 AT89C51單片機4位七段數(shù)碼

5、管顯示聲音電路=8路搶答按鍵輸入復(fù)位電路開場、完畢按鍵輸入加一、減一按鍵輸入時鐘圖2-1 系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計的八路搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。一共有8個按鍵輸入,分別對應(yīng)8路選手的搶答按鍵。主持人有開場和完畢鍵。在后臺主持人可以修改,搶答時間和選手答復(fù)下列問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為20s,答復(fù)下列問題時間為30s。通過加鍵和減鍵修改上述時間,改完后完畢鍵確定。新時間開場有效,主持人按鍵開場后,選手開場搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發(fā)生提示。如果主持人沒有按下開場鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者

6、的代號,揚聲器持續(xù)發(fā)生。主持人可按鍵完畢,新一輪搶答開場。單片機是整個搶答器的核心,部電路設(shè)計用匯編語言編寫。它完成了時間參數(shù)的設(shè)定,搶按的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。2.2 搶答器的工作流程搶答器的根本工作原理:如圖2所示,下面分別予以介紹。加載程序運 行行開場開場數(shù)碼管顯示FFF開場搶按時間倒計時開場前有選手搶按顯示違例選手并伴有語音報警倒計時結(jié)束,超時有選手搶按顯示FFF顯示選手,倒計時時間,語音報警,答題,答題時間倒計時正常流程違規(guī)流程假設(shè)超過答題時間,則數(shù)碼管顯示FFF答題完畢根據(jù)選手表現(xiàn),規(guī)則由主持人減分圖2-2 搶答器工作流程2.3 搶答器的工作過程1、如果想

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

8、入下次搶答計時。4、如果主持人未按搶答開場鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下停頓 鍵為止。2.4 器件的選擇微控制器選用ATMAL公司生產(chǎn)的AT89C51,該芯片貨源充足,并且價格也比擬廉價。如表1所示。表1 器件選型方案的詳細清單器件名稱規(guī)格型號數(shù)量微處理器AT89C511芯片74LS04174HC301電阻3WTT10K8電容20PF3晶振12MHZ1按鈕117段數(shù)碼管7SEG-MP*4-CA4揚聲器13系統(tǒng)總體方案的設(shè)計3.1硬件原理圖圖3-1中U1為單片機AT89C51,U2為芯片74HC30,U3為芯片74LS04。K1K8分別為8路

9、搶答按鍵,分別接到單片機的P1.0P1.7中。開場按鍵與完畢按鍵分別接到單片機的10、11腳,由于單片機的10、11腳既有串行接口R*D、T*D功能,又有P3.0、P3.1的IO端口功能,此處按鍵用到單片機10、11腳的IO端口功能。搶答時間調(diào)整按鍵和答復(fù)時間調(diào)整按鍵分別接到單片機的13、14管腳,加一按鍵和減一按鍵分別接到單片機的15、16管腳。4位七段數(shù)碼管段選P0口。4位七段數(shù)碼管的位選接P2口低3位,蜂鳴器輸出為P3.7口。圖3-1 系統(tǒng)原理圖3.2 顯示電路的設(shè)計顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。在這里我們使用的

10、是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法。圖3-4中數(shù)碼管采用的是4位七段共陰數(shù)碼管,其中AH段分別接到單片機的P0口,由單片機輸出的P0口數(shù)據(jù)來決定段碼值,位選碼1、3、4分別接到單片機的P2.0、P2.1、P2.2,由單片機來決定當(dāng)前該顯示的是哪一位。在圖中還有八個1K的電阻,連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數(shù)據(jù)輸出時候處于高電

11、平狀態(tài)。3.3 鍵盤掃描電路的設(shè)計鍵盤是人與單片機打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上

12、比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的毛刺 現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為毛刺脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠遠大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。在本文設(shè)計中采用了獨立鍵盤的方式,本設(shè)計中有8個搶答按鍵輸入,一個開場按鍵、一個完畢按鍵,此外還有搶答時間調(diào)整鍵、答復(fù)時間調(diào)整鍵,加一按鍵、減一按鍵各一個。如圖3-5所示。圖3-5 搶答按鍵及調(diào)整按鍵在圖3-5中8個搶答按鍵分別

13、接入單片機的P1.0P1.7端口,單片機通過讀取P1.0P1.7的值來判斷當(dāng)前輸入的是8個搶答按鍵中的哪一個。搶答時間調(diào)整和答復(fù)時間調(diào)整接到單片機的P3.3和P3.4接口,加一及減一按鍵接到單片機的P3.5和P3.6接口。圖3-6 開場、完畢按鍵在圖3-6中,開場及完畢按鍵接到單片機的10、11腳,這里用到了單片機10、11腳復(fù)合功能中的IO端口功能,單片機通過讀取10、11腳的P3.0、P3.1的IO端口值來判斷當(dāng)前是否處于搶答開場狀態(tài)或搶答完畢狀態(tài)。按鍵的觸點在閉合和斷開時均會產(chǎn)生抖動,這時觸點的邏輯電平是不穩(wěn)定的,如不妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復(fù)執(zhí)行。現(xiàn)在一般均用軟件延時的

14、方法來避開抖動階段,這一延時過程一般大于5ms,例如取10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序后臺程序或鍵盤中斷外部中斷子程序中,則該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。K1K8八個按鍵的輸入電平靠74HC30輸入與非門和74LS04反向器組成的電路改變輸入電平。圖3-7中電路就是由一個74HC30輸入與非門和74LS04反向器組成的去抖電路。圖3-7 去抖電路3.4 發(fā)聲電路的設(shè)計我們知道,聲音的頻譜圍約在幾十到幾千赫茲,假設(shè)能利用程序來控制單片機*個口線的高電平或低電平,則在該

15、口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,假設(shè)再利用延時程序控制高低電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。本文設(shè)計如圖3-8所示。圖中單片機的14腳輸出具有復(fù)合功能,此處用到了單片機17腳的IO端口功能,單片機通過部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動揚聲器發(fā)聲。圖3-8 發(fā)聲電路4 軟件設(shè)計4.1 設(shè)計思想由方案分析知,本設(shè)計涉及到的功能子程序包括:查詢程序、非法搶答處理程序、INT0調(diào)搶答時間、INT1調(diào)答復(fù)時間、倒計時程序、正常搶答處理程序、犯規(guī)搶答程序、顯示程序、發(fā)聲程序、T0溢出中斷(響鈴程序)、T1溢出中斷(計時程序)。4.2

16、 方案實現(xiàn)由設(shè)計的硬件局部看到,本設(shè)計采用P3.2、P3.3分別接搶答時間調(diào)節(jié)和答題時間調(diào)節(jié)按鈕,即通過外部中斷0、外部中斷1分別控制搶答、答題時間的調(diào)整。因此,設(shè)計的軟件局部可分為工作模塊、外部中斷0模塊、外部中斷1模塊。對流程圖的分析,也分三局部來介紹。1、工作時非調(diào)節(jié)時間時的流程平時正常工作時,程序的流程圖繪制如圖4-1:對工作流程圖中的*些局部解釋如下:初始化局部:包括對定時計數(shù)器的工作方式、初始化數(shù)值的設(shè)置,還包括對搶答時間與答題時間的預(yù)設(shè),另外,還應(yīng)對外部中斷0、外部中斷1進展開放。搶答倒計時、答復(fù)倒計時局部:由于二者功能的相似性,本設(shè)計將二者在一個子程序倒計時程序中一起編寫。另外

17、,此時還需要調(diào)用到顯示子程序,在流程圖中省略了。犯規(guī)程序局部:包括對犯規(guī)選手號的顯示、報警器的連續(xù)工作。另外,由于在設(shè)計要求主持人能隨時對工作過程終止,因此,要不斷查詢停頓鍵的狀態(tài),一旦按下,便回到初始化后的狀態(tài);在倒計時過程中還要不斷將與5S比擬,當(dāng)小于5S時,還需調(diào)用發(fā)聲程序;小于5S后, 又需要不斷將與0較,當(dāng)其等于零時,立即返回。圖4-1 工作流程圖2、 外部中斷0搶答時間調(diào)整流程外部中斷0搶答時間調(diào)整的流程圖見圖4-2:INT0中斷Y顯示當(dāng)前搶答時間P3.4按下.P3.5按下.搶答時間加1sNYN結(jié)果為100s結(jié)果置0N結(jié)果為0s結(jié)果置100搶答時間減1sYYN停頓鍵按下.中斷返回N

18、Y圖4-2 INT0流程圖一旦因P3.2對應(yīng)鍵的按下,便進入INT0中斷過程。通過不斷對P3.4加1s和P3.5減1s進展不斷的查詢,來對搶答時間進展調(diào)整:發(fā)現(xiàn)P3.4按下,就對原搶答時間加1s, 發(fā)現(xiàn)P3.5下,就對原搶答時間減1s并調(diào)用顯示程序。根據(jù)設(shè)計要求,當(dāng)加至99s時,假設(shè)再加1s,則時間變?yōu)?;當(dāng)減至0s后,假設(shè)再減一秒,時間變?yōu)?9s。因此,流程中應(yīng)該對當(dāng)前時間于99s或0s比擬,再作出相應(yīng)處理。另外,在中斷過程中還需要不時對停頓按鈕進展查詢,一旦發(fā)現(xiàn)其按下,立即中斷返回。由于本中斷過程在返回前一直是循環(huán)執(zhí)行的,因此,只需要在每次循環(huán)末查詢一次即可,如流程圖所示。3、 外部中斷1

19、答題時間調(diào)整流程外部中斷1答題時間調(diào)整流程與外部中斷1流程小異,但這里還是介紹一下。其程序流程參見圖4-3:INT1中斷Y顯示當(dāng)前答題時間P3.4按下.P3.5按下.答題時間加1sNYN結(jié)果為100s結(jié)果置0N結(jié)果為0s結(jié)果置100答題時間減1sYYN停頓鍵按下.中斷返回NY圖4-3 INT1流程圖與搶答時間調(diào)整類似,一旦因P3.3對應(yīng)的按鈕按下,便進入INT1中斷過程。通過不斷對P3.4加1s和P3.5減1s進展不斷的查詢,來對搶答時間進展調(diào)整:發(fā)現(xiàn)P3.4按下,就對原搶答時間加1s, 發(fā)現(xiàn)P3.5下,就對原搶答時間減1s并調(diào)用顯示程序。當(dāng)加至99s時,假設(shè)再加1s,則時間變?yōu)?;當(dāng)減至0s

20、后,假設(shè)再減一秒,時間變?yōu)?9s。因此,流程中應(yīng)該對當(dāng)前時間于99s或0s比擬,再作出相應(yīng)處理。同上,在中斷過程中,需要不時對停頓按鈕進展查詢,一旦發(fā)現(xiàn)其按下,立即中斷返回。結(jié)論本文研究設(shè)計的八路搶答器采用了通用的電子元器件,利用AT89C51單片機及外圍接口實現(xiàn)強大系統(tǒng),利用單片機的定時器、計數(shù)器定時和計數(shù)的原理,將軟硬件有機的結(jié)合起來。理論聯(lián)系時間,表達出大學(xué)生的動手能力。通過查資料和收集有關(guān)的文獻,培養(yǎng)了自學(xué)能力和動手能力。并且有原先的被動承受轉(zhuǎn)換為主動尋求,這可是學(xué)習(xí)方法上的一個很大突破。在以往的傳統(tǒng)學(xué)習(xí)模式下,我們可能會記住很多書本知識,但是通過設(shè)計,我們學(xué)會了如何將學(xué)到的知識化為自

21、己的東西,學(xué)會了怎么跟好的處理只是和實踐相結(jié)合的問題,把握重點,攻克難關(guān),學(xué)到用到活學(xué)活用。在設(shè)計過程中由于時間倉促有很多地方難免存在缺乏之處,整個設(shè)計通過軟件和硬件上的調(diào)試,仿真。我想這些對于自己以后的學(xué)習(xí)和工作都會有很大的幫助。對于單片機設(shè)計,硬件電路時比擬簡單的,主要是解決程序設(shè)計中的問題。但是,通過這次設(shè)計我也發(fā)現(xiàn)自己的很多缺乏之處。在設(shè)計過程中我發(fā)現(xiàn)自己考慮問題很不全面,自己的專業(yè)知識掌握的很不牢靠,所掌握的計算機軟件還不夠,我希望自己的這些缺乏之處能在今后的工作和學(xué)習(xí)中得到改善。而且,通過這次設(shè)計,我懂得了學(xué)習(xí)的重要性,學(xué)會了堅持和努力,這將為以后的學(xué)習(xí)做出了最好的典范!回頭再看看

22、該設(shè)計,還可以將設(shè)計的擴展功能增強:1可以設(shè)計聲控裝置,在主持說開場時,系統(tǒng)自動完成清零并開場時的功能。2 增加積分模塊,可以設(shè)定初始積分,并記錄每次搶答完成后的積分。3 將搶答按鍵使用無線實現(xiàn),如紅外線,是搶答者可以遠距離進展搶答,并簡化按鍵模塊的線路布置。如果提供相應(yīng)的器材及時間上的寬限,硬頂可以完成上述擴展功能,進一步完善作品。附錄源程序:OK EQU 20H ;搶答開場標(biāo)志位 RING EQU 22H ;響鈴標(biāo)志位 DATA0 EQU 36H ;搶答按鍵口數(shù)據(jù)存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 000BH AJMP T0I

23、NT ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,*20 ;初設(shè)搶答時間為20s MOV R2,*30 ;初設(shè)答題時間為30s mov 38h,*60 ;啟用錦囊時間從60s倒計時 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 ;允許二個中斷,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;一開場就運行

24、定時器,以開場顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了;= ;=查詢程序=;= START: MOV DATA0,*0FFH ;初始化 MOV R5,*0BH MOV R4,*0BH MOV R3,*0BH ACALL DISPLAY ;未開場搶答時候顯示FFF JNB P3.3,SELSUB0 JNB P3.4,TZ3 ;倒計時調(diào)整 P3.0,NE*T ACALL DELAY P3.0,NE*T ;去抖動,如果開場鍵按下就向下執(zhí)行,否者跳到非法搶答查詢 SETB E*0 ;開放INT0 ACALL BARK ;按鍵發(fā)聲 MOV A,R1 MOV R6,A ;送R1-R6,因為R

25、1中保存了搶答時間 SETB OK ;搶答標(biāo)志位,在使用錦囊時用作判斷是搶答倒計時還是答復(fù)倒計時 MOV R3,*0AH ;搶答只顯示計時,滅號數(shù) AJMP COUNT ;進入倒計時程序,查詢有效搶答的程序在COUNT里面NE*T: 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: AJMP FALSE7TZ2: AJMP FALSE8TZ3: AJMP SELSUB1;=

26、 ;=非法搶答處理程序=;= FALSE1: MOV R3,*01H AJMP ERRORFALSE2: MOV R3,*02H AJMP ERRORFALSE3: MOV R3,*03H AJMP ERRORFALSE4: MOV R3,*04H AJMP ERRORFALSE5: MOV R3,*05H AJMP ERRORFALSE6: MOV R3,*06H AJMP ERRORFALSE7: MOV R3,*07H AJMP ERRORFALSE8: MOV R3,*08H AJMP ERROR;=;=SELSUB0(搶答時間R1調(diào)整程序)=;= SELSUB0: MOV A,R1

27、MOV B,*0AH DIV AB MOV R5,A MOV R4,B MOV R3,*0AH ACALL DISPLAY ;先在兩個時間LED上顯示R1 JNB P3.5,INC0 ;P3.5為+1s鍵,如按下跳到INCO JNB P3.6,DEC0 ;P3.6為-1s鍵,如按下跳到DECO JNB P3.1,BACK0 ;P3.1為確定鍵,如按下跳到BACKO AJMP SELSUB0INC0: MOV A,R1 CJNE A,*63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,*00H ACALL DELAY1 AJMP SELSUB0ADD

28、0: INC R1 ACALL DELAY1 AJMP SELSUB0DEC0: MOV A,R1 JZ SETR1 ;如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP SELSUB0SETR1: MOV R1,*63H ACALL DELAY1 AJMP SELSUB0BACK0: AJMP START;= ;=SELSUB1(答復(fù)時間R2調(diào)整程序)=;= SELSUB1: MOV A,R2 MOV B,*0AH DIV AB MOV R5,A MOV R4,B MOV R3,*0AH ACALL DISPLAY JNB P3.5,INC1 JNB P3.6,

29、DEC1 JNB P3.1,BACK1 AJMP SELSUB1INC1: MOV A,R2 CJNE A,*63H,ADD1 MOV R2,*00H ACALL DELAY1AJMP SELSUB1ADD1: INC R2 ACALL DELAY1 AJMP SELSUB1DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP SELSUB1SETR2: MOV R2,*63H ACALL DELAY1 AJMP SELSUB1BACK1: AJMP START;= ;=啟用錦囊程序=;= REPEAT:MOV A,38h ;使用錦囊時重新計時 MO

30、V R6,A CLR RING ;當(dāng)?shù)褂嫊r進入最后5秒的時候,啟用錦囊能消除蜂鳴;= ;=倒計時程序(搶答倒計時和答復(fù)倒計時都跳到改程序)=;= COUNT: MOV R0,*00H ;重置定時器中斷次數(shù) MOV TH1,*3CH MOV TL1,*0B0H ;重置定時器RECOUNT:MOV A,R6 ;R6保存了倒計時的時間,之前先將搶答時間或答復(fù)時間給R6 MOV B,*0AH DIV AB ;除十分出個位/十位 MOV 30H,A ;十位存于(30H) MOV 31H,B ;個位存于(31H) MOV R5,30H ;取十位 MOV R4,31H ;取個位 MOV A,R6 SUBB

31、A,*07H JNC LARGER ;大于5s跳到LARGER,小于等于5s會提醒 MOV A,R0 CJNE A,*0AH,FULL ;1s中0.5s向下運行 CLR RING AJMP CHECKFULL: 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自動減1 MOV R0,

32、*00HCHECK: JNB P3.1,QUIT;如按下停頓鍵退出 JNB OK,CHECKK ;只在答復(fù)倒計時才有效 AJMP NE*TTCHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊NE*TT: ACALL DISPLAY OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT:MOV A,DATA0 JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 J

33、NB ACC.6,TZ7 JNB ACC.7,TZ8 AJMP RECOUNT TZ7: AJMP TRUE7 TZ8: AJMP TRUE8 QUIT: CLR OK ;如果按下了停頓鍵執(zhí)行的程序 CLR RING AJMP START;= ;=正常搶答處理程序=;= TRUE1: ACALL BARK MOV A,R2 MOV R6,A ;搶答時間R2送R6 MOV R3,*01H CLR OK ;因為答題的計時不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,*02H CLR OK AJMP COUNTT

34、RUE3: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 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 A,R2 MOV R6,A MOV R3,*08H CLR OKAJMP COUNT;=;=犯規(guī)搶答程序=;= ERROR: MOV R0,*00H MOV TH1,*3CH MOV TL1,*0B0H MOV 34H,R3 ;犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,*06H,FLASH ;0.3s向下運行-滅并停響 CLR RING MOV R3,*0AH MOV R4,*0A

溫馨提示

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

最新文檔

評論

0/150

提交評論