mcs-51单片机定时器应用的初始化步骤有哪些
2个回答
展开全部
TMOD、TH0或TH1、TL0或TL1、EA=1;TR0或TR1=1;
TMOD选择方式。TH0=(65536-x)%256;x为定时时间,x<65536
EA=1;开中断;TR1=1;启动定时器。
例如:
TMOD=0X10;
TH1=0X4b;
TL1=0Xfe
TR=1;
“TMOD=0X10;”设置定时器1模式为模式一(16位定时器/计数器)
“TH1=0X4b;TL1=0Xfe;”设置定时器初值
"TR1=1"启动定时器1
t=(2^16-初值)*机器周期=(2^16-初值)*时钟周期*12
此例中:初值=0x4bfe=19454
t=(65536-19454)*1/11095200*12=0.04983993078087821760....约为0.05s即50ms
公式解释:
每个机器周期产生一个计数脉冲,计时器寄存器最大允许2^16,大于2^16就溢出触发中断。初值为T,则还有65536-T次计数,每次计数用时一个机器周期,所以总用时:t=(2^16-初值)*机器周期=(2^16-初值)*时钟周期*12
初值设置:把所需时间T代入上式解出初值0xAABB,把0xAA作为TH,0xBB作为TL
也可以用上式推导出初值计算公式
TMOD选择方式。TH0=(65536-x)%256;x为定时时间,x<65536
EA=1;开中断;TR1=1;启动定时器。
例如:
TMOD=0X10;
TH1=0X4b;
TL1=0Xfe
TR=1;
“TMOD=0X10;”设置定时器1模式为模式一(16位定时器/计数器)
“TH1=0X4b;TL1=0Xfe;”设置定时器初值
"TR1=1"启动定时器1
t=(2^16-初值)*机器周期=(2^16-初值)*时钟周期*12
此例中:初值=0x4bfe=19454
t=(65536-19454)*1/11095200*12=0.04983993078087821760....约为0.05s即50ms
公式解释:
每个机器周期产生一个计数脉冲,计时器寄存器最大允许2^16,大于2^16就溢出触发中断。初值为T,则还有65536-T次计数,每次计数用时一个机器周期,所以总用时:t=(2^16-初值)*机器周期=(2^16-初值)*时钟周期*12
初值设置:把所需时间T代入上式解出初值0xAABB,把0xAA作为TH,0xBB作为TL
也可以用上式推导出初值计算公式
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询