當前位置:歷史故事大全網 - 歷史天氣 - AT89S52怎么实现用定时器2定时一秒钟来实现功能?

AT89S52怎么实现用定时器2定时一秒钟来实现功能?

AT89S52定时器2是一个可以实现自动重装载功能的16位定时器,相对于定时器0和定时器1而言有其自身的优势。当然要实现1秒定时,也需要使用循环,因为16时钟,在12M晶振的情况下,最多也只能定时65毫秒左右,下面举例说明:

#include lt;reg52.hgt;

# Define uchar unsigned char

#define uint unsigned int

sbit Led=P0^0; //定义LED位

void Timer2()中断5 //调用定时器2,自动重装载模式

{

static uchar i=0; //定义静态变量i

TF2=0; //定时器2的中断标志要软件清0

i ; //计数标志自加1

if(i==20) //判断是否到1s

{

i=0; //将静态变量清0

Led=~Led; //LED位求反

}

}

void main()

{

RCAP2H=(65536-50000)/256; //重负载成分赋初值

RCAP2L=(65536-50000)256;

ET2=1; //开定时器2中断

EA=1; //开总中断

TR2=1; //开启定时器,并设置为自动重装载模式

while(1);

}

以上程序实现了LED灯1秒亮灭的功能。

  • 上一篇:u9下的魔兽地在哪里
  • 下一篇:液晶cof是什麽意思
  • copyright 2024歷史故事大全網