temp=KEY_ScanPort; //读P1口
temp=temp&0xF0;
temp=~((temp>>4)|0xF0);
if(temp==1)
key=0;
else if(temp==2)
key=1;
else if(temp==4)
key=2;
else if(temp==8)
key=3;
KEY_ScanPort=0xFF;//去掉这一句,下面temp就采集不到正确数据了,为什么?
KEY_ScanPort=0x0F; // 高四位置0,低四位设置为数据采集状态
temp=KEY_ScanPort; //上面那句去掉,这里采集到的数据就是错的
temp=temp&0x0F;
temp=~(temp|0xF0);
if(temp==1)
key=key+0;
else if(temp==2)
完整的代码及电路在附件里。仿真观察p2口数据显示情况。如果去掉上面那一句,再对比观察可知数据采集不正确。
keyboard.rar
(72.86 KB, 下载次数: 6)
|