亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        定時器實(shí)現(xiàn)LED燈周期性閃爍的研究與應(yīng)用

        2020-12-04 05:24:28松,張
        數(shù)字通信世界 2020年11期
        關(guān)鍵詞:秒鐘計數(shù)器寄存器

        高 松,張 博

        (北京政法職業(yè)學(xué)院信息技術(shù)系,北京 102628)

        0 引言

        物聯(lián)網(wǎng)技術(shù)是新一代信息技術(shù)的產(chǎn)物,物聯(lián)網(wǎng)(Internet of Things)指的是物物相連的網(wǎng)絡(luò)。隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,在物聯(lián)網(wǎng)相關(guān)領(lǐng)域中,經(jīng)常會用到通過定時一定的時間達(dá)到想要的效果。在物聯(lián)網(wǎng)應(yīng)用領(lǐng)域,針對于ZigBee開發(fā)板,要達(dá)到準(zhǔn)確的定時,經(jīng)常使用定時/計數(shù)器來實(shí)現(xiàn)定時效果。本文以定時器1為例,詳細(xì)論述使用定時器三種工作模式實(shí)現(xiàn)LED燈周期性閃爍的思路和程序設(shè)計方法。

        1 定時器介紹

        1.1 定時/計數(shù)器的工作原理

        定時/計數(shù)器的主要功能就是定時和計數(shù),其工作原理是通過對時鐘信號或外部輸入信號進(jìn)行加1的計數(shù),當(dāng)計數(shù)值達(dá)到設(shè)定值時便向CPU提出中斷處理請求,從而實(shí)現(xiàn)較為精準(zhǔn)的時間控制。在實(shí)現(xiàn)定時或計數(shù)的過程中,不需要CPU過多的參與,CPU可以去執(zhí)行其他程序,因而不僅可以準(zhǔn)確定時,還可以提高CPU的工作效率,因此,定時器被廣泛應(yīng)用在物聯(lián)網(wǎng)開發(fā)中。

        1.2 定時/計數(shù)器的分類

        CC2530單片機(jī)中共包含了5個定時/計數(shù)器,分別是定時器1、定時器2、定時器3、定時器4和睡眠定時器。其中,定時器1是16位定時器,定時器3和4都是8位的定時器,三種定時器都具有“自由運(yùn)行”、“模”、“正計數(shù)/倒計數(shù)”三種不同的工作模式。三種工作模式除了位數(shù)不同,需要配置的寄存器也有區(qū)別,特別是“模”模式,需要單獨(dú)配置T1CCTL0寄存器用來開啟0通道的輸出比較模式。

        2 定時器的三種工作模式

        2.1 自由運(yùn)行模式

        該模式下,計數(shù)器從0x0000開始,計數(shù)到0xFFFF時溢出,計數(shù)值為65535。如果晶振分頻后1秒鐘振動的次數(shù)為125 kHz,那么計數(shù)器溢出一次的時間65535/125000,大約是0.5秒鐘。

        2.2 模模式

        計數(shù)器從0x0000開始,計數(shù)到T1CC0寄存器設(shè)定的值時溢出。T1CC0寄存器是由兩個8位寄存器來存儲一個16位的數(shù)值,這兩個8位寄存器分別是T1CC0H(用來存儲16位數(shù)值的高八位)、T1CC0L(用來存儲16位數(shù)值的低八位),需要匹配跟要求的定時時間相關(guān)的計數(shù)值并存入這兩個寄存器中。使用模模式時要特別注意,需要配置寄存器T1CCTL0 |= 0x04;用來開啟通道0的輸出比較模式,否則計數(shù)器的值達(dá)到T1CC0后,是不會產(chǎn)生溢出中斷的。

        2.3 正計數(shù)/倒計數(shù)模式

        計數(shù)器從0x0000開始,正計數(shù)到T1CC0寄存器的匹配值時溢出,再倒計時回到0x0000,接著又正計數(shù)到T1CC0寄存器的匹配值時溢出,重復(fù)此過程。

        正計數(shù)/倒計數(shù)模式與模模式的區(qū)別在于模模式是從0開始計數(shù)到設(shè)置的匹配值時產(chǎn)生溢出,而正計數(shù)/倒計數(shù)模式是從設(shè)置的匹配值倒計數(shù)到0,再正計數(shù)到設(shè)置的匹配值時溢出。因此在匹配值相同的情況下,溢出一次的時間是模模式的兩倍。

        3 實(shí)際應(yīng)用

        3.1 項(xiàng)目需求

        如果系統(tǒng)時鐘采用16 MHzRC振蕩器,128分頻。利用定時器1的中斷控制方式,使用CC2530單片機(jī)內(nèi)部定時/計數(shù)器的三種模式實(shí)現(xiàn)1秒定時,控制LEDA(P1_0)和LEDB(P1_1)進(jìn)行周期性閃爍,兩個LED燈的初始狀態(tài)均為熄滅。兩個燈的具體閃爍效果要求為:通電后1秒鐘,LEDA點(diǎn)亮,持續(xù)1秒,熄滅;LEDB點(diǎn)亮,持續(xù)2秒,熄滅。重復(fù)LEDA點(diǎn)亮,持續(xù)1秒,熄滅;LEDB點(diǎn)亮,持續(xù)2秒,熄滅,循環(huán)此過程。

        3.2 項(xiàng)目分析

        首先使用宏定義定義兩個LED燈和引腳的對應(yīng)關(guān)系。即

        #define LEDA P1_0

        #define LEDB P1_1

        針對項(xiàng)目要實(shí)現(xiàn)的功能,分析通電后1秒鐘,LEDA亮1秒鐘時間,LEDB亮2秒鐘時間。然后LEDA亮1秒鐘時間,LEDB亮2秒鐘時間。依此類推,兩個燈閃爍的周期為3秒鐘。即通電后第2秒、第5秒、第8秒……狀態(tài)一樣,LEDA點(diǎn)亮;第3秒、第6秒,第9秒……狀態(tài)一樣,LEDB點(diǎn)亮。

        首先要解決的是1秒定時的問題。16 MHz分頻后的頻率為125 kHz,要定時1秒鐘的時間,如果使用自由運(yùn)行模式,溢出兩次才能定時約1秒。由于自由運(yùn)行模式是自動從16進(jìn)制的最小值0000增加到16進(jìn)制的FFFF,因此計數(shù)次數(shù)是65535,該模式下不需要匹配計數(shù)值。

        如果使用模模式,由于定時器1是16位定時器,匹配值最大不能超過65535。因此將125 kHz除以2,得到0.5秒的計數(shù)次數(shù)為62500次。將62500轉(zhuǎn)換為16進(jìn)制的F424,并分別存入高8位寄存器T1CC0H、低8位寄存器T1CC0L。即

        T1CC0H=0xF4;

        T1CC0L=0x24;

        注意:目前的兩個寄存器的匹配值對應(yīng)的時間是0.5秒。當(dāng)然也可以使用0.25秒或0.2秒的匹配值,原則上是只要能被1秒鐘整除就可以。

        如果是定時0.2秒,那么125 kHz除以5,得到0.2秒的計數(shù)次數(shù)為25000次,將25000轉(zhuǎn)換為16進(jìn)制的61A8,并分別存入T1CC0H、T1CC0L,即

        T1CC0H=0x61;

        T1CC0L=0xA8;

        如果是定時0.25秒,那么125 kHz除以4,得到0.25秒的計數(shù)次數(shù)為31250次,將31250轉(zhuǎn)換為16進(jìn)制的7A12,并分別存入T1CC0H、T1CC0L,即

        T1CC0H=0x7A;

        T1CC0L=0x12;

        對于正計數(shù)/倒計數(shù)模式,在定時時間一樣的情況下,要在模模式的匹配值基礎(chǔ)上,除以2。那么需要將0.5秒對應(yīng)的計數(shù)值62500轉(zhuǎn)換為16進(jìn)制的F424后,再除以2,得到7A12,分別存入T1CC0H、T1CC0L。即

        T1CC0H=0x7A;

        T1CC0L=0x12;

        同理如果是0.2秒,那么F424除以5,得到0.2秒的匹配值30D4,將30D4分別存入T1CC0H、T1CC0L,即

        T1CC0H=0x30;

        T1CC0L=0XD4;

        如果是0.25秒,那么F424除以4,得到0.25秒的匹配值3D09,將3D09分別存入T1CC0H、T1CC0L,即

        T1CC0H=0x3D;

        T1CC0L=0X09;

        3.3 程序設(shè)計

        在程序設(shè)計中,根據(jù)項(xiàng)目需求,兩個LED燈的變化均以1秒時間為基礎(chǔ)時間,而溢出一次的時間為0.5秒或0.2秒或0.25秒,均未達(dá)到1秒。因此需要定義一個跟溢出次數(shù)相關(guān)的變量num,初值為0。每溢出一次,num自增1,通過判斷num的值是否滿足一定條件來判斷是否到達(dá)1秒鐘。

        當(dāng)匹配值為0.5秒計數(shù)值的中斷服務(wù)函數(shù)具體如下所示:

        當(dāng)匹配值為0.25秒計數(shù)值的中斷服務(wù)函數(shù)具體如下所示:

        T1STAT &= ~0x20; //對應(yīng)正計數(shù)/倒計數(shù)模式;如果是模模式,應(yīng)為0x01

        通過上述對于三種工作模式,分別通過定時0.5秒、0.2秒、0.25秒三種情況的程序設(shè)計,均可實(shí)現(xiàn)準(zhǔn)確的定時效果。

        4 結(jié)束語

        在物聯(lián)網(wǎng)應(yīng)用開發(fā)中,使用定時器能實(shí)現(xiàn)精確的定時效果。三種工作模式中模模式和正計數(shù)/倒計數(shù)模式的溢出時間相差一倍,在計算匹配值時要精確計算,并正確的存入高八位寄存器和低八位寄存器。在使用溢出次數(shù)變量時,也要準(zhǔn)確的設(shè)置判斷溢出次數(shù)是否達(dá)到定時時間的條件,才可準(zhǔn)確定時。

        猜你喜歡
        秒鐘計數(shù)器寄存器
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        Lite寄存器模型的設(shè)計與實(shí)現(xiàn)
        地球跑得有多快(外三篇)
        蚊子1秒鐘振翅600次(外五篇)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        計數(shù)器競爭冒險及其處理的仿真分析
        完?。?/a>
        任意N進(jìn)制計數(shù)器的設(shè)計方法
        河南科技(2014年10期)2014-02-27 14:09:30
        基于單片機(jī)的仰臥起坐計數(shù)器
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        国产高潮流白浆免费观看不卡| 巨人精品福利官方导航| 日本亚洲色大成网站www久久| 另类欧美亚洲| 日产精品一区二区在线| av手机在线观看不卡| 亚洲国产精品无码久久98| 人禽无码视频在线观看| 午夜国产精品视频免费看电影 | 久久精品国产亚洲av麻豆床戏| 少妇爆乳无码专区| 国产乱人伦偷精品视频| 人妻少妇看A偷人无码电影| 中文字幕日韩高清乱码| 国产电影一区二区三区| 国偷自产av一区二区三区| 日韩美女av二区三区四区| 亚洲一区二区日韩精品在线| 日产学生妹在线观看| 国产欧美成人| 亚洲av毛片一区二区久久| 老女老肥熟女一区二区| 久久久天堂国产精品女人| 亚洲精品中文字幕不卡在线| 亚洲av高清一区二区| 三年片在线观看免费观看大全中国| 久久亚洲精品ab无码播放| 久九九久视频精品网站| 91精品啪在线观九色| 天天做天天爱天天综合网2021| 国产精品嫩草影院午夜| 国产91成人自拍视频| 波多野结衣中文字幕一区二区三区| 国产女女做受ⅹxx高潮| 四虎成人精品国产永久免费| 精品视频一区二区三区日本| 亚洲欧美日韩在线不卡| 亚洲第一无码精品久久| 国产一区二区熟女精品免费| av色欲无码人妻中文字幕| 最新国产乱视频伦在线|