单片机定时器定初始值的C编程与汇编编程,如下,我感觉这个初值设置不对应啊?

2024-11-30 06:41:01
推荐回答(4个)
回答1:

为你正确解答:
经过计算:
TH0=(65536-1100)/256=251=FBH
TL0=(65536-1100)%256=B4H;
即 定时时间常数 X=(65536-1100)=FBB4H

和汇编语言中的初始值有较大的误差
TH0 = 0xf5
TL0 = 0x33
汇编语言应改为:
TH0 = 0FBH
TL0 = 0B4H

如果满意 请选择:满意回答

回答2:

那十六进制数是从哪得来的?肯定是不对的。
65536-1100=64436=FBB4H,写成C程序是:
TH0 = 0xFB;
TL0 = 0xB4;
这种写法并不是汇编的,也是C语言的写法。
汇编是这样的
MOV TH0 ,#0FBH
MOV TL0 ,#0B4H

回答3:

都是C语言的写法,只是左边的更直观,右边的要先计算,再填写
汇编的写法是 MOV TH0,#0F5H
MOV TL0 ,#33H

回答4:

左边是十进的,右边是十六进的,你换算一下就行了!