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

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

QQ登錄

只需一步,快速開始

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

C語言編程 如何實(shí)現(xiàn)按鍵按下不影響程序執(zhí)行?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
單片機(jī)如何實(shí)現(xiàn)按鍵按下不影響程序正常執(zhí)行
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:57657 發(fā)表于 2022-2-9 21:30 | 只看該作者
你這樣肯定是程序邏輯有問題,都用定時(shí)器中斷處理的。
回復(fù)

使用道具 舉報(bào)

板凳
ID:624769 發(fā)表于 2022-2-9 22:35 | 只看該作者
你按鍵程序里面只要沒有 delay 或者 while 就不會(huì)影響程序運(yùn)行。
回復(fù)

使用道具 舉報(bào)

地板
ID:514254 發(fā)表于 2022-2-10 00:18 | 只看該作者
按鍵用中斷實(shí)現(xiàn)或者具體的事務(wù)由定時(shí)器實(shí)現(xiàn)
回復(fù)

使用道具 舉報(bào)

5#
ID:161164 發(fā)表于 2022-2-10 01:40 | 只看該作者
不要用delay()!不要用delay()!不要用delay()!

給個(gè)栗子
  1. #include <reg52.h>

  2. typedef         unsigned char        u8;  //0 to 255
  3. typedef         unsigned int        u16;  //0 to 65535

  4. sbit KEY_XX = P3^5;
  5. u8 mode = 3;
  6. u8 i = 0;
  7. void disp()
  8. {
  9.     switch (mode)
  10.     {
  11.     case 0:
  12.         P1 = ~(0x01 << i);
  13.         break;
  14.     case 1:
  15.         P1 = ~(0x80 >> i);
  16.         break;
  17.     case 2:
  18.         P1 <<= 1;
  19.         if(P1 & 0x80)
  20.         {
  21.             P1 &= 0xFE;
  22.         } else {
  23.             P1 |= 0x01;
  24.         }
  25.         break;
  26.     case 3:
  27.         P1 >>= 1;
  28.         if(P1 & 0x01)
  29.         {
  30.             P1 &= 0x7F;
  31.         } else {
  32.             P1 |= 0x80;
  33.         }
  34.         break;
  35.     default:
  36.         break;
  37.     }
  38.     i = ++i %8;
  39. }
  40. void key_Proc()//單鍵短按
  41. {
  42.     static u16 Delay_XD=0;                        //消抖計(jì)數(shù)
  43.     if(!KEY_XX)
  44.     {
  45.         if(Delay_XD<0xFFFF)Delay_XD++;
  46.         //else Delay_XD = 0;                //連按功能
  47.         if(Delay_XD==0xFF)                        //消抖
  48.         {
  49.             mode = ++mode % 4;
  50.             i = 0;
  51.             P1 = 0xFF;
  52.         }
  53.     }
  54.     else                                                        //按鍵抬起
  55.         Delay_XD=0;                                        //Delay_XD清0
  56. }
  57. void main()
  58. {   u16 ScanCNT = 0;
  59.     while(1)
  60.     {
  61.         if(ScanCNT++ > 2000)
  62.         {
  63.             ScanCNT = 0;
  64.             disp();
  65.         }
  66.         key_Proc();
  67.     }
  68. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

6#
ID:592807 發(fā)表于 2022-2-10 09:22 | 只看該作者
定時(shí)器中斷檢測按鍵狀態(tài)
回復(fù)

使用道具 舉報(bào)

7#
ID:136119 發(fā)表于 2022-2-10 09:29 | 只看該作者
這個(gè)思路 是否適合你

BaiduShurufa_2022-2-10_9-28-39.png (71.14 KB, 下載次數(shù): 25)

BaiduShurufa_2022-2-10_9-28-39.png
回復(fù)

使用道具 舉報(bào)

8#
ID:415064 發(fā)表于 2022-2-10 11:14 | 只看該作者
不要用死循環(huán),每隔10ms讀一次io電平,多看下狀態(tài)機(jī)
回復(fù)

使用道具 舉報(bào)

9#
ID:313048 發(fā)表于 2022-2-10 11:21 | 只看該作者
用狀態(tài)機(jī)就可以了。
回復(fù)

使用道具 舉報(bào)

10#
ID:807651 發(fā)表于 2022-2-10 13:41 | 只看該作者
if(Time_2ms == 1)//定時(shí)器中斷每2ms檢測按鍵一次
{
  Time_2ms = 0;
   if(KEY == 0)//按鍵按下 低有效
   {
      b_key_10 +=1;
      b_key_11 = 0;
      if(b_key_10 > 24)//消抖50ms
     {
        b_key_10 = 0;
        if( f_key_ok == 0 )//
        {
            f_key_ok = 1;//已經(jīng)按下
            //切換模式
        }
     }
   }
   else
   {
       b_key_10 = 0;
       b_key_11 += 1;
       if(b_key_11 > 24)//松鍵消抖50ms
       {
           b_key_11 = 0;
           f_key_ok = 0;//松開
       }
   }
}
回復(fù)

使用道具 舉報(bào)

11#
ID:382454 發(fā)表于 2022-2-10 21:00 | 只看該作者
不要有死循環(huán),要有超時(shí)代碼自動(dòng)跳出函數(shù),就可以。
回復(fù)

使用道具 舉報(bào)

12#
ID:1003226 發(fā)表于 2022-2-23 10:25 | 只看該作者
中斷處理
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区 | 激情国产在线 | 一区亚洲 | 欧美一级全黄 | 狠狠操电影 | 91久久久久久久久久久久久 | 国内精品久久久久久久影视简单 | 欧美精品一区二区三区在线 | 亚洲欧美激情国产综合久久久 | 国产精品视频一二三区 | 国产精品亚洲一区 | 69性欧美高清影院 | 国产免费一区二区三区最新6 | 欧美日韩久 | 亚洲激精日韩激精欧美精品 | 久久久精彩视频 | 日韩av成人| 黄色电影在线免费观看 | 日本欧美大片 | 91一区二区三区在线观看 | 国产免费av在线 | 日韩成人专区 | 色片在线观看 | 国产精品久久久久久久三级 | 久久国产精99精产国高潮 | 国产激情免费视频 | 精品国产精品一区二区夜夜嗨 | 欧洲视频一区二区 | 精品视频一区二区 | 国产视频二区在线观看 | 日本不卡高清视频 | 久婷婷 | 国产免费让你躁在线视频 | 国产成人在线视频 | 91精品免费 | 欧美综合一区二区三区 | 性一交一乱一透一a级 | 国产精品jizz在线观看老狼 | 美女亚洲一区 | 精品亚洲一区二区 | 国产三级电影网站 |