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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1423|回復: 3
打印 上一主題 下一主題
收起左側

基于單片機計時器實現的按鍵長按功能無法正常使用

[復制鏈接]
跳轉到指定樓層
樓主
我的設想是在按鍵按下時按鍵計時的標志量清零,然后一秒加一,按鍵抬起時記錄時間數據判斷,超過兩秒即為長按,執行語句,但是代碼寫出來按按鍵沒有用,下面是代碼段這個是按鍵讀取的單片機代碼,按下按鍵flag_key置1,松手變成2
  1. unsigned char read_key()
  2. {
  3.         unsigned char line,row,key_value=0;
  4.         switch (key_sate)
  5.         {
  6.                 case 1:
  7.                 {
  8.                         P33=0;
  9.                         P32=0;
  10.                         P42=1;
  11.                         P44=1;
  12.                         if(P42==0||P44==0)
  13.                         {
  14.                         Delay_ms(5);
  15.                         if(P42==0||P44==0)
  16.                                 {
  17.                                 key_sate=2;
  18.                                 flag_key=1;
  19.                                 }
  20.                         }
  21.                 }
  22.                         break;
  23.                 case 2:
  24.                 {
  25.                         if(P44==0)
  26.                                 line=1;
  27.                         if(P42==0)
  28.                                 line=2;
  29.                         P33=1;
  30.                         P32=1;
  31.                         P42=0;
  32.                         P44=0;
  33.                         if(P33==0)
  34.                                 row=4;
  35.                         if(P32==0)
  36.                                 row=3;
  37.                         key_value=row*10+line;
  38.                         key_sate=3;
  39.                 }
  40.                         break;
  41.                 case 3:
  42.                 {
  43.                         if(P32==1&&P33==1&&P42==0&&P44==0)
  44.                         {
  45.                                         key_sate=1;
  46.                                         flag_key=2;
  47.                         }
  48.                 }
  49.                         break;
  50.         }
  51.         return key_value;
  52. }
復制代碼
然后是定時器計時的代碼,中間有幾句是讀取555頻率的
  1. void timer1_ms() interrupt 3
  2. {
  3.         time_1ms++;
  4.         if(flag_key==1)
  5.         {
  6.                 key_time=0;
  7.                 key_time_1s=0;
  8.         }
  9.         if(time_1ms>=1000)
  10.         {
  11.                 frequency_ne555=count_ne555;
  12.                 count_ne555=0;
  13.                 time_1s++;
  14.                 key_time_1s++;
  15.                 time_1ms=0;
  16.         }
  17.         if(flag_key==2)
  18.         {
  19.                 key_time=key_time_1s;
  20.         }
  21. }
復制代碼
最后就是判斷長按的,然后執行的代碼段
  1. void mod_re_time()
  2. {
  3.         unsigned char i,time_h_1,time_m_1,count_1;
  4.         time_h_1=time_h;
  5.         time_m_1=time_m;
  6.         count_1=count;
  7.         if(key==31)
  8.         {
  9.                 mod_re++;
  10.                 if(mod_re>=4)
  11.                         mod_re=1;
  12.         }
  13.         if(key==32)
  14.         {
  15.                 if(key_time>=2)
  16.                 {
  17.                 key=0;
  18.                 count=0;
  19.                 key_time=0;
  20.                 sum_tem=0;
  21.                 sum_hum=0;
  22.                 ave_tem=0;
  23.                 ave_hum=0;
  24.                 max_tem=0;
  25.                 max_hum=0;
  26.                 key_time_1s=0;
  27.                 }
  28.         }
復制代碼

屏幕截圖 2024-02-20 202359.png (39.87 KB, 下載次數: 94)

按鍵接線

按鍵接線
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:275826 發表于 2024-2-20 17:11 | 只看該作者
鍵盤接口電路先畫出來才能檢查程序
回復

使用道具 舉報

板凳
ID:213173 發表于 2024-2-20 19:17 | 只看該作者
這個示例里有你想要的內容
4位冒號數碼管時鐘 單鍵調時 仿真.rar (128.22 KB, 下載次數: 19)

回復

使用道具 舉報

地板
ID:1104689 發表于 2024-2-20 20:41 | 只看該作者
tyrl800 發表于 2024-2-20 17:11
鍵盤接口電路先畫出來才能檢查程序

補上了,謝謝提醒了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美一区二区三区在线观看 | 97国产精品 | 精品亚洲一区二区 | 国产日韩欧美一区 | av官网在线| 特一级毛片 | 国产在线a视频 | 亚洲精品无| 91精品国产乱码麻豆白嫩 | 国产精品久久久久久久久久免费看 | 黄色一级电影免费观看 | 日韩成人在线一区 | 国产高清免费 | 国产a视频 | 亚洲韩国精品 | 亚洲一区二区视频 | 色婷婷av久久久久久久 | 久久久精品久 | 亚洲精品视频在线播放 | 自拍偷拍第一页 | 国产91丝袜在线播放 | 麻豆av免费观看 | 超碰人人在线 | 亚洲欧美在线一区 | 91婷婷韩国欧美一区二区 | 国产日产精品一区二区三区四区 | 中文字幕一页二页 | 日韩中文在线 | 欧美日韩亚洲系列 | 91麻豆精品国产91久久久久久 | 欧美日韩亚洲一区 | 久久一区二区三区四区 | 成人精品一区二区三区中文字幕 | 成人一区av | 在线三级电影 | 国产精品视频网 | 国产精品国产三级国产aⅴ中文 | 久久久久久久久久久久久久国产 | 日日天天 | 日韩欧美中文字幕在线观看 | 欧洲亚洲一区 |