51单片机中断和定时

参考目录
https://blog.csdn.net/weixin_46364710/article/details/119918785

1.介绍

51单片机一共有5个中断源,外部中断0,定时器中断T0,外部中断1,定时器中断T1,串行中断。
每一个中断请求对应一个中断请求标志位,分别在特殊中断寄存器TCON和SCON中相应的位中表示。
和中断有关的寄存器有:IE(中断允许控制寄存器)、TCON(控制寄存器)、IP(中断优先级控制寄存器)
SCON(串行口控制寄存器)、TMOD(定时器/计数器模式控制寄存器)
中断系统

2.寄存器的介绍

1.定时、计数器控制器TCON

TCON:控制寄存器,作用是控制定时器的启、停,标志定时器溢出和中断情况。

D7D6D5D4D3D2D1D0
TF11TR1TF0TR0IE1IT1IE0IT0

TF1 :TF1=1表示T1有中断产生。(Timer Flag,定时器标志位)
TR1 :TR1=1表示T1开始运行。(单片机中T0引脚,需要高低电平的驱动)
TF0 :TF0=1表示T0有中断产生。
TR0 :TR0=1表示T0开始运行。(单片机中T1引脚,需要高低电平的驱动)
IE1 :IE1=1表示INT1有中断产生。
IT1 :IT1=1表示INT1为下降沿触发,IT1=0表示INT1为低电平触发。
IE0 :IE0=1表示INT0有中断产生。
IT0 :IT0=1表示INT0为下降沿(负跳变)触发,IT0=0表示INT0为低电平触发。

TCON控制器

2.定时器/计数器模式控制寄存器TMOD

TMOD:定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。

D7D6D5D4D3D2D1D0
GATEC/TM1M0GATEC/TM1M0

D0-D3为T0定时/计数器的设置,D4~D7为T1定时/计数器的设置 。
GATE :为门控位,GATE=0时,只要在编写程序时,使TCON中的TRO或TR1为1,就可以启动定时器/计数器工作。
GATE=1时,不仅要在编写程序时,使TCON中的TRO或TR1为1,且需要外部引脚也为高电平,才能 工作。
C/T :定时/计数模式切换,C/T=0时为定时模式,C/T=1时为计数模式。
M1,M0:用来选择定时计/计数器的工作方式,一般使用都是采用16位的计时计数器。

模式控制器TMOD

3.中断允许寄存器IE

中断的允许或禁止是有片内的中断允许寄存器IE控制的

D7D6D5D4D3D2D1D0
EA--ESET1EX1ET0EX0

EA :整体中断允许位;EA=1允许中断。
ES :串行中断允许位;ES=1允许中断。
ET1 :T1中断允许位;ET1=1允许中断。
EX1 :INT1中断允许位;EX1=1允许中断。
ET0 :T0中断允许位;ET0=1允许中断。
EX0 :INT0中断允许位;EX0=1允许中断。

中断允许寄存器IE

4.中断优先级IP

PX0:外部中断1优先级控制位
PT0:T0中断优先级控制位
PX1:外部中断1优先级控制位。
PT1:T1中断优先级控制位。
PS:串行口中断优先级控制位。

中断优先级IP

5.串行口控制寄存器SCON

串行口中断寄存器

3.中断流程

①中断源有中断请求;
②此中断源的中断允许位为 1;
③CPU 开中断(即 EA=1)。
以上三条同时满足时,CPU 才有可能响应中断

以外部中断0为例

主程序中需要有以下代码:
EA=1;//打开总中断开关
EX0=1;//开外部中断 0
IT0=0/1;//设置外部中断的触发方式
`

4 定时的工作模式

定时器的作用:第一可用于计时系统,实现软件定时,使程序每隔一固定时间完成一项操作,第二代替长时间的delay(),提高CPU的运行效率和处理速度。定时器的工作模式有4种:

模式0→13位定时器/计数器。
模式1→16位定时器/计数器,这个是最常用的一个模式。
模式2→8位自动重装模式,这个算是第二个最常用的一个模式。第二种模式主要用于串口通信产生波特率来用的
模式3→两个8位计数器。

在这里插入图片描述

1.模式0

13位的定时器,由TH的8位和TL的低5位组成
工作过程:

1.根据定时、计数值装入初始
2.开始计数后,计数器按加法计数器工作
3.计数器溢出时回到全0状态,计数或定时不再按预设值继续进行
4.计数溢出时亥产生中断申请信号
模式0

2.模式1

16位的定时计数器,由TH的8位和TL的8位组成
工作过程:同方式0
计数初值:高8位写入TH,低8位写入TL
模式1

3.模式2

可自动重装载的8位计数器
TL为8位计数器,装入初值并启动后按8位加法计数器工作
TH为8位寄存器,计数初值也装入TH

5.定时器、计数器的流程

使用定时器、计数器首先对其进行初始化
1.确定工作方式。即按照题目要求给TMOD送方式控制字
2.计算计数初值、定时初值,并写入TH0,TL0或TH1,TL1中
3.根据需要,对寄存器IE置初值,并开放定时器中断
4.对TCON寄存器中的TR0和TR1置位,启动定时器/计数器
5.计数器即按规定的工作模式和初值进行计数或开始定时

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值