单片机8031的时种频率为6MHz,若要求定时为10ms,定时器O工作在模式0、模式1、模式2时,其定时器初值为多少?

如题所述

根据单片机6MHz的频率可以知道该单片机一个机器周期就是2μs ,1个机器周期=12个振荡周期
定时器/计数器做定时器使用时,既是对单片机的机器周期进行计数
定时10ms需要计数个数为10ms(定时时间)/2μs(一个机器周期)=5000
方式0:方式0时,T0做13位的计数器,所以最大计数个数为2的13次方,
计数初值=2的13次方(最大计数值)-5000(计数个数)
数据自己算啦,我就不算啦,只是记得方式0的时候用的是TH0的高8位和TL0的低5位,所以算出来的数字转成二进制后取低5位送TL0,接下来的数据里取8位送THO
方式1:方式1时,T0做16位的计数器,最大计数值为2的16次方,也就是65536
计数初值=65536-5000 ,求出来的数转成二进制数后,低8位送TL0,高8位送THO
方式2:方式2时,T0为自动重装如初值的8位计数器,最大计数个数为2的8次方,也就是256 ,计256个数,最大定时时间只有256*2μs,所以可以通过定时0.5ms ,循环20次 来实现10ms的定时
0.5ms时间需要计数个数为0.5ms/2μs=250
计数初值=256-250=6,将转换成的二进制数00000110送THO和TL0,两个单元送同一个数
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-08
赞1楼。