51 定时器初值设定问题
TMOD=0X02;
TH0=0;
TL0=0;
这样时间是怎么看的?
方式2,晶振12Mhz
[解决办法]
12MHZ,机器周期1us,TL0每1us++
M1 M0 工作方式 功能说明
0 0 方式0 13位定时器/计数器
0 1 方式1 16位定时器/计数器
1 0 方式2 自动重载8位定时器/计数器
1 1 方式3 T0分为2个8位独立计数器,T1停止计数
TMOD=0x02是方式2
所以定时一次是256us.
简单一点你软件仿真,中断设断点,看2次中断的时间差就知道时间了
[解决办法]
现在单片机种类很多,有些机器周期是振荡周期的12倍,有些6倍,有些甚至是相等。以传统51单片机而言,是12倍,那么12MHz的机器周期就是1us,而且定时器为每机器周期加一计数的定时器,即1us加一,加到溢出时产生中断,方式2为8位自动重载方式,即TH0为重载寄存器,TL0用于计数的,计数到256就溢出重载,因此是256us会重载,,并中断位置一。