51单片机自学笔记定时器中断

目录

  • 相关寄存器
    • 中断允许寄存器IE
    • 中断优先级寄存器IP
    • 定时器/计数器控制寄存器TCON
    • 定时器/计数器工作模式寄存器TMOD
  • 程序
    • 代码
    • 计算定时器初值
    • 中断函数写法

相关寄存器

中断允许寄存器IE

中断允许寄存器用来设定各个中断源的打开和关闭,IE 在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H~AFH,该寄存器可进行位寻址,即可对该寄存器的每一位进行单独操作。单片机复位时IE全部被清0

51单片机自学笔记定时器中断_第1张图片

中断优先级寄存器IP

中断优先级寄存器在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H~BFH, IP用来设定各个中断源属于两级中断中的哪一级。该寄存器可进行位寻址即可对该寄存器的每一位进行单独操作。单片机复位时IP全部被清0

51单片机自学笔记定时器中断_第2张图片

定时器/计数器控制寄存器TCON

定时器/计数器控制寄存器在特殊功能寄存器中,字节地址为88H,位地址( 由低位到高位)分别是88H~8FH,该寄存器可进行位寻址。TCON寄存器用来控制定时器的,标志定时器溢出中断情况。单片机复位时TCON全部被清0
TFI、TRI、TF0和TR0位用于定时器/计数器
IE1、 ITl、IE0和IT0位用于外部中断

51单片机自学笔记定时器中断_第3张图片

定时器/计数器工作模式寄存器TMOD

定时器/计数器工作方式寄存器在特殊功能寄存器中,字节地址为89H,不能位寻址,TMOD用来确定定时器的工作方式及功能选择。单片机复位时TMOD全部被清0

在这里插入图片描述
51单片机自学笔记定时器中断_第4张图片

程序

代码

***********************************************************************
程序功能:	本程序为定时器的基本驱动示例,定时器工作于方式1。
			下载程序后,隔三秒钟,第一个发光二极管被点亮。
**************************************************************************/
#include

#define uint unsigned int 
uint count;

sbit led=P1^0;


void main()
{
	TMOD=0x01;		 //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。
	TR0=1;			 //打开定时器
	TH0=0Xff;		 //定时器设置,每隔100微秒发起一次中断。
	TL0=0Xa4;
	ET0=1;			 //开定时器0中断
	EA=1;			 //开总中断
	while(1)
	{
		if(count==30000)
		{
			led=!led;//时隔3s后,led被点亮。
			count=0;
		}
	}
}

void time0() interrupt 1
{	TH0=0Xff;
	TL0=0Xa4;
	count++;
}

计算定时器初值

51单片机自学笔记定时器中断_第5张图片
51单片机自学笔记定时器中断_第6张图片

中断函数写法

51单片机自学笔记定时器中断_第7张图片
例子
51单片机自学笔记定时器中断_第8张图片
52单片机中断级别
51单片机自学笔记定时器中断_第9张图片
部分文字和图片来自STC官方手册和51单片机教程(郭天祥版)

你可能感兴趣的:(51单片机自学笔记定时器中断)