科技> 正文

52定时器2怎么使用?52定时器设计原理是什么?

时间: 2022-11-14 15:04:25 来源: IT专家网

关于52定时器2的使用的知识大家了解吗?以下就是小编整理的关于52定时器2的使用的介绍,希望可以给到大家一些参考,一起来了解下吧!


(资料图片仅供参考)

*Thisfileisanexampletousetimer2inmode0此程序用于定时器2模式0。以下程序200811.07调试成功。/*/

#include/*当前文件夹内的文件*/

#defineMSB_reload_value0x36/*msbreloadvalueexemple高位重载值:延时60ms*/

#defineLSB_reload_value0x36/*lsbreloadvalueexemple低位重载值*/

//sfrT2MOD=0xC9;/*定时器2控制寄存器地址。可位寻址,复位值=XXXXXX00B应该加在reg52.h文件中。*/

sbitP1_2=P1^2;

/**FUNCTION_PURPOSE:Thisfilesetuptimer2inmode0(16bitsauto-reloadup/downcountingtimer).

*用于模式0:16位自动重载向上/下计时

*The16-bitsregisterconsistofall8bitsofTH2andall8bitsofTL2.

*16位寄存器由8位的TH2和8位的TL2组成

*TheEXF2bittoggleswhentimer2overfloworunderflowoccurs.

*当timer2向上/下溢出时,置位EXF2位

*EXF2doesnotgenerateinterrupt.Thisbitcanbeusedtoprovide17-bitresolution

*FUNCTION_INPUTS:P1.1(T2EX)=0fordowncountingor1forupcounting.

*EXF2位并不引起中断。此位可以用来提供17位输入功能:向上/下计数功能

*FUNCTION_OUTPUTS:void*/

voidsystem_init()

{

EA=0;/*关中断,设置定时器2*/

T2MOD&=0xFC;/*T2OE=0;定时器2输出不允许*/

T2MOD|=0x01;/*DCEN=1;可以设置为向上/下计数:此程序中为向上达到0xff时溢出*/

EXF2=0;/*resetflag定时器2外部标志位清除*/

TCLK=0;

RCLK=0;/*disablebaudrategenerator不用于波特率发生器*/

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复位中断标志位*/

}

关键词: 可以用来 控制寄存器 中断向量

责任编辑:QL0009

为你推荐

关于我们| 联系我们| 投稿合作| 法律声明| 广告投放

版权所有 © 2020 跑酷财经网

所载文章、数据仅供参考,使用前务请仔细阅读网站声明。本站不作任何非法律允许范围内服务!

联系我们:315 541 185@qq.com