OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5765|回复: 3

求问:为什么我用两个按键设变的程序,一个+1,一个-1,但只有一个成功,两个子程序一样啊,K2没反应

[复制链接]

2

主题

5

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-4-24
在线时间
1 小时
发表于 2019-4-24 19:36:20 | 显示全部楼层 |阅读模式
1金钱
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define DAC0832_PORT P1
sbit K1=P2^0;//
sbit K2=P2^1;//
uchar num=20;
void Init()        
{P1=num; }
void delay(uint z);void keyscan1();        void keyscan2(); void Init();
voiddelay(uint z) // 延时 z ms 子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void keyscan1()
{
       unsignedint i;        
       while(1)
       {     
              if(K1==0)             //检测按键K1是否按下
              {
                     delay(10);       //消除抖动
                     if(K1==0)
                     {
                     num++;
DAC0832_PORT=num; // n 送给給 DA
                            while((i<50)&&(K1==0))      //检测按键是否松开
                            {
                                   delay(10);
                                   i++;
                            }
                            i=0;
                     }
              }            
       }     }
void keyscan2()
      
{
       unsignedint j;
              while(1)
       {     
              if(K2==0)             //检测按键K1是否按下
              {
                     delay(10);       //消除抖动
                     if(K2==0)
                     {
                     num--;   
DAC0832_PORT=num; // n 送给給 DA
                            while((j<50)&&(K2==0))      //检测按键是否松开
                            {
                                   delay(10);
                                   j++;
                            }
                            j=0;
                     }
              }            
       }                                               
}
        void main()
{
        Init();
while(1)
{     
keyscan1();
keyscan2();
}
}

最佳答案

查看完整内容[请看2#楼]

你都写了while(1)了,还指望他往下跑?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

582

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2690
金钱
2690
注册时间
2014-5-23
在线时间
188 小时
发表于 2019-4-24 19:36:21 | 显示全部楼层
你都写了while(1)了,还指望他往下跑?
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-4-24
在线时间
1 小时
 楼主| 发表于 2019-4-25 09:36:46 | 显示全部楼层
awsawzj 发表于 2019-4-24 19:54
你都写了while(1)了,还指望他往下跑?

谢谢,对的
回复

使用道具 举报

0

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2019-5-4
在线时间
42 小时
发表于 2019-5-17 09:49:30 | 显示全部楼层
瞎写,基本功,基本功,基本功,重要的事说三次,按键扫描的方法有这么多,你为什么要这么写,
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-1 07:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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