资源描述:
《基于51单片机的抢答器.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/**********************51单片机实验开发板例程*************************名称:本例程为一抢答器;其中主持人操控S7与S8两个按键。选手共六位,分别操控S1--S6中的一个按键。当主持人按下抢答开始按键S7后,倒计时开始,计时5s。此后最先按下按键的选手号码将显示与数码管上。后来按下的将无显示。若五秒计时结束后,再按下按键也不会显示。若主持人没有按开始键,就有选手抢答,则视为犯规。此时犯规的选手号码将被显示于数码管上(最多显示五位犯规选手)同时,蜂鸣器发出长笛声报
2、警,数码管全亮。而当主持人按下清零键S8后,一切状态均恢复,可以开始新一轮的抢答。 按键功能简介 S8抢答开始S7清零 S1--S6分别为1到6号选手按键******************************************************************/#include#defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;sbitbeep=P2^3;ucharkey,j,k,temp,daojishi=
3、5,wei;bitbegin,end,clear,fangui;uchara0,b0=16;c0=16;d0=16;e0=16;f0=5;unsignedintpp;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};voiddelay(unsignedchari){for(j=i;j>0;j--)for(k=125;k>0;k--);}vo
4、iddisplay(uchara,ucharb,ucharc,uchard,uchare,ucharf){dula=0;P0=table[a];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table[b];dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);P0=table[c];dula=1;dula=0;P0=0xfb;wela=1;wela=0;delay(5);P0=table[d];dula=1;
5、dula=0;P0=0xf7;wela=1;wela=0;delay(5);P0=table[e];dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(5);P0=table[f];dula=1;dula=0;P0=0xdf;wela=1;wela=0;delay(5);}voidkeyscan(){P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp
6、){case0xee:key=1;wei++;break;case0xde:key=2;wei++;break;case0xbe:key=3;wei++;break;case0x7e:key=4;wei++;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;beep=0;}beep=1;}}P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(te
7、mp){case0xed:key=5;wei++;break;case0xdd:key=6;wei++;break;case0xbd:clear=1;//key=7;break;case0x7d:begin=1;//key=8;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;beep=0;}beep=1;}}}voidmain(){TMOD=0x01;TH0=(65536-46080)/256;//由于晶振为11.0592,故所记次数应为46080,计时器每隔5
8、0000微秒发起一次中断。TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12ET0=1;EA=1;while(1){keyscan();if(begin){if(!end){TR0=1;//if(!daojishi)daojishi=5;//begin=0;//daojishi=5;if(pp==20){pp=0;daojishi--;}f0=dao