单片机c语言问题
TH0=-10000/256TL0=-10000%256以上两条指令时怎么计算的?那初值到底是多少?...
TH0=-10000/256
TL0=-10000%256
以上两条指令时怎么计算的?那初值到底是多少? 展开
TL0=-10000%256
以上两条指令时怎么计算的?那初值到底是多少? 展开
4个回答
展开全部
您好,我看你用的是51单片机吧?
是这样的,TH0是计时器0的高八位(H代表High),TL0是计时器0的低八位(L代表low),两个八位二进制数合为枯含一个十六位二进制数为计时器计数所用。
计时的时候,依照晶振频率(一般是晶振周期的12倍加1)的不同不断自加,直到加到TH0和TL0都溢出(即超出16位整形数范围)的时候,执行一次timer0函数的操作,一般此时会将定时器0初值重置,以保持此频率调用函数。
这里-10000/256其实就是取了-10000的高八位,-10000%256就是取了-10000的低八位,从这个初值开始加到16位整形数溢出的时候就是一个计时周期。
我上学期才学用过单片机,也不是非常没弊笑擅长卜指,还在学习中,如果有疑问欢迎HI我一起探讨。
是这样的,TH0是计时器0的高八位(H代表High),TL0是计时器0的低八位(L代表low),两个八位二进制数合为枯含一个十六位二进制数为计时器计数所用。
计时的时候,依照晶振频率(一般是晶振周期的12倍加1)的不同不断自加,直到加到TH0和TL0都溢出(即超出16位整形数范围)的时候,执行一次timer0函数的操作,一般此时会将定时器0初值重置,以保持此频率调用函数。
这里-10000/256其实就是取了-10000的高八位,-10000%256就是取了-10000的低八位,从这个初值开始加到16位整形数溢出的时候就是一个计时周期。
我上学期才学用过单片机,也不是非常没弊笑擅长卜指,还在学习中,如果有疑问欢迎HI我一起探讨。
展开全部
语句:
TH0 = -10000 / 256
TL0 = -10000 % 256
在KEIL环境下使用,将和下面两条语句等效:
TH0 = (65536 -10000) / 256
TL0 = (65536 -10000) % 256
编译的时候,KEIL编告型世译器将替我们计算出来初值。
KEIL编译器在计算袜肢的时租裂候,是按照16二进制数字来计算的,所以65536和0相等。
TH0 = -10000 / 256
TL0 = -10000 % 256
在KEIL环境下使用,将和下面两条语句等效:
TH0 = (65536 -10000) / 256
TL0 = (65536 -10000) % 256
编译的时候,KEIL编告型世译器将替我们计算出来初值。
KEIL编译器在计算袜肢的时租裂候,是按照16二进制数字来计算的,所以65536和0相等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用的应该是方宴雀滑式二定时 你上面的也可以等价于
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
TH0,TL0分晌腊别为高低八位寄存器,所以岁隐TH0就是/TL0就是%
初值就是65535-10000
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
TH0,TL0分晌腊别为高低八位寄存器,所以岁隐TH0就是/TL0就是%
初值就是65535-10000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询