用定时器怎么用呢?
追答#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define uchar unsigned char
#define uint unsigned int
#define T 10 //T=10ms为周期
#define t1 7 //0<=t<=10 t越大越快
sbit p0_0 = P0^0;
uint t = 0;
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer1(void)
{
TMOD |= 0x10; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH1=(65536-20000)/256; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL1=(65536-20000)%256; //定时20微秒
EA=1; //总中断打开
ET1=1; //定时器中断打开
// TR1=1; //定时器开关打开
}
main()
{
Init_Timer1();
while(1);
{
p0_0 = 1;
TR1=1;
while(t <= (t1*50*20)); //延时t1毫秒
TR1=0;//定时器关掉
t = 0;
p0_0 = 0;
TR1=1;
while(t <= ((T-t1)*50*20));//延时T-t1毫秒
TR1=0;//定时器关掉
t = 0;
}
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3 using 1
{
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
t++;
}