TH0=(65536-500)/256

问题描述:

TH0=(65536-500)/256
1个回答 分类: 物理 2014-11-13

问题解答:

我来补答
TH0 是单片机 计数器0 的高8位寄存器
TH = timer hign TL = timer low
假设晶振频率是12mhz,一个机器周期=晶振频率/12=1 us
采用定时器0的方式1时,有16位寄存器(TH0和TL0),2^16 = 65536.
500是指定时时间为500 us.
65536-500 是计数器的初值,也就是定时器走500次 (1次为1us),到达65536会产生一个中断,定时器的计时时间为500 us.
(65536-500)/256 这个值赋给 TH0 高8位(2^8=256)
(65536-500)%256 这个值赋给 TL0 低8位
例 利用定时/计数器T1的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz.
1、计算计数初值X:
由于晶振为12 MHz,所以机器周期Tcy为1 s.
所以:
N=t/ Tcy =10000/1=10000
X=65536-10000=55536=D8F0H
即应将D8H送入TH0中,F0H送入TL0中
我也是初学单片机,对 TH0=(65536-500)/256 这种方法理解不深,也可以直接如 X=65536-10000=55536=D8F0H 把10进制数化成 16进制数.
lz加油咯
展开全文阅读