打印

请教,用按键实现小灯亮灭5次后退出?

[复制链接]
840|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nmgz|  楼主 | 2015-11-27 21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教,我想实现按键按下后小灯亮灭5次,然后退出。可用下面的程序怎么也实现不了,可我的网友用上面的程序说可以的,我好奇怪呀,我试了好多次,找不到原因,请指教。


/*********************************************************************************************/

#include <REG51.h> //通用89C51头文件

sbit LED = P1 ^ 0; //定义闪烁LED
sbit DY_KEY=p1^1;        //定义按键
/*********************************************************************************************
函数名:毫秒级CPU延时函数
调  用:DELAY_MS (?);
参  数:1~65535(参数不可为0)
返回值:无
结  果:占用CPU方式延时与参数数值相同的毫秒时间
备  注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/

/*********************************************************************************************/
void main (void)  //主程序
   {  
            unsigned char m;

  while(1){
if(DY_KEY==0)
   { for(m=0;m<10;m++){
LED = ~LED;         //取LED相反状态
DELAY_MS(1000);        //修改这里的数值看看会有什么变化
  }          }
      LED =0;


}
}

   
/*********************************************************************************************/

相关帖子

沙发
gmm2015| | 2015-11-28 08:59 | 只看该作者
程序问题不大
1、你的程序下载之后是不是LED一直闪烁?  如果是,那么应该是你的P1.1管脚一直处于低电平状态
2、如果不是上诉现象,请描述具体现象如何

使用特权

评论回复
板凳
nmgz|  楼主 | 2015-11-28 20:58 | 只看该作者
谢谢二楼,我忘了描述了,我下完程序后,小灯一直在亮。
但我去掉按键,只用FOR循环却可以实现5次的。所以我也奇怪,程序应该没有大问题呀。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

73

帖子

0

粉丝