#include
#include
//sbit led1=P1^0;
//sbit led2=P1^1;
//sbit led3=P1^2;
//sbit led4=P1^3;
unsigned char count;
unsigned char direction;
unsigned char delay1;
unsigned char delay2;
void timer0(void) interrupt 1 using 0
{
TL0=0x06;
TH0=delay2;
/* 定时器0中断 */
if (++delay1 > 4){
delay1 = 0;
if (++count > 3) count = 0;
P1 |= 0x0f;
P1 &= ~(0x01 << count);
}
/* 定时器0中断 */
}
void timer1(void) interrupt 3 using 0
{
TL1=0x06;
TH1=0x00;
/* 定时器1中断 */
if (direction){
if (++delay2 == 255)direction = 0;
}
else {
if (--delay2 == 0)direction = 1;
}
/* 定时器1中断 */
}
void serial() interrupt 4 using 3
{
}
// 定时器功能演示程序
// P01、P02、P03、P04脚接发光二极管led1、led2、led3、led4
// 每个发光二极管串上电阻接到5V电源上, 运行本演示程序
// 将会看到发光二极管被依次点亮和熄灭, 比街上的彩灯好看
// 多了,不信你试试看。
void main(void){
EA = 1; /* 开总中断 */
ET0 = 1; /* 允许定时器0中断 */
ET1 = 1; /* 允许定时器1中断 */
TMOD = 0x11; /* 定时器工作方式选择 */
TL0 = 0x06;
TH0 = 0x00; /* 定时器赋予初值 */
TL1 = 0x06;
TH1 = 0x00; /* 定时器赋予初值 */
TR0 = 1; /* 启动定时器 */
TR1 = 1; /* 启动定时器 */
delay2 = 0;
direction = 1;
while(1){
_nop_ (); /* delay for hardware */
}
}
相关文章









