#include <reg51.h>
#define uchar unsigned char //宏定义用uchar 代替 unsigned char
uchar array_LED[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};//0--7--0(循环显示)
uchar one_sec, cp;
/*******************Timer0中断服务函数**********************/
void timer0_isr(void) interrupt 1
{
TH0 = 0xf8; //重新附初值
TL0 = 0x2f; //重新附初值
cp++;
if(cp >= 250) //半秒加一次
{
cp = 0;
one_sec++;
}
if(one_sec == 15)one_sec = 0;
P0 = array_LED[one_sec];
}
/***********************中断初始化函数**********************/
void timer0_init(void)
{
TMOD = 0x01; //中断方式1
TH0 = 0xf8;
TL0 = 0x2f; //对机器脉冲计数,2000个计满溢出引发中断
EA = 1; //开总中断
ET0 = 1; //开T0中断
TR0 = 1; //启动定时器T0
}
void main(void)
{
timer0_init();
while(1);
}