定时器寄存器配置
寄存器配置项
//TMOD(模式1-模式4),TCON配置,中断IE(EA、ET0),初始值配置
代码
Timer0_Init.h
#ifndef __TIMER0_INIT_H__
#define __TIMER0_INIT_H__
void Timer0_Init(void);
#endif
Timer0_Init.c
#include <REGX51.H>
void Timer0_Init(void) //1毫秒@11.0592MHz
{
//AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x66; //设置定时初始值
TH0 = 0xFC; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
EA=1;//打开总中断
ET0=1;//打开定时器 0 中断允许
TR0 = 1; //定时器0开始计时
}
main.c
#include <REGX52.H>
#include "LCD1602.h"
#include "Timer0_Init.h"
//定义 LED1 管脚
sbit LED1=P2^0;
/**
* @brief 每隔一秒led1闪烁一下
*/
void main(){
Timer0_Init();//定时器 0 中断配置
LCD_Init();
while(1){
}
}
void time0() interrupt 1 //定时器 0 中断函数
{
static unsigned int count;//定义静态变量 i
TH0=0XFC; //给定时器赋初值, 定时 1ms
TL0=0X18;
count++;
if(count==1000)//每隔一秒led1闪烁一次
{
count=0;
LED1=!LED1;
}
}