找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4411|回复: 2
收起左侧

51单片机按键长按和短按功能的实现 附仿真与源码

[复制链接]
ID:320909 发表于 2018-5-3 12:07 | 显示全部楼层 |阅读模式
分为2个例子
一个是单片机按键短按,实现led灯的上下移动

一个是单片机按键长按led灯亮,松开,led灯灭

附件里有仿真图,源码,以及hex文件

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png 0.jpg

单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define LEDR P0
  4. #define LEDG P2
  5. sbit PB1=P1^4;
  6. sbit PB2=P1^5;
  7. sbit PB3=P1^6;
  8. sbit PB4=P1^7;

  9. char tamp,tp;

  10. void delay (int);
  11. void debouncer(void);


  12. main() {
  13.     PB1=1;
  14.     PB2=1;
  15.     PB3=1;
  16.     PB4=1;
  17.     LEDR=0x00;
  18.     LEDG=0xff;
  19.     tamp=0xfd;
  20.     tp=0xfd;
  21.     while(1) {


  22.         if(PB1==0) {
  23.             debouncer();
  24.             tamp=_cror_(tamp,1); //变量右移函数
  25.             delay(20);

  26.             while(PB1==0);
  27.             debouncer();
  28.             LEDR=tamp;
  29.         }
  30.         if(PB2==0) {
  31.             debouncer();
  32.             tamp=_crol_(tamp,1);//变量左移函数
  33.             delay(20);

  34.             while(PB2==0);
  35.             debouncer();
  36.             LEDR=tamp;

  37.         }
  38.         if(PB3==0) {
  39.             debouncer();
  40.             tp=_cror_(tp,1);
  41.             delay(20);

  42.             while(PB3==0);
  43.             debouncer();
  44.             LEDG=tp;

  45.         }
  46.         if(PB4==0) {
  47.             debouncer();
  48.             tp=_crol_(tp,1);
  49.             delay(20);

  50.             while(PB4==0);
  51.             debouncer();
  52.             LEDG=tp;

  53.         }






  54.     }


  55. }



  56. void debouncer(void)
  57. {
  58.     int i;
  59.     for(i=0; i<2400; i++);
  60. ……………………

  61. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
51单片机实现按键长按和短按.zip (30.87 KB, 下载次数: 80)

评分

参与人数 1黑币 +5 收起 理由
KolalaSA + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:293762 发表于 2018-5-9 22:22 | 显示全部楼层
学习学习,谢谢楼主的分享!
回复

使用道具 举报

ID:857555 发表于 2020-12-9 17:03 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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