单片机第五章
《单片机原理及应用》第5章 P0~P3口应用基础
3、矩阵键盘:
5.4 实验与设计
• 实验1 闸刀型开关输入/8段LED静态显示输出
5.4 实验与设计
• 设计1:LED模拟交通
• 6个灯—南北:黄、红、绿
•
东西:黄、红、绿
• (红、绿是10秒,黄闪烁2秒)
• 2个应急开关:南北绿或东西绿
• 画出硬件设计,编出模拟程序。
实验2 并行接口键盘/LED指示灯输出
同,每个显示缓冲器对应着一位显示器。
(3)查表并操作相应的显示器
• MOV • MOV • MOVC
A,#data DPTR,#DSPTAB A,@A+DPTR
• (4)显示子程序的调用
3、静态显示示例
• 【例5-4】利用51单片机的并行口作为静态显示的控制 口的示例
请修改:
(1)显示“12”; (2)轮流显示“12”、“--”、“AB”; (3)计数器:从00开始,1S加1。
设计1 计时秒表的设计
• (1)两位LED显示 • 可以显示00~99秒; • (2)两个按键 • 分别为启动/停止键、清零键。 • 要求:设计硬件电路,编写出软件程序(延时由软件
形成)。
设计2 模拟交通信号灯控制装置的设计
• (1)6个发光二极管模拟交通灯 • 南北:黄、红、绿 ;东西:黄、红、绿。 • (2)2个应急开关 • 南北绿东西红或东西绿南北红。 • 要求:设计硬件模拟电路,编写软件程序。
• 单片机原理及应用(第4版)
• 姜志海 王蕾 姜沛勋 编著
• 电子工业出版社
第5章 P0~P3口应用基础
• 片内并行I/O口的应用。 • 5.1 P0~P3口概述 • 5.2 输出操作 • 5.3 输入操作 • 5.4 实验与设计
单片机-第五章 单片机中断系统
(1)CPU正在执行一个同级或高优先级的中断服务程序; (2)正在执行的指令尚未执行完; (3)正在执行中断返回指令RETI或者对寄存器IE、IP进 行读/写的指令。 CPU在执行完上述指令之后,要再执行一条指令,才 能响应中断请求。
二、中断响应过程 从中断请求发生直到被响应,准备去执行中断服务程 序,此过程即中断响应过程。中断响应过程一般包括如下几 个阶段: 1、中断采样并置位 中断采样过程:CPU在每个机器周期S5P2期间顺序对 中断源采样、置中断标志。 2、查询标志 在中断采样后的下一个周期的S6按优先级顺序查 询中断标志。
第5章 MCS-51单片机中断系统
5.1.1中断的概念
单片机系统中,CPU和外部设备之间不断进行信息的传 输。通常CPU和外设之间的信息传送方式有以下几种: 程序控制方式 中断方式 直接存储器存取(DMA)方式
1、 程序控制方式 可以分为以下两种方式。 (1)无条件传送方式 外设始终处于就绪状态,CPU不必查询外设的状 态,直接进行信息传输,称为无条件传送方式。 此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。
三、中断响应的时间
一般来说,中断的响应时间最短为3个机器周期,最长 为8个机器周期。 一般中断请求标志位查询占1个机器周期。而机器周期 又恰好是指令的最后一个机器周期。执行此指令后,CPU 将响应中断,产生硬件长调用指令。 长调用LCALL指令需要2个机器周期。这样,中断响应 时间为3个机器周期。
是不可寻址的
在同级的几个中断源中同时发生请求时, 内部对同级的各中断源的优先级别有一个规 定的查询顺序: 自然优先级
外部中断请求 INT0 最高 定时/计数器 T0 外部中断请求 INT1 定时/计数器 T1 串行口 UART 最低 定时/计数器 T2
单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统
5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0
HT合泰单片机入门教程(第五章PWM)
HT合泰单片机入门教程(第五章PWM)第五章PWMPWM (Pulse Width Modulation) 是一种用于控制模拟电压和模拟电流的技术。
在单片机中,PWM 可以通过改变一个端口的输出电平的占空比来模拟出一个模拟信号。
在HT合泰单片机中,有多个IO口支持PWM功能,以便实现各种控制需求。
本章节将介绍如何在HT合泰单片机上使用PWM功能。
一、PWM原理PWM是通过改变一个端口的输出电平来模拟一个连续的模拟信号。
具体来说,PWM是通过改变输出端口的高电平时间和低电平时间来达到模拟电平的目的。
当PWM的周期很短时,输出端口的高电平时间较长,电平接近高电平。
当PWM的周期很长时,输出端口的高电平时间较短,电平接近低电平。
通过改变PWM的周期和占空比,我们可以模拟出不同的模拟电压和模拟电流。
二、HT合泰单片机中的PWM功能在HT合泰单片机中,每个IO口都有一个PWM功能。
我们可以通过设置相应的寄存器来配置PWM功能。
具体来说,我们需要设置以下寄存器来配置PWM功能:1. PTCR (PWM TCON Register):该寄存器用于开启和关闭 PWM 功能;2. PWMP (PWM Period Register):该寄存器用于设置 PWM 的周期;3. PWMC (PWM Control Register):该寄存器用于设置 PWM 的占空比。
三、使用PWM功能使用PWM功能需要经过以下几个步骤:1.配置IO口功能:将IO口配置为PWM功能;2.设置PWM的周期:确定PWM的周期;3.设置PWM的占空比:确定PWM的占空比;4.开启PWM功能:将PWM功能打开。
具体的操作如下:1.配置IO口功能:P3M1=0;//将P3.0端口配置为推挽输出模式(PWM输出)P3M0=1;2.设置PWM的周期:PWMP=100;//设置PWM的周期为1003.设置PWM的占空比:PWMC=30;//设置PWM的占空比为304.开启PWM功能:PTCR=1;//开启PWM功能以上操作将在P3.0端口生成一个PWM信号,并且周期为100,占空比为30。
郭天祥单片机教程 第5章中断
第5章 MCS - 51单片机的中断
例 2 多中断源。 MCS - 51 单片机 有两个外部中断输入 端, 当有 2 个以上中 断源时, 它的中断输 入端就不够了。此时, 可以采用中断与查询 相结合的方法来实现。 可以使每个中断源都 接在同一个外部中断 输入端上, 同时利用 输入口线作为多中断 源情况下各中断源的 识别线。
EA X X X ET2 PT2 ES PS ET1 EX1 ET0 EX0 PT1 PX1 PT0 PX0
第5章 MCS - 51单片机的中断
5.2.3 中断响应 1. 中断响应的条件
在下列情况下,中断响应会受到阻断: (1) 同级或高优先级的中断已在进行中; (2) 当前的机器周期还不是正在执行指令的最后一个机 器周期(换言之, 正在执行的指令完成前, 任何中断请求 都得不到响应); (3) 正在执行的是一条 RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会 马上响应中断请求, 而至少执行一条其它指令之后才会响应)。
0 0
(LSB)
PS
PT1
PX1
PT0
PX0
中 中断 IP B8H 总 允 许 断 器 时
定 串 行 口
定 时 部 器 断 1 中
外 时 器
定 部 中 断
外
2
0 1 0
第5章 MCS - 51单片机的中断 表 5.2 同级内第二优先级次序
第5章 MCS - 51单片机的中断 例如, 某软件中对寄存器IE、 IP设置如下: MOV IE, # 8FH MOV IP, # 06H 则此时该系统中: * CPU中断允许; * 允许外部中断0、外部中断1、定时器 /计数器0、定时器/计 数器1中断申请; * 中断源的优先次序为: 定时器0 > 外部中断1 > 外部中断0 > 定时器1。
第5章 MCS–51单片机的接口与应用 99页 5.8M
(1) 用键盘连接的I/O线的二进制组合表示键码。例如用4行、
4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4 位口线的二进制数的组合表示16个键的编码,如图5.4(a)所示。 各键相应的键值为88H、84H、82H、81H、48H、44H、42H、 41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键 值编码软件较为简单直观,但离散性大,不便安排散转程序的 入口地址。
第5章 MCS–51单片机的接口与应用 JNB ACC.2,K2 JNB ACC.3,K3 JNB ACC.4,K4 JNB ACC.5,K5 JNB ACC.6,K6 ;检测2号键是否按下,按下转 ;检测3号键是否按下,按下转 ;检测4号键是否按下,按下转 ;检测5号键是否按下,按下转 ;检测6号键是否按下,按下转
;0号键功能程序
;0号键功能程序执行完返回 ;0号键功能程序
JMP START
……………………… PROM7: ……………………… JMP START …
;1号键功能程序执行完返回
;7号键功能程序 ;7号键功能程序执行完返回
第5章 MCS–51单片机的接口与应用
5.1.4 行列式键盘
行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构, 按键设置在行列的交点上。例如4×4的行列结构可组成16个键 的键盘。因此,在按键数量较多时,可以节省I/O口线。 1.行列式键盘的接口 行列式键盘的接口方法有许多,例如直接接口于单片机的 I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接 口;利用一种可编程的键盘、显示接口芯片8279进行接口等。 其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系
MOVX @DPTR,A
(单片机完整课件PPT)第五章
⑴ 对定时/计数器T0、T1中断,外中断边沿触发方式, CPU响应中断时就用硬件自动清除了相应的中断请求标 志。 ⑵对串行口中断,用户应在串行中断服务程序中用软件清 除TI或RI。
⑶对外中断电平触发方式,需要采取软硬结合的方法消除 后果。
只要 P1.0 端输出一个负脉冲就可以使 D 触发器置 “ 1” ,从而撤消了低电平的中断请求信号。所需 的负脉冲可增加如下两条指令得到: ORL P1,#01H ;P1.0为“1” ANL P1,#0FEH ;P1.0为“0”
T1
PX1 PT0 PX0
/INT1 T0 /INT0
相应位置1为高优先级;置0为低优先级。
优先级结构:
(1)低优先级中断可被高优先级中断所中断,反之不能; (2)任何一种中断(不管是高级还是低级),一旦得到
响应,与它同级的中断源不能再中断它。
(3)同级的中断源同时请求时,遵循辅助优先级顺序。
同级内的优先权 INT0 T0 INT1 T1 串行口 辅助优先级顺序 高
中断类型: (1)按中断源的不同分为: 硬件中断:由硬件产生请求使CPU响应中断。 软件中断:指可以通过相应的中断指令使CPU响应中断。 (2)按是否可屏蔽分为: 可屏蔽中断:指用户可以通过中断控制指令来控制CPU 是否响应中断源的中断请求。 不可屏蔽中断:指CPU不能屏蔽中断源的中断请求,必
ቤተ መጻሕፍቲ ባይዱ
须响应该中断请求。
2.中断申请标志
定时器控制寄存器TCON(88H)
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
ITX:选择 INTx中断触发方式。 ITX=1,选择 INT x 为下降沿触发方式。 ITX=0,选择
INT x 为低电平触发方式。
《单片机原理及应用》第5章 定时器及应用
计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计 数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。 对输入脉冲信号的基本要求如图5-2所示。
外部事件
计数电路 时间单位脉冲 单片机 计数完成信号
5.2 89C51定时器概述
• 89C51有两个16位的定时器/计数器,即定时器0(T0)和 定时器1(T1)。它们实际上都是16位加1计数器。 • T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1 和TL1构成。
• 每个定时器都可由软件设置为定时工作方式或计数工作方
• 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个 500μs的同步脉冲。请编程序实现该功能。查询方式, fosc=6MHz。
解:(1)模式选择 选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生 负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为 500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生 溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。
T0的低5位:01100B=0CH即(TL0)=0CH T0的高8位:11110000B=F0H即(TH0)=F0H
(2)计算最大定时时间T
T0的最大定时时间对应于初值为0. 则:T=213×1/6 × 10-6×12=16.384ms
例2:利用T0的工作模式0产生1ms定时,在P1.0引脚输出 周期为2ms的方波。设单片机晶振频率fosc=12MHz。编 程实现其功能。 解:要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔 1ms取反一次即可。 (1)选择工作模式 T0的模式字为TMOD=00H,即 M1M0=00,C/T=0,GATE=0,其余位为0。 (2)计算1ms定时时T0的初值
单片机原理及接口技术第5章 IO口应用-显示与开关键盘输入
图5-1
发光二极管与单片机并行口的连接
5
如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内部,则将
大大增加流过的灌电流值,如图5-1(b)所示。所以,AT89S51单片机任 何一个端口要想获得较大的驱动能力,要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如 74LS04、74LS244等。 5.1.2 单片机I/O端口控制发光二极管的编程 发光二极管与单片机的I/O端口的连接,如图5-1(b)所示。如要点亮 某发光二极管,只需该I/O端口位写入“0”即可。下面通过一个例子介绍如
21
图5-6 4位LED静态显示的示意图
示字符。这样在同一时间,每一位显示的字符可以各不相同。但是,静态
显示方式占用I/O口线较多。 对于图5-6所示电路,要占用4个8位I/O口(或锁存器)。如果数码管 数目增多,则还需要增加I/O口的数目。在实际的系统设计中,如果显示位 数较少,可采用静态显示方式。但显示位数较多时,为了降低成本,一般 采用动态显示方式。 2. 动态扫描显示方式 显示位数较多时,静态显示所占用的I/O口多,为节省I/O口与驱动电路
单片机控制的8位I/O口锁存器输出相连。如果送往各个LED数码管所显示字 符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到
送入下一个显示字符的段码。因此,静态显示方式的显示无闪烁,亮度较
高,软件控制比较容易。 图5-6所示为4位LED数码管静态显示电路,各个数码管可独立显示,
只要向控制各位I/O口锁存器写入相应的显示段码,该位就能保持相应的显
闭合时,P3.0引脚为低电平。单片机对开关状态的检测是由程序检测
10
图5-3
开关、LED发光二极管与P1口的连接
单片机原理第5章定时、计数器
5.2.2 控制寄存器 控制寄存器TCON
5,控制寄存器TCON初始化设置 ,控制寄存器 初始化设置
0
0 1
0
1 0 1
0
0
0
0
复位时, 的所有位被清0. 复位时,TCON的所有位被清 的所有位被清 要启动,关闭 , 要启动,关闭TI, T0,需对 ,需对TR1,TR0用 , 用 软件设置: 软件设置: SETB TRx;启动 ; CRL TRx;关闭 ; 也可以用传送指令 MOV TCON,#50H , 同时启动T0, 同时 同时启动 ,T1同时 使用电平触发方式. 使用电平触发方式.
时钟 振荡 ÷12
2,脉冲计数 , 每来1个脉冲,计 每来 个脉冲, 个脉冲 数器加1. 数器加 .
C P U
T0 TL0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
溢 出 启动 TH0 工作 方式
TCON
TMOD
中断
5.1 定时器的结构及工作原理
1,计数脉冲来源 ,
(P3.4)
INT0(INTI)=1 指令 SETB TR0(TR1) 启动定时/计数器 启动定时 计数器T0(T1) 计数器
1
5.2.2 控制寄存器 控制寄存器TCON
1,溢出标志位 TFx
0 1
TFl(TCON.7):T1溢出标志位.当T1溢出时由硬 : 溢出标志位 溢出标志位. 溢出时由硬 件自动使中断触发器TFl置1,并向 申请中断. 件自动使中断触发器 置 ,并向CPU申请中断. 申请中断 响应进入中断服务程序后, 当CPU响应进入中断服务程序后,TFl又被硬件 响应进入中断服务程序后 又被硬件 自动清0. TFl也可以用软件清 . 自动清 . 也可以用软件清0. 也可以用软件清 TF0(TCON.5):T0溢出标志位.其功能和操作同 : 溢出标志位 其功能和操作同TFl 溢出标志位.
单片机第五章功能单元结构与操作原理
本章将介绍单片机的功能单元结构和操作原理,包括CPU结构、数据通路、 控制单元、寄存器、存储器、中断控制器、定时器、输入输出口等重要部分。 深入理解这些内容,将帮助我们更好地掌握单片机的工作原理。
功能单元的概念及作用
功能单元
单片机中负责完成特定功能的部分。
作用
提供单片机各种基本功能,实现各种应用场 景。
UART的原理和应用
1 原理
通过串行通信实现数据的传输。
2 应用
用于与外部设备的连接和数据交互。
SPI和I2 C的区别和应用场景
SPI
串行外设接口,适用于高速 数据传输。
I2C
串行总线接口,适用于连接 多个设备。
应用场景
SPI适用于高速通信的场景, I2C适用于连接多个设备的场 景。
系统时钟的作用和原理
3
应用
用于实现单片机中的各种运算操作。
寄存器的作用和分类
作用
存储和暂时保存数据和地址。
分类
通用寄存器、状态寄存器等。
存储器的结构和分类
1 结构
由存储单元组成的数组结构。
2 分类
ROM、RAM、FLASH等。
ROM和RAM的区别与应用场景
ROM
只读存储器,通常用于存储 不变的程序和数据。
RAM
随机访问存储器,可读写。
ADC和DAC的原理和应用
ADC
模数转换器,将模拟信号转 换为数字信号。
DAC
数模转换器,将数字信号转 换为模拟信号。
应用
用于数字信号的采集和模拟 信号的输出。
PWM的原理和使用方法
1
原理
通过改变信号占空比实现模拟信号的输出。
单片机-第五章 单片机中断系统
单片机-第五章单片机中断系统单片机第五章单片机中断系统在单片机的世界里,中断系统就像是一位高效的调度员,能够在各种任务之间迅速切换,确保系统能够及时响应紧急事件和重要任务。
这一章,咱们就来深入了解一下单片机中断系统的奥秘。
先来聊聊什么是中断。
想象一下,单片机正在有条不紊地执行着一个任务,比如计算一组数据的平均值。
突然,有个更紧急的事情发生了,比如外部设备传来了一个重要的信号,需要单片机立即处理。
这时候,单片机就会暂时放下手头正在进行的任务,转而去处理这个紧急事件。
等处理完紧急事件后,再回到之前被打断的地方继续执行原来的任务。
这个过程就是中断。
中断系统之所以重要,是因为它大大提高了单片机系统的工作效率和实时响应能力。
如果没有中断,单片机就得按照顺序依次完成所有任务,哪怕遇到紧急情况也不能停下来,这在很多实际应用中是无法接受的。
单片机的中断系统通常由几个部分组成。
首先是中断源,也就是那些能够触发中断的事件或信号。
常见的中断源包括外部中断、定时中断、串口中断等等。
外部中断一般是由外部设备的状态变化引起的。
比如说,一个按键被按下,就会产生一个外部中断信号,通知单片机进行相应的处理。
定时中断则是根据预先设定的时间间隔产生中断。
这在需要周期性执行某些任务的场合非常有用,比如每隔一定时间采集一次温度数据。
串口中断是在串口通信过程中,当接收到数据或者发送完成时产生的中断。
接下来是中断控制寄存器。
它就像是中断系统的“指挥官”,决定哪些中断被允许,哪些被禁止,以及中断的优先级等。
通过设置这些寄存器,我们可以灵活地控制中断的行为。
然后是中断向量。
当发生中断时,单片机会根据中断向量跳转到相应的中断服务程序去执行。
中断向量就像是一个地址索引,告诉单片机中断服务程序在哪里。
在实际编程中,使用中断系统需要经过一系列的步骤。
首先,要初始化中断相关的寄存器,设置中断的触发方式、允许或禁止中断、确定中断的优先级等。
然后,编写中断服务程序。
单片机讲义(第五章MCS-51的中断系统)
5.6.2 跳沿触发方式(下降沿触发方式)
如果相继连续两次采样,一个机器周期采样到外部中断输入为高, 下一个机器周期采样为低,则置1中断申请触发器,直到CPU响应此 中断时,该标志才清0。这样不会丢失中断,输入的负脉冲宽度至少保
持12个时钟周期(若晶振频率为6 MHZ,则为2μs),才能被CPU采样到。
(2)用字节操作指令
MOV IP,#05H ;000 00101 或者用: MOV 0B8H,#05H ;B8H为IP寄存器的字节地址
5.5 外部中断的响应时间
从外部中断请求有效(外部中断请求标志置1)到转 向中断入口地址所需要的响应时间。 外部中断的最短响应时间为3个机器周期。其中中断
请求标志位查询占1个机器周期,而这个机器周期恰好是处于指令 的最后一个机器周期,在这个机器周期结束后,中断即被响应, CPU接着执行1条硬件子程序调用指令 LCALL以转到相应的中断服 务程序入口,则需要2个机器周期。
外部中断响应的最长时间为8个机器周期。执行RETI或
是访问IE或IP的指令,最长需要2个机器周期。而接着再执行的1条 指令,按最长的指令(乘法指令MUL和除法指令DIV)来算,需4 个机器周期。再加上硬件子程序调用指令LCALL的执行,需要2个 机器周期,所以,外部中断响应最长时间为8个机器周期。
5.3.3中断允许寄存器IE
IE中各位的功能如下:
(l)EA——中断允许总控制位 EA=0,CPU屏蔽所有的中断请求(CPU关中 断); EA=1,CPU开放所有中断(CPU开中断)。 (2)ES——串行口中断允许位 ES=0,禁止串行口发送/接收中断; ES=1,允许串行口发送/接收中断。 (3) ET1——定时器/计数器T1的溢出中断允许 位 ET1= 0,禁止T1计数溢出中断; ET1= 1,允许T1计数溢出中断。
单片机基础(第3版)——第5章
第一部分:主程序初始化 此部分必须编写
功能:
用于设置堆栈位置; 定义触发方式(低电平触发或脉冲下降沿触发) 对IE和IP赋值等; 第二部分:须由主程序完成的其它功能。
1.中断系统的程序编制
(2)选择中断服务程序的入口地址。 (3)编制中断服务程序。
即明确中断服务程 序的起始位置
DJNZ R6,D2 DJNZ R5,D1 RET INT0: PUSH PSW ;保护PSW,ACC值 PUSH ACC MOV A,#00H ;使8个LED全亮 MOV R2,#6 ;闪烁3次(全亮全灭各3次) L4:MOV P1,A ;A值送出 LCALL DELAY ;延时0.2秒 CPL A ;A值取反 DJNZ R2,L4 ;闪烁3次? POP ACC ;恢复保护的A值 POP PSW ;恢复保护的PSW值 RETI ;返回主程序 END
4.3定时/计数器
1. 日常生活中定时、计数的例子: 2 . 单片机应用系统中定时计数的需求:
如用单片机控制的打铃器、空调的定时开关、啤酒自 动生产线上对酒瓶的计数装置等。 3 . 80C51单片机片内的定时/计数器: 两个16位可编程的定时/计数器:T0和T1,都能定 时和对外部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。
说明:此时串口的优先级高于外部中断0的优先级
答案:
此时CPU按自然优先级顺序确定该响应哪个
中断请求。
如果几个同级别的中断 源同时申请中断,CPU 如何响应?
注意: 自然优先级由硬件决定,用户不能更改。 排列见表4-2
表4-2
中断入口地址及自然优先级
3.定时/计数器及外部中断控制寄存器TCON • 功能:
3.中断系统
单片机教程 第5章-存储器
MOS存储器按工作特点、作用以及制造工艺可分为: 存储器按工作特点、作用以及制造工艺可分为: 存储器按工作特点
动态DRAM 数据存储器 动态 RAM Random Access Memory 静态SRAM 静态 MOS存储器 存储器 掩膜ROM — Read Only Memory 非易失 掩膜 ROM 现场可编程 现场可编程PROM — Programmable ROM 程序存储器 可擦可编程EPROM — Erasable PROM 可擦可编程 电可擦可编程E 电可擦可编程 2ROM — Electrically EPROM 闪速存储器 — Flash Memory
第5章:半导体存储器
本章基本要求: 本章基本要求:
1、存储器基本概念 2、RAM、ROM存储器工作原理RAM、ROM存储器工作原理 存储器工作原理51单片机系统外部存储器的连接 单片机系统外部存储器的连接* 3、51单片机系统外部存储器的连接*
单极性MOS存储器分类 存储器分类 单极性
易失
双极性存储器有TTL、ECL
5.1
半导体存储器基础
1、单译码编址存储器 如图:注意地址译码器、存储器阵列。 如图:注意地址译码器、存储器阵列。
5.1
半导体存储器基础
2、双译码编址存储器 如图:注意它的译码与选中单元的过程。 如图:注意它的译码与选中单元的过程。
5.2
只读存储器ROM 只读存储器
特点: 存放的信息是固定的, 特点 : 存放的信息是固定的 , 不会随停电而 丢失。在使用过程中,其信息只可以读取, 丢失 。 在使用过程中 , 其信息只可以读取 , 不可 以改写。 以改写。 常用的ROM种类有: ROM种类有 常用的ROM种类有: 掩模ROM 由制造厂家写入信息。 ROM, 1、掩模ROM,由制造厂家写入信息。 PROM,由用户一次性写入信息。 2、PROM,由用户一次性写入信息。 EPROM,多次可改写ROM ROM, 3、EPROM,多次可改写ROM,可由用户使用紫外线 灯擦除再次写入信息。 灯擦除再次写入信息。 EEPROM,可用电脉冲擦除, 4、EEPROM,可用电脉冲擦除,并再次由用户写入 信息。 信息。
第5章stm32单片机外部中断ppt课件
5.2.3 中断控制器
ICER[2]:全称Interrupt Clear-Enable Registers,是 一个中断清除使能寄存器组。
该寄存器组与ISER寄存器功能相反,用来清除某个 中断的使能位。由于NVIC的这些寄存器都是写1有 效的,写0是无效的。设置一组ICER 寄存器来清除 相应中断使能位。
5.2.1 中断源
ARM Coetex-M3内核共支持256个中断,其中16 个内部中断,240个外部中断和可编程的256级中断优 先级的设置。STM32目前支持的中断共84个(16个内 部+68个外部),还有16级可编程的中断优先级的设 置,仅使用中断优先级设置8bit中的高4位。
5.2.2 中断向量:表5-1 给出STM32F103中断向量表
5.3.2 中断优先级控制
响应优先级可设置为0到15级。 判断两个中断的优先级时: (1)先看抢占优先级的高低; (2)再看响应优先级的高低; (3)看中断通道向量地址。 一个系统使用一个组别就完全可以满足需要,在使 用一个组别后不要在系统中再改动组别。
5.3.2 中断优先级控制
假定设置中断优先级为组2,然后设置: 中断3(RTC中断)的抢占优先级为2,响应优先级为1。 中断6(外部中断0)的抢占优先级为3,响应优先级为0。 中断7(外部中断1)的抢占优先级为2,响应优先级为0。 求这3个中断的优先级顺序? 上面例子中的中断3和中断7都可以打断中断6 的中断。而中 断7和中断3却不可以相互打断(这是因为他们的抢占优先级 是相同的)。
5.2.3 中断控制器
与NVIC相关的寄存器 在“stm32f10x_map.h” 文件中定义了一个结构 体,结构体的内容如下
STM32F103系列单片机 的中断系统在这些寄存 器的控制下有序执行。 了解这些中断寄存器的 含义,才能更好的理解 STM32单片机中断系统 的工作原理
单片机原理及接口技术(第二版)第五章
主程序就执行一条指令, 实现了单步执行的目的, 要注意的
是, 这个正脉冲的高电平持续时间不小于2个周期, 以确保 CPU能采集到高电平值。
第5章 MCS - 51单片机的中断
外中断的中断服务程序编程总结: 程序框架:在0000H单元放一条长跳转指令到主程 序,绕开中断服务程序入口,在中断服务程序入口放 一条长跳转指令转入中断服务程序。 初始化工作:在主程序开始部分对中断进行初始化 (1)设置中断触发方式(IT0或IT1) (2)置EA=1,开放CPU中断 (3)置EX0=1(或EX1=1),开放外中断 (4)中断优先级控制字写入IP(可选)
第5章 MCS - 51单片机的中断
当上述阻断条件存在时,中断不能被相应,且丢弃 查询结果。若阻断条件结束时,中断标志已经消失,则 这个被拖延了的中断请求可能不会再得到响应。
在单一外部中断的系统里(即不考虑上述阻断条件 中断的第一个条件),外部中断响应时间总是在3~8个 机器周期之间。
第5章 MCS - 51单片机的中断
地址(中断矢量)送入PC, 从而转入相应的中断服 务程序。
第5章 MCS - 51单片机的中断
中断响应过程,相当于执行了一条隐含的调 用指令(或称隐指令)LCALL。 例如当TF0被置1且得到中断响应时,CPU就 自动的执行一条隐指令“LCALL 000BH”。 应当注意,在中断服务子程序的调用过程中, 仅仅保存了PC的信息,其余的现场信息(如寄存 器的值等)都要由编程人员通过软件来进行保护。
第5章 MCS - 51单片机的中断 现在,若INT0保持低电平, 且允许INT0中断, 则CPU就 进入外部中断0服务程序, 由于有上述几条指令, 它就会停
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D7
D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
(1) IT0(IT1):外部中断0(或1)触发方式控制位,可由软件进 行置位和复位。IT0(或IT1)=0时,外部中断为低电平触发方式; IT0(或IT1)=1时,外部中断为边沿触发方式。 (2) IE0(IE1):外部中断0(或1)中断请求标志位。 在电平触发方式时,CPU在每个机器周期的S5P2时刻采样 P3.2(或P3.3)引脚的电平,若引脚为高电平,则IE0(或IE1)清 零,若引脚为低电平,则IE0(或IE1)置1,向CPU提出中断请求; 在边沿触发方式时,若第一个机器周期采样到引脚为高电平, 第二个机器周期采样到引脚为低电平时,将IE0或IE1置1,向 CPU提出中断请求。 在边沿触发方式时,CPU在每个机器周期都采样P3.2(或 P3.3)。为了保证检测到下降沿,P3.2(或P3.3)引脚的高电平与 低电平至少应该保持1个机器周期。 (3) TR0(TR1):定时/计数器T0或T1的启动/停止控制位。当置1 时启动定时/计数器,清零时停止定时或计数。 (4) TF0(TF1):定时/计数器T0(或T1)的溢出中断请求标志位。 当定时时间到或计数值满时由硬件置位TF0(或TF1)。当CPU响应 中断后,再由硬件将该位清零。
中断允 许IE
EX0 ET0 EX1 ET1
中断优 先级IP
PX0 PT0 PX1 PT1
入口地址 (A51)
0003H 000BH 0013H 001BH
外部中断0 定时/计数器T0中断 外部中断1 定时/计数器T1中断
串行口中断
接收完一帧数据
RI
ES
PS
0023H
4
5.3 单片机中断处理过程
1.中断响应的条件
D7
-
D6
-
D5
-
D4
PS
D3
PT1
D2
PX1
D1
PT0
D0
PX0
(1) PS:串行口中断优先级控制位。PS=1,声明串行口中 断为高优先级中断;PS=0,声明串行口中断为低优先级中 断。 (2) PT1:定时/计数器T1优先级控制位。PT1=1,声明定时 /计数器T1为高优先级中断;PT1=0,声明定时/计数器T1为 低优先级中断。 (3) PX1:外部中断1优先级控制位。PX1=1,声明外部中断 1为高优先级中断;PX1=0,声明外部中断1为低优先级中断。 (4) PT0:定时/计数器T0优先级控制位。PT0=1,声明定时 /计数器0为高优先级中断;PT0=0,声明定时/计数器0为低 优先级中断 (5) PX0:外部中断T0优先级控制位。PX0=1,声明外部中 断T0为高优先级中断;PX0=0,声明外部中断T0为低优先级 中断。 在同一个优先级下,中断响应按照自然优先级顺序进行。
表5-5 51单片机中断级别
中 断 源 默认中断级别
外部中断T0
定时/计数器T0 外部中断T1 定时/计数器T1 串行口
最高
第2 第3 第4 第5
在某些特殊情况下,如果希望每个中断源有更高的优先级, 则可以通过程序人工地设置高、低优先级。中断优先级由中断优 先级寄存器IP来设置,如表5-6所示。
表5-6 中断优先级寄存器IP
第5 章
本章内容:
单片机中断应用
5.1 中断的概念
5.2 中断控制 5.3 单片机中断处理过程 5.4 中断系统C51语言编程要点
【任务导入】 数码管加减数的实现:用C51编程,使外部中断 每发生一次,在共阴极数码管上显示一个数字,且 每中断一次显示的数值加1或减1(根据按下的是“加 1键”还是“减1键”而定)。 要求:按键有消除抖动功能。 【任务分析】 本任务的要求是:每发生一次中断,数码管数值 加1或减1。加1和减1是两种不同的任务,在软件里面 体现为两个程序。那么什么时候数码管数值加1,什 么时候又减1呢?在进行设计之前,需要补充下面有 关51单片机中断系统的知识。
表5-9 中断号与中断源的对应关系
中 断 源 外部中断0 定时/计数器T0溢出
表5-2 SCON寄存器结构
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
(1)TI:发送中断请求标志位。 (2)RI:接收中断请求标志位。 无论哪个标志位置1,都请求串行口中断。到底是发送中断 TI,还是接收中断RI,只有在中断服务程序中通过指令查询来判断 。串行口中断响应后,TI或RI不能由硬件清零,因此都需 要软件清零。
2. 串行口控制寄存器SCON
89C51系列单片机的5个中断源有6个中断请求标志位,其 中4个与外部中断和定时/计数器有关的都属于TCON寄存器, 另外2个与串行口中断有关的属于串行口控制寄存器SCON。 SCON的D7~D2位在第7章中会有详细讲解,本小节只介绍与中 断源有关的位,如表5-2所示。
表5-4 IE=89H
D7 D6 D5 D4 D3 D2 D1 D0
1
0
0
0
1
0
0
1
4.中断优先级寄存器IP
89C51单片机采用了自然优先级和人工设置高、低 优先级的策略。当CPU处理低优先级中断,又发生更 高级中断时,可由软件设置每个中断源的优先级别, 实现二级中断嵌套,中断过程如图所示。
上电时,中断优先级寄存器IP被清零,每个中断源都处于同 一个优先级,这时若其中几个中断同时产生中断请求,CPU通过 内部硬件查询逻辑按自然优先级顺序确定该响应哪个中断请求。 其自然优先级由硬件形成,如表5-5所示。
1. 中断请求标志寄存器TCON
当有中断源发出请求时,由硬件将相应的中断标志位置1。 在中断请求被响应前,相应的中断请求标志位被锁存在特殊 功能寄存器TCON和SCON中。外部中断源有外部中断和外部中 断,经由外部引脚P3.2、P3.3引入。在特殊功能寄存器TCON 中有4位与外部中断有关的位和4位与定时/计数器有关的位, 如表5-1所示。
5.1 中断的概念
所谓中断,是指CPU执行正常程序时,系统中出现特殊请求 码,CPU需要暂时中止当前的程序,转去处理更紧急的任务程序, 处理完毕后,CPU再返回原程序被中止的地方继续执行原程序的 过程。 日常生活中也常发生“中断”现象。比如某人正在看书,有 电话铃响,决定接电话,做书签标记,起身接电话,接完电话 再从刚才做标记的页码继续读书。
在汇编语言中如此设计的目的就是让出中断源的入口地址,在C语言中 就不需要自己编写,而是由C51编译器自己完成。所以,C语言程序相对 汇编语言程序来说简单易懂。
5.4 中断系统C51语言编程要点
为了能在C51语言编写的源程序中直接编写中断服务函数,C51编 译器对函数的定义有所扩展,增加了一个关键字interrupt。在 C51中,中断程序的设计要点如下。 (1)在主函数中,设置相关中断允许和优先级。 (2)中断函数用关键字interrupt进行定义,格式如下: 返回值 中断函数名() interrupt [中断号] using [寄存器组号] 中断号取值为0~4,不同值与中断源的对应关系如表5-9所示。 寄存器组号取值为0~3,对应着4组工作寄存器。
一个完整的主程序的轮廓如下:
汇编语言: ORG 0000H AJMP START ORG 0003H AJMP INT0 ORG 000BH „ ORG 0030H START: „ „ INT0: „ RETI
;跳到外中断0的服务子程序处执行
C语言: main( ) { 主程序内容 } /*****中断程序入口,“using 工作组”可以忽略*****/ void 函数名( ) interrupt 中断序号 using 工作组 { 中断服务内容 }
2.中断响应过程
具体地说,中断响应可以分为以下几个步骤。 (1)自动清除中断请求标志(对串行口的中断标志要 用软件清除),然后保护断点,保存下一个将要执行指 令的地址,即把这个地址送入堆栈。 (2)寻找中断入口,根据5个不同的中断源所产生的 中断,查找5个不同的入口地址,即将5个中断入口的地 址装入寄存器PC中(PC是程序指针,CPU取指令就是根据 PC中的值去取,如果PC中装入了中断入口的地址,程序 就会转到中断入口处执行)。以上工作是由单片机自动 完成的,与编程者无关。一般在5个中断入口地址处存 放有跳转到对应中断服务程序的跳转指令。 (3)执行中断处理程序。 (4)中断返回。执行完中断指令后,就从中断 处返回到主程序,继续执行。
各中断源的中断服务程序入口地址如下。 外部中断0:0003H。 定时/计数器T0:000BH。 外部中断1:0013H。 定时/计数器T1:001BH。 串行口:0023H。 可见,每个中断向量地址只间隔了8个单元,如 0003H~000BH。一般情况下,如此小的空间无法完 成中断程序,那么中断服务程序就不能放在这里,在 汇编语言程序中要通过AJMP或是LJMP等跳转指令把 中断服务程序安排到适合它的空间去。
5.2 中断控制
89C51系列单片机的中断系统结构框图如图所示,由5个中断 请求源INT0、T0、INT1、T1、TI/RI,中断请求标志寄存器TCON, 中断允许控制寄存器IE,中断优先级寄存器IP和查询硬件等组 成。通过对各种寄存器的读/写来控制单片机的中断类型、中断 开/关和中断源的优先级。
例如,5个中断源同时请求中断响应,CPU响应的顺序为:定 时/计数器T0→外部中断1→外部中断0→定时/计数器T1→串行 口中断。则IP各位的设置如表5-7所示,即IP=06H。
表5-7 IP=06H
D7 0 D6 0 D5 0 D4 0 D3 0 D2 1 D1 1 D0 0
表5-8
89C51系列单片机中断系统的主要信息
(1)EA:中断允许总控制位。EA=0,屏蔽所有的中断请求;EA=1, 开放中断。EA的作用是使中断允许形成两级控制,即各中断源首 先受EA位的控制,其次还要受各中断源自己的中断允许位控制。 (2) ES:串行口中断控制位。ES=1,允许串行口中断;ES=0, 屏蔽串行口中断。