登录  | 立即注册

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

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] C51——————按键控制二极管(解决按键抖动)

[复制链接]
发表于 2023-1-15 10:19:29 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C51
学习安排: 实现按键控制二极管
解决按键消抖问题
开始时间: 2023-01-15
结束时间: 2023-01-15
#include<STC12C5A60S2.h>
int   C = 1       ;
sbit     X      = P2^0 ;
sbit     Y     = P2^1 ;
sbit     Z      = P2^2 ;
sbit ENLED = P1^1 ;
sbit key4  = P2^3  ;
sbit led1  = P0^0  ;
      bit keysta = 1;
voidmain()
{      
bit backup = 1 ;
X=0;
Y=1;
Z=1;
ENLED = 0 ;
EA=1;
ET0=1;
  TR0= 1 ;
  TH0= 0xEB ;
  TL0= 0x2A ;      
TMOD = 0x01 ;
P2=0xBE;
led1=1;
while(1){
if(keysta != backup)
  {
if(backup==0)
  {
       led1=~led1;
  }
backup = keysta ;
}
}
}
void InterruptTimer0() interrupt 1
{
  static unsigned char keybuf = 0xFF ;
  TH0 = 0xEB ;
  TL0 = 0x2A ;   
  keybuf = (keybuf<<1)    |key4 ;
   if(keybuf==0x00)
       {
       keysta= 0;
       }
       elseif (keybuf==0xFF){
       keysta= 1 ;
       }
       else{}      
      
}
//小萌新 不会写代码 如有不足 希望大佬指正 谢谢Thanks&#9834;(&#65381;ω&#65381;)&#65417;
//部里的老板子了,不知道引脚对不对 如果不对 可以适当改一下

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

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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