unsigned char OSScanKey(void)
{
unsigned char Temp;
unsigned char i;
P2=0xff;//首先对端口进行写1 *** 作,这样把端口置为输入状态
Temp=P1;//读另外的一个端口
for(i=0;i<8;i++)
{
if((Temp&(1<<i))==0)//这个代码就是判断P1的某一个端口位是否为低电平,如果为低电平则退出,表明有键盘按下了?(不晓得你的电路图,只能推断了)
break;
}
if(i<8)//看是否小于8,如果是小于8的说明是由于有P1口的电平为低跳出来的。因此有键盘按下,如果不是,则没有按键按下
return i+1;//返回相应的按键端口号,目测你的这里的P1好像写错了,你的键盘好像不是用的矩阵键盘,而是直接挂在端口上的。因此可能为P2才对,不清楚。自己断哈
else
return0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)