第五章 输入输出与中断第一节 输入输出设备与接口第二节 输人输出的传送方式第三节 中断的基本概念第四节 8051单片机的中断系统第五节 中断程序举例本章要点
三种输入输出传送方式。
中断方式的必要性,中断概念,8051
单片机的中断系统。
中断方式的具体应用。
第一节 输入输出设备与接口一,输入输出设备输入输出设备又称为计算机外围设备;简称外设或 I/ O设备。 单片机应用系统常用的输入设备有按钮、键盘、
各种传感器等。常用的输出设备有
LED(发光二极管显示器 ),LCD(液晶显示器 )等。
二,输入输出接口输入输出设备与主机的连接部分称为输入输出接口,简称 I/ O接口。
输入输出接口的作用是:
2)锁存与缓冲作用:
一般用 D触发器进行锁存。
1)隔离与寻址作用:例如右图用三态门组成的接口。
3)信号电平或形式变换:
例如 A/D,D/A,232/485
的变换。
返回本章首页第二节 输入输出的传送方式一,无条件传送方式这是指单片机不考虑外设的状态,CPU可随时执行输入或输出指令,并立即进行数据传送的一种方式。
二,查询方式查询方式是指 CPU在执行输入输出指令之前,先对外围设备的状态进行检测,以判别外设是否准备就绪。
如果已经准备就绪,CPU就可以执行输入输出指令。如果还没有准备就绪,必须继续查询。
三,中断方式所谓中断就是指 CPU接到外设中断申请后,暂时停止执行主程序而转去执行中断服务程序。如无中断申请
CPU只 执行主程序而不管中断服务程序内容。
返回本章首页第三节 中断的基本概念一,中断的必要性
1.便于并行操作,提高计算机效率 。
2.便于适时控制和处理突发事件。
3.便于处理按规定时刻或一定延时后进行操作的场合 。
二,中断源中断源是指向 CPU申请中断的事件来源 。 例如外部 输入输出设备,定时 /计数器,串行接口都可以作为中断源 。
三,中断响应过程
CPU响应中断过程
1)寻找中断源 。
2)将当前 PC值 (下一条指令的地址 )推人堆栈,以便中断返回时使用 。
3)寻找中断人口,以便转向执行中断服务程序 。
4)保护现场
5)执行中断服务程序 。
6)执行完中断服务程序后,恢复现场并返回主程序 。
四,中断优先权中断优先权也叫中断排序,是用户根据中断源的性质和重要性自行排列的先后次序。在多个中断源同时提出申请时,保证优先权高的中断源首先得到响应,纵使 CPU正在处理一个中断,也要暂时停止较低级的中断。响应优先权更高的中断源请求。这个过程称为中断嵌套或多重中断。
优先权排序可以用软件也可以用硬件实现。
返回本章首页第四节 8051单片机的中断系统一,8051单片机中断源
8051单片机有 5个中断源,分别为,
外部中断源 INT0,INT1,可通过对
(P3.2,P3.3)输入低电平申请中断。
内部定时器中断源 T0,T1,内部定时器发生溢出时,通过内部逻辑申请中断。
串行口中断源:串行口缓冲器 SBUF发送或接收完一个字符数据时,可通过内部逻辑申请中断。
二,中断系统使用的特殊功能寄存器
8051内部与中断有关的寄存器有 。
1.中断允许寄存器 IE,决定各中断源是开中断还是关中断 。
2.中断优先级寄存器 IP,用户可以通过对 IP置值,
赋予五个中断源以不同的优先级 。
3.定时器控制寄存器 TCON,与中断有关为 6位 。
IT0,IT1用于决定外部中断源触发方式 。 0为低电平触发,1为下降沿触发 。
TF0,TF1是 T0,T1的中断请求标志 。 T0,T1溢出时通过硬件使 TF0或 TFl自动置 1,并 请求中断 。
IE0,IE1为外部中断源请求 标志,中断时由硬件置 1。
8051单片机中断优先级与中断优先权区别由于 8051单片机只有两个中断优先级,遇到两个中断源的优先级相同,谁先响应由内部硬件逻辑的查询顺序来确定,先查到的中断源,称为中断优先权高,后查到的中断源,称为中断优先权低,查询顺序从高到低的顺序为
INT0 最优先
T0
INT1
T1
串口中断 最后但要注意,中断优先级是可编程的,可通过对 IP赋值,决定高低。而中断优先权则不可编程的,
三,中断响应过程
1.采样中断请求 。
2.对采样到的中断标志进行查询 。
3.CPU响应中断 。
4.执行中断服务程序 。
5.中断返回 。
6.中断请求的撤除 。
中断返回前还要注意撤除中断请求,否则将在返回后引起新的中断。对于 T0,T1可由硬件自动撤除。对于串口应将 TI,RI清零。对于
INT0,INT1应将外部中断引脚恢复为高电平。
返回本章首页第五节 中断程序举例例 5-1 在 8051单片机的 INT0引脚外接脉冲信号,
要求每送来一个脉冲,把 30H单元值加 1,若 30H单元计满则进位 31H单元。现利用中断编制脉冲计数程序。
中断服务程序,
ORG 0200H ; 设置中断服务子程序位置
SUBG,PUSH ACC ; 保护现场
INC 30H ; 中断后将 脉冲计数值加 1
MOV A,30H
JNZ BACK
INC 31H
BACK,POP ACC ; 恢复现场
RETl ; 返回续上的主程序部分
ORG 0000H
AJMP MAIN ;设置主程序人口
ORG 0003H ; 外 部 中 断 人 口
AJMP SUBG ;设置中断服务程序人口
ORG 0100H
MAIN,MOV A,#00H ;30H,31H两单元清零
MOV 30H,A
MOV 31H,A
MOV SP,#70H ;设置堆栈指针
SETB IT0 ;设 INT0为边沿触发
SETB EA ;开中断
SETB EX0 ;允许 INT0中断
AJMP $ ;等待中断例 5-2 设计一个比赛抢答器,电路如图 5-6所示,P1.0~ P1.3分别接按钮 S0~ S3,当其中任何一个按钮按下时,都能立即从 P3.3发出铃声信号,
并点亮相应的发光二极管 。 即 S0点亮 VL0,S1点亮 VL1,S2点亮 VL2,S3点亮 VL3。
主程序部分,
0RG 0000H
LJMP START
0RG 0003H
LJMP 0300H
ORG 0100H
START,MOV SP,#70H
SETB IT0
WAITOFF,SETB P3.2
SETB EA
SETB EX0
SJMP $
子程序,
DELAY:MOV R6,#0FFH
DE2,MOV R7,#0FFH
DE1,DJNZ R7,DE1
DJNZ R6,DE2
RET
RING,MOV R5,#20H
RIN0,MOV R6,#60H
RIN1,MOV R7,#0F0H
RIN2,DJNZ R7,RIN2
CPL P3.3
DJNZ R6,RIN1
DJNZ R5,RIN0
RET
中断服务程序,
ORG 0300H ;中断服务程序
ZDP,MOV A,P1 ;查哪个按钮按下
ANL A,#0FH
SWAP A ;转换为点亮发光管信号
ORL A,#0FH
MOV P1,A
LCALL RING ;响铃
LCALL DELAY
RETI
返回本章首页