登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] C51单片机 独立按键控制LED状态

[复制链接]
发表于 2023-1-30 19:16:16 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C51单片机
学习安排: 想学再学
开始时间: 2023-01-14
结束时间:
本帖最后由 马新豪 于 2023-1-30 20:31 编辑

C51单片机 独立按键控制LED状态
如要达到按下按键取反,涉及到按键抖动的相关知识
(需要消除按键抖动,防止按下一次按键产生多次效果。)
按键抖动.png
用STC-ISP中的软件延时计算器来消除抖动(5~10ms的抖动)
STC-ISP生成代码.png
(设置20ms的延时)
在写代码中需要用到按位取反(CSDN的一篇文章),还有其他的C语言知识,不再赘述。
演示如下:
up演示状态.gif
代码:

  1. #include <STC12C5AXX.h>
  2. void Delay20ms()                //@32MHz
  3. {
  4.         unsigned char i, j, k;

  5.         i = 3;
  6.         j = 111;
  7.         k = 138;
  8.         do
  9.         {
  10.                 do
  11.                 {
  12.                         while (--k);
  13.                 } while (--j);
  14.         } while (--i);
  15. }

  16. void main ()
  17. {
  18.                 P11=0;
  19.                 P20=0;
  20.                 P21=1;
  21.                 P22=1;
  22.                 P23=0;
  23.         while(1)
  24.         {
  25.                 if(P27==0)
  26.                 {
  27.                         Delay20ms();
  28.                         while(P27==0);
  29.                         Delay20ms();
  30.                         
  31.                         P00=~P00;
  32.                 }
  33.         }
  34. }
复制代码

好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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