標(biāo)題: 51單片機(jī)按鍵長(zhǎng)按和短按功能的實(shí)現(xiàn) 附仿真與源碼 [打印本頁(yè)]

作者: kinggm    時(shí)間: 2018-5-3 12:07
標(biāo)題: 51單片機(jī)按鍵長(zhǎng)按和短按功能的實(shí)現(xiàn) 附仿真與源碼
分為2個(gè)例子
一個(gè)是單片機(jī)按鍵短按,實(shí)現(xiàn)led燈的上下移動(dòng)

一個(gè)是單片機(jī)按鍵長(zhǎng)按led燈亮,松開(kāi),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. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

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



作者: 守候楓林紅葉時(shí)    時(shí)間: 2018-5-9 22:22
學(xué)習(xí)學(xué)習(xí),謝謝樓主的分享!
作者: 25433    時(shí)間: 2020-12-9 17:03
好資料,51黑有你更精彩!!!





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1