基于單片機AT89C51控制的搶答器課題設計報告.doc_第1頁
基于單片機AT89C51控制的搶答器課題設計報告.doc_第2頁
基于單片機AT89C51控制的搶答器課題設計報告.doc_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

寧波技師學院課 程 設 計 報 告論文題目 搶答器 專業(yè)班級 學生姓名 指導教師 寧波技師學院電氣技術(shù)系二零一三年 9月21日摘 要:在日常生活中,我們可以在電視,或者現(xiàn)實生活活動現(xiàn)場可以看到在答題或者游戲中,他總能第一時間測到誰是第一個,讓我們的世界少了那些不必要的爭議,那是什么,那就是搶答器。通過一次又一次科學的進步,單片機在發(fā)展,各種功能運用到現(xiàn)實生活的各種領域讓我們生活更加的接近理想話以及通過簡單的操作完成手工無法完成或者很難做到的事情,例如家電,通信,商業(yè),工業(yè),航空,航天,軍事以及汽車方面。當然這次我們做的是其中的一種那就是搶答器,它具有很高的安全性、可靠性,準確性,應用日益廣泛。隨著人們經(jīng)濟生活的發(fā)展以及生活條件的上去,大家都希望生活在一個無爭議的日子里,那么科學就努力的去完成它,這次的搶答器就是一個很好的反饋以及顯示更加直觀的展現(xiàn)在大家的眼前?;谝陨纤悸?,本次設計使用 atmel公司的 at89c51 實現(xiàn)一基于單片機的搶答器設計,其主要具有如下功能: (1)搶答時間調(diào)試,限時時間調(diào)試這兩個功能都是要在最開始時調(diào)試??梢愿淖冋{(diào)試搶答時間和限時時間。(2)聲光報警系統(tǒng)。搶答時間倒計時時會報警閃爍,以及蜂鳴器報警還有時間提示。(3)鎖定功能。為了很好的在第一時間鎖定第一位,搶答器做了很好的反饋功能,為此能夠更加精確的鎖定反饋第一位搶答器是由一個at89c51、輸出八段顯示電路。另外系統(tǒng)還有 led 提示燈,報警蜂鳴器等。 搶答器的功能在于反饋以及最快的時間做出選擇: (1)限時時間調(diào)試搶答時間調(diào)試功能:這是一個十分人性化的設計,他可以在不同的場合用不同的時間來限定搶答以及限時時間的調(diào)試。 (2)搶答鎖定功能:當按下?lián)尨疰I時,搶答器會判斷第一個搶答的以及顯示搶答人的編號。 (3)報警系統(tǒng):當搶答倒計時到5秒時開始二極管開始閃爍報警蜂鳴器開始鳴叫。 主要的設計實施過程:首先,選用 atmel公司的單片機 at89c51,以及選購其他電子元器件。第二步,使用protel設計硬件電路原理圖,并設計 pcb圖完成人工布線。第三步,使用medwin 軟件編寫單片機的 c語言程序、仿真、軟件調(diào)試。第四部,使用 proteus 軟件進行模擬軟、硬件調(diào)試。最后,聯(lián)合軟、硬件調(diào)試電路板,完成本次設計。 寧波技師學院電氣系xxx課程設計 28 目錄概 述11總體設計方案21.1系統(tǒng)設計方案21.2系統(tǒng)總體結(jié)構(gòu)框圖32硬件設計(元器件清單)33軟件設計53.1主程序流程圖53.2鍵盤和顯示程序54制作和調(diào)試75結(jié)論86致謝97參考文獻108 附圖概 述隨著科技的發(fā)展,單片機已不是一個陌生的名詞,它的出現(xiàn)是近代計算機技術(shù)發(fā)展史上的一個重要里程碑,因為單片機的誕生標志著計算機正式形成了通用計算機系統(tǒng)和嵌入式計算機系統(tǒng)兩大分支。單片機單芯片的微小體積和低的成本,可廣泛地嵌入到如玩具、家用電器、機器人、儀器儀表、汽車電子系統(tǒng)、工業(yè)控制單元、辦公自動化設備、金融電子系統(tǒng)、艦船、個人信息終端及通訊產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具。本文所涉及的是市場占有率最高的是mcs51系列,因為世界上很多知名的ic生產(chǎn)廠家都生產(chǎn)51兼容的芯片。到目前為止,mcs51單片機已有數(shù)百個品種,還在不斷推出功能更強的新產(chǎn)品。本設計是基于單片機的搶答器設計方案,根據(jù)要求,給出了該單片機搶答器的硬件電路和軟件程序,同時給出了單片機型號的選擇、硬件設計、軟件流程圖、單片機存儲單元的分配、匯編語言源程序及詳細注釋等內(nèi)容1 總體設計方案方案一:采用數(shù)字電路控制。采用數(shù)字顯示電路的好處就是設計簡單。用以在p0口外接電阻做輸出口并接數(shù)碼管來顯示時間 ,共設了8個用戶輸入鍵,當搶答的時候,其中只有1個是有效按鍵,其它的都是干擾按鍵,若按下干擾鍵,將無反應只顯示第一位搶答編號,如果用戶搶答的時間剩下5秒(一般情況下,用戶不會超過5秒,若用戶覺得不便,還可以修改)電路將報警。電路由兩大部分組成:顯示器電路和主電源電源(ups),其中設置時間調(diào)整是為了可以合理的調(diào)節(jié)時間更加的人性化和用于不同的場合。方案二:采用一種是用以at89c51為核心的單片機控制方案。利用單片機靈活的編程設計和豐富的io端口,及其控制的準確性,不但能實現(xiàn)基本的搶答器功能,還能添加調(diào)節(jié)功能等等。通過比較以上兩種方案,單片機方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統(tǒng)進行升級,所以我們采用后一種方案。1.1 系統(tǒng)設計方案 本方案采用一種是用以at89c51為核心的單片機控制方案。利用單片機靈活的編程設計和豐富的i/o端口,及其控制的準確性,實現(xiàn)基本的搶答顯示功能。初步設計思路如下:搶答器用按鈕為了更加方便直觀的使用。led數(shù)碼管顯示第一位搶答號以及搶答時間以及限時時間。用發(fā)光二極管代替報警的電路,發(fā)光表示倒計時已經(jīng)進入5秒計時。到計時間到,系統(tǒng)報警。打開電源后,顯示器顯示“f ff”,只要第一個按下?lián)尨鹌鞯木蜁@示搶答號。這樣可預防搶答的時候出現(xiàn)不必要的麻煩。按“復位”鍵,清除顯示器為“f ff”。按開始鍵開始搶答倒計時,當有人搶到第一個誕生那么主持人開始問問題,并且按下限時按鈕開始倒計時,一共為二十秒,搶答人必須要在20秒內(nèi)講出答案如果進入最后5秒那么開始報警閃光提示,當閃光介紹那么就說明答題介紹并且蜂鳴器鳴叫以提示。然后進入第二輪的搶答要按下復位按鈕,來更好的完成接下來的任務。1.2 系統(tǒng)總體結(jié)構(gòu)框圖 圖3-0具體的功能設計如表3.1:表3.1 按鍵功能按 鍵鍵 名功 能 說 明18鍵數(shù) 字 鍵搶答號復位鍵復位鍵結(jié)束上一輪的搶答開始鍵開始 鍵搶答開始限時鍵限時開始鍵設定答題的時間限時時間調(diào)節(jié)限時調(diào)節(jié)鍵修改答題時間搶答時間調(diào)節(jié)搶答調(diào)節(jié)鍵修改搶答時間1.3 功能實現(xiàn)顯示區(qū)在本次設計中,基于節(jié)省材料的原則,暫時用發(fā)光二極管代替提示系統(tǒng),發(fā)光管亮,表示5秒倒計時;滅,表示倒計時介紹。當p口輸出低電平時,二極管發(fā)光,提示答題即將結(jié)束。2.硬件設計 元器件清單元器件數(shù)量元器件數(shù)量4位一體數(shù)碼管(共陰極)1個電阻1k,10k8個,1個at89c511個發(fā)光二極管1個蜂鳴器1個按鈕開關(guān)13個電容100uf1個晶振lsd121個電容30pf2個3. 軟件設計電子密碼鎖工作的主要過程是led數(shù)碼管提示開始倒計時和限時搶答號,通過按鍵搶答,同時led顯示倒計時情況,按下?lián)尨疰I后判斷第一位搶答號,作出倒計時和搶答號已經(jīng)報警提示處理。由于采用多個按鍵來完成搶答,那么其中一個第一個完成按鍵的會在數(shù)碼管上顯示搶答號。在搶答過程中,首先要進入開始搶答的步驟,接著根據(jù)搶答號由顯示的搶答人來答題,直到回答出或者倒計時結(jié)束,才能完成搶答過程。進入搶答號的判斷比較處理狀態(tài)并給出相應的處理過程。 3.1程序流程圖3.2鍵盤和顯示程序#include#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=20;/搶答時間char datitime=30;/答題限時時間uint tt,t1;/t0,t1定時器定一秒時bit flag,s_flag=1,b_flag,fall_flag;/標志位bit k_startcountflag,k_timecountflag;/時間調(diào)整標志位sbit k0=p30;sbit beep=p37; /蜂鳴器輸出口sbit rled=p31;/指示燈輸出口sbit k1=p10;sbit k2=p11;sbit k3=p12;sbit k4=p13;sbit k5=p14;sbit k6=p15;sbit k7=p16;sbit k8=p17;sbit k_time=p32;/答題計時鍵sbit k_startcount=p33;/開始搶答時間調(diào)整鍵sbit k_timecount=p34;/答題計時時間調(diào)整鍵void delay(uchar ms)uchar y;for(;ms0;ms-)for(y=120;y0;y-);uchar code tabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code tablewe=0xfe,0xfd,0xfb,0xf7;void t0_init(void)tmod=0x01;th0=(65536-2000)/256;tl0=(65536-2000)%256;th1=(65536-2000)/256;tl1=(65536-2000)%256;et0=1;et1=1;ea=1;p0=0;void key_scan(void)/開始鍵掃描if(k0=0)delay(10);if(k0=0)while(!k0);tr0=1;s=time;tt=0;flag=1;s_flag=1;b_flag=1;num=0;beep=1;rled=1;fall_flag=0;/清除違規(guī)標志位k_startcountflag=0;k_timecountflag=0;void scan(void)/八路熱鍵掃描(哪個鍵先按下,哪個優(yōu)先級最高)if(k1=0)delay(10);if(k1=0)while(!k1);num=1;/數(shù)碼管顯示1號1tr0=0;/關(guān)閉定時器0,時間停止tr1=1;/打開定時器1,使揚聲器響一聲s_flag=0;/關(guān)閉開始鍵標志位,使再按其他七個鍵不會響應if(k2=0)/下面七個鍵的處理同上delay(10);if(k2=0)while(!k2);num=2;tr0=0;tr1=1;s_flag=0;/重要if(k3=0)delay(10);if(k3=0)while(!k3);num=3;tr0=0;tr1=1;s_flag=0;if(k4=0)delay(10);if(k4=0)while(!k4);num=4;tr0=0;tr1=1;s_flag=0;if(k5=0)delay(10);if(k5=0)while(!k5);num=5;tr0=0;tr1=1;s_flag=0;if(k6=0)delay(10);if(k6=0)while(!k6);num=6;tr0=0;tr1=1;s_flag=0;if(k7=0)delay(10);if(k7=0)while(!k7);num=7;tr0=0;tr1=1;s_flag=0;if(k8=0)delay(10);if(k8=0)while(!k8);num=8;tr0=0;tr1=1;s_flag=0;void display(void)if(flag=1)/開始鍵按下,開始計時搶答if(num!=0)/如果有人搶答,則顯示相應的幾號p0=tabledunum;/顯示幾號搶到了p2=tablewe0;delay(2);p0=0;p2=0xff;else/否則沒人搶答,則前面不顯示幾號p0=0;p2=0xff;p0=tabledus/10;/下面為顯示搶答倒計時p2=tablewe2;delay(2);p0=0;p2=0xff;p0=tabledus%10;p2=tablewe3;delay(2);p2=0xff;p0=0;else/如果開始鍵沒有按下,則顯示f ff(若有違規(guī)者,則顯示違規(guī)號碼及 ff)或時間調(diào)整if(fall_flag=1)/違規(guī)顯示if(num!=0)p0=tabledunum;/顯示幾號違規(guī)了p2=tablewe0;delay(2);p0=0;p2=0xff;p0=tabledu15;/下面顯示 ff,表示違規(guī)了p2=tablewe2;delay(2);p0=0;/消隱p2=0xff;p0=tabledu15;p2=tablewe3;delay(2);p0=0;p2=0xff;elsep0=0;p2=0xff;else/沒有人違規(guī)才顯示調(diào)整時間if(k_startcountflag=1)p0=0x6d;/第一位數(shù)碼管顯示5(s)(表示搶答時間調(diào)整)p2=tablewe0;delay(2);p0=0;p2=0xff;p0=tabledutime/10;/下面顯示調(diào)整的搶答時間p2=tablewe2;delay(2);p0=0;p2=0xff;p0=tabledutime%10;p2=tablewe3;delay(2);p0=0;p2=0xff;else if(k_timecountflag=1)p0=0x07;/第一位與第二位數(shù)碼管合起來顯示t,表示答題時間調(diào)整p2=tablewe0;delay(2);p0=0;p2=0xff;p0=0x31;p2=tablewe1;delay(2);p0=0;p2=0xff;p0=tabledudatitime/10;p2=tablewe2;delay(2);p0=0;p2=0xff;p0=tabledudatitime%10;p2=tablewe3;delay(2);p0=0;p2=0xff;else/否則顯示f ffp0=tabledu15;p2=tablewe0;delay(2);p0=0;p0=tabledu15;p2=tablewe2;delay(2);p0=0;/消隱p2=0xff;p0=tabledu15;p2=tablewe3;delay(2);p0=0;p2=0xff;void time_scan(void)/調(diào)整時間鍵掃描if(k_startcount=0)/搶答時間調(diào)整delay(10);if(k_startcount=0)while(!k_startcount);time+;if(time=50)time=20;k_startcountflag=1;/將搶答時間標志位置1k_timecountflag=0;/同時關(guān)閉答題時間標志位if(k_timecount=0)/答題時間調(diào)整delay(10);if(k_timecount=0)while(!k_timecount);datitime+;if(datitime=60)datitime=30;k_timecountflag=1;k_startcountflag=0;void main(void)t0_init();while(1)key_scan();/開始鍵掃描if(flag=0)&(s_flag=1)/當開始鍵沒按下及沒有人違規(guī)時才可進行時間調(diào)整time_scan();if(flag=1)&(s_flag=0)/當開始鍵按下及有人搶答才進行開始回答計時倒計時if(k_time=0)delay(10);if(k_time=0)while(!k_time);s=datitime;tr0=1;tt=0;tr1=1;if(flag=0)&(s_flag=1)/違規(guī)scan();if(num!=0)/開始鍵沒有按下時,有人按下了搶答器,則置違規(guī)標志位fall_flag=1;rled=0;if(flag=1)&(s_flag=1)/如果開始鍵按下且搶答鍵沒有人按下,則進行八路搶答鍵掃描scan();display();/顯示到數(shù)碼管上void timer0(void) interrupt 1th0=(65536-2000)/256;/2mstl0=(65536-2000)%256;if(b_flag)/開始(start)鍵按下,嘟一聲(長1秒),表示開始搶答beep=beep;elsebeep=1;if(s5)/搶答時間快到報警,隔1秒響一聲且紅燈閃爍,響三聲if(s%2=0)b_flag=1;rled=0;elseb_flag=0;rled=1;tt+;if(tt=500)/1秒tt=0;s-;b_flag=0;/關(guān)閉開始鍵按下響一秒的嘟聲if(s=-1)s=20;tr0=0;flag=0;/顯示f ffs_flag=1;num=0;rled=1;void timer1(void) interrupt 3/定時器1處理有人按下?lián)尨鹌鬣揭宦?長1秒)th1=(65536-2000)/256;tl1=(65536-2000)%256;beep=beep;t1+;if(t1=500)t1=0;tr1=0;4 制作和調(diào)試本次調(diào)試采用protues軟件仿真。首先設計搶答器的源程序,源程序經(jīng)過匯編后,生成的目標文件經(jīng)過仿真調(diào)試。上電之后,數(shù)碼管顯示按下開始按鈕后,數(shù)碼管開始20秒倒計時如下圖:搶答選手在20秒之內(nèi)搶答,數(shù)碼管顯如下圖:按下限時按鈕(選手答題時間按鈕),數(shù)碼管如下圖:按下復位按鈕后,數(shù)碼管顯示如下圖:5 結(jié)論課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術(shù)是十分重要的。回顧起此次單片機課程設計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論