注册 登录
编程论坛 单片机编程

郭天祥矩阵键盘的一点疑问

发布于 2011-03-01 17:50, 1363 次点击
郭天祥视频教程中矩阵键盘中代码:
while
{
 p3=0xfe;//第一行键盘
 temp=p3;//读P3口
 temp=temp&oxf0;//取高四位
 while(temp!=0xf0)//有键按下,则进入
 {
   delay(5)
   temp=p3;
   temp=temp&oxf0;
   while(temp!=0xf0)//确认有键按入
    {
     switch(temp)
     {case 0xe0:num=1;break
     case 0xd0:num=2;break
     case 0xb0:num=3;break
     case 0x70:num=4;break
     }
     while(temp!=0xf0)//不松手,则进入等侯
     {
       temp=p3;
       temp=temp&oxf0;
      }
     }
 ...//第二行键盘代码
现在的问题是无论我是否按第二行键盘,程序似乎都会进入第一行键盘程序给temp赋值,按我的理解即p3=0xfe没起作用,如果我按5键是和1键是一样的,出汗求解!!!

[ 本帖最后由 hb0zyj 于 2011-3-1 19:08 编辑 ]
2 回复
#2
2011-03-03 16:43
我明白了,p3=0xfe是决定第一行键值有效的先决条件
#3
niu912011-04-19 22:11

自己搞明白了
我记得我当时搞不懂这个问题的时候 是画图画明白的.呵呵
1