用触发器和门电路设计一个三人抢答器。每个抢答人控制一个按钮开关,抢先按动开关能使自己控制的指示灯亮,同
时封锁另外两人的动作,即另外两人按开关也不再起作用。主持人按动主持人开关可使指示灯熄灭并解除封锁。
时封锁另外两人的动作,即另外两人按开关也不再起作用。主持人按动主持人开关可使指示灯熄灭并解除封锁。
【填空题】1、六路抢答器的控制,根据电路补充程序 要求: 系统设置单片机复位按钮,主持人按复位键后,才能开始抢答,最先按下的键其键位码(1-6)被数码管显示出来,其他按键无效,等候主持人再次按下单片机复位键后,才能进行第二次抢答。。/*--------第一部分: 命令--------*/ <reg51.h> //包含头文件reg51.h /*---------第二部分:定义 或常量-------*/ sbit S1=P3^0; //定义P3.0引脚位名称为S1,注意,P3^0必须要大写 sbit S2=P3^1; sbit S3=P3^2; S4=P3^3; sbit S5=P3^4; sbit =P3^5; unsigned char k;//定义无符号字符型变量k,保存键值 unsigned char dm ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管对应段码 /*------第三部分:函数原型申明及 -------*/ void delay( ) { while(i--); } void jsm() { if( )//如果S1按下,或者S2按下,或者S3按下,或者S4按下,或者S5按下,或者S6按下 { delay(1000); //延时去抖 if(S1==0||S2==0||S3==0||S4==0||S5==0||S6==0)//如果确实S1按下,或者S2按下,或者S3按下,或者S4按下,,或者S5按下,或者S6按下 { if( )k=1;//如果S1按下,k赋值为1 else if(S2==0)k=2;//如果S2按下,k赋值为2 else if(S3==0)k=3;//如果S3按下,k赋值为3 else if(S4==0)k=4;//如果S4按下,k赋值为4 else if(S5==0)k=5;//如果S3按下,k赋值为3 else if(S6==0)k=6;//如果S4按下,k赋值为4 (S1==0||S2==0||S3==0||S4==0||S5==0||S6==0) //查询S1是不是按下状态,或者S2按下状态,或者S3按下状态,或者S4按下状态,,或者S5按下状态,或者S6按下状态,继续查询 } } } void jcl //键处理 { //键扫描,获取键值 if(k==1){ while(1);}//S1键按下,数码管显示1,结束 if(k==2){P2=dm[2]; }//S2键按下,显示2,结束 if(k==3){P2=dm[3];while(1);}//S3键按下,显示3,结束 if(k==4){P2=dm[4];while(1);}//S4键按下,显示4,结束 if(k==5){ while(1);}//S5键按下,显示5,结束 {P2=dm[6]; }//S6键按下,显示6,结束 } void //主函数 { { }
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!