首页>手机 > 正文

52定时器2的使用

*Thisfileisanexampletousetimer2inmode0此程序用于定时器2模式0。以下程序200811.07调试成功。/*/#include52.h>/*当前文件夹内的文件*/#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复位中断标志位*/}

标签: 52定时器

推荐DIY文章
性能旗舰一加 10 Pro首销战报出炉 1秒破亿
一加 10 Pro重磅发布,最强性能旗舰10至名归
千万销量千家售后 一加多触点布局国内市场
科技加持,未来已来,“头号玩家”不再是科幻
一加 10 Pro发布在即,性能屏幕影像全方位提升
一加中国区新任总裁李杰 :做好品牌与用户之间的连接器
精彩新闻

超前放送