#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //包括一个52标准内核的头文件
sbit P10 = P1^0; //要控制的LED灯
bit m00=0;
int t;
//精确定时1秒钟闪烁LED
void main(void) // 主程序
{
RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟
RCAP2L =0x00;
TR2=1; //启动定时器
ET2=1; //打开定时器2中断
EA=1; //打开总中断
while(1) //程序循环
{ ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作
if(m00==1) //反转LED灯的亮灭
{t++;m00=0;}
if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ
{
t=0;
P10=~P10;
}
}
}
//定时器2中断
timer2() interrupt 5
{
TF2=0;
m00=1;
}
}
程序这样好像就可以了,时间参数还的再调一下,不过基本的问题解决了,谢谢! |