用定时器T0的中断控制8位LED闪烁

时间:2022-01-28 23:32:10
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i;
void main()
{
i=0;
EA=1; //打开总中断
TMOD=0x01; //使用定时器T0的工作方式1
ET0=1; //定时器T0中断允许
TH0=(65536-50000)/256; //给定时器T0的高8位赋值
TL0=(65536-50000)%256; //给定时器T0的低8位赋值
TR0=1; //启动定时器T0
P0=0xff;
while(1); //无限循环等待中断
}
void Time0(void) interrupt 1 //"interrupt"声明函数为中断服务函数,1表示定时器T0的中断编号
{

i++;
if(i==40)
{
P0=~P0;
i=0;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}