wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于單片機(jī)定時器,實現(xiàn)類似PLC多個軟定時器的MCU編程思路(原創(chuàng)代碼)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:471574 發(fā)表于 2020-11-13 15:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       單片機(jī)要想實現(xiàn)多個不同時基的控制,除了上系統(tǒng)外,本人采用分時段的方法,結(jié)合PLC的控制原理,實現(xiàn)出類似PLC定時器的控制方法,分別有0.01S定時器 12個,0.1MS定時器 10個,1S定時器10個,可以單獨(dú)設(shè)定,同時使用。如果MCU的程序容量比較大,可以實現(xiàn)更多的定時器,不過一般建議根據(jù)實際項目要求來調(diào)整。實現(xiàn)過程思路代碼如下(STC89單片機(jī)):
//以下程序及算法由本人zyhlove813原創(chuàng),特別是soft_timer實現(xiàn)算法值得借鑒,適用所有MCU,源碼示例請下載附件
#include "reg51.h"
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
/* define constants */
#define true 1
#define false 0
#define FOSC 11059200L    //時鐘頻率
#define T1MS (65536-FOSC/12/1000)   //1MS定時器設(shè)定值
#define T10ms 12    //0.01S定時器數(shù)組索引上限=12-1=11,因此0.01S定時器的個數(shù)=12個
#define T100ms (T10ms+10) //0.1S定時器數(shù)組索引上限=22-1=21,因此0.1S定時器的個數(shù)=21-11=10個
#define Timers 32   //1S定時器數(shù)組索引上限=32-1=31,因此1S定時器的個數(shù)=31-21=10個
#define Timers_bit (Timers/8)  //八個定時器為一組,共32/8=4組
#define SET_BIT(s,b,c)(s=(s&(~(1<<b)))+(c<<b))  //宏,設(shè)置某個位的值,0或1的狀態(tài)
#define GET_BIT(s,b)((s>>b)&0x01)                //宏,獲取某個位的值,返回0或1的狀態(tài)
#define SET_EN(b,c) (SET_BIT(timer_en[b/8],b%8,c))  //設(shè)置對應(yīng)定時器使能狀態(tài)
#define SET_ON(b,c) (SET_BIT(timer_on[b/8],b%8,c))  //設(shè)置對應(yīng)定時器對應(yīng)使能狀態(tài)
#define GET_EN(b) (GET_BIT(timer_en[b/8],b%8))     //獲取對應(yīng)定時器對應(yīng)使能狀態(tài)
#define GET_ON(b) (GET_BIT(timer_on[b/8],b%8))     //獲取對應(yīng)定時器線圈狀態(tài)
uint8_t  timer_en[Timers_bit];    //定時器使能狀態(tài)緩存
uint8_t  timer_on[Timers_bit];    //定時器線圈狀態(tài)緩存
uint32_t  timer_pv[Timers];       //定時器目標(biāo)值緩存
uint32_t  timer_cv[Timers];       //定時器當(dāng)前值緩存
uint32_tcount_1ms;               //硬件定時器1MS計數(shù)器
sbit LED1=P1^1;                   //測試用的IO1
sbit LED2=P1^2;                     //測試用的IO2
void soft_timer(void);            //聲明函數(shù)
void timer0_isr() interrupt 1    //定時器0中斷,每1MS中斷一次
{
   TL0 = T1MS;                     //reloadtimer0 low byte
   TH0 = T1MS>> 8;                //reload timer0 high byte
   soft_timer();                  //調(diào)用軟件定時器判斷
}
void main()
{
   TMOD = 0x01;                    //set timer0 as mode1 (16-bit)
   TL0 = T1MS;                     //initialtimer0 low byte
   TH0 = T1MS>> 8;                //initial timer0 high byte
   TR0 = 1;                        //timer0 start running
   ET0 = 1;                        //enable timer0 interrupt
   EA = 1;                         //open global interrupt switch
   count_1ms = 0;                  //initial counter
   timer_pv[1]=1;                    //0.01S定時器(1)的目標(biāo)值設(shè)為1,即10MS
    timer_pv[2]=1;                  //0.01S定時器(2)的目標(biāo)值設(shè)為1,即10MS
    timer_pv[12]=5;                 //0.1S定時器(12)的目標(biāo)值設(shè)為5,即500MS
    timer_pv[13]=5;                 //0.1S定時器(13)的目標(biāo)值設(shè)為5,即500MS
   SET_EN(1,1);                    //0.01S定時器(1)使能有效,開始計時
   SET_EN(12,1);                     //0.1S定時器(12)使能有效,開始計時
   while (1)
        {
             if(GET_ON(1))           //如果0.01S定時器(1)的定時線圈為1,即定時時間到
             {
                 LED1=1;             //LED1
                 SET_EN(2,1);        //0.01S定時器(2)使能有效,開始計時
                 SET_EN(1,0);        //0.01S定時器(1)使能無效,停止計時        
             }
             if(GET_ON(2))          //如果0.01S定時器(2)的定時線圈為1,即定時時間到
             {
                 LED1=0;            //LED1
                 SET_EN(1,1);       //0.01S定時器(1)使能有效,開始計時
                 SET_EN(2,0);       //0.01S定時器(2)使能無效,停止計時      
     }
             if(GET_ON(12))         //如果0.1S定時器(12)的定時線圈為1,即定時時間到
             {
                 LED2=1;             //LED2
                 SET_EN(13,1);        //0.1S定時器(13)使能有效,開始計時
                 SET_EN(12,0);        //0.1S定時器(12)使能無效,停止計時
             }
             if(GET_ON(13))
             {
                 LED2=0;              //LED2
                 SET_EN(12,1);        //0.1S定時器(12)使能有效,開始計時
                 SET_EN(13,0);        //0.1S定時器(13)使能無效,停止計時               
     }
   }
}
//軟件定時器的實現(xiàn)
void soft_timer()
{
    uint8_ti;
    uint8_ttemp;
    count_1ms++;        //1MS計數(shù)值+1
    if(count_1ms%10==0)    //判斷是否0.01S時間到
    {
        for(i=0;i<T10ms;i++)  //更新0.01S定時器的當(dāng)前值
        {
             timer_cv+=GET_EN(i);  //如果EN=1,則當(dāng)前值+1,否則+0
             timer_cv*=GET_EN(i);  //如果EN=1,則當(dāng)前值不變,否則當(dāng)前值=0 保障當(dāng)前值根據(jù)使能狀態(tài)自動加或清零
             temp=GET_EN(i)*(timer_cv>=timer_pv);   //計算是否到達(dá)目標(biāo)時間,如果使能無效的話,結(jié)果是0,如果使能有效的話,而且當(dāng)前值大于目標(biāo)值,結(jié)果是1
             SET_ON(i,temp);  //更新線圈是否到時狀態(tài)
        }
    }
    //以下算法相同
    if(count_1ms%100==0)   //判斷是否0.1S時間到
    {
        for(i=T10ms;i<T100ms;i++)
        {
             timer_cv+=GET_EN(i);
             timer_cv*=GET_EN(i);
             temp=GET_EN(i)*(timer_cv>=timer_pv);
             SET_ON(i,temp);
        }   
    }
    if(count_1ms%1000==0)   //判斷是否1S時間到
    {
        count_1ms=0;        //1MS計數(shù)器重啟
        for(i=T100ms;i<Timers;i++)
        {
             timer_cv+=GET_EN(i);
             timer_cv*=GET_EN(i);
             temp=GET_EN(i)*(timer_cv>=timer_pv);
             SET_ON(i,temp);
        }
    }   
}   



全部資料51hei下載地址:
SoftTimer.rar (31.31 KB, 下載次數(shù): 107)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:97678 發(fā)表于 2020-11-15 09:09 | 只看該作者
好東西!!!
下載來用用看。。
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
地板
ID:240034 發(fā)表于 2021-1-15 14:41 | 只看該作者
定時部分程序結(jié)構(gòu)不錯,參考借用下,
回復(fù)

使用道具 舉報

5#
無效樓層,該帖已經(jīng)被刪除
6#
ID:878420 發(fā)表于 2021-3-3 15:33 來自觸屏版 | 只看該作者
沒有看懂啊
回復(fù)

使用道具 舉報

7#
無效樓層,該帖已經(jīng)被刪除
8#
ID:948578 發(fā)表于 2021-10-27 18:26 | 只看該作者
s,a,b,c分別是表示啥參數(shù)?
回復(fù)

使用道具 舉報

9#
ID:471574 發(fā)表于 2021-10-30 10:40 | 只看該作者
yjheeqgnui 發(fā)表于 2021-10-27 18:26
s,a,b,c分別是表示啥參數(shù)?

b表示第幾個軟定時器,c表示ON或為OFF,用于設(shè)置定時器EN或ON的狀態(tài)
s表示軟定時器變量,因為是數(shù)組(timer_en,timer_on),需要計算出索引值,
注意得是timer_en[0]中二進(jìn)制每個位,對應(yīng)了軟件定時器0-7的狀態(tài)
回復(fù)

使用道具 舉報

10#
ID:875095 發(fā)表于 2021-10-31 10:21 | 只看該作者
嗯,這幾天也在想定時問題,借鑒一下
回復(fù)

使用道具 舉報

11#
無效樓層,該帖已經(jīng)被刪除
12#
ID:346397 發(fā)表于 2022-5-30 18:50 | 只看該作者
思路不錯
回復(fù)

使用道具 舉報

13#
ID:105206 發(fā)表于 2022-7-3 07:49 | 只看該作者
漂亮,感謝樓主分享。
回復(fù)

使用道具 舉報

14#
ID:462629 發(fā)表于 2022-7-9 15:25 | 只看該作者
這個思路可以,學(xué)習(xí)了
回復(fù)

使用道具 舉報

15#
ID:914666 發(fā)表于 2022-7-11 12:50 | 只看該作者
51hei有你更精彩
回復(fù)

使用道具 舉報

16#
ID:71535 發(fā)表于 2022-7-27 20:27 | 只看該作者
算法思路值得學(xué)習(xí),學(xué)習(xí)分享
回復(fù)

使用道具 舉報

17#
ID:137736 發(fā)表于 2022-10-31 16:44 | 只看該作者
頂,軟定時器,本人正在學(xué)習(xí),編了一個仿Arduno的millis程序,實現(xiàn)多程序非阻塞運(yùn)行
回復(fù)

使用道具 舉報

18#
ID:334781 發(fā)表于 2023-1-31 10:35 | 只看該作者
下載過來,研究一下,這個定時的思路不錯!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
国产日韩在线看片| 成人av网站在线播放| 2023欧美最顶级a∨艳星| 亚洲成a人片在线www| 激情文学一区| 在线播放av片| 99视频免费看| 亚洲精品中文字幕乱码三区不卡 | 激情久久五月| 在线免费观看的av| 亚洲成人黄色小说| 成人一区二区电影| 国产精品久久久久7777按摩| 在线播放黄色网址| 国产又色又爽又高潮免费| 国产成人精品免费视频大全最热| 欧洲在线/亚洲| 久久午夜影视| 丝袜美腿av在线| 偷窥韩漫第三季| 潮喷失禁大喷水aⅴ无码| 亚洲成人a**址| 0608新视觉| 一区二区三区视频在线观看免费| 浅井舞香一区二区| 国产精品网友自拍| 理论片鲁丝二区爱情网| 亚洲 欧美 日韩 在线| 爱情岛论坛亚洲首页入口章节| 国产精品色午夜在线观看| 日韩欧美激情四射| 久久这里只有精品首页| 色综合天天爱| xxxx在线视频| 妞干网在线视频| 国产精品伦理一区| 亚洲精品午夜视频| 亚洲人成无码网站久久99热国产| 欧洲日本亚洲国产区| 欧美日韩国产成人在线91| 成人亚洲精品久久久久软件| 免费短视频成人日韩| 日本最新在线视频| 在线免费观看h视频| 久久久国产精品黄毛片| 一起操在线视频| 美脚丝袜一区二区三区在线观看| 在线观看日韩视频| 狠狠躁夜夜躁久久躁别揉| 国产99久久久国产精品潘金| 香蕉综合视频| 欧美一级在线| 国产三级视频在线| 日本黄色免费在线观看| 国产又粗又猛又爽又黄91| 69xxx免费| 国产一线二线三线在线观看| 蜜桃av噜噜一区二区三| 91大神福利视频在线| 精品1区2区在线观看| 亚洲乱码中文字幕综合| 国产麻豆9l精品三级站| 欧美亚洲国产激情| 中文字幕成在线观看| 黄页网址大全在线观看| 国产一区你懂的| 中文字幕在线观看视频网站| 亚洲一区和二区| 大桥未久一区二区三区| 国产福利不卡| 性欧美办公室18xxxxhd| 欧美一区二区在线视频| 蜜桃视频免费观看一区| 精品福利久久久| 污污网站在线观看| 青青青国产视频| 在线观看日韩一区二区| 99在线视频免费| 熟妇人妻无乱码中文字幕真矢织江| 国产精品日韩欧美| 久久久精品欧美| 欧美一区二区啪啪| 国产欧美视频在线观看| 国产一区二区美女| 亚洲国产精品一区| 牛牛精品成人免费视频| 五丁香在线视频| 五十路亲子中出在线观看| 性生交大片免费看女人按摩| 日韩激情在线播放| 成人在线观看小视频| 免费黄视频在线观看| 亚洲午夜无码av毛片久久| 国产成人精品一区二区在线 | 最近2019中文字幕第三页视频 | 欧美人交a欧美精品| 精品久久久久久综合日本欧美| 日韩欧美极品在线观看| 日韩码欧中文字| 99视频精品全部免费在线| 久久国产欧美| 综合激情在线| 91精品国产乱码久久久久久久 | 亚洲深深色噜噜狠狠爱网站| 久久久久久亚洲精品美女| аⅴ资源天堂资源库在线| 免费的很黄很污的视频网站| 精品全国在线一区二区| 日批视频在线播放| 国精品人妻无码一区二区三区喝尿| 久久久久久久久影院| 国产午夜伦鲁鲁| 中文字幕久久综合| 精品一区二区三区自拍图片区| 国产精品入口福利| 亚洲欧美在线x视频| 欧美一级黄色录像| 欧美写真视频网站| 日韩欧美精品网站| 色欧美乱欧美15图片| 樱花草国产18久久久久| 亚洲欧美经典视频| 中文字幕在线免费不卡| 亚洲啪啪综合av一区二区三区| 国产午夜精品一区二区三区四区| 国产夜色精品一区二区av| 欧美电影网站| 青少年xxxxx性开放hg| 91成人精品网站| 日本欧美爱爱爱| 国产成人精品在线| 国产在线视频不卡| 99porn视频在线| 亚洲午夜精品久久久久久久久| 中文字幕一区在线观看视频| 亚洲美腿欧美偷拍| 精品国产精品自拍| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产成人精品久久| 国产精品99久久久久久久久 | 国产精品91久久| 国产免费一区二区三区在线能观看 | 99久久夜色精品国产亚洲狼| 国产精品国产一区| 一本综合精品| 日本www在线观看视频| 国产青青草在线| 成人免费图片免费观看| 播放一区二区| 大陆精大陆国产国语精品| 国产尤物久久久| 国产综合久久| 美女www一区二区| 91香蕉国产在线观看软件| 自拍偷拍亚洲激情| 欧美日韩另类一区| 精品中文字幕久久久久久| 久久天天躁日日躁| 欧美综合在线观看| 国产伦理久久久| 亚洲人体一区| 国产综合免费视频| 成人sese在线| 亚洲在线一区二区| 欧美日韩在线亚洲一区蜜芽| 亚洲国产精彩中文乱码av| 亚洲精品网址在线观看| 性欧美暴力猛交69hd| 97人人香蕉| 欧美另类videosbestsex日本| 大香煮伊手机一区| 人妻精品久久久久中文| 午夜爽爽爽男女免费观看| 国产情侣小视频| 影音先锋中文一区| 天天干人人干| 伊人春色在线观看| 日韩av手机在线| 亚洲国产精品一区制服丝袜| 啪啪av大全导航福利综合导航| 久久男人av| 激情文学一区| 久久久久国产精品厨房| 欧美日韩美女视频| 日韩精品免费电影| 国产成人亚洲综合91精品| 亚洲国产欧美一区二区三区不卡| 久久国产这里只有精品| 人妻久久一区二区| 亚洲精品一区二区三区区别| 全黄一级裸体片| 欧美福利视频一区二区| 亚洲色图 校园春色| 五月婷婷开心中文字幕| av男人的天堂网| sm在线播放| 北条麻妃一区二区三区在线| 亚洲综合国产激情另类一区| 国产日本亚洲高清| 欧美一级夜夜爽| 欧美在线欧美在线| 粉嫩av一区二区三区天美传媒 | 亚洲精品久久久一区二区三区 | 国产欧美日韩视频一区二区| 色噜噜狠狠成人中文综合| 中文在线资源观看视频网站免费不卡| 国产日韩欧美自拍| 亚洲精品网站在线播放gif| 日韩av片免费在线观看| 超碰10000| 国产精品无码无卡无需播放器| 黄色av小说在线观看| 性网站在线免费观看| 成人免费一区二区三区视频网站| 欧美午夜三级| 日韩黄色免费网站| 亚洲地区一二三色| 欧美巨猛xxxx猛交黑人97人| 欧美中日韩免费视频| 色欲无码人妻久久精品| 91在线精品入口| aaa大片免费观看| 欧美三级精品| 天堂一区二区在线免费观看| 亚洲www啪成人一区二区麻豆| 日韩在线观看免费av| 日韩欧美一区二区三区久久婷婷| 国产伦精一区二区三区| 久久久久久久久久久久| 94色蜜桃网一区二区三区| 成人福利视频网| 2021av在线| 亚洲欧美偷拍三级| 91精品无人成人www| 国产精品va在线| 欧美重口乱码一区二区| 日本免费在线播放| 青春草在线观看| 亚洲黄色av| 亚洲国产精品久久久久久| 热久久最新网址| 亚洲国产日韩在线观看| 日本一区网站| 亚洲国产一区二区三区在线观看| 一区二区三区不卡在线| 中文字幕在线观看第二页| 黄色在线免费| 从欧美一区二区三区| 久久99精品视频一区97| 国产伦理在线观看| 美女做爰内谢全过程视频| 欧美限制电影| 精品国精品国产尤物美女| 精品国产av无码一区二区三区| 亚洲成熟女性毛茸茸| 欧美男体视频| 日韩美女视频19| 国产精品一区二区三区免费| 国产精品不卡av| 很黄的网站在线观看| 国产精品一区二区久激情瑜伽| 天天视频一区二区三区| 日韩国产福利| 精品在线一区二区三区| 久久久久成人精品| 在哪里可以看毛片| 中文字幕av在线| 蜜臀久久久久久久| 97超视频免费观看| 青青青手机在线视频| 国产高清一级毛片在线不卡| 国产一区二区导航在线播放| 国产69久久精品成人| 亚洲毛片亚洲毛片亚洲毛片| 日韩一区av| 国产不卡一区视频| 国产日产欧美精品| 欧美男人亚洲天堂| 日韩经典一区| 欧美日韩国产精品一区二区三区四区 | 日韩一区二区麻豆国产| 成人黄色av片| 国产美女极度色诱视频www| 欧美午夜精品一区二区三区电影| 日韩欧美亚洲一区二区| 做a视频在线观看| 韩国版免费三体| 开心九九激情九九欧美日韩精美视频电影| 久久久久久伊人| 久久久久久久久久久久久久免费看| 美女av在线播放| 中文字幕中文字幕在线一区 | 国内亚洲精品| 日韩av在线免费观看一区| 黑人性生活视频| 欧美色综合一区二区三区| 成人动漫中文字幕| 国产精品免费一区二区三区四区| 国产精品人人爽| 日本福利一区| 一区二区亚洲精品国产| 人成免费在线视频| wwww亚洲| 在线观看日韩高清av| 成年人在线观看视频免费| www.男人的天堂.com| 国产麻豆精品在线观看| 99视频国产精品免费观看| 亚洲国产精品久久久久久久| 日韩成人av在线资源| 亚洲深夜福利网站| 永久免费看片视频教学| 欧美黑人一区| 欧美一级二级三级乱码| 漂亮人妻被黑人久久精品| 日本暖暖在线视频| 亚洲国产欧美另类丝袜| 国产男女在线观看| 污黄视频在线看| 亚洲国产高清在线| 日本成人在线不卡| 午夜伦伦电影理论片费看| 成人一区二区三区中文字幕| 裸模一区二区三区免费| 国产大奶在线| 国模少妇一区二区三区| 国产专区一区二区三区| 欧美色xxx| 日韩在线观看一区二区| y111111国产精品久久婷婷| 男人打飞机网站| 亚洲男女自偷自拍| 不卡视频一区二区| 国产一级片大全| 九九视频精品免费| 欧美一区二区三区在线播放| 全彩无遮挡全彩口工漫画h# | 精品影片在线观看的网站| 精品国产欧美成人夜夜嗨| 97人人澡人人爽人人模亚洲| av在线亚洲色图| 欧美成人精品在线观看| 中文字幕69页| 亚洲精品亚洲人成在线观看| 欧美黑人性猛交| 波多野结衣视频在线观看| 亚洲ab电影| 7m精品福利视频导航| 草逼视频免费看| 午夜精品偷拍| 91亚洲精品视频| 亚洲色图21p| 久久在线精品| 精品欧美一区二区三区久久久 | 黑人と日本人の交わりビデオ| 人人草在线视频| 亚洲国产另类久久精品| 欧美爱爱免费视频| 欧美美女在线直播| 欧美成人免费在线观看| 超碰在线免费97| 在线一区免费| 国产精品乱码一区二区三区| 性高潮久久久久久| 欧美激情伊人电影| 欧美一区二区三区公司| 红桃视频成人在线观看| 国产精品视频线看| a级高清视频欧美日韩| 久久福利视频一区二区| 麻豆精品网站| 欧美日韩1区| 欧美精选一区| 欧美亚洲激情| 精品国产一区二区三区不卡蜜臂| h片在线免费观看| 2018亚洲男人天堂| 国产精品亚洲人成在99www| 国产亚洲在线| 亚洲一区影音先锋| 伊人影院在线观看视频| 周于希免费高清在线观看| 日韩成人高清在线| 中文字幕永久在线视频| 亚洲毛片在线| 亚洲精品一区二区三区樱花| 永久免费在线| 7777精品伊人久久久大香线蕉的| 久久久久无码精品国产| 99视频精品全部免费在线视频| 成人3d动漫一区二区三区91| www.xxx黄| 欧美日韩中文精品| 日韩精品一区二区三| 黄色av成人| 中文字幕在线乱| 宅男网站在线免费观看| 一本色道久久综合狠狠躁篇的优点| 亚洲国产精彩视频| 北条麻妃一区二区三区|