版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 電氣與電子信息工程學(xué)院</p><p> 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與制作</p><p> 設(shè)計(jì)題目: 搶答器的設(shè)計(jì) </p><p> 專業(yè)班級(jí): 電氣自動(dòng)化技術(shù)2011級(jí)(1)班 </p><p> 學(xué) 號(hào):
2、 </p><p> 姓 名: </p><p> 指導(dǎo)教師: </p><p> 設(shè)計(jì)時(shí)間: 2013/5/13~2013/5/25 </p><p>
3、 設(shè)計(jì)地點(diǎn): </p><p> 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與制作</p><p><b> 課程設(shè)計(jì)成績評定表</b></p><p> 指導(dǎo)教師簽字: </p><p> 年 月 日</p>&
4、lt;p><b> 目錄</b></p><p> 第一部分 課程設(shè)計(jì)任務(wù)書</p><p> 1、課程設(shè)計(jì)任務(wù)書····················
5、·························3</p><p> 第二部分 課程設(shè)計(jì) </p><p><b>
6、 一、方案論證</b></p><p> 1、設(shè)計(jì)任務(wù)與要求····························
7、183;·················5</p><p> 2、方案論證··············
8、····································
9、3;·5</p><p><b> 二、硬件設(shè)計(jì)</b></p><p> 1、復(fù)位電路······················
10、183;·····························6</p><p> 2、穩(wěn)壓電源電路·
11、3;····································
12、183;·········7</p><p> 3、外部震蕩電路·····················
13、3;··························7</p><p> 4、報(bào)警電路·····
14、183;····································
15、··········8</p><p> 5、選手搶答電路·····················
16、183;··························9</p><p> 6、時(shí)間調(diào)整電路····
17、3;····································
18、183;······9</p><p> 7、顯示與顯示驅(qū)動(dòng)電路························&
19、#183;················10</p><p><b> 三、設(shè)計(jì)框圖</b></p><p> 1、搶答器電路框圖······&
20、#183;····································
21、;··10</p><p> 2、系統(tǒng)主程序設(shè)計(jì)·····························
22、;················11</p><p><b> 四、設(shè)計(jì)電路圖</b></p><p> 1、總電路·······
23、183;····································
24、·········13</p><p><b> 五、軟件仿真</b></p><p> 1、keil程序仿真··············
25、;·································14</p><p&g
26、t; 2、protues仿真··································&
27、#183;·············14</p><p><b> 六、實(shí)物圖</b></p><p> 1、啟動(dòng)電路··········
28、;····································
29、83;····19</p><p> 2、搶答計(jì)時(shí)···························
30、························20</p><p> 3、一號(hào)選手搶答·······&
31、#183;····································
32、;···21</p><p> 4、四號(hào)選手違規(guī)搶答···························
33、3;···············22</p><p><b> 七、總結(jié)</b></p><p> 1、實(shí)驗(yàn)總結(jié)········
34、83;····································&
35、#183;·····23</p><p><b> 八、附錄</b></p><p> 1、參考文獻(xiàn)··················
36、·································23</p><p>
37、; 2、程序···································
38、83;···················24</p><p> 3、元件清單············
39、····································
40、3;··29</p><p> 第一部分 課程設(shè)計(jì)任務(wù)書</p><p> 一、課程設(shè)計(jì)題目: 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與制作 </p><p><b> 二、課程設(shè)計(jì)內(nèi)容</b></p><p> 1. 根據(jù)具體設(shè)計(jì)課題的技術(shù)指標(biāo)和給定條件,以單片機(jī)為核心器件,能獨(dú)立而正確地進(jìn)行
41、方案論證和電路設(shè)計(jì),要求概念清楚、方案合理、方法正確、步驟完整;</p><p> 2. 熟悉、掌握各種外圍接口電路芯片的工作原理和控制方法;</p><p> 3. 熟練使用單片機(jī)匯編語言進(jìn)行軟件設(shè)計(jì);</p><p> 4. 熟練使用Proteus、Keil軟件進(jìn)行仿真電路測試;</p><p> 5. 熟練使用Protel軟件設(shè)
42、計(jì)印刷電路板;</p><p> 6. 學(xué)會(huì)查閱有關(guān)參考資料和手冊,并能正確選擇有關(guān)元器件和參數(shù);</p><p> 7. 編寫設(shè)計(jì)說明書,參考畢業(yè)設(shè)計(jì)論文格式撰寫設(shè)計(jì)報(bào)告。</p><p> 注:詳細(xì)要求和技術(shù)指標(biāo)見附錄。</p><p><b> 三、進(jìn)度安排</b></p><p>
43、<b> 1.時(shí)間安排</b></p><p><b> 2.執(zhí)行要求</b></p><p> 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與制作多個(gè)選題,每組不超過6人,為避免雷同,在設(shè)計(jì)中每個(gè)同學(xué)所采用的方案不能一樣。</p><p><b> 四、基本要求</b></p><p> ?。?/p>
44、1)根據(jù)要求確定系統(tǒng)設(shè)計(jì)方案;</p><p> ?。?)繪制系統(tǒng)框圖、系統(tǒng)原理總圖,印刷電路板圖,列出元器件明細(xì)表;</p><p> ?。?)計(jì)算電路參數(shù)和選擇元器件,畫出軟件框圖,列出程序清單;</p><p> ?。?)仿真,測試與修改調(diào)整;</p><p> ?。?)誤差分析與調(diào)整;</p><p> ?。?
45、)寫出使用說明書;</p><p> ?。?)對設(shè)計(jì)進(jìn)行全面總結(jié),寫出課程設(shè)計(jì)報(bào)告。</p><p> 五、課程設(shè)計(jì)考核辦法與成績評定</p><p> 根據(jù)過程、報(bào)告、答辯等確定設(shè)計(jì)成績,成績分優(yōu)、良、中、及格、不及格五等。</p><p> 第二部分 課程設(shè)計(jì)</p><p><b>
46、方案論證</b></p><p><b> 1、設(shè)計(jì)任務(wù)與要求</b></p><p> 1、搶答器同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0 ~ S8表示。</p><p> 2、設(shè)置一個(gè)系統(tǒng)確定和搶答控制開關(guān)S,該開關(guān)由主持人控制。</p><p> 3、 搶答器具有鎖存與顯示功能。即選手
47、按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),并在LED數(shù)碼管上顯示,同時(shí)揚(yáng)聲器發(fā)出報(bào)警聲響提示。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。</p><p> 4、搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動(dòng)"開始"鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間0.5秒左右。</p><p> 5、參賽選
48、手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。</p><p> 6、如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00 。</p><p><b> 2.設(shè)計(jì)方案與論證</b></p><p> 方案一:系統(tǒng)各部分采用中小規(guī)模集成數(shù)字
49、電路,用機(jī)械開關(guān)按鈕作為控制開關(guān),完成搶答輸入信號(hào)的觸發(fā)。該方案的特點(diǎn)是中小規(guī)模集成電路應(yīng)用技術(shù)成熟,性能可靠,能方便地完成選手搶答的基本功能,但是由于系統(tǒng)功能要求較高,所以電路連接集成電路相對較多,而且過于復(fù)雜,并且制作過程工序比較煩瑣,使用不太方便。</p><p> 方案二:該系統(tǒng)采用51系列單片機(jī)AT89C51作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號(hào)識(shí)別以及顯示功能的實(shí)現(xiàn)。由于用了單片機(jī),使其技術(shù)比較
50、成熟,應(yīng)用起來方便、簡單并且單片機(jī)周圍的輔助電路也比較少,便于控制和實(shí)現(xiàn)。整個(gè)系統(tǒng)具有極其靈活的可編程性,能方便地對系統(tǒng)進(jìn)行功能的擴(kuò)張和更改。MCS-51單片機(jī)特點(diǎn)如下:</p><p> <1>可靠性好:單片機(jī)按照工業(yè)控制要求設(shè)計(jì),抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號(hào)通道都在同一芯片,因此可靠性高,易擴(kuò)充。</p><p> <
51、;2>單片機(jī)有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的輸入及輸出引腳,可擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)。</p><p> <3> 控制功能強(qiáng):單片機(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。</p><p> 方案比較及其選用依據(jù),顯然方案二比方案一簡單的多,不但從性能上優(yōu)于方案一,而且在使用上及其功能的實(shí)現(xiàn)上都較方案一簡潔,并且由于單片機(jī)
52、具有優(yōu)越的高集成電路性,使其工作速度更快、效率更高。另外80C51單片機(jī)采用12MHz的晶振,提高了信號(hào)的測量精度,并且使該系統(tǒng)可以通過軟件改進(jìn)來擴(kuò)張功能。而方案一采用了中小規(guī)模集成電路,有其復(fù)雜的電路性能,從而可能會(huì)使信號(hào)的輸入輸出產(chǎn)生延時(shí)及不必要的誤差。依此依據(jù)選擇方案二比較適合。</p><p><b> 硬件電路設(shè)計(jì)</b></p><p><b>
53、; 1、復(fù)位電路</b></p><p> 外部中斷和內(nèi)部中斷并存,單片機(jī)硬件復(fù)位端,只要持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,硬件復(fù)位后的各狀態(tài)可知寄存器以及存儲(chǔ)器的值都恢復(fù)到了初始值,因?yàn)楸驹O(shè)計(jì)中功能中有倒計(jì)時(shí)時(shí)間的記憶功能,所以不能對單片機(jī)進(jìn)行硬件復(fù)位,只能用軟件復(fù)位,軟件復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完之后,將程序通過一條跳轉(zhuǎn)指令讓它完成復(fù)位。復(fù)位電路如下圖示:</p><p
54、><b> 2、穩(wěn)壓電源電路</b></p><p> 首先利用220v用220V~12V的變壓器降壓,再用橋式整流。在電源電路中,整流電路將交流變成脈動(dòng)的直流,而在整流電路之后接入一個(gè)較大容量的電解電容(470uf),利用其充放電特性,使整流后的脈動(dòng)直流電壓變成相對比較穩(wěn)定的直流電壓。在實(shí)際中,為了防止電路各部分供電電壓因負(fù)載變化而產(chǎn)生變化,所以在電源的輸出端及負(fù)載的電源輸入端一
55、般接有數(shù)十至數(shù)百微法的電解電容.由于大容量的電解電容一般具有一定的電感,對高頻及脈沖干擾信號(hào)不能有效地濾</p><p> 除,故在其兩端并聯(lián)了一只容量為0.001--0.lpF的電容,以濾除高頻及脈沖干擾然后并接一個(gè)0.1uF的小電容然后輸入的7805的1腳、7805的2腳接地、78L05的3腳輸出,加一個(gè)0.1uF的電容到地,這就可以了。本次設(shè)計(jì)沒有用穩(wěn)壓電源而是用4枚1.2V電池充當(dāng)電源。穩(wěn)壓電源電路如下
56、圖所示:</p><p><b> 3、外部震蕩電路</b></p><p> 外部震蕩電路單片機(jī)必須在AT89C51的驅(qū)動(dòng)下才能工作,在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘震蕩電路,只需要外接一個(gè)振蕩器就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,外部震蕩電路如下圖:</p><p><b> 4、報(bào)警電路</b></p&
57、gt;<p> 報(bào)警電路用于報(bào)警,當(dāng)遇到報(bào)警信號(hào)時(shí),發(fā)出警報(bào)。8951驅(qū)動(dòng)喇叭的信號(hào)為各種頻率的脈沖。因此,最簡單的喇叭驅(qū)動(dòng)方式就是利用達(dá)林頓晶體管,或者以兩個(gè)常用的小晶體管連接成達(dá)林頓架勢。在右圖中電阻R為限流電阻,在此利用晶體管的高電流增益,以達(dá)到電路快速飽和的目的。不過,如果要由P0輸出到此電路,還需要連接一個(gè)10K的上拉電阻。</p><p> 選手在設(shè)定的時(shí)間內(nèi)搶答時(shí),實(shí)現(xiàn):優(yōu)先判斷、
58、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次作"確定"和"開始"狀態(tài)開關(guān)。報(bào)警電路如下圖所示:</p><p><b> 5、選手搶答電路</b></p><p> 89C51的P1口做一個(gè)為選手搶答的輸入按鍵引腳,P1.0至P1.7輪流輸出低電位
59、,給每一個(gè)選手編號(hào)1至8,當(dāng)選手按下按鈕時(shí),P1口個(gè)端口的電平變化從P1口輸入,經(jīng)單片機(jī)處理后從P0輸出由數(shù)碼管顯示搶答者編號(hào)。搶答電路如圖所示:</p><p><b> 6、時(shí)間調(diào)整電路</b></p><p> 利用89C51的P3.2-P3.5口作為搶答和回答時(shí)間的調(diào)整電路,搶答時(shí)間存放在寄存器R1中,回答時(shí)間存放在R2中。通過設(shè)置定時(shí)方式將P3.2-P3
60、.5的觸發(fā)設(shè)置為低電平觸發(fā),通過中斷來調(diào)整時(shí)間。時(shí)間調(diào)整電路如圖所示:</p><p> 7、顯示與顯示驅(qū)動(dòng)電路</p><p> 此電路包括顯示和驅(qū)動(dòng),顯示采用數(shù)碼管,驅(qū)動(dòng)用P2口, 違規(guī)者編號(hào)、搶答30秒倒計(jì)時(shí)、正常搶答者編號(hào)和回答問題時(shí)間60秒倒計(jì)時(shí),數(shù)碼管采用動(dòng)態(tài)顯示。驅(qū)動(dòng)電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動(dòng)數(shù)碼管使其顯示數(shù)
61、字。在+5V電壓下接10k的電阻,保證正常壓降。顯示與顯示驅(qū)動(dòng)電路如圖所示:</p><p><b> 三、設(shè)計(jì)框圖</b></p><p><b> 1、搶答器電路框圖</b></p><p> 其工作原理為:接通電源后,主持人將開關(guān)撥到“確定”狀態(tài),搶答器處于禁止?fàn)顟B(tài),編號(hào)顯示器滅燈,定時(shí)器顯示設(shè)定時(shí)間;主持人將
62、開關(guān)置,“開始”狀態(tài),宣布“開始”搶答器工作。定時(shí)器倒計(jì)時(shí),揚(yáng)聲器給出聲響提示。選手在定時(shí)時(shí)間內(nèi)搶答時(shí),搶答器完成:優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次操作"開始、確定"狀態(tài)開關(guān)。系統(tǒng)框圖如圖所示:</p><p><b> 2、系統(tǒng)主程序設(shè)計(jì)</b></p>
63、<p> 為了能夠達(dá)到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時(shí)間,因而在編開始搶答前的程序得先編寫設(shè)定時(shí)間的程序,當(dāng)時(shí)間設(shè)好了之后,主持人發(fā)布搶答命令按下P1.7按鍵,程序開始打開定時(shí)中斷開始倒計(jì)時(shí),然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序。當(dāng)在掃描到有人按下了答題鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。主程序的流程圖如下圖所示:</p><p><b>
64、四、設(shè)計(jì)電路圖</b></p><p><b> 1、總電路圖</b></p><p><b> 五、軟件仿真</b></p><p><b> 1、keil仿真</b></p><p> 2、protues仿真</p><p>&l
65、t;b> <1>接通電路</b></p><p><b> <2>開始搶答</b></p><p><b> <3>一號(hào)選手搶答</b></p><p> <4>4號(hào)選手違規(guī)搶答</p><p><b> 六、實(shí)物
66、圖</b></p><p><b> 1、啟動(dòng)電路</b></p><p><b> 2、搶答計(jì)時(shí)</b></p><p><b> 3、一號(hào)選手搶答</b></p><p> 4、四號(hào)選手違規(guī)搶答</p><p><b>
67、 七、總結(jié)</b></p><p><b> 1、實(shí)驗(yàn)小結(jié)</b></p><p> 為期兩周的單片機(jī)課程設(shè)計(jì)即將結(jié)束,我們的作品也隨著即將完成??吹阶约鹤罱K的勞動(dòng)成果,心中落下了圓滿的句號(hào)。</p><p> 單片機(jī)是一門綜合性質(zhì)比較強(qiáng)的科目,要學(xué)好單片機(jī),首先要有較強(qiáng)的邏輯思維,然后就是要掌握單片機(jī)的核心——編程。單片機(jī)
68、的很多控制作用都是通過程序來完成的,所以好的作品離不開好的程序,好的程序離不開好的程序編譯者。當(dāng)然,單片機(jī)所涉及的范圍也很廣,除了一些基本的微型計(jì)算機(jī)的知識(shí)外,還有電路電子、數(shù)電、模電等相關(guān)電路知識(shí)。因此想掌握好的單片機(jī)我們必須花足夠的時(shí)間和精力。</p><p> 在確定方案,編寫程序花了很大的功夫,平時(shí)也只編一編小的程序,這么產(chǎn)長的程序也是第一次編寫。查資料,上網(wǎng)用了各種辦法才將程序弄出來。期間利用keil
69、和protues多次調(diào)試。將程序與電路的作用相結(jié)合。在制作實(shí)物的時(shí)候也花費(fèi)了大量的時(shí)間。</p><p> 經(jīng)過這次課程設(shè)計(jì)讓我對單片機(jī)有了更深的了解,同時(shí)也明白了沒有一件事是簡單的,但是沒有一件事會(huì)很難,只要努力鉆研任何問題都不是問題。</p><p><b> 八、附錄</b></p><p><b> 1、參考文獻(xiàn)<
70、/b></p><p> [1]陳志旺 李亮等. 51單片機(jī)快速上手 機(jī)械工業(yè)出版社</p><p> [2]朱清慧等. proteus教程 清華大學(xué)出版社、</p><p> [3]李全利. 單片機(jī)原理及接口技術(shù) 高等教育出版社</p><p> [4] 電氣與電子信息工程學(xué)院.單片機(jī)實(shí)驗(yàn)指導(dǎo)書</p><
71、;p> [5]韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)入門向?qū)c設(shè)計(jì)實(shí)例.北京:機(jī)械工業(yè)出版社</p><p> [6]皮大能等. 單片機(jī)課程設(shè)計(jì)指導(dǎo)書. 北京:北京理工大學(xué)出版社</p><p><b> 2、程序</b></p><p> OK EQU 20H;搶答開始標(biāo)志位</p><p> RING EQU
72、22H;響鈴標(biāo)志位</p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b></p><p><b> ORG 0003H</b></p><p> AJMP INT0SUB</p><p>&l
73、t;b> ORG 000BH</b></p><p> AJMP T0INT</p><p><b> ORG 0013H</b></p><p> AJMP INT1SUB</p><p><b> ORG 001BH</b></p><p>
74、 AJMP T1INT</p><p><b> ORG 0040H</b></p><p> MAIN: MOV R1,#30;初設(shè)搶答時(shí)間為30s</p><p> MOV R2,#60;初設(shè)答題時(shí)間為60s</p><p> MOV TMOD,#11H;設(shè)置未定時(shí)器/模式1</p><p
75、> 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><p>
76、<b> SETB ET0</b></p><p><b> SETB ET1</b></p><p><b> SETB EX0</b></p><p> SETB EX1;允許四個(gè)中斷,T0/T1/INT0/INT1</p><p><b> CLR O
77、K</b></p><p><b> CLR RING</b></p><p><b> SETB TR1</b></p><p> SETB TR0;一開始就運(yùn)行定時(shí)器,以開始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了</p><p> ;=====查詢程序====
78、=</p><p> START: MOV R5,#0BH</p><p> MOV R4,#0BH</p><p> MOV R3,#0BH</p><p> ACALL DISPLAY;未開始搶答時(shí)候顯示FFF</p><p> JB P3.0,NEXT;ddddddd</p><p&
79、gt; ACALL DELAY</p><p> JB P3.0,NEXT;去抖動(dòng),如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢</p><p> ACALL BARK;按鍵發(fā)聲</p><p><b> MOV A,R1</b></p><p> MOV R6,A;送R1->R
80、6,因?yàn)镽1中保存了搶答時(shí)間</p><p> SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答</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> AJMP COUNT;進(jìn)入倒計(jì)時(shí)程序,&qu
81、ot;查詢有效搶答的程序"在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><p> JNB P1.4,FALS
82、E5</p><p> JNB P1.5,FALSE6</p><p> JNB P1.6,FALSE7</p><p> JNB P1.7,FALSE8</p><p> AJMP START</p><p> ;=====非法搶答處理程序=====</p><p> FALSE1
83、: 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> F
84、ALSE4: 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&g
85、t; FALSE7: MOV R3,#07H</p><p> AJMP ERROR</p><p> FALSE8: MOV R3,#08H</p><p> AJMP ERROR</p><p> ;=====INT0(搶答時(shí)間R1調(diào)整程序)=====</p><p> INT0SUB:MOV A,R1
86、</p><p> MOV 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</
87、p><p> ACALL DISPLAY;先在兩個(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</
88、p><p> AJMP INT0SUB</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>&l
89、t;p> AJMP INT0SUB</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>
90、<p><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&
91、lt;/p><p> BACK0: RETI</p><p> ;=====INT1(回答時(shí)間R2調(diào)整程序)=====</p><p> INT1SUB:MOV A,R2</p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p
92、><b> 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
93、,DEC1</p><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 DELA
94、Y1</p><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&
95、lt;/b></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
96、> AJMP INT1SUB</p><p> BACK1: RETI</p><p> ;=====倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)=====</p><p> REPEAT:MOV A,R2 ;使用錦囊時(shí)重新計(jì)時(shí)</p><p><b> MOV R6,A</b></p>
97、<p><b> CLR RING</b></p><p> COUNT: 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í)間,之
98、前先將搶答時(shí)間或回答時(shí)間給R6</p><p> MOV B,#0AH</p><p> DIV AB;除十分出個(gè)位/十位</p><p> MOV 30H,A;十位存于(30H)</p><p> MOV 31H,B;個(gè)位存于(31H)</p><p> MOV R5,30H;取十位</p>
99、<p> MOV R4,31H;取個(gè)位</p><p><b> MOV A,R6</b></p><p> SUBB A,#07H</p><p> JNC LARGER;大于5s跳到LARGER,小于等于5s會(huì)提醒</p><p><b> MOV A,R0</b></
100、p><p> CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行</p><p><b> CLR RING</b></p><p> AJMP CHECK</p><p> FULL: CJNE A,#14H,CHECK;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p>
101、<b> SETB RING</b></p><p><b> MOV A,R6</b></p><p> JZ QUIT;計(jì)時(shí)完畢</p><p> MOV R0,#00H</p><p> DEC R6;一秒標(biāo)志減1</p><p> AJMP CHECK&l
102、t;/p><p> LARGER: MOV A,R0</p><p> CJNE A,#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
103、,QUIT;如按下停止鍵退出</p><p> JNB OK,CHECKK ;只在回答倒計(jì)時(shí)才有效</p><p> AJMP NEXTT</p><p> CHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊</p><p> NEXTT: ACALL DISPLAY</p><p> JB O
104、K,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p> AJMP RECOUNT</p><p><b> ACCOUT:</b></p><p><b> MOV A,36H</b></p><p> JNB ACC.0,TRUE1
105、</p><p> JNB 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
106、.6,TZ1</p><p> 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>
107、<p><b> CLR RING</b></p><p> AJMP START</p><p> ;=====正常搶答處理程序=====</p><p> TRUE1: ACALL BARK</p><p><b> MOV A,R2</b></p><
108、;p> MOV R6,A;搶答時(shí)間R2送R6</p><p> MOV R3,#01H</p><p> CLR OK;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答</p><p> AJMP COUNT</p><p> TRUE2:ACALL BARK</p><p><b> MOV A
109、,R2</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<
110、;/p><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&g
111、t;<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&
112、gt;<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>
113、<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>
114、; 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> MOV
115、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>&l
116、t;/p><p><b> MOV R6,A</b></p><p> MOV R3,#08H</p><p><b> CLR OK</b></p><p> AJMP COUNT</p><p> ;=====犯規(guī)搶答程序=====</p><p
117、> ERROR: MOV R0,#00H</p><p> MOV TH1,#3CH</p><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
118、.3s向下運(yùn)行->滅并停響</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>&
119、lt;p> FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b> SETB RING</b></p><p> MOV R0,#00H</p><p> MOV R3,34H;取回號(hào)數(shù)</p><p> MOV R5,#0BH&l
120、t;/p><p> MOV R4,#0BH;顯示FF和號(hào)數(shù)</p><p> AJMP CHECK1</p><p> CHECK1: JNB P3.1,QUIT1</p><p> ACALL DISPLAY</p><p><b> AJMP HERE</b></p>&l
121、t;p> QUIT1: CLR RING</p><p><b> CLR OK</b></p><p> AJMP START</p><p> ;=====顯示程序=====</p><p> DISPLAY:MOV DPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出
122、,</p><p><b> 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 DELAY2</p>
123、<p> MOV DPTR,#DAT2</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>
124、ACALL DELAY2</p><p><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 DELAY2&
125、lt;/p><p><b> RET</b></p><p> DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p> ;"滅","1","2","3","4",&quo
126、t;5","6","7","8","9","滅","F"</p><p> DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p> ;第一個(gè)為零,其他與上相同,因?yàn)槭蝗绻麨榱泔@示熄滅
127、</p><p> ;====加減時(shí)間延時(shí)(起到不會(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>
128、;</p><p> ;=====延時(shí)4236個(gè)機(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<
129、;/p><p><b> RET</b></p><p> ;=====延時(shí)4236個(gè)機(jī)器周期(顯示用到)=====</p><p> DELAY2: MOV 32H,#43H</p><p> LOOP3: MOV 33H,#1EH</p><p> MOV A,R7 ;每隔60~70個(gè)機(jī)
130、器周期讀一次P1口,全為1時(shí)為無效數(shù)據(jù),繼續(xù)讀,有一個(gè)不為1時(shí),轉(zhuǎn)到正常搶答處理</p><p> JNZ AAAA1 ;沒讀到有效數(shù)據(jù)時(shí)繼續(xù)轉(zhuǎn)到AAAA1</p><p> LOOP2: DJNZ 33H,LOOP2</p><p> DJNZ 32H,LOOP3</p><p><b> RET</b><
131、;/p><p> ;=====讀搶答按鍵數(shù)據(jù)口程序=====</p><p> ;由于在讀搶答數(shù)據(jù)口的時(shí)候,單片機(jī)首先進(jìn)入倒計(jì)時(shí)程序,再調(diào)用顯示程序,最后才檢測按鍵口</p><p> ;然而在檢測按鍵口時(shí)動(dòng)態(tài)掃描要調(diào)用三次(4ms)延時(shí)程序.這樣就會(huì)導(dǎo)致讀數(shù)據(jù)口出現(xiàn)滯后,造成1號(hào)優(yōu)先最高.8號(hào)最低.</p><p> ;故采用在延時(shí)子程
132、序中加了讀數(shù)據(jù)口程序.保證了靈敏度和可靠性</p><p> AAAA1: MOV A,P1</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>
133、 AA1: DEC R7</p><p><b> AJMP AA0</b></p><p> ;=====發(fā)聲程序=====</p><p> BARK: SETB RING</p><p> ACALL DELAY1</p><p> ACALL DELAY1</p>
134、<p> CLR RING;按鍵發(fā)聲</p><p><b> RET</b></p><p> ;=====TO溢出中斷(響鈴程序)=====</p><p> T0INT: MOV TH0,#0ECH</p><p> MOV TL0,#0FFH</p><p> JNB
135、 RING,OUT;</p><p> CPL P3.6;RING標(biāo)志位為1時(shí)候P3.6口不短取反使喇叭發(fā)出一定頻率的聲音</p><p><b> OUT: RETI</b></p><p> ;=====T1溢出中斷(計(jì)時(shí)程序)=====</p><p> T1INT: MOV TH1,#3CH</p&
136、gt;<p> MOV TL1,#0B0H</p><p><b> INC R0</b></p><p><b> RETI</b></p><p><b> END</b></p><p><b> 3、元件清單</b><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)課程設(shè)計(jì)報(bào)告搶答器
- 智力搶答器課程設(shè)計(jì)報(bào)告
- 數(shù)字搶答器課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告---簡易搶答器
- 競賽搶答器課程設(shè)計(jì)報(bào)告
- 多路搶答器課程設(shè)計(jì)報(bào)告
- 搶答器課程設(shè)計(jì)
- 搶答器課程設(shè)計(jì)
- 搶答器課程設(shè)計(jì)
- 搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)--搶答器
- 課程設(shè)計(jì)--搶答器
- 課程設(shè)計(jì)---搶答器設(shè)計(jì)
- 四路搶答器課程設(shè)計(jì)報(bào)告
- 搶答器課程設(shè)計(jì)--八路搶答器
- 單片機(jī)搶答器課程設(shè)計(jì) --搶答器
- 智能搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字搶答器
- 數(shù)字搶答器課程設(shè)計(jì)
- 智力搶答器課程設(shè)計(jì)
評論
0/150
提交評論