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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC12C5A60單片機寫的一個用定時器消抖,有點問題請指教

[復制鏈接]
跳轉到指定樓層
樓主
ID:465279 發表于 2020-3-7 16:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
定義一個按鍵和一個LED,按一下按鍵LED亮再按一下LED滅,用定時器消抖。下載后試了,可以實現但有時需要按好幾下才會亮或滅,不知是哪里代碼有問題
--------------------------------下面是main.c文件----------------------------------
#include <reg52.h>
#include <dingyi.h>
#include <timer.h>

void main(void)
{  
          LED=1;
        
   timer0();
         
         while(1){  anjian_0();   }
}


--------------------------下面是timer.c文件--------------------------------

#include <reg52.h>
#include <dingyi.h>

void anjian_0(void)
{
   if(KEY==0)
         {
            TR0  = 1;        //啟動定時器0
         }
}

void anjian_1(void)
{
        
  while(1){ if(KEY==0)    LED=~LED;   }
         
}
void timer0(void)      //配置定時器0
{
   TMOD &= 0xf0;      
         TMOD |= 0x01;    //TMOD 是定時器選擇及工作方式選擇,此是選擇定時器0工作在方式1,16位計數器
         TH0  = 0xF8;        //給高8位賦初值
         TL0  = 0xCC;         //給低8位賦初值
//         TR0  = 1;        //啟動定時器0
         ET0  = 1;        //開定時器0中斷
         EA   = 1;        //開總中斷
}

void timer0zd(void) interrupt 1    //定時器0中斷標志
{
  //static uchar i=0;
         TH0  = 0xF8;
         TL0  = 0xCC;
         LED=0;
         TR0=0;
         anjian_1();
}


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

使用道具 舉報

沙發
ID:275826 發表于 2020-3-7 17:28 | 只看該作者
看你的程序真費勁,按鍵去抖就三條語句的事情
回復

使用道具 舉報

板凳
ID:462827 發表于 2020-3-7 20:29 | 只看該作者
那你這個根本無須中斷嘛,搞復雜還寫錯了去了
回復

使用道具 舉報

地板
ID:465279 發表于 2020-3-7 21:17 | 只看該作者
tyrl800 發表于 2020-3-7 17:28
看你的程序真費勁,按鍵去抖就三條語句的事情

是因為我要用這個來實現其它功能,而我想要的功能說起來費勁。這個說著簡單點,
回復

使用道具 舉報

5#
ID:213173 發表于 2020-3-8 07:19 | 只看該作者
hxszrb 發表于 2020-3-7 21:17
是因為我要用這個來實現其它功能,而我想要的功能說起來費勁。這個說著簡單點,

使用定時器中斷服務函數的一般要求:函數中任務盡可能簡短,俗稱打一槍就跑,不可久留。更不能接近或大于中斷周期。不是必須不要在中斷函數中執行具體任務,只要設置個標志,具體任務放在main函數主循環中完成。更不能調用帶有阻滯型延時函數和while(1)死循環的子函數。在中斷任務沒有完成前CPU不會響應再入中斷請求。除非有更高優先級中斷才能打斷此中斷。
回復

使用道具 舉報

6#
ID:465279 發表于 2020-3-8 12:22 | 只看該作者
wulin 發表于 2020-3-8 07:19
使用定時器中斷服務函數的一般要求:函數中任務盡可能簡短,俗稱打一槍就跑,不可久留。更不能接近或大于 ...

非常感謝你的解釋,學習了。也大概知道我這個問題在那了,非常感謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品在线 | 欧美日本在线观看 | 亚洲一区二区黄 | 在线观看视频你懂得 | 中文一区二区 | 国产精品免费看 | 国产成在线观看免费视频 | 精品成人av | www网站在线观看 | 国产精品久久久久久久久久免费看 | 国产一级片在线播放 | h片免费看| 成人一级毛片 | 岛国午夜 | 中文字幕1区2区3区 日韩在线视频免费观看 | 午夜羞羞 | 亚洲精品性视频 | 欧美另类视频在线 | 国产91 在线播放 | 午夜寂寞影院在线观看 | 天天干天天爱天天 | 日本一二区视频 | 国产精品亚洲综合 | 99精品国产一区二区三区 | 国产精品久久久久久久久久 | 免费性视频 | 欧美一级二级三级视频 | 亚洲综合首页 | 日韩一区二区三区在线观看视频 | 亚洲一区二区三区四区五区午夜 | 日本不卡一区二区三区在线观看 | 午夜精品一区二区三区在线观看 | 99久久久无码国产精品 | 精品亚洲一区二区三区 | 青青草av网站 | 色毛片| 国内自拍偷拍一区 | 自拍偷拍一区二区三区 | 亚洲精品高清视频 | 久久婷婷av | 天天插天天操 |