使用89c51芯片编程在开始后在初始定时器T0设置为50ms中断一次,设电机为静止状态,然后读取开关状态,确定某一速度,然后开中断,启动定时器T1,然后循环等待中断,T0中断入口启动然后关定时器 T0中断 置T0初始值开 T0中断 ,检测中断次数是否是20是计算电机转速,然后转速显示,中断返回,否直接中断返回直流电机转速计算公式:n=60·m/(N1·T·N)(rpm) 3、其中:n为直流电机转速,N=18为栅格数,N1为TO中断次数,m为定时器T1在规 定时间内测得的脉冲数,T为定时器TO定时溢出时间。 4、用K1~K3调节直流电机的转速,并测出每一档转速的值。转速值在数码管上显示。
时间: 2024-04-06 17:32:25 浏览: 12
这是一个关于使用89c51芯片编程计算直流电机转速并在数码管上显示的问题。在开始后,在初始定时器T0设置为50ms中断一次的情况下,设电机为静止状态,然后读取开关状态,确定某一速度。然后开中断,启动定时器T1,然后循环等待中断。当T0中断入口启动时,关闭定时器T0中断,置T0初始值并开启T0中断,然后检测中断次数是否是20。如果是,则根据公式n=60·m/(N1·T·N)计算电机转速并在数码管上显示,然后中断返回。如果不是20,则直接中断返回。通过调节K1~K3,可以实现直流电机转速的调节,并测出每一档转速的值。
相关问题
一个89C51系统,要求允许外部中断 和允许定时器T0中断,其他中断禁止,则IE寄存器可设定为 。IE寄存器的格式为:
一个89C51系统,要求允许外部中断和允许定时器T0中断,其他中断禁止,则IE寄存器可设定为:0x82。
IE寄存器的格式为:
| EA | - | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
|----|---|-----|----|-----|----|-----|----|
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
其中,EA为总中断允许位,当EA为1时,所有中断允许。ET2为定时器T2中断允许位,ES为串口中断允许位,ET1为定时器T1中断允许位,EX1为外部中断INT1允许位,ET0为定时器T0中断允许位,EX0为外部中断INT0允许位。
因此,如果要使外部中断和定时器T0中断允许,其他中断禁止,则IE寄存器可设定为0x82。
使用at89c51单片机的定时器t0,并且假设其工作于方式2,请编程实现在P1.0口输出周期为400微秒,占空比为10:1的脉冲
好的,以下是使用at89c51单片机的定时器t0实现在P1.0口输出周期为400微秒、占空比为10:1的脉冲的代码:
```
#include <reg52.h>
void main()
{
TMOD &= 0xF0; // 清零 T0 模式位
TMOD |= 0x02; // 设定 T0 为方式 2
TH0 = 0x3C; // 设定 T0 计数初值为 0x3C
TL0 = 0xB0; // 设定 T0 计数初值为 0xB0
ET0 = 1; // 打开 T0 中断
EA = 1; // 打开总中断开关
TR0 = 1; // 启动 T0 计数器
while (1); // 保持程序持续运行
}
void T0_ISR() interrupt 1 // T0 中断服务程序
{
static unsigned char count = 0;
if (count < 10) // 占空比为 10:1
{
P1_0 = 1; // P1.0 输出高电平
}
else
{
P1_0 = 0; // P1.0 输出低电平
}
count++; // 计数器加 1
if (count == 40) // 周期为 400 微秒
{
count = 0; // 计数器清零
}
}
```
解释一下代码:
首先,在 `main()` 函数中,我们先清零 T0 模式位,再将其设定为方式 2。然后,我们设定 T0 的计数初值为 0x3C 和 0xB0,这样 T0 计数完 65536 次后,就会溢出并触发 T0 中断。
接着,我们打开 T0 中断和总中断开关,并启动 T0 计数器。
在 T0 中断服务程序中,我们使用一个名为 `count` 的静态变量来记录当前脉冲的占空比。当 `count` 小于 10 时,我们将 P1.0 输出高电平;否则,将其输出低电平。每次中断服务程序执行完毕后,我们将 `count` 加 1,当 `count` 等于 40 时,也就是计数器计满 40 次,即经过了 400 微秒,我们将 `count` 清零。
这样,我们就实现了在 P1.0 口输出周期为 400 微秒、占空比为 10:1 的脉冲。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)