设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 1764|回复: 1
收起左侧

C51实现10连击翻转LED亮灭状态,对新手有帮助。

[复制链接]
发表于 2017-6-18 10:15:19 | 显示全部楼层 |阅读模式

  1. #include "reg51.h"
  2. #include"intrins.h"
  3. sbit led=P3^4 ;//灯,连接Vcc。
  4. sbit key=P3^5 ;//按键,连接Gnd。


  5. void delay10ms()                //@6MHz
  6. {
  7.         unsigned char i, j;

  8.         _nop_();
  9.         _nop_();
  10.         i = 59;
  11.         j = 89;
  12.         do
  13.         {
  14.                 while (--j);
  15.         } while (--i);
  16. }

  17. void main(){
  18. unsigned char a=0; //连击次数
  19. unsigned int b=0; //等待时间

  20.         while(1){
  21.                 if(key == 0){  //按键按下
  22.                 delay10ms(); //延迟10ms
  23.                 a++; //连击次数+1
  24.                 b=0; //等待时间清零
  25.                         if(a>=10){ //连击次数大于等于10
  26.                         a=0; //连击次数清零
  27.                         b=0; //等待时间清零
  28.                         led=~led; //led翻转
  29.                         }
  30.                 while(key == 0); //防止按键按住不放
  31.                 } else { //未按下
  32.                 delay10ms();
  33.                         if(a>=1){ //连击次数大于等于1
  34.                         b++; //等待时间+1
  35.                                 if(b>=100){ //1秒内未检测到按键
  36.                                 a=0;//连击次数清零
  37.                                 b=0;//等待时间清零
  38.                                 }
  39.                         }
  40.                 }
  41.                
  42.         }
  43. }

复制代码

发表于 2017-7-3 18:11:21 | 显示全部楼层
现在还没接触单片机,只能单纯的四处暖(水)贴。消灭零回复。
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-3-28 18:52 , Processed in 0.470027 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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