基于單片機的八路搶答器設(shè)計報告(共25頁)_第1頁
基于單片機的八路搶答器設(shè)計報告(共25頁)_第2頁
基于單片機的八路搶答器設(shè)計報告(共25頁)_第3頁
基于單片機的八路搶答器設(shè)計報告(共25頁)_第4頁
基于單片機的八路搶答器設(shè)計報告(共25頁)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上八路搶答器設(shè)計報告設(shè)計課題: 八路搶答器 專業(yè)班級: 學(xué)生姓名: 學(xué)號:指導(dǎo)教師: 設(shè)計時間: 一、系統(tǒng)設(shè)計內(nèi)容1.1系統(tǒng)設(shè)計依據(jù) 搶答器由計數(shù)器、寄存器、集成定時器和譯碼顯示等組合、時序電路組成??煞譃閾尨痣娐?,定時電路,報警電路等幾個單元部分。每個單元電路分別可以處理一些搶答競賽中的基本問題。 本次課程設(shè)計設(shè)計的是一個多路定時搶答器,是一個多于兩位選手參賽的一個搶答器,具有鎖存和顯示功能。同時有主持人控制系統(tǒng)的清零和搶答的開始。搶答開始后,若有任何一名選手按動搶答按鈕,搶答器就會顯示該選手編號直至系統(tǒng)被主持人清零,并有揚聲器發(fā)出提示,同時其他人再搶答就無效了。這次

2、設(shè)計的搶答器還有自動定時功能,主持人可以設(shè)定選手答題的時間。當(dāng)主持人啟動“開始”鍵后,定時器會自動減計時,這個會顯示在顯示器上。選手只有在搶答時間內(nèi)搶答才有效,若在答題時間內(nèi)沒有選手答題,時間到時,報警電路就會發(fā)出警報亮燈并且禁止搶答。1.2設(shè)計任務(wù)和要求設(shè)計一個八路搶答器要求:(1)設(shè)計出硬件電路; (2)設(shè)計出軟件編程方法,并寫出源代碼; (3)用PROTEUS進(jìn)行仿真; (4)論文格式要符合學(xué)院的統(tǒng)一規(guī)定,結(jié)構(gòu)要合符邏輯,表達(dá)要得體。1.3 設(shè)計目的通過設(shè)計學(xué)習(xí)單片機最小系統(tǒng)的基本設(shè)計方法,掌握單片機應(yīng)用系統(tǒng)的開發(fā)調(diào)試過程。(1)學(xué)習(xí)單片機開發(fā)工具功能、特點和使用方法。(2)學(xué)會單片機控

3、制系統(tǒng)程序的編制和編制和調(diào)試方法。(3)設(shè)計單片機搶答器硬件電路,繪制出電路原理圖。(4)編制并調(diào)試出鍵盤掃描程序和顯示驅(qū)動程序。(5)掌握單片機定時器的基本用法,編制出定時器的中斷程序。第2章 硬件設(shè)計2.1 單片機控制原理單片機(SCM)是單片微型計算機(Single Chip Microcomputer)的簡稱。它是把中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O接口電路、定時/計數(shù)器以及輸入輸出適配器都集成在一塊芯片上,構(gòu)成一個完整的微型計算機。它的最大優(yōu)點是體積小,可放在儀表內(nèi)部。但存儲量小,輸入輸出適配器簡單,功能較低。目前,單片機在民用和工業(yè)測控領(lǐng)域得到最廣泛的應(yīng)用

4、,早已深深地融入人們的生活中。簡單的說,用單片機系統(tǒng)來設(shè)計搶答器,實現(xiàn)兩組的搶答時間即使是相差幾微秒,也可分辨出哪組優(yōu)先答題。P0端口(P0.0-P0.7):P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1端口(P1.0-P1.7):P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高電平,可

5、用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2端口(P2.0-P2.7):P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLAS

6、H編程和校驗時接收高八位地址信號和控制信號。P3端口(P3.0-P3.7):P3口管腳是一個帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時,由于外部下拉為低電平,P3口將輸出電流(ILL)。2.2 搶答器的原理搶答器的工作原理是采用單片機最小系統(tǒng),用程序查詢方式采用動態(tài)顯示組號。主持人按下開始搶答鍵才可以搶答。主持人沒有按下開始搶答按紐(P3.0),有人搶答則搶答違規(guī),報警并顯示組號,主持人按下開始搶答開關(guān)重新?lián)尨?。主持人按下開始搶答按紐(P3.0),蜂鳴響聲提示,數(shù)碼管30秒倒計時搶答,蜂鳴器響聲提示

7、并顯示他的組號,30秒內(nèi)有人搶答則開始60秒倒計時(60秒內(nèi)必須回答完問題),最后五秒倒計時警報。單片機最小系統(tǒng)、搶答按鍵模塊(四位并行數(shù)碼顯示)、顯示模塊、顯示驅(qū)動模塊、搶答開關(guān)模塊、蜂鳴器音頻輸出模塊。2.2.1 原理及電路總框圖圖2.2.1搶答器總原理圖2.3 功能模塊電路2.3.1晶振復(fù)位及開始搶答電路晶振的頻率為12MHZ,提供89C51的時鐘脈沖使89C51工作,復(fù)位電路是單片機初始化,使單片機重新開始執(zhí)行程序。當(dāng)復(fù)位開關(guān)按下RST由低電平變?yōu)楦唠娖?,則程序從頭開始執(zhí)行,在此次課程設(shè)計電路中當(dāng)一個問題結(jié)束主持人后按下復(fù)位開關(guān)后進(jìn)行下一題的準(zhǔn)備。專心-專注-專業(yè)圖2.3.1 晶振復(fù)位

8、電路圖2.3.1開始搶答電路2.3.2 選手搶答鍵(矩陣式鍵盤)89C51的P1口做一個為選手搶答的輸入按鍵引腳,P1.0至P1.7輪流輸出低電位,給每一個選手編號1至8,當(dāng)選手按下按鈕時,P1口個端口的電平變化從P1口輸入,經(jīng)單片機處理后從P0輸出由數(shù)碼管顯示搶答者編號。圖2.3.2 選手搶答電路2.3.3 顯示與顯示驅(qū)動電路此電路包括顯示和驅(qū)動,顯示采用數(shù)碼管,驅(qū)動用P2口, 違規(guī)者編號、搶答30秒倒計時、正常搶答者編號和回答問題時間60秒倒計時,數(shù)碼管采用動態(tài)顯示。驅(qū)動電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動數(shù)碼管使其顯示數(shù)字。在+5V電

9、壓下接10k的電阻,保證正常壓降。圖2.3.3 示與顯示驅(qū)動電路2.3.4蜂鳴器音頻輸出電路通過控制不同頻率的矩形脈沖來控制蜂鳴器發(fā)聲。此次課程設(shè)計中只需要一些簡單的提示聲音和稍微顯眼的燈控,有搶答違規(guī),開始搶答,搶答時間結(jié)束和回答時間到得提示聲和亮燈提醒。圖2.3.4蜂鳴器音頻輸出電路第3章 軟件設(shè)計3.1程序設(shè)計3.1.1 系統(tǒng)流程圖3.1.2顯示搶答違規(guī)流程圖3.1.3搶答成功流程圖3.2 程序代碼3.2.1 主程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit m1=P31;

10、 /主持人按鍵答對加分,按一下加一分sbit m2=P32; /答錯減分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=P30; /主持人按鍵開始sbit beep=P37; /蜂鳴器uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77; /0-9代碼uchar shiwei,gewei,xuanshou,count,i,second;

11、uchar score1,score2,score3,score4,score5,score6,score7,score8;/選手18的分?jǐn)?shù)uint t,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8;void Timer()TMOD|=0x01;TH0=0xd8; /初值55536,計數(shù)10000次,每次1US,總計10msTL0=0xf0;IE=0x82; /這里是中斷優(yōu)先級控制EA=1(開總中斷),ET0=1(定時器0允許中斷),這里用定時器0來定時TR0=1; void tim(void) interrupt 1 using 1 /為定時中斷TR0TH0=0xd8; /重新

12、賦值TL0=0xf0;count+;if(count=100) /100*10ms=1秒count=0;second-; /秒減1void delay(uint z) /延時函數(shù)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void display (uchar shiwei,gewei,xuanshou) /顯示函數(shù)P2=0xfe; /打開顯示時間十位的位選P0=shiwei;/顯示十位delay(5);P2=0xfd;/個位位選P0=gewei;delay(5);P2=0xf7; /選手位選P0=xuanshou;delay(5);void

13、 dis(void)shiwei=tabsecond/10; gewei=tabsecond%10;xuanshou=tabi;display (shiwei,gewei,xuanshou);void init() /初始化函數(shù) P2=0x04;P0=0x3f;t=0;beep=0;i=0;second=29;score1=60;score2=60;score3=60;score4=60;score5=60;score6=60;score7=60;score8=60;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;void main() init();if(k=

14、0) /主持人按下開始鍵Timer();delay(10);while(!k);while(1)dis();m=0;n=0;if(second=10)beep=1;delay(500);beep=0;if(second=0) TR0=0;n=1;if(k=0)beep=1;delay(500);beep=0;second=29;TR0=1;m=1; if(n=0) if(k1=0) delay(5);if(k1=0);while(!k1);t=1;else if(k2=0) delay(5);if(k2=0);while(!k2);t=2;else if(k3=0) delay(5);if(k

15、3=0);while(!k2);t=3;else if(k4=0) delay(5);if(k4=0);while(!k2);t=4;else if(k5=0) delay(5);if(k5=0);while(!k2);t=5;else if(k6=0) delay(5);if(k6=0);while(!k2);t=6;else if(k7=0) delay(5);if(k7=0);while(!k2);t=7;else if(k8=0) delay(5);if(k8=0);while(!k2);t=8;else if(k=0) delay(5);if(k=0);while(!k);t=0;i

16、=0;second=29;beep=1;delay(500);beep=0;TR0=1;while(t)if(m=0) /開關(guān),保證程序只執(zhí)行一次switch(t)case 1:TR0=0;i=1;second=0;beep=1;delay(500);beep=0;a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 2:TR0=0;i=2;second=0;beep=1;delay(500);beep=0;a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 3:TR0=0;i=3

17、;second=0;beep=1;delay(500);beep=0;a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 4:TR0=0;i=4;second=0;beep=1;delay(500);beep=0;a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 5:TR0=0;i=5;second=0;beep=1;delay(500);beep=0;a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break;case 6:TR0=0;

18、i=6;second=0;beep=1;delay(500);beep=0;a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break;case 7:TR0=0;i=7;second=0;beep=1;delay(500);beep=0;a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break;case 8:TR0=0;i=8;second=0;beep=1;delay(500);beep=0;a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break;if(a1=0) /

19、選手1的分?jǐn)?shù)second=score1;dis(); if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score1+=1;if(score1=99)score1=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score1-=1;if(score1=0)score1=60;dis(); else if(a2=0) second=score2;dis();if(m1=0) delay(5);if(m1=0);while(!m

20、1);beep=1;delay(100);beep=0;score2+=1;if(score2=99)score2=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score2-=1;if(score2=0)score2=60;dis(); else if(a3=0)second=score3;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score3+=1;if(score3=99)score3=60; e

21、lse if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score3-=1;if(score3=0)score3=60;second=score3;dis();else if(a4=0)second=score4;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score4+=1;if(score4=99)score4=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;d

22、elay(100);beep=0;score4-=1;if(score4=0)score4=60;second=score4;dis();else if(a5=0)second=score5;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score5+=1;if(score5=99)score5=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score5-=1;if(score5=0)score5=60;s

23、econd=score5;dis();else if(a6=0)second=score6;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score6+=1;if(score6=99)score6=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score6-=1;if(score6=0)score6=60;second=score6;dis();else if(a7=0)second=score7;dis(

24、);if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score7+=1;if(score7=99)score7=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score7-=1;if(score7=0)score7=60;second=score7;dis();else if(a8=0)second=score8;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score8+=1;if(score8=99)score8=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score8-=1;if(score8=0)score8=60;second=score8;dis();if(k=0)i=0;t=0;second=29;beep=1;d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論