找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5290|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)按鍵長按和短按功能的實(shí)現(xiàn) 附仿真與源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分為2個(gè)例子
一個(gè)是單片機(jī)按鍵短按,實(shí)現(xiàn)led燈的上下移動(dòng)

一個(gè)是單片機(jī)按鍵長按led燈亮,松開,led燈滅

附件里有仿真圖,源碼,以及hex文件

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  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); //變量右移函數(shù)
  25.             delay(20);

  26.             while(PB1==0);
  27.             debouncer();
  28.             LEDR=tamp;
  29.         }
  30.         if(PB2==0) {
  31.             debouncer();
  32.             tamp=_crol_(tamp,1);//變量左移函數(shù)
  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黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
51單片機(jī)實(shí)現(xiàn)按鍵長按和短按.zip (30.87 KB, 下載次數(shù): 80)


評分

參與人數(shù) 1黑幣 +5 收起 理由
KolalaSA + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:293762 發(fā)表于 2018-5-9 22:22 | 只看該作者
學(xué)習(xí)學(xué)習(xí),謝謝樓主的分享!
回復(fù)

使用道具 舉報(bào)

板凳
ID:857555 發(fā)表于 2020-12-9 17:03 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表