新手弄的定时器延时代码  欢迎高手指点     
#include <reg52.h> //头文件
#include <intrins.h>
#define uchar unsigned char // 数据类型简化-起别名
#define uint unsigned int // 数据类型简化-起别名
uint n,i,j,m;
//定时1ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0xfc; //初值高8位
TL0 =0x66; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时10ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0xdc; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时20ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0xb8; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时30ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0x94; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时40ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0x70; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时50ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0x4c; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时60ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0x28; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
//定时70ms ***************************************************
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0x04; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
//*************************************************************************
void delay(n) //定时1ms的n(n<10)倍数 ***************************
{
for(i=0;i<n;i++)
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0xfc; //初值高8位
TL0 =0x66; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
}
//*************************************************************************
void delay(m) //定时50ms的m(m<=20)倍数 **************************
{
for(j=0;j<m;j++)
{
TMOD |= 0x01; //定时器0,工作方式1,16位
TH0 = 0x4c; //初值高8位
TL0 =0x00; //初值低8位
TF0 =0; //溢出清0
TR0 = 1; //打开定时器T0
EA=0; //关闭总中断
ET0=0; //关闭T0中断
while(TF0 ==0); //溢出等待
TR0 = 0; //暂停定时器T0
}
}
//*************************************************************************
|