版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《單片機原理與接口技術(shù)》</p><p><b> 課程設(shè)計報告書</b></p><p> 設(shè)計題目: 八路搶答器的設(shè)計 </p><p> 專 業(yè): 自動化 </p><p> 班 級: 二班
2、 </p><p> 學生姓名: </p><p> 學 號: </p><p> 指導教師: </p><p> 2013年12月16日</p><
3、p> 物理與電子工程學院 課程設(shè)計任務(wù)書</p><p><b> 摘 要</b></p><p> 搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性
4、就會影響活動的開展,因此設(shè)計了本搶答器。 </p><p> 本設(shè)計是以八路搶答為基本理念??紤]到依需設(shè)定限時回答的功能,利用AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶
5、答為無效;搶答限定時間和回答問題的時間可在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,滿時后系統(tǒng)計時自動復位及主控強制復位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。</p><p> 關(guān)鍵字:搶答器;競賽;單片機</p><p><b> 目 錄</b></p><p>
6、1 設(shè)計任務(wù)與要求5</p><p><b> 1.1設(shè)計目的5</b></p><p><b> 1.2設(shè)計要求5</b></p><p> 2 總體設(shè)計思路5</p><p> 3 硬件電路設(shè)計5</p><p> 3.1原理圖的確定5</p&
7、gt;<p> 3.2搶答器接口電路6</p><p> 3.3時序控制電路設(shè)計6</p><p> 3.4復位電路的設(shè)計6</p><p> 3.5晶振電路的設(shè)計7</p><p> 3.6報警電路設(shè)計8</p><p> 3.7 選手搶答鍵(矩陣式鍵盤)8</p>
8、<p> 3.8顯示與顯示驅(qū)動電路9</p><p><b> 4 軟件設(shè)計10</b></p><p> 4.1系統(tǒng)主程序設(shè)計10</p><p> 4.2 程序清單11</p><p><b> 5 仿真調(diào)試19</b></p><p>&
9、lt;b> 6 總結(jié)20</b></p><p> 參 考 文 獻20</p><p><b> 1 設(shè)計任務(wù)與要求</b></p><p><b> 1.1設(shè)計目的</b></p><p> 鞏固單片機原理與接口技術(shù)課程中所學的知識,提高學生的動手能力和創(chuàng)新能力,培
10、養(yǎng)學生查閱資料和閱讀文獻的能力,培養(yǎng)學生初步的科研能力,為畢業(yè)設(shè)計奠定基礎(chǔ)。</p><p> 主要內(nèi)容:本課程設(shè)計主要是利用單片機原理與接口技術(shù)課程中所學的知識,完成一個知識競賽中用到的8路搶答器的設(shè)計。設(shè)計內(nèi)容包括硬件電路原理圖、顯示程序設(shè)計、硬件和軟件的綜合調(diào)試。</p><p><b> 1.2設(shè)計要求</b></p><p>
11、(1)以80C51系列單片機為核心器件,組成一個8路搶答器,能夠供8個參賽隊進行搶答。</p><p> (2)在現(xiàn)有的單片機實驗系統(tǒng)上完成硬件電路接線。</p><p> (3)完成該課題的程序設(shè)計、提交程序設(shè)計框圖及程序設(shè)計清單。</p><p> (4)完成硬件與軟件的綜合調(diào)試,實現(xiàn)預定功能。</p><p> (5)通過老師審
12、核,提交課程設(shè)計報告。</p><p><b> 2 總體設(shè)計思路</b></p><p> 接通電源后,主持人將開關(guān)撥到“清除”狀態(tài),搶答器處于禁止狀態(tài),編號顯示器滅燈,定時器顯示設(shè)定時間;主持人將開關(guān)置,“開始”狀態(tài),宣布“開始”搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內(nèi)搶答時,搶答器完成:優(yōu)先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶
13、答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“開始、停止”狀態(tài)開關(guān)。</p><p><b> 3 硬件電路設(shè)計</b></p><p><b> 3.1原理圖的確定</b></p><p> 單片機實現(xiàn)搶答的原理圖同搶答電路的接口電路</p><p>
14、;<b> 如圖3-1-1</b></p><p> 圖3-1-1單片機實現(xiàn)搶答的原理圖</p><p> 3.2搶答器接口電路</p><p> 參考電路如圖3-1-1所示。該電路完成兩個功能:一是分辨出 選手按鍵的先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。如有再
15、次搶答需由主持人將S開關(guān)重新置,“清除” 然后再進行下一次搶答。 </p><p> 3.3時序控制電路設(shè)計</p><p> 時序控制電路是搶答器設(shè)計的關(guān)鍵,它要完成以下功能:</p><p> a.主持人將控制開關(guān)撥到"開始"位置時,揚聲器發(fā)聲,搶答電路和定時電路進人正常搶答工作狀態(tài)?! ?
16、 </p><p> b.當參賽選手按動搶答鍵時,揚聲器發(fā)聲,搶答電路和定時電路停止工作</p><p> 3.4復位電路的設(shè)計</p><p> 外部中斷和內(nèi)部中斷并存,單片機硬件復位端,只要持續(xù)4個機器周期的高電平即可實現(xiàn)復位,硬件復位后的各狀態(tài)可知寄存器以及存儲器的值都恢復到了初始值,因為本設(shè)計中功能中有倒計時時間的記憶功能,所
17、以不能對單片機進行硬件復位,只能用軟件復位,軟件復位實際上就是當程序執(zhí)行完之后,將程序通過一條跳轉(zhuǎn)指令讓它完成復位。復位電路如圖3-4-1,3-4-2所示: </p><p><b> 復位電路原理圖</b></p><p> 圖3-4-2復位電路 圖3-4-1復位電路</p><p>
18、; 該復位電路采用上電自動復位和手動復位兩種復位方式,圖中網(wǎng)絡(luò)標號所指9連接到單片機的復位引腳。要實現(xiàn)復位只需在,51系列單片機的RESET引腳上加上5ms的高電平就可以了。上電復位是利用電容的充電來實現(xiàn)的,即上電瞬間RESET端的電位與Vcc相同,隨著電容上儲能增加,電容電壓也逐漸增大,充電電流減小,RESET端的電位。這樣就會建立一個脈沖電壓,調(diào)節(jié)電容與電阻的大小可對脈沖的持續(xù)時間進行調(diào)節(jié)。通常若采用12MHz的晶振時,復位元件參
19、數(shù)為22μF的電解電容和10kΩ的電阻。按鈕復位電路是通過按下復位按鈕時,電源對RESET端維持兩個機器周期的高電平實現(xiàn)復位的。</p><p> 3.5晶振電路的設(shè)計</p><p> MSC-51單片機的定時控制功能是用時鐘電路和振蕩器完成的,而根據(jù)硬件電路的不同,連接方式分為內(nèi)部時鐘方式和外部時鐘方式。本設(shè)計中采用內(nèi)部時鐘方式。如圖3-5-1所示</p><p
20、> 圖3-5-1晶振電路原理圖</p><p><b> 3.6報警電路設(shè)計</b></p><p> 報警電路用于報警,當遇到報警信號時,發(fā)出警報。一般喇叭是一種電感性圖5報警電路圖。8951驅(qū)動喇叭的信號為各種頻率的脈沖。因此,最簡單的喇叭驅(qū)動方式就是利用達林頓晶體管,或者以兩個常用的小晶體管連接成達林頓架勢。如圖3-6-1中電阻R為限流電阻,在此利用
21、晶體管的高電流增益,以達到電路快速飽和的目的。不過,如果要由P0輸出到此電路,還需要連接一個10K的上拉電阻。</p><p> 選手在設(shè)定的時間內(nèi)搶答時,實現(xiàn):優(yōu)先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次作"清除"和"開始"狀態(tài)開關(guān)。</p><p> 3.
22、7 選手搶答鍵(矩陣式鍵盤)</p><p> AT89C51的P1口做一個為選手搶答的輸入按鍵引腳,如圖3-7-1,P1.0至P1.7輪流輸出低電位,給每一個選手編號1至8,當選手按下按鈕時,P1口個端口的電平變化從P1口輸入,經(jīng)單片機處理后從P0輸出由數(shù)碼管顯示搶答者編號。</p><p> 圖3-7-1選手搶答鍵電路</p><p> 3.8顯示與顯示驅(qū)
23、動電路</p><p> 此電路包括顯示和驅(qū)動,顯示采用數(shù)碼管,如圖3-8-1驅(qū)動用P2口, 違規(guī)者編號、搶答30秒倒計時、正常搶答者編號和回答問題時間60秒倒計時,數(shù)碼管采用動態(tài)顯示。驅(qū)動電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當為低電平則能驅(qū)動數(shù)碼管使其顯示數(shù)字。在+5V電壓下接10k的電阻,保證正常壓降。</p><p><b> 4 軟
24、件設(shè)計</b></p><p> 4.1系統(tǒng)主程序設(shè)計</p><p> 為了能夠達到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時間,因而在編開始搶答前的程序得先編寫設(shè)定時間的程序。如圖4-1-1所示當時間設(shè)好了之后,主持人發(fā)布搶答命令按下P1.7按鍵,程序開</p><p> 始打開定時中斷開始倒計時,然后調(diào)用鍵盤掃描子
25、程序,編寫鍵盤掃描程序。當在掃描到有人按下了答題鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。</p><p><b> 4.2 程序清單</b></p><p> 定時器T1時間初值:</p><p> 設(shè)50ms時間初值為Z,Z的計算方法為</p><p> ?。?16- Z)×12=12×50
26、×103,結(jié)果Z=15536D=3CB0H</p><p> OK EQU 20H ;搶答開始標志位</p><p> RING EQU 22H ;響鈴標志位</p><p> DATA0 EQU 36H ;搶答按鍵口數(shù)據(jù)存放地址</p><p><b> ORG 0000H&
27、lt;/b></p><p><b> AJMP MAIN</b></p><p><b> ORG 0003H</b></p><p> AJMP INT0SUB</p><p><b> ORG 000BH</b></p><p>
28、AJMP T0INT</p><p><b> ORG 0013H</b></p><p> AJMP INT1SUB</p><p><b> ORG 001BH</b></p><p> AJMP T1INT</p><p><b> ORG 0040
29、H</b></p><p> MAIN: MOV R1,#30 ;初設(shè)搶答時間為30s</p><p> MOV R2,#60 ;初設(shè)答題時間為60s</p><p> MOV TMOD,#11H ;設(shè)置未定時器/模式1</p><p> MOV TH0,#0F0H</p>
30、<p> MOV TL0,#0FFH ;越高發(fā)聲頻率越高,越尖</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H ;50ms為一次溢出中斷</p><p><b> SETB EA</b></p><p><b> SETB ET0&
31、lt;/b></p><p><b> SETB ET1</b></p><p><b> SETB EX0</b></p><p> SETB EX1 ;允許四個中斷,T0/T1/INT0/INT1</p><p><b> CLR OK</b&
32、gt;</p><p><b> CLR RING</b></p><p><b> SETB TR1</b></p><p> SETB TR0 ;一開始就運行定時器,以開始顯示PPP.如果想重新計數(shù),重置TH1/TL1就可以了</p><p><b> ;查
33、詢程序</b></p><p> START: MOV DATA0,#0FFH ;初始化</p><p> MOV R5,#0BH</p><p> MOV R4,#0BH</p><p> MOV R3,#0BH</p><p> ACALL DISPLAY
34、 ;未開始搶答時候顯示PPP</p><p> JNB P3.3 ,INT0SUB</p><p> JNB P3.4,TZ1 ;倒計時調(diào)整</p><p> JB P3.0,NEXT ;ddddddd</p><p> ACALL DELAY</p><p> JB
35、 P3.0,NEXT ;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢</p><p> SETB EX0 ;開放INT0 </p><p> ACALL BARK ;按鍵發(fā)聲</p><p><b> MOV A,R1</b><
36、/p><p> MOV R6,A ;送R1->R6,因為R1中保存了搶答時間</p><p> SETB OK ;搶答標志位,用于COUNT只程序中判斷是 </p><p> 否查詢搶答(在使用錦囊時用作判斷是搶</p><p> 答倒計時還是回答倒計時)
37、</p><p> MOV R3,#0AH ;搶答只顯示計時,滅號數(shù)</p><p> AJMP COUNT ;進入倒計時程序,"查詢有效搶答的程序" </p><p><b> 在COUNT里面</b></p><p> NEXT: JNB
38、P1.0,FALSE1</p><p> JNB P1.1,FALSE2</p><p> JNB P1.2,FALSE3</p><p> JNB P1.3,FALSE4</p><p> JNB P1.4,FALSE5</p><p> JNB P1.5,FALSE6</p><p&g
39、t; JNB P1.6,TZ1</p><p> JNB P1.7,TZ2</p><p> AJMP START</p><p> TZ1: JMP FALSE7</p><p> TZ2: JMP FALSE8</p><p><b> ;非法搶答處理程序</b>&
40、lt;/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&g
41、t; AJMP 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>
42、AJMP ERROR</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
43、 ERROR</p><p> FALSE7: ACALL BARK</p><p> MOV R3,#07H</p><p> AJMP ERROR</p><p> FALSE8: ACALL BARK</p><p> MOV R3,#08H</p><p> AJMP ERR
44、OR</p><p> ;INT0(搶答時間R1調(diào)整程序)</p><p> INT0SUB: MOV A,R1</p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV R5,A</b></p&
45、gt;<p><b> MOV R4,B</b></p><p> MOV R3,#0AH</p><p> ACALL DISPLAY ;先在兩個時間LED上顯示R1</p><p> JNB P3.4,INC0 ;P3.4為+1s鍵,如按下跳到INCO</p
46、><p> JNB P3.5,DEC0 ;P3.5為-1s鍵,如按下跳到DECO</p><p> JNB P3.1,BACK0 ;P3.1為確定鍵,如按下跳到BACKO</p><p> AJMP INT0SUB</p><p> INC0: MOV A,R1</p>
47、;<p> CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到 </p><p> 99,R1就置0,重新加起。</p><p> MOV R1,#00H</p><p> ACALL DELAY1</p><p> AJMP INT0SUB</p>
48、<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
49、><b> DEC 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&
50、gt;<p> BACK0: RETI </p><p> ;INT1(回答時間R2調(diào)整程序)</p><p> INT1SUB: MOV A,R2</p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p><b>
51、; MOV R5,A</b></p><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&
52、gt;<p> JNB P3.1,BACK1</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&g
53、t;<p> AJMP INT1SUB</p><p> ADD1: INC R2</p><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> DEC1: MOV A,R2</p><p><b> JZ SETR2</b&
54、gt;</p><p><b> DEC R2</b></p><p> ACALL DELAY1</p><p> AJMP INT1SUB</p><p> SETR2: MOV R2,#63H</p><p> ACALL DELAY1</p><p>
55、 AJMP INT1SUB</p><p> BACK1: RETI ;倒計時程序(搶答倒計時和回答倒計時都</p><p><b> 跳到改程序)</b></p><p> COUNT: MOV R0,#00H ;重置定時器中斷次數(shù)</p><p>
56、; MOV TH1,#3CH</p><p> MOV TL1,#0B0H ;重置定時器</p><p> RECOUNT: MOV A,R6 ;R6保存了倒計時的時間,之前先將搶答時</p><p><b> 間或回答時間給R6</b></p><p> MOV
57、B,#0AH</p><p> DIV AB ;除十分出個位/十位</p><p> MOV 30H,A ;十位存于(30H)</p><p> MOV 31H,B ;個位存于(31H)</p><p> MOV R5,30H ;取十位<
58、/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><
59、;b> 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
60、 ;下面是1s的情況,響并顯示號數(shù)并清R0,</p><p><b> 重新計</b></p><p><b> SETB RING</b></p><p><b> MOV A,R6</b></p><p> JZ QUIT ;計
61、時完畢</p><p> MOV R0,#00H</p><p> DEC R6 ;一秒標志減1</p><p> AJMP CHECK</p><p> LARGER: MOV A,R0</p><p> CJNE A,#14H,CHECK ;如果1s
62、向下運行,否者跳到查"停/顯示"</p><p> DEC R6 ;計時一秒R6自動減1</p><p> MOV R0,#00H</p><p> CHECK: JNB P3.1,QUIT ;如按下停止鍵退出</p><p> ACALL DISPL
63、AY</p><p> JB OK,ACCOUT ;如果是搶答倒計時,如是則查詢搶答,否</p><p> 者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答</p><p><b> 作用)</b></p><p> AJMP RECOUNT</p><p> ACCOUT
64、: MOV A,DATA0 </p><p> JNB P1.0,TRUE1</p><p> JNB P1.1,TRUE2</p><p> JNB P1.2,TRUE3</p><p> JNB P1.3,TRUE4</p><p> JNB P1.4,TRUE5</p><
65、p> JNB P1.5,TRUE6</p><p> JNB P1.6,TZ3</p><p> JNB P1.7,TZ4</p><p> AJMP RECOUNT</p><p> TZ3: JMP TRUE7</p><p> TZ4: JMP TRUE8 </
66、p><p> QUIT: CLR OK ;如果按下了"停止鍵"執(zhí)行的程序</p><p><b> CLR RING</b></p><p> AJMP START</p><p><b> ;正常搶答處理程序</b></p&
67、gt;<p> TRUE1: ACALL BARK ;按鍵發(fā)聲</p><p><b> MOV A,R2</b></p><p> MOV R6,A ;搶答時間R2送R6</p><p> MOV R3,#01H</p><
68、;p> CLR OK ;因為答題的計時不再查詢搶答,所以就</p><p><b> 鎖了搶答</b></p><p> AJMP COUNT</p><p> TRUE2:ACALL BARK;</p><p><b> MOV A,R2</
69、b></p><p><b> MOV R6,A</b></p><p> MOV R3,#02H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE3:ACALL BARK;</p>
70、<p><b> MOV A,R2</b></p><p><b> MOV R6,A</b></p><p> MOV R3,#03H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><
71、;p> TRUE4:ACALL BARK;</p><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>&
72、lt;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><
73、;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,A</b></p><p>
74、 MOV R3,#06H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE7: ACALL BARK;</p><p><b> MOV A,R2</b></p><p><b> MO
75、V R6,A</b></p><p> MOV R3,#07H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> TRUE8: ACALL BARK;</p><p><b> MOV A,R2</b&
76、gt;</p><p><b> MOV R6,A</b></p><p> MOV R3,#08H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p><b> ;犯規(guī)搶答程序</b><
77、;/p><p> 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&g
78、t;<p> CJNE A,#0AH,FLASH ;0.5s向下運行->滅并停響</p><p><b> CLR RING </b></p><p> MOV R3,#0AH</p><p> MOV R4,#0AH</p><p> MOV R5,#0AH
79、 ;三燈全滅</p><p> AJMP CHECK1</p><p> FLASH: CJNE A,#14H,CHECK1 ;下面是1s的情況,響并顯示號數(shù)并清</p><p><b> R0,重新計</b></p><p><b> SETB RING</b
80、></p><p> MOV R0,#00H</p><p> MOV R3,34H ;取回號數(shù)</p><p> MOV R5,#0BH</p><p> MOV R4,#0BH ;顯示PP和號數(shù)</p><p> AJMP CHECK1&
81、lt;/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</b>&l
82、t;/p><p> AJMP START</p><p><b> ;顯示程序</b></p><p> DISPLAY:MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口輸</p><p> 出/P2低三位做位選碼輸出,</p><p><b&g
83、t; MOV A,R3</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0feH</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p> MOV DPTR,#DAT2</
84、p><p><b> MOV A,R5</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0fdH</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p&g
85、t;<b> MOV A,R4</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#0fbH</p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p><b> R
86、ET</b></p><p> DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H </p><p> ;"滅","1","2","3","4","5","6","
87、7","8","9","滅","P"</p><p> DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H</p><p> ;第一個為零,其他與上相同,因為十位如果為零顯示熄滅</p><p> DELAY1:
88、 MOV 35H,#08H ;加減時間延時(起到不會按下就加N個數(shù))</p><p> LOOP0: ACALL DISPLAY</p><p> DJNZ 35H,LOOP0</p><p> RET ;延時(顯示和去抖動用到)</p><p> DELAY: MOV 32H
89、,#12H</p><p> LOOP: MOV 33H,#0AFH</p><p> LOOP1: DJNZ 33H,LOOP1</p><p> DJNZ 32H,LOOP</p><p><b> RET</b></p><p><b> ;發(fā)聲程序</b&g
90、t;</p><p> BARK: SETB RING</p><p> ACALL DELAY1</p><p> ACALL DELAY1</p><p> CLR RING ;按鍵發(fā)聲</p><p><b> RET</b></p>
91、<p> ;TO溢出中斷(響鈴程序)</p><p> T0INT: MOV TH0,#0ECH</p><p> MOV TL0,#0FFH</p><p> JNB RING,OUT;</p><p> CPL P3.6 ;RING標志位為1時候P3.6口不斷取反使喇叭發(fā)出一定頻率的
92、聲音</p><p> OUT: RETI</p><p> ;T1溢出中斷(計時程序)</p><p> T1INT: MOV TH1,#3CH</p><p> MOV TL1,#0B0H</p><p><b> INC R0</b></p><p>
93、; RETI ;INTT0中斷服務(wù)程序</p><p> INTT0:MOV DATA0,P1</p><p><b> CLR EX0</b></p><p><b> RETI </b></p><p><b> END
94、</b></p><p><b> 5 仿真調(diào)試</b></p><p> 試驗的程序通過Keil軟件編譯,產(chǎn)生HEX文件如圖5-1-1所示</p><p> 圖5-1-1程序在Keil軟件上編譯結(jié)果</p><p> 通過Proteus進行仿真,如仿真結(jié)果所示,按下開始后,數(shù)碼管開始倒計時,仿真結(jié)果
95、如圖5-1-2所示。</p><p> 圖5-1-2 Proteus仿真</p><p> 當有選手按下按扭時,數(shù)碼管顯示選手號碼并開始倒計時,如圖5-1-3所示:</p><p> 圖5-1-3 選手按下鍵的Proteus仿真結(jié)果</p><p> 通過仿真結(jié)果證實,該方案可行。該設(shè)計方案同過51系列單片機的P0口作為段選輸出,用P
96、2口作為位選輸出,動態(tài)掃描LED顯示管,顯示時間。并通過接在P3.0-P3.6口的按鍵開關(guān)控制開始、結(jié)束、喇叭提示等功能。P1口接選手按鍵,控制搶答。本設(shè)計實現(xiàn)簡單,成本較低很適合我們大學生動手實踐。</p><p><b> 6 總結(jié)</b></p><p> 經(jīng)過歷時兩周的時間,通過查閱書籍、文獻終于把八路搶答器的設(shè)計完成了。在這其間,讓我更加了解到單片機的神
97、奇,更加體會到單片機軟件硬件結(jié)合所能發(fā)揮的能量。雖然在設(shè)計其間遇到了很多難題,如:繁瑣的程序設(shè)計,復雜的硬件電路組合等,但是經(jīng)過不斷的查閱資料,反復地推敲中我還是順利完成了這個設(shè)計。通過自己動手,我學會了很多東西:在學習設(shè)計中不可能一蹴而就,這需要我們反復推敲,不斷學習新的知識;這次設(shè)計是我更加了解了單片機,使我能夠更加熟練地應(yīng)用單片機知識。</p><p><b> 參 考 文 獻</b>
98、;</p><p> 【1】張迎新.單片機初級教程. 北京: 航空航天大學出版社,2007.</p><p> 【2】韓志軍,沈晉源,王振波.單片機應(yīng)用系統(tǒng)設(shè)計[M]機械工業(yè)出版社,2005年</p><p> 【3】李全利.單片機原理與接口技術(shù)[M]高等教育出版社,2009年第二版</p><p> 【4】馬淑蘭.單片機技術(shù)及應(yīng)用實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八路搶答器課程設(shè)計
- 八路搶答器課程設(shè)計
- 課程設(shè)計---八路搶答器
- 八路搶答器課程設(shè)計
- 八路搶答器課程設(shè)計
- 八路搶答器課程設(shè)計
- 八路搶答器設(shè)計課程設(shè)計
- 《八路搶答器》課程設(shè)計報告
- 八路搶答器課程設(shè)計報告
- 八路搶答器eda課程設(shè)計
- 八路定時搶答器課程設(shè)計
- 八路搶答器課程設(shè)計報告
- 八路搶答器cpld課程設(shè)計
- 八路搶答器的設(shè)計課程設(shè)計
- 八路電子搶答器課程設(shè)計
- 電子課程設(shè)計--八路搶答器
- 八路搶答器課程設(shè)計報告
- 八路搶答器課程設(shè)計 (2)
- 八路搶答器-eda課程設(shè)計
- 八路搶答器課程設(shè)計報告
評論
0/150
提交評論