#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit led=P2^0; //定义LED端口
bit flag;
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer01(void)
{
TMOD |= 0x11; //
TH0=0xff; //
TL0=0x06;
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
TH1=0xff;
TL0=0x06;
ET1=1; //定时器中断打开
TR1=1;
EA=1;
PT1=1;
}
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
Init_Timer01();
while(1);
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3
{
TH1=0xff; //重新赋值
TL1=0x06;
flag=~flag; //指示灯反相,可以看到闪烁
}
void Timer0() interrupt 1
{
static u16 i;
TH0=0XFF; //给定时器赋初值,定时250Us
TL0=0X06;
i++;
if(i<=12000)
{
led=0;
}
if(i>12000&&i<24000)
{
led=1;
}
if(i>=24000&&i<=48000)
{
led=flag;
}
}
为嘛我这样写不对 ,老是循环 i到65535 之后就重复 你这个不会啊
|