




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/11/12,1,第5章 51单片机的中断与定时,中断与定时/计数器,五个中断源:INT0外部中断、INT1外部中断、 T0溢出中断、T1溢出中断、串口读写中断 定时/计数器:T0、T1 四种工作模式:工作模式0 3,1)中断请求标志-定时器控制寄存器TCON中的中断标志位,中断相关寄存器,TCON各控制位的含义: TF1:定时器/计数器T1溢出中断请求标志位。 TF0:定时器/计数器T0溢出中断请求标志位。 IE1:外部中断1的中断请求标志。 IE0:外部中断0的中断请求标志。 IT1:外部中断1的中断触发方式控制位。 IT0:外部中断0的中断触发方式控制位。,2)中断请求标志-串行
2、口控制寄存器SCON中的中断标志位,中断相关寄存器,SCON各控制位的含义: TI:串行口发送中断请求标志。 CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。 RI:串行口接收中断请求标志。 在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须在中断服务程序中由软件对RI清0。,3)中断允许控制-中断允许寄存器IE,中断相关寄存器,IE 各控制位的含义: EA:中断允许总控制位。 ES:串行口中断允许位。 ET1:定时器/计数器T1的溢出
3、中断允许位。 EX1:外部中断1的溢出中断允许位。 ET0:定时器/计数器T0的溢出中断允许位。 EX0:外部中断0的溢出中断允许位。,4)中断优先级控制-中断优先级寄存器IP,中断相关寄存器,IP 各控制位的含义: PS:串行口中断优先级控制位 PT1:定时器/计数器T1中断优先级控制位 PX1:外部中断1中断优先级控制位 PT0:定时器/计数器T0中断优先级控制位 PX0:外部中断0中断优先级控制位 若某控制位为1,则相应的中断源规定为高级中断; 反之,为0,则相应的中断源规定为低级中断。,1)定时器控制寄存器TCON,定时器/计数器控制相关寄存器,TCON各控制位的含义: TF1:定时器
4、/计数器T1溢出中断请求标志位。 TF0:定时器/计数器T0溢出中断请求标志位。 当T1溢出时,硬件置1;需在中断程序中软件清0。 TR1:T1运行控制位。可通过软件置1(TR1=1)或清0(TR1=0)来启动或关闭 T1工作。 TR0: T0运行控制位。可通过软件置1(TR0=1)或清0(TR0=0)来启动或关闭 T0工作。,2)定时器方式选择寄存器TMOD,定时器/计数器控制类寄存器,TMOD寄存器用于设定定时器/计数器的工作方式。 寄存器地址为89H,它没有位地址,不能进行位寻址,只能用字节传送指令设置其内容。 它的低半字节对应控制T0,高半字节对应控制T1.,2)定时器方式选择寄存器T
5、MOD,定时器/计数器控制类寄存器,TMOD各控制位的含义: GATE:门控位。 GATE=0,以运行控制位TR启动定时器,而不管INT0(或INT1)的电平是高还是低; GATE=1,以外中断请求信号(INT1/INT0)启动定时器。只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1)置1时,才能启动定时器工作。 C/T:定时方式或计数方式选择位。 C/T=0,定时工作方式; C/T=1,计数工作方式。 M1M0:工作方式选择位。 M1M0=00,工作方式0;M1M0=01,工作方式1; M1M0=10,工作方式2;M1M0=00,工作方式3;,定时器/计数器的四种模式,M1M
6、0控制的定时器/计数器的四种工作模式,【例1】设时钟频率为6MHz。编写利用T0产生1s定时的程序。 解:1)定时器T0工作模式的确定 模式0最长可定时16.384ms; 模式1最长可定时131.072ms; 模式2最长可定时512s; 定时1s,可选用模式1,每隔100ms中断一 次,中断10次从而达到 1s的定时。 2)求计数器初值X (216X)12/(6 106) =10010-3 s X=15536=3CB0H 因此:(TL0)=0B0H (TH0)=3CH 3)实现方法: 对于中断10次计数,可使T0工作在计数方式,也可用循环程序的方法实现。本例采用循环程序法。,综合应用举例(1)
7、,综合应用举例(1),4)源程序清单 ORG0000H AJMP MAIN; 上电,转向主程序 ORG 000BH ;T0的中断服务程序入口地址 AJMP SERVE ;转向中断服务程序 ORG 0080H ;主程序 MAIN : MOV SP,#60H ;设堆栈指针 MOV B,#0AH ;设循环次数 MOV TMOD,#01H;设置T0工作于模式1 MOV TL0,#0B0H;装计数值低8位 MOV TH0,#3CH;装计数值高8位 SETB TR0 ;启动定时 SETB ET0;T0开中断 SETB EA;CPU开中断 SJMP $;等待中断 SERVE: MOV TL0,#0B0H ;
8、重新赋初值 MOV TH0,#3CH DJNZ B,LOOP ;B-1不为0,继续定时 CLR TR0 ;1s定时到,停止T0工作 LOOP: RETI ;中断返回 END,【例2】设计实时时钟程序。时钟 就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。 解:1)实现时钟计时的基本方法 计算计数初值。 时钟计时的最小单位是秒,可把定时器的定时时间定为100ms,计数溢出10次即得到1秒;10次计数可用软件方法实现。 假定使用定时器T0,以工作模式1进行100ms的定时。如fosc=6MHz,则计数初值X为: X=15536=3CB0H 因此 :(TL0)=0B0H (TH0)=3CH
9、 采用定时方式进行溢出次数的累计,计满10次即得到秒计时。 设置软件计数器初值为10,每100ms定时时间到溢出中断,使软件计数器减1,直到减到0,则1s到。,综合应用举例(2), 从秒到分和从分到时的计时是通过累计和数值比较实现的。 设置几个累加单元分别进行对1s,1min,1h进行计数。满1s,秒位累加;满60s,分位累加;满60min,时位累加;满24h全部累加单元清0。 2)程序流程及程序清单 主程序流程如右图所示。,综合应用举例(2),2)程序流程及程序清单 中断服务流程如右图所示。,保护现场,赋计数初值,到1s?,(32H)加1,(32H)=60?,(32H)清0,(31H)加1,
10、(31H)=60?,(31H)清0,(30H)加1,(30H)=24?,(30H)清0,恢复现场,返回,入口,a,a,N,N,N,N,Y,Y,Y,Y,综合应用举例(1), 源程序如下: ORG 0000H AJMP MAIN ; 上电,转向主程序 ORG 001BH ;T1的中断服务程序入口地址 AJMP SERVE ;转向中断服务程序 ORG 2000H ;主程序 MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#10H ;设置T1工作于模式1 MOV 20H,#0AH ;设循环次数 CLR A MOV 30H,A ;时单元清0 MOV 31H,A ;分单元清0 MOV
11、32H,A ;秒单元清0 SETB ET1 ;T1开中断 SETB EA ;CPU开中断 MOV TL1,#0B0H ;装计数值低8位 MOV TH1,#3CH ;装计数值高8位 SETB TR1 ;启动定时 SJMP $ ;等待中断(可反复调用显示子程序),综合应用举例(1),中断服务程序: SERVE: PUSH PSW ;保护现场 PUSH ACC MOV TL1,#0B0H ;重新赋初值 MOV TH1,#3CH DJNZ 20H,RETERN ;1s未到,返回 MOV 20H,#0AH ;重置中断次数 MOV A,#01H ADD A,32H ;“秒位”加1 DA A ;转换为BCD
12、码 MOV 32H,A CJNE A,#60H,RETERN ;未满60s,返回 MOV 32H,#00H ;计满60s,“秒位”清0 MOV A,#01H ADD A,31H ;“分位”加1 DA A ;转换为BCD码,综合应用举例(2),MOV 31H,A CJNE A,#60H,RETERN ;未满60min,返回 MOV 31H,#00H ;计满60min,“分位”清0 MOV A,#01H ADD A,30H ;“时位”加1 DA A ;转换为BCD码 MOV 30H,A CJNE A,#24H,RETERN ;未满24h,返回 MOV 30H,#00H ;计满24h,“时位”清0
13、RETURN:POP ACC ;恢复现场 POP PSW RETI ;中断返回 END,2020/11/12,19,1 5章总结,15章总结,介绍单片机的发展、类型、应用环境 单片机的硬件结构:组成、引脚分布、内部数据存储器、I/O口、时钟电路与时序、工作方式(复位、待机、停机) 单片机的指令系统:寻址方式(7种)、5类操作指令(数据传送指令、算术运算指令、逻辑运算及移位指令、控制转移指令、位操作指令) 汇编语言程序设计:典型的例程 单片机的中断与定时/计数器,单片机系统扩展,单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对于一些较复杂的
14、应用系统而言,以上一种或几种资源还远远达不到实际应用的要求,此时就需要在单片机芯片外加相应的芯片、电路等,使得有关功能得以扩充,称为系统扩展。 MCS-51单片机的系统扩展包括并行存储器扩展、I/O接口扩展、人机交互扩展(键盘、显示器) 、串行口扩展、外部信号变换扩展(A/D、D/A)。 两类外扩展:存储器扩展和I/O扩展; 两种外扩展方法:并行扩展和串行扩展。,2020/11/12,22,第6章 单片机并行存储器扩展,本章主要内容,单片机并行外扩展系统 存储器分类 存储器并行扩展 80C51单片机存储器系统的特点和使用方法,用单片机组成应用系统时,首先要考虑单片机所具有的各种功能能否满足应用
15、系统的要求。如能满足,则称这样的系统为最小应用系统。 下图为MCS51系列中80C51单片机的最小系统。,单片机最小系统,单片机并行扩展总线,系统扩展,外部存储器的扩展,I/O接口部件的扩展,通过系统总线扩展,并行扩展总线的组成,并行扩展总线包括三个组成部分:AB、DB、CB 地址总线:Address Bus (AB) 传送地址信号,用于外扩展存储单元和I/O端口的寻址。 地址总线是单向的,只能从单片机向外传送。 一条地址线提供一位地址,故地址线的数目决定了可寻址存储单元的数目。 80C51单片机的地址总线共有16位,故外扩展空间为64KB,即216个地址单元。,并行扩展总线的组成,数据总线:
16、Data Bus (DB) 传送数据、状态、指令和命令。 DB是双向的,可以进行两个方向的数据传送。 DB的位数应于单片机字长一致。如80C51单片机是8位字长,故数据总线为8位。 控制总线:Control Bus (CB) 传送控制信号。 单片机可以向外扩发出控制信号,外扩也可以向单片机发送控制信号,因此虽然一个控制信号传送的本身是单向的,但是由不同方向信号线组合的控制总线则可表示为双向。,80C51,P0口,以P0口的8位口线充当低位地址线(A7A0)和数据线(D7D0) 分时复用:先送出地址,再传送数据。 锁存器:保存分离出的地址,需另外增加一个8位的锁存器,并以ALE作为锁存控制信号。
17、(CPU送出地址时,ALE有效,应选择高电平或下降沿选通的锁存器) 低8位的地址进入锁存器后,P0口即可作为数据线使用,进行数据传送了。,P2口,P2口只作为高8位地址线使用。 P2口的高8位地址线与P0口的低8为地址线共同构成完整的16位地址总线,可选址64KB空间。 在实际应用中,高位地址线根据需要从P2口引出,需要几位引出几位口线。若外扩展容量小于256个单元时,则不需要高位地址线。,控制线,控制总线包括: 控制低8位地址锁存的ALE信号 控制扩展程序存储器ROM的读选通信号PSEN 控制选择内外程序存储器的选择信号EA 控制扩展数据存储器RAM及I/O端口的读/写选通信号 RD和WR
18、仅剩P1口和P3口的部分口线可供数据I/O使用。,访问外部程序存储器的操作过程: 在S1P2时刻产生ALE信号。 由P0、P2口送出16位地址,由于P0口送出的低8位地址只保持到S2P2,所以要利用ALE的下降沿信号将P0口送出的低8位地址信号锁存到地址锁存器中。而P2口送出的高8位地址在整个读指令的过程中都有效,因此不需要对其进行锁存。从S2P2起,ALE信号失效。 从S3P1开始,PSEN开始有效,对外部程序存储器进行读操作,将选中的单元中的指令代码从P0口读入,S4P2时刻, PSEN失效。 从S4P2后开始第二次读入,过程与第一次相似。,访问外部程序存储器的时序,MCS-51系列单片机
19、访问外部程序存储器的时序图,访问外部数据存储器的操作过程: 从第1次ALE有效到第2次ALE开始有效期间,P0口送出外部ROM单元的低8位地址,P2口送出外部ROM单元的高8位地址,并在PSEN有效期间,读入外部ROM单元中的指令代码; 在第2次ALE有效后,P0口送出外部RAM单元的低8位地址,P2口送出外部RAM单元高8位地址; 在第2个机器周期,第1次ALE信号不再出现,此时PSEN也失效,并在第2个机器周期的S1P1时,RD信号开始有效,从P0口读入选中RAM单元中的内容。,访问外部数据存储器的时序,MCS-51系列单片机访问外部数据存储器的时序图,并行扩展系统的I/O编址,80C51
20、单片机存储器系统与外扩展地址空间结构图-RAM,用户RAM区 (堆栈、缓冲),位寻址区,四组通用 寄存器,特殊功能 寄存器区 (SFR),片内RAM (低128字节),片内RAM (高128字节),00H,7FH,80H,FFH,片内数据存储器,RAM或I/O (64KB),0000H,FFFFH,片外数据存储器,数据存储器(RAM),并行扩展系统的I/O编址,80C51单片机存储器系统与外扩展地址空间结构图ROM,片内程序存储器(4K),(ROM),片外程序存储器(64K),程序存储器(ROM),1000H,FFFFH,片外ROM的起始地址取决于 单片机是否有片内存储器: 如果没有片内存储器
21、, 外扩ROM从0000H开始编址; 如果有片内ROM, 则外扩展ROM从1000H开始编址,芯片的选取,寻址:访问要扩展的芯片和芯片内的目标单元。 寻址可分为芯片选择和芯片内目标单元选择两个层次。 内寻址层次:由外接芯片的内部译码电路完成。(只需将外扩芯片的地址引脚与单片机低位地址线相连即可) 芯片选择:外扩系统的寻址问题主要集中于此。(外接芯片常有多个片选信号引脚,如何产生有效的片选信号?) 常用的芯片选择方法:线选法和译码法。,线选法寻址,线选法寻址:直接以位地址信号作为芯片的片选信号。 使用时只需把地址线与扩展芯片的片选信号引脚直接连接即可。 例: 某一系统,需要外扩8KB的EPROM
22、(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路图如下。,线选法寻址,解:高位地址线P2.4P2.7直接和各芯片片选信号CE相连 分析地址: A15A14A13A12A11A0 2732(1): 0 1 1 17000H7FFFH 2732(2): 1 0 1 1B000HBFFFH 6116(1): 1 1 1 0 1E800HEFFFH 6116(2): 1 1 0 1 1 D800HDFFFH,地址不连续,优点:电路简单,不需要地址译码器硬件,体积小,成本低。 缺点:可寻址的器件数目有限,地址不连续。,线选法寻址,全译码: 部分
23、译码:,译码,全部高位地址线都参加译码;,部分高位地址线参加译码, 存在部分地址空间相重叠的情况。,译码法寻址,译码法寻址:高位地址通过译码器的译码输出作为扩展芯片的片选信号。 最常用的译码器芯片: 3-8译码器:74LS138 双2-4译码器:74LS139 4-16译码器:74LS154,(1) 74LS138(3-8译码器),时译码器工作,输入:C B A 输出: 工作时,只有一个输出为0,其它皆1,译码器,输 入 输 出 C B A,74LS138真值表,(2) 74LS139(双2-4译码器),译码器,解:6264:8K=213 3根地址线用于控制 选通8片RAM,译码法寻址举例,【
24、例】要扩展8片8KB的RAM6264 (8K8),如何通过译码器把64KB空间分配给各个芯片?,全译码方式,地址无重叠 64KB空间:0000HFFFFH,地址连续,分析地址:,译码法寻址举例,引出问题1:如何用74LS138把64K空间划分为每块4KB?,译码法寻址举例,解:64KB=4KB8块2部分 4K=212 12根译码3根,P2.7未参加译码 P2.7=0/1决定选择64KB的前32KB或后32KB,74LS138,G1,前32KB 8块4KB,后32KB 8块4KB,分析地址:,译码法寻址举例,改变P2.7和G1的连接逻辑,即可改变前后32KB空间。,引出问题2:如何用74LS13
25、8把64K空间划分为每块2KB?,译码法寻址举例,解:64KB=2KB8块4部分 4K=211 11根译码3根,P2.7,P2.6未参加译码 P2.7G1,P2.6G2A,改变P2.7,P2.6和G1,G2A的连接 逻辑,即可改变选中的4个16KB空间的哪一个了。,小结: 若64KB全是用32块2K芯片组成,则同问题2,需4个74LS138 若64KB全是用16块4K芯片组成,则同问题1,需2个74LS138 注意:译码方案不唯一,本章主要内容,单片机并行外扩展系统 存储器分类 存储器并行扩展 80C51单片机存储器系统的特点和使用方法,只读存储器(ROM): (1)掩模工艺ROM (2)可一
26、次性编程ROM(PROM) (3)紫外线擦除可改写ROM(EPROM) (4)电擦除可改写ROM(EEPROM或E2PROM) (5)快擦写ROM(flash ROM),存储器分类-只读存储器,随机存储器(RAM): (1)双极型RAM (2)金属氧化物(MOS)RAM 静态RAM(SRAM) 动态RAM(DRAM) 集成RAM(IRAM) 非易失性RAM(NVRAM),存储器分类-随机存储器,容量 存取时间 可靠性 功耗,存储器的主要性能指标,扩展程序存储器常用EPROM芯片:,2716(2K8位)、2732(4KB)、2764(8KB)、 27128(16KB)、27256(32KB)、2
27、7512(64KB)。,扩展数据存储器常用静态RAM芯片: 6264(8K8位)、62256(32K8位)、 628128(128K8位)等。,常用存储器芯片,本章主要内容,单片机并行外扩展系统 存储器分类 存储器并行扩展 80C51单片机存储器系统的特点和使用方法,程序存储器的作用 存放程序代码或常数表格 程序存储器的扩展过程: 扩展时所用芯片 一般用只读型存储器芯片(可以是EPROM、E2PROM、 FLASH芯片等)。 扩展电路连接 用EPROM 2764扩展程序存储器为例 存储器地址分析 究竟单片机输出什么地址值时,可以指向存储器中的某一单元。,程序存储器扩展,2764是一块8K8bi
28、t的EPROM芯片,管脚如下图所示: A12A0:13位地址信号输入线,芯片的容量为: 8K213个单元; D7D0 :8位数据线,芯片的每个存储单元存放一个字节(8位二进制数); CE:选片信号,输入,当它为有效低电平时,该芯片被选中; OE:输出允许信号。当 它为低电平时,芯片中的数据可由D7D0输出。 PGM:编程脉冲输入端。当对EPROM编程时,由此加入编程脉冲;读时该引脚为高电平。,EPROM芯片2764,2764引脚功能,EPROM2764管脚图,系统扩展一片EPROM的最小系统:,2. 2764的连接使用,74L373引脚功能,使能端,当E=0,G=1时, 输出Q=输入D(透明)
29、; 当E=0,G=0时, 输出Q端不变(锁存) 当E=1,输出高阻态,2. 2764的连接使用, 注意:PSEN接OE(输出允许),2. 2764的连接使用,分析存储器在存储空间中占据的地址范围,就是根据连接情况确定其最低地址和最高地址。 P2.7、P2.6、P2.5的状态与2764芯片的寻址无关,所以P2.7、P2.6、P2.5可为任意,从000到111共有8种组合,其2764芯片的地址范围是: 最低地址:0000H A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 最高地址:FFFFH A
30、15A14A13A12 A11A10A9A8 A7A6A5A4A3A2A1A0 = 1 1 1 1 1 1 1 1 1 1 1 1 1 共占用了64KB的存储空间,造成地址空间的重叠和浪费,3. 存储器映像分析,数据存储器的作用: 存放数据,可改写 数据存储器的扩展过程: 扩展时所用芯片 一般用静态读写型存储器芯片SRAM,也可以用E2PROM、FLASH芯片等 扩展电路连接 用SRAM 6264扩展程序存储器。 存储器地址分析 究竟单片机输出什么地址值时,可以指向存储器中的某一单元。,数据存储器的扩展,单片机的数据存储器扩展主要要解决三总线的连接: 地址线的连接,与程序存储器连法相同。 数据
31、线的连接,与程序存储器连法相同。 控制线的连接,主要有下列控制信号: 存储器输出信号(OE)与单片机读引脚 (即P3.7) 相连 存储器写信号(WE)与单片机写引脚(即P3.6) 相连 ALE:其连接方法与程序存储器相同 使用时应注意,访问内部或外部数据存储器时,应分别使用MOV及MOVX指令。 外部数据存储器通常设置二个数据区,数据存储器的扩展,低8位地址线寻址的外部数据区。此区域寻址空间为256个字节。可以使用下列读写指令来访问此存储区 读存储器数据指令:MOVXA ,R 写存储器数据指令:MOVXR,A 因8位寻址指令占字节少,程序运行速度快,故常采用。 16位地址线寻址的外部数据区。当外部RAM容量较大,要访问RAM地址空间大于256个字节时,则要采用如下16位寻址指令。 读存储器数据指令:MOVXA ,DPTR 写存储器数据指令:MOVXDPTR ,A 由于DPTR为16位的地址指针,故可寻址64KRAM字节单元。,数据存储器的扩展,数据存储器扩展常使用随机存储器芯片,用的较多的是Intel公司的6116,容量为2KB;和6264,容量为8KB 以6264芯片为例进行说明,其管脚图如下图所示。 该芯片的主要引脚为: D7D0 :8位数据线 A12A0 :13根地址线。芯片的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论