版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 隨著科學(xué)技術(shù)的不斷發(fā)展,促使人們學(xué)科學(xué)、學(xué)技術(shù)、學(xué)知識的手段多種多樣。搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低,減少興致。做為一個單位若專購一臺搶答器雖然在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時
2、性就會影響活動的開展,因此設(shè)計了本搶答器。</p><p> 本設(shè)計是以六路搶答為基本理念??紤]到依需設(shè)定限時回答的功能,利用AT89C51單片機(jī)及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;
3、搶答限定時間和回答問題的時間可在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,滿時后系統(tǒng)計時自動復(fù)位及主控強(qiáng)制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。</p><p> 關(guān)鍵詞: AT89C51; LED數(shù)碼管; 搶答器; 計時; 報警 </p><p><b> ABSTRACT</b><
4、/p><p> With the continuous development of science and technology, promote learning science, science and technology, knowledge of the variety of means. With a tool for Qiangda, which has been widely used in al
5、l kinds of intelligence and knowledge contests occasions. But Qiangda is used for lower frequency, and some production complex or low reliability, and reduced interest. As a unit, if the purchase is a Qiangda .Although t
6、he economy can bear, each year the number is extremely small, because of the lo</p><p> This design is six road Qiangda as the basic concept.By taking into account the need for seting time and limiting to a
7、nswer the function, which uses AT89C51 microcontroller and external interface of Qiangda system, and uses SCM timer / counter timing and the number of mind Principle, the software and hardware organically combined, which
8、 could allow the right to conduct time, while the digital display to the correct time. Switching with the keyboard output, speakers in tips. At the same time, sys</p><p> Key words: AT89C51; alphanumeric di
9、splay; Qiangda; time; alarm</p><p><b> 目 錄</b></p><p><b> 摘 要Ⅰ</b></p><p> AbstractⅡ</p><p><b> 1 緒 論1</b></p><
10、p> 1.1 課題研究的相關(guān)背景1</p><p> 1.2 選題的目的和意義1</p><p> 1.3 課題研究的內(nèi)容2</p><p> 1.4 國內(nèi)外研究現(xiàn)狀3</p><p> 1.5 搶答器目前存在的主要問題3</p><p> 2 搶答器的系統(tǒng)概述4</p>&
11、lt;p> 2.1 系統(tǒng)的主要功能4</p><p> 2.2 系統(tǒng)需求分析5</p><p> 2.3 搶答器的工作流程5</p><p> 2.4 搶答器的工作過程7</p><p> 2.5 器件選型方案及詳細(xì)清單7</p><p> 2.6 AT89C51特殊功能寄存器7</
12、p><p> 2.7 AT89C51的功能及簡介8</p><p> 2.7.1 89系列單片機(jī)的概況8</p><p> 2.7.2 AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)圖10</p><p> 2.7.3 各類型單片機(jī)的比較分析11</p><p> 2.7.4 AT89C51單片機(jī)12</p>
13、;<p> 2.8 搶答器的優(yōu)點及組成13</p><p> 2.9 本章小結(jié)13</p><p> 3 系統(tǒng)總體方案的設(shè)計15</p><p> 3.1 硬件電路的設(shè)計15</p><p> 3.2 總體原理圖16</p><p> 3.3 時鐘頻率電路的設(shè)計17</p&g
14、t;<p> 3.4 復(fù)位電路的設(shè)計17</p><p> 3.5 顯示電路的設(shè)計18</p><p> 3.5.1 顯示模塊在系統(tǒng)軟件中的安排18</p><p> 3.6 鍵盤掃描電路的設(shè)計21</p><p> 3.6.1 鍵盤抖動的軟件處理22</p><p><b>
15、; 3.7 發(fā)聲22</b></p><p> 3.8 系統(tǒng)復(fù)位22</p><p> 3.9 本章小結(jié)25</p><p><b> 4 軟件設(shè)計26</b></p><p> 4.1 主程序系統(tǒng)結(jié)構(gòu)圖26</p><p> 4.2 軟件任務(wù)分析26</
16、p><p> 4.3 程序流程圖27</p><p> 4.4 主要程序分析27</p><p> 4.5 本章小結(jié)37</p><p> 5 Proteus仿真38</p><p> 5.1系統(tǒng)仿真圖38</p><p> 5.2本章小結(jié)40</p><
17、p> 6 總結(jié)與展望41</p><p><b> 6.1 總結(jié)41</b></p><p><b> 6.2 展望41</b></p><p><b> 致謝43</b></p><p><b> 參考文獻(xiàn)44</b></
18、p><p><b> 附錄一45</b></p><p><b> 附錄二54</b></p><p><b> 1 緒 論</b></p><p> 1.1 課題研究的相關(guān)背景</p><p> 搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競賽、搶
19、答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認(rèn)出選手號碼?,F(xiàn)在大多數(shù)搶答器均使用單片機(jī)(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。</p><p> 本課題利用AT89C51單片機(jī)及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機(jī)
20、地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計時,同時使數(shù)碼管能夠正確地顯示時間和選手號碼。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)生提示。系統(tǒng)達(dá)到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可是在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。</p><p>
21、1.2 選題的目的和意義</p><p> 通過這次課程設(shè)計,掌握51單片機(jī)的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶答器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設(shè)計與裝配、調(diào)試,提高自己的動手能力,鞏固已學(xué)的理論知識,建立單片機(jī)理論和實踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握多功能搶答器的調(diào)整及測試方法。提
22、高動手能力和排除故障的能力。</p><p> 1.3 課題研究的內(nèi)容</p><p> 本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。主持人有開始和結(jié)束、復(fù)位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為15s,回答問題時間為10s。通過加鍵和減鍵修改上述時間,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始后,選手開
23、始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚(yáng)聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號,揚(yáng)聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。</p><p> 通過研究并在設(shè)計驗證后發(fā)現(xiàn),采用單片機(jī)技術(shù)設(shè)計的搶答器與目前常用的搶答器相比,首先,電路連接簡單,因為大多數(shù)功能單元都通過程序設(shè)計在單片機(jī)內(nèi)部,第二,工作性能可靠,抗千擾能力優(yōu)于目前搶答器。所
24、以本研究是一個實用的工程設(shè)計,具有創(chuàng)新性。</p><p> 本論文章節(jié)的結(jié)構(gòu)和內(nèi)容如下:</p><p> 第一章:緒論。簡要介紹了搶答器的發(fā)展現(xiàn)狀;說明了本課題研究的內(nèi)容.</p><p> 第二章:搶答器系統(tǒng)概述。說明了搶答器的工作過程和主要功能,并定下了本課題要達(dá)到的設(shè)計目標(biāo)。</p><p> 第三章:搶答器的硬件電路的設(shè)計
25、。詳細(xì)描述了本課題各個組成電路單元的設(shè)計。</p><p> 第四章:搶答器的軟件設(shè)計,并編程序。</p><p> 第五章:Proteus仿真,仿真出結(jié)果。</p><p> 結(jié)論:總結(jié)課題設(shè)計,指出設(shè)計中的一些問題,提出改善的意見,并展望搶答器的未來設(shè)計。</p><p> 后其號碼只有數(shù)碼或指示燈顯示,沒有語音提示。本課題就是為
26、了解決以上3個問題,設(shè)計了六路搶答器。</p><p> 1.4 國內(nèi)外研究現(xiàn)狀</p><p> 搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復(fù)雜不便于制作,可靠性低,實現(xiàn)起來很困難;有的則用一些專用的集成塊 ,而專用集成塊的購買又很困難。為適應(yīng)高校等多代表隊單位活動的需要而設(shè)計一個多功能搶答器,這種搶答器具有電路簡單,元件普通 ,易于
27、購買等優(yōu)點,很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應(yīng)用。</p><p> 1.5 搶答器目前存在的主要問題</p><p> 隨著改革開放事業(yè)的不斷深入,促使人們學(xué)科學(xué)、學(xué)技術(shù)、學(xué)知識的手段多種多樣,搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率校低,且有的要么制作復(fù)雜,要么可靠性低,減少興致。作為一個單位若專購一臺搶答器雖然
28、在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展。</p><p> 但目前多數(shù)搶答器存在3個不足之處:第一,現(xiàn)場線路連接復(fù)雜。因為每個選手位于搶答現(xiàn)場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現(xiàn)場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現(xiàn)場人員的走動。第二,電
29、路復(fù)雜。因為單片機(jī)只完成號碼處理、計時、數(shù)據(jù)運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍只能通過數(shù)字集成電路完成。采用單片機(jī)掃描技術(shù)識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按成功。</p><p> 2 搶答器的系統(tǒng)概述</p><p> 2.1 系統(tǒng)的主要功能</p><p> 本系統(tǒng)是借用單片機(jī)采用模塊化設(shè)計的智能搶答器,主控與參賽
30、者設(shè)為終端分系統(tǒng)。參賽者分系統(tǒng)設(shè)有:搶答按紐、計時顯示、提示功能等(根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能);主控分系統(tǒng)有:開始與結(jié)束控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能)。</p><p> 參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外[1],還有人性化的提示功能和時間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開始與結(jié)束控制,根據(jù)活動參賽者的層次,對
31、提前掄答者的行為設(shè)定為非法或阻隔,若設(shè)有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的臺位號,對搶答限時及回答問題限時設(shè)為倒計時式,并有公示性顯示。</p><p> 圖2-1 系統(tǒng)主要功能模塊</p><p> 本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。主持人有開始和結(jié)束復(fù)位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始
32、狀態(tài)下?lián)尨饡r間為15s,回答問題時間為10s。通過加鍵和減鍵修改上述時間,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚(yáng)聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號,揚(yáng)聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。系統(tǒng)的主要功能模塊方框圖如2-1所示。</p><p> 搶答主板:搶答主板是整
33、個搶答器的核心,其關(guān)鍵是單片機(jī)AT89C51。內(nèi)部電路設(shè)計用匯編語言編寫。它完成了時間參數(shù)的設(shè)定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。</p><p> 顯示及指示:本設(shè)計中,有一個共陰的數(shù)碼管組,四個數(shù)碼管。其中兩個顯示時間,一個空位,一個顯示搶答號碼。主持人依次按下復(fù)位鍵(RESET),開始鍵后開始搶答??梢該尠矗撼瑫r數(shù)碼管顯示“FFF”,當(dāng)搶按超過規(guī)定時間或答題超過規(guī)定時間后數(shù)碼管顯
34、“FFF”。若有選手在規(guī)定時間內(nèi)搶按成功,則可以答題,數(shù)碼管顯示搶答時間的同時也顯示選手號碼。若在按開始鍵前搶答表示違規(guī),數(shù)碼管顯示“FF”并顯示選手號碼。</p><p> 2.2 系統(tǒng)需求分析</p><p> 1、在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。</p><p> 2、搶答限定時間和回答問題的時間可是在1~99s設(shè)定。<
35、/p><p> 3、可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示。</p><p> 4、搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復(fù)位。</p><p> 5、按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。</p><p> 2.3 搶答器的工作流程</p><p> 搶答器的基本工作原理:在搶答
36、競賽或呼叫時[2],有多個信號同時或不同時送入主電路中,搶答器內(nèi)部的寄存器工作,并識別、記錄第一個號碼,同時內(nèi)部的定時器開始工作,記錄有關(guān)時間并產(chǎn)生超時信號。在整個搶答器工作過程中,顯示電路、語音電路等還要根據(jù)現(xiàn)場的實際情況向外電路輸出相應(yīng)信號。搶答器的工作流程分為、系統(tǒng)復(fù)位、正常流程、違例流程等幾部分,如圖2-2所示,下面分別予以介紹。</p><p> 圖2-2 搶答器工作流程</p><
37、;p> 2.4 搶答器的工作過程</p><p> 1、如果想調(diào)節(jié)搶答時間或答題時間,按"加一"鍵或"減一"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時會顯示現(xiàn)在設(shè)定的搶答時間或回答時間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"減1s"鍵,時間LED上會顯示改變后的時間,調(diào)整范圍為0~99s, 0s時再減1s會跳到99,99s時再加1s
38、會變到0s。</p><p> 2、主持人按"搶答開始"鍵,會有提示音,并立刻進(jìn)入搶答倒計時(預(yù)設(shè)15s搶答時間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入回答倒計時(預(yù)設(shè)10s搶答時間),不進(jìn)行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到小于5s會每秒響一下提示音。</p><p> 3、如倒計時期間,主持人想停止倒計時可以隨時按"停止
39、"按鍵,系統(tǒng)會自動進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開始"進(jìn)入下次搶答計時。</p><p> 4、如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下"停止" 鍵為止。</p><p> 總而言之,本課題利用AT89C51單片機(jī)及外圍接口實現(xiàn)的搶答系統(tǒng)設(shè)計了搶
40、答器,該搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結(jié)構(gòu)、節(jié)約了成本,是一個實用的工程設(shè)計。</p><p> 2.5 器件選型方案及詳細(xì)清單</p><p> 微控制器選用ATMAL公司生產(chǎn)的AT89C51,該芯片貨源充足,并且價格也比較便宜。如表2-1所示。</p><p> 2.6 AT89C51特殊功能寄存器</p><p&g
41、t; 特殊功能寄存器也稱專用寄存器,是具有特殊功能的所有寄存器的集合,簡稱SFR(Special Function Register)。特殊功能寄存器共含有22個不同寄存器。它們的地址分配在80H~FFH中,即在RAM地址中。這些寄存器的名稱和地址見表2-2。</p><p> 表2-1器件選型方案的詳細(xì)清單</p><p> 雖然特殊功能寄存器地址在80H~FFH之中,但在80
42、H~FFH的地址單元中,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內(nèi)容是不確定的,如果對這些單元進(jìn)行操作,得到的是一些隨機(jī)數(shù),而寫入則無效。所以,用戶編程時不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元,它們是公司留待將來開發(fā)新產(chǎn)品時使用的。</p><p> 2.7 AT89C51的功能及簡介</p><p> 2.7.1 89系列單片機(jī)的概況</p><p&
43、gt; AT89C51單片機(jī)是ATMAL公司89系列單片機(jī)的一種8位Flash單片機(jī)。它最大特點是片內(nèi)含有Flash存儲器,用途十分廣泛,特別是在生產(chǎn)便攜式商品,手提式儀器等方面,有著十分廣泛的應(yīng)用[3]。</p><p> (1) 89系列單片機(jī)的特點:</p><p> 89系列單片機(jī)是以8031為內(nèi)核的產(chǎn)品,它與51系列單片機(jī)是兼容的。89系列單片機(jī)具有以下特點:</p&
44、gt;<p> a) 內(nèi)部含有Flash存儲器,使用戶在開發(fā)過程中十分容易修改程序縮短系統(tǒng)的開發(fā)周期。可以重復(fù)多次編程,可根據(jù)需要對內(nèi)部程序進(jìn)行更新或升級。</p><p> b) 89系列單片機(jī)的引腳和AT80C51引腳座兼容,用89系列單片機(jī)可以代替同檔次的AT80C51單片機(jī),不需要對外圍電路進(jìn)行改動。</p><p> 表2-2 AT89C51特殊功能寄存器列表
45、</p><p> 注:帶*號的特殊功能寄存器都是可以位尋址的寄存器</p><p> c) 89系列單片機(jī)采用靜態(tài)時鐘方式,可以節(jié)省電能,降低便攜式設(shè)備的功耗。</p><p> (2) 89系列單片機(jī)的結(jié)構(gòu)簡介:</p><p> 89系列單片機(jī)的內(nèi)部結(jié)構(gòu)與AT80C51相近,主要有以下部件:</p><p&g
46、t; 1 8031CPU 2 振蕩電路 3 總線控制部件</p><p> 4 中斷控制部件 5 片內(nèi)Flash存儲器 6 片內(nèi)RAM</p><p> 7 并行I/O接口 8 定時器 9 串行I/O接口</p><p> 89系列的各種型號單片機(jī),內(nèi)部差別很大。例如,AT89C1051片內(nèi)F
47、lash存儲器只有1KB,而AT89C52、AT89LV52和AT89S8252的片內(nèi)Flash存儲器有8KB。AT89S8252的結(jié)構(gòu)最復(fù)雜,它的內(nèi)部含有標(biāo)準(zhǔn)的串行口,還有一個串行的外圍接口SPI,Watchdog定時器,雙數(shù)據(jù)指針等部件,以及電源下降的中斷恢復(fù)功能。</p><p> 89系列的單片機(jī)一共有五種型號,分別為AT89C51,AT89LV51,AT89C52,AT89LV52和AT89S8252
48、,其中AT89LV51和AT89LV52分別是AT89C51和AT89C52的低壓產(chǎn)品,最低電壓可以低2.7V,AT89C1051和AT89C2051則是抵擋的低壓產(chǎn)品,只有20根引腳。</p><p> 89系列單片機(jī)的型號編碼中字母的意義是:AT表示該器件是ATMEL公司的產(chǎn)品,C表示該器件是CMOS產(chǎn)品,LV表示該器件是低電壓產(chǎn)品,S表示該器件含可以下載的Flash存儲器。</p><
49、p> AT89C51是89系列單片機(jī)的標(biāo)準(zhǔn)型,它是與MSC-51系列單片機(jī)兼容的。在內(nèi)部含有4KB或8KB可重復(fù)編程的Flash存儲器,可進(jìn)行1000次擦寫操作。全靜態(tài)工作為0-24MHZ,有3級程序鎖存器,內(nèi)部含有128-256字節(jié)的RAM,有32條可編程I/O口線,2-3個16位定時/計數(shù)器,6-8個中斷源,通用的串行接口,低電壓空閑及電源下降方式。</p><p> AT89C51是基本型,具有4
50、KB的Flash存儲器,128字節(jié)的片內(nèi)RAM,32條可編程I/O口,兩個個16位定時/計數(shù)器,6個中斷源,3位存儲器加密,一個可編程串行接口。AT89C52在AT89C52的基礎(chǔ)上,增加了一個定時/計數(shù)器,2個中斷源,128字節(jié)的片內(nèi)RAM,4KB的Flash存儲器。</p><p> 2.7.2 AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)圖</p><p> AT89C51單片機(jī)內(nèi)部由CPU、
51、4KB的FPEROM ,128B的RAM,兩個16位的定時/計數(shù)器T0和T1,4個8位的I/O端P0、P1、P2、P3等組成。單片微機(jī)內(nèi)部最核心的部分是CPU。CPU主要功能是產(chǎn)生各種控制信號,控制存儲器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運算、邏輯運算以及位操作處理等,CPU按其功能可分為運算器和控制器兩部分。控制器由程序計數(shù)器PC、指令儲存器、指令譯碼器、實時控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對來自存儲器中的指令進(jìn)行譯碼,通
52、過實時控制電路,在規(guī)定的時刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。運算器由算術(shù)邏輯器部件ALU、累加器ACC、暫存器、程序狀態(tài)字寄存器PSW,BCD碼運算調(diào)整電路等組成。</p><p> 圖2-3 AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)圖</p><p> 為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個通用寄存器B和一些專用寄存器,還增加了位處理邏輯
53、電路的功能[3]。其內(nèi)部結(jié)構(gòu)如圖2-3所示。</p><p> 2.7.3 各類型單片機(jī)的比較分析</p><p> 如表2-3所示,以下各種類型的單片機(jī)內(nèi)除CPU外,還包括ROM、RAM、4*8 I/O口和2個16位定時/計數(shù)器,它們都是功能很強(qiáng)的單片微型計算機(jī)。但由于80C51片內(nèi)為掩膜ROM,故內(nèi)部程序不能改寫,不用于實驗開發(fā)。87C51具有片內(nèi)EPROM,是真正的單片微機(jī),但由
54、于價格較貴,且程序改寫時要用紫外線擦除,時間較長,所以用得較少。80C31在市場上的價格很低,但片內(nèi)沒有ROM,必須在片外擴(kuò)展一片EPROM,非常不便。AT89C51片內(nèi)具有可電擦除的FPEROM,可以快速、多次地編程,且價格不高,所以用得非常廣泛,目前開發(fā)用的MCS—51產(chǎn)品絕大多數(shù)用89C51[4]。</p><p> 表2-3單片機(jī)主要性能的比較</p><p> 2.7.4 A
55、T89C51單片機(jī)</p><p> AT89C51是一種低功耗、高性能的含有4KB閃速可編程電擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存儲技術(shù)制造,并且與80C51指令系統(tǒng)和引腳完成兼容。芯片上的FPEROM允許在線或采用通用的非易失存儲編程器對程序存儲器重復(fù)編程。</p&g
56、t;<p> ?。?)AT89C51的主要性能包括:AT89C51與MCS—51控制器系列產(chǎn)品兼容,片內(nèi)有4K可在線重復(fù)編程閃速電擦除存儲器(Flash Memory),存儲器可循環(huán)寫入/擦除1000次;存儲器數(shù)據(jù)保存時間可達(dá)10年;工作電壓范圍寬:Vcc可由2.7V到6V;全靜態(tài)工作可由0Hz到16MHz;程序存儲器具有3級鎖存保護(hù);128*8位內(nèi)部RAM;32條可編程I/O線;兩個16位定時器/計數(shù)器;中斷結(jié)構(gòu)具有5
57、個中斷源和2個中斷優(yōu)先級;可編程全雙工串行通信;空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。</p><p> ?。?)FPEROM的編程:AT89C51的I/O口P0、P1、P2和P3除具有與80C51相同的一些性能和用途外,在FPEROM編程時,P0口接收代碼字節(jié),并在程序檢驗時輸出代碼字節(jié),但在程序校驗時需要外部上拉負(fù)載電阻,在FPEROM編程和程序校驗期間,P1口接收低位地址字節(jié),P2口接收高位地址字節(jié)和一
58、些控制信號,P3口也接收一些FPEROM編程和校驗用的信號,此時ALE/PROG引腳是編程脈沖輸入(PROG)端,在FPEROM編程期間,如果選擇12V編程電壓、那么EA/Vpp引腳也允許接受12V編程電壓(Vpp)。</p><p> 2.8 搶答器的優(yōu)點及組成</p><p> 在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)
59、來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機(jī)搶答器設(shè)計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用AT89C51單片機(jī)作為核心??刂葡到y(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、語音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過開關(guān)電路六個按鍵輸入搶答信號;利用存儲程序來完成軟件的設(shè)計;利用一個數(shù)碼管來完成
60、顯示功能。工作時,用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機(jī)的處理,輸出控制信號,控制數(shù)碼管和語音芯片工作。在數(shù)碼管上顯示哪一組先答題,并通過語音系統(tǒng)讀出第N組請答題,從而實現(xiàn)整個搶答過程。</p><p><b> 2.9 本章小結(jié)</b></p><p> 本章主要講述了搶答器的工作原理和本設(shè)計系統(tǒng)的工作流程。在說明工作原理的過程中,突出了電路的組成單元以
61、及這些單元如何實現(xiàn)搶答功能;在說明系統(tǒng)的流程時,結(jié)合本設(shè)計的內(nèi)容,指出了參數(shù)設(shè)置的方法和意義。搶答正常流程與違例流程的實現(xiàn),以及如何進(jìn)行搶答控制。同時也說明了搶答器的優(yōu)點和AT89C51的功能及簡介。</p><p> 3 系統(tǒng)總體方案的設(shè)計</p><p> 3.1 硬件電路的設(shè)計</p><p> 本設(shè)計分為硬件設(shè)計和軟件設(shè)計[5],這兩者相互結(jié)合,不可分
62、離;從時間上看,硬件設(shè)計的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計的大返工是比較少的,軟件設(shè)計的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計的工作量在整個項目中的所占的比重逐漸下降。為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面:</p><p> (1) 盡可能采用功能強(qiáng)的芯片,
63、以簡化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比若干普通芯片價格的總和高。</p><p> (2) 留有設(shè)計余地。在設(shè)計硬件電路時,要考慮到將來修改擴(kuò)展的方便。因為很少有一錘定音的電路設(shè)計,如果現(xiàn)在不留余地,將來可能要為一點小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。</p><p> (3) 程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本
64、設(shè)計采用AT89C51單片機(jī)。</p><p> (4) RAM空間,AT89C51內(nèi)部RAM不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時,往往覺得不足。如果系統(tǒng)配置了外部RAM,則建議多留一些空間。如選用8155作I/O接口,就可以增強(qiáng)256字節(jié)RAM.如果有大批數(shù)據(jù)需要處理,則應(yīng)配置足夠的RAM,如6264,62256等。隨著軟件設(shè)計水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)
65、的硬件不必做任何更換就使系統(tǒng)升級換代。只要在硬件電路設(shè)計初期考慮到這一點,就應(yīng)該為系統(tǒng)將來升級留足夠的RAM空間,哪怕多設(shè)計一個RAM的插座,暫不插芯片也好。</p><p> (5) I/O端口:在樣機(jī)研制出來后進(jìn)行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計就預(yù)留出一些
66、I/O端口,雖然當(dāng)時空著沒用,那么用的時候就派上用場了。</p><p><b> 3.2 總體原理圖</b></p><p><b> 圖3-1系統(tǒng)原理圖</b></p><p> P1.0為開始搶答[9],P1.7為停止,P1.1-P1.6為六路搶答輸入,數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口
67、。P3.2為時間加1調(diào)整,P3.3為時間減1調(diào)整。</p><p> 3.3 時鐘頻率電路的設(shè)計</p><p> 單片機(jī)必須在時鐘的驅(qū)動下才能工作.在單片機(jī)內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機(jī)內(nèi)部的各個單元,決定單片機(jī)的工作速度。</p><p> 圖3-2為外部振蕩源電路</p><p>
68、一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。</p><p> 單片機(jī)在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒
69、數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12µs。</p><p> 3.4 復(fù)位電路的設(shè)計</p><p> 單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個機(jī)器周期的高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖4所示:</p><p><b> 圖3-3復(fù)位電
70、路</b></p><p> 值得注意的是,在設(shè)計當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。</p><p
71、> 3.5 顯示電路的設(shè)計</p><p> 顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。</p><p> 3.5.1 顯示模塊在系統(tǒng)軟件中的安排</p><p> 操作者主要設(shè)計從顯示設(shè)備上獲取微機(jī)系統(tǒng)的信息的,因此,操作者每操作一下,顯示設(shè)備商都應(yīng)該有一定的反應(yīng)。這說明,顯示模塊與操作
72、有關(guān),即監(jiān)控程序是需要調(diào)用顯示模塊。不同的操作需要顯示不同的內(nèi)容,這又說明各執(zhí)行模塊對顯示模塊的驅(qū)動方式是不同的。另一方面,在操作者沒有進(jìn)行操作時,顯示內(nèi)容也是變化的,如顯示現(xiàn)場各物理量的變化情況。這時顯示模塊不是由操作者通過命令鍵來驅(qū)動,而是由各類自動執(zhí)行的功能模塊來驅(qū)動。自動執(zhí)行的各類模塊在安排在各種中斷子程序中,這就是說,各種中斷子程序也要調(diào)用顯示模塊。如果監(jiān)控安排在中斷子程序中,兩者的要求就統(tǒng)一了,問題比較好解決,如果監(jiān)控程序安
73、排在主程序中,在監(jiān)控程序調(diào)用顯示模塊的過程中發(fā)生了中斷,中斷子程序也調(diào)用顯示模塊,這時就容易出問題。一種比較妥善的辦法是只讓一處調(diào)用顯示模塊,其他各處均不得直接調(diào)用顯示模塊,但有權(quán)申請顯示。這就要設(shè)置一個顯示申請標(biāo)志,當(dāng)某模塊需要顯示時,將申請標(biāo)志置位,同時設(shè)定有關(guān)顯示內(nèi)容(或指針)。由于一處調(diào)用顯示模塊,故不會發(fā)生沖突。為了使顯示模塊能及時反應(yīng)系統(tǒng)需要,應(yīng)將顯示模塊安排在一個重復(fù)執(zhí)行的循環(huán)(如監(jiān)控循環(huán)或時鐘中斷子程序)中。當(dāng)監(jiān)控程&l
74、t;/p><p> DISP BIT 2DH.4 ;顯示申請標(biāo)志</p><p> SKEYEND: JNB DISP,RETI0 ;有顯示申請否?</p><p> LCALL DISPLAY ;調(diào)用顯示模塊,更新顯示內(nèi)容</p><p> CLR DISP
75、 ;清除申請</p><p><b> RETI0: ..</b></p><p> RETI ;中斷返回</p><p> KEYEND為鍵盤解釋程序的最后匯集點,這時如果發(fā)現(xiàn)有顯示申請,就進(jìn)行集中操作,更新顯示內(nèi)容,否則就跳過這一步。</p><p&
76、gt; 這里將顯示功能集中到一起,作為一個功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動完成顯示內(nèi)容的查找,變換和輸出驅(qū)動。這樣設(shè)計使得各功能模塊都不必考慮顯示問題,只要給出一個簡單的信息(如顯示格式編碼)甚至不用再提供額外信息,直接利用當(dāng)前狀態(tài)變量和軟件標(biāo)志就可以完成所需的顯示要求。</p><p> 如果編寫這樣一個集中顯示模塊有困難,也可以將顯示模塊編小一些,只完成顯示緩沖區(qū)的內(nèi)容輸出到顯示
77、器件上的工作。這時各功能模塊在提出顯示申請時,還需要將顯示內(nèi)容按需要的格式送入顯示緩沖區(qū)中。這樣分而治之比較容易編程,但要小心出現(xiàn)顯示混亂。例如后臺程序需要調(diào)用顯示,將有關(guān)信息送入到現(xiàn)實緩沖區(qū)進(jìn)行顯示;中斷返回后,后臺程序繼續(xù)送完后半部分顯示內(nèi)容,但前半部分內(nèi)容已經(jīng)變了,這樣就出現(xiàn)了顯示錯誤。解決的辦法是,在申請顯示前,先檢查是否已經(jīng)有顯示申請,如果有,就不再申請,等待下次機(jī)會;如果沒有,則先申請標(biāo)志位,再將顯示內(nèi)容送入顯示緩沖區(qū)。這時
78、就不必?fù)?dān)心其他前臺模塊來打擾了,就可以得到一次完整的顯示機(jī)會。</p><p> 在這里我們使用的是七段數(shù)碼管顯示,通常在顯示[6]上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法。</p>
79、<p> 并通過查表法,將其在數(shù)碼管上顯示出來,其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字,數(shù)碼管顯示原理如下: </p><p><b> MOV A,R5 </b></p><p> MOVC A,@A+DPTR ;查字型碼</p><p> M
80、OV P2,#01H ;送位選碼</p><p> MOV P0,A ;送字型碼</p><p> ACALL DELAY ;調(diào)延時,去閃爍</p><p> 圖3-4共陰極數(shù)碼管</p><p> 在七段數(shù)碼管顯示中可分為共陽極和共陰極兩種類型極。以共陰
81、為例,要想a段亮,向a段送1就是,返之送0,共陽剛好相反。</p><p> 3.6 鍵盤掃描電路的設(shè)計</p><p> 鍵盤是人與微機(jī)系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,
82、否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。</p><p><b> 圖3-5獨立鍵盤</b></p><p> 它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在
83、程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機(jī)檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。</p><p> 3.6
84、.1 鍵盤抖動的軟件處理</p><p> 按鍵的觸點在閉合和斷開時均會產(chǎn)生抖動,這是觸點的邏輯電平是不穩(wěn)定的,如不妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復(fù)執(zhí)行。現(xiàn)在一般均用軟件延時的方法來避開抖動階段,這一延時過程一般大于5ms,例如取10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺程序)或鍵盤中斷(外部中斷)子程序中,則該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可
85、省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。</p><p><b> 3.7 發(fā)聲</b></p><p> 我們知道,聲音的頻譜范圍約在幾十到幾千赫茲[7],若能利用程序來控制單片機(jī)某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出
86、頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。</p><p><b> 3.8 系統(tǒng)復(fù)位</b></p><p> 使CPU進(jìn)入初始狀態(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ù)
87、位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用寄存器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘,因為它沒有明確的位地址
88、可供編程。有的編程人員用020000(LJMP 0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它</p><p> 在所有的指令中,只有RETI指令能夠清除中斷激活標(biāo)志。前文各處提案到的出錯處理程序ER
89、R主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。這部分程序如下:</p><p> POWER DATA 67H ;上電標(biāo)志存放單元 </p><p> ERR: CLR EA ;關(guān)中斷</p><p> MOV DPTR,#ERR1 ;準(zhǔn)備返回地址</p><p&
90、gt; PUSH DPL</p><p> PUSH DPH</p><p> RETI ;清除高級中斷激活標(biāo)志</p><p> ERR1: MOV POWER,#0AAH;重建上電標(biāo)志</p><p> CLR A ;準(zhǔn)備復(fù)位地址</p><p&
91、gt; PUSH ACC ;壓入復(fù)位地址0000H</p><p> PUSH ACC</p><p> RETI ;清除低級中斷激活標(biāo)志,從程序0000H開始執(zhí)行。</p><p> 這段程序先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用兩個RETI指令代替兩個LJMP指令,從而清除了兩級中斷激活標(biāo)志。有相應(yīng)軟件陷阱捕捉來的程序
92、可能沒有全部激活兩個標(biāo)志,這也無妨。</p><p> 有復(fù)位時系統(tǒng)的歷史狀況,可將復(fù)位分為“冷啟動”和“熱啟動”。 “冷啟動”時,系統(tǒng)的狀態(tài)全部無效,進(jìn)行徹底的初始化操作;而“熱啟動”時,對系統(tǒng)的當(dāng)前狀態(tài)進(jìn)行修復(fù)和有選擇的初始化。系統(tǒng)初次上電投入運行時,必須是“冷啟動”,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動”初次上電投入運行時,必須是“冷啟動”,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動”。為了
93、使系統(tǒng)能正確決定采用何種啟動方式,常用上電標(biāo)志來區(qū)分,如圖3-6所示。</p><p> 圖3-6 系統(tǒng)復(fù)位策略圖</p><p> “上電標(biāo)志”是軟件標(biāo)志,如上述程序中,用在POWER中存放的特定數(shù)據(jù)0AAH作為“上電標(biāo)志”。這時復(fù)位后的主程序如下:</p><p> MAIN: CLR EA ;關(guān)中斷
94、</p><p> MOV SP,#67H ;設(shè)定堆棧</p><p> MOV PSW,#0 ;設(shè)定0區(qū)工作寄存器</p><p> MOV A,#0AAH,MAIN0</p><p> SJMP MAIN ;有上電標(biāo)志,進(jìn)行
95、熱啟動</p><p> MAIN0: ;無上電標(biāo)志,進(jìn)行冷啟動</p><p><b> ??;自檢,全面初始化</b></p><p> SJMP MAIN3</p><p> MAINH:
96、 ;熱啟動過程,恢復(fù)現(xiàn)場</p><p><b> ??;部分初始化</b></p><p> MAIN3: MOV POWER,#0AAH;建立上電標(biāo)志</p><p> LOOP: ;開工循環(huán)</p><p> LJMP
97、 LOOP</p><p><b> 3.9 本章小結(jié)</b></p><p> 本章詳細(xì)講述了以AT89C51為核心元件的搶答器的硬件電路具體設(shè)計過程,分析了具體電路。在設(shè)計過程中,實現(xiàn)搶答功能的是通過編寫程序的方法集成在AT89C51內(nèi)部。接著將程序下載到硬件電路中,配合周邊的時鐘電路,復(fù)位電路等,制作出符合設(shè)計要求的搶答器。</p>
98、;<p><b> 4 軟件設(shè)計</b></p><p> 4.1 主程序系統(tǒng)結(jié)構(gòu)圖</p><p> 圖4-1軟件系統(tǒng)結(jié)構(gòu)圖</p><p><b> 4.2軟件任務(wù)分析</b></p><p> 軟件任務(wù)分析和硬件電路設(shè)計結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,
99、在硬件電路設(shè)計基本定型后,也就基本上決定下來了。</p><p> 軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量,計算,顯示,打印[8],輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計方法各有特色,執(zhí)行軟件的設(shè)計偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。
100、</p><p> 軟件任務(wù)分析時,應(yīng)將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時,將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。</p><p> 各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當(dāng)一名操作
101、工人比較容易,而當(dāng)一個廠長就比較難了。</p><p> 軟件任務(wù)分析的另一個內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個系統(tǒng)軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調(diào)用的子程序,這類程序?qū)崟r性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而前臺程序安排一些實時性要求較高的內(nèi)容,如定時系統(tǒng)和外部中
102、斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。</p><p><b> 4.3 程序流程圖</b></p><p> 在本設(shè)計中包括了以下八個主要的程序:主程序;非法搶答序;搶答時間調(diào)整程序;回答時間調(diào)整程序;倒計時程序;正常搶答處理程序;犯規(guī)處理程序;顯示及發(fā)聲程序[9]。主流程圖如4-2所示:<
103、;/p><p><b> 4.4主要程序分析</b></p><p><b> 主程序:</b></p><p><b> ORG 0040H</b></p><p> MAIN: MOV R1,#0FH</p><p> MOV R2,#0AH
104、</p><p> 圖4-2 程序設(shè)計流程圖</p><p> MOV TMOD,#11H</p><p> MOV TH0,#0F0H</p><p> MOV TL0,#0FFH</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H;50ms為
105、一次溢出中斷[10]</p><p><b> SETB EA</b></p><p><b> SETB ET0</b></p><p><b> SETB ET1</b></p><p><b> SETB EX0</b></p>
106、<p><b> SETB EX1</b></p><p><b> CLR OK</b></p><p><b> CLR RING</b></p><p><b> SETB TR1</b></p><p><b> S
107、ETB TR0</b></p><p><b> 非法搶答處理程序:</b></p><p> FALSE1: ACALL BARK</p><p> MOV R3,#01H</p><p> AJMP ERROR</p><p> FALSE2: ACALL BARK<
108、;/p><p> MOV R3,#02H</p><p> AJMP ERROR</p><p> FALSE3: ACALL BARK</p><p> MOV R3,#03H</p><p> AJMP ERROR</p><p> FALSE4: ACALL BARK</p&
109、gt;<p> MOV R3,#04H</p><p> AJMP ERROR</p><p> FALSE5: ACALL BARK</p><p> MOV R3,#05H</p><p> AJMP ERROR</p><p> FALSE6: ACALL BARK</p>
110、<p> MOV R3,#06H</p><p> AJMP ERROR</p><p><b> 搶答時間調(diào)整程序:</b></p><p> ;=====INT0(搶答時間R1調(diào)整程序)=====</p><p> INT0SUB:MOV A,R1</p><p> M
111、OV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV R5,A</b></p><p><b> MOV R4,B</b></p><p> MOV R3,#0AH</p><p> ACALL
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計----六路搶答器設(shè)計
- 六路搶答器的設(shè)計
- 六路搶答器課程設(shè)計
- plc六路搶答器課程設(shè)計
- plc六路搶答器課程設(shè)計
- 六路智能搶答器 畢業(yè)論文
- plc六路搶答器課程設(shè)計報告
- 智能六路搶答器課程設(shè)計報告
- 四路搶答器畢業(yè)設(shè)計
- 單片機(jī)六路搶答器【畢業(yè)論文】
- 數(shù)字邏輯課程設(shè)計報告----六路搶答器的設(shè)計
- 電子技術(shù)課程設(shè)計-----六路搶答器
- 四路搶答器的設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-----八路搶答器設(shè)計
- 畢業(yè)設(shè)計----八路搶答器設(shè)計
- 數(shù)字四路搶答器畢業(yè)設(shè)計
- 9路智能搶答器畢業(yè)設(shè)計
- 八路搶答器畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)-基于at89c51單片機(jī)的六路智能搶答器的設(shè)計
- 八路搶答器的設(shè)計【畢業(yè)設(shè)計】
評論
0/150
提交評論