51单片机计数4次以后中断
时间: 2023-06-21 08:07:12 浏览: 72
您可以使用51单片机的定时器和计数器来实现计数4次后中断的功能。下面是一个简单的示例代码,您可以根据自己的需要进行修改:
```
#include <reg52.h>
sbit LED = P1^0; // 定义LED灯控制引脚
void timer_init() // 定时器初始化函数
{
TMOD = 0x01; // 定时器0,模式1
TH0 = 0xFC; // 定时器初值为65536-5000=60536,产生5ms中断
TL0 = 0x67;
EA = 1; // 打开总中断
ET0 = 1; // 打开定时器0中断
TR0 = 1; // 启动定时器0
}
void main()
{
unsigned char cnt = 0; // 计数器
timer_init(); // 定时器初始化
while(1)
{
if(cnt == 4) // 如果计数器累加到4,则执行中断操作
{
LED = ~LED; // LED灯取反
cnt = 0; // 计数器清零
}
}
}
void timer0_isr() interrupt 1 // 定时器0中断服务程序
{
TH0 = 0xFC; // 定时器初值为65536-5000=60536,产生5ms中断
TL0 = 0x67;
cnt++; // 计数器累加
}
```
在这个示例代码中,我们使用了定时器0和计数器来实现每隔5ms累加一次计数器,当计数器累加到4时,执行中断操作。在中断服务程序中,我们将计数器累加1,然后重新设置定时器初值。同时在主函数中,我们不断检测计数器是否累加到4,如果是则执行中断操作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)