您的位置:首頁(yè) > 熱點(diǎn) >

八路搶答器程序和仿真

一 性能指標(biāo)要求:

1、 需要自己設(shè)計(jì)電路并焊接電路板。

本文引用地址:http://www.eepw.com.cn/article/201611/321038.htm

2、基本要求:有一個(gè)主持人控制開(kāi)關(guān)和6路搶答按扭,當(dāng)主持人允許搶答時(shí)才能進(jìn)行搶答操作,并用一個(gè)數(shù)碼管顯示搶答選手的號(hào)碼,同時(shí)其他選手不能再搶答。

3、當(dāng)主持人允許搶答后倒計(jì)時(shí)5秒時(shí)間,在這5秒內(nèi)搶答有效,過(guò)后就不能進(jìn)行搶答了。

4、 電路上要加個(gè)蜂鳴器的電路,當(dāng)有選手搶答時(shí)蜂鳴器響一下。

5、當(dāng)有選手搶答后,進(jìn)行倒計(jì)時(shí)20秒作為選手回答問(wèn)題時(shí)間,用兩個(gè)數(shù)碼管顯示,倒計(jì)時(shí)時(shí)間到時(shí)有聲光提示。

6、 畫(huà)電路板時(shí)要增加下載接口,方便調(diào)試程序。

#include#define uchar unsigned charuchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar code wei[4]={0xef,0xf7,0xfb,0xfd};uchar fen=0,miao=0,qd=0;uchar flag=0,temp=0,flag2=0,tt=0,b=31,bb=31;sbit d0=P1^0;sbit d1=P1^1;sbit feng=P1^3;sbit deng=P1^4;void delay(uchar z){uchar i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void delay2(uchar z){uchar i,j;for(i=z;i>0;i--)for(j=30;j>0;j--);}fengming(){feng=1;delay2(1);feng=0;delay2(1);feng=1;delay2(1);feng=0;delay2(1);

}void time01()//定時(shí)器相關(guān){EA=1;TR0=1;//啟動(dòng)定時(shí)器0ET0=0;//開(kāi)定時(shí)器0中斷TMOD=1;TH0=(65536-50000)/256;TL0=(65536-50000)%6;//聲明:定時(shí)50毫秒

}display(void){P2=wei[0];P0=table[fen];delay(8);P2=wei[1];P0=table[miao];delay(8);P2=wei[3];P0=table[qd];delay(8);}qiangda(void){P3=0xff;delay(15);if(P3!=0xff){delay(5);if(P3!=0xff){switch(P3){case 0xfe: temp=1;break;case 0xfd: temp=2;break;case 0xfb: temp=3;break;case 0xf7: temp=4;break;case 0xef: temp=5;break;case 0xdf: temp=6;break;case 0xbf: temp=7;break;case 0x7f: temp=8;break;}}}return(temp);}daojishi()//30 miao{bb--;miao=bb;fen=bb/10;fengming();if(bb==0){ ET0=0;bb=31;feng=1;deng=1;delay(80);feng=0;}}inition()//初始化{fen=0,miao=0,qd=0;flag=1,temp=0,flag2=0,tt=0;deng=1;}d1pand(){if(d1==0){delay(20);if(d1==0) b--;while(!d1){bb=b;P2=wei[0];P0=table[bb/10];delay(5);P2=wei[1];P0=table[bb];delay(5);if(b<5) b=31;}}}d0pand(){if(d0==0){delay(20);if(d0==0){inition();while(!d0);}}}

void main(){time01();while(1){//fengming();feng=0;display();d1pand();d0pand();if(flag==1){if(flag2==1){flag=0;}else//flag2=0{ET0=1;qd=qiangda();if(qd!=0){ flag2=1;tt=1;deng=0;feng=1;delay(80);feng=0;}}}

}

}

void time0() interrupt1{uchar a;TH0=(65536-50000)/256;TL0=(65536-50000)%6;a++;if(a ==0){miao++;if(miao==6&&flag2==0){feng=1;;miao=0;flag2=1;delay(80);feng=0;ET0=0;}

if(tt==1){daojishi();}}}

標(biāo)簽: 八路搶答器程序和仿

相關(guān)閱讀