第5章AT89C51单片机的中断系统
AT89C51单片机说明

PSEN 此为"Program Store Enable"的缩写。访问外部程序存储器选通信号,低电平有效。在访
(60KB)
0FFFFH
1000H
外部 程序 存储器
0FFFH
EA=0 (4KB)
0000H
0FFFFH
外 部 数 据 存 储 器
(64KB)
0000H
图 2-2 只读程序存储器
图 2-3 外部数据存储器
直接地址
2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 位寻址区 27H 3F 3E 3D 3B 3C 3A 39 38 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2B 2C 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H 0F 0E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 1FH
AT89C51单片机简单介绍

简单的程序
• LOOP: SETB P10; 让P10灯灭 LCALL DELAY; //长跳转指令 (当遇到RET,则回到此下行程
序) CLR P10; //让灯P10亮 LCALL DELAY; AJMP LOOP; //绝对跳转到LOOP
AT89C51
AT89C51是美国ATMEL公司生产的低 电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的只读程序存储器和 128bytes的随机存取数据存储器(RAM), 器件采用ATMEL公司的高密度、非易失性 存储技术生产,兼容标准MCS-51指令系统, 片内置通用8位中央处理器(CPU)和flash 存储单元。
FLASH编程和校验时,P1口作为第八位地址接收。
P2口
• P2口:P2口为一个内部上拉电阻的8位双向I/O口, P2口缓冲器可接收,输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输入。并因此作为输入时,P2口的管脚被外 部拉低,将输出电流。这是由于内部上拉的缘故。 P2口当用于外部程序存储器或16位地址外部数据 存储器进行存取时,P2口输出地址的高八位。在 给出地址“1”时,它利用内部上拉优势,当对外 部八位地址数据存储器进行读写时,P2口输出其 特殊功能寄存器的内容。P2口在FLASH编程和校 验时接收高八位地址信号和控制信号。
放大器的输入和输出。该反向放大
器可以配置为片内振荡器。石晶振
荡和陶瓷振荡均可采用。如采用外
部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一
个二分频触发器,因此对外部时钟
AT89C51系列单片机介绍

3.1 AT89C51系列单片机介绍3.1.1 AT89C51系列基本组成及特性AT89C51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
而在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。
而这种单片机对开发设备的要求很低,开发时间也大大缩短。
AT89C51基本功能描述如下:AT89C51是一种低损耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。
只要程序长度小于4k, 四个I/O口全部提供给用户。
可用5V电压编程,而且写入时间仅10毫秒, 仅为8751/87C51 的擦除时间的百分之一,与8751/87C51的12V电压擦写相比, 不易损坏器件, 没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
AT89C51 芯片提供三级程序存储器锁定加密,提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。
另外,AT89C51 还具有MCS-51系列单片机的所有优点。
128×8 位内部RAM, 32 位双向输入输出线, 两个十六位定时器/计时器, 5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。
AT89C51有间歇、掉电两种工作模式。
间歇模式是由软件来设置的, 当外围器件仍然处于工作状态时, CPU可根据工作情况适时地进入睡眠状态, 内部RAM和所有特殊的寄存器值将保持不变。
单片机AT89C51应用及结构功能

AT89C51单片机功能及应用和来源参考主要性能参数:与MCS-51产品指令系统完全兼容4K字节可重檫写Flash闪速存储器1000次檫写周期全静态操作:0HZ-24MHZ三级加密程序存储器128*8字节内部RAM32个可编程I/O口线2个16位定时/记数器6个中断源可编程串行UART通道低功耗空闲和掉电模式功能特性概述:AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/记数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/记数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作直到下一个硬件复位。
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89C51方框图引脚功能说明·Vcc:电源电压·GND:地·P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FIash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
AT89C51单片机的基本结构和工作原理

A T89C51单片机的主要工作特性:·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和(1)运算器运算器主要用来实现算术、逻辑运算和位操作。
其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。
ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。
算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。
暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。
ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。
累加器是CPU使用最频繁的一个寄存器。
ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。
单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。
B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。
运算结果存于AB寄存器中。
(2)控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。
【优文档】微机课(外部中断)PPT

TEST .AS示器右边六位动态显示实时钟的时、分、秒
单元分配: 3AH:“秒”单元(BCD码);
估算:2*125*200*1µs≈50ms 【计算程序运行时间例】
3BH:“分”单元(BCD码);
3CH:“时”单元(BCD码)。 (6)只有在当前指令执行完毕后,才能进行中断响应。
DSCEOCNR(串7 行6口)控制只寄存有器 在字节当地址前为98指H。 令执行完毕后,才能进行中断响应。
MOV P1,A ;输出新控制码到P1口
5.5 中断的响应时间
在一个单一中断的系统里,AT89C51单片机对中断请求的响应 的时间一般在3~8个机器周期之间。
各中断源服务程序的入口地址:
它是各中断源的中断服务子程序的执行首地址,CPU响应
D(E5C)正R7在以执行2的4指为令不模是R加ETI或1是,访问相IE或当IP的于指令实。 现校时功能。
PUSH PSW DJNZ R7,D1S2⑦
IEX0P:PUSH ACC
;外部中断0服
务子程序。保护现场 补充5-1:编写完整的应用程序,运用外部中断功能,实现从 INT1引脚每输入2个下降沿信号令3FH单元内容按BCD码加1并且输出到P1
【例B5-3】主程序运用软件延时控制秒闪的同时实现外部中断 INT0每中断五次令一次
)
【例B5-4】上例基础上中断服务子程序具体代码后移的方法 )
【例B5-2】INT0每中断1次令50H单元内容加1并且输出到P1口 )
MOV A,50H ADD A,#1 DA A 按M5O0BVHC,DA 码加1
外部中断应用例:
【例B5-1】。 )
实验板INT0按键电路
【例B5-2】外部中断INT0每中断五次令一次
AT89C51单片机说明

EA A8H AF
ET2 ES
ET1 EX1 ET0 EX0
AD AC AB AA A9 A8 IE
A0H A7 A6 A5 A4 A3 A2 A1 A0 P2
SM0 SM1 SM2 REN TB8 RB8 TI
RI
98H 9F 9E 9D 9C 9B 9A 99 98 SCON
90H 97 96 95 94 93 92 91 90 P1
工作寄存器组3 18H
17H 工作寄存器组2
10H
0FH 工作寄存器组1
08H
07H 工作寄存器组0
00H
图 2-4 内部低 128 个字节地址 RAM 空间
第 3 页 共 9页
附录
AT89C51 单片机说明
寄存器符号 ACC B PSW SP
DPTR
P0 P1 P2 P3 IP IE TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON
IP 中断优先次序寄存器
位地址 - - BD BC BB BA B9 B8
符号
- - PT2 PS PT1 PX1 PT0 PX0
-(IP.7) :保留位,无定义。 -(IP.6) :保留位,无定义。 PT2(IP.5) :设定计时器 2 的优先次序(8052 使用)。 PS(IP.4) :设定串行端口的中断优先次序。 PT1(IP.3) :设定时/计时器 1 的优先次序。 PX1(IP.2) :设定外部中断 INT1 的优先次序。 PT0(IP.1) :设定计时器 0 的优先次序。 PX0(IP.0) :设定外部中断 INT0 的优先次序。
(60KB)
0FFFFH
1000H
外部 程序 存储器
单片机AT89C51

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:·8031 CPU与MCS-51 兼容· 4K字节可编程FLASH存储器(寿命:1000写/擦循环)· 全静态工作:0Hz-24KHz· 三级程序存储器保密锁定· 128*8位内部RAM· 32条可编程I/O线· 两个16位定时器/计数器·6个中断源· 可编程串行通道· 低功耗的闲置和掉电模式· 片内振荡器和时钟电路2.管脚说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主 程 序
低 级 中 断
高 级 中 断
中断嵌套流程
介绍几种传送方式
一、无条件传送
• 适用于总是处于准备好状态的外设
• 优点:软件及接口硬件简单
• 缺点:只适用于简单外设,适应范围较窄
• 无条件传送方式不用测试外设的状态,直接执行IN/OUT
• 指令,主要用于外设各种动作为已知或固定的场合。
(如开关、LED、显示器、继电器等)程序设计简单, 该方式用的较少。
例5-2 设置IP寄存器的初始值,使2个外中断请求为高优先级,
其它中断请求为低优先级。 (1)用位操作指令 SETB PX0 ;2个外中断为高优先级 SETB PX1
CLR PS ;串口为低优先级中断
CLR PT0 ;2个定时器/计数器低优先级中断 CLR PT1 PS PT1 PX1 PT0 PX0 0 0 0 0 0 1 0 1
(2)用字节操作指令
MOV IP,#05H 或: MOV 0B8H,#05H B8H为IP寄存器的字节地址
5.4 响应中断请求的条件
一个中断请求被响应,需满足以下必要条件: (1)IE寄存器中的中断总允许位EA=1。 (2)该中断源发出中断请求,即该中断源对应的中断请求标志
为“1”。
(3)该中断源的中断允许位=1,即该中断没有被屏蔽。
(3)IE1—外部中断请求1的中断请求标志位。
IE1=0,无中断请求。 IE1=1,外部中断1有中断请求。当CPU响应该中断,转向中
断服务程序时,由硬件清“0”IE1。
(4)IE0—外部中断请求0的中断请求标志位。 ( 5 ) IT1— 选择外中断请求 1 为跳沿触发方式还是电平触发方 式: IT1=0,为电平触发方式。 IT1=1,为跳沿触发方式。可由软件置“1”或清“0”。 (6)IT0— 外部中断请求 0 为跳沿触发方式还是电平触发方式, 意义与IT1类似。
图5-3 TCON中的中断请求标志位 各标志位的功能: (1)TF1—T1溢出中断请求标志位。 T1 计数后,溢出时,由硬件置“ 1 ” TF1,向 CPU 申请中断, CPU响应TF1中断时,硬件自动清“0”TF1,TF1也可由软件清 0。 (2)TF0—T0的溢出中断请求标志位,功能和TF1类似。
5.3.2
中断优先级寄存器IP
两个中断优先级,可实现两级中断嵌套。如图5-6。
图5-6
可归纳为下面两条基本规则:
(1)低优先级可被高优先级中断,反之则不能。
(2)同级中断不会被它的同级中断源所中断。 若CPU正在执行高优先级的中断,则不能被任何中断源所中断。 中断优先级寄存器IP,其字节地址为B8H,格式如图5-7。
Y
查询工作方式实例 外设状态端口地址为03FBH,第5位(bit5) 为状态标志(=1忙,=0准备好)
外设数据端口地址为03F8H,写入数据会使 状态标志置1 ;外设把数据读走后又把 它置0。
试画出其电路图,并将DATA下100B数输出
74LS374 D7-D0
D5
D7-D0
IOW 74LS138
CPU处理事件的过程,称为CPU的中断响应过程。
图5-1所示。对事件的整个处理过程,称为中断处 理(或中断服务)。
图5-1 中断响应和处理过程
能够实现中断处理功能的部件称为中断系统;产生中断的
请求源称为中断请求源。
中断源向CPU提出的处理请求,称为中断请求(或中断申请)。 进入中断→保护现场→中断处理恢复现场→中断返回 优点:大大地提高了CPU的工作效率。 当CPU 正在处理一个优先级的中断请求的时候 ,如果发生另一 个优先级比它高的中断请求 ,CPU暂停正在处理的中断源的处理 程序,转而处理优先级高的中断请求,待处理完之后,再回到原来 正在处理的低级中断请求,这种高级中断源能中断低级中断源的 中断处理称为中断嵌套。具有中断嵌套的系统称为多级中断系 统,没有中断嵌套的系统称为单级中断系统。
5.3
中断控制
5.3.1 中断允许寄存器IE
CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。 字节地址A8H,可位寻址。格式如图5-5。
IE对中断的开放和关闭为两级控制
总的开关中断控制位EA(IE.7位): EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源的中断请求是否允许, 还要由IE中的5个中断请求允许控制位决定。 IE中各位的功能如下: (1)EA:中断允许总控制位(IE.7) 0:CPU屏蔽所有的中断请求(CPU关中断);
• 例2.如果一个输出设备接口的状态端口(8位)的地址 为PST,状态端口的D0位为1,表明准备好。数据端口 • (8位)的地址为PDATA,采用条件传送方式传送1字节 数据(数据在BL中) • 程序如下: L0: MOV DX,PST • IN AL,DX D0 • TEST AL,01H; 00000001 判D0 • JZ L0 ;D0为1下走,为0→L0 • MOV AL,BL; • MOV DX,PDATA • OUT DX,AL;DX←数据
(4)PT0——定时器T0中断优先级控制位(IP.1位)
1:高优先级中断; 0:低优先级中断。
(5)PX0——外部中断0中断优先级控制位(IP.0位)
1:高优先级中断;
0:低优先级中断。 由软件可改变各中断源的中断优先级。 89C51的中断系统有两个不可寻址的“优先级激活触发器”: 一个用来指示某高优先级的中断正在执行,所有后来的中断均
;禁止串行口中断 (IE.4位)
;禁止外部中断1中断(IE.2位) ;禁止外部中断0中断(IE.0位)
SETB ET0
SETB ET1 SETB EA
;允许定时器/计数器T0中断(IE.1位)
;允许定时器/计数器T1中断(IE.3位) ;CPU开中断(IE.7位)
(2)用字节操作指令来编写: MOV IE,#8AH 或者用:MOV 0A8H,#8AH ;A8H为IE 寄存器字节地址 1 0 0 0 1 0 1 0
(5)ET0:定时器/计数器T0的溢出中断允许位(IE.1)
0:禁止T0溢出中断; 1:允许T0溢出中断。 (6)EX0:外部中断0中断允许位(IE.0) 0:禁止外部中断0中断;
1:允许外部中断0中断。
AT89C51复位后,IE清0,所有中断请求被禁止。
若使某一个中断源被允许中断,除了IE相应的位的被置“1” ,
1:CPU开放所有中断(CPU开中断)。
(2)ES:串行口中断允许位(IE.4位): 0:禁止串行口中断; 1:允许串行口中断。
(3)ET1:定时器/计数器T1的溢出中断允许位(IE.3)
0:禁止T1溢出中断;
1:允许T1溢出中断。 (4)EX1:外部中断1中断允许位(IE.2) 0:禁止外部中断1中断; 1:允许外部中断1中断。
图5-4 SCON中的中断请求标志位
各标志位的功能: 硬件自动置“1”TI。必须在中断服务程序中用软件对TI标志 清“0”。
(1)TI—发送中断请求标志位。 串口每发送完一帧串行数据后,
(2)RI—接收中断请求标志位。串口接收完一个数据帧,硬件
自动置“1”RI标志。必须在中断服务程序中用软件对RI标志 清“0”。
DB
数据端口
I/O 外设
状态 信号
M
AB
数据
状态端口
端口选择 及控制
P
CB
U
图5-5 查询式接口的硬件结构
查询工作方式
• 优点:软件比较简单 • 缺点:CPU效率低,数据传送的实时性 差,速度较慢
单一外设时 的工作流程
防止死循环
超时?
N
Y
读入并测试外设状态
N
超时错
READY?
Y
复位计时器
N
与外设进 行数据交换 传送完?
5.2
AT89C51单片机中断系统的结构
有5个中断请求源,两个中断优先级,可两级嵌套。
5.2.1 中断请求源
中断系统结构示意图如图5-2所示。
图5-2 AT89C51单片机的中断系统结构示意图
五个中断请求源 : (1)INT0*—外部中断请求0,由引脚INT0*输入,中断请求标 志为IE0。
(2)INT1*—外部中断请求1,由引脚INT1*输入,中断请求标
第 5章
AT89C51单片机的中断系统
实时测控,单片机能及时地响应和处理单片机外部事件或
内部事件所提出的中断请求。
5.1
中断的概念
CPU正在执行程序时,单片机外部或内部发生的某一事件, 请求CPU迅速去处理。
CPU暂时中止当前的工作,转到中断服务处理程序处理所
发生的事件。处理完该事件后,再回到原来被中止的地方, 继续原来的工作,这称为中断。
IP各个位的含义: 图5-7 中断优先级寄存器IP的格式 (1)PS——串行口中断优先级控制位(IP.4位) 1:高优先级中断; 0:低优先级中断。
(2)PT1——定时器T1中断优先级控制位(IP.3位)
1:高优先级中断;
0:低优先级中断。 (3)PX1——外部中断1中断优先级控制位(IP.2位) 1:高优先级中断; 0:低优先级中断。
• 外设应提供设备状态信息 • 接口应具备状态端口
当CPU与外设同步时,采用无条件传送方式较为方便实用。 当两者不同步时,采用无条件传送方式会出错,应 采用条件传送方式。 • • • • • • • 所有I/O操作处在正在执行程序的控制之下,外设设备 处在被动地位。 a CPU从状态口读状态字 b CPU检测状态字对应位,判是否准备好 c 准备好,传送数据 该方式比无条件传送可靠,应用场合多,但CPU效率极 低,轮流查各个外设,实时性差。
D7~D0
DB
AB M/IO CPU
端 口 译码器
输出 锁存器
往输出 设备