中断相关寄存器
(1)中断允许控制
(2)中断请求标志TCON
(2)方式1(计数器一共16位,一般用这个方式)
(3)定时器配置(T0或T1)
TMOD 工作模式寄存器:当M1 M0分别设为0 1时,采用工作方式:模式1
定时器0 (T0) 初始化代码(定时1ms)
我的开发板的晶振频率是11.0592Mhz
使用定时器初值设置辅助工具,把得出计时器高8位=0xFC,低8位=0x66
#include <REGX52.H>
void time0_Init() //计时器初始化函数
{
TMOD=0x01; //设置工作方式为模式1,16位计时器
EA=1; //CPU开放所有中断(全体)
ET0=1; //允许T0发生中断(T0是全体内的一个中断)
TR0=1; //允许T0开始计数
TL0=0x66; //低8位计数器赋初值
TH0=0xFC; //高8位计数器赋初值
PT0=0; //其实默认为0了
TF0=0;
}
void main()
{
time0_Init(); //进行初始化
P2_1=0;
while(1)
{
}
}
int i=1;
void tax0() interrupt 1 //计时器中断程序,让LED灯亮灭间隔一秒
{
i++;
TL0=0x66; //低8位计数器赋初值
TH0=0xFC; //高8位计数器赋初值
if(i>=1000)
{
i=0;
P2_4=~P2_4;
}
}