版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、-. z 中期設(shè)計(jì)基于AT89C51的八路搶答器設(shè)計(jì)班 級084學(xué) 號(hào)0810425學(xué)生鋒學(xué)院名稱物理機(jī)電工程學(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è)計(jì)HYPERLINK l _Toc2636328453.1硬件原理圖HYPERLINK l _Toc2636328513.2顯示電路的設(shè)計(jì)HYPERLINK l _Toc2636328523.3鍵盤掃描電路的設(shè)計(jì)HYPERLINK l _Toc2636328533.4發(fā)聲電路的設(shè)計(jì)HYPERLINK l _Toc2636328564 軟件設(shè)計(jì)HYPERLINK l _Toc2636328574.1 設(shè)計(jì)思想HYPERLINK l _Toc263632
3、8584.2 方案實(shí)現(xiàn)HYPERLINK l _Toc263632860結(jié)論HYPERLINK l _Toc263632863附錄1 緒論1.1目的與意義通過這次設(shè)計(jì),掌握51單片機(jī)的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶答器的調(diào)整及測試方法,提高動(dòng)手能力和排除故障的能力。同時(shí)通過本課題設(shè)計(jì)與裝配、調(diào)試,提高自己的動(dòng)手能力,穩(wěn)固已學(xué)的理論知識(shí),建立單片機(jī)理論和實(shí)踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計(jì)、計(jì)算定時(shí)計(jì)數(shù)的各個(gè)單元電路。初步掌握多功能搶答器的調(diào)整及測試方法。提高動(dòng)手能力和排除故障的能力。2 系統(tǒng)概述2.1 系統(tǒng)的主要功能本系統(tǒng)是借用單片機(jī)
4、采用模塊化設(shè)計(jì)的八路搶答器,包括8路搶答按紐、計(jì)時(shí)顯示、提示功能等根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能、開場與完畢控制按鈕、時(shí)限設(shè)定、各種相關(guān)顯示調(diào)控功能等根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能。參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外,還有人性化的提示功能和時(shí)間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開場與完畢控制,根據(jù)活動(dòng)參賽者的層次,對提前掄答者的行為設(shè)定為非法或阻隔,假設(shè)設(shè)有非法搶答控制功能時(shí),在主控處帶有公示性顯示的非法掄答者的臺(tái)位號(hào),對搶答限時(shí)及答復(fù)下列問題限時(shí)設(shè)為倒計(jì)時(shí),并有顯示提示。系統(tǒng)的主要功能模塊方框圖如圖2-1所示。 AT89C51單片機(jī)4位七段數(shù)碼
5、管顯示聲音電路=8路搶答按鍵輸入復(fù)位電路開場、完畢按鍵輸入加一、減一按鍵輸入時(shí)鐘圖2-1 系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計(jì)的八路搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個(gè)搶答按鈕。一共有8個(gè)按鍵輸入,分別對應(yīng)8路選手的搶答按鍵。主持人有開場和完畢鍵。在后臺(tái)主持人可以修改,搶答時(shí)間和選手答復(fù)下列問題的時(shí)間設(shè)置,原始狀態(tài)下?lián)尨饡r(shí)間為20s,答復(fù)下列問題時(shí)間為30s。通過加鍵和減鍵修改上述時(shí)間,改完后完畢鍵確定。新時(shí)間開場有效,主持人按鍵開場后,選手開場搶答為有效,數(shù)碼顯示屏顯示搶答時(shí)間倒計(jì)時(shí)和選手號(hào),在最后五秒揚(yáng)聲器發(fā)生提示。如果主持人沒有按下開場鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者
6、的代號(hào),揚(yáng)聲器持續(xù)發(fā)生。主持人可按鍵完畢,新一輪搶答開場。單片機(jī)是整個(gè)搶答器的核心,部電路設(shè)計(jì)用匯編語言編寫。它完成了時(shí)間參數(shù)的設(shè)定,搶按的譯碼,保存;顯示;輸出,搶按及答題倒計(jì)時(shí)功能等。2.2 搶答器的工作流程搶答器的根本工作原理:如圖2所示,下面分別予以介紹。加載程序運(yùn) 行行開場開場數(shù)碼管顯示FFF開場搶按時(shí)間倒計(jì)時(shí)開場前有選手搶按顯示違例選手并伴有語音報(bào)警倒計(jì)時(shí)結(jié)束,超時(shí)有選手搶按顯示FFF顯示選手,倒計(jì)時(shí)時(shí)間,語音報(bào)警,答題,答題時(shí)間倒計(jì)時(shí)正常流程違規(guī)流程假設(shè)超過答題時(shí)間,則數(shù)碼管顯示FFF答題完畢根據(jù)選手表現(xiàn),規(guī)則由主持人減分圖2-2 搶答器工作流程2.3 搶答器的工作過程1、如果想
7、調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按加一鍵或減一鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或答復(fù)時(shí)間值,如想加一秒按一下加1s鍵,如果想減一秒按一下減1s鍵,時(shí)間LED上會(huì)顯示改變后的時(shí)間,調(diào)整圍為099s, 0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。2、主持人按搶答開場鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)預(yù)設(shè)20s搶答時(shí)間,如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入答復(fù)倒計(jì)時(shí)預(yù)設(shè)30s搶答時(shí)間,不進(jìn)展搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。3、如倒計(jì)時(shí)期間,主持人想停頓倒計(jì)時(shí)可以隨時(shí)按停頓按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按搶答開場進(jìn)
8、入下次搶答計(jì)時(shí)。4、如果主持人未按搶答開場鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下停頓 鍵為止。2.4 器件的選擇微控制器選用ATMAL公司生產(chǎn)的AT89C51,該芯片貨源充足,并且價(jià)格也比擬廉價(jià)。如表1所示。表1 器件選型方案的詳細(xì)清單器件名稱規(guī)格型號(hào)數(shù)量微處理器AT89C511芯片74LS04174HC301電阻3WTT10K8電容20PF3晶振12MHZ1按鈕117段數(shù)碼管7SEG-MP*4-CA4揚(yáng)聲器13系統(tǒng)總體方案的設(shè)計(jì)3.1硬件原理圖圖3-1中U1為單片機(jī)AT89C51,U2為芯片74HC30,U3為芯片74LS04。K1K8分別為8路
9、搶答按鍵,分別接到單片機(jī)的P1.0P1.7中。開場按鍵與完畢按鍵分別接到單片機(jī)的10、11腳,由于單片機(jī)的10、11腳既有串行接口R*D、T*D功能,又有P3.0、P3.1的IO端口功能,此處按鍵用到單片機(jī)10、11腳的IO端口功能。搶答時(shí)間調(diào)整按鍵和答復(fù)時(shí)間調(diào)整按鍵分別接到單片機(jī)的13、14管腳,加一按鍵和減一按鍵分別接到單片機(jī)的15、16管腳。4位七段數(shù)碼管段選P0口。4位七段數(shù)碼管的位選接P2口低3位,蜂鳴器輸出為P3.7口。圖3-1 系統(tǒng)原理圖3.2 顯示電路的設(shè)計(jì)顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。在這里我們使用的
10、是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。圖3-4中數(shù)碼管采用的是4位七段共陰數(shù)碼管,其中AH段分別接到單片機(jī)的P0口,由單片機(jī)輸出的P0口數(shù)據(jù)來決定段碼值,位選碼1、3、4分別接到單片機(jī)的P2.0、P2.1、P2.2,由單片機(jī)來決定當(dāng)前該顯示的是哪一位。在圖中還有八個(gè)1K的電阻,連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數(shù)據(jù)輸出時(shí)候處于高電
11、平狀態(tài)。3.3 鍵盤掃描電路的設(shè)計(jì)鍵盤是人與單片機(jī)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計(jì)方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計(jì)的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時(shí)刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤。它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上
12、比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的毛刺 現(xiàn)象。這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)槊堂}沖一般持續(xù)時(shí)間短,約為幾ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測到有按鍵動(dòng)靜后再延時(shí)一段時(shí)間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。在本文設(shè)計(jì)中采用了獨(dú)立鍵盤的方式,本設(shè)計(jì)中有8個(gè)搶答按鍵輸入,一個(gè)開場按鍵、一個(gè)完畢按鍵,此外還有搶答時(shí)間調(diào)整鍵、答復(fù)時(shí)間調(diào)整鍵,加一按鍵、減一按鍵各一個(gè)。如圖3-5所示。圖3-5 搶答按鍵及調(diào)整按鍵在圖3-5中8個(gè)搶答按鍵分別
13、接入單片機(jī)的P1.0P1.7端口,單片機(jī)通過讀取P1.0P1.7的值來判斷當(dāng)前輸入的是8個(gè)搶答按鍵中的哪一個(gè)。搶答時(shí)間調(diào)整和答復(fù)時(shí)間調(diào)整接到單片機(jī)的P3.3和P3.4接口,加一及減一按鍵接到單片機(jī)的P3.5和P3.6接口。圖3-6 開場、完畢按鍵在圖3-6中,開場及完畢按鍵接到單片機(jī)的10、11腳,這里用到了單片機(jī)10、11腳復(fù)合功能中的IO端口功能,單片機(jī)通過讀取10、11腳的P3.0、P3.1的IO端口值來判斷當(dāng)前是否處于搶答開場狀態(tài)或搶答完畢狀態(tài)。按鍵的觸點(diǎn)在閉合和斷開時(shí)均會(huì)產(chǎn)生抖動(dòng),這時(shí)觸點(diǎn)的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時(shí)的
14、方法來避開抖動(dòng)階段,這一延時(shí)過程一般大于5ms,例如取10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序后臺(tái)程序或鍵盤中斷外部中斷子程序中,則該延時(shí)子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時(shí)中斷子程序中,就可省去專門的延時(shí)子程序,利用兩次定時(shí)中斷的時(shí)間間隔來完成抖動(dòng)處理。K1K8八個(gè)按鍵的輸入電平靠74HC30輸入與非門和74LS04反向器組成的電路改變輸入電平。圖3-7中電路就是由一個(gè)74HC30輸入與非門和74LS04反向器組成的去抖電路。圖3-7 去抖電路3.4 發(fā)聲電路的設(shè)計(jì)我們知道,聲音的頻譜圍約在幾十到幾千赫茲,假設(shè)能利用程序來控制單片機(jī)*個(gè)口線的高電平或低電平,則在該
15、口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,假設(shè)再利用延時(shí)程序控制高低電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。本文設(shè)計(jì)如圖3-8所示。圖中單片機(jī)的14腳輸出具有復(fù)合功能,此處用到了單片機(jī)17腳的IO端口功能,單片機(jī)通過部定時(shí)器的操作實(shí)現(xiàn)交替變換的波形輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。圖3-8 發(fā)聲電路4 軟件設(shè)計(jì)4.1 設(shè)計(jì)思想由方案分析知,本設(shè)計(jì)涉及到的功能子程序包括:查詢程序、非法搶答處理程序、INT0調(diào)搶答時(shí)間、INT1調(diào)答復(fù)時(shí)間、倒計(jì)時(shí)程序、正常搶答處理程序、犯規(guī)搶答程序、顯示程序、發(fā)聲程序、T0溢出中斷(響鈴程序)、T1溢出中斷(計(jì)時(shí)程序)。4.2
16、 方案實(shí)現(xiàn)由設(shè)計(jì)的硬件局部看到,本設(shè)計(jì)采用P3.2、P3.3分別接搶答時(shí)間調(diào)節(jié)和答題時(shí)間調(diào)節(jié)按鈕,即通過外部中斷0、外部中斷1分別控制搶答、答題時(shí)間的調(diào)整。因此,設(shè)計(jì)的軟件局部可分為工作模塊、外部中斷0模塊、外部中斷1模塊。對流程圖的分析,也分三局部來介紹。1、工作時(shí)非調(diào)節(jié)時(shí)間時(shí)的流程平時(shí)正常工作時(shí),程序的流程圖繪制如圖4-1:對工作流程圖中的*些局部解釋如下:初始化局部:包括對定時(shí)計(jì)數(shù)器的工作方式、初始化數(shù)值的設(shè)置,還包括對搶答時(shí)間與答題時(shí)間的預(yù)設(shè),另外,還應(yīng)對外部中斷0、外部中斷1進(jìn)展開放。搶答倒計(jì)時(shí)、答復(fù)倒計(jì)時(shí)局部:由于二者功能的相似性,本設(shè)計(jì)將二者在一個(gè)子程序倒計(jì)時(shí)程序中一起編寫。另外
17、,此時(shí)還需要調(diào)用到顯示子程序,在流程圖中省略了。犯規(guī)程序局部:包括對犯規(guī)選手號(hào)的顯示、報(bào)警器的連續(xù)工作。另外,由于在設(shè)計(jì)要求主持人能隨時(shí)對工作過程終止,因此,要不斷查詢停頓鍵的狀態(tài),一旦按下,便回到初始化后的狀態(tài);在倒計(jì)時(shí)過程中還要不斷將與5S比擬,當(dāng)小于5S時(shí),還需調(diào)用發(fā)聲程序;小于5S后, 又需要不斷將與0較,當(dāng)其等于零時(shí),立即返回。圖4-1 工作流程圖2、 外部中斷0搶答時(shí)間調(diào)整流程外部中斷0搶答時(shí)間調(diào)整的流程圖見圖4-2:INT0中斷Y顯示當(dāng)前搶答時(shí)間P3.4按下.P3.5按下.搶答時(shí)間加1sNYN結(jié)果為100s結(jié)果置0N結(jié)果為0s結(jié)果置100搶答時(shí)間減1sYYN停頓鍵按下.中斷返回N
18、Y圖4-2 INT0流程圖一旦因P3.2對應(yīng)鍵的按下,便進(jìn)入INT0中斷過程。通過不斷對P3.4加1s和P3.5減1s進(jìn)展不斷的查詢,來對搶答時(shí)間進(jìn)展調(diào)整:發(fā)現(xiàn)P3.4按下,就對原搶答時(shí)間加1s, 發(fā)現(xiàn)P3.5下,就對原搶答時(shí)間減1s并調(diào)用顯示程序。根據(jù)設(shè)計(jì)要求,當(dāng)加至99s時(shí),假設(shè)再加1s,則時(shí)間變?yōu)?;當(dāng)減至0s后,假設(shè)再減一秒,時(shí)間變?yōu)?9s。因此,流程中應(yīng)該對當(dāng)前時(shí)間于99s或0s比擬,再作出相應(yīng)處理。另外,在中斷過程中還需要不時(shí)對停頓按鈕進(jìn)展查詢,一旦發(fā)現(xiàn)其按下,立即中斷返回。由于本中斷過程在返回前一直是循環(huán)執(zhí)行的,因此,只需要在每次循環(huán)末查詢一次即可,如流程圖所示。3、 外部中斷1
19、答題時(shí)間調(diào)整流程外部中斷1答題時(shí)間調(diào)整流程與外部中斷1流程小異,但這里還是介紹一下。其程序流程參見圖4-3:INT1中斷Y顯示當(dāng)前答題時(shí)間P3.4按下.P3.5按下.答題時(shí)間加1sNYN結(jié)果為100s結(jié)果置0N結(jié)果為0s結(jié)果置100答題時(shí)間減1sYYN停頓鍵按下.中斷返回NY圖4-3 INT1流程圖與搶答時(shí)間調(diào)整類似,一旦因P3.3對應(yīng)的按鈕按下,便進(jìn)入INT1中斷過程。通過不斷對P3.4加1s和P3.5減1s進(jìn)展不斷的查詢,來對搶答時(shí)間進(jìn)展調(diào)整:發(fā)現(xiàn)P3.4按下,就對原搶答時(shí)間加1s, 發(fā)現(xiàn)P3.5下,就對原搶答時(shí)間減1s并調(diào)用顯示程序。當(dāng)加至99s時(shí),假設(shè)再加1s,則時(shí)間變?yōu)?;當(dāng)減至0s
20、后,假設(shè)再減一秒,時(shí)間變?yōu)?9s。因此,流程中應(yīng)該對當(dāng)前時(shí)間于99s或0s比擬,再作出相應(yīng)處理。同上,在中斷過程中,需要不時(shí)對停頓按鈕進(jìn)展查詢,一旦發(fā)現(xiàn)其按下,立即中斷返回。結(jié)論本文研究設(shè)計(jì)的八路搶答器采用了通用的電子元器件,利用AT89C51單片機(jī)及外圍接口實(shí)現(xiàn)強(qiáng)大系統(tǒng),利用單片機(jī)的定時(shí)器、計(jì)數(shù)器定時(shí)和計(jì)數(shù)的原理,將軟硬件有機(jī)的結(jié)合起來。理論聯(lián)系時(shí)間,表達(dá)出大學(xué)生的動(dòng)手能力。通過查資料和收集有關(guān)的文獻(xiàn),培養(yǎng)了自學(xué)能力和動(dòng)手能力。并且有原先的被動(dòng)承受轉(zhuǎn)換為主動(dòng)尋求,這可是學(xué)習(xí)方法上的一個(gè)很大突破。在以往的傳統(tǒng)學(xué)習(xí)模式下,我們可能會(huì)記住很多書本知識(shí),但是通過設(shè)計(jì),我們學(xué)會(huì)了如何將學(xué)到的知識(shí)化為自
21、己的東西,學(xué)會(huì)了怎么跟好的處理只是和實(shí)踐相結(jié)合的問題,把握重點(diǎn),攻克難關(guān),學(xué)到用到活學(xué)活用。在設(shè)計(jì)過程中由于時(shí)間倉促有很多地方難免存在缺乏之處,整個(gè)設(shè)計(jì)通過軟件和硬件上的調(diào)試,仿真。我想這些對于自己以后的學(xué)習(xí)和工作都會(huì)有很大的幫助。對于單片機(jī)設(shè)計(jì),硬件電路時(shí)比擬簡單的,主要是解決程序設(shè)計(jì)中的問題。但是,通過這次設(shè)計(jì)我也發(fā)現(xiàn)自己的很多缺乏之處。在設(shè)計(jì)過程中我發(fā)現(xiàn)自己考慮問題很不全面,自己的專業(yè)知識(shí)掌握的很不牢靠,所掌握的計(jì)算機(jī)軟件還不夠,我希望自己的這些缺乏之處能在今后的工作和學(xué)習(xí)中得到改善。而且,通過這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,學(xué)會(huì)了堅(jiān)持和努力,這將為以后的學(xué)習(xí)做出了最好的典范!回頭再看看
22、該設(shè)計(jì),還可以將設(shè)計(jì)的擴(kuò)展功能增強(qiáng):1可以設(shè)計(jì)聲控裝置,在主持說開場時(shí),系統(tǒng)自動(dòng)完成清零并開場時(shí)的功能。2 增加積分模塊,可以設(shè)定初始積分,并記錄每次搶答完成后的積分。3 將搶答按鍵使用無線實(shí)現(xiàn),如紅外線,是搶答者可以遠(yuǎn)距離進(jìn)展搶答,并簡化按鍵模塊的線路布置。如果提供相應(yīng)的器材及時(shí)間上的寬限,硬頂可以完成上述擴(kuò)展功能,進(jìn)一步完善作品。附錄源程序: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è)搶答時(shí)間為20s MOV R2,*30 ;初設(shè)答題時(shí)間為30s mov 38h,*60 ;啟用錦囊時(shí)間從60s倒計(jì)時(shí) 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 ;允許二個(gè)中斷,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;一開場就運(yùn)行
24、定時(shí)器,以開場顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了;= ;=查詢程序=;= START: MOV DATA0,*0FFH ;初始化 MOV R5,*0BH MOV R4,*0BH MOV R3,*0BH ACALL DISPLAY ;未開場搶答時(shí)候顯示FFF JNB P3.3,SELSUB0 JNB P3.4,TZ3 ;倒計(jì)時(shí)調(diào)整 P3.0,NE*T ACALL DELAY P3.0,NE*T ;去抖動(dòng),如果開場鍵按下就向下執(zhí)行,否者跳到非法搶答查詢 SETB E*0 ;開放INT0 ACALL BARK ;按鍵發(fā)聲 MOV A,R1 MOV R6,A ;送R1-R6,因?yàn)镽
25、1中保存了搶答時(shí)間 SETB OK ;搶答標(biāo)志位,在使用錦囊時(shí)用作判斷是搶答倒計(jì)時(shí)還是答復(fù)倒計(jì)時(shí) MOV R3,*0AH ;搶答只顯示計(jì)時(shí),滅號(hào)數(shù) AJMP COUNT ;進(jìn)入倒計(jì)時(shí)程序,查詢有效搶答的程序在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(搶答時(shí)間R1調(diào)整程序)=;= SELSUB0: MOV A,R1
27、MOV B,*0AH DIV AB MOV R5,A MOV R4,B MOV R3,*0AH ACALL DISPLAY ;先在兩個(gè)時(shí)間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ù)時(shí)間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 ;使用錦囊時(shí)重新計(jì)時(shí) MO
30、V R6,A CLR RING ;當(dāng)?shù)褂?jì)時(shí)進(jìn)入最后5秒的時(shí)候,啟用錦囊能消除蜂鳴;= ;=倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和答復(fù)倒計(jì)時(shí)都跳到改程序)=;= COUNT: MOV R0,*00H ;重置定時(shí)器中斷次數(shù) MOV TH1,*3CH MOV TL1,*0B0H ;重置定時(shí)器RECOUNT:MOV A,R6 ;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或答復(fù)時(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
31、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的情況,響并顯示號(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,
32、*00HCHECK: JNB P3.1,QUIT;如按下停頓鍵退出 JNB OK,CHECKK ;只在答復(fù)倒計(jì)時(shí)才有效 AJMP NE*TTCHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊NE*TT: ACALL DISPLAY OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(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 ;搶答時(shí)間R2送R6 MOV R3,*01H CLR OK ;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答 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ī)號(hào)數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,*06H,FLASH ;0.3s向下運(yùn)行-滅并停響 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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招生宣講會(huì)安排
- 2025年度個(gè)人健身器材分期購買合同模板4篇
- 住宅室內(nèi)設(shè)計(jì)RESIDENTIALINTERIORDESIGN02課件講解
- 國內(nèi)外運(yùn)輸政策解讀
- 2024年09月江蘇2024年北京銀行南京分行校園招考筆試歷年參考題庫附帶答案詳解
- 2025年度離婚協(xié)議書電子化處理與隱私保護(hù)合同3篇
- 二零二五版新能源儲(chǔ)能設(shè)備融資租賃合同2篇
- 2025年度大型活動(dòng)特邀嘉賓簽約合同模板4篇
- 2025年度智能交通系統(tǒng)打磨協(xié)議合同范本4篇
- 2024年07月上海中國銀聯(lián)總公司職能類社會(huì)招考(731)筆試歷年參考題庫附帶答案詳解
- 衡水市出租車駕駛員從業(yè)資格區(qū)域科目考試題庫(全真題庫)
- 護(hù)理安全用氧培訓(xùn)課件
- 《三國演義》中人物性格探析研究性課題報(bào)告
- 注冊電氣工程師公共基礎(chǔ)高數(shù)輔導(dǎo)課件
- 土方勞務(wù)分包合同中鐵十一局
- 乳腺導(dǎo)管原位癌
- 冷庫管道應(yīng)急預(yù)案
- 司法考試必背大全(涵蓋所有法律考點(diǎn))
- 公共部分裝修工程 施工組織設(shè)計(jì)
- 《學(xué)習(xí)教育重要論述》考試復(fù)習(xí)題庫(共250余題)
- 裝飾裝修施工及擔(dān)保合同
評論
0/150
提交評論