单片机原理级应用 笔记

个人简介

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

相关推荐
有一个好名字2 小时前
sqlfather笔记
笔记
freexyn3 小时前
Matlab自学笔记四十五:日期时间型和字符、字符串以及double型的相互转换方法
开发语言·笔记·matlab
pro_or_check5 小时前
笔记,如何区分大端、小端?
笔记
Rousson5 小时前
硬件学习笔记--34 GB/T17215.321相关内容介绍
网络·笔记·学习
懒洋洋爱睡觉7 小时前
考研计算机组成原理——零基础学习的笔记
笔记·学习·考研
doubt。9 小时前
【BUUCTF】[GXYCTF2019]BabySQli
网络·数据库·笔记·sql·mysql·安全·web安全
end_SJ9 小时前
初学stm32 --- flash模仿eeprom
stm32·单片机·嵌入式硬件
CV金科10 小时前
基础科学——高等数学简洁笔记-第一章第一节(函数----上)
笔记·学习·考研·学习方法·高等数学·简洁
Uitwaaien5412 小时前
单片机数码管动态显示
单片机·嵌入式硬件
APItesterCris13 小时前
如何监控和防范小红书笔记详情API的安全风险?
网络·笔记·安全