| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4777 人关注过本帖
标题:51 单片机独立键盘控制发光二极管和蜂鸣器问题
只看楼主 加入收藏
小代帅帅
Rank: 1
来 自:北京昌平
等 级:新手上路
帖 子:92
专家分:7
注 册:2013-5-11
结帖率:89.66%
收藏
已结贴  问题点数:20 回复次数:2 
51 单片机独立键盘控制发光二极管和蜂鸣器问题
各位过往牛人,帮忙看一下一下程序,本人有一个疑问,为什么第二个if括号里的那个语句s2==?这个数字无论是几发光二级管都能得到预期效果,这是为什么呢?假如说程序被扫描到num++;这条语句时我突然把手松开,他就会接着往下扫描语句不做任何操作直到返回到最外层while语句,再进入循环后就永远检测不到按键被按下啊!但是为什么不管什么时候放开按键等能成功完成预期效果呢?请牛人指点!!万分感谢!!
#include<reg52.h>

#define uchar unsigned char
uchar num;

sbit beep=P2^3;
sbit led=P1^0;
sbit s2=P3^4;

void delay(uchar i)
{
   uchar j,k;
   for(j=i;j>0;j--)
   for(k=125;k>0;k--);
}

void main()
{
    while(1)
  {
    if(s2==0)
  {
     delay(20);         //消抖
     if(s2==20)(这里的数字无论是多少都可以!????????)
     {
         while(!s2);     //等待按键松开
         num++;
    }
    switch(num)
   {
      case 1: led=0;    beep=1; break;
     case 2: beep=0;    led=1;    num=0; break;
   }
  }
}
}
搜索更多相关主题的帖子: 发光二极管 include 单片机 蜂鸣器 键盘 
2014-10-27 20:36
雨中浊玉
Rank: 2
等 级:论坛游民
帖 子:11
专家分:41
注 册:2013-3-22
收藏
得分:20 
第二个if语句会执行吗?
2014-10-28 15:45
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:0 
额 看不太懂你的这个东西...s2是P3^4 只有两种状态0和1
2014-10-30 14:19
快速回复:51 单片机独立键盘控制发光二极管和蜂鸣器问题
数据加载中...
 
   



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

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