📄 四路抢答器程序.txt
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit P2_0=P2^0;//扬声器输出
sbit P2_2=P2^2;//主持人开关控制
uchar GroupNo;
uchar code Seg7code[9]={0x3f,0x06,0x5b,0x4f,0x66};//0到4的代码
void delay1ms(void)//延迟
{uchar i;
for(i=250;i>0;i--);
}
void ShowG(uchar no)//显示出第几个人按下按键
{P1=Seg7code[no];}
uchar KeySweep(void)//键盘扫描,获取组数
{uchar temp,no=0;
if(P3!=0x00)
{delay1ms();
if(P3!=0x00)
temp=P3;
}
while(temp!=0)
{temp=temp>>1;//扫描右移
no++;
}
return no;//返回第几个按键按下
}
void timer0_isr(void) interrupt 1//t0中断
{TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
P2_0=~P2_0;
}
void main()//主函数部分
{TMOD=0x02;//设置TMOD的工作方式 工作在定时器方式2
TH0=(65536-50000)/256;//预置计数初值
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
while(1)
{P3=0x00;
ShowG(0);//没有按键按下时数码管显示0
while(P3==0x00);
GroupNo=KeySweep();//调用键盘扫描函数
ShowG(GroupNo);//调用显示函数
EA=1;//进入中断服务程序
while(P2_2==1);
delay1ms();
while(P2_2==1);//主持人开关清零
EA=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -