全站数据
8 4 2 0 5 8 1

当晶振为6M时编写一个延时1ms的运行程序

经济创投说 | 简单学习,快乐成才!         
问题更新日期:2024-11-07 03:55:08

问题描述

当晶振为6M时编写一个延时1ms的运行程序希望能解答下
精选答案
最佳答案

计数器是按机器周期算的

一个机器周期=12时钟周期

不管时钟多少,都按一个机器周期=12时钟周期计算 //

12MHZ时钟换过来就是1M机器周期(1M/S)

1ms就是1000机器周期;

6MHZ时钟换过来就是0.5M机器周期(0.5M/S)

1ms就是500机器周期

8位计数器最高范围是65536,

如果我们要记时1s,可以以10ms为单位,循环记时100次

现在就是初始化,10ms为例

TL0=-10000; //对T0计数初始化赋值,用12M的JT,10ms也就是机器周期计数10000

TH0=-10000>>8;

这就是初始化,一次溢出10ms

(若用6M的JT,10ms也就是机器周期计数5000)

当然这只是其中一部分,具体还有比如TR0(1)的设置

溢出中断允许等!

上面两句等价于

TL0=55536;//(65536-10000)

TH0=55536>>8;

相当于从55536开始数,

数10000次(10ms)后溢出,为一个记数周期

100次后就是1s

上述过程是在中断服务程序中的

上面的内容不知道对你有没有用~~(网上找的)