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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3315|回復(fù): 7
收起左側(cè)

請(qǐng)問(wèn)單片機(jī)怎么用延時(shí)做按鍵長(zhǎng)按延時(shí)?

[復(fù)制鏈接]
ID:644190 發(fā)表于 2019-11-21 22:35 | 顯示全部樓層 |閱讀模式
大神們你們好,本人單片機(jī)新手,在做萬(wàn)年歷的時(shí)候?yàn)榱斯?jié)省一個(gè)按鍵,想把加的那個(gè)按鍵,做成功能是:?jiǎn)未伟聪轮患右淮危L(zhǎng)按開(kāi)始快速遞增,但是只能做出來(lái)前半部分功能,關(guān)于這個(gè)功能的代碼如下:
        if(i==333)
                  {        if(KEY2==1)
                          {
                                  i=0;
                          }
                  
                          goto j;
                  }
                else
                  {
                    while(!KEY2)
                    {
                     delay(5);
                     i++;                    }
                  }

j :{;}

求解答,問(wèn)題比較白癡,希望不要笑話哈哈,感謝大家
回復(fù)

使用道具 舉報(bào)

ID:25310 發(fā)表于 2019-11-22 08:06 | 顯示全部樓層
檢測(cè)時(shí)給個(gè)時(shí)間比如超過(guò)300mS算長(zhǎng)按,小于300算短按。操作時(shí)再調(diào)整.
回復(fù)

使用道具 舉報(bào)

ID:158375 發(fā)表于 2019-11-22 08:33 | 顯示全部樓層
按鍵是怎么掃描,怎么消小抖的呢?

如果是用定時(shí)器方式,很好辦的;確認(rèn)按鍵位置后,時(shí)間長(zhǎng)短根據(jù)進(jìn)中斷次數(shù)即可區(qū)分長(zhǎng)按鍵和短按鍵。
回復(fù)

使用道具 舉報(bào)

ID:644141 發(fā)表于 2019-11-22 09:05 | 顯示全部樓層
用狀態(tài)機(jī)進(jìn)行掃描
回復(fù)

使用道具 舉報(bào)

ID:470332 發(fā)表于 2019-11-22 09:11 | 顯示全部樓層
你這按鍵問(wèn)題比較大呀
回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2019-11-22 09:12 | 顯示全部樓層
if(i== 300)然 厚if(KEY2 ==1)i=0  
else whlle(!KEY2){ i++}

你的定義的變量  i  是什么?是按鍵時(shí)間還是計(jì)數(shù)器
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-11-22 10:31 | 顯示全部樓層
給你一個(gè)長(zhǎng)、短按鍵示例參考。
  1. #include <REG51.H>
  2. #define uint unsigned int                         //宏定義數(shù)據(jù)類型uint
  3. #define uchar unsigned char                 //宏定義數(shù)據(jù)類型uchar
  4. #define key_S 500                                        //宏定義短按(約20ms)
  5. #define key_L 16000                                        //宏定義長(zhǎng)按(約2/3s)
  6. #define key_M 11000                                        //宏定義長(zhǎng)按間隔(約1/3s)
  7. sbit key1=P3^6;                                                //加鍵
  8. sbit key2=P3^7;                                                //減鍵
  9. uchar num=1;

  10. void keyscan()                                                //按鍵掃描
  11. {
  12.         static uint count1=0,count2=0;        //計(jì)數(shù)變量
  13.         if(!key1)   
  14.         {  
  15.                 count1++;  
  16.                 if(count1>=key_L)                        //長(zhǎng)按
  17.                 {
  18.                         if(num<255)
  19.                                 num++;        
  20.                         count1=key_M;
  21.                 }
  22.         }  
  23.         else                                                        //按鍵抬起
  24.         {  
  25.                 if(count1>key_S && count1<key_L)//短按
  26.                 {
  27.                         if(num<255)
  28.                                 num++;
  29.                 }
  30.                 count1=0;                                        //count清0
  31.         }   
  32.         if(!key2)   
  33.         {  
  34.                 count2++;  
  35.                 if(count2>=key_L)                        //長(zhǎng)按
  36.                 {
  37.                         if(num>0)
  38.                                 num--;        
  39.                         count2=key_M;
  40.                 }
  41.         }  
  42.         else                                                        //按鍵抬起
  43.         {  
  44.                 if(count2>key_S && count2<key_L)//短按
  45.                 {
  46.                         if(num>0)
  47.                                 num--;
  48.                 }
  49.                 count2=0;                                        //count清0
  50.         }
  51. }

  52. void main()
  53. {
  54.         while(1)                                                //12MHz晶振主循環(huán)周期33~41us
  55.         {
  56.                
  57.                 keyscan();                                        //按鍵掃描
  58.                 P1=~num;                                        //LED低電平顯示
  59.         }
  60. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2019-11-23 10:59 | 顯示全部樓層
1、別人的按鍵動(dòng)作,你是無(wú)法延時(shí)的,因?yàn)槟悴荒芸刂苿e人的手。
2、按鍵后是否響應(yīng)卻是你可以控制的。
3、檢測(cè)到按鍵后,你就起動(dòng)一個(gè)定時(shí)器,定時(shí)器動(dòng)作后,你再響應(yīng)按鍵的“動(dòng)作需求”,這就OK了。當(dāng)然你還要考慮中途取消等等問(wèn)題,這是你需要做的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品欧美一区二区三区 | 日韩一区二区三区在线观看 | 国产欧美精品 | 一区二区精品 | av网址在线播放 | 久久综合狠狠综合久久综合88 | 国产福利视频在线观看 | 亚洲精品一区二区三区 | 国产一区二区三区视频 | 九九热精品视频 | 一区二区久久精品 | 国产婷婷精品av在线 | 国产精品久久久久久久久久免费看 | 天天操人人干 | 给我免费的视频在线观看 | 伊人网站视频 | 一级毛片网 | 国产精品精品视频一区二区三区 | 99精品国产一区二区青青牛奶 | 欧美三区视频 | 欧美乱人伦视频 | 亚洲成人一区 | 国产一在线观看 | 毛片一级电影 | 在线a视频网站 | 精品成人一区二区 | 亚洲电影在线播放 | 精品二| 精久久久| 羞羞的视频在线看 | 成人国产精品免费观看视频 | 99久久久国产精品 | 三级视频国产 | 国产一区二区视频在线 | 精品视频一区二区三区在线观看 | 成人精品视频在线观看 | 国产成人精品久久二区二区91 | 天天精品综合 | 99热这里都是精品 | 99精品一区二区三区 | 欧美亚洲一级 |