51单片机 4路抢答器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

先说下我这个4路抢答器的功能:

5个按键,第五个是复位。第一个按键到第四个按键分别对应4个led 灯,只要1到4的其中任何一个按键按下,其对应的led灯就会亮,再按其他按键,不会有其他led灯亮。第五个按键进行复位,开始下一轮抢答。不多说直接上程序和protues仿真图如下:

注意:我试了下,程序有点小问题,(编译是完全通过的)我也没改出来,毕竟小弟我也才学,有大神知道的话可以给我说说,,谢谢。

#include//51头文件

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;

}

}

}

相关文档
最新文档