初学51单片机,我用单片机(STC89C52RC)的P3.4和P3.5两个I/O口分别接两个独立按键,想把这两个独立按键的四种状态(00,01,10,11)用P1口接的4个led小灯显示出来。
但是用我自己写的程序下载进学习板,每次只有当把两个按键都按下,才有一个小灯亮。其余三种按键状态怎么也显示不出来。
单片机源程序如下:
- #include<reg52.h>
- void main(void)
- {
- unsigned char temp;
-
- while(1)
- {
- P3 = 0XFF; //P3.4,P3.5作为独立键盘输入口
- temp = P3;
- temp = temp & 0X30; //保留 P3.4和P3.5,屏蔽其他位
- switch(temp)
- {
- case 0X00: P1=0XFE; break;
- case 0X01: P1=0XFD; break;
- case 0X02: P1=0XFB; break;
- case 0X03: P1=0XF7; break;
- }
- }}
复制代码 |