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

相关寄存器

中断允许寄存器IE

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

在这里插入图片描述

中断优先级寄存器IP

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述

程序

代码

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

#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++;
}

计算定时器初值

在这里插入图片描述
在这里插入图片描述

中断函数写法

在这里插入图片描述
例子
在这里插入图片描述
52单片机中断级别
在这里插入图片描述
部分文字和图片来自STC官方手册和51单片机教程(郭天祥版)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值