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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4138|回復: 8
收起左側

請教單片機按鍵雙擊的問題

[復制鏈接]
ID:275111 發表于 2018-10-19 09:16 | 顯示全部樓層 |閱讀模式
1.不要所謂的狀態機方法    2.不要開定時器0的中斷(開/關定時器0 但不開中斷)  
3.如果開中斷也行(不得已最后方法)

說明:因為用的是觸摸單片機的觸摸按鍵。 按鍵為1有效。不需要濾波。

實現的基本原理:判斷2次按下的時間,>500(or250ms)再有按鍵按下,就是雙擊;沒有就是_單擊_。


目前的狀況:我水平很菜,網上看了很多,書上也翻了,我是沒實現的了。已經搞了_3天_了,就這個功能了,怎么弄都不行了,快崩潰了。

回復

使用道具 舉報

ID:331575 發表于 2018-10-19 10:03 | 顯示全部樓層
用定時器掃面計數非中斷模式  假設按鍵1被觸摸  內置flag=1  定時器掃描時間為50ms 讓標志time0計數 計數到10時即為500ms 再讓flag=2 再次按鍵即可生效
回復

使用道具 舉報

ID:342822 發表于 2018-10-19 11:21 | 顯示全部樓層
使用計數法識別長短按*/
#include<reg52.h>
#define key_S 1000 //宏定義短按(約20ms)
#define key_L key_S*50 //宏定義長按(約1s)
//定義端口
sbit KEY=P1^4;
sbit LED1 = P2^0;
sbit LED2 = P2^1;
unsigned int count=0;//計數變量

int main (void)
{
        LED1=1;
        LED2=1;               
        KEY=1; //按鍵輸入端口電平置高      
        while(1)         //主循環
        {
                if(!KEY)  //如果檢測到低電平,說明按鍵按下
                {  
                        count++;  
                        if(count==key_L)                                //長按
                                LED2=!LED2;
                        if(count>key_L)
                                count=key_L+1;                                //防止count溢出         
                }  
                else                                                                        //按鍵抬起
                {  
                        if(count>key_S && count<key_L)//短按
                                LED1=!LED1;
                        count=0;                                                        //count清0
                }   
        }
}
回復

使用道具 舉報

ID:275111 發表于 2018-10-23 09:36 | 顯示全部樓層
15942379927 發表于 2018-10-19 10:03
用定時器掃面計數非中斷模式  假設按鍵1被觸摸  內置flag=1  定時器掃描時間為50ms 讓標志time0計數 計數到 ...

牛比。
回復

使用道具 舉報

ID:56665 發表于 2019-8-24 10:02 | 顯示全部樓層
taotie 發表于 2018-10-19 11:21
使用計數法識別長短按*/
#include
#define key_S 1000 //宏定義短按(約20ms)

你的程序是按鍵長短按鍵程序,別人要按鍵雙擊程序。
回復

使用道具 舉報

ID:370639 發表于 2019-8-24 12:15 | 顯示全部樓層
百度搜索杜洋師傅一鍵多能視頻,講的很好
回復

使用道具 舉報

ID:332444 發表于 2019-8-24 20:03 | 顯示全部樓層
回復

使用道具 舉報

ID:282095 發表于 2019-8-25 07:04 | 顯示全部樓層
清零置1即可
回復

使用道具 舉報

ID:57657 發表于 2021-12-6 12:52 | 顯示全部樓層
你可以看看這個程序 按鍵雙擊 N連擊 都可以
  1. #include "STC15F104E.h"
  2. #include "intrins.h"
  3. #define u8 unsigned char
  4. #define u16 unsigned int
  5. #define feed_dog() WDT_CONTR |= 0x10
  6. sbit sKEY = P3 ^ 2;
  7. sbit LED = P3 ^ 3;
  8. bit KEY = 1;
  9. u8 KEYms = 0;       //按鍵按下時間毫秒 松開清0
  10. u8 leave = 0;      //按鍵松開時間 減到0 則連擊清0
  11. u8 add = 0;         //按鍵連擊次數
  12. void InitTimer0(){
  13.     TMOD = 0x01;
  14.     TH0 = 0x0FC;
  15.     TL0 = 0x18;
  16.     EA = 1;
  17.     ET0 = 1;
  18.     TR0 = 1;
  19. }

  20. void main(){
  21.     WDT_CONTR = 0x27;
  22.     InitTimer0();
  23.     P3M0=0x08;P3M1=0x00;
  24.     while (1) {
  25.         feed_dog();
  26.         if (KEY == 0) {
  27.             leave = 250;        //等待250毫秒
  28.             if (++add >= 2) {   //雙擊
  29.                 add = 0;
  30.                 LED = !LED;     //LED亮滅翻轉
  31.             }
  32.             while (KEY == 0) {
  33.                 feed_dog();
  34.             }
  35.         }
  36.     }
  37. }

  38. void Timer0Interrupt() interrupt 1 { //12Mhz 1mS定時器中斷
  39.     TH0 = 0x0FC;
  40.     TL0 = 0x18;
  41.     if (leave && !--leave) {
  42.             add = 0;
  43.     }
  44.     if (sKEY) {
  45.         KEYms = 0;
  46.     } else {
  47.         if (KEYms != 0xFF) {
  48.             KEYms++;
  49.         }
  50.     }

  51.     KEY = !(KEYms >= 25);
  52. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级淫片免费视频黄 | 国产精品久久久久久久粉嫩 | 天天操夜夜爽 | 天堂一区二区三区 | 国产一区二区三区在线看 | 欧美二区三区 | 人人性人人性碰国产 | 欧美一区二区三区精品 | 亚欧洲精品在线视频免费观看 | 日韩有码一区二区三区 | 三区四区在线观看 | 精品日韩 | 玖玖视频 | 亚洲精品www | 国产婷婷精品av在线 | 国产精品久久久久久久久久久久午夜片 | 中文字幕亚洲一区二区三区 | 成人国产免费观看 | 欧美激情在线播放 | 国产精品夜间视频香蕉 | 亚洲色视频 | 91直接看 | 欧美激情黄色 | 成人在线观看免费爱爱 | 99精品国产一区二区三区 | 亚洲一区中文字幕 | 国产精品成人品 | 自拍视频网站 | 99成人精品 | 午夜影院在线播放 | 一区二区av| 成人免费大片黄在线播放 | 亚洲欧美一区二区三区国产精品 | 不卡一区| 天堂一区二区三区 | 欧美日韩综合视频 | 激情欧美一区二区三区中文字幕 | 国内精品久久久久久影视8 最新黄色在线观看 | 中文字幕在线视频网站 | 中文字幕第一页在线 | 国产一区二区不卡 |