新聞中心

        52定時器2的使用

        作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
        *Thisfileisanexampletousetimer2inmode0此程序用于定時器2模式0。以下程序200811.07調(diào)試成功。/*/
        #include52.h>/*當(dāng)前文件夾內(nèi)的文件*/
        #defineMSB_reload_value0x36/*msbreloadvalueexemple高位重載值:延時60ms*/
        #defineLSB_reload_value0x36/*lsbreloadvalueexemple低位重載值*/

        //sfrT2MOD=0xC9;/*定時器2控制寄存器地址。可位尋址,復(fù)位值=XXXXXX00B應(yīng)該加在reg52.h文件中。*/
        sbitP1_2=P1^2;
        /**FUNCTION_PURPOSE:Thisfilesetuptimer2inmode0(16bitsauto-reloadup/downcountingtimer).
        *用于模式0:16位自動重載向上/下計時
        *The16-bitsregisterconsistofall8bitsofTH2andall8bitsofTL2.
        *16位寄存器由8位的TH2和8位的TL2組成
        *TheEXF2bittoggleswhentimer2overfloworunderflowoccurs.
        *當(dāng)timer2向上/下溢出時,置位EXF2位
        *EXF2doesnotgenerateinterrupt.Thisbitcanbeusedtoprovide17-bitresolution
        *FUNCTION_INPUTS:P1.1(T2EX)=0fordowncountingor1forupcounting.
        *EXF2位并不引起中斷。此位可以用來提供17位輸入功能:向上/下計數(shù)功能
        *FUNCTION_OUTPUTS:void*/
        voidsystem_init()
        {
        EA=0;/*關(guān)中斷,設(shè)置定時器2*/
        T2MOD&=0xFC;/*T2OE=0;定時器2輸出不允許*/
        T2MOD|=0x01;/*DCEN=1;可以設(shè)置為向上/下計數(shù):此程序中為向上達到0xff時溢出*/
        EXF2=0;/*resetflag定時器2外部標(biāo)志位清除*/
        TCLK=0;
        RCLK=0;/*disablebaudrategenerator不用于波特率發(fā)生器*/
        EXEN2=0;/*ignoreeventsonT2EX視T2EX(P1.1)端信號無效*/
        TH2=MSB_reload_value;/*Initmsb_value填入初始化值*/
        TL2=LSB_reload_value;/*Initlsb_value*/
        RCAP2H=MSB_reload_value;/*reloadmsb_value重載值*/
        RCAP2L=LSB_reload_value;/*reloadlsb_value*/
        C_T2=0;/*timermode定時模式*/
        CP_RL2=0;/*reloadmode重載模式*/

        ET2=1;/*enabletimer2interrupt允許T2中斷*/
        TR2=1;/*timer2run開始計時*/
        EA=1;/*interuptenable中斷允許*/
        }
        voidmain(void)
        {
        system_init();
        while(1)/*endless*/
        {

        }
        }
        /***FUNCTION_PURPOSE:timer2interrupt*FUNCTION_INPUTS:void*FUNCTION_OUTPUTS:P1.2toggleperiod=2*(65536-reload_value)cycles*/
        voidit_timer2(void)interrupt5/*interruptaddressis0x002b定時器2中斷向量入口*/
        {
        P1_2=~P1_2;/*P1.2togglewheninterrupt.中斷時取反*/
        TF2=0;/*resetinterruptflag復(fù)位中斷標(biāo)志位*/
        }


        關(guān)鍵詞: 52定時器

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 黄平县| 航空| 崇礼县| 微山县| 浦江县| 徐水县| 峡江县| 轮台县| 霸州市| 华阴市| 松江区| 北流市| 通道| 乌审旗| 友谊县| 怀柔区| 东海县| 东兰县| 遂溪县| 湘潭市| 汝城县| 西宁市| 隆安县| 瑞金市| 长治市| 织金县| 翁牛特旗| 天台县| 苍山县| 长治县| 高平市| 社旗县| 泊头市| 靖边县| 怀远县| 防城港市| 香河县| 郧西县| 化隆| 太康县| 西昌市|