| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6518 人关注过本帖
标题:P3复制0XF0 这样对的吗?
取消只看楼主 加入收藏
zjbook
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-1-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
P3复制0XF0 这样对的吗?
各位高手老师,P3=0xf0; temp=P3;  //赋值给P3口
        temp=temp&0xf0;// 与的值
        if(temp!=0xf0)      是否相等??我在程序里,注解了下·~~~我不是非常明白
 请各位老师,点评一下~~~~~,这程序是  网上某写的。但程序 运行正常~~~,但是键盘释放检测 ,没有~~~

#include<reg52.h>
#define uchar unsigned char //宏定义
#define uint unsigned int
sbit dula=P2^6;  //段声明
sbit wela=P2^7;// 位声明
uchar disnum,temp,key,num;
uchar code table_du[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0};

delay(uchar);
uchar keyscan();//键盘程序

void main() //主函数
{   
    disnum=16;
    wela=1;
    P0=0XFE;
    wela=0;
    while(1)
    {
    num=keyscan();   
    P0=table_du[num];
    dula=1;
    dula=0;
   
    }
   
}

uchar keyscan() //键盘扫描程序
{
    P3=0xf0;         //定义个变量
        temp=P3;  //赋值给P3口
        temp=temp&0xf0;// 与的值
        if(temp!=0xf0)// 确定不等于0xf0,但实际是相等的,
        {           //实际他应该退出的呀?  
(因为是相等的,退出!各位高手老师,这样写对的吗?)    帮我分析下,
//谢谢!!!!!
            delay(10);    //延时10秒,去抖
            if(temp!=0xf0) //再次确定不相等,执行下一条指令
            {
                temp=P3;
                temp=temp|0X0f;
                P3=temp;
                key=P3;
                switch(key)
                {
                    case 0xee:disnum=0;
                            break;
                    case 0xde:disnum=1;
                            break;
                    case 0xbe:disnum=2;
                            break;
                    case 0x7e:disnum=3;
                            break;
                    case 0xed:disnum=4;
                            break;
                    case 0xdd:disnum=5;
                            break;
                    case 0xbd:disnum=6;
                            break;
                    case 0x7d:disnum=7;
                            break;
                    case 0xeb:disnum=8;
                            break;
                    case 0xdb:disnum=9;
                            break;
                    case 0xbb:disnum=10;
                            break;
                    case 0x7b:disnum=11;
                            break;
                    case 0xe7:disnum=12;
                            break;
                    case 0xd7:disnum=13;
                            break;
                    case 0xb7:disnum=14;
                            break;
                    case 0x77:disnum=15;
                            break;
                }
            }
        }
return disnum;  //返回值
}

delay(uchar x)//延时函数
{
    uchar a,b;
    for(a=x;a>0;a--)
        for(b=200;b>0;b--);

}
搜索更多相关主题的帖子: include include include 检测 检测 检测 键盘 键盘 键盘 网上 网上 网上 
2016-01-25 08:20
zjbook
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-1-24
收藏
得分:0 
没人关注 菜鸟的 问题吗?各位老师。。。。

爱好·电子。。
2016-01-25 21:56
zjbook
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-1-24
收藏
得分:0 
已经写全了,也正常使用啊~~     这样的编程代码是否正确?

爱好·电子。。
2016-01-26 22:40
zjbook
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-1-24
收藏
得分:0 
或者说~~以后也能否这样做,求高手 老师指点。。。。弊端 有哪些?

爱好·电子。。
2016-01-26 22:41
快速回复:P3复制0XF0 这样对的吗?
数据加载中...
 
   



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

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