单片机原理级应用 笔记

个人简介

刘洋成志,男,银川科技学院计算机与人工智能学院,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实现,代码如下。

相关推荐
Suwg2094 分钟前
《手写Mybatis渐进式源码实践》实践笔记(第四章 Mapper XML的解析和注册使用)
笔记·后端·mysql·mybatis
我命由我123451 小时前
写作词汇积累:差池、一体两面、切实可行极简理解
经验分享·笔记·学习·学习方法·写作·阅读·中文
KhalilRuan1 小时前
代码随想录-笔记-其六
笔记
明明真系叻2 小时前
第二十四周机器学习笔记:动手深度学习之——统计学习知识
笔记·深度学习·机器学习
_不会dp不改名_2 小时前
HCIA笔记7--OSPF协议入门
网络·笔记·智能路由器
【上下求索】2 小时前
学习笔记063——通过使用 aspose-words 将 Word 转 PDF 时,遇到的字体改变以及乱码问题
笔记·后端·学习·pdf·word
末寒霁暖3 小时前
后端开发学习笔记:Maven ,MyBatis框架
笔记·学习·maven
小红卒4 小时前
CTFHub解题笔记之Web信息泄露篇:10.SVN泄露
笔记
神雕大侠mu5 小时前
大数据笔记之flink-cdc实时同步数据
大数据·笔记·flink