求助,51单片机定时器初值设定问题
求大神翻译一下这两个指令:MOVTH0,#(65536-5000)/256MOVTL0,#(65536-5000)MOD256这两句是啥意思啊?尤其是为什么除256,这两...
求大神翻译一下这两个指令:
MOV TH0 ,#(65536-5000)/256
MOV TL0,#(65536-5000)MOD 256
这两句是啥意思啊?尤其是为什么除256,这两个指令执行后的结果是什么啊? 展开
MOV TH0 ,#(65536-5000)/256
MOV TL0,#(65536-5000)MOD 256
这两句是啥意思啊?尤其是为什么除256,这两个指令执行后的结果是什么啊? 展开
4个回答
展开全部
追问
嗯,那就是X=1000,1000除以256给TH0,1000取余256给TL0,是吗?那么这个定时器设定的定时时间是多少啊?
追答
【1】程序中,定时计数5000个脉冲后中断。初值X=65536-5000=60536。填入初值计数器中的值为:TH0=0xEC(236),TL0=0x78(120)。T0从60536开始加计数,加5000次后TH0,TL0均为0,溢出产生中断请求。
【2】具体时间看T0的时钟源——晶振的12分频。如果是12MHz晶振,时钟源为1MHz,5000个脉冲计数时长是5mS。每5mS将会发出T0中断请求。
展开全部
第一句就是将,(65536-5000)的高八位赋值给TH0
第二句就是将,(65536-5000)的低八位赋值给TL0
256就是2的8次方,一个数除以256相当于右移8位。MOD是求模的意思。
第二句就是将,(65536-5000)的低八位赋值给TL0
256就是2的8次方,一个数除以256相当于右移8位。MOD是求模的意思。
追问
嗯,那请问这个定时器的计时时间是多长啊?
追答
计时时间与晶振有关,比如12M晶振,计时1次是1 us,如你的参数,在12M晶振下定时时间是5ms。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
65536-5000的结果为16位,结果的高8位整数送到TH0(定时器高八位),结果的低8位送到TL0(定时器低八位),#(65536-5000)/256就是求结果高8位,#(65536-5000)MOD 256就是求结果低,8位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为定时器分高8位和低8位,所以TH0取的是65536-5000的转换成16进制的高8位,TL0取低8位!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询