就本段程序我这样理解:
1、P3是一个IO口寄存器,
P3= 0xf0;理解为设置P3口(输出)输出寄存器的值并输出。
temp=P3;理解为读P3口(输入)寄存器输入值。
2、这个判断按键的IO为P3的高四位。按下俺家IO口为0,未按下为1.
按上面的条件,这段程序很好理解,先读高四位是不是有按键按下:
P3=0xf0;
temp=P3;
temp=temp&0xf0;
判断是否有按键按下:
if(temp!=0xf0)
延时去抖动判断按键按下:
delay(10);
if(temp!=0xf0)
读取键值:
temp=P3;
temp=temp|0X0f;
P3=temp;
key=P3;
当然这段程序个人感觉是有点问题的。