版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)報(bào)告---八路智力競(jìng)賽搶答器
- 課程設(shè)計(jì)---八路智力競(jìng)賽搶答器的設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)---八路智力競(jìng)賽搶答器
- 單片機(jī)課程設(shè)計(jì)--八路智力競(jìng)賽搶答器
- 課程設(shè)計(jì)----8路智力競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---智力競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---智力競(jìng)賽搶答器設(shè)計(jì)
- 智力搶答器課程設(shè)計(jì)--智力競(jìng)賽搶答裝置的設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---智力競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)報(bào)告
- 搶答器課程設(shè)計(jì)--八路搶答器
- 數(shù)電課程設(shè)計(jì)---8路智力競(jìng)賽搶答器
- 數(shù)電課程設(shè)計(jì)--四路智力競(jìng)賽搶答器設(shè)計(jì)
- 八路搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字智力競(jìng)賽搶答器的設(shè)計(jì)
- 八路搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---八路搶答器
評(píng)論
0/150
提交評(píng)論