基于單片機(jī)的簡易搶答器設(shè)計(jì)_第1頁
基于單片機(jī)的簡易搶答器設(shè)計(jì)_第2頁
基于單片機(jī)的簡易搶答器設(shè)計(jì)_第3頁
基于單片機(jī)的簡易搶答器設(shè)計(jì)_第4頁
基于單片機(jī)的簡易搶答器設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2015.1.16基于單片機(jī)的簡易搶答器一、基本要求一、基本要求1.搶答器輸入路數(shù)為4/8路,用按鍵搶答2.帶有一位LED數(shù)碼管顯示器,用于顯示搶答結(jié)果3.具備復(fù)位功能4.具備定時搶答功能,顯示計(jì)時秒數(shù)09秒二、發(fā)揮部分二、發(fā)揮部分1.增加1位LED顯示器,使計(jì)時時間達(dá)到099秒2.增加音響功能3.增加違規(guī)報警功能按鈕數(shù)碼管蜂鳴器單片機(jī)XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.

2、34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51引腳要怎么分配?所以出現(xiàn)了兩種思路:思路一:利用中斷源擴(kuò)展思路二:利用I/O口擴(kuò)展思路一:利用與門擴(kuò)展中斷源來作為選手的按鈕,采用P3.1作為開始按鈕,外部中斷0作為復(fù)位按鈕。計(jì)時結(jié)果顯示分別接在P0口和P2口,違規(guī)顯示接在P

3、1口。具體接線圖如下所示:01234567891011121378910111213141415161718151617181816181715161715192019200123456XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.

4、7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R1200R2200R3200R4200R5200R6200R7200R8200R9200R10200R11200R12200R13200R1420012456U2:A74LS21R1510kR1610kR1710kR1810kBUZ1BUZZERQ1NPNR19200R20200R21200R22200R23200R24200R25200R26200C11uFC230pFC

5、330pFX1CRYSTALR2710k用來減小干擾預(yù)定義主函數(shù)外部中斷0外部中斷1定時計(jì)數(shù)器T0中斷預(yù)定義與初始化部分主要完成包含文件設(shè)置、輸入輸出口定義、函數(shù)聲明、變量聲明和LED數(shù)碼管顯示字形代碼定義等內(nèi)容。具體C51代碼如下:#include /MCS-51資源包含文件sbit xuan1=P34; sbit xuan2=P35;sbit xuan3=P36;sbit xuan4=P37;sbit kai=P31;sbit buzzer=P30;#define led1 P0#define led2 P1#define led3 P2unsigned int i,time,j;unsi

6、gned char code table10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; /共陽極數(shù)碼管顯示器字形代碼void int0(); /外部中斷0服務(wù)函數(shù)void int1(); /外部中斷1服務(wù)函數(shù)void t0(); /定時計(jì)數(shù)器T0中斷服務(wù)函數(shù)主函數(shù)主要完成系統(tǒng)的初始化,主要包括中斷的開放與禁止、定時計(jì)數(shù)器工作方式的設(shè)定、定時計(jì)數(shù)器初值的裝載等。具體C51代碼如下: main() /主函數(shù) /主函數(shù)開始 EA=1; /開總中斷 TMOD=0 x01; /定時計(jì)數(shù)器T0設(shè)置為方式1,16位定時器方式 T

7、H0=0 x3c; TL0=0 xb0; ET0=1; /開定時計(jì)數(shù)器T0中斷 EX0=1; /開外部中斷0 EX1=1; /開外部中斷1 IT0=1; /外部中斷0設(shè)置為邊沿觸發(fā)方式 IT1=1; /外部中斷0設(shè)置為邊沿觸發(fā)方式 PX0=0; PX1=1; buzzer=0; led1=table0; led3=table0; led2=0 x8e; while(1) if(kai=0) TR0=1; time=99;復(fù)位函數(shù)具體C51代碼如下:void int0() interrupt 0 /外部中斷0服務(wù)函數(shù)定義 TR0=0;time=0; led1=table0; led2=0 x8e

8、; led3=table0; xuan1=1; xuan2=1; xuan3=1; xuan4=1; buzzer=0;按鈕控制函數(shù)具體C51代碼如下:void int1() interrupt 2 /外部中斷1服務(wù)函數(shù)定義 if(TR0=0&time=0) if(xuan1=0&led2=0 x8e) buzzer=1;led2=table1; else if(xuan2=0&led2=0 x8e) buzzer=1;led2=table2; else if(xuan3=0&led2=0 x8e) buzzer=1;led2=table3; else if(x

9、uan4=0&led2=0 x8e) buzzer=1;led2=table4; else if(xuan1=0&TR0=1) led3=table1;TR0=0; led1=table0; else if(xuan2=0&TR0=1) led3=table2;TR0=0;led1=table0; else if(xuan3=0&TR0=1) led3=table3;TR0=0;led1=table0; else if(xuan4=0&TR0=1) led3=table4;TR0=0;led1=table0;違規(guī)判斷搶答判斷定時函數(shù)具體C51代碼如下:v

10、oid t0()interrupt 1 /定時計(jì)數(shù)器T0中斷服務(wù)程序定義TH0=0 x3c;TL0=0 xb0;if(time20)time-; TH0=0 x3c;TL0=0 xb0;i=0; led1=tabletime/10;led3=tabletime%10;elseTH0=0 x3c;TL0=0 xb0; 思路二:利用P1口來作為選手的按鈕,采用外部中斷0作為開始按鈕,外部中斷1作為復(fù)位按鈕。采用74LS373進(jìn)行I/O口擴(kuò)展使得計(jì)時結(jié)果顯示分別接在P0口,違規(guī)顯示接在P0口。具體接線圖如下所示:序號器件編號Proteus器件名稱器件性質(zhì)參數(shù)及說明數(shù)量1U1AT89C51單片機(jī)12M

11、z12X1CRYSTAL晶振12Mz13C1、C2CAP瓷片電容30pF24C3CAP-ELEC電解電容1uF15R1RES電阻10k16R2R23RES電阻200227PBBUTTON按鈕開關(guān)108Q1NPN三極管901319BUZ1BUZZER蜂鳴器110LED7SEG-COM-AN-GRN數(shù)碼管顯示器綠色311U574LS02或非門312U2U474L373鎖存器3用來減小干擾l預(yù)定義l主函數(shù)l外部中斷0l外部中斷1l定時計(jì)數(shù)器T0中斷預(yù)定義與初始化部分主要完成包含文件設(shè)置、擴(kuò)展輸出口定義、函數(shù)聲明、變量聲明和LED數(shù)碼管顯示字形代碼定義等內(nèi)容,具體C51代碼如下:#include /M

12、CS-51資源包含文件#include /絕對地址定義包含文件#define led1 XBYTE0 xDFFF /計(jì)時顯示器地址定義#define led2 XBYTE0 xBFFF/計(jì)時顯示器地址定義#define led3 XBYTE0 x7FFF/違規(guī)操作顯示器地址定義#define xuan P1/選手按鈕宏定義sbit buzzer=P30; /蜂鳴器宏定義void int0();/外部中斷0服務(wù)函數(shù)(啟動鍵)void int1();/外部中斷1服務(wù)函數(shù)(復(fù)位鍵)void t0();/定時計(jì)數(shù)器T0服務(wù)函數(shù)unsigned int time ,i ;/各變量的定義unsigned

13、char code table10=0 xc0,0 xf9,0 xa4,0 xb0, 0 x99,0 x92,0 x82, 0 xf8,0 x80,0 x90; /共陽極數(shù)碼管顯示器字形代碼主函數(shù)主要是完成系統(tǒng)的初始化,包括中斷的開放與禁止、定時計(jì)數(shù)器工作方式的設(shè)定、定時計(jì)數(shù)器初值的裝載等。主函數(shù)的具體C51代碼如下: main() /主函數(shù)定義 TMOD=0 x01; /定時計(jì)數(shù)器T0工作方式選擇 TH0=0 x3c; /定時計(jì)數(shù)器高8位初值裝載 TL0=0 xb0; /定時計(jì)數(shù)器低8位初值裝載 EA=1; /開總中斷 EX0=1; /開外部中斷0 EX1=1; /開外部中斷1 ET0=1;

14、 /開定時計(jì)數(shù)器T0中斷 IT0=1; /下降沿觸發(fā) IT1=1; /下降沿觸發(fā) PX1=1; /外部中斷1為高優(yōu)先級 PX0=0; /外部中斷0為低優(yōu)先級 buzzer=0; /蜂鳴器初值為0 led1=table0; /數(shù)碼管的初值設(shè)定 led2=table0; led3=table0; while(1) /循環(huán)語句 if(TR0=0&time=0) /進(jìn)行判斷,并做出相應(yīng)設(shè)置 if(xuan=0 xfe) led3=table1; buzzer=1; else if (xuan=0 xfd) led3=table2; buzzer=1; else if (xuan=0 xfb)

15、led3=table3; buzzer=1; else if (xuan=0 xf7) led3=table4; buzzer=1; else if (xuan=0 xef) led3=table5; buzzer=1; else if (xuan=0 xdf) led3=table6; buzzer=1; else if (xuan=0 xbf) led3=table7; buzzer=1; else if (xuan=0 x7f) led3=table8; buzzer=1; 違規(guī)判斷if(TR0=1) if(xuan=0 xfe) led2=table1;led1=table0; TR0

16、=0; else if (xuan=0 xfd) led2=table2;led1=table0;TR0=0; else if (xuan=0 xfb) led2=table3;led1=table0;TR0=0; else if (xuan=0 xf7) led2=table4;led1=table0;TR0=0; else if (xuan=0 xef) led2=table5;led1=table0;TR0=0; else if (xuan=0 xdf) led2=table6;led1=table0;TR0=0; else if (xuan=0 xbf) led2=table7;led

17、1=table0;TR0=0; else if (xuan=0 x7f) led2=table8;led1=table0;TR0=0; 搶答判斷啟動函數(shù)是采用外部中斷0進(jìn)行的,主要功能是開定時計(jì)數(shù)器T0中斷,設(shè)置定時時間初值。具體C51代碼如下:void int0() interrupt 0TR0=1;time=99;復(fù)位函數(shù)是采用外部中斷1使所有的變量恢復(fù)初始化。具體C51代碼如下:void int1() interrupt 2TR0=0;time=0; led1=table0; led2=table0; led3=table0; xuan=0 xff; buzzer=0;void t0() interrup

溫馨提示

  • 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

提交評論