单片机原理级应用 笔记

个人简介

刘洋成志,男,银川科技学院计算机与人工智能学院,2022级计算机与科学技术9班本科生,单片机原理及应用课程第6组。

指导老师:王兴泽

电子邮件:376418637@qq.com

前言

本篇文章是参考《单片机原理及应用(c语言版)第2版》杨居义·编著教材编写的笔记

由刘洋成志、马彦宏、王恕诚、赵梦麟、杜昊同学共同完成此篇文章,其中刘洋成志同学负责编写,马彦宏总结以及排版内容,赵梦麟同学负责收集网络资料,王恕诚同学负责整理书本资料及图片材料,杜昊同学负责将以上同学收集的材料进行分析总结,并提炼出精简信息。


模块五、单片机中断系统原理与项目实践

项目21:中断控制器与项目实践

1.学习目的

1)掌握定时器控制寄存器TCON设置;

2)掌握串行口控制寄存器SCON设置;

3)掌握中断允许寄存器IE设置;

4)掌握中断优先级寄存器IP设置;

5)了解中断优先级别;

6)了解80C51中断处理过程;

7)掌握80C51外部中断扩展;

8)掌握中断系统的应用。

2.学习重点与难点

1)定时器控制寄存器TCON设置;

2)串行口控制寄存器SCON设置;

3)中断允许寄存器E设置;

4)中断优先级寄存器IP设置;

5)80C51外部中断扩展;

6)中断系统的应用。

3.四种寄存器
(1)IE------中断允许控制寄存器

80C51单片机有5个中断源都是可屏蔽中断,其中断系统内部设有一个专用寄存器IE,用于控制CPU对各中断源的开发或者屏蔽。

1、EA(IE.7位):CPU中断总允许控制位。EA=1,CPU开放所有中断。各中断源的允许、禁止,分别由各中断源的中断系统允许位单独加以控制;EA=0,CPU禁止所有的中断,称为关中断。

2、ES(IE.4位):串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。

3、ET1(IE.3位):T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止定时器1中断。

4、EX1(IE.2位):外部中断1(INT1)中断允许位。EX1=1,允许外部中断1中断;EX=0,禁止外部中断1中断。

5、ET0(IE.1位):T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止定时器0中断。

6、EX0(IE.0位):外部中断0(INT0)中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。

80C51单片机系统复位后,IE中各中断允许位均被清零,即禁止所有中断。

(2)IP------中断优先级控制寄存器

1、PS(IP.4位):串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。

2、PT1(IP.3位):T1中断优先级控制位。PT1=1,T1为高优先级中断;PT1=0,T1为低优先级中断。

3、PX1(IP.2位):外部中断1(INT1)中断优先级控制位。PX1=1,外部中断1为高优先级中断;PX1=0,外部中断1为低优先级中断。

4、PT0(IP.1位):T0中断优先级控制位。PT0=1,T0为高优先级中断;PT0=0,T0为低优先级中断。

5、PX0(IP.0位):外部中断0(INT0)中断优先级控制位。PX0=1,外部中断0为高优先级中断;PX0=0,外部中断0为低优先级中断。

(3)TCON------定时器\计数器控制寄存器

IT1/ITO:外中断1/0触发方式控制位。当ITi=0时,外部中断1/0为电平触发方式。当ITi=1时,外部中断1/0为脉冲触发方式。

IE1/IE0:外部中断1/0标志。IEi=1,外部中断1/0向CPU申请中断。

(4)SCON------串行口控制寄存器

TI:串行发送中断标志CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。

RI:串行接收中断标志在串行口允许接收时,每接收完个串行帧,硬件将使RI置位。

4.80C51中断优先级

如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定先相应哪个中断请求。自然优先级由硬件形成,排列如下图表所示。

5.80C51外部中断扩展

·单片机仅有两个外部中断输入端(INTO;INT1)

·可用两种方法扩展:

1.定时器T0,T1。(工作在计数方式下)

定时器的计数模式可以用来对外部信号进行计数,通过计数值的变化间接实现外部中断的扩展功能。定时器可设置为计数模式,通过检测计数器的溢出或特定计数值触发中断。

实现方法:硬件连接:外部信号接入定时器T0或T1的计数引脚(TO:P3.4,T1:

P3.5)。定时器设置为计数模式,TO和T1会对外部脉冲进行计数。

软件逻辑:设置定时器工作在计数方式下(TMOD寄存器配置)。当计数器计满溢出时

触发定时器中断(TO或T1)。

2.中断和查询结合

6.中断系统的应用

中断系统的初始化实质上是针对4个与中断有关的特殊功能寄存器TCON、SCON、IE和IP进行控制和管理,具体步骤如下所示。

(1)开CPU中断总开关(EA)。

(2)设置中断允许寄存器IE中相应的位,确定各个中断源是否允许中断。

(3)对多级中断设置中断优先级寄存器1P中相应的位,确定各中断源的优先级别。

(4)设置定时器控制寄存器TCON中相应的位,确定外部中断是边沿触发还是电平触发的触发方式。

项目21任务实践

任务1 用外部中断控制P2口8只LED灯的亮灭
任务描述:

在P3.3号脚(/INT1)上接按键S,使用外中断控制P2日8个LED亮灭。当第一次按下按键S时,P2口

8位LED就亮,再次按下S按键,P2口8个LED就熄灭,如此循环,就可看见LED灯亮灭两种状态,电路图如下图所示。

分析:

设置寄存器TCON的IT1=1选择负跳变来触发外中断IE设置即EA=1(开总中断)、EX1=1(允许外中断1中断)。当按键S按下时,引脚为低电平,外中断产生中断请求,在执行外中断服务程序时,让P2口按位取反就可达到控制LED亮灭。

程序设计代码:

代码运用keil实现,代码如下。

任务二 外部中断控制LED灯左循环亮
任务描述:

在P3.2引脚(/INT0)上接按键S,使用外部中断控制P0口8只LED灯左循环亮。电路图如下图所示。

分析:

设置寄存器TCON的IT0=1选择负跳变来触发外中断,IE设置即EA=1(开总中断)、EX0=1(允许外中断0中断)。当按键S按下时,引脚为低电平,外中断产生中断请求,在执行外中断服务程序时,使LED灯左循环亮。

程序设计代码:

代码运用keil实现,代码如下。

相关推荐
致***锌44 分钟前
etf期权和个股期权哪个期权费更贵?
笔记
良许Linux1 小时前
32岁入行STM32迟吗?
stm32·单片机·嵌入式硬件
m0_466607702 小时前
【STM32CubeMX】ST官网MCU固件库下载及安装
stm32·单片机·嵌入式硬件
GodKK老神灭6 小时前
STM32 CCR寄存器
stm32·单片机·嵌入式硬件
杰克逊的日记9 天前
MCU编程
单片机·嵌入式硬件
Python小老六9 天前
单片机测ntc热敏电阻的几种方法(软件)
数据库·单片机·嵌入式硬件
懒惰的bit10 天前
STM32F103C8T6 学习笔记摘要(四)
笔记·stm32·学习
zkyqss10 天前
OVS Faucet练习(下)
linux·笔记·openstack
浦东新村轱天乐10 天前
【麻省理工】《how to speaking》笔记
笔记
奔跑的蜗牛AZ10 天前
TiDB 字符串行转列与 JSON 数据查询优化知识笔记
笔记·json·tidb