在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2216|回复: 5

[求助] 51单片机求教

[复制链接]
发表于 2016-6-10 17:41:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
#include<reg51.h>
#define uchar unsigned char
uchar num=0;
unsigned int i,j,k;
sbit jia_key=P3^0;
sbit jian_key=P3^1;
void delays(uchar i)
{
    uchar j,k;
    for(j=i;j>0;j--)
      for(k=125;k>0;k--);

}
main()
{   
    if(jia_key==0)
    {
        delays(5);
        if(jia_key==0)
        {
            num++;
            if(num==4)
            num=3;
            while(jia_key==0);
        
            P0=num;
        }
   
    }
    if(jian_key==0)
    {
        delays(5);
        if(jian_key==0)
        {   
            if(num!=0)
             num--;
             else
             num=0;
            while(jian_key==0);
            
            P0=num;

        }
    }


}
为什么只能加一次,减一次,个人理解应该是可以加到3啊,到实验板上显示只能加减各一次!
发表于 2016-7-21 11:40:29 | 显示全部楼层
因為你判別 key down 的兩個 if(xx==0) 敘述沒有放在迴圈裡面啊! 外面再用個 while(1) 把它們包括進來吧!
发表于 2016-7-23 22:42:58 | 显示全部楼层
去掉"while(jia_key == 0);"与"while(jian_key == 0);"试试.
发表于 2016-10-7 07:44:00 | 显示全部楼层
检查你的MCU 是否有 WATCHDOG 作怪
发表于 2016-10-8 21:35:26 | 显示全部楼层
MCU程序,一般建议在main函数内做一个while(1)的死循环

int main()
{
      Initial();
      while(1)
      {
            if(.......)
            {
                  ........
             }
      }

}
发表于 2016-10-12 18:26:09 | 显示全部楼层
快快快!!!!!!!!!!!!!!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-27 20:42 , Processed in 0.050522 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表