課程設(shè)計(jì)報(bào)告
課程名稱:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)
報(bào)告題目:8位競(jìng)賽搶答器的設(shè)計(jì) 學(xué)生姓名: 所在學(xué)院:信息科學(xué)與工程學(xué)院 專業(yè)班級(jí): 學(xué)生學(xué)號(hào): 指導(dǎo)教師:
2013 年12月25日 課程設(shè)計(jì)任務(wù)書 報(bào)告題目 | 8位競(jìng)賽搶答器的設(shè)計(jì) | | | |
| |
| |
| | | 總體設(shè)計(jì)要求和技術(shù)要點(diǎn) | 設(shè)計(jì)一個(gè)數(shù)字式電容測(cè)量?jī)x電路,要求如下: 以單片機(jī)為核心,設(shè)計(jì)一個(gè)8位競(jìng)賽搶答器:同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0~S7表示。 設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。 搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。當(dāng)主持人啟動(dòng)“開始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間為0.5s左右。 參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。 如果定時(shí)時(shí)間已到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00 | 工作內(nèi)容及時(shí)間進(jìn)度安排 | 第17周: 周一、周二:選題,明確任務(wù),指導(dǎo)教師對(duì)課題進(jìn)行講解,資料檢索 周三:硬件設(shè)計(jì),硬件仿真 周四、周五:軟件設(shè)計(jì) 第18周: 周一:綜合調(diào)試 周二、周三、周四:書寫課程設(shè)計(jì)報(bào)告 周五:答辯評(píng)分 | | 1.與設(shè)計(jì)內(nèi)容對(duì)應(yīng)的軟件程序 2.課程設(shè)計(jì)總結(jié)報(bào)告 |
|
|
|
|
|
|
|
|
摘要搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識(shí)競(jìng)賽場(chǎng)合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低。作為一個(gè)單位,如果專門購(gòu)一臺(tái)搶答器雖然在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長(zhǎng)期存放使(電子器件的)搶答器損壞,再購(gòu)置的麻煩和及時(shí)性就會(huì)影響活動(dòng)的開展,因此設(shè)計(jì)了本搶答器。 本設(shè)計(jì)是以八路搶答為基本理念?紤]到依需設(shè)定限時(shí)回答的功能,利用AT89C52單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)生提示。同時(shí)系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無(wú)效;搶答限定時(shí)間和回答問題的時(shí)間可在1-30s設(shè)定;可以顯示是哪位選手有效搶答,正確按鍵后有5s的音樂提示(即揚(yáng)聲器發(fā)出響聲);搶答時(shí)間和回答問題時(shí)間倒記時(shí)顯示,滿時(shí)后系統(tǒng)計(jì)時(shí)自動(dòng)復(fù)位及主控強(qiáng)制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無(wú)效非法。
關(guān)鍵詞:89c52;電路;顯示;按鍵
目錄一、概述…………………………………………………………………………1 二、方案設(shè)計(jì)………………………………………………………………1 三、硬件電路設(shè)計(jì)…………………………………………………………2 1、搶答器的電路框圖…………………………………………………………2 2、單元電路 ………………………………………………………………………………3 2.1、搶答器電路………………………………………………………………………3 2.2、時(shí)序控制電路……………………………………………………………………3 2.3、復(fù)位電路…………………………………………………………………………3 3、時(shí)鐘震蕩電路………………………………………………………………3 4、報(bào)警電路…………………………………………………………………3 四、軟件設(shè)計(jì)………………………………………………………………4 1、系統(tǒng)主程序…………………………………………………………4 2、系統(tǒng)程序…………………………………………………………5 五、結(jié)論與心得………………………………………………………………………10 六、參考文獻(xiàn)……………………………………………………………………10
一、概述本實(shí)驗(yàn)電路由搶答電路、譯碼顯示電路、主持人控制電路、定時(shí)電路、報(bào)警電路組成。通過復(fù)位按鍵FW,電路進(jìn)入準(zhǔn)備就緒狀態(tài)。將搶答時(shí)間設(shè)定在30S,然后按下開始鍵開始搶答。,在電路中“S0-S7”為8路搶答器的8個(gè)按鍵,當(dāng)有鍵按下,程序鎖定信號(hào),從P2口輸出搶答者號(hào)碼的七段碼值,送到數(shù)碼管顯示,并封鎖按鍵,保持剛才按鍵按下時(shí)刻的時(shí)間,禁止其他人按鍵的輸入,從而實(shí)現(xiàn)了搶答的功能。當(dāng)設(shè)定的搶答時(shí)間結(jié)束,仍然沒有搶答鍵被按下,則產(chǎn)生已經(jīng)超時(shí)的報(bào)警信號(hào),結(jié)束搶答。當(dāng)要進(jìn)行下一次的搶答時(shí),首先按一下復(fù)位按鍵,電路復(fù)位。 該設(shè)計(jì)是以MCS51為基礎(chǔ),結(jié)合單片機(jī)匯編語(yǔ)言知識(shí),設(shè)計(jì)而成的8位競(jìng)賽搶答器。在偉福試驗(yàn)箱上實(shí)現(xiàn)仿真。 主持人按下“開始搶答鍵”既單脈沖鍵后,喇叭響0.5秒給出提示信號(hào),并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30秒搶答時(shí)間)此時(shí),數(shù)碼顯示管上顯示倒計(jì)時(shí)時(shí)間:有選手搶答,停止計(jì)時(shí),八段數(shù)碼顯示搶答時(shí)間和選手號(hào);無(wú)選手搶答,倒計(jì)時(shí)30秒后,顯示00。然后選手等待主持人按下按鈕開始新一輪搶答。 注意: (1)由于設(shè)計(jì)的局限性,如果在無(wú)人搶答期間,30秒還未到,主持人不能按下重新下一輪搶答按鈕。 (2)由于試驗(yàn)箱上按鈕數(shù)量有限,故選用開關(guān)代替按鈕,供8位選手搶答使用。鑒于開關(guān)與按鈕動(dòng)作過程的差異,所以每次當(dāng)選手搶答,撥下開關(guān)時(shí)必須將開關(guān)復(fù)位。 (3)當(dāng)系統(tǒng)出現(xiàn)錯(cuò)誤的時(shí)候,停止操作,重新編譯開始。
二、方案設(shè)計(jì)方案:該系統(tǒng)采用51系列單片機(jī)AT89C51作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號(hào)識(shí)別以及顯示功能的實(shí)現(xiàn)。由于用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來(lái)方便、簡(jiǎn)單并且單片機(jī)周圍的輔助電路也比較少,便于控制和實(shí)現(xiàn)。整個(gè)系統(tǒng)具有極其靈活的可編程性,能方便地對(duì)系統(tǒng)進(jìn)行功能的擴(kuò)張和更改。MCS-51單片機(jī)特點(diǎn)如下:
<1>可靠性好:?jiǎn)纹瑱C(jī)按照工業(yè)控制要求設(shè)計(jì),抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號(hào)通道都在同一芯片,因此可靠性高,易擴(kuò)充。 <2>單片機(jī)有一般電腦所必須的器件。 <3> 控制功能強(qiáng):?jiǎn)纹瑱C(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。
三、硬件電路設(shè)計(jì)1、搶答器的電路框圖 如圖3.1.1所示為電路框圖。其工作原理為:接通電源后,主持人按下開關(guān)即為“開始”狀態(tài),宣布“開始”搶答器工作。編號(hào)顯示器滅燈,定時(shí)器顯示設(shè)定時(shí)間。定時(shí)器倒計(jì)時(shí),揚(yáng)聲器給出5s聲響提示。選手在定時(shí)時(shí)間內(nèi)搶答時(shí),搶答器完成:優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次操作"開始、停止"狀態(tài)按鍵。
圖3.1.1電路框圖 2、單元電路3.2.1、搶答器電路 該電路完成兩個(gè)功能:一是判斷出選手按鍵的先后,并鎖存優(yōu)先搶答者的編號(hào),同時(shí)譯碼顯示電路顯示編號(hào);二是禁止其他選手按鍵操作無(wú)效。如有再次搶答需由主持人將S開關(guān)重新置,“清除”然后再進(jìn)行下一次搶答。 3.2.2、時(shí)序控制電路 時(shí)序控制電路是搶答器設(shè)計(jì)的關(guān)鍵,它要完成以下功能:
a.主持人將控制開關(guān)撥到"開始"位置時(shí),揚(yáng)聲器發(fā)聲,搶答電路和定時(shí)電路進(jìn)人正常搶答工作狀態(tài)!
b.當(dāng)參賽選手按動(dòng)搶答鍵時(shí),揚(yáng)聲器發(fā)聲,搶答電路和定時(shí)電路停止工作。 3.2.3、復(fù)位電路設(shè)計(jì) 外部中斷和內(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í)間的記憶功能,所以不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位,只能用軟件復(fù)位,軟件復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完之后,將程序通過一條跳轉(zhuǎn)指令讓它完成復(fù)位。 3、時(shí)鐘震蕩電路時(shí)鐘震蕩電路單片機(jī)必須在89C52驅(qū)動(dòng)下才能工作,在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘震蕩電路,只需要外接一個(gè)振蕩器就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元。 4、報(bào)警電路報(bào)警電路用于報(bào)警,當(dāng)遇到報(bào)警信號(hào)時(shí),發(fā)出警報(bào)。8952動(dòng)喇叭的信號(hào)為各種頻率的脈沖。因此,最簡(jiǎn)單的喇叭驅(qū)動(dòng)方式就是利用達(dá)林頓晶體管,或者以兩個(gè)常用的小晶體管連接成達(dá)林頓架勢(shì)。在右圖中電阻R為限流電阻,在此利用晶體管的高電流增益,以達(dá)到電路快速飽和的目的。不過,如果要由P0輸出到此電路,還需要連接一個(gè)10K的上拉電阻。 file:///C:/Users/83570/AppData/Local/Temp/OICE_78C48033-D549-423C-91D1-C72951558F6E.0/msohtmlclip1/01/clip_image003.jpg 圖3硬件電路圖
四、軟件設(shè)計(jì)1、系統(tǒng)主程序為了能夠達(dá)到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時(shí)間,因而在編開始搶答前的程序得先編寫設(shè)定時(shí)間的程序,當(dāng)時(shí)間設(shè)好了之后,主持人發(fā)布搶答命令按下s1按鍵,程序開始打開定時(shí)中斷開始倒計(jì)時(shí),然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序。當(dāng)在掃描到有人按下了答題鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。 以單片機(jī)為核心,設(shè)計(jì)一個(gè)8位競(jìng)賽搶答器:同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0~S7表示。 設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。 搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。當(dāng)主持人啟動(dòng)“開始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間為0.5s左右。 參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。 如果定時(shí)時(shí)間已到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。
file:///C:/Users/83570/AppData/Local/Temp/OICE_78C48033-D549-423C-91D1-C72951558F6E.0/msohtmlclip1/01/clip_image004.gif 圖4.1主程序方框圖 2、系統(tǒng)程序#include<reg52.h> #defineuint unsigned int #defineuchar unsigned char sbits1=P3^0; sbitwe=P3^6; ucharh[]={0xe0,0xd0,0xb0,0x70}; uchar code table[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar num,count; uchara=0,c=0,t,bb=0,t1; voiddelay(uint z) { uint x,y; for(x=110;x>0;x--) for(y=z;y>0;y--); } voidwrite_sx() { P2=0xdf; P0=0x08; P2=0x00; P0=0xff; P2=0xff; P0=table[t1]; P2=0x00; P0=0x00; delay(5); P2=0xdf; P0=0x40; P2=0x00; P0=0xff; P2=0xff; P0=table[(t/10)%10]; P2=0x00; P0=0x00; delay(5); P2=0xdf; P0=0x80; P2=0x00; P0=0xff; P2=0xff; P0=table[t%10]; P2=0x00; P0=0x00; delay(5); }
voidinit() { P2=0xbf;P0=0xbf; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=0; ET0=1; TR0=1; }
voidkeyscan() { we=0; if(s1==0) { delay(5); if(s1==0) { while(!s1); EA=1; P2=0xbf;P0=0xff; t=30; a=1; t1=10; c=0; } } if(c==0) { P3=0xfd; num=P3; num=num&0xf0; if(num!=0xf0) { delay(5); if(num!=0xf0) { while(P3!=0xfd); c=1; EA=0; if(num==h[3]) t1=1; if(num==h[2]) t1=2; if(num==h[1]) t1=3; if(num==h[0]) t1=4; } }
P3=0xfb; num=P3; num=num&0xf0; if(num!=0xf0) { delay(5); if(num!=0xf0) { while(P3!=0xfb); c=1; EA=0; if(num==h[3]) t1=5; if(num==h[2]) t1=6; if(num==h[1]) t1=7; if(num==h[0]) t1=8; } } } } voidmain() { init(); while(1) { keyscan(); if((a==1)&&((t>0)&&(t<=30))) { write_sx(); } if(t==0) { EA=0; t=0; t1=10; } } } voidtimer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++; if(count==10) { P2=0xbf;P0=0xbf; } if(count==20) { count=0; t--; } } 五、結(jié)論與心得通過這次課程設(shè)計(jì),我深刻的認(rèn)識(shí)到自己在許多方面的不足。通過編程,我學(xué)會(huì)了如何獨(dú)立的寫出程序,提高了自己的分析解決問題的能力,并且使自己所學(xué)的知識(shí)與實(shí)踐相結(jié)合,應(yīng)用到實(shí)踐當(dāng)中。 在剛開始的時(shí)候無(wú)從下手,感覺有些茫然,但同學(xué)和老師給予我很大的幫助,每當(dāng)設(shè)計(jì)過程中遇到困難時(shí),老師都會(huì)細(xì)心的教導(dǎo)我,耐心的為我講解,同學(xué)也熱心幫助我,為我排憂解難,讓我深深的體會(huì)到了團(tuán)隊(duì)的力量和重要性。 通過設(shè)計(jì),我也學(xué)到了很多書本上沒有的知識(shí)。在設(shè)計(jì)當(dāng)中遇到了很多問題,但通過查找資料,克服了這些問題,提高了自己在實(shí)際當(dāng)中解決問題的能力。 在此我感謝學(xué)校給了我們的這次實(shí)踐機(jī)會(huì)。在這里為奔波勞累在這次設(shè)計(jì)中老師便是感謝,老師們不辭勞苦,不在乎身體的不適認(rèn)真為我們講解并為我們知道實(shí)際操作過程中的問題。讓我們一步一步有序完成此次課程設(shè)計(jì)。在這里對(duì)我們的廖老師、曹老師說(shuō)聲謝謝,謝謝你們,你們辛苦了!也祝你們身體健康工作順利 六、參考文獻(xiàn)[1] 張毅剛.《單片機(jī)原理及應(yīng)用》.高等教育出版社,2009 [2] 譚浩強(qiáng).《C程序設(shè)計(jì)教程》.清華大學(xué)出版社 [3] 周興華.《單片機(jī)C程序設(shè)計(jì)》.北京航空航天大學(xué)出版社 教師評(píng)語(yǔ)及設(shè)計(jì)成績(jī) | |
課程設(shè)計(jì)成績(jī): 指導(dǎo)教師:(簽名) 日期:年月日 |
|