标题: 关于51单片机定时/计数器工作方式0 的定时常数 [打印本页]

作者: 51黑科技    时间: 2016-2-3 22:43
标题: 关于51单片机定时/计数器工作方式0 的定时常数
12Mhz晶振,设定时器T0,工作方式0 ,5ms定时。
1.确定定时常数:
一个机器周期为1us,设初值为X。
则:(213 - X)*10⁻⁶ = 5*103 ,213 - X = 5*103 ,X=8192-5000=3192,即0C78H    。            
2.查 MCUtool ,定时初值为 0C78H,和计算的结果一致。
二进制数为:0000 00110111 1000

51汇编:
InitTimer0:
    MOV TMOD,#00H
    MOV TH0,#0CH
    MOV TL0,#78H
    SETB EA
    SETB ET0
    SETB TR0
    RET
51C:
void InitTimer0(void)
{
    TMOD = 0x00;
    TH0 = 0x0C;
    TL0 = 0x78;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}
其实,上面的初值只是按高5 位不计的13位计数器计算得出的。
而定时器/计数器工作在方式0 时 ,虽也是13位计数器,但它是由TLx的低5位和THx的高8位构成。这样,0000 00110111 1000  黑色的3位
数无效。
当TLx的低5位溢出时,向THx进位。根据13位计数器的特性,上面的初值应该为 0000001111000  ,即 0078H




作者: Reigns    时间: 2018-5-24 18:21
你好,请问截图的这个是什么软件呢
作者: 5314039    时间: 2018-5-24 22:46
Reigns 发表于 2018-5-24 18:21
你好,请问截图的这个是什么软件呢

单片机精灵




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1