设MCS51单片机的晶振fosc=12MHz,请计算采用定时方式2时的最大定时时间。
时间: 2024-05-22 07:16:54 浏览: 13
MCS51单片机的定时方式2是通过16位计数器实现的,计数器的最大值为65535。定时时间的计算公式为:
t = 65536 - (65536 - T) * fosc / 12MHz
其中,T为计数器初值,fosc为晶振频率,12MHz为晶振频率。
将T设为0,则最大定时时间t为:
t = 65536 * 1 / (12MHz / 2) ≈ 5.46ms
因此,采用定时方式2时的最大定时时间为5.46ms。
相关问题
设MCS51单片机的晶振fosc=6MHz,要求T0定时150微秒,请计算定时方式2时的定时初值。
定时方式2的计算公式为:TH0 = 256 - (T0计数器初值)
由于定时器0的时钟源为晶振,晶振频率为6MHz,所以每个机器周期为1/6MHz=0.1667微秒。
要求定时150微秒,即需要计数150/0.1667≈900个机器周期。
根据计算公式,可得TH0 = 256 - 900 ≈ -644。
但是,TH0是一个8位寄存器,不能存储负数,因此需要进行补码转换。将-644的绝对值转换为二进制数为01000011,再取反加一得到补码为10111101,即BDH。
因此,定时方式2的定时初值为BDH。
设MCS51单片机的晶振fosc=6MHz,试对定时器T1初始化,使之工作在模式2,产生200微秒的定时,并用查询T1溢出标志位的方法,控制P1.0输出周期为2ms的方波。
由于fosc=6MHz,所以每个机器周期为1/6MHz=166.67ns。
要产生200微秒的定时,需要计数的数值为:
200微秒/166.67ns=1200
因为MCS51单片机的定时器T1是16位的,所以计数器的初值为:
65535-1200+1=64336
在模式2下,T1的计数器值从初始值开始计数,直到溢出,再从初始值重新开始计数。因此,T1的中断周期为:
65536*166.67ns=10.922ms
为了控制P1.0输出周期为2ms的方波,每隔5个T1的中断周期(5*10.922ms=54.61ms)取反一次P1.0的电平即可。具体实现代码如下:
```c
#include <reg52.h>
void init_timer1() {
TMOD |= 0x10; // 设置T1为模式2
TH1 = 0xFC; // 设置计数器初值为64336
TL1 = 0x00;
EA = 1; // 允许中断
ET1 = 1; // 允许T1中断
TR1 = 1; // 启动T1
}
void timer1_ISR() interrupt 3 {
static unsigned char cnt = 0;
static bit level = 0;
TF1 = 0; // 清除T1中断标志位
cnt++;
if (cnt == 5) { // 每5个T1中断周期取反一次P1.0
cnt = 0;
level = !level;
P1_0 = level;
}
}
int main() {
init_timer1();
while (1);
return 0;
}
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)