| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4105 人关注过本帖
标题:为什么要重复?
只看楼主 加入收藏
ljl223559772
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-7-20
结帖率:50%
收藏
已结贴  问题点数:1 回复次数:1 
为什么要重复?
void matrixkeyscan()
{
    uchar temp,key;
    P3=0xfe;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
        delayms(10);
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
            temp=P3;                                     //这个不明白
            switch(temp)
            {
                case 0xee:
                key=0;
                break;
                case 0xde:
                key=1;
                break;
                case 0xbe:
                key=2;
                break;
                case 0x7e:
                key=3;
                break;
            }
            while(temp!=0xf0)              //等待按键释放
            {
                temp=P3;
                temp=temp&0xf0;
            }
            display(key);                    //显示
        }            
    }

请问那个地方为什么还要加一个temp=P3;???
2013-08-30 20:40
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:1 
,嗯,我只讲为什么,
temp=temp&0xf0;//若直接取这个temp,那么下面case 就不是0xee,而是0xe0
     if(temp!=0xf0)
     {
         delayms(10);
 if(temp!=0xf0)//
         {
             temp=P3;                                     //
             switch(temp)
             {
                 case 0xee://因为这个值是直接取p3,p3初值为0xfe,第一个键按下为0xee
                 key=0;
                 break;
                 case 0xde:
2013-09-01 09:54
快速回复:为什么要重复?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024988 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved