基于状态机的单个按键长按,短按实现复用

    开博第一文。希望再次记录学习的过程。

    键扫描,单片机里面再基础不过的程序了。但对于初学者来说,用好按键也不是一件简单的事情。在毛老师的介绍下,第一次知道了状态机的思想也可以用于单片机的程序设计,感觉很是新奇。看了老师给发的几个文档后对状态机编程的概念有了一些初步的认识,于是试着用状态机的思想写了一个实现单个按键长按短按的小程序。

   贴个代码试试....

  

//文件名:单个按键的复用
//作者:CWM
//修改日期:2011-06-15
//版本:V1.0
//功能描述:基于状态机的思想 实现单个按键的复用
//根据按键持续时间的不同,在数码管上分别显示0 1 2 3四个数字
001 #include <reg52.h>
002
003 #define key_state_0 0 //表示没有按下
004 #define key_state_1 1 //表示按键按下
005 #define key_state_2 2 //计时1
006 #define key_state_3 3 //计时2
007 #define key_state_4 4 //计时3
008 sbit KEY = P1 ^ 0;
009 sbit LED = P1 ^ 1;
010 unsigned char code LED7Code [] = { ~ 0x3F , ~ 0x06 , ~ 0x5B , ~ 0x4F ,
011 ~ 0x66 , ~ 0x6D , ~ 0x7D , ~ 0x07 , ~ 0x7F , ~ 0x6F ,
012 ~ 0x77 , ~ 0x7C , ~ 0x39 , ~ 0x5E , ~ 0x79 , ~
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值