51单片机定时器初值为什么可以是十进制数

比如
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;

对于51单片机而言,定时器初值本身最终必须是二进制数才会被识别。
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
之所以可以是十进制表述出来,这是由编译器决定的,也即是说keilc允许这样表示,编译时会自动转换为二进制。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-21
编译器在编译的时候,会帮你处理成二进制的。原码你什麼制都可以。2/8/10/16本回答被提问者采纳
第2个回答  2012-12-18
十进制、二进制、十六进制都还是同一个值啊,当然可以

51单片机定时器初值为什么可以是十进制数
对于51单片机而言,定时器初值本身最终必须是二进制数才会被识别。TH0=(65536-5000)\/256;TL0=(65536-5000)%256;之所以可以是十进制表述出来,这是由编译器决定的,也即是说keilc允许这样表示,编译时会自动转换为二进制。

关于51单片机定时\/计数器装入初值的问题
这个有什么看不懂得呢 第一种 是吧十进制化成十六机制的方法 第二种呢 就是单纯的十进制 这样跟你说吧 因为th0只有一个字节 那就只能放下8位2进制 于是第一种表示就是把一个大于一个字节小于两个字节的数据转化成两个字节高八位和第八位的分离形式 第二种就简单了 0x9c就是65536-100的十六...

单片机定时\/计数器有几种工作方式?
因为51单片机处理数据是按八位进行的,所以给定时器赋初值的时候,不能将一个数直接赋到t0中,而是将这个数先转化为一个十六进制数,将它的高两位数(也就是二进制的高八位)传送给th0,将低两位(也就是二进制的低八位)传送给tl0!(65536-x)\/256就是取计数值的高八位运算表达式,因为八位二...

51单片机 C语言 控制频率原理???
假设你的51单片机用的晶振是12MHz的,那么可以得到如下结论:51执行一个指令的时间周期是1uS,这个是51的基础知识,就不深入讲解了。然后,如果用定时器0确定输出频率,假设定时器0的TL0初始值是0x01,那么当TL0变为0x02时,就是经过了1uS时间——这个懂吧?那么,设置定时器0为工作模式1(即16位定...

51单片机定时器工作模式一,初值计算:当TC=3CB0H时,TH0 和TL0各等于多少...
3CB0H,分别在TH0存放3CH、TL0存放B0H;它是十进制的15536;工作在模式一,将在65536时溢出,这样,计数值就是50000。如果是定时工作方式,将计数50000个机器周期。如果51单片机选用12MHz晶振,将会定时50ms;如果51单片机选用11.0592MHz,将会定时54.25ms;如果51单片机选用 6MHz晶振,将会定时100ms。

单片机定时器装初值为什么对THX求模,对TLX求余
51单片机定时器 用好几种模式,你说的那种是16位的定时器,因为定时器为2个字节,所以最大值应该是65535 ,我们赋值时,就必须 进行对THX和TLX 赋值,因为THX为高8位 ,所以就要对256进行取模(取整) ,得到高8为的值。对256进行取余,得到低8位的值因为一个字节就是 256 ,就相当于 对15来...

51单片机定时器初值公式
1.简单说起,256表示一个8位分界点,对它求模得高位字节存在TH0中,求余得低位字节放在TL0中,拿十进制打比:15\/10得十位1,15%10得个位数5 2.12Mhz时,单周期指令时间为12\/fsoc=1us 方式1为16位定时\/计数器 故定时1ms为:TH0=(2^16-1000)\/2^8,TL0=(2^16-1000)%256 当为11....

51单片机定时初值是多少?
5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。定时\/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时\/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制...

51单片机定时器th0=0xfe时间是多少
51单片机的定时器初值计算方式如上图 fe 是十六进制数,如果换成十进制的,就是 254 至于你说的时间是多少,这还要看你的定时器的工作方式 不同的工作方式,对应的时间是不一样的 根据不同的工作方式进行取值,主要是得到常用的波特率 9600 若满意,记得采纳哦 ...

为什么51单片机定时器计数值取出来之后会比初值还小
有两种可能会造成这种情况:1、定时计数器启动后会从初值开始每个机器周期+1,也就是从49806开始每个机器周期+1,等记到65535(0xFFFF)后下一个周期就会清零,即从0000H开始计数。所以工作方式1在定时中断响应函数中一开始都要重装初值,否则就从0开始了。你说的情况可能定时中断函数中没有重装初值或者...

相似回答