久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

51單片機(jī)識(shí)別 "單擊.雙擊.長(zhǎng)按" 問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:143767 發(fā)表于 2024-11-21 17:31 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

這程序是在本論壇找到的,原設(shè)定是按一下LED1亮一秒滅,按兩下LED2亮一秒滅,長(zhǎng)按LED3亮一秒滅。試驗(yàn)后發(fā)現(xiàn)有時(shí)按兩下是LED1亮一秒滅,不知這程序怎樣修改避免發(fā)生這種情況,謝謝!
//51單片機(jī)識(shí)別 "單擊.雙擊.長(zhǎng)按" 代碼
//作者:Kxuan163
//程序功能:檢測(cè)按鈕的按下彈起次數(shù),以識(shí)別"單擊.雙擊.長(zhǎng)按"
//MCU: STC89c52RC        晶振 11.0592MHZ
//Proteus8仿真通過(guò);51開發(fā)板實(shí)驗(yàn)通過(guò)。

#include<reg52.h>   
#include<stdlib.h>  
sbit button =P1^2;    //按鈕連接的單片機(jī)引腳
sbit LED1 =P2^7;             //單擊則LED1亮
sbit LED2 =P2^4;      //雙擊則LED2亮
sbit LED3 =P2^0;      //長(zhǎng)按則LED3亮
unsigned char count;  //T0計(jì)數(shù)溢出中斷次數(shù)
unsigned char finish; //T0計(jì)時(shí)一輪結(jié)束標(biāo)志
unsigned char read;   //讀取P1^2引腳電平的變量
unsigned char dn;     //讀得P1^2引腳低電平次數(shù)
unsigned char up;     //button彈起次數(shù)

//延時(shí)函數(shù),入口參數(shù)ms為延時(shí)的毫秒數(shù)/////
void delayms(unsigned int ms)
{         unsigned char i;
         while(ms--)
         { for(i = 0; i < 120; i++); }                                       
} //////////////////////////////////////

//主函數(shù)
void main(void)         
{
   //T0 初始化 //////////////////////////
          TMOD=0x01;              //使用定時(shí)器T0的模式1
     TH0=(65536-46083)/256;  //定時(shí)器T0的高8位設(shè)置初值
    TL0=(65536-46083)%256;  //定時(shí)器T0的低8位設(shè)置初值
    EA=1;                   //開總中斷
    ET0=1;                  //T0中斷允許
  //////////////////////////////////////

   while(1)
    {
     LED1 =1; LED2=1; LED3=1;
     dn =0; up=0; count =0; finish =0;

     TR0=1;              //啟動(dòng)T0計(jì)時(shí)
    while(finish !=1 )  //在設(shè)定的T0計(jì)時(shí)段內(nèi)循環(huán)檢測(cè)
     {
       read =button;            //讀取P1^2引腳電平
          if (read == 0) delayms(10); //延時(shí)10毫秒消熱抖動(dòng)         

           if (button == 0)
             {dn ++; read =button;} //讀得P1^2低電平次數(shù)累加

          if (read ==0 && button ==1) up ++;//彈起次數(shù)累加
         } //end of while(finish !=1 )

     // T0計(jì)時(shí)一輪結(jié)束,進(jìn)行識(shí)別:
        TR0 =0;
     if (dn >=1 && up ==1 )       //彈起1次,即單擊               
               { LED1 =0; delayms(1000);} //LED1亮

    if (dn >=2 && up ==2 )            //彈起2次,即雙擊               
        { LED2=0; delayms(1000);}  //LED2亮

        if (dn>=20 && up==0 )        //持續(xù)未彈起,即長(zhǎng)按     
               { LED3=0; delayms(1000);}  //LED3亮         
           
    } //end of while(1)
} //end of main()  


//函數(shù):定時(shí)器T0的中斷服務(wù) ////////////////
void Time0(void ) interrupt 1 using 1
   {
     count++;            //T0計(jì)數(shù)溢出中斷次數(shù)累加
    if(count==20)  //若T0計(jì)數(shù)溢出次數(shù)累計(jì)達(dá)設(shè)定值
          {count =0; finish =1;} //一輪計(jì)時(shí)結(jié)束                          

          TH0=(65536-46083)/256;  
         TL0=(65536-46083)%256;  
   } ///////////////////////////////////////

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

使用道具 舉報(bào)

沙發(fā)
ID:143767 發(fā)表于 2024-11-21 17:32 | 只看該作者
我是實(shí)際搭的電路試驗(yàn)的
回復(fù)

使用道具 舉報(bào)

板凳
ID:123917 發(fā)表于 2024-11-21 18:56 | 只看該作者
延時(shí)時(shí)間縮短試試
回復(fù)

使用道具 舉報(bào)

地板
ID:140489 發(fā)表于 2024-11-22 08:24 | 只看該作者
http://www.zg4o1577.cn/bbs/dpj-99528-1.html到這里看看,你會(huì)有所收獲的
回復(fù)

使用道具 舉報(bào)

5#
ID:401564 發(fā)表于 2024-11-22 09:17 | 只看該作者
本論壇有現(xiàn)成的狀態(tài)機(jī),雙擊和長(zhǎng)按都可以,我復(fù)制下來(lái)用了,沒有問(wèn)題
你應(yīng)該去學(xué)一下狀態(tài)機(jī),封裝成.c文件,可以輕松的套用到其它的單片機(jī)上
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99热这里有精品 | 精品日韩一区 | 超碰97免费在线 | 亚洲国产黄 | 精品综合| 亚洲精彩视频在线观看 | 美女黄视频网站 | 一区在线视频 | 日韩欧美在线观看 | 国产九九av | 一区在线播放 | 99只有精品 | av大片在线| 美女国内精品自产拍在线播放 | 久久精品欧美一区二区三区麻豆 | 日韩手机在线视频 | 欧美一区二区三区在线播放 | 久久久网 | 日韩a在线 | 中文字幕11页| 久久久影院| 黄色毛片在线观看 | 日本成人福利视频 | 久久福利电影 | 欧美日产国产成人免费图片 | 国产精品久久久久一区二区三区 | 中国美女一级黄色片 | 一区二区三区视频在线免费观看 | 爱爱免费视频 | 久久国产精品免费视频 | 亚洲人人 | 一区二区三区影院 | 欧美成人一区二免费视频软件 | 日韩视频一区二区 | 免费黄色成人 | 一区二区免费高清视频 | 久久黄色网 | av黄色在线| 亚洲综合久久精品 | 91 视频网站 | 亚洲香蕉在线视频 |