51单片机 4路抢答器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
先说下我这个4路抢答器的功能:
5个按键,第五个是复位。第一个按键到第四个按键分别对应4个led 灯,只要1到4的其中任何一个按键按下,其对应的led灯就会亮,再按其他按键,不会有其他led灯亮。第五个按键进行复位,开始下一轮抢答。不多说直接上程序和protues仿真图如下:
注意:我试了下,程序有点小问题,(编译是完全通过的)我也没改出来,毕竟小弟我也才学,有大神知道的话可以给我说说,,谢谢。
#include
sbit key0 = P3^0;//定义key0,为P3^0引脚
sbit key1 = P3^1;//定义key1,为P3^1引脚
sbit key2 = P3^2;//定义key2,为P3^2引脚
sbit key3 = P3^3;//定义key3,为P3^3引脚
sbit key4 = P3^4;//定义key4,为P3^4引脚
void main()//主函数
{
while(1)死循环
{
if(key0==0) {P1 = 0xfe;P3 = 0xf0;}//如果key0等于0,即闭合,led1亮,将其他三个按钮锁定为低电平
else if(key1==0) {P1 = 0xfd;P3 = 0xf0;}//如果key0等于1,即闭合,led2
亮,将其他三个按钮锁定为低电平
else if(key2==0) {P1 = 0xfb;P3 = 0xf0;}//如果key0等于2,即闭合,led3亮,将其他三个按钮锁定为低电平
else if(key3==0) {P1 = 0xf7;P3 = 0xf0;}//如果key0等于3,即闭合,led4亮,将其他三个按钮锁定为低电平
if(key4==0) //复位按钮按下闭合,则复位
{
P1 = 0xff;P3 = 0xff;
}
}
}