8位抢答器
利用51单片机设计一个8位抢答器。按下按钮,倒计时10s,初始状态LED处于熄灭状态,最后5s倒计时伴随LED闪烁。有玩家抢答或者计时结束时,LED灯常亮。开始计时后的任意状态下再次按下按钮,抢答器重置。
Proteus布线图
代码
变量说明:
sbit LED = P3^1; //led
sbit key4=P3^4; //TO计时器
uint xian[4]={
0};//数据存储
uint N=20;//Time=50ms*20=1s
uint begin=0;//判断开始和结束
uint counter=10;//计时10s
uint player=0;//玩家号码
uint flag=0;//有玩家抢答,暂停
uchar p1=0x00;
初始化:
void init()
{
TMOD=0x01;
TH0=(65536-41500)/256;
TL0=(65536-41500)%256;
ET0=1;
TR0=0;
EX0=1;
IT0=1;
EA=1;
}
主函数:
void main(void)
{
init();
counter=10;
LED=1;
SPEAKER=