




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、畢 業(yè) 設(shè) 計論文題目 基于 AT89C51 的八路搶答器摘 要搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展,因此設(shè)計了本搶答器。本設(shè)計是以八路搶答為基本理念。考慮到依需設(shè)定限時回答的功能,利用 AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。
2、用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可在 1-99s 設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,滿時后系統(tǒng)計時自動復(fù)位及主控強制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。關(guān)鍵詞:AT89C51 LED 數(shù)碼管 搶答器 計時目 錄1緒 論 .1課題研究的相關(guān)背景 .1選題的目的和意義 .1課題研究的內(nèi)容 .1國內(nèi)外研究現(xiàn)狀 .2搶答器目前存在的主要問題 .22搶答器的系統(tǒng)概述 .3系統(tǒng)的主要功能 .3系統(tǒng)需求分析 .5搶答器的工作流程
3、 .5搶答器的工作過程 .6器件選型方案及詳細清單 .7AT89C51 特殊功能寄存器.7AT89C51 的功能及簡介.8搶答器的優(yōu)點及組成 .10本章小結(jié) .103系統(tǒng)總體方案的設(shè)計 .11硬件電路的設(shè)計 .11總體原理圖 .12時鐘頻率電路的設(shè)計 .13復(fù)位電路的設(shè)計 .13顯示電路的設(shè)計 .14鍵盤掃描電路的設(shè)計 .16發(fā)聲電路 .19系統(tǒng)復(fù)位 .20本章小結(jié) .214軟件設(shè)計 .21主程序系統(tǒng)結(jié)構(gòu)圖 .214.2 軟件任務(wù)分析 .22程序流程圖 .23主要程序分析 .24本章小結(jié) .365PROTEUS 仿真系列組圖.36復(fù)位圖 .36設(shè)置計時時間 .37非法搶答并顯示座號 .37搶答
4、成功并顯示倒計時 .37本章小結(jié) .386總結(jié)與展望 .38總結(jié) .38展望 .39參 考 文 獻.40ABSTRACT.41致 謝.42仲愷農(nóng)業(yè)工程學院畢業(yè)論文(設(shè)計)成績評定表.431緒緒 論論1.1課題研究的相關(guān)背景課題研究的相關(guān)背景搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認出選手號碼。現(xiàn)在大多數(shù)搶答器均使用單片機(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。本課題利用AT89C51單片機及外
5、圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間和選手號碼。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。系統(tǒng)達到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可是在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法1。1.2選題的目的和意義選題的目的和意義通過這次設(shè)計,掌握 51 單片機的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶
6、答器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設(shè)計與裝配、調(diào)試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論和實踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握多功能搶答器的調(diào)整及測試方法。提高動手能力和排除故障的能力。1.3課題研究的內(nèi)容課題研究的內(nèi)容本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。主持人有開始和結(jié)束、復(fù)位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為 20s,回答問題時間為 30s。通過加鍵和減鍵修改上述時間,改完后結(jié)束
7、鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號,揚聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。通過研究并在設(shè)計驗證后發(fā)現(xiàn),采用單片機技術(shù)設(shè)計的搶答器與目前常用的搶答器相比,首先,電路連接簡單,因為大多數(shù)功能單元都通過程序設(shè)計在單片機內(nèi)部,第二,工作性能可靠,抗干擾能力優(yōu)于目前搶答器。所以本研究是一個實用的工程設(shè)計,具有創(chuàng)新性。本論文章節(jié)的結(jié)構(gòu)和內(nèi)容如下:第一章:緒論。簡要介紹了搶答器的發(fā)展現(xiàn)狀,說明了本課題研究的內(nèi)容。第二章:搶答器系統(tǒng)概述
8、。說明了搶答器的工作過程和主要功能,并定下了本課題要達到的設(shè)計目標。第三章:搶答器的硬件電路的設(shè)計。詳細描述了本課題各個組成電路單元的設(shè)計。第四章:搶答器的軟件設(shè)計,并編程序。第五章:Proteus仿真,仿真出結(jié)果。第六章:總結(jié)??偨Y(jié)課題設(shè)計,指出設(shè)計中的一些問題,提出改善的意見,并展望搶答器的未來設(shè)計。1.4國內(nèi)外研究現(xiàn)狀國內(nèi)外研究現(xiàn)狀搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復(fù)雜不便于制作,可靠性低,實現(xiàn)起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應(yīng)高校等多代表隊單位活動的需要而設(shè)計一個多功能搶答器,這種搶答器具有
9、電路簡單,元件普通,易于購買等優(yōu)點,很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應(yīng)用2。1.5搶答器目前存在的主要問題搶答器目前存在的主要問題隨著改革開放事業(yè)的不斷深入,促使人們學科學、學技術(shù)、學知識的手段多種多樣,搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率校低,且有的要么制作復(fù)雜,要么可靠性低,減少興致。作為一個單位若專購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展。而且目前多數(shù)搶答器存在 3 個不足之處3:第一,現(xiàn)場線路連接復(fù)雜。因為每個選手位于
10、搶答現(xiàn)場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現(xiàn)場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現(xiàn)場人員的走動。第二,電路復(fù)雜。因為單片機只完成號碼處理、計時、數(shù)據(jù)運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍只能通過數(shù)字集成電路完成。采用單片機掃描技術(shù)識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按成功,但出現(xiàn)沒有搶答被記錄的問題。2搶答器的系統(tǒng)概述搶答器的系統(tǒng)概述2.1系統(tǒng)的主要功能系統(tǒng)的主要功能本系統(tǒng)是借用單片機采用模塊化設(shè)計的八路搶答器,包括 8 路搶答按紐、計時顯示、提示功能等(根據(jù)需要可另
11、設(shè)或多設(shè)相關(guān)功能) 、開始與結(jié)束控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能) 。參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外,還有人性化的提示功能和時間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開始與結(jié)束控制,根據(jù)活動參賽者的層次,對提前掄答者的行為設(shè)定為非法或阻隔,若設(shè)有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的臺位號,對搶答限時及回答問題限時設(shè)為倒計時,并有顯示提示。系統(tǒng)的主要功能模塊方框圖如圖 1 所示。 AT89C51 單片機4 位七段數(shù)碼管顯示聲音電路=8 路搶答按鍵輸入復(fù)位電路開始、結(jié)束按鍵輸入加一、減一
12、按鍵輸入時鐘圖 1 系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計的八路搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。一共有 8 個按鍵輸入,分別對應(yīng) 8 路選手的搶答按鍵。主持人有開始和結(jié)束鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為 20s,回答問題時間為 30s。通過加鍵和減鍵修改上述時間,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號,揚聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。單片機是
13、整個搶答器的核心,內(nèi)部電路設(shè)計用匯編語言編寫。它完成了時間參數(shù)的設(shè)定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。本設(shè)計中,有一個共陰的數(shù)碼管組,四個數(shù)碼管。其中兩個顯示時間,一個空位,一個顯示搶答號碼。主持人依次按下復(fù)位鍵(RESET) ,開始鍵后開始搶答??梢該尠矗撼瑫r數(shù)碼管顯示“FFF” ,當搶按超過規(guī)定時間或答題超過規(guī)定時間后數(shù)碼管顯示“FFF” 。若有選手在規(guī)定時間內(nèi)搶按成功,則可以答題,數(shù)碼管顯示搶答時間的同時也顯示選手號碼。若在按開始鍵前搶答表示違規(guī),數(shù)碼管顯示“FF”并顯示選手號碼。2.2系統(tǒng)需求分析系統(tǒng)需求分析1、在搶答中,只有開始后搶答才有效,如果在開始搶答前
14、搶答為無效。2、搶答限定時間和回答問題的時間可以在 199s 設(shè)定。3、可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示。4、搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復(fù)位。5、搶答限定時間內(nèi)使用錦囊回答時間將加到 60s。6、按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。2.3搶答器的工作流程搶答器的工作流程搶答器的基本工作原理4:在搶答競賽或呼叫時,有多個信號同時或不同時送入主電路中,搶答器內(nèi)部的寄存器工作,并識別、記錄第一個號碼,同時內(nèi)部的定時器開始工作,記錄有關(guān)時間并產(chǎn)生超時信號。在整個搶答器工作過程中,顯示電路、聲音電路等還要根據(jù)現(xiàn)場的實際情況向外電路輸出相應(yīng)信號。搶答器的
15、工作流程分為:系統(tǒng)復(fù)位、正常流程、違例流程等幾部分,如圖2所示,下面分別予以介紹。加載程序運 行行開始開始數(shù)碼管顯示 FFF 開始搶按時間倒計時開始前有選手搶按顯示違例選手號碼并伴有語音報警倒計時結(jié)束,超時有選手搶按顯示 FFF顯示選手號碼,倒計時時間,語音報警,答題,答題時間倒計時正常流程違規(guī)流程若超過答題時間,則數(shù)碼管顯示 FFF答題完畢根據(jù)選手表現(xiàn),規(guī)則由主持人減分圖2 搶答器工作流程2.4搶答器的工作過程搶答器的工作過程1、如果想調(diào)節(jié)搶答時間或答題時間,按“加一”鍵或“減一”鍵進入調(diào)節(jié)狀態(tài),此時會顯示現(xiàn)在設(shè)定的搶答時間或回答時間值,如想加一秒按一下加 1s鍵,如果想減一秒按一下“減 1
16、s”鍵,時間 LED 上會顯示改變后的時間,調(diào)整范圍為 099s, 0s 時再減 1s 會跳到 99,99s 時再加 1s 會變到 0s。2、主持人按搶答開始鍵,會有提示音,并立刻進入搶答倒計時(預(yù)設(shè) 20s 搶答時間) ,如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進入回答倒計時(預(yù)設(shè) 30s搶答時間) ,不進行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到小于 5s會每秒響一下提示音。3、如倒計時期間,主持人想停止倒計時可以隨時按“停止”按鍵,系統(tǒng)會自動進入準備狀態(tài),等待主持人按“搶答開始”進入下次搶答計時。4、如果主持人未按“搶答開始”鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED 上
17、不斷閃爍 FF 和犯規(guī)號數(shù)并響個不停,直到按下“停止” 鍵為止??偠灾?,本課題利用AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng)設(shè)計了搶答器,該搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結(jié)構(gòu)、節(jié)約了成本,是一個實用的工程設(shè)計。2.5器件選型方案及詳細清單器件選型方案及詳細清單微控制器選用 ATMAL 公司生產(chǎn)的 AT89C51,該芯片貨源充足,并且價格也比較便宜。如表 1 所示。表 1 器件選型方案的詳細清單器件名稱規(guī)格型號數(shù)量微處理器AT86C51174LS041芯片74HC301電阻3WTT10K8電容20PF3晶振12MHZ1按鈕117 段數(shù)碼管7SEG-MPX4-CA4揚聲器1
18、2.6AT89C51 特殊功能寄存器特殊功能寄存器特殊功能寄存器也稱專用寄存器5,是具有特殊功能的所有寄存器的集合,簡稱SFR(Special Function Register) 。特殊功能寄存器共含有 22 個不同寄存器。它們的地址分配在 80HFFH 中,即在 RAM 地址中。這些寄存器的名稱和地址見表 2。表 2 AT89C51 特殊功能寄存器列表符號地址注釋*ACCE0H累加器*BF0H乘法寄存器*PSWD0H程序狀態(tài)字SP81H堆棧指針DPL82H數(shù)據(jù)存儲器指針低 8 位DPH83H數(shù)據(jù)存儲器指針高 8 位*IEA8H中斷允許控制器*IPD8H中斷優(yōu)先控制器*P080H端口 0*P
19、190H端口 1*P2A0H端口 2*P3B0H端口 3PCON87H電源控制及波特率選擇*SCON98H串行口控制器SBUF99H串行數(shù)據(jù)緩沖器*TCON88H定時器控制TMOD89H定時器方式選擇TL08AH定時器 0 低 8 位TL18BH定時器 1 低 8 位TH08CH定時器 0 低 8 位TH18DH定時器 1 高 8 位注:帶*號的特殊功能寄存器都是可以位尋址的寄存器雖然特殊功能寄存器地址在 80HFFH 之中,但在 80HFFH 的地址單元中,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內(nèi)容是不確定的,如果對這些單元進行操作,得到的是一些隨機數(shù),而寫入則無效。所以,
20、用戶編程時不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元,它們是公司留待將來開發(fā)新產(chǎn)品時使用的。2.7AT89C51 的功能及簡介的功能及簡介AT89C51 單片機是 ATMAL 公司 89 系列單片機的一種 8 位 Flash 單片機。它最大特點是片內(nèi)含有 Flash 存儲器,用途十分廣泛,特別是在生產(chǎn)便攜式商品,手提式儀器等方面,有著十分廣泛的應(yīng)用6。AT89C51 單片機內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi) Flash 存儲器、片內(nèi) RAM、并行 I/O 接口、定時器和串行 I/O 接口AT89C51 是 89 系列單片機的標準型,它是與 MSC-51 系
21、列單片機兼容的。在內(nèi)部含有 4KB 或 8KB 可重復(fù)編程的 Flash 存儲器,可進行 1000 次擦寫操作。全靜態(tài)工作為0-24MHZ,有 3 級程序鎖存器,內(nèi)部含有 128-256 字節(jié)的 RAM,有 32 條可編程 I/O 口線,2-3 個 16 位定時/計數(shù)器,6-8 個中斷源,通用的串行接口,低電壓空閑及電源下降方式。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)生各種控制信號,
22、控制存儲器、輸入/輸出端口的數(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)整電路等組成。外部定時元件復(fù)位中斷電源系統(tǒng)時鐘ROMCPU定時/計數(shù)器串行 I/O 口并行 I/O 口RAM圖 3 AT89C51 單片機的內(nèi)部
23、結(jié)構(gòu)圖為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個通用寄存器 B 和一些專用寄存器,還增加了位處理邏輯電路的功能。其內(nèi)部結(jié)構(gòu)如圖 3 所示。AT89C51 的主要性能包括:AT89C51 與 MCS51 控制器系列產(chǎn)品兼容,片內(nèi)有 4K可在線重復(fù)編程閃速電擦除存儲器(Flash Memory) ,存儲器可循環(huán)寫入/擦除 1000 次;存儲器數(shù)據(jù)保存時間可達 10 年;工作電壓范圍寬:Vcc 可由到 6V;全靜態(tài)工作可由0Hz 到 16MHz;程序存儲器具有 3 級鎖存保護;128*8 位內(nèi)部 RAM;32 條可編程 I/O線;兩個 16 位定時器/計數(shù)器;中斷結(jié)構(gòu)具有 5 個中斷源和 2 個中
24、斷優(yōu)先級;可編程全雙工串行通信;空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。2.8搶答器的優(yōu)點及組成搶答器的優(yōu)點及組成在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設(shè)計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用 AT89C51 單片機作為核心。控制系統(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、聲音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過八個個按鍵輸入搶
25、答信號;利用存儲程序來完成軟件的設(shè)計;利用一個 4 位七段共陰數(shù)碼管來完成顯示功能。工作時,用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機的處理,輸出控制信號,控制 4 位七段共陰數(shù)碼管和喇叭工作。在數(shù)碼管上顯示哪一組先答題,從而實現(xiàn)整個搶答過程。2.9本章小結(jié)本章小結(jié)本章主要講述了搶答器的工作原理和本設(shè)計系統(tǒng)的工作流程。在說明工作原理的過程中,突出了電路的組成單元以及這些單元如何實現(xiàn)搶答功能;在說明系統(tǒng)的流程時,結(jié)合本設(shè)計的內(nèi)容,指出了參數(shù)設(shè)置的方法和意義。搶答正常流程與違例流程的實現(xiàn),以及如何進行搶答控制。同時也說明了搶答器的優(yōu)點和 AT89C51 的功能及簡介。3系統(tǒng)總體方案的設(shè)計系統(tǒng)總
26、體方案的設(shè)計3.1硬件電路的設(shè)計硬件電路的設(shè)計本設(shè)計分為硬件設(shè)計和軟件設(shè)計,這兩者相互結(jié)合,不可分離;從時間上看,硬件設(shè)計的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準備充分,硬件設(shè)計的大返工是比較少的,軟件設(shè)計的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計的工作量在整個項目中的所占的比重逐漸下降。為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面7:(1) 盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比若干
27、普通芯片價格的總和高。(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è)計水平的提高,往往只
28、要改變或增加軟件中的數(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總體原理圖總體原理圖圖 4 系統(tǒng)原理圖圖中 U1 為單片機 AT8
29、9C51,U2 為芯片 74HC30,U3 為芯片 74LS04。K1K8 分別為 8 路搶答按鍵,分別接到單片機的 P1.0P1.7 中。開始按鍵與結(jié)束按鍵分別接到單片機的 10、11 腳,由于單片機的 10、11 腳既有串行接口 RXD、TXD 功能,又有P3.0、P3.1 的 IO 端口功能,此處按鍵用到單片機 10、11 腳的 IO 端口功能。搶答時間調(diào)整按鍵和回答時間調(diào)整按鍵分別接到單片機的 13、14 管腳,加一按鍵和減一按鍵分別接到單片機的 15、16 管腳。4 位七段數(shù)碼管段選 P0 口。4 位七段數(shù)碼管的位選接 P2口低 3 位,蜂鳴器輸出為 P3.7 口8。3.3時鐘頻率電
30、路的設(shè)計時鐘頻率電路的設(shè)計單片機必須在時鐘的驅(qū)動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。時鐘電路如圖 5 所示。圖 5 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲 10ms 后振蕩器起振,在 XTAL2引腳產(chǎn)生幅度為 3V 左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2 的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C1,C2 的典型值為 20PF。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期
31、稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用 fosc表示。圖中時鐘頻率為 12MHz,即 fosc=12MHz,則時鐘周期為 1/12s。3.4復(fù)位電路的設(shè)計復(fù)位電路的設(shè)計單片機的第 9 腳 RST 為硬件復(fù)位端,只要將該端持續(xù) 4 個機器周期的高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖 6 所示:圖 6 復(fù)位電路圖 6 中由按鍵 RESET1 以及電解電容 C3、電阻 R2 構(gòu)成按鍵及上電復(fù)位電路。由于單片機是高電平復(fù)位,所以當按鍵 RESET1 按下時候,單片機的 9 腳 RESET 管腳處于高電平,此時單片機處于復(fù)位狀態(tài)。當上電后,由于電容的緩慢充電,單
32、片機的 9 腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時間后,單片機的 9 腳處于穩(wěn)定的低電平狀態(tài),此時單片機上電復(fù)位完畢,系統(tǒng)程序從 0000H 開始執(zhí)行。值得注意的是,在設(shè)計當中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機進行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。3.5顯示電路的設(shè)計顯示電路的設(shè)計顯示功能與硬件關(guān)系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐
33、富的信息,全靠軟件來解決。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(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ù)字,數(shù)碼管顯示原理如下: MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A A
34、CALL DELAY MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY RET4 位七段數(shù)碼管顯示電路如圖 7 所示。圖 7 共陰極數(shù)碼管圖 7 中數(shù)碼管采用的是 4 位七段共陰數(shù)碼管,其中 AH 段分別接到單片機的 P0 口,由單片機輸出的 P0 口數(shù)據(jù)來決定段碼值,位選碼 COM1、COM3、 、P2.1、P2.2,由單片機來決定當前該顯示的是哪一位。在圖中還有八個 1K 的電阻,連接
35、在 P0 口上,用作 P0 口的上拉電阻,保證 P0 口沒有數(shù)據(jù)輸出時候處于高電平狀態(tài)。3.6鍵盤掃描電路的設(shè)計鍵盤掃描電路的設(shè)計鍵盤是人與單片機打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡
36、單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為 “毛刺”脈沖一般持續(xù)時間短,約為幾 ms,而我們按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?10ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。在本文設(shè)計中采用了獨立鍵盤的方式,本設(shè)計中有 8 個搶答按鍵輸入,一個開始按鍵、一個結(jié)束按鍵,此外還有搶答時間調(diào)整鍵、回
37、答時間調(diào)整鍵,加一按鍵、減一按鍵各一個。如圖 8 所示。圖 8 搶答按鍵及調(diào)整按鍵在圖 8 中 8 個搶答按鍵分別接入單片機的 P1.0P1.7 端口,單片機通過讀取 P1.0P1.7的值來判斷當前輸入的是 8 個搶答按鍵中的哪一個。搶答時間調(diào)整和回答時間調(diào)整接到單片機的 P3.3 和 P3.4 接口,加一及減一按鍵接到單片機的。圖 9 開始、結(jié)束按鍵在圖 9 中,開始及結(jié)束按鍵接到單片機的 10、11 腳,這里用到了單片機 10、11 腳復(fù)合功能中的 IO 端口功能,單片機通過讀取 10、11 腳的 P3.0、P3.1 的 IO 端口值來判斷當前是否處于搶答開始狀態(tài)或搶答結(jié)束狀態(tài)。按鍵的觸點
38、在閉合和斷開時均會產(chǎn)生抖動,這時觸點的邏輯電平是不穩(wěn)定的,如不妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時的方法來避開抖動階段,這一延時過程一般大于 5ms,例如取 10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺程序)或鍵盤中斷(外部中斷)子程序中,則該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。K1K8 八個按鍵的輸入電平靠 74HC30 輸入與非門和 74LS04 反向器組成的電路改變輸入電平。圖 10 中電路就是由一個 74HC30 輸入與非門和 74LS04
39、 反向器組成的去抖電路。圖 10 去抖電路3.7發(fā)聲發(fā)聲電路電路我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高” “低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。本文設(shè)計如圖 11 所示。圖中單片機的 14 腳輸出具有復(fù)合功能,此處用到了單片機17 腳的 IO 端口功能,單片機通過內(nèi)部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動揚聲器發(fā)聲。圖 11 發(fā)聲電路3.8系統(tǒng)復(fù)位系統(tǒng)復(fù)位使 CPU 進入初始狀態(tài),從 0000H 地址開始
40、執(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ù)實際需要去主程序初始化過程
41、中完成。而對中斷激活標志的清除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用 020000(LJMP 0000H)作為軟件陷阱,認為直接轉(zhuǎn)向 0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清除中斷激活標志的重要性。在所有的指令中,只有 RETI 指令能夠清除中斷激活標志。出錯處理程序 ERR 主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。程序一般先關(guān)中斷,以便后續(xù)處理能順利
42、進行,然后用兩個 RETI 指令代替兩個LJMP 指令,從而清除了兩級中斷激活標志。有相應(yīng)軟件陷阱捕捉來的程序可能沒有全部激活兩個標志,這也無妨。有復(fù)位時系統(tǒng)的歷史狀況,可將復(fù)位分為“冷啟動”和“熱啟動” 。 “冷啟動”時,系統(tǒng)的狀態(tài)全部無效,進行徹底的初始化操作;而“熱啟動”時,對系統(tǒng)的當前狀態(tài)進行修復(fù)和有選擇的初始化。系統(tǒng)初次上電投入運行時,必須是“冷啟動” ,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動”初次上電投入運行時,必須是“冷啟動” ,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動” 。為了使系統(tǒng)能正確決定采用何種啟動方式,常用上電標志來區(qū)分,如圖 12 所示。復(fù)位關(guān)中斷,設(shè)定
43、堆棧上電標志冷啟自檢全面初始化熱啟動恢復(fù)被破壞的信息部分初始化建立上電標志開始運轉(zhuǎn)圖 12 系統(tǒng)復(fù)位策略圖3.9本章小結(jié)本章小結(jié)本章詳細講述了以 AT89C51 為核心元件的搶答器的硬件電路具體設(shè)計過程,分析了具體電路。在設(shè)計過程中,實現(xiàn)搶答功能的是通過編寫程序的方法集成在 AT89C51內(nèi)部。接著將程序下載到硬件電路中,配合周邊的時鐘電路,復(fù)位電路等,制作出符合設(shè)計要求的搶答器。4軟件設(shè)計軟件設(shè)計4.1主程序系統(tǒng)結(jié)構(gòu)圖主程序系統(tǒng)結(jié)構(gòu)圖系統(tǒng)初始化模塊按鍵模塊非法搶答模塊正確搶答模塊調(diào)整搶答時間調(diào)整回答時間模塊數(shù)碼顯示模塊圖 13 軟件系統(tǒng)結(jié)構(gòu)圖4.2軟件任務(wù)分析軟件任務(wù)分析軟件任務(wù)分析和硬件電
44、路設(shè)計結(jié)合進行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計基本定型后,也就基本上決定下來了9。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量,計算,顯示,打印,輸出控制和通信等,另一類是監(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ù)類型
45、問題也一并規(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)和外部中
46、斷(如掉電中斷) 。也可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進入睡眠狀態(tài)” ,以利于系統(tǒng)節(jié)電和抗干擾。4.3程序流程圖程序流程圖在本設(shè)計中包括了以下主要的程序:主程序,查詢程序,非法搶答程序,搶答時間調(diào)整程序,回答時間調(diào)整程序,倒計時程序,正常搶答處理程序,犯規(guī)處理程序,顯示及發(fā)聲程序。主流程圖如 14 所示:顯示 FFF開始鍵加一鍵減一鍵回答時間 調(diào)整搶答時間去抖動非法搶答處理顯示犯規(guī)正常搶答 顯示搶答號并倒計時Y YY 初始化圖 14 程序設(shè)計流程圖4.4主要程序分析主要程序分析主程序: OK EQU 20H ;搶答開始標志位 RING EQU 22H ;響鈴標志位 DATA0 E
47、QU 36H ;搶答按鍵口數(shù)據(jù)存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 000BH AJMP T0INT 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 為一次溢
48、出中斷 SETB EA SETB ET0 SETB ET1 ;允許二個中斷,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;一開始就運行定時器,以開始顯示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)整 JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ;去抖動,
49、如果“開始鍵”按下就向下執(zhí)行,否者跳到非法搶答查詢 SETB EX0 ;開放 INT0 ACALL BARK ;按鍵發(fā)聲 MOV A,R1 MOV R6,A ;送 R1-R6,因為 R1 中保存了搶答時間 SETB OK ;搶答標志位,在使用錦囊時用作判斷是搶答倒計時還是回答倒計時 MOV R3,#0AH ;搶答只顯示計時,滅號數(shù) AJMP COUNT ;進入倒計時程序,“查詢有效搶答的程序”在 COUNT 里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1
50、.5,FALSE6 JNB P1.6,TZ1 JNB P1.7,TZ2 AJMP START TZ1: AJMP FALSE7TZ2: AJMP FALSE8TZ3: AJMP SELSUB1非法搶答處理程序: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,
51、#07H AJMP ERRORFALSE8: MOV R3,#08H AJMP ERRORSELSUB0(搶答時間 R1 調(diào)整程序):SELSUB0: MOV A,R1 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: MO
52、V A,R1 CJNE A,#63H,ADD0 ;如果不是 99,R2 加 1,如果加到99,R1 就置 0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP SELSUB0ADD0: 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 STARTSELSUB1(回答時間 R2 調(diào)整程序):SEL
53、SUB1: 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,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:
54、 MOV R2,#63H ACALL DELAY1 AJMP SELSUB1BACK1: AJMP START啟用錦囊程序:REPEAT:MOV A,38h ;使用錦囊時重新計時 MOV R6,A CLR RING ;當?shù)褂嫊r進入最后 5 秒的時候,啟用錦囊能消除蜂鳴倒計時程序(搶答倒計時和回答倒計時都跳到改程序):COUNT: MOV R0,#00H ;重置定時器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H ;重置定時器RECOUNT:MOV A,R6 ;R6 保存了倒計時的時間,之前先將搶答時間或回答時間給 R6 MOV B,#0AH DIV AB ;除十分出個位/十位
55、MOV 30H,A ;十位存于(30H) MOV 31H,B ;個位存于(31H) MOV R5,30H ;取十位 MOV R4,31H ;取個位 MOV A,R6 SUBB A,#07H JNC LARGER ;大于 5s 跳到 LARGER,小于等于 5s 會提醒 MOV A,R0 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK ;下面是 1s 的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV A,R6 JZ QUIT ;計時完畢 MOV R0,#00H DEC R6 ;一秒標志減 1 AJMP CHECKLARGER: MOV A,R
56、0 CJNE A,#14H,CHECK ;如果 1s 向下運行,否者跳到“停/顯示” DEC R6 ;計時一秒 R6 自動減 1 MOV R0,#00HCHECK: JNB P3.1,QUIT ;如按下停止鍵退出 JNB OK,CHECKK ;只在回答倒計時才有效 AJMP NEXTTCHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊NEXTT: ACALL DISPLAY JB OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT:MOV A,DATA0 JNB ACC.0,TRUE1 JNB A
57、CC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB 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 ;因為答題的計時不再查詢搶答,所以就鎖了搶答 A
58、JMP COUNTTRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3: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,
59、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
60、R3,#0AH MOV R4,#0AH MOV R5,#0AH ;三燈全滅 AJMP CHECK1 ,響并顯示號數(shù)并清 R0,重新計 SETB RING MOV R0,#00H MOV R3,34H ;取回號數(shù) MOV R5,#0BH MOV R4,#0BH ;顯示 FF 和號數(shù) AJMP CHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START顯示程序:DISPLAY:MOV DPTR,#DAT1 ;查表顯示程序,利用 P0 口做段選碼口輸出/P2 低三位做位選碼輸出 MOV A
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供電外包勞務(wù)合同樣本
- 青島版小學二年級上冊數(shù)學教學計劃
- 平面的投影-教案
- 企業(yè)門頭制作合同樣本
- 中圖版地理必修二第二章學教案
- 淘寶客服聘用合同
- 人教版小學三年級科學上冊教案
- 代理建賬合同樣本
- 2025如何簽訂租賃合同范本
- 主播線下合同樣本
- 生產(chǎn)設(shè)備定期保養(yǎng)記錄
- 《數(shù)據(jù)排序-冒泡排序法》
- 《旅館建筑設(shè)計規(guī)范 JGJ62-2014》正式版
- 2022-2023學年江蘇省南京市高二下學期期中聯(lián)考數(shù)學試題【含答案】
- 中醫(yī)診斷學教材
- 穩(wěn)固結(jié)構(gòu)的探析-說課課件
- 加油站安全生產(chǎn)風險點告知卡
- GB/T 31117-2014船用輔鍋爐安全技術(shù)要求
- 2022年4月自考金融法試題及答案含評分標準
- 學校膳食管理委員會組織及工作職責
- 小麥雜交育種課件
評論
0/150
提交評論