c51外部中断+定时器中断
时间: 2023-12-10 18:05:04 浏览: 160
以下是C51外部中断和定时器中断的示例代码:
1. C51外部中断
```c
#include "reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit key=P3^2; // 定义外部中断引脚
void External0Init()
{
IT0=1; // 设置外部中断0为下降沿触发
EX0=1; // 打开外部中断0
EA=1; // 总中断
}
void main()
{
External0Init();
while(1);
}
// 外部中断0中断函数
void External0() interrupt 0
{
// 处理外部中断0的代码
}
```
2. 定时器中断
```c
#include "reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P2^0;
void Time0Init()
{
TMOD|=0x01; // 选择定时器模式
TH0=0XFC;
TL0=0X18; // 定时1ms
ET0=1; // 打开定时器中断
EA=1; // 总中断
TR0=1; // 打开定时器0
}
void main()
{
Time0Init();
while(1);
}
// 定时器中断函数
void Time0() interrupt 1
{
static u16 i;
TH0=0XFC;
TL0=0X18;
i++;
if(i==1000) // 计时1s
{
i=0; // 清零重新开始
led=~led;
}
}
```
阅读全文