c语言单片机中断服务程序

时间:2023-03-08 16:18:36
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int uint count;
void delay(uint z)
{
uint x,y;
for(x = z; x > ; x--)
for(y = ; y > ; y--);
} /*中断服务特殊功能寄存器配置*/
void init()
{ TMOD = 0x01; //定时器16为计数工作模式
TH0 =0x4b;
TL0 =0xfd; //50ms
ET0 = ; //开定时器0中断
TR0 = ;//启动定时器0 EA = ; //开总中断 IT0 = ; //t0低电平触发模式,1位跳边沿触发模式
EX0 = ; //开T0中断
} void main()
{
init();
while()
{
P1 = 0xff;//流水灯全灭
//delay(2000);
}
} /*中断服务程序*/
void timer0() interrupt
{
count++;
if (count == )
{
P1 = ; //流水灯全亮
delay();
count = ;
}
}
void int0() interrupt
{
P1 = ;//流水灯全亮
}

1,短接单片机to脚与GND脚,TO外部中断点亮流水灯

2,定时器模式每80*50ms进入一次计时器一中断模式