找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2427|回复: 3
打印 上一主题 下一主题
收起左侧

关于独立式按键的一段程序求说明

[复制链接]
跳转到指定楼层
楼主
ID:101925 发表于 2016-1-12 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uchar ADD=0X03,SUM=0X04
sbit        K1 = P1^0;       
sbit        K2 = P1^1;

void delay1(uint x)
{
        uint i,j;
        for(i=x;i>0;i--)
         for(j=110;j>0;j--);
}
uchar keyScan()               
{              
  uchar key=0xff;
        if(K1!=1||K2!=1)
                {               
                delay1(10);       
                if(K1!=1||K2!=1)
                        {
                                if(K1!=1)               
                                {
                                        key=ADD;
                                }
                                else        if(K2!=1)
                                {
                                        key=SUM;
                                }
                                  while(K1!=1||K2!=1);               
                        }   
                }
                        return key; //·μ»Ø
}
void Key()
{
uchar key2;                       
   key2=keyScan();
        if(key2==ADD&&s<256
        {
                s++;     
                write_data(1,s);
        }
        else       
        if(key2==SUM&&s>0
        {
                s--;   
                write_data(1,s);
        }
}

就不明白SUM和ADD,还有key1和key2的作用



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:101925 发表于 2016-1-12 17:24 | 只看该作者
还有第一个IF的作用?
回复

使用道具 举报

板凳
ID:99538 发表于 2016-1-13 12:23 | 只看该作者
第一个if,如果第一个按键或者第二个按键按下。
没有key1
key2是暂存值,存储SCANKEY()扫描得到的键值。
SUM,ADD相当于一个特征值
回复

使用道具 举报

地板
ID:103101 发表于 2016-1-13 19:34 | 只看该作者
  if(K1!=1||K2!=1)     //判断K1和K2是否有键按下
                 {               
                 delay1(10);      //延时消抖
                 if(K1!=1||K2!=1)     //再次判断
                         {
                                 if(K1!=1)               
                                 {
                                         key=ADD;   //若K1按下,则执行此语句
                                 }
                                 else        if(K2!=1)
                                 {
                                         key=SUM;  //若K2按下则执行此语句
                                 }
                                   while(K1!=1||K2!=1);  这句是若一旦K1,K2有一个键按下,就进入while循环的意思吧? 那这句有什么用呢?            
                         }   
                 }
                         return key; //·μ&raquo;&Oslash;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表