娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月18日(星期日)

正在發生

2020年05月18日 | 定時器計數、定時器中斷函數、while(1)之間如何協調、工作?

發布者:乘風翻浪 來源: eefocus關鍵字:定時器  計數  中斷函數  while(1) 手機看文章 掃描二維碼
隨時隨地手機看文章

51單片機程序,使用定時器時,定時器計數、定時器中斷函數、while(1)循環三者之間如何協調好整個流程?


我拿一個最經典的單片機應用——‘流水燈’來分析吧。


【定時器0實現間隔1s的流水燈】簡單示例

#include

 

typedef unsigned int u16;   //對數據類型進行聲明定義

typedef unsigned char u8;

 

#define LED P3

 

bit LED_flag=0;  //定時到1s的標志位

u8 n;            //循環變量,用作LED總線的位索引index

 

void InitTimer0(void); //定時器0,初始化

 

void main()

{

    LED=0XFF; //先初始化LED全滅(自上而下流動)

    InitTimer0();

    while(1)

    {

        if(LED_flag==1)

        {

            LED_flag=0;

            LED=~(0x01<>n);(自下而上流動)

            if(++n==8)

                n=0;

        }

    }

}

 

void InitTimer0(void) 

{

    TMOD |= 0x01;   //用|=防止配置沖突

    TH0 = (65536 - 50000)/256; ///定時器0,置初值(定時50ms)

    TL0 = (65536 - 50000)%256;

    EA = 1;

    ET0 = 1;

    TR0 = 1;

}

 

void Timer0() interrupt 1    //定時器0,中斷服務函數

{

    static u16 i;

    TH0 = (65536 - 50000)/256; ///定時器0,重裝初值(定時50ms)

    TL0 = (65536 - 50000)%256;

    i++;

    if(i==20) // 1s = 20 × 50ms 

    {

        i=0;

        LED_flag=1;

    }

}

 

第一、定時器什么時候開始工作呢?

TR0=1;//啟動定時器0,這個斷點就標志著定時器0開始工作了,不管同不同意中斷,它都在計時。


第二、什么時候進入中斷函數,進入中斷函數后定時器又是怎么工作的,怎么循環累加出延時時間的?

該示例程序配置了定時器的中斷時間為 50ms(12MHz晶振),也就是每隔 50ms 就進入一次中斷函數。


進入中斷后,程序又重新給定時器定時50ms(定時器0不會自動重裝初值),同時對中斷次數進行計數(i++)。


主程序只要查詢計數值(i),就能知道 定時器中斷了多少次了。


第三、while(1)循環里面又是怎么工作的呢?

首先,主函數的 while(1)表示系統是一個 循環系統,一直在循環,不結束。


當定時器產生中斷時,就會暫停主函數,這就稱為定時器中斷。等中斷服務函數執行結束后,又會在主函數被打斷的地方,繼續執行主函數的內容。


進一步理解

定時器等中斷服務屬于前臺工作,主函數屬于后臺工作。


這樣的系統稱為前后臺系統,包括一個死循環和若干個中斷服務程序:應用程序是一個無限循環,循環中調用API函數完成所需的操作,這個大循環就叫做后臺系統;而中斷服務程序,接收到系統的各種異步事件,也就是前臺系統。


這就像一個酒店服務流程一樣:酒店前臺柜員(中斷服務程序)接收到客戶的突發問題(單片機系統的各種異步事件),前臺柜員再將接收到的問題反饋給大堂經理(while(1)后臺)進行事件的處理解決。


這說明了:主函數在執行的時候,定時器中斷在前臺是一直在工作的(只要你開啟了)。


程序中,主函數的while(1),對定時器的中斷次數是否到達1s定時的標志位LED_flag進行查詢,如果==1,那它就將該標志位清0 ,并且執行流水燈事件。

關鍵字:定時器  計數  中斷函數  while(1) 引用地址:定時器計數、定時器中斷函數、while(1)之間如何協調、工作?

上一篇:51單片機(二十一)—— 定時器計數功能
下一篇:51單片機的中斷和定時器、計數器

推薦閱讀

樂視網召開2017年度業績說明會,投資者就關心的話題在網絡平臺上與樂視網高層溝通。在近兩個小時問答中,投資者關心的話題主要集中在樂視網巨額虧損、賈躍亭何時償還關聯交易的欠款、樂視汽車進展如何等領域。?4月27日,樂視網發布2017年財報,財報顯示,樂視網2017財年營收70.25億元,同比下降68%;凈利虧損138.78億元,同比下降2601.63%。?在今年第一...
機器人行業發展已經進入了下半場面,未來機器人將結合人工智能、、云計算等技術,達到柔性化、智能化和更高效的能力水平。新一代機器人能夠進入更多的應用場景,從制造到物流、醫療、建筑、交通等領域不斷延伸,為人類社會向前發展提供強大的動力。 近日,三菱宣布已收購了美國一家技術創業公司Realme RoboTIcs的股權,該公司致力于開發運動規劃技術,...
2020 年5月18日,MediaTek正式發布了天璣系列5G SoC新品——天璣 820。MediaTek天璣820采用7nm工藝制造,集成全球頂尖的5G調制解調器,最全面的5G省電解決方案帶來超低5G功耗,旗艦級多核CPU 架構讓性能遠超同級,同時搭載高能效的獨立AI處理器APU3.0。天璣820以同級最強的卓越表現將成為中高端5G智能手機的性能標桿。一圖說明MediaTek天璣820的特色。...
為期5天的第五屆絲綢之路國際博覽會暨中國東西部合作與投資貿易洽談會15日在西安落幕。會議期間舉辦的三場集中簽約儀式上,共簽訂重點合作項目72個,總投資達1583億元,涉及教育、現代農業、高技術產業等多個領域。本屆絲博會聚焦高質量共建“一帶一路”,與會代表一致期待未來在“一帶一路”框架下加強國際抗疫合作,推動世界經濟早日復蘇。從開展第一天...

史海拾趣

問答坊 | AI 解惑

關于接受短信內容號碼提取。

const char temp[]= \"+CMGL: 2,\\\"REC READ\\\",\\\"+8613621246911\\\",,\\\"09/03/31,13:57:39+32\\\" Abcf\"; char *m,*n; char num[12]; m=strstr(temp,\"+86\"); n=strstr(temp,\"\\\",,\\\"\") ; for(l=0;l …

查看全部問答∨

如何通過程序點亮wince6.0的背景光?

如何通過程序點亮wince6.0的背景光?多謝…

查看全部問答∨

筆記本底層軟件

筆記本底層軟件都包括什么,還有就是Windows APP 是什么意思,我是新手還望各位指教。謝謝!…

查看全部問答∨

WINCE中串口類的問題?

按照《EVC高級編程及其應用開發》的實例寫了一個串口。 程序中有這樣一句: private:         CCESeries m_ceSeries; //定義串口類 編譯時就出現錯誤,顯示: error C2146: syntax error : missing \';\' before identifi ...…

查看全部問答∨

我也建個2011電子設計大賽模擬放大類高級群

本帖最后由 paulhyde 于 2014-9-15 04:03 編輯 嘿嘿,論壇建的放大器的群滿了,建了個高級群167334516,人再多我升級成500人的超級群  …

查看全部問答∨

【曬經典】熱釋電紅外感應模塊

本帖最后由 dontium 于 2015-1-23 13:03 編輯 采用高熱電系數材料的RE200B,能夠以非接觸方式檢測出來自人體發出的紅外輻射,將其轉化為電信號輸出,經BISS0001放大處理后可直接通過繼電器控制外部設備,也可與單片機接口作為熱釋電紅外信號采 ...…

查看全部問答∨

求IC

那個師傅能給推薦一下,能驅動1W*10串2并的LED驅動AC呢…

查看全部問答∨

WinCE C# 串口測試程序源碼

replyreload += \',\' + 1683212; 本帖最后由 小小宇宙 于 2014-5-23 11:02 編輯 還在為WinCE下的串口糾結嗎,天嵌科技教你用串口,支持HEX發送和接收,支持文件發送,快來下載吧!請大家回復后下載! Timson,如果您要查看本帖隱藏內容請回復 ...…

查看全部問答∨

出一些板子

有些用不到的板子出了,有需要的來看一下,可小刀,倒板子和搗亂的請勿打擾 OK6410全套板子+排線+座,400 http://item.taobao.com/item.htm?id=41802417324 SPI下載器空板(買6410可以送) http://item.taobao.com/item.htm?id=4179670 ...…

查看全部問答∨

打算用AD9851芯片設計作為傳感器激勵源,怎么樣?

打算用AD9851芯片,采用DDS技術產生正弦波,來作為差動變壓器式位移傳感器的激勵源,怎么樣?會不會小題大做? …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 故城县| 那曲县| 武强县| 家居| 顺义区| 桂阳县| 宜州市| 开化县| 台中县| 台北县| 汝阳县| 德令哈市| 湖北省| 天全县| 搜索| 兴安县| 新竹市| 额敏县| 睢宁县| 社旗县| 城口县| 皮山县| 繁峙县| 佳木斯市| 偃师市| 东安县| 隆回县| 合川市| 蓝田县| 山东| 澄城县| 湘西| 英超| 肥乡县| 石嘴山市| 宁城县| 方山县| 湾仔区| 敦煌市| 定结县| 曲水县|