第七章 AT89s52单片机中断系统
at89s52中断资源原理
at89s52中断资源原理
AT89S52是一种微控制器,具有多个中断源。
这些中断源包括两个外部中
断(INT0和INT1),三个定时器中断(定时器0、1、2),以及一个串行口中断。
每个中断源都可以通过设置或清除特殊寄存器IE中的相关中断允
许控制位来启用或禁用。
此外,还有一个中断允许总控制位EA,可以一次
禁止所有中断。
具体来说,外部中断0(INT0)和外部中断1(INT1)的中断请求信号由相应的脚输入,其标志分别为IE0和IE1。
定时器/计数器T0和T1计数溢出
发出的中断请求标志分别为TF0和TF1。
串行口的中断请求标志为发送中断TI或接收中断RI。
而定时器2的中断请求源有两个:计数溢出(TF2)和“捕捉”(EXF2),这两种中断请求标志共用一个中断矢量。
这些中断请求标志分别由TCON、SCON和T2CON的相应位锁存。
其中,TCON寄存器是定时器/计数器的控制寄存器,字节地址为88H,可位寻址。
在程序进入中断服务后,这些标志位可以被硬件清零。
对于某些标志位,如TF0和TF1,它们的值在计数溢出的那个周期的S5P2被置位,并一直保持
到下一个周期被电路捕捉下来。
而对于定时器2的标志位TF2,它在计数溢出的那个周期的S2P2被置位,并在同一个周期被电路捕捉下来。
请注意,为了保持代码的简洁性和易于维护,用户软件不应给位和位写入1。
它们是为AT99系列新产品预留的。
以上内容仅供参考,如需更多信息,建议查阅AT89S52的官方数据手册或
咨询专业技术人员。
7、AT89S52单片机中断系统
6、定时器/计数器T2溢出中断请求(1)TF2(T2CON.7); 定时器/计数器T 溢出中断请求 中断请求( 定时器 (2)EXF2(T2CON.6).定时/计数器T2溢出中断请求标志为 为 TF2 TF2 或 EXF2。当定时/计数器T2发生溢出时,置位TF2,并 。 向CPU申请中断。或外部输入端T2EX发生负跳沿时,向CPU 请求中断。(软件复位)
D7 IE 位地址 EA AFH
D6 — 9EH
D5 ET2 ADH
D4 ES ACH
D3 ET1 ABH
D2 EX1 AAH
D1 ET0 A9H
D0 EX0 A8H 字节地址: A8H 可位寻址
(6)ET0:定时器/计数器T0的溢出中断允许位 ET0 定时器/计数器T 0:禁止T0溢出中断;1:允许T0溢出中断。 禁止T 溢出中断; 允许T 溢出中断。 (7)EX0:外部中断0中断允许位。 EX0 外部中断0中断允许位。 0:禁止外部中断0中断;1:允许外部中断0中断。 禁止外部中断0中断; 允许外部中断0中断。 MCS-51复位后,IE清 MCS-51复位后,IE清0,所有中断请求被禁止。 复位后 所有中断请求被禁止。 若使某一个中断源被允许中断,除了IE相应的位的被置“ 若使某一个中断源被允许中断,除了IE相应的位的被置“1” , IE相应的位的被置 还必须使EA位=1。 还必须使EA位=1。 EA
D7 IE 位地址 EA AFH
D6 — 9EH
D5 ET2 ADH
D4 ES ACH
D3 ET1 ABH
D2 EX1 AAH
D1 ET0 A9H
D0 EX0 A8H 字节地址: A8H 可位寻址
IE中各位的功能如下: IE中各位的功能如下: 中各位的功能如下 (1)EA:中断允许总控制位 EA: 0:CPU屏蔽所有的中断请求(CPU关中断); CPU屏蔽所有的中断请求(CPU关中断) 屏蔽所有的中断请求(CPU关中断 1:CPU开放所有中断(CPU开中断)。 CPU开放所有中断(CPU开中断) 开放所有中断(CPU开中断
AT89S52单片机
AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器.在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:40个引脚,8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8 位微控制器8K 字节在系统可编程Flash AT89S52。
本次设计是用89S52单片机为核心实现报警控制,所以我们要先对89S52的各个引脚及其功能有一个全面的认识。
3.1.1 89S51单片机的引脚功能介绍如图2所示为89S52单片机 40引脚双列直插形式,各引脚功能如下:图2 89S52引脚图1 电源和晶振:Vcc——AT89S52电源正端输入,接+5V。
Vss—-电源地端.XTAL1——输入到振荡器的反相放大器。
XTAL2—-反相放大器的输出,输入到内部时钟发生器.当用外部振荡器时,XTAL2不用,XTAL1接收振荡器信号.2 控制线,共4根.(1)输入:RST-—复位输入。
晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。
EA/Vpp-—访问外部程序存储器控制信号。
为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。
第七章 AT89s52单片机中断系统
例:把外部中断请求信号2连到T1 引脚上,定时器/计数器1设为方式 2,即8位自动重装载方式,时间常 数设为满刻度值FFH。外部中断的 服务程序入口地址存放在T1的中 断矢量区中。
第七章 AT89S52单片机中断系统
27
ORG 0000H AJMP MAIN ORG 001BH ;T1中断矢量用作外部中断2的中断矢量 LJMP INT2 ORG 0030H MAIN:MOV TMOD,#60H ;设T1计数器方式2 MOV TL1,#0FFH ;置T1计数常数 MOV TH1,#0FFH SETB EA ;开中断 SETB ET1 ;允许计数器1中断 SETB TR1 ;启动计数 -----INT2: -----;外部中断2服务程序
第七章 AT89S52单片机中断系统
6
7.2中断系统结构与中断控制
7.2.1 AT89S52的中断源 7.2.2 中断标志与控制
第七章 AT89S52单片机中断系统
7
7.2.1 AT89S52的中断源
0 INT0 1 T0 0 INT1 1 T1
定定定1 (TF1 ) 串 行 口 定 定 定 2 定定定0 (TF0 )
T2
+
EXF2
ET2
EA
PT2
0
SCON/T2CON
源允允 总允允 第七章 AT89S52单片机中断系统
8
3.中断触发方式
①.电平触发方式 ②.下降沿触发方式 .
第七章 AT89S52单片机中断系统
9
7.2.2 中断标志与控制
单片机设置了5个专用寄存器用于中断 控制,用户通过设置其状态来管理中 断系统。5个专用寄存器包括: 定时器/计数器 控制寄存器TCON; 计数器0,1控制寄存器 定时器 计数器 控制寄存器 ; 定时器2控制寄存器 控制寄存器T2CON; 定时器 控制寄存器 ; 串行口控制寄存器SCON; 串行口控制寄存器 ; 中断允许控制寄存器IE; 中断允许控制寄存器 ; 中断优先级控制寄存器IP。 中断优先级控制寄存器 。
单片机_AT89S52中断系统PPT文档共36页
41、俯仰终宇宙,不乐复何如。 42、夏日长抱饥,寒夜无被眠。 43、不戚戚于贫贱,不汲汲于富贵。 44、欲言无予和,挥杯劝孤影。 45、盛年不重来,一日难再晨。及时 当勉励 ,岁月 不待人 。
▪
26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭
▪
27、只有把抱怨环境的心情,化为上进的力量之者,好之者不如乐之者。——孔子
▪
29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇
▪
30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
36
单片机原理及应用之AT89S52
单片机原理及应用之AT89S52AT89S52是一款由Atmel公司生产的8位单片机,采用CMOS工艺制造,并且内部集成了丰富的功能模块和外设接口。
它具有较高的性能和良好的稳定性,广泛应用于各种电子设备中。
AT89S52单片机的基本原理是通过控制器对内部资源进行配置和控制,从而实现各种功能。
它的主要构成部分包括中央处理器(CPU),存储器(RAM和ROM),输入/输出接口(IO),定时/计数器(Timer/Counter)和串行通信接口等。
首先,AT89S52单片机的CPU是其心脏部件,它采用基于8051内核的结构,具有8位数据总线和16位地址总线。
CPU负责执行程序指令,以及对数据进行运算和处理。
其次,AT89S52内部集成了包括RAM、ROM和EEPROM等多种存储器。
其中,RAM用于临时存储数据和程序,ROM用于存储程序代码,EEPROM可用于存储非易失性数据。
AT89S52还具有强大的输入/输出接口,用于与外部设备进行通信。
它具有多个I/O引脚,可以用于连接传感器、显示器、键盘等外部设备,并通过程序控制实现数据的输入和输出。
除此之外,AT89S52还内置了多个定时/计数器模块,用于生成精确的时间延迟和计算时间。
这些定时/计数器可以用于测量时间、产生脉冲信号、控制外设设备等。
此外,AT89S52还支持多种串行通信接口,如UART、SPI和I2C等。
这些接口可以与其他设备进行数据传输和通信,实现单片机与外部设备的数据交互。
AT89S52单片机应用广泛。
它既可以作为独立的控制芯片,也可以作为其他数字电路和模拟电路的核心控制部分。
在家电、电子仪器、工业自动化和电子玩具等领域,AT89S52都有着重要的应用。
具体来说,AT89S52可以用于控制家电设备,如洗衣机、空调、微波炉等。
它通过连接传感器和执行器,实现对温度、光照强度等参数的检测和控制。
此外,AT89S52还可以用于仪器设备的控制。
例如,可以将其用作控制面板上的核心处理器,实现对仪器设备的各种参数监测和控制。
AT89S52寄存器中断
ET1-定时器1中断允许
EX1-外中断1中断允许
ET2-定时器2中断允许
ET0-定时器0中断允许
EX0-外中断0中断允许
中断优先级控制寄存器IP
X
X
PT2
PS
PT1
PX1
PT0
PX0
PT2-T2中断优先控制
PS-串口中断优先控制
PT1-T1中断优先控制
PX1-INT1中断优先控制
TL0
8AH
定时器/计数器0(低8位)
TMOD
89H
定时器/计数器方式控制寄存器
TCON
88H
定时器/计数器控制寄存器
DPH
83H
数据地址指针(高8位)
DPL
82H
数据地址指针(低8位)
SP
81H
堆栈指针
P0
80H
P0口锁存器
PCON
87H
电源控制寄存器
TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。
RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0
PT0-T0中断优先控制
PX0-INT0中断优先控
3、串行通信:
串行口控制寄存器SCON(地址为98H)
SM0
SM1
AT89S52单片机简介
AT89S52单片机简介本系统采用AT89S52作为核心部件,AT89S52为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah 存储器。
(一)、AT89S52主要功能列举如下:1、拥有灵巧的8位CPU和在系统可编程Flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)3、内部程序存储器(ROM)为 8KB4、内部数据存储器(RAM)为 256字节5、32 个可编程I/O 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工UART串行通道(二)、AT89S52各引脚功能介绍:AT89S52各引脚图VCC:AT89S52电源正端输入,接+5V。
VSS:电源地端。
XTAL1:单芯片系统时钟的反相放大器输入端。
XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用 8751 内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V 的烧录高压(Vpp)。
AT89S52单片机结构解析
时钟周期: Tc=晶振频率fosc的倒数
机器周期:Tm==12个时钟周期(Tc) 指令周期: Ti:执行一条指令所需的机器周期(Tm)数
例: 晶振频率是12M 时 一个机器周期需要多 长时间?
Tc= 1/fosc=1/12Mhz Tm=12XTc =12X1/12Mhz = 1us
内部 总线 1
写锁 存器
2
D Q1
CK /Q
1
读引脚 =0
地址高8位 控制 =0 13 0
Vcc
内部上拉电阻
1 =1
截 引脚P2.X 止
控制=0时,此脚作通用输出口:
输出=1时
AT89S52单片机的引脚(P2口)
P2.0—P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外 部程序存储器时可作为8位准双向I/O口使用。
CK /Q
1
=0
导 引脚P1.X 通
1
读引脚
AT89S52单片机的引脚(P1口)
P1.0—P1.7: 准双向I/O口(内置了上拉电阻)
输出时一切照常,仅在作输入口用时要先对其
写“1”。在读数据之前,先要向相应的锁存器做写1操作的I/O口称
为准双向口; 输入数据时,要先对其写“1” Vcc
读锁存器
读锁存器
内部 总线 写锁 存器
读引脚
2
DQ CK /Q
1
地址高8位 控制 3
Vcc 内部上拉电阻
引脚 P2.X
AT89S52单片机的引脚(P2口)
P2.0—P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外 部程序存储器时可作为8位准双向I/O口使用。
AT89S52单片机中断过程
AT89S52单片机中断过程AT89S52单片机中断分为四个阶段:中断采样、中断查询、中断响应、中断返回。
执行中断时,必须满足以下三个条件:(1) 中断源有中断申请;(2) 此中断源的中断允许位为1;(3) CPU开中断,即总开关EA=1;1.中断采样中断采样针对外部中断请求信号而言,在S5P2对相应引脚采样,根据其电平状态高/低,判断相应的中断请求。
2.中断查询在每个机器周期的S5P2后,由硬件自动地去查询相应的中断标志位,先查询高级中断,再查询低级中断,同级中断按内部中断优先级顺序查询。
如果查询到有中断标志位为1,则说明有中断请求发生,接着从相邻的下一个机器周期的S1状态开始开展中断响应。
3.中断响应CPU响应中断时,先置位相应的优先级激活触发器,封锁同级和低级的中断。
然后程序根据中断源的类别,在硬件的控制下转向相应的中断入口单元,执行中断服务程序。
中断响应的过程如下图。
图中断响应过程4.中断返回中断服务程序的最后一条指令必须是中断返回指令RETI。
CPU执行完这条指令后,把响应中断时所置位的优先级激活触发器清0,然后从堆栈中弹出两个字节内容(断点地址)装入程序计数器PC中,CPU就从原来被中断处重新执行被中断的程序。
5. 中断的响应时间中断响应时间是指从查询中断请求标志位开始到转向中断矢量地址所需的机器周期数。
响应中断的时间依中断请求发生的情况不同有长有短,因此,AT89S52单片机发生中断的时间根据中断类型和中断执行的方式不同而不同。
外部中断和的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被查询电路查询。
如果产生了一个中断请求,而且满足响应的条件,CPU响应中断,查询中断请求标志位,同时这个周期恰好是指令的最后一个周期,则在这个机器周期结束后,中断请求被CPU 响应,产生一条硬件自动生成的长调用指令LCALL,以使CPU转到相应的服务程序入口。
单片机概述
◆单板机 CPU芯片 存储器芯片、I/O接口芯片 芯片、 将CPU芯片、存储器芯片、I/O接口芯片 和简单的I/O设备 小键盘、LED显示器 设备( 显示器) 和简单的I/O设备(小键盘、LED显示器)等 装配在一块印刷电路板上, 装配在一块印刷电路板上,再配上监控程序 固化在ROM中),就构成了一台单板微型 (固化在ROM中),就构成了一台单板微型 计算机(简称单板机)。 计算机(简称单板机)。
2010-122010-12-2 12
1.3.2 单片机产品近况
◆ 80C51系列单片机产品繁多,主流地位已 80C51系列单片机产品繁多 系列单片机产品繁多,
经形成,近年来推出的与80C51兼容的主要产 80C51兼容的主要产 经形成,近年来推出的与80C51 品有: 品有:
﹡ATMEL公司融入Flash存储器技术的AT89系列; ATMEL公司融入Flash存储器技术的AT89系列; 公司融入Flash存储器技术的AT89系列 Philips公司的80C51、80C552系列 公司的80C51 系列; ﹡Philips公司的80C51、80C552系列; 华邦公司的W78C51 W77C51高速低价系列 W78C51、 高速低价系列; ﹡华邦公司的W78C51、W77C51高速低价系列; ADI公司的ADμC8xx高精度ADC系列 公司的ADμC8xx高精度ADC系列; ﹡ADI公司的ADμC8xx高精度ADC系列; LG公司的GMS90/97低压高速系列 公司的GMS90/97低压高速系列; ﹡LG公司的GMS90/97低压高速系列; Maxim公司的DS89C420高速 50MIPS)系列; 公司的DS89C420高速( ﹡Maxim公司的DS89C420高速(50MIPS)系列; Cygnal公司的C8051F系列高速SOC单片机 公司的C8051F系列高速SOC单片机。 ﹡Cygnal公司的C8051F系列高速SOC单片机。
单片机AT89S52介绍知识讲解
AT89S52简介AT89S52是一个8位单片机,片内ROM全部采用FLASH ROM技术,与MCS-51系列完全兼容,它能以3V的超低电压工作,晶振时钟最高可达24MHz。
AT89S52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O 端口,分别记作P0、P1、P2、P3。
第31引脚需要接高电位使单片机选用内部程序存储器;第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1μF高频滤波电容。
第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号。
AT89S52单片机说明如下:此芯片是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:8K字节的程序存储器,256字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。
引脚说明:·V CC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(I IL)。
·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。
认识at89s52单片机
课题序号101 教学班级教学课时 1 教学形式多媒体教学课题名称音乐彩灯--认识AT89S52单片机使用教具课件,多媒体教学了解AT89S52单片机的硬件结构及其作用,能够在任务教学目的中加以应用教学重点单片机的组成及引脚功能教学难点单片机各部分电路及引脚功能更新、补充、无删节内容课前准备制作课件,整理任务指导书课外作业浏览各个单片机学习网站,培养兴趣,拓宽视野,提高板书设计一、认识AT89S52单片机(一)AT89S52的内部结构(二)引脚功能介绍教学自主学习能力感想课堂教学安排教学环节主要教学内容教学手段与方式课程导入(以启发式引入本课的主要内容)讲授新课(讲解本课的主要内容)我们知道,一台能够工作的计算机要有这样几个部分构成:CPU、存储器、I/O接口和定时与中断系统。
在个人计算机上这些部分被分成若干块芯片,安装一个称之为主板的印刷线路板上。
当这些部分全部被做到一块集成电路芯片中了,就称为单片(单芯片)机。
单片机在家电产品以及控制领域中运用越来越广泛,从现在开始我们就进入单片机的学习。
一、认识AT89S52单片机(一)AT89S52的内部结构1.CPU(Central Processing Unit,中央处理器)是AT89S52内部的字长为8位的中央启发式(引导学生思考问题,引出课程内容)实物展示(单片机实物展示)讲授法(结合课件及实物,讲解单片机的基本结构,处理单元,它由运算器和控制器两部分组成。
CPU是单片机的核心。
(1)运算器运算器以ALU(Arithmetic Logic Unit,算术逻辑单元)为核心,包括累加器A (Accumulator)、PSW(Program Status Word,程序状态字寄存器)、B寄存器、两个8位暂存器TMP1和TMP2等部件。
其中,ALU的运算功能很强,可以运行加、减、乘、除、加1、减1、BCD数十进制数调整、比较等算术运算,也可以进行与、或、非、异或等逻辑运算,同时还能完成循环移位、判断和程序转移等控制功能。
第七章 AT89S52单片机中断系统
第二部分 相关知识 一、 中断概述
中断的定义: 当中央处理器CPU正在处理某事 件时外界发生了更为紧急的请求,要 求CPU暂停当前的工作,转而去处理 这个紧急事件,处理完毕后,再回到 原来被中断的地方,继续原来的工作 ,这样的过程称为中断。
从中断的定义我们可 以看到中断应具备中断源、 中断响应、中断返回三个 要素。 中断源发出中断请求, 单片机对中断请求进行响 应,当中断响应完成后应 进行中断返回,返回被中 断的地方继续执行原来被 中断的程序。
二、AT89S52中断源与中断向量地址
中断源就是向CPU 发出中断请求的来 源。AT89S52共 有六个中断源:2 个外部中断( INT0和INT1)、 3个定时器中断( 定时器0、1和2) 和1个串行中断。 如图所示。
(一) 外部中断
外部中断0 ←→ P3.2
外部中断1 ←→ P3.3
外部中断请求有两种信号方式:电平方式和脉冲方 式。 电平方式的中断请求信号是低电平有效。 脉冲方式的中断请求信号则是脉冲的负跳变有效。
第八章 AT89S52单片机中断系统
学习目标: 了解中断的基本概念、中断的作用及中断请 求方式 掌握AT89S52单片机中断结构,6个中断源 的中断请求、中断屏蔽、优先级设置等初始化 编程方法 掌握定时/计数器4种工作方式的初始化编程方 法 学会使用定时器/计数器编写计数、定时应用 程序的方法
(二)内部定时和外部计数中断
定时:对内部振荡器输出的脉冲计数。计数脉冲的
个数反映了时间的长短。 计数:对外部脉冲计数。计数脉冲的个数仅仅反映 外部脉冲输入的多少。 外部脉冲由T0引入 ←→ P3.4 外部脉冲由T1引入 ←→ P3.5 外部脉冲由T2引入 ←→ P1.0 当定时器/计数器发生溢出,便激活中断。
AT89S52单片机定时计数器中断
5.4.2 定时/计数器中断C语言编程实例AT89S52单片机定时/计数器中断电路原理图如图所示:图5-5 定时器中断的电路原理图AT89S52单片机定时/计数器中断C语言程序实例如下所示:/*********************************************************************** 程序名; 时钟实验1* 功能:数码管通过动态扫描显示时间,时间可设定,调整时间时时钟不走;* 定时器0用于设定1s定时,定时器1用于设定调节时间时时间的闪烁;* k1用于进入和退出时间调节模式,k2时间加1,k3时间减1。
* 编程者:ZPZ* 编程时间:2008/10/9**********************************************************************/#include<reg52.h> //包含头文件#define uint unsigned int //变量类型宏定义#define uchar unsigned charsbit led=P2^7; //定义LED等端口sbit key1=P2^0; //定义键盘端口sbit key2=P2^1;sbit key3=P2^2;uchar num=0,temp=0,count=0; //定义全局变量uchar aa;uchar hour,min,sec;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义显示断码表(共阳)/*****************************************函数名:delay功能:延时1ms左右参数:z返回值:无******************************************/void delay(uint z){uint i,j; //定义局部变量for(i=z;i>0;i--) //循环for(j=120;j>0;j--); //循环}/*****************************************函数名:display功能:显示函数参数:a,b,c,d,e,f,aa返回值:无*******************************************/void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa){if(num==1){P1=0x01&aa;P0=a;delay(2);}else{P1=0x01;P0=a;delay(2);} //时的十位显示if(num==1){P1=0x02&aa;P0=b;delay(2);}else{P1=0x02;P0=b;delay(2);} //时的个位显示if(num==2){P1=0x04&aa;P0=c;delay(2);}else{P1=0x04;P0=c;delay(2);} //分的十位显示if(num==2){P1=0x08&aa;P0=d;delay(2);}else{P1=0x08;P0=d;delay(2);} //分时的个位显示if(num==3){P1=0x10&aa;P0=e;delay(2);}else{P1=0x10;P0=e;delay(2);} //秒时的十位显示if(num==3){P1=0x20&aa;P0=f;delay(2);}else{P1=0x20;P0=f;delay(2);} //秒时的个位显示}/*****************************************函数名:read_key功能:读按键函数参数:无返回值:无*******************************************/void read_key(){if(key1==0) //如果K1按下{delay(10); //延时消抖if(key1==0) //再次判断K1是否按下{while(1) //K1若按下进入时间调节主循环{if(key1==0) //在调节主循环中判断K1是否按下{led=0; //有按键按下点亮LED灯delay(10); //延时消抖if(key1==0) //再次判断K1是否按下{num++; //K1若按下,按一次num值加1if(num>3){num=0;break;} //如果num值大于3则num值清0,退出循环}while(~key1); //送按键消抖led=1; //按键松开熄灭LED灯}if(key2==0) //判断K2是否按下{led=0;delay(10);if(key2==0){if(num==1){hour++;if(hour==24)hour=0;}//小时加1if(num==2){min++;if(min==60)min=0;}//分钟加1if(num==3){sec++;if(sec==60)sec=0;}//秒加1}while(~key1);led=1;}if(key3==0) //判断K3是否按下{led=0;delay(10);if(key3==0){if(num==1){hour--;if(hour==0)hour=23;} //小时减1if(num==2){min--;if(min==0)min=59;} //分钟减1if(num==3){sec--;if(sec==59)sec=59;} //秒减1}while(~key1);led=1;}if(count<=15) //调节时间时,实现要调节的时间闪烁display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0xff);if(count>15)display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0x00);}}while(~key1);}}/*****************************************函数名:time_change功能:时间调整函数参数:无返回值:无*******************************************/void time_change(){read_key(); //判断是那一个按键按下if(temp>=20) //如果定时器0定时1s到{temp=0; //temp清0sec++; //秒加1if(sec>=60) //如果秒>=60分加1{sec=0;min++;if(min>=60) //如果>=60时加1{min=0;hour++;if(hour>24) //如果时>24时清0{hour=0;}}}}}/*****************************************函数名:timer_init功能:定时器初始化参数:f返回值:无******************************************/void timer_init(bit f){TMOD=0x11; //定时器0/1均工作在方式1TH0=0x3c; //定时器0赋初值50msTL0=0xb0;TH1=0x3c; //定时器1赋初值50msTL1=0xb0;EA=1; //开总中断ET0=1; //开定时器0中断ET1=1; //开定时器1中断TR0=f; //f=1启动定时器0,f=0关闭定时器0TR1=f; //f=1启动定时器1,f=0关闭定时器1}/*******************************************函数名: main功能: 主函数参数: 无返回值: 无/*******************************************/void main(){P2=0xff;hour=12; //设定时间初值min=59;sec=50;aa=0xff; //aa赋0xfftimer_init(1); //定时器初始化while(1) //主循环{time_change(); //调节时间display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0 xff);//送显示}}/*******************************************函数名: timer0功能: 定时器0中断函数参数: 无返回值: 无/*******************************************/void timer0() interrupt 1 using 1{ TH0=0x3c; //重赋初值50msTL0=0xb0;temp++; //temp加1}/*******************************************函数名: timer1功能: 定时器1中断函数参数: 无返回值: 无/*******************************************/void timer1() interrupt 3 using 3{ TH1=0x3c; //重赋初值50msTL1=0xb0;count++; //count加1if(count>=20) //如果1s时间到count清0count=0;}6.3 独立键盘输入独立键盘的电路原理图如图5-6所示:独立键盘的C语言程序如下所示:/*********************************************************************** 程序名:独立键盘实验(晶振11.0592MHZ)* 功能:数码管上显示00~99按一下K1数值加1,按一下K2数值减1* 编程者:ZPZ* 编程时间:2008/9/14**********************************************************************/#include<reg52.h> //包含头文件#define uchar unsigned char //宏定义#define uint unsigned int#define data_bus P0sbit wei1=P1^1; //定义位选口sbit wei2=P1^0;sbit key1=P3^2; //定义键盘口sbit key2=P3^3;uchar counter=0; //定义一个全局变量uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义断码表0~9 /*******************************************函数名:delay功能:延时1ms左右参数:z返回值:无********************************************/void delay(uint z){ uint i,j; //定义局部变量for(i=z;i>0;i--) //循环for(j=120;j>0;j--); //循环}if(counter==0) //如果counter=0,counter=99counter=99;counter--; //如果k2按下counter-1 }while(key2==0); //判断k2是否松开}}/*******************************************函数名:display功能:显示函数参数:shi,ge返回值:无********************************************/void display(uchar shi,uchar ge){wei1=0; wei2=1; //选通第一个数码管关断另一个data_bus=table[shi]; //送要显示的段码delay(2);wei2=0; wei1=1; //选通第二个数码管/关断另一个data_bus=table[ge]; //送要显示的段码delay(2);}/*******************************************函数名: main功能: 主函数参数: 无返回值: 无/********************************************/void main(){ while(1){ key_scan(); //键盘扫面display(counter/10,counter%10); //送显示}}。
at89s52单片机
AT89S52单片机简介AT89S52是由Atmel公司推出的高性能、低功耗8位单片机。
它基于MCS-51指令集架构,具有丰富的外设资源和强大的处理能力。
AT89S52单片机可以广泛应用于工业控制、仪器仪表、通信、家电等领域。
主要特性•8051核心,8位CPU•8KB的闪存程序存储器,存储容量大•256字节的RAM,处理能力强•3个定时器/计数器,可用于定时和脉冲宽度测量•2个串行通信接口,方便与其他设备通信•32个IO口,方便连接外部设备•4个中断源,能快速响应外部事件•器件供电电压范围广,3V至5.5V•低功耗设计,满足节能要求引脚布局AT89S52单片机有40个引脚,主要包括通用IO口、定时器/计数器引脚、中断引脚和串行通信引脚等。
以下是AT89S52单片机引脚布局:引脚编号引脚名称功能描述1P1.0数字IO口2P1.1数字IO口3P1.2数字IO口4P1.3数字IO口5P1.4数字IO口6P1.5数字IO口7P1.6数字IO口8P1.7数字IO口9RST复位引脚,用于系统复位10EA扩展内存ROM的控制引脚11VCC正电源引脚12P3.0数字IO口13P3.1数字IO口14P3.2数字IO口15P3.3数字IO口16P3.4数字IO口17P3.5数字IO口18P3.6数字IO口19P3.7数字IO口20GND地线引脚21XTAL1外部晶振接入口22XTAL2外部晶振接出口23P0.0数字IO口24P0.1数字IO口25P0.2数字IO口26P0.3数字IO口27P0.4数字IO口28P0.5数字IO口29P0.6数字IO口30P0.7数字IO口31VCC正电源引脚32RST复位引脚,用于系统复位33ALE地址锁存使能引脚34PSEN外部程序存储器读使能引脚35P2.7数字IO口36P2.6数字IO口37P2.5数字IO口38P2.4数字IO引脚39P2.3数字IO引脚40P2.2数字IO引脚AT89S52的编程AT89S52单片机通过“编程器”将目标程序写入其闪存程序存储器中。
AT89S52中断服务程序
(一)MSC-51单片机中断系统的结构一.外部中断源1.INT0:外部中断0,由P3.2端口线引入,低电平或下降沿引起。
IT0:INT0触发方式控制位,可由软件进和置位和复位。
IT0=0,INT0为低电平触发方式。
IT0=1,INT0为负跳变触发方式。
IE0:INT0中断请求标志位。
当有外部的中断请求时,这位就会置1(这由硬件来完成)。
当CPU响应中断后,由硬件将IE0清0。
2.INT1:外部中断1,由P3.3端口线引入,低电平或下降沿引起。
IT1:INT0触发方式控制位,可由软件进和置位和复位IT1=0,INT1为低电平触发方式IT1=1,INT1为负跳变触发方式IE1:INT1中断请求标志位当有外部的中断请求时,这位就会置1(这由硬件来完成)当CPU响应中断后,由硬件将IE0清0二.内部中断源1.T0:定时器/计数器0中断,由T0计满回零引起。
TF0:定时器T0的溢出中断标记。
当T0计数产生溢出时,由硬件置位TF0。
当CPU响应中断后,再由硬件将TF0清0。
2.T1:定时器/计数器1中断,由T1计满回零引起。
TF1:定时器T0的溢出中断标记。
当T1计数产生溢出时,由硬件置位TF1。
当CPU响应中断后,再由硬件将TF1清0。
与定时/计数相关的特殊功能寄存器TMOD和TCONⅠ、TMOD:用于设置T/C的工作方式GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。
GATE=0时,与外部中断无关。
C/T:功能选择位,当C/T=1时为计数方式,C/T=0时为定时方式。
Ⅱ、TCON:TF0(TF1):为T0(T1)定时器溢出中断标志位。
TR0(TR1):为T0(T1)运行控制位,当TR0(TR1)=1是启动T0(T1)3.TI/RI:串行I/O中断,串行口完成一帧字符发送/接收后引起。
(二)中断允许寄存器IE作用:中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。
EA--ES ET1EX1ET0EX0EA:总开关,如果它等于0,则所有中断都不允许。
单片机_AT89S52中断系统
//延时约10ms去抖动
if (xIR0==0)proc_xIR0(); //while(xIR0==0); 不用等待键释放 if (xIR1==0)proc_xIR1(); /* proc_xIR0()等函数未编写 */ if (xIR2==0)proc_xIR2(); if (xIR3==0)proc_xIR3(); return ; //返回 }
中断的概念 CPU对外界异步事件的一种响应方法。 在执行程序的过程中,由于某种外界的原因,必须打 断当前的程序执行,而去执行相应的处理程序,待处理结 束后,再回来继续执行被终止的程序。这个过程叫中断。 相当于有一个独立于CPU的事件管理机制,只在事件 发生后并且满足CPU响应条件,才由CPU予以处理,从一 个侧面看,相当于并行工作。
中断请求位相关寄存器
2、SCON,串口控制寄存器,地址98H,可按位 寻址
(MSB) (LSB)
TI: 完成一个串行帧的发送则 TI置1,需由软件清零。
RI: 完成一个串行帧的接收则 RI置1,需由软件清零。
11
中断请求位相关寄存器
3、T2CON,定时器2控制寄存器,地址C8H, 可按位寻址
(MSB) (LSB)
2
中断及其嵌套
3
中断技术的优点: 提高CPU的效率 提高实时数据的处理时效 故障处理 中断系统的功能: 中断优先权排队 实现中断嵌套 自动响应中断 实现中断返回
4
AT89S52的中断系统
8个中断源,6个中断矢量,具有二个中断优先级,可 实现二级中断服务程序的嵌套。每个中断源均可软件 编程为高优先级或低优先级中断,允许或禁止向CPU 请求中断。 有关的特殊功能寄存器(SFR)有: 中断允许寄存器IE 中断优先级寄存器IP 中断源寄存器(TCON、SCON中的有关位) 注:均可位寻址。
单片机AT89S52介绍
单⽚机AT89S52介绍AT89S52简介AT89S52是⼀个8位单⽚机,⽚内ROM全部采⽤FLASH ROM技术,与MCS-51系列完全兼容,它能以3V的超低电压⼯作,晶振时钟最⾼可达24MHz。
AT89S52是标准的40引脚双列直插式集成电路芯⽚,有4个⼋位的并⾏双向I/O端⼝,分别记作P0、P1、P2、P3。
第31引脚需要接⾼电位使单⽚机选⽤内部程序存储器;第9引脚是复位引脚,要接⼀个上电⼿动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接µF⾼频滤波电容。
第18、19脚之间接上⼀个12MHz的晶振为单⽚机提供时钟信号。
AT89S52单⽚机说明如下:此芯⽚是⼀种⾼性能低功耗的采⽤CMOS⼯艺制造的8位微控制器,它提供下列标准特征:8K字节的程序存储器,256字节的RAM,32条I/O线,2个16位定时器/计数器, ⼀个5中断源两个优先级的中断结构,⼀个双⼯的串⾏⼝, ⽚上震荡器和时钟电路。
引脚说明:·V:电源电压CC·GND:地·P0⼝:P0⼝是⼀组8位漏极开路型双向I/O⼝,作为输出⼝⽤时,每个引脚能驱动8个TTL逻辑门电路。
当对0端⼝写⼊1时,可以作为⾼阻抗输⼊端使⽤。
当P0⼝访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复⽤的形式。
在这种模式下,P0⼝具有内部上拉电阻。
在EPROM编程时,P0⼝接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
·P1⼝:P1⼝是⼀带有内部上拉电阻的8位双向I/O⼝。
P1⼝的输出缓冲时,它们被内部的上拉电阻1⼝写P1逻辑门电路。
当对TTL个4能接受或输出拉升为⾼电平,此时可以作为输⼊端使⽤。
当作为输⼊端使⽤时,P1⼝因为内部存在上拉电阻,所以当外部被拉低时会输出⼀个低电流(I)。
IL·P2⼝:P2是⼀带有内部上拉电阻的8位双向的I/O端⼝。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例7.1 电路
例7.1 电路 解:(1)设计思路 这是一个两路外部中断输入演示电路,按下 K0、K1都会立即中断原来的操作,来点亮 L0或L1。中断初始化包括: ①保证L0、L1为熄灭状态。 ②设、的触发方式。根据按键输入信号特点, 选电平触发方式。 ③设中断优先级。假定、都设为低优先级。
INT1 中断服务程序: ORG 3000H KL1: CLR P1. 1 ;点亮L1 MOV R7,#data1 ;延时数 ;据入R7 LCALL DELAY;调延时子程序 SETB P1. 1 ;熄灭L1 RETI;中断返回
延时子程序: ORG 3200H DELAY:MOV R6,#0FFH TM1:MOV R5,#0FFH TM0: DJNZ R5,TM0 DJNZ R6,TM1 DJNZ R7,DELAY RET
D0
EX0 字节地址: A8H
位地址
AFH 9EH ADH ACH ABH AAH A9H A8H 可位寻址
5.中断优先级控制寄存器IP
中断优先顺序
以上所述可归纳为如下基本规则。 ①任一中断源的高或低优先级中断均可通 过软件对IP的相应位进行设置。 ②不同优先级中断源同时请求中断时,优 先响应高优先级的中断请求,高优先级中 断请求可中断正在执行中的低优先级的服 务程序,实现两级嵌套,同级或低优先级 中断请求不能实现中断嵌套。 ③同一优先级的多个中断源同时请求中断 时按优先顺序查询确定,优先响应顺序高 的中断。
0 INT 0 1 T0 0 INT 1 1 T1 定 时 器 0 ( TF0) 外 部 中 断 1 ( IE1) 定 时 器 1 ( TF1) 串 行 口 定 时 器
2 TI RI TF2
中断标志位
T CON 外 部 中 断 0 ( IE0)
中断 允许寄存器
IE
中断 优先级寄存器
IP 1
E X0
PX0
1.定时器/计数器0,1控制寄存器TCON
D7 TCON TF1 D6 D5 TF0 D4 D3 IE1 D2 IT1 D1 D0
IE0 IT0 字节地址: 88H
位地 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 可位寻址 址
2.定时器2控制寄存器T2CON
D7 T2CON 位地址 TF2 CFH D6 EXF2 CEH CDH CCH CBH CAH C9H C8H D5 D4 D3 D2 D1 D0 字节地址: C8H 可位寻址
5.2.3. 中断程序举例p83图5-4 图5-4为单片机数 据传输示意图。 外设数据经P1口输 入单片机,每准备 好一个数据,外设 发出选通信号,经 触发器和非门至 INT0。
P1口 P3.0 INT0 8031
1
数据
Q CLR D CLK
+5V
选通信号
数据传送过程: 外设每准备好一个数据后,发出选通信号,使触 发器输出1再经非门得0至INT0,向CPU发出中断 请求, CPU 响应这个中断请求后,在中断处理 程序中先撤除 中断请求信号, 数据 P1口 (通过P3.0=0, 使INT0=1) P3.0 再由P1口输入 数据到单片机 INT0 Q CLR 1 内部。 +5V D 8031 CLK
ORG 0100H MKL: ┆ ORL P1,#03H;L0、L1初始化,熄灭L0,L1 ANL TCON,#00H ;置、电平触发方式 ANL IP,#0FCH ;置、低优先级 MOV IE,#85H ;开CPU中断,开、中断 ┆
INT0 中断服务程序清单: ORG 2000H KL0: CLR P1. 0 ;点亮L0 MOV R7,#data0 ;延时数据 ;data0入R7 LCALL DELAY;调延时子程序 SETB P1. 0 ;熄灭L0 RETI ;中断返回
图7.6.1 外部中断源的扩展电路
7.5.2 通过片内时/计数器来实现
讲完定时/计数器之后再讲这部分
7.6 中断程序设计
1. 主程序中的中断初始化 2. 中断响应与中断服务程序
1. 主程序中的中断初始化
(1)初始化状态设置 (2) 开中断 (3) 中断服务程序的前期初始化
选通信号
程序清单:
ORG 0000H START:LJMP MAIN ORG 0003H LJMP IINT0 ORG 0030H ;主程序 MAIN: CLR IT0 ;低电平触发 SETB EA SETB EX0 ;开中断 MOV DPTR,#1000H ... ORG 0100H IINT0:PUSH PSW ;中断处理程序 PUSH ACC CLR P3.0
NOP NOP SETB P3.0 MOV A,P1 MOVX @DPTR,A INC DPTR ... POP ACC POP PSW RETI
;撤除INT0 ;输入数据 ;保存数据
;恢复现场 ;返回主程序
习题
8,9,10,12
2. 中断响应与中断服务程序
(1) 中断响应 (2) 中断转移 (3) 中断服务 (4) 中断返回
中断服务
①主程序的资源保护。 ②中断源的清除。 ③关中断。
3. 中断程序设计实例
例7.2 编写外部键输入的中断操作演示程序。 要求:按图7.7.2所示电路,根据K0、K1按 键的状态,点亮L1、L2。按下K0点亮L0片 刻,按下K1后点亮L1片刻。
7.4 中断请求的撤除
中断请求撤除的方式有三种: 1.由单片机内部硬件自动复位 2.பைடு நூலகம்用软件清除相应标志 3.采用外加硬件结合软件清除中断请求
7.5 外部中断源的扩展
7.5.1 采用“OC门”经“线或”后实现 7.5.2 通过片内定时/计数器来实现
7.5.1 采用“OC门”经“线或”后实 现
7.3.2 中断响应过程
1.中断采样 2.中断查询 3.中断响应
7.3.3 中断响应时间
响应时间--从查询中断请求标志位到转向中断服务入 口地址所需的机器周期数。 (1)最快响应时间 以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器 周期: 1个周期(查询)+2个周期(长调用LCALL) (2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下 一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)+4 个周期乘除指令+2个周期长调用=8个周期。
7.3 中断响应
7.3.1 中断响应条件 7.3.2 中断响应过程 7.3.3 中断响应时间
7.3.1 中断响应条件
①无同级或高优先级中断服务程序正在执行中; ②当前指令已执行到最后一个机器周期并已结束; ③当前正在执行的不是返回(RET,RETI)指令或 访问IE,IP特殊功能寄存器指令。
1.中断系统的概念
(1) 中断(2)中断源(3) 中断优先级(4) 中 断识别方式(5) 中断的其它概念
请求中断
图7.1.1中断响应过程示意图
(2)中断源
中断源通常可分为以下几种: 设备中断 定时中断 故障源中断 程序性中断源
(4) 中断识别方式
一般设有两种识别方式:查询中断和矢量 中断。
0 1
ET0
1 PT 0 0 1
高 优 先 级
E X1
PX1
0 1
ET1
PT 1
0 1
T XD RXD
+
ES
0 PS 0 1
低 优 先 级
T2
+
EXF2
ET2
EA
PT 2
0
SCON/T2CON
源允许
总允许
3.中断触发方式
①.电平触发方式 ②.下降沿触发方式
7.2.2 中断标志与控制
单片机设置了5个专用寄存器用于中断控制, 用户通过设置其状态来管理中断系统。5个 专用寄存器包括: 定时器/计数器0,1控制寄存器TCON; 定时器2控制寄存器T2CON; 串行口控制寄存器SCON; 中断允许控制寄存器IE; 中断优先级控制寄存器IP。
(2) 中断应用程序设计包括主程序设计和中断服务程序 设计 主程序清单: ORG 0000H LJMPMKL ORG 0003H ;中断入口地址 LJMPK0L0 ;中断入口转移 ORG 0013H ;中断入口地址 LJMP KlL1 ;中断入口转移 data0 EQU ××H ;data0赋值 datal EQU ××H ;datal赋值
第七章 AT89S52单片机中断系统
7.1 中断概述 7.2 中断系统结构与中断控制 7.3 中断响应 7.4 中断请求的撤除 7.5 外部中断源的扩展 7.6 中断程序设计 习题
7.1中断概述
1.中断系统的概念 2.单片机中断系统需要解决的问题 3.中断的主要功能 4.实际应用中需注意的问题
(5) 中断的其它概念
中断请求、中断标志、中断允许、中断入 口地址(中断矢量)、中断嵌套、中断保 护、中断服务程序、中断源清除、中断屏 蔽、中断返回、中断等待 。
7.2中断系统结构与中断控制
7.2.1 AT89S52的中断源 7.2.2 中断标志与控制
7.2.1 AT89S52的中断源
3.串行口控制寄存器SCON
D7 SCON —
D6 —
D5 —
D4 —
D3 —
D2 —
D1 TI
D0 RI 字节地址: 98H
位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 可位寻址
4.中断允许控制寄存器IE
D7
IE EA
D6
—
D5
ET2