定时器实现精确延时一秒

2017-11-05  本文已影响0人  禅绕此心

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器#include//因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16;   //对数据类型进行声明定义

typedef unsigned char u8;

u16 t=0;

void Timer0Init()

{

TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

TH0=0XFC; //给定时器赋初值,定时1ms

TL0=0X18;

ET0=1;//打开定时器0中断允许

EA=1;//打开总中断

TR0=1;//打开定时器

}

void Timer0() interrupt 1

{

TH0=0XFC; //给定时器赋初值,定时1ms

TL0=0X18;

t++;

}

void main (){

Timer0Init(); 

while(1){

if(t==1000)

{

t=0;

break;

} //延时1s

}

}

上一篇下一篇

猜你喜欢

热点阅读