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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機按鍵循環閃燈程序,按鍵不靈敏求大神改進!

[復制鏈接]
跳轉到指定樓層
樓主
ID:214276 發表于 2020-3-28 23:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
5黑幣
// 按鍵循環閃燈程序,可以實現每按一次按鍵變換不同的閃光頻率,只是按鍵反應是不那么響應快。特別是三連閃的時候有時按鍵沒反應,要長按住按鍵才會滅燈。
//不管是用if語句,還是switch語句都差不多效果,放在main()里面按鍵效果也是差不多,求大神改進。點按按鍵就能實現換燈功能,最好是可以在滅燈的時候可以休眠待機,再按一下又能恢復亮燈。
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit led    = P1^1;
sbit key1  =P3^2;   //STC15W408AS此腳為外部中斷0,按一次led改變一次狀態。
uint knum;              //key1按鍵按下次數計數變量
void keyscan();
void delay(uint xms);
void leds();

void delay(uint xms)                //@12.000MHz 大約定時1ms
{
        uint i,j;
for(i=xms;i>0;i--)
        for(j=460;j>0;j--);
}
void leds()
{              
        led=0;
  delay(300);
  led=1;
  delay(200);
  led=0;
  delay(300);
  led=1;
  delay(200);
  led=0;
  delay(300);
  led=1;
  delay(1200);
}

void keyscan()
{
          if(key1==0)
          {
                                         delay(5);
                                         if(key1==0)
                                         {
           while(!key1);
           knum++;
           if(knum==4)
           knum=0;
           }
                                  }

                switch(knum)
          {
             case 0: led=1;         break;  //滅燈
             case 1: led=0;         break;  //亮燈
             case 2: led=0;        delay(500); led=1;        delay(500); break;  //一閃一滅
             case 3: leds(); break;      //三閃一滅
          }
                                                                                                        
}
void main()
{
   while(1)
   {
                 keyscan();                 
   }                                               
}

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

使用道具 舉報

沙發
ID:89217 發表于 2020-3-29 05:03 | 只看該作者
  switch(knum)的前三步沒問題   第四部就會不靈敏了  因為你的LED程序里面的延時函數延時過長導致的,你這種情況最后用中斷 或者定時器來處理
回復

使用道具 舉報

板凳
ID:352458 發表于 2020-3-29 11:39 | 只看該作者
case 2: led=0;        delay(500); led=1;        delay(500); break;
按鍵延時有些長,閃燈延時又有些短。
回復

使用道具 舉報

地板
ID:275826 發表于 2020-3-29 14:20 | 只看該作者
樓主難道不知道單片機有定時器這個東西嗎?用定時器都會解決的
回復

使用道具 舉報

5#
ID:718123 發表于 2020-3-29 14:51 | 只看該作者
你可以試著改一下延時程序,就是定義的void delay那個函數中j數值再改小一點
回復

使用道具 舉報

6#
ID:214276 發表于 2020-3-29 15:43 | 只看該作者
昨天用了,定時中斷來控制按鍵,效果要好很多,可是睡眠模式的時候喚醒操作很遲頓,現在用低功耗模式待機也有4mA的電量消耗。還是達不到uA級別。PCON=0X02這個睡眠模式喚醒有沒有大神出手指點一下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久视频 | 婷婷色国产偷v国产偷v小说 | 日本福利视频免费观看 | 欧美人妇做爰xxxⅹ性高电影 | 精品国产乱码久久久久久蜜退臀 | 性色在线| aa级毛片毛片免费观看久 | 国产a区| 二区在线观看 | av av在线 | 日韩中文字幕免费在线 | 亚洲国产伊人 | 日日骑| 91色在线视频 | 亚洲成人黄色 | 九九久久精品视频 | aaaaaaa片毛片免费观看 | 中文字字幕一区二区三区四区五区 | 国产精品视频入口 | 亚洲精品一级 | 夜夜爽99久久国产综合精品女不卡 | 日日噜噜噜夜夜爽爽狠狠视频, | 日日操网站 | 91精品国产综合久久国产大片 | 日韩欧美一级 | 国产99久久久国产精品 | 日韩在线精品 | 成人性生交大片免费看中文带字幕 | 日日操夜夜操天天操 | 在线观看黄色大片 | 黄色操视频| 欧美淫片 | 久久人人国产 | 99reav| 一区二区视频免费观看 | 欧美精品网站 | 涩涩操 | 国产精品久久久久一区二区三区 | 久久精品视频亚洲 | 欧美日韩电影免费观看 | 欧美在线a|