版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機課程設計說明書 </p><p> 題目:搶答器系統(tǒng)設計</p><p> 課程名稱: 《單片機技術》 </p><p> 學 院: 電子信息與電氣工程學院 </p><p><b> 2014年6月</b></p><p>
2、; 課 程 設 計 任 務 書</p><p><b> 搶答器系統(tǒng)設計</b></p><p> 摘 要:利用單片機系統(tǒng)來設計搶答器,使以上問題得以解決,即使兩組的搶答時間相差甚小,也可分辨出哪組優(yōu)先答題。此次設計使用AT89S52單片機為核心控制元件,設計一個簡易的搶答器,與數(shù)碼管、報警器等構成八路搶答器,利用了單片機的延時電路、按鍵復位電路、時鐘電路、定
3、時/中斷電路等。設計的搶答器具有實時顯示搶答選手的號碼和搶答時間的特點,而復位電路,則使其能再開始新的一輪答題和比賽,與此同時還利用匯編語言編程,使其能夠?qū)崿F(xiàn)一些基本的功能。</p><p> 關鍵詞:單片機、搶答器、數(shù)碼管、報警器</p><p><b> 目 錄</b></p><p><b> 1. 設計背景1</
4、b></p><p><b> 2. 設計方案2</b></p><p> 2.1 總體設計2</p><p><b> 3 方案設計2</b></p><p> 3.1 電源電路設計2</p><p> 3.2 時鐘電路設計5</p>
5、<p> 3.3 復位電路設計6</p><p> 3.4 搶答電路設計6</p><p> 3.5 程序設計8</p><p> 3.6 仿真與調(diào)試8</p><p> 3.7 PCB制作過程10</p><p> 4. 結果與結論11</p><p>&
6、lt;b> 4.1結果11</b></p><p><b> 4.2結論12</b></p><p> 5. 收獲與致謝12</p><p> 6. 參考文獻13</p><p><b> 7. 附件14</b></p><p><
7、b> 1. 設計背景</b></p><p> 本課題利用AT89S52單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間和選手號碼。用開關做鍵盤輸出,揚聲器發(fā)生提示。系統(tǒng)達到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可是在1-30
8、s設定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法</p><p><b> 2.設計方案</b></p><p><b> 2.1 總體設計</b></p><p> 本設計是采用單片機設計的比賽用搶答器系
9、統(tǒng)。它具有電路簡單、功能齊全、制作成本低、性價比高等特點,是一種經(jīng)濟、實用的比賽用搶答器。硬件部分主要由單片機、LED 顯示器、發(fā)光二極管、聲音報警器、主持人操作鍵盤和其它基本外圍電子電路組成。采用Proteus模擬硬件電路、KEIL軟件進行編程相結合以達到理論模擬的效果。根據(jù)課程設計項目要求該系統(tǒng)所需要的器件在Proteus中基本都可以找出來。KEIL編出的程序也能與Proteus結合。因此該系統(tǒng)可以實現(xiàn)。以AT89S52為核心,連接
10、LED數(shù)碼管,晶振電路,開關電路組成。</p><p><b> 圖1 系統(tǒng)框圖</b></p><p><b> 3方案設計</b></p><p><b> 3.1電源電路設計</b></p><p> 本設計是要設計一個+5V直流電源供電,這里沒有直接的+5V電
11、壓,而直流電源的輸入電壓為220V的電網(wǎng)電壓,在正常情況下,這一電網(wǎng)電壓是遠遠的高于本設計所需的電壓值,因而需要先使用變壓器,將220V的電網(wǎng)電壓降低后,再進行下一階段的處理。</p><p> 變壓器是這一電源電路起始部分,將220V的電網(wǎng)電壓轉變?yōu)楸驹O計所需的較低的電壓,就可以進行下一階段的整流部分。一般規(guī)定v1為變壓器的高壓側,v2為變壓器的低壓側,v1側的線圈要比v2側的線圈要多,這樣就可以將220V的
12、電網(wǎng)電壓降低</p><p><b> 圖2 變壓器</b></p><p> 單相橋式整流電路,就是將交流電網(wǎng)電壓轉換為所需電壓,整流電路由四只整流二極管組成。下面簡單介紹一下單相橋式整流電路的工作原理,為簡便起見,這里所選的二極管都是理想的二極管,二極管正向?qū)〞r電阻為零,反向?qū)〞r電阻無窮大。在v2的正半周,電流從變壓器副邊線圈的上端流出,經(jīng)過二極管D1,再
13、由二極管D4流回變壓器,所以D1、D4正向?qū)ǎ珼2、D3反向截止,產(chǎn)生一個極性為上正下負的輸出電壓。在v2的負半周,其極性正好相反,電流從變壓器副邊線圈的下端流出,經(jīng)過二極管D2,再由二極管D3流回變壓器,所以D1、D4反向截止,D2、D3正向?qū)ā蚴秸麟娐防昧硕O管的單向?qū)щ娦?,利用四個二極管,是它們交替導通,從而負載上始終可以得到一個單方向的脈動電壓。單相橋式整流電路如圖3所示:</p><p>
14、圖 3 單相橋式整流電路</p><p> 本設計的濾波電路采用的是電解電容和二極管并聯(lián)方式濾波,簡單的講就是電容兩端電壓升高時,電容充電,電壓降低時,電容放電,讓電壓降低時的坡度變得平緩,從而起到濾波的作用。這里選用電解電容是因為電解電容單位體積的電容量非常大,能比其它種類的電容大幾十到數(shù)百倍,并且其額定的容量可以做到非常大,價格比其它種類相比具有相當大的優(yōu)勢,因為其組成材料都是普通的工業(yè)材料,比如鋁等等。電
15、解電容并聯(lián)二極管,有效防止了電壓反相。濾波電路如圖4所示:</p><p><b> 圖 4 濾波電路</b></p><p> 三端穩(wěn)壓器MC78M05CT將輸出電壓穩(wěn)定在+5V上,三端穩(wěn)壓器如圖5所示:</p><p> 圖 5 三端穩(wěn)壓器:</p><p><b> 總電源電路圖如下</b&
16、gt;</p><p> 圖6直流穩(wěn)壓電源電路</p><p> 3.2 時鐘電路設計</p><p> AT89S52單片機內(nèi)部由一個用于構成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為51單片機的引腳XTAL1,輸出為XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構成了一個穩(wěn)定的自激振蕩器</p><p> 電路
17、中的電容C1和C2的典型值通常取為30pF左右,對外接電容的值雖然沒有嚴格的要求,但是電容的大小會影響石英晶體振蕩器頻率的高低,振蕩器的穩(wěn)定性和起振的快速性。晶振的振蕩器的頻率范圍通常是在1.2 MHz-12 MHz之間,晶振的頻率越高,則系統(tǒng)的時鐘頻率也就越高,單片機的運行速度也就越快,晶振和電容應該盡可能安裝得與單片機芯片靠近,以減少寄生電容</p><p> AT89S52單片機常選擇
18、振蕩器的頻率為是12MHz的石英晶體。隨著集成電路制造工藝的發(fā)展,單片機的時鐘頻率也在逐步提高,現(xiàn)在某些高速單片機芯片的時鐘頻率以達40MHz。AT89S52內(nèi)部時鐘電路的內(nèi)部時鐘方式的振蕩器</p><p><b> 圖7 時鐘電路圖</b></p><p> 3.3 復位電路設計</p><p> 復位方法一般有上電自動復位和外部按
19、鍵手動復位,單片機在時鐘電路工作以后, 在RESET端持續(xù)給出2個機器周期的高電平時就可以完成復位操作。例如使用晶振頻率為12MHz時,則復位信號持續(xù)時間應不小于2us。本設計采用的是外部手動按鍵復位電路。</p><p><b> 圖8 復位電路圖</b></p><p> 3.4 搶答電路設計</p><p> P3.3接口的開關按下
20、意味著答題結束,P3.4接口開關表示給搶答相應組加上一分,P3.5接口開關按下表示相應組減去一分。</p><p> 裁判示意開始搶答、有組搶答成功、違規(guī)搶答、最后5s倒計時都會觸發(fā)蜂鳴器發(fā)出警報。P3.6為蜂鳴器控制口。 </p><p> 圖9 加減分電路及蜂鳴器報警電路</p><p> P1.0和P1.7由裁判控制,分別是搶答開始和停止鍵。P1.1-P
21、1.6是6組搶答的輸入口,按下按鈕搶答。 </p><p> 圖10 搶答電路及裁判控制開始停止電路</p><p><b> 3.5 程序設計</b></p><p><b> Y</b></p><p><b> N</b></p><p&g
22、t;<b> N</b></p><p><b> Y</b></p><p> 圖11 程序流程圖</p><p> 3.6 仿真與調(diào)試</p><p> 在Proteus軟件中搭建仿真電路,并在軟件Keil中用匯編語言編程并將編譯的無誤。</p><p>
23、 程序轉換成十六進制的hex文件導入到Proteus中。經(jīng)過反復調(diào)整和修改仿真。</p><p> 圖12 搶答開始 </p><p> 允許搶答后,開始倒計時從15s直到0s。在最后5s蜂鳴器會發(fā)出警報。</p><p> 圖13 搶答倒計時</p><p> 第一組搶答,答題時間有30s,在最后5s蜂鳴器會發(fā)出警報。<
24、;/p><p> 圖14 第一組答題及答題倒計時</p><p> 若還沒有允許搶答就有人按下?lián)尨鹌?,那么蜂鳴器會發(fā)出警報,并顯示是哪一組違規(guī)搶答。</p><p> 如圖為第一組回答正確加一分</p><p> 圖15 第一組答題正確加一分</p><p> 如圖為第一組回答錯誤減一分。</p>
25、<p> 圖16 第一組答題錯誤減一分</p><p> 3.7 PCB制作過程</p><p> 1、打印電路板。將繪制好的電路板用轉印紙打印出來,注意滑的一面面向自己,一般打印兩張電路板,即一張紙上打印兩張電路板。在其中選擇打印效果最好的制作線路板。</p><p> 2、裁剪覆銅板,用感光板制作電路板全程圖解,也就是兩面都覆有銅膜的線路板
26、,將覆銅板裁成電路板的大小,不要過大,以節(jié)約材料。</p><p> 3、預處理覆銅板。用細砂紙把覆銅板表面的氧化層打磨掉,以保證在轉印電路板時,熱轉印紙上的碳粉能牢固的印在銅板上,打磨好的標準是板面光亮,沒有明顯污漬。</p><p> 4、轉印電路板。將打印好的電路板裁剪成合適大小,把印有電路板的一面貼在覆銅板上,對齊好后把覆銅板放入熱轉印機,放入時一定要保證轉印紙沒有錯位。一般來
27、說經(jīng)過2-3次轉印,電路板就能很牢固的轉印在覆銅板上。熱轉印機事先就已經(jīng)預熱,溫度設定在160-200攝氏度,由于溫度很高,操作時注意安全!</p><p> 5、腐蝕線路板。先檢查一下電路板是否轉印完整,若有少數(shù)沒有轉印好的地方可以用黑色油性筆修補。然后就可以腐蝕了,等線路板上暴露的銅膜完全被腐蝕掉時,將線路板從腐蝕液中取出清洗干凈,這樣一塊線路板就腐蝕好了。腐蝕液的成分為濃鹽酸、濃雙氧水、水,比例為1:2:
28、3,在配制腐蝕液時,先放水,再加濃鹽酸、濃雙氧水,若操作時濃鹽酸、濃雙氧水或腐蝕液不小心濺到皮膚或衣物上要及時用清水清洗,由于要使用強腐蝕性溶液,操作時一定注意安全!</p><p> 6、線路板鉆孔。線路板上是要插入電子元件的,所以就要對線路板鉆孔了。依據(jù)電子元件管腳的粗細選擇不同的鉆針,在使用鉆機鉆孔時,線路板一定要按穩(wěn),鉆機速度不能開的過慢,請仔細看操作人員操作。</p><p>
29、 7、線路板預處理。鉆孔完后,用細砂紙把覆在線路板上的墨粉打磨掉,用清水把線路板清洗干凈。水干后,用松香水涂在有線路的一面,為加快松香凝固,我們用熱風機加熱線路板,只需2-3分鐘松香就能凝固。</p><p> 8、焊接電子元件。焊接完板上的電子元件。</p><p><b> 4. 結果與結論</b></p><p><b>
30、 4.1結果</b></p><p> 通過對電路的仿真,可以看出基于AT89S52單片機控制的搶答器在PROTEUS軟件上可以很好的實現(xiàn)搶答報警、搶答成功顯示、搶答倒計時等一系列功能。</p><p> 當仿真開始運行時,各個模塊處于初始狀態(tài)。此時顯示器并無狀態(tài)顯示,但此時搶答鍵和蜂鳴器都處于開啟狀態(tài),若此時有選手按下?lián)尨疰I,則蜂鳴器會發(fā)出報警聲,并且在數(shù)碼管上顯示犯規(guī)
31、的選手的編號。主持人重新按下開始鍵,此時表示搶答正式開始,并且數(shù)碼管顯示30秒倒計時,同時蜂鳴器發(fā)出聲音提醒選手搶答開始了。選手搶答成功,同時也進入到倒計時30秒答題時間。并且做成pcb.</p><p><b> 4.2結論</b></p><p> 本課程設計的六路多功能搶答器采用了通用的電子元器件,利用AT89S52單片機及外圍接口實現(xiàn)搶答系統(tǒng),利用單片機的
32、定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結合起來。整體性好,人性化強、可靠性高,實現(xiàn)了數(shù)字顯示控制的智能化,是各個需要顯示數(shù)字或廣告宣傳的有力工具。</p><p> 通過查資料和搜集有關的文獻,培養(yǎng)了自學能力和動手能力。在以往的傳統(tǒng)的學習模式下,我們可能會記住很多的書本知識,但是通過畢業(yè)論文,我們學會了如何將學到的知識轉化為自己的東西,并且由原先的被動的接受知識轉換為主動的尋求知識,這可以說是學習方法
33、上的一個很大的突破。</p><p> 整個設計通過了軟件和硬件上的設計。在這次設計中遇到了很多實際性的問題,在實際設計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。我在此次課程設計中,主要負責電路板的印制與元器件的焊接,看似簡單的事情,卻給我?guī)砹撕芏嗦闊?。我在焊接時由于焊點掌握的大小不夠好,焊點過大,造成電路短路,焊點太小,以至
34、于虛焊。這次切實的操作,讓我學到很多。</p><p><b> 5. 收獲與致謝</b></p><p> 課程設計是對我知識運用能力的一次全面的考核,也是對我進行科學研究基本功的訓練,培養(yǎng)我綜合運用所學知識獨立地分析問題和解決問題的能力,為以后撰寫專業(yè)學術論文和工作打下良好的基礎。這除了自身的努力外,與各位老師、同學和朋友的關心、支持和鼓勵是分不開的。<
35、/p><p> *老師指導我的課程設計,他的這種無私奉獻的敬業(yè)精神令人欽佩,在此我向他表示我誠摯的謝意。此外,我還要感謝在課程設計中給予我?guī)椭母魑煌瑢W。由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方。如果沒有*老師的督促指導以及周圍同學的幫助,想要完成這個設計是非常不易的。正是由于你們的幫助和支持,我才能克服一個個的困難和疑惑,直至課程設計的順利完成。正是由于他們,我才能在各方面取得顯著的進步,在此向他們表示我由衷的
36、謝意。</p><p><b> 6. 參考文獻</b></p><p> [1] 張毅剛. 單片機原理及應用[M]. 北京:高等教育出版社,2009.</p><p> [2] 杜尚豐. CAN總線測控技術及其應用[M]. 北京:電子工業(yè)出版社,2007.</p><p> [3] 杜樹春. 單片機C語言和匯編
37、語言混合編程詳解[M]. 北京:北京航空航天大學出版社,2006.</p><p> [4] 胡漢才. 單片機原理及其接口技術[M]. 北京:清華大學出版社,1996.</p><p> [5] 施隆照. 數(shù)碼管顯示驅(qū)動和鍵盤掃描控制器CH51及其應用[J]. 國外電子元器件,2004.</p><p> [6] 謝嘉奎. 電子線路[M]. 北京:高等教育出版
38、社2004. .</p><p> [7] 臧春華. 電子線路設計與應用[M]. 北京:高等教育出版社,2005.</p><p> [8] 王守中,聶元銘. 51單片機開發(fā)與典型事例[M]. 北京:人民郵電出版社,2009.</p><p> [9] 陳粵初. 單片機應用系統(tǒng)技術與實踐[M]. 北京:北京航空航天大學出版社,1991.</p>
39、<p> [10] 何立民. 單片機應用技術選編[M]. 北京:北京航空航天大學出版社,1993.</p><p><b> 7. 附件</b></p><p> 單片機技術課程設計元器件清單</p><p><b> 附圖</b></p><p><b> 附圖一 原
40、理電路圖</b></p><p><b> 附圖二 PCB</b></p><p><b> 附圖三 熱轉印圖</b></p><p> 附圖四 腐蝕的PCB</p><p> 附圖五 PCB焊接面</p><p><b> 附圖六 實物圖&l
41、t;/b></p><p><b> 源程序清單</b></p><p> OK EQU 20H</p><p> RING EQU 22H</p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</
42、b></p><p><b> ORG 000BH</b></p><p> AJMP T0INT</p><p><b> ORG 0013H</b></p><p> AJMP INT1SUB</p><p><b> ORG 001BH<
43、/b></p><p> AJMP T1INT</p><p><b> ORG 0040H</b></p><p> MAIN: MOV R1,#0FH</p><p> MOV R2,#01EH</p><p> MOV TMOD,#11H;設置未定時器/模式1</p
44、><p> MOV TH0,#0F0H</p><p> MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H;50ms為一次溢出中斷</p><p><b> SETB EA</b></p>
45、<p><b> SETB ET0</b></p><p><b> SETB ET1</b></p><p> SETB EX1;允許3個中斷,T0/T1/INT0/INT1</p><p><b> CLR OK</b></p><p><b&g
46、t; CLR RING</b></p><p><b> SETB TR1</b></p><p> SETB TR0;開始就運行定時器,初始顯示888如果想重新計數(shù),重置TH1/TL1 </p><p> ;=====查詢程序=====</p><p> START: MOV R5,#00H
47、</p><p> MOV R4,#00H</p><p> MOV R3,#00H</p><p> ACALL DISPLAY;未開始搶答時候顯示888</p><p> JB P1.0,NEXT</p><p> ACALL DELAY</p><p> JB P1.0,NEX
48、T;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢</p><p> ACALL BARK;按鍵發(fā)聲</p><p><b> MOV A,R1</b></p><p> MOV R6,A;送R1->R6,因為R1中保存了搶答時間</p><p> SETB OK;搶答標志位
49、,用于COUNT只程序中判斷是否查詢搶答</p><p> MOV R3,0AH;搶答只顯示計時,滅號數(shù)</p><p> AJMP COUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT里面</p><p> NEXT:JNB P1.1,FALSE1</p><p> JNB P1.2,FALSE2<
50、;/p><p> JNB P1.3,FALSE3</p><p> JNB P1.4,FALSE4</p><p> JNB P1.5,FALSE5</p><p> JNB P1.6,FALSE6</p><p> AJMP START</p><p> ;=====非法搶答處理程序=
51、====</p><p> FALSE1: ACALL BARK;按鍵發(fā)聲</p><p> MOV R3,#01H</p><p> AJMP ERROR</p><p> FALSE2: ACALL BARK</p><p> MOV R3,#02H</p><p> AJMP
52、ERROR</p><p> FALSE3: ACALL BARK</p><p> MOV R3,#03H</p><p> AJMP ERROR</p><p> FALSE4: ACALL BARK</p><p> MOV R3,#04H</p><p> AJMP ERRO
53、R</p><p> FALSE5: ACALL BARK</p><p> MOV R3,#05H</p><p> AJMP ERROR</p><p> FALSE6: ACALL BARK</p><p> MOV R3,#06H</p><p> AJMP ERROR<
54、;/p><p> ;=====INT1(答題對錯加減分數(shù)程序)=====</p><p> INT1SUB:MOV R4,#0AH</p><p> MOV R5,#0AH</p><p> JNB P3.4,INC1</p><p> JNB P3.5,DEC1</p><p> JN
55、B P1.7,BACK1</p><p> ACALL DISPLAY</p><p> AJMP INT1SUB</p><p><b> MOV A,R3</b></p><p> SUBB A,#01H</p><p><b> JZ XXY1</b><
56、/p><p> SUBB A,#02H</p><p><b> JZ XXY2</b></p><p> SUBB A,#03H</p><p><b> JZ XXY3</b></p><p> SUBB A,#04H</p><p><
57、;b> JZ XXY4</b></p><p> SUBB A,#05H</p><p><b> JZ XXY5</b></p><p> SUBB A,#06H</p><p><b> JZ XXY6</b></p><p> XXY1:M
58、OV R7,41H</p><p> XXY2:MOV R7,42H</p><p> XXY3:MOV R7,43H</p><p> XXY4:MOV R7,44H</p><p> XXY5:MOV R7,45H</p><p> XXY6:MOV R7,46H</p><p>
59、 INC1:INC R7</p><p> CJNE R3,#01H,L1</p><p> MOV 51H,R7</p><p> L1:CJNE R3,#02H,L2</p><p> MOV 52H,R7</p><p> L2:CJNE R3,#03H,L3</p><p>
60、 MOV 53H,R7</p><p> L3:CJNE R3,#04H,L4</p><p> MOV 54H,R7</p><p> L4:CJNE R3,#05H,L5</p><p> MOV 55H,R7</p><p> L5:CJNE R3,#06H,LL</p><p&g
61、t; MOV 56H,R7</p><p> LL:ACALL DELAY1</p><p> AJMP INT1SUB</p><p> DEC1:DEC R7</p><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> BACK1:
62、RETI</p><p> ;=====倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=====</p><p> COUNT: MOV R0,#00H;重置定時器中斷次數(shù)</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H;重置定時器</p><p> RECOUNT
63、:MOV A,R6;R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6</p><p> MOV B,#0AH</p><p> DIV AB;除十分出個位/十位</p><p> MOV 30H,A;十位存于(30H)</p><p> MOV 31H,B;個位存于(31H)</p><p> MOV
64、 R5,30H;取十位</p><p> MOV R4,31H;取個位</p><p><b> MOV A,R6</b></p><p> SUBB A,#07H</p><p> JNC LARGER;大于5s跳到LARGER,小于等于5s會提醒</p><p><b>
65、MOV A,R0</b></p><p> CJNE A,#0AH,FULL;1s中0.5s向下運行</p><p><b> CLR RING</b></p><p> AJMP CHECK</p><p> FULL:CJNE A,#14H,CHECK;下面時1s的情況,報警,顯示號數(shù)并清R0,重
66、新計數(shù)</p><p><b> SETB RING</b></p><p><b> MOV A,R6</b></p><p> JZ QUIT;計時完畢</p><p> MOV R0,#00H</p><p> DEC R6;一秒標志減1</p>
67、<p> AJMP CHECK</p><p> LARGER: MOV A,R0</p><p> CJNE A,#14H,CHECK;如果1s向下運行,否者跳到查"停/顯示"</p><p> DEC R6;計時一秒R6自動減1</p><p> MOV R0,#00H</p>&l
68、t;p> CHECK: JNB P1.7,QUIT;如按下停止鍵退出</p><p> ACALL DISPLAY</p><p> JB OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p> AJMP RECOUNT</p><p> ACCOUT:JNB P1.
69、1,TRUE1</p><p> JNB P1.2,TRUE2</p><p> JNB P1.3,TRUE3</p><p> JNB P1.4,TRUE4</p><p> JNB P1.5,TRUE5</p><p> JNB P1.6,TRUE6</p><p> AJMP
70、RECOUNT</p><p> QUIT:CLR OK;如果按下了"停止鍵"執(zhí)行的程序</p><p><b> CLR RING</b></p><p> AJMP START</p><p> ;=====正常搶答處理程序=====</p><p> TRUE1
71、: ACALL BARK;按鍵發(fā)聲</p><p><b> MOV A,R2</b></p><p> MOV R6,A;搶答時間R2送R6</p><p> MOV R3,#01H</p><p> MOV R7,41H</p><p> CLR OK;因為答題的計時不再查詢搶答,所
72、以就鎖了搶答</p><p> AJMP COUNT</p><p> TRUE2:ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#02H</p&
73、gt;<p> MOV R7,42H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE3:ACALL BARK;</p><p><b> MOV A,R2</b></p><p>&l
74、t;b> MOV R6,A</b></p><p> MOV R3,#03H</p><p> MOV R7,43H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE4:ACALL BARK;</
75、p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#04H</p><p> MOV R7,44H</p><p><b> CLR OK</b></p>
76、<p> AJMP COUNT</p><p> TRUE5:ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#05H</p><p>
77、MOV R7,45H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE6:ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MOV R6,
78、A</b></p><p> MOV R3,#06H</p><p> MOV R7,46H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> ;=====犯規(guī)搶答程序=====</p><p>
79、 ERROR:MOV R0,#00H</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H</p><p> MOV 34H,R3;犯規(guī)號數(shù)暫存與(34H)</p><p> HERE: MOV A,R0</p><p> CJNE A,#0AH,FLASH;0.5s向下
80、運行->滅并停響</p><p><b> CLR RING</b></p><p> MOV R3,#0AH</p><p> MOV R4,#0AH</p><p> MOV R5,#0AH;三燈全滅</p><p> AJMP CHECK1</p><p&
81、gt; FLASH:CJNE A,#14H,CHECK1;下面系1s的情況,響并顯示號數(shù)并清R0,重新計</p><p><b> SETB RING</b></p><p> MOV R0,#00H</p><p> MOV R3,34H;取回號數(shù)</p><p> MOV R5,#0BH</p>
82、<p> MOV R4,#0BH;顯示FF和號數(shù)</p><p> AJMP CHECK1</p><p> CHECK1:JNB P1.7,QUIT1</p><p> ACALL DISPLAY</p><p><b> AJMP HERE</b></p><p>
83、QUIT1: CLR RING</p><p><b> CLR OK</b></p><p> AJMP START</p><p> ;=====顯示程序=====</p><p> DISPLAY:MOV 41H,51H</p><p> MOV 42H,52H</p>
84、<p> MOV 43H,53H</p><p> MOV 44H,54H</p><p> MOV 45H,55H</p><p> MOV 46H,56H</p><p> MOV DPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,</p><p><
85、;b> MOV A,r5</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#01H</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p> MOV DPTR,#DAT2&l
86、t;/p><p><b> MOV A,r4</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#02H</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p
87、><b> MOV A,r3</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#04H</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p><b>
88、MOV A,R7</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#08H</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p><b> RET</b>&l
89、t;/p><p> DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p> ;"滅","1","2","3","4","5","6","7","8&
90、quot;,"9","滅","F"</p><p> DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p> ;第一個為零,其他與上相同,因為十位如果為零顯示熄滅</p><p> ;====加減時間延時(起到不會按下就加N個數(shù)
91、)======</p><p> DELAY1: MOV 35H,#08H</p><p> LOOP0: ACALL DISPLAY</p><p> DJNZ 35H,LOOP0</p><p><b> RET</b></p><p> DELAY: MOV 32H,#12H&
92、lt;/p><p> LOOP: MOV 33H,#0AFH</p><p> LOOP1: DJNZ 33H,LOOP1</p><p> DJNZ 32H,LOOP</p><p><b> RET</b></p><p> BARK: SETB RING</p>
93、<p> ACALL DELAY1</p><p> ACALL DELAY1</p><p> CLR RING;按鍵發(fā)聲</p><p><b> RET</b></p><p> T0INT: MOV TH0,#0ECH</p><p> MOV TL0,#0FFH
94、</p><p> JNB RING,OUT;</p><p> CPL P3.6;RING標志位為1時候P3.6口不短取反使喇叭發(fā)出一定頻率的聲音</p><p> OUT: RETI</p><p> ;=====T1溢出中斷(計時程序)=====</p><p> T1INT: MOV TH1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論