課程設(shè)計(jì)---八路智力競(jìng)賽搶答器的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  搶答器是一種常見(jiàn)的電子產(chǎn)品,尤其是在各類(lèi)智力競(jìng)猜中,為了實(shí)現(xiàn)選手的公平性,性能優(yōu)良的搶答器往往更能得到各單位的青睞。這里通過(guò)兩種設(shè)計(jì)方案的對(duì)比,最終選定了用單片機(jī)實(shí)現(xiàn)搶答器電路。由于單片機(jī)具有可編程定時(shí)器和中斷設(shè)備,便于實(shí)現(xiàn)編程和時(shí)間的精確控制。所用方案電路結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn),它用4個(gè)七段數(shù)碼管來(lái)顯示,且具有簡(jiǎn)單精準(zhǔn)的報(bào)警

2、電路。所選方案的一個(gè)很重要的特點(diǎn)在于具有靈活性,主持人可以根據(jù)題目難易進(jìn)行時(shí)間設(shè)定,這樣進(jìn)一步保證了公平性。由于它具有成本低廉,結(jié)構(gòu)簡(jiǎn)單,且性能優(yōu)良的諸多優(yōu)點(diǎn),必定會(huì)得到廣泛的應(yīng)用。</p><p>  關(guān)鍵詞:搶答器 ,單片機(jī) ,七段數(shù)碼管,時(shí)間設(shè)定 </p><p><b>  目 錄</b></p><p><b>  一

3、 方案的概述1</b></p><p>  1.1 設(shè)計(jì)內(nèi)容及要求1</p><p>  1.1.1 設(shè)計(jì)內(nèi)容1</p><p>  1.1.2 設(shè)計(jì)要求1</p><p>  1.2 設(shè)計(jì)方框圖2</p><p>  1.3 搶答器的程序流程3</p><p>

4、;  二 搶答器單元設(shè)計(jì)及其說(shuō)明8</p><p>  2.1主要芯片的介紹8</p><p>  2.2程序流程圖10</p><p>  2.3 MAX721912</p><p>  2.3.1 MAX7219引腳說(shuō)明12</p><p>  2.3.2 基本的工作方法13</p>&l

5、t;p>  2.3.3 MAX7219初始化14</p><p>  2.3.4 部分程序功能介紹14</p><p>  2.4LCD簡(jiǎn)介16</p><p>  2.4.1LCD和LED的區(qū)別16</p><p>  2.4.3顯示電路設(shè)計(jì)和LCD的引腳功能說(shuō)明17</p><p>  2.4.4

6、液晶顯示模塊18</p><p>  三  搶答器電路原圖及仿真20</p><p>  3.1搶答器原理圖20</p><p>  3.2仿真軟件介紹21</p><p>  3.3仿真測(cè)試效果22</p><p><b>  設(shè)計(jì)小結(jié)25</b></p><p&

7、gt;<b>  參考文獻(xiàn)26</b></p><p><b>  附錄一27</b></p><p><b>  附錄二28</b></p><p><b>  一 方案的概述</b></p><p>  1.1 設(shè)計(jì)內(nèi)容及要求</p>

8、;<p>  1.1.1 設(shè)計(jì)內(nèi)容</p><p>  1設(shè)計(jì)一個(gè)智力競(jìng)賽搶答器,可同時(shí)供8名選手或8個(gè)代表隊(duì)參加比賽,他們的編號(hào)分別是1、2、3、4、5、6、7、8,各用一個(gè)搶答按鈕,按鈕的編號(hào)與選手的編號(hào)相對(duì)應(yīng),分別是S0、S1、S2、S3、S4、S5、S6、S7。</p><p>  2給節(jié)目主持人設(shè)置一個(gè)控制開(kāi)關(guān),用來(lái)控制系統(tǒng)的清零(編號(hào)顯示數(shù)碼管滅燈)和搶答的開(kāi)始

9、。</p><p>  3搶答器具有數(shù)據(jù)鎖存和顯示的功能。搶答開(kāi)始后,若有選手按動(dòng)搶答按鈕,編號(hào)立即鎖存,并在LED數(shù)碼管上顯示出選手的編號(hào),同時(shí)蜂鳴器給出音響提示。此外,要封鎖輸入電路,禁止其他選手搶答。優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清零為止。</p><p>  4用中小規(guī)模集成電路組成智力競(jìng)賽搶答器電路,畫(huà)出各單元電路圖和總體邏輯框圖,正確描述各單元功能,合理選用電路器件,

10、畫(huà)出完整的電路設(shè)計(jì)圖以及寫(xiě)出設(shè)計(jì)總結(jié)報(bào)告</p><p>  1.1.2 設(shè)計(jì)要求</p><p>  1、如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按"搶答時(shí)間調(diào)節(jié)"鍵或"答題時(shí)間調(diào)節(jié)" 鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"

11、;鍵,時(shí)間LED上會(huì)顯示改變后的時(shí)間,調(diào)整范圍為0s~99s, 0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。 </p><p>  2、主持人按"搶答開(kāi)始"鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會(huì)有提示音,

12、并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)60s搶答時(shí)間),不進(jìn)行搶答查詢(xún),所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。 </p><p>  3、如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按"停止

13、"按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開(kāi)始"進(jìn)入下次搶答計(jì)時(shí)。 </p><p>  4、如果主持人未按"搶答開(kāi)始"鍵,而有人按了搶答按鍵,犯規(guī)搶答

14、,LED上不斷閃爍FF和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下"停止" 鍵為止。 </p><p>  5、P3.0為開(kāi)始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入 數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時(shí)間調(diào)整整,P3.3回答時(shí)間調(diào)整,P3.4為時(shí)間加1調(diào)整,P3.5為時(shí)間減1調(diào)整。</p><p>  6、當(dāng)參賽選手在回答問(wèn)

15、題時(shí)要求使用錦囊,則主持人按下?lián)尨痖_(kāi)始鍵,計(jì)時(shí)重新開(kāi)始。</p><p>  1.2 設(shè)計(jì)方框圖</p><p>  如圖(1-1)所示為八路智力搶答器設(shè)計(jì)的物理模塊劃分如下:</p><p>  圖1-1 設(shè)計(jì)物理框圖</p><p>  通過(guò)主持人的相關(guān)操作(包括開(kāi)始、停止、調(diào)時(shí)、錦囊使用等),以及選手的搶答,顯示模塊與語(yǔ)音模塊應(yīng)能迅

16、速做出正確回應(yīng)。如主持人按下開(kāi)始,語(yǔ)音模塊立刻給以語(yǔ)音提示,顯示模塊立刻顯示搶答倒計(jì)時(shí);當(dāng)有選手搶答,顯示模塊應(yīng)馬上顯示最先搶答的選手號(hào),并進(jìn)入答題倒計(jì)時(shí)… 而這一切,都有賴(lài)于本設(shè)計(jì)的核心模塊—51單片機(jī)來(lái)控制。通過(guò)一系列的匯編程序,來(lái)控制、實(shí)現(xiàn)相應(yīng)的邏輯功能。</p><p>  本設(shè)計(jì)中大部分的較為復(fù)雜的邏輯控制,都是用相應(yīng)的匯編程來(lái)控制實(shí)現(xiàn)的。</p><p>  根據(jù)相應(yīng)的設(shè)計(jì)要求

17、,對(duì)本設(shè)計(jì)可作如下分析:</p><p>  1、由設(shè)計(jì)要求1,本設(shè)計(jì)應(yīng)具有搶答時(shí)間調(diào)整和回答時(shí)間調(diào)整程序,并由相應(yīng)引腳來(lái)控制:P3.2搶答時(shí)間調(diào)整,P3.3回答時(shí)間調(diào)整,P3.4為加1s,P3.5為減1s;</p><p>  2、根據(jù)設(shè)計(jì)要求2,本設(shè)計(jì)應(yīng)具有搶答、回答倒計(jì)時(shí)功能,即倒計(jì)時(shí)程序。通過(guò)查詢(xún)開(kāi)始鍵的狀態(tài)來(lái)決定是否進(jìn)入搶答倒計(jì)時(shí),開(kāi)始鍵按下后有人搶答便立即進(jìn)入回答倒計(jì)時(shí),倒計(jì)時(shí)

18、小于5s時(shí),調(diào)用發(fā)聲程序;</p><p>  3、程序中應(yīng)不斷查詢(xún)"停止" 鍵的狀態(tài),一旦其按下,應(yīng)立即退出,并進(jìn)入查詢(xún)程序(用來(lái)查詢(xún)開(kāi)始鍵與八路搶答鍵的狀態(tài));</p><p>  4、 為使本設(shè)計(jì)具有錦囊功能,在回答倒計(jì)時(shí)過(guò)程中,若按下開(kāi)始鍵,回答倒計(jì)時(shí)重新開(kāi)始。</p><p>  1.3 搶答器的程序流程</p><

19、;p>  本設(shè)計(jì)采用P3.2、P3.3分別接搶答時(shí)間調(diào)節(jié)和答題時(shí)間調(diào)節(jié)按鈕,即通過(guò)外部中斷0、外部中斷1分別控制搶答、答題時(shí)間的調(diào)整。因此,設(shè)計(jì)的軟件部分可分為工作模塊、外部中斷0模塊、外部中斷1模塊。對(duì)流程圖的分析,也分三部分來(lái)介紹。</p><p> ?。?)工作時(shí)(非調(diào)節(jié)時(shí)間時(shí))的流程</p><p>  平時(shí)正常工作時(shí),程序的流程圖繪制如圖1-2:</p>&l

20、t;p>  對(duì)工作流程圖中的某些部分解釋如下:</p><p>  初始化部分:包括對(duì)定時(shí)計(jì)數(shù)器的工作方式、初始化數(shù)值的設(shè)置,還包括對(duì)搶答時(shí)間與答題時(shí)間的預(yù)設(shè),另外,還應(yīng)對(duì)外部中斷0、外部中斷1進(jìn)行開(kāi)放。</p><p>  搶答倒計(jì)時(shí)、回答倒計(jì)時(shí)部分:由于二者功能的相似性,本設(shè)計(jì)將二者在一個(gè)子程序——倒計(jì)時(shí)程序中一起編寫(xiě)。</p><p>  犯規(guī)程序部分:

21、包括對(duì)犯規(guī)選手號(hào)的顯示、報(bào)警器的間斷工作。</p><p>  另外,由于在設(shè)計(jì)要求主持人能隨時(shí)對(duì)工作過(guò)程終止,因此,要不斷查詢(xún)停止鍵的狀態(tài),一旦按下,便回到初始化后的狀態(tài);在倒計(jì)時(shí)過(guò)程中還要不斷將與5S比較,當(dāng)小于5S時(shí),還需調(diào)用發(fā)聲程序;小于5S后, 又需要不斷將與0較,當(dāng)其等于零時(shí),立即返回。</p><p>  圖1-2 工作流程圖</p><p> ?。?/p>

22、2)外部中斷0(搶答時(shí)間調(diào)整)流程</p><p>  外部中斷0(搶答時(shí)間調(diào)整)的流程圖見(jiàn)圖1-3:</p><p>  圖1-3 INT0流程圖</p><p>  一旦因P3.2對(duì)應(yīng)鍵的按下,便進(jìn)入INT0中斷過(guò)程。通過(guò)不斷對(duì)P3.4(加1s)和P3.5(減1s)進(jìn)行不斷的查詢(xún),來(lái)對(duì)搶答時(shí)間進(jìn)行調(diào)整:發(fā)現(xiàn)P3.4按下,就對(duì)原搶答時(shí)間加1s, 發(fā)現(xiàn)P3.5下,

23、就對(duì)原搶答時(shí)間減1s并調(diào)用顯示程序。</p><p>  根據(jù)設(shè)計(jì)要求,當(dāng)加至99s時(shí),若再加1s,則時(shí)間變?yōu)?;當(dāng)減至0s后,若再減一秒,時(shí)間變?yōu)?9s。因此,流程中應(yīng)該對(duì)當(dāng)前時(shí)間于99s或0s比較,再作出相應(yīng)處理。</p><p>  另外,在中斷過(guò)程中還需要不時(shí)對(duì)停止按鈕進(jìn)行查詢(xún),一旦發(fā)現(xiàn)其按下,立即中斷返回。由于本中斷過(guò)程在返回前一直是循環(huán)執(zhí)行的,因此,只需要在每次循環(huán)末查詢(xún)一次即

24、可,如流程圖所示</p><p>  (3)外部中斷1(答題時(shí)間調(diào)整)流程</p><p>  外部中斷1(答題時(shí)間調(diào)整)流程與外部中斷1流程大同小異。其程序流程參見(jiàn)圖1-4:</p><p>  與搶答時(shí)間調(diào)整類(lèi)似,一旦因P3.3對(duì)應(yīng)的按鈕按下,便進(jìn)入INT1中斷過(guò)程。通過(guò)不斷對(duì)P3.4(加1s)和P3.5(減1s)進(jìn)行不斷的查詢(xún),來(lái)對(duì)搶答時(shí)間進(jìn)行調(diào)整:發(fā)現(xiàn)P3.

25、4按下,就對(duì)原搶答時(shí)間加1s, 發(fā)現(xiàn)P3.5下,就對(duì)原搶答時(shí)間減1s并調(diào)用顯示程序。當(dāng)加至99s時(shí),若再加1s,則時(shí)間變?yōu)?;當(dāng)減至0s后,若再減一秒,時(shí)間變?yōu)?9s。因此,流程中應(yīng)該對(duì)當(dāng)前時(shí)間于99s或0s比較,再作出相應(yīng)處理。</p><p>  同上,在中斷過(guò)程中,也還需要不時(shí)對(duì)停止按鈕進(jìn)行查詢(xún),一旦發(fā)現(xiàn)其按下,立即中斷返回。</p><p>  圖1-4 INT1流程圖</

26、p><p>  二 搶答器單元設(shè)計(jì)及其說(shuō)明</p><p>  2.1主要芯片的介紹</p><p>  AT89SC52的引腳圖如圖2-1所示</p><p>  圖2-1 AT89SC52芯片引腳圖</p><p><b>  主要性能</b></p><p>  本方案所

27、使用的主要芯片是AT89SC52, 它與MCS-51單片機(jī)產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、 1000次擦寫(xiě)周期、 全靜態(tài)操作:0Hz~33Hz 、 三級(jí)加密程序存儲(chǔ)器 、 32個(gè)可編程I/O口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 、全雙工UART串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門(mén)狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。</p><p><b>  功能特

28、性描述</b></p><p>  At89sc52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89SC52為眾多嵌入式控制應(yīng)用系統(tǒng)

29、提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保

30、存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52。</p><p><b>  P0、P1口介紹</b></p><p>  P0 口:P0 口是一組8 位漏極開(kāi)路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門(mén)電路,對(duì)端口P

31、0 寫(xiě)“1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。  P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此

32、時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)?! ∨cAT89C51 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),參見(jiàn)表2-1</p><p>  表2-1 P1.0 P2.0 引腳功能特性</p><p>  本方案中用到的一些引腳介紹</p>

33、;<p>  XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。</p><p>  XTAL2:振蕩器反相放大器的輸出端。</p><p><b>  特殊功能寄存器:</b></p><p>  在AT89C52 片內(nèi)存儲(chǔ)器中,80H-FFH 共128 個(gè)單元為特殊功能寄存器(SFE)。</p><p

34、>  并非所有的地址都被定義,從80H—FFH 共128 個(gè)字節(jié)只有一部分被定義,還有相當(dāng)一部分沒(méi)有定義。對(duì)沒(méi)有定義的單元讀寫(xiě)將是無(wú)效的,讀出的數(shù)值將不確定,而寫(xiě)入的數(shù)據(jù)也將丟失。不應(yīng)將數(shù)據(jù)“1”寫(xiě)入未定義的單元,由于這些單元在將來(lái)的產(chǎn)品中可能賦予新的功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“0”。</p><p>  AT89C52除了與AT89C51所有的定時(shí)/計(jì)數(shù)器0 和定時(shí)/計(jì)數(shù)器1 外,還增加了

35、一個(gè)定時(shí)/計(jì)數(shù)器2。定時(shí)/計(jì)數(shù)器2 的控制和狀態(tài)位位于T2CON,T2MOD,寄存器對(duì)(RCAO2H、RCAP2L)是定時(shí)器2 在16 位捕獲方式或16 位自動(dòng)重裝載方式下的捕獲/自動(dòng)重裝載寄存器。</p><p><b>  2.2程序流程圖</b></p><p>  圖2-2 程序流程圖</p><p>  2.3 MAX7219<

36、/p><p>  2.3.1 MAX7219引腳說(shuō)明</p><p><b>  引腳說(shuō)明見(jiàn)表2-2</b></p><p>  表2-2 MAX7219引腳說(shuō)明</p><p>  2.3.2 基本的工作方法</p><p>  MAX7219與8031單片機(jī)連接采用三線串行接口,典型應(yīng)用電路如表

37、2-3所示。Y&FeN;y-jGuest</p><p>  表2-3 16位數(shù)據(jù)包的數(shù)據(jù)格式如下:</p><p>  D7~D0:8位數(shù)據(jù)位,D7最高位,D0最低位;</p><p>  D11~D8:4位地址位;</p><p>  D15~D12:無(wú)關(guān)位,通常全取1。</p><p>  MAX72

38、19通過(guò)D11~D84位地址位譯碼,可尋址14個(gè)內(nèi)部寄存器,分別是8個(gè)LED顯示位寄存器,5個(gè)控制寄存器和1個(gè)空操作寄存器。LED顯示寄存器由內(nèi)部8×8靜態(tài)RAM構(gòu)成,操作者可直接對(duì)位寄存器進(jìn)行個(gè)別尋址,以刷新和保持?jǐn)?shù)據(jù),只要V+超過(guò)2V(一般為+5V)。a y6i/e8G(rW0n~Guest控制寄存器包括:譯碼模式,顯示亮度調(diào)節(jié),掃描限制(選擇掃描位數(shù)),關(guān)斷和顯示測(cè)試寄存器。 </p><p&g

39、t;  EETOP專(zhuān)業(yè)博客---電子工程師自己的家園1w}m0@-?7B`-v&{Lt PGueste(|o'x*U `)vGuestMAX7219的驅(qū)動(dòng)程序首先必須對(duì)5個(gè)控制寄存器(地址分配見(jiàn)表2-4)初始設(shè)置即初始化,各控制寄存器設(shè)置含義如下:譯碼模式選擇寄存器(地址=F9H);</p><p>  5G)sJ'wGm+C[GuestEETOP專(zhuān)業(yè)博客---電子工程師自己的家

40、園\xG/U9Y3O|共有4種譯碼模式供選擇,當(dāng)數(shù)據(jù)位全0時(shí)選擇“非譯碼方式”。在此方式下,8個(gè)數(shù)據(jù)位分別一一對(duì)應(yīng)7個(gè)段和小數(shù)點(diǎn)。通常選擇此方式。 1Qe{b#k qGuestk5{4q6Y+vGuest掃描限制寄存器:地址=FBH;用于設(shè)置顯示的LED個(gè)數(shù)(1~8),當(dāng)D2D1D0=111、D7D6D5D4D3無(wú)關(guān)時(shí),可接8個(gè)LED管。EETOP專(zhuān)業(yè)博客---電子工程師自己的家園9rB3}Dw#Y0X 亮

41、度調(diào)節(jié)寄存器:地址=FAH;CB!iae rp-qGuest共有16級(jí)選擇,用于LED顯示亮度的強(qiáng)弱設(shè)置。EETOP專(zhuān)業(yè)博客---電子工程師自己的家園9^9lia(}8D$hw ^ 關(guān)斷模式寄存器:地址=FCH;EETOP專(zhuān)業(yè)博客---電子工程師自己的家園K@A|}Q 顯示測(cè)試寄存器:地址=FFH;有兩種選擇用于設(shè)置LED是測(cè)試狀態(tài)還是正常操作狀態(tài):當(dāng)在測(cè)試狀態(tài)時(shí)(D0=1)各位全應(yīng)亮,一般選擇正常操作狀態(tài)

42、(D0</p><p><b>  =0)。</b></p><p>  表2-4 寄存器地址分配表</p><p>  2.3.3 MAX7219初始化</p><p>  表2-5 初始化設(shè)置各項(xiàng)的選擇及對(duì)應(yīng)數(shù)值</p><p>  2.3.4 部分程序功能介紹</p>&l

43、t;p>  全部程序見(jiàn)附錄二,下面僅介紹部分程序</p><p>  由于在讀搶答數(shù)據(jù)口的時(shí)候,單片機(jī)首先進(jìn)入倒計(jì)時(shí)程序,再調(diào)用顯示程序,最后才檢測(cè)按鍵口,然而在檢測(cè)按鍵口時(shí)動(dòng)態(tài)掃描要調(diào)用三次(4ms)延時(shí)程序.這樣就會(huì)導(dǎo)致讀數(shù)據(jù)口出現(xiàn)滯后,造成1號(hào)優(yōu)先最高.8號(hào)最低.故采用在延時(shí)子程序中加了讀數(shù)據(jù)口程序.保證了靈敏度和可靠性,程序如下:</p><p>  ===加減時(shí)間延時(shí)(起到

44、不會(huì)按下就加N個(gè)數(shù))======</p><p>  DELAY1: MOV 35H,#08H</p><p>  LOOP0: ACALL DISPLAY</p><p>  DJNZ 35H,LOOP0</p><p><b>  RET</b></p><p>  ;=====延時(shí)4236個(gè)

45、機(jī)器周期(去抖動(dòng)用到)=====</p><p>  DELAY: MOV 32H,#12H</p><p>  LOOP: MOV 33H,#0AFH</p><p>  LOOP1: DJNZ 33H,LOOP1</p><p>  DJNZ 32H,LOOP</p><p>  RET;=====延時(shí)4236個(gè)機(jī)

46、器周期(顯示用到)=====</p><p>  DELAY2: MOV 32H,#43H</p><p>  LOOP3: MOV 33H,#1EH</p><p>  MOV A,R7 ;每隔60~70個(gè)機(jī)器周期讀一次P1口,全為1時(shí)為無(wú)效數(shù)據(jù),繼續(xù)讀,有一個(gè)不為1時(shí),轉(zhuǎn)到正常搶答處理</p><p>  JNZ AAAA1 ;沒(méi)讀到有效

47、數(shù)據(jù)時(shí)繼續(xù)轉(zhuǎn)到AAAA1</p><p>  LOOP2: DJNZ 33H,LOOP2</p><p>  DJNZ 32H,LOOP3</p><p>  RET;=====讀搶答按鍵數(shù)據(jù)口程序=====</p><p>  主持人時(shí)間設(shè)定程序如下:</p><p>  ACALL DISPLAY;先在兩個(gè)時(shí)間LE

48、D上顯示R1</p><p>  JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCO</p><p>  JNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO</p><p>  JNB P3.1,BACK0;P3.1為確定鍵,如按下跳到BACKO</p><p><b>  2.4LCD簡(jiǎn)介</

49、b></p><p>  2.4.1LCD和LED的區(qū)別 </p><p>  LED為英文(Light Emitting Diode)的縮寫(xiě),是發(fā)光二極管的一種,LCD是液晶顯示器,兩者相差太多.但是用LED的點(diǎn)陣也能組成顯示器,適用于戶(hù)外大屏幕顯示,分辨率較低。LCD為英文(Liquid Crystal Display)的縮寫(xiě),即液晶顯示器,是一種數(shù)字顯示技術(shù),通過(guò)液晶和彩色過(guò)濾

50、器過(guò)濾光源,在平面面板上產(chǎn)生圖象。與傳統(tǒng)的陰極射線管LCD占用空間小,低功耗,低輻射,無(wú)閃爍,降低視覺(jué)疲勞。 LCD技術(shù)能夠顯示更加清晰,明亮的圖象。 </p><p>  LED是發(fā)光二極管 </p><p>  特點(diǎn):自發(fā)光,從遠(yuǎn)處可以看見(jiàn),價(jià)格相對(duì)較低</p><p>  缺點(diǎn);顯示的內(nèi)容少,一般是數(shù)碼,LED電子滾動(dòng)顯示,等等,很耗電,控制復(fù)雜。</p

51、><p>  由于LCD比LED的效果好,所以本設(shè)計(jì)我們選擇了LCD作為我們?cè)O(shè)計(jì)的顯示器。2.4.2單片機(jī)和分立元件的區(qū)別</p><p>  單片機(jī)相當(dāng)于一個(gè)集成電路,將一些功能都集成在一個(gè)芯片中,在一小塊芯片中能實(shí)現(xiàn)各種功能的器件。</p><p>  分立元件是指電阻\電感\(zhòng)電容等器件。這是相對(duì)于集成電路來(lái)說(shuō)的,比如一個(gè)電路,他用了一個(gè)集成電路,外加一些零件即能實(shí)

52、現(xiàn)需要的功能,而一般來(lái)說(shuō),用分立元件也能實(shí)現(xiàn),但體積可能會(huì)大一些,可靠性可能也差一些。</p><p>  通過(guò)兩者的比較,單片機(jī)明顯優(yōu)于分立元件,所以本設(shè)計(jì)我們選擇了用單片機(jī)。其系統(tǒng)硬件設(shè)計(jì)如圖2-3</p><p>  圖2-3 單片機(jī)系統(tǒng)硬件設(shè)計(jì)</p><p>  2.4.3顯示電路設(shè)計(jì)和LCD的引腳功能說(shuō)明</p><p>  液晶

53、顯示模塊是一種將液晶顯示器件、連接件、集成電路、PCB線路板、背光源、結(jié)構(gòu)件等裝配在一起的組件。英文名稱(chēng)叫“LCD Module”,簡(jiǎn)稱(chēng)“LCM”,中文稱(chēng)為“液晶顯示模塊”,其流程圖如2-4所示,實(shí)物圖如2-5所示。</p><p>  如圖2-4 LCD流程圖</p><p>  圖2-5 LCD1602實(shí)物圖</p><p>  2.4.4液晶顯示模塊</

54、p><p>  表2-6 LCD引腳功能</p><p>  VDD:電源正極,4.5-5.5V,通常使用5V電壓;</p><p>  VL:LCD對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為0-5V。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地;</p><p>

55、;  RS:MCU寫(xiě)入數(shù)據(jù)或者指令選擇端。MCU要寫(xiě)入指令時(shí),使RS為低電平;MCU要寫(xiě)入數(shù)據(jù)時(shí),使RS為高電平;</p><p>  R/W:讀寫(xiě)控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫(xiě)入數(shù)據(jù);</p><p>  E:LCD模塊使能信號(hào)控制端。寫(xiě)數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。</p><p>  D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I/

56、O口資源緊張的話(huà),該模塊也可以只使用4位數(shù)據(jù)線D4-D7接口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;</p><p>  BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測(cè)該模塊的背光電流為50mA左右;</p><p>  BLK: LED背光地端。</p><p>  數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七

57、段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(

58、COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。</p><p>  三  搶答器電路原圖及仿真</p><p><b> ?。?1搶答器原理圖</b></p><p>  搶答器電路原理框圖如圖3-1所示,其中右上部分是4個(gè)

59、七段數(shù)碼管,作為顯示輸出部分,左上部分是鐘控部分,除了S1-S8是選手控制按鈕,其余按鈕式主持人控制系統(tǒng)。</p><p>  圖3-1 搶答器電路原理框圖</p><p>  各按鍵功能介紹如下:</p><p> ?、賁ET鍵為復(fù)位鍵,按下復(fù)位鍵系統(tǒng)進(jìn)入就緒狀態(tài);</p><p> ?、贐1、B2分別為30s、60s預(yù)置時(shí)間鍵;</

60、p><p> ?、邸?”、“-”鍵可以調(diào)節(jié)時(shí)間;</p><p> ?、蹺N鍵用來(lái)確定自設(shè)時(shí)間;</p><p>  ⑤ON鍵用來(lái)確定一切就緒,按下它系統(tǒng)就進(jìn)入倒計(jì)時(shí)搶答;</p><p>  ⑥S1-S8為8個(gè)搶答按鍵。</p><p><b>  3.2仿真軟件介紹</b></p>

61、<p>  Proteus軟件簡(jiǎn)介</p><p>  Proteus組合了高級(jí)原理布圖、混合模式SPICE仿真,PCB設(shè)計(jì)以及自動(dòng)布線來(lái)實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。 ISIS是Proteus系統(tǒng)的中心,它遠(yuǎn)不僅是一個(gè)圖表庫(kù)。它是具有控制原理圖畫(huà)圖的外觀設(shè)計(jì)環(huán)境 。</p><p>  Proteus軟件是一種低投資的電子設(shè)計(jì)自動(dòng)化軟件,提供可仿真數(shù)字和模擬、交流和直流等數(shù)千種元

62、器件和多達(dá)30多個(gè)元件庫(kù)。Proteus軟件提供多種現(xiàn)實(shí)存在的虛擬儀器儀表。此外,Proteus還提供圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來(lái)。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗,盡可能減少儀器對(duì)測(cè)量結(jié)果的影響,Proteus軟件提供豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。提供Schematic Drawing、SPICE仿真與PCB設(shè)計(jì)功能,同時(shí)可以

63、仿真單片機(jī)和周邊設(shè)備,可以仿真51系列、AVR、PIC等常用的MCU,并提供周邊設(shè)備的仿真,例如373、led、示波器等。Proteus提供了大量的元件庫(kù),有RAM、ROM、鍵盤(pán)、馬達(dá)、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,編譯方面支持Keil和MPLAB等編譯器。 一臺(tái)計(jì)算機(jī)、一套電子仿真軟件,在加上一本虛擬實(shí)驗(yàn)教程,就可相當(dāng)于一個(gè)設(shè)備先進(jìn)的實(shí)驗(yàn)室。以虛代實(shí)、以軟代硬,就建立一個(gè)完善的虛擬實(shí)驗(yàn)室。在計(jì)算機(jī)

64、上學(xué)習(xí)電工基礎(chǔ),模擬電路、</p><p>  5.保存文件。3)使用Proteus軟件的便利。  1.培養(yǎng)學(xué)習(xí)者實(shí)驗(yàn)設(shè)計(jì)能力,并降低科研投入,不擔(dān)心燒壞設(shè)備和元器件。  2.支持創(chuàng)新性設(shè)計(jì)?! ?.培養(yǎng)團(tuán)隊(duì)合作能力?! ?.提高實(shí)驗(yàn)質(zhì)量,擴(kuò)展學(xué)習(xí)者的思路和提高學(xué)習(xí)者的學(xué)習(xí)興趣。</p><p><b>  3.3仿真測(cè)試效果</b></p>

65、<p>  經(jīng)測(cè)試達(dá)到了設(shè)計(jì)的效果,下面用發(fā)光LED代替報(bào)警系統(tǒng),則可以看到測(cè)試效果。</p><p>  操作說(shuō)明:主持人按下復(fù)位鍵SET,如果題目比較容易調(diào)節(jié)搶答時(shí)間為22s,按下B1鍵,然后調(diào)節(jié)“-”按鈕,顯示從30的倒計(jì)時(shí),等顯示時(shí)間減到22時(shí),停止按動(dòng)“-”按鈕,再按EN鍵確定,然后按下ON開(kāi)始搶答,同時(shí)揚(yáng)聲器響,顯示如圖3-2所示;5號(hào)選手按下鍵搶答成功,立即進(jìn)入倒計(jì)時(shí)答題狀態(tài)如圖3-3所示

66、;如果在所設(shè)時(shí)間內(nèi)選手未能按時(shí)答題,則發(fā)出報(bào)警,如圖3-4和3-5所示。若8位選手均未能在設(shè)定時(shí)間內(nèi)正常搶答,系統(tǒng)同樣進(jìn)入報(bào)警狀態(tài),本系統(tǒng)所有的報(bào)警時(shí)間都設(shè)置為5s。</p><p>  圖3-2 搶答器搶答狀態(tài)</p><p>  圖3-3 搶答器倒計(jì)時(shí)答題狀態(tài)</p><p>  圖3-4 搶答器報(bào)警狀態(tài)</p><p>  圖3-5 搶

67、答器報(bào)警狀態(tài)終</p><p>  OK EQU 20H;搶答開(kāi)始標(biāo)志位</p><p>  RING EQU 22H;響鈴標(biāo)志位</p><p><b>  ORG 0000H</b></p><p><b>  AJMP MAIN</b></p><p><b>

68、;  ORG 0003H</b></p><p>  AJMP INT0SUB</p><p><b>  ORG 000BH</b></p><p>  AJMP T0INT</p><p><b>  ORG 0013H</b></p><p>  AJMP

69、INT1SUB</p><p><b>  ORG 001BH</b></p><p>  AJMP T1INT</p><p><b>  ORG 0040H</b></p><p>  MAIN: MOV R1,#30;初設(shè)搶答時(shí)間為30s</p><p>  MOV R

70、2,#60;初設(shè)答題時(shí)間為60s</p><p>  MOV TMOD,#11H;設(shè)置未定時(shí)器/模式1</p><p>  MOV TH0,#0F0H</p><p>  MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H;5

71、0ms為一次溢出中斷</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>

72、<p>  SETB EX1;允許四個(gè)中斷,T0/T1/INT0/INT1</p><p><b>  CLR OK</b></p><p><b>  CLR RING</b></p><p><b>  SETB TR1</b></p><p><b>

73、;  SETB TR0;</b></p><p>  START: MOV R5,#0BH</p><p>  MOV R4,#0BH</p><p>  MOV R3,#0BH</p><p>  ACALL DISPLAY;未開(kāi)始搶答時(shí)候顯示FFF</p><p>  JB P3.0,NEXT;dddd

74、ddd</p><p>  ACALL DELAY</p><p>  JB P3.0,NEXT;去抖動(dòng),如果"開(kāi)始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢(xún)</p><p>  ACALL BARK;按鍵發(fā)聲</p><p><b>  MOV A,R1</b></p><p>

75、;  MOV R6,A;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間</p><p>  SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢(xún)搶答</p><p>  MOV R7,#01H ;讀搶答鍵數(shù)據(jù)信號(hào)標(biāo)志,這里表示只讀一次有用信號(hào)</p><p>  MOV R3,#0AH;搶答只顯示計(jì)時(shí),滅號(hào)數(shù)</p><p>  A

76、JMP COUNT;進(jìn)入倒計(jì)時(shí)程序,"查詢(xún)有效搶答的程序"在COUNT里面</p><p>  NEXT: JNB P1.0,FALSE1</p><p>  JNB P1.1,FALSE2</p><p>  JNB P1.2,FALSE3</p><p>  JNB P1.3,FALSE4</p><

77、;p>  JNB P1.4,FALSE5</p><p>  JNB P1.5,FALSE6</p><p>  JNB P1.6,FALSE7</p><p>  JNB P1.7,FALSE8</p><p>  AJMP START;=====非法搶答處理程序=====</p><p>  FALSE1:

78、MOV R3,#01H</p><p>  AJMP ERROR</p><p>  FALSE2: MOV R3,#02H</p><p>  AJMP ERROR</p><p>  FALSE3: MOV R3,#03H</p><p>  AJMP ERROR</p><p>  FAL

79、SE4: MOV R3,#04H</p><p>  AJMP ERROR</p><p>  FALSE5: MOV R3,#05H</p><p>  AJMP ERROR</p><p>  FALSE6: MOV R3,#06H</p><p>  AJMP ERROR</p><p>

80、  FALSE7: MOV R3,#07H</p><p>  AJMP ERROR</p><p>  FALSE8: MOV R3,#08H</p><p>  AJMP ERROR;=====INT0(搶答時(shí)間R1調(diào)整程序)=====</p><p>  INT0SUB:MOV A,R1</p><p>  MO

81、V 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 D

82、ISPLAY;先在兩個(gè)時(shí)間LED上顯示R1</p><p>  JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCO</p><p>  JNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO</p><p>  JNB P3.1,BACK0;P3.1為確定鍵,如按下跳到BACKO</p><p>  AJMP IN

83、T0SUB</p><p>  INC0: MOV A,R1</p><p>  CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。</p><p>  MOV R1,#00H</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB<

84、/p><p>  ADD0: INC R1</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  DEC0: MOV A,R1</p><p>  JZ SETR1;如果R1為0, R1就置99,</p><p><b>  DEC

85、 R1</b></p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  SETR1: MOV R1,#63H</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  BAC

86、K0: RETI ;=====INT1(回答時(shí)間R2調(diào)整程序)=====</p><p>  INT1SUB:MOV A,R2</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV R5,A</b></p>&l

87、t;p><b>  MOV R4,B</b></p><p>  MOV R3,#0AH</p><p>  ACALL DISPLAY</p><p>  JNB P3.4,INC1</p><p>  JNB P3.5,DEC1</p><p>  JNB P3.1,BACK1</

88、p><p>  AJMP INT1SUB</p><p>  INC1: MOV A,R2</p><p>  CJNE A,#63H,ADD1</p><p>  MOV R2,#00H</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p>

89、<p>  ADD1: INC R2</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  DEC1: MOV A,R2</p><p><b>  JZ SETR2</b></p><p><b>  DEC R2

90、</b></p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  SETR2: MOV R2,#63H</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  BACK1:

91、 RETI ;=====倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)=====</p><p>  REPEAT:MOV A,R2 ;使用錦囊時(shí)重新計(jì)時(shí)</p><p><b>  MOV R6,A</b></p><p><b>  CLR RING </b></p><p>  COUNT:

92、 MOV R0,#00H;重置定時(shí)器中斷次數(shù)</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H;重置定時(shí)器</p><p>  RECOUNT:MOV A,R6;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6</p><p>  MOV B,#0AH</p><p>

93、;  DIV AB;除十分出個(gè)位/十位</p><p>  MOV 30H,A;十位存于(30H)</p><p>  MOV 31H,B;個(gè)位存于(31H)</p><p>  MOV R5,30H;取十位</p><p>  MOV R4,31H;取個(gè)位</p><p><b>  MOV A,R6<

94、;/b></p><p>  SUBB A,#07H</p><p>  JNC LARGER;大于5s跳到LARGER,小于等于5s會(huì)提醒</p><p><b>  MOV A,R0</b></p><p>  CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行</p><p>&

95、lt;b>  CLR RING </b></p><p>  AJMP CHECK</p><p>  FULL: CJNE A,#14H,CHECK;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b>  SETB RING</b></p><p><b>  MOV A

96、,R6</b></p><p>  JZ QUIT;計(jì)時(shí)完畢</p><p>  MOV R0,#00H</p><p>  DEC R6;一秒標(biāo)志減1</p><p>  AJMP CHECK</p><p>  LARGER: MOV A,R0</p><p>  CJNE A,

97、#14H,CHECK;如果1s向下運(yùn)行,否者跳到查"停/顯示"</p><p>  DEC R6;計(jì)時(shí)一秒R6自動(dòng)減1</p><p>  MOV R0,#00H</p><p>  CHECK: JNB P3.1,QUIT;如按下停止鍵退出</p><p>  JNB OK,CHECKK ;只在回答倒計(jì)時(shí)才有效</

98、p><p>  AJMP NEXTT</p><p>  CHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊</p><p>  NEXTT: ACALL DISPLAY</p><p>  JB OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢(xún)搶答,否者跳過(guò)查詢(xún)繼續(xù)倒數(shù)(這</p><p><b>

99、;  里起到鎖搶答作用)</b></p><p>  AJMP RECOUNT</p><p><b>  ACCOUT:</b></p><p><b>  MOV A,36H</b></p><p>  JNB ACC.0,TRUE1</p><p>  JN

100、B ACC.1,TRUE2</p><p>  JNB ACC.2,TRUE3</p><p>  JNB ACC.3,TRUE4</p><p>  JNB ACC.4,TRUE5</p><p>  JNB ACC.5,TRUE6</p><p>  JNB ACC.6,TZ1</p><p&g

101、t;  JNB ACC.7,TZ2</p><p>  AJMP RECOUNT</p><p>  TZ1:JMP TRUE7</p><p>  TZ2:JMP TRUE8 </p><p>  QUIT: CLR OK;如果按下了"停止鍵"執(zhí)行的程序</p><p><b>  CL

102、R RING</b></p><p>  AJMP START;=====正常搶答處理程序=====</p><p>  TRUE1: ACALL BARK</p><p><b>  MOV A,R2</b></p><p>  MOV R6,A;搶答時(shí)間R2送R6</p><p>

103、  MOV R3,#01H</p><p>  CLR OK;因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答</p><p>  AJMP COUNT</p><p>  TRUE2:ACALL BARK</p><p><b>  MOV A,R2</b></p><p><b>  MO

104、V R6,A</b></p><p>  MOV R3,#02H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE3:ACALL BARK</p><p><b>  MOV A,R2</b>

105、</p><p><b>  MOV R6,A</b></p><p>  MOV R3,#03H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE4:ACALL BARK</p><

106、p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#04H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>

107、  TRUE5:ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#05H</p><p><b>  CLR OK</b></p><p&g

108、t;  AJMP COUNT</p><p>  TRUE6: ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#06H</p><p><b> 

109、 CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE7:ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,

110、#07H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE8:ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</

111、b></p><p>  MOV R3,#08H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT;=====犯規(guī)搶答程序=====</p><p>  ERROR: MOV R0,#00H</p><p>  MOV TH1,#3CH</p&

112、gt;<p>  MOV TL1,#0B0H</p><p>  MOV 34H,R3;犯規(guī)號(hào)數(shù)暫存與(34H)</p><p>  HERE: MOV A,R0</p><p>  CJNE A,#06H,FLASH;0.3s向下運(yùn)行->滅并停響</p><p><b>  CLR RING </b>

113、;</p><p>  MOV R3,#0AH</p><p>  MOV R4,#0AH</p><p>  MOV R5,#0AH;三燈全滅</p><p>  AJMP CHECK1</p><p>  FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)<

114、/p><p><b>  SETB RING</b></p><p>  MOV R0,#00H</p><p>  MOV R3,34H;取回號(hào)數(shù)</p><p>  MOV R5,#0BH</p><p>  MOV R4,#0BH;顯示FF和號(hào)數(shù)</p><p>  AJ

115、MP CHECK1</p><p>  CHECK1: JNB P3.1,QUIT1</p><p>  ACALL DISPLAY</p><p><b>  AJMP HERE</b></p><p>  QUIT1: CLR RING</p><p><b>  CLR OK<

116、;/b></p><p>  AJMP START;=====顯示程序=====</p><p>  DISPLAY:MOV DPTR,#DAT1</p><p><b>  MOV A,R3</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0f

117、eH</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY2</p><p>  MOV DPTR,#DAT2</p><p><b>  MOV A,R5</b></p><p>  MOVC A,@A+DPTR</p>

118、;<p>  MOV P2,#0fdH</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY2</p><p><b>  MOV A,R4</b></p><p>  MOVC A,@A+DPTR</p><p> 

119、 MOV P2,#0fbH</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY2</p><p><b>  RET</b></p><p>  DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71

120、H </p><p>  ;"滅","1","2","3","4","5","6","7","8","9","滅","F"</p><p>  DAT2

121、:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p>  ;====加減時(shí)間延時(shí)(起到不會(huì)按下就加N個(gè)數(shù))======</p><p>  DELAY1: MOV 35H,#08H</p><p>  LOOP0: ACALL DISPLAY</p><p>  DJNZ 35

122、H,LOOP0</p><p><b>  RET</b></p><p>  ;=====延時(shí)4236個(gè)機(jī)器周期(去抖動(dòng)用到)=====</p><p>  DELAY: MOV 32H,#12H</p><p>  LOOP: MOV 33H,#0AFH</p><p>  LOOP1: DJ

123、NZ 33H,LOOP1</p><p>  DJNZ 32H,LOOP</p><p>  RET;=====延時(shí)4236個(gè)機(jī)器周期(顯示用到)=====</p><p>  DELAY2: MOV 32H,#43H</p><p>  LOOP3: MOV 33H,#1EH</p><p>  MOV A,R7 ;

124、</p><p>  JNZ AAAA1 ;沒(méi)讀到有效數(shù)據(jù)時(shí)繼續(xù)轉(zhuǎn)到AAAA1</p><p>  LOOP2: DJNZ 33H,LOOP2</p><p>  DJNZ 32H,LOOP3</p><p>  RET;=====讀搶答按鍵數(shù)據(jù)口程序=====</p><p>  AAAA1: MOV A,P1<

125、;/p><p>  CJNE A,#0FFH,AA1 ;當(dāng)不全為1時(shí)的數(shù)據(jù)為有效數(shù)據(jù)</p><p>  AA0: MOV 36H,A ;將有效數(shù)據(jù)送到36H暫存</p><p>  AJMP LOOP2</p><p>  AA1: DEC R7 </p><p>  AJMP AA0;=====發(fā)聲程序=====<

126、;/p><p>  BARK: SETB RING</p><p>  ACALL DELAY1</p><p>  ACALL DELAY1</p><p>  CLR RING;按鍵發(fā)聲</p><p>  RET;=====TO溢出中斷(響鈴程序)=====</p><p>  T0INT:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論