RYMCU

Nebula Pi 开发板评测报告(四)——定时器功能测试

ii11nnocent 2 年前
# Nebula Pi # 评测报告 # 定时器

51 单片机内部有 T0 和 T1 两个定时/计数器,可以实现精确时间的定时。采用如下程序可实现 LED 灯以 1Hz 的频率进行闪烁:

#include "reg52.h"

sbit LED = P1^0;

void Timer0_Init(void);

void Timer0_Init(void)
{
 TMOD = 0x01;  //工作方式1,16位定时器
 TH0 = 0x4C;   //定时50ms初值高八位
 TL0 = 0x00;   //定时50ms初值低八位
 ET0 = 1;    //开定时器0中断
 EA = 1;     //开总中断
 TR0 = 1;    //开启定时器0
}


void main(void)
{
 Timer0_Init(); //定时器0初始化
 while(1)
 {
  ;       //等待
 }
}

void Timer0() interrupt 1 using 1
{
 static unsigned int i; //计数变量
 i++;
 TH0 = 0x4C;   //重装初值,定时50ms初值高八位
 TL0 = 0x00;   //定时50ms初值低八位
 if( i == 20 )  //i=20时定时了1s
 {
  LED = ~ LED; //LED灯反转  
  i = 0;    //i清零,重新计数
 }
}

程序下载后,P1.0 引脚连接的 LED 等以 1Hz 的频率进行闪烁。
dingshiqi1hz.mp4

后发布评论