版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 系统扩展原理及接口技术,系统扩展原理,系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。 80C51 主要有程序存储器的扩展、数据存储器的扩展、I/O口的扩展、中断系统扩展以及其它特殊功能接口的扩展等。 扩展的方法有并行扩展法和串行扩展法两种。 并行扩展法是指利用单片机本身具备的三组总线(AB、DB、CB)进行的系统扩展。 串行扩展法利用SPI三线总线和I2C双线总线进行系统扩展。 有的单片机应用系统可能同时采用并行扩展法和串行扩展法。,2020/11/21,3,单片机是通过芯片的引脚进行系统扩展的。 80C51系列带总线的芯片引脚可以
2、构成图71所示的三总线结构即地址总线(AB)数据总线(DB)和控制总线(CB)。具有总线的外部芯片都通过这三组总线进行扩展。,外部并行扩展原理,2020/11/21,4,图71 80C51系列单片微机的三总线结构,2020/11/21,5,(1)地址总线(AB) P0口提供低8位地址A0A7,P2口提供高8位地址A8A15。P0口是地址总线低8位和8位数据总线复用口,只能分时用作地址线。故P0口输出的低8位地址A0A7必须用锁存器锁存。 可寻址范围为64 KB。 (2)数据总线(DB) 由P0口提供,用D0D7表示。P0口为三态双向口,是应用系统中使用最为频繁的通道。数据总线是并联到多个连接的
3、外围芯片的数据线上,而在同一时间里只能够有一个是有效的数据传送通道。 (3)控制总线(CB) 包括片外系统扩展用控制线和片外信号对单片机的控制线。 系统扩展用控制线有ALE、 、 、 、 。 ,2020/11/21,6,:输出,用于读片外程序存储器(EPROM)中的数据。:输入,用于选择片内或片外程序存储器。 当 0时,只访问外部程序存储器。当 1时,先访问内部程序存储器,内部程序存储器全部访问完之后,再访问外部程序存储器。,:输出,用于片外数据存储器(RAM)的读、写控制。当执行片外数据存储器操作指令MOVX时,自动生成。,ALE:输出P0 口上地址与数据隔离信号,用于锁存P0口输出的低8位
4、地址的控制线。通常,ALE信号的下降沿控制锁存器来锁存地址数据。,2020/11/21,7,图72 地址锁存器,2020/11/21,8,在单片机应用系统中,为了唯一地选择片外某一存储单元或I/O端口,需要进行二次选择。 一是必须先找到该存储单元或I/O端口所在的芯片,一般称为“片选” 。 二是通过对芯片本身所具有的地址线进行译码,然后确定唯一的存储单元或I/O端口,称为“字选”。,2020/11/21,9,“片选” 常用的方法有四种:“线选法” 、“地址译码法” 、应用 “可编程器件PAL/GAL” 或“I/O口线” 。 (1) 线选法:线选法一般是利用单片机的最高几位空余的地址线中一根(如
5、P2.7) 作为某一片存储器芯片或I/O接口芯片的“片选” 控制线。用于应用系统中扩展芯片较少的场合。 (2)译码法:用译码器对空余的高位地址线进行译码,而译码器的输出作为“片选” 控制线。常用的译码器有3/8译码器74LS138、双2/4译码器74LS139、4/16译码器74LS154等。 3/8译码器74LS138的管脚见图73。 G1、 、 :使能端。当G1=1, = =0时, 芯片使能。 C、B、A:译码器输入,高电平有效。 :译码器输出,低电平有效。,2020/11/21,10,图73 74LS138三-八译码器,部分地址译码,全地址译码,2020/11/21,11,图74 64K
6、全地址译码电路,2020/11/21,12,#0 RAM地址分配为0000H1FFFH,共8K。(A15=A14=A13=0) #1芯片地址分配为2000H3FFFH,共8K.(A15=A14=0,A13=1) #2 芯片地址分配为4000H5FFFH,共8K。 (A15=0,A14=1,A13=0) #3 芯片地址分配为6000H7FFFH,共8K。(A15=0,A14=1,A13=1) #4 芯片地址分配为8000H9FFFH,共8K。(A15=1,A14=0,A13=0) #5 芯片地址分配为A000HBFFFH,共8K。 (A15=1,A14=0,A13=1) #6 芯片地址分配为C0
7、00HDFFFH,共8K。(A15=A14=1,A13=0) #7 I/O地址分配为E000HFFFFH,共8K。(A15=A14=A13=1),2020/11/21,13,由于地址总线宽度为 16位,在片外可扩展的存储器最大容量为64KB,地址为0000HFFFFH。片外数据存储器与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重复,故片外可扩展的数据存储器与程序存储器分别为64 KB。 片外数据存储器与片内数据存储器的操作指令不同(片外RAM只能用MOVX指令)。允许两者地址重复,亦即外部扩展数据存储器地址可从0000H开始。 I/O口扩展与片外数据存储器统一编址,不再另外提供地
8、址线。,80C51系列单片机的系统并行扩展能力,程序存储器的扩展,1. 程序存储器扩展时的总线功能和操作时序 为片外程序存储器读选择信号。正常运行时,该引脚不能浮空。 当 l时,80C51单片机所有片内程序存储器有效。 当程序计数器PC运行于片内程序存储器的寻址范围内(对80C5187C5189C51为0000H0FFFH,共4KB;对80C5287C5289C52为0000H1FFFH,共8KB)时,P0口、P2 口及 线没有信号输出;当程序计数器PC的值超出上述范围后,P0口、P2 口及PSEN线才有信号输出。 80C51访问片外程序存储器时,使用如下的信号: P0口:分时输出程序存储器的
9、低8位地址和8位数据。 ALE:输出,在ALE的下降沿时,P0口上出现稳定的程序存储器的低8位地址,用ALE信号锁存这低8位地址。,2020/11/21,15,P2口:在整个取指周期中,输出稳定的程序存储器的高8位地址。 线:输出,低电平有效。在ALE的下降沿之后,由高变为低,此时片外程序存储器的内容(指令字)送到 P0口,而后在 的上升沿将指令字送入指令寄存器。因而, 信号作为片外程序存储器的“读”选通信号。 (2)当 0时,80C51单片机所有片内程序存储器无效,只能访问片外程序存储器。伴随着单片机复位,P0口、P2口及 线均有信号输出。 单片机片外程序存储器取指操作的时序如图77所示。,
10、2020/11/21,16,图77 无片外数据存储器时的取指操作时序图,2020/11/21,17,2扩展片外程序存储器的硬件电路 80C51的片内程序存储器容量越来越大,如89C5887C58的片内程序存储器的容量高达32 K8位,甚至为 64 K 8位。而且价格也大大降低。 例:扩展16K 8位片外程序存储器 如图79所示。在电路中 是接高电平的。27128A是16K容量的EPROM,所以用到了14根地址线A0A13。系统中只扩展了一片程序存储器,所以27128A的片选端可直接接地,一直有效。,2020/11/21,18,图7-8 EPROM芯片管脚,2020/11/21,19,图79 E
11、PROM的扩展电路,数据存储器的扩展,常用的数据存储器有动态RAM和静态RAM,有并行RAM和串行RAM。 片外数据存储器扩展时的总线功能和读、写操作时序 80C51单片机,对片外数据存储器读、写操作的指令有以下四条: MOVX A,Ri ; 片外RAM(A),读( )操作 MOVX Ri,A ;(A)片外RAM ,写( )操作 这组指令由于Ri只能提供8位地址,因此,仅能扩展256个字节的片外RAM。 MOVX A,DPTR;片外RAM(A),读操作 MOVX DPTR,A ;(A)片外RAM , 写操作 这组指令由于DPTR能提供16位地址,因此,可以扩展 64KB的片外 RAM。,202
12、0/11/21,21,图710 “MOVX A,DPTR” 和“MOVX DPTR,A” 的操作时序,2020/11/21,22,执行该组指令时,机器周期1为取指周期,在S5状态,ALE为下降沿时,P0总线上出现的是数据存储器的低8位地址,即DPL;在P2口上出现的是数据存储器的高8位地址,即DPH。 取指操作之后,直至机器周期2的S3状态之前, 一直维持高电平。而在机器周期2的S1与S2状态之间的ALE不再出现。 执行“MOVX A,DPTR”时,从机器周期2开始到S3状态, 出现低电平。此时允许将片外数据存储器的数据送上P0口,在 的上升沿将数据读入累加器A,数据为输入。执行“MOVX D
13、PTR,A”时,从机器周期2开始到S3状态, 出现低电平。此时P0口上将送出累加器A的数据,在 的上升沿将数据写入片外数据存储器中,数据为输出。,2020/11/21,23,此时P0口为地址、数据复用总线;P2口在机器周期1的S4状态之后出现锁存的高8位地址(DPH);用控制线来调动数据总线上的数据传输方向:而 有效时数据为输入, 有效时数据为输出。 2扩展片外数据存储器的硬件电路 在80C51的扩展系统中,片外数据存储器一般由随机存取存储器组成,最大可扩展64KB。图711所示的是用两片6264扩展16K*8位片外数据存储器的电路。 在图中,采用线选法寻址。用一根口线P2.7来寻址:当 P2
14、. 7=0时,访问6264(0) ,地址范围为6000H7FFFH;当P2.7=l时,访问6264(1),地址范围为E000HFFFFH。,2020/11/21,24,图711 16K片外数据存储器扩展电路,2020/11/21,25,计算机系统中共有两种数据传送操作。一类是CPU和存储器之间的数据读写操作;另一类则是CPU和外部设备之间的数据传输。 1单片机为什么需要I/O接口电路 由于存储器是半导体电路,与CPU具有相同的电路形式,数据信号也是相同的(电平信号),能相互兼容直接使用,因此存储器与CPU之间采用同步定时工作方式。它们之间只要在时序关系上能相互满足就可以正常工作。存储器与CPU
15、之间的连接相当简单,除地址线、数据线之外,就是读或写选通信号,实现起来非常方便。,I/O扩展概述,I/O 的扩展及应用,2020/11/21,26,CPU和外部设备之间的数据传送却十分复杂。 高速CPU与工作速度快慢差异很大的慢速外部设备的矛盾。 外部设备的数据信号是多种多样的。 外部设备种类繁多。 外设的数据传送有近距离的,也有远距离的。 CPU必须在CPU和外设之间有一个接口电路,通过接口电路对CPU与外设之间的数据传送进行协调。,2020/11/21,27,在数据的I/O传送中,接口电路主要有如下几项功能: 速度协调 由于速度上的差异,使得数据的I/O传送只能以异步方式进行,即只能在确认
16、外设已为数据传送作好准备的前提下才能进行I/O操作。 三态缓冲 数据输入时,为了维护数据总线上数据传送的秩序,只允许当前时刻正在进行数据传送的数据源使用数据总线,其它数据源都必须与数据总线处于隔离状态。为此要求接口电路具有三态缓冲功能。 数据转换 有些外部设备需要使用接口电路进行数据信号的转换。其中包括:模数转换、数模转换、串并转换和并串转换等。,2020/11/21,28, 接口与端口 计算机与外设之间在数据传送方面的联系。其功能主要是通过电路实现的。因此称之为接口电路。 在接口电路中应该包含有数据寄存器以保存输入输出数据、状态寄存器以保存外设的状态信息、命令寄存器以保存来自CPU的有关数据
17、传送的控制命令。 由于在数据的传送中,CPU需要对这些寄存器的状态口和保存命令的命令口寻址等,我们通常把接口电路中这些已编址并能进行读或写操作的寄存器称之为端口(port),或简称口。因此,一个接口电路就对应着多个端口地址,对它们像存储单元一样进行编址。,2020/11/21,29, 数据隔离技术 输入输出的数据都要通过系统的数据总线进行传送,为了正确地进行数据的传送,就必须解决数据总线的隔离问题。 对于输出设备的接口电路,要提供锁存器,当允许接收输出数据时闩锁打开,否则关闭。而对于输入设备的接口电路,要使用三态缓冲电路或集电极开路门。 三态缓冲电路 三态缓冲电路就是具有三态输出的门电路,也称
18、之为三态门(TSL)。所谓三态,就是指低电平状态、高电平状态和高阻抗三种状态。当三态缓冲器的输出为高或低电平时,就是对数据总线的驱动状态;当三态缓冲器的输出为高阻抗时,就是对总线的隔离状态。 三态缓冲器的控制逻辑如表72所示。,2020/11/21,30,表72 三态缓冲控制逻辑,对三态缓冲电路的主要性能要求有: 速度快,信号延迟时间短。例如典型三态缓冲器的延迟时间只有8-13ns。 较高的驱动能力。 高阻抗时对数据总线不呈现负载,最多只能拉走不大于0.04mA电流。,2020/11/21,31, 集电极开路门 集电极开路门是从基本的与非门电路演变过来的,把集电极回路中的电阻除去,让集电极开路
19、,就得到了集电极开路门电路。可以作为集电极开路的电路有反相器、与非门以及与或非门等。 集电极开路器件的输出是低电平起作用,如果其中一个为低电平,则总的输出即为低电平。只有当所有连在一起的集电极开路器件的输出端均为高电平时总的输出才是高电平。对于这种逻辑关系有时也称之为”线或”。,2020/11/21,32, I/O编址技术 对端口编址是为I/O操作而进行的,因此也称为I/O编址。常用的I/O编址有独立编址方式和统一编址方式 。 独立编址方式 优点是I/O地址空间和存储器地址空间相互独立,但需要专门设置一套I/O指令和控制信号,从而增加了系统的开销。 统一编址方式 统一编址就是把系统中的I/O和
20、存储器统一进行编址。在这种编址方式中,把接口中的寄存器(端口)与存储器中的存储单元同等对待。为此也把这种编址称之为存储器映像(Memory mapped)编址。80C51使用统一编址方式。因此在接口电路中的I/O编址也采用16位地址,和存储单元的地址长度一样。,2020/11/21,33, I/O数据传送的控制方式 有无条件传送方式、查询方式、中断方式和直接存储器存取(DMA)四种方式。在单片机中主要使用前三种方式。 无条件传送方式 也称为同步程序传送。在进行I/O操作时,不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。 程序查询方式 查询方式又称之为有条件传送方式,即数据的传送是
21、有条件的。为了实现查询方式的数据输入输出传送,需要由接口电路提供外设状态,并以软件方法进行状态测试。因此这是一种软硬件方法结合的数据传送方式。,2020/11/21,34, 程序中断方式 当外设为数据传送作好准备之后,就向CPU发出中断请求,CPU响应中断请求之后,转去为外设的数据输入输出服务。待服务完成之后,CPU再继续执行被中断的原程序。,2020/11/21,35,8051的四个8位双向口,都具有数据I/O操作功能。 有关I/O口的指令 由于8051采用统一编址方式,因此没有专门的I/O指令。四个I/O口均属于内部的SFR。,8051单片机 I/O口直接应用,2020/11/21,36,
22、 I/O口的数据传送指令 向口输出数据的指令有: MOVPx,A MOVPx,Rn MOVPx,Ri MOVPx,direct 从口输入数据的指令有: MOVA,Px MOVRn,Px MOVRi,Px MOVdirect,Px,2020/11/21,37, I/O口的位操作指令 位传送指令MOV Px.yC 位清0指令 CLRPx.y 位置1指令 SETBPx.y 位取反CPLPx.y 位为1转移JBPx.yrel 位为0转移JNBPx.yrel 位为1转移并清零JBCPx.yrel,2020/11/21,38, I/O口其它操作指令 逻辑与指令 ANLPx,A 逻辑或指令 ORLPx,A
23、逻辑异或指令 XRLPx,A 加1指令 INCPx 减1指令 DECPx 减1条件转移指令 DJNZPx,rel 数值比较转移指令 CJNEA,Px,rel 使用单片机本身的I/O口,能完成一些简单的数据I/O应用。 例:执行指令: MOVP1,#7FH 执行结果为:P1.7引脚输出低电平,其余7个引脚输出高电平。,2020/11/21,39, 简单输出口的扩展 输出口的主要功能是进行数据保持(锁存) ,一般应用锁存器芯片实现。比如常用74LS377芯片,该芯片是一个具有“使能”控制端的8D锁存器。一个时钟输入端CK,一个锁存允许信号G,当G=0时,CK的上跳变将把8位D输入端的数据打入8位锁
24、存器,这时Q输出端将保持D端输入的数据。8051与74LS377的接口见图712。 例:将一个数据字节从74LS377输出,则执行下面程序段: MOVDPTR,#7FFFH;地址指针指向74LS377 MOVA,#DATA;将输出数据送A MOVX DPTR,A;输出数据,8051简单I/O的扩展,2020/11/21,40,图712 80C51与74LS377接口电路图,2020/11/21,41, 简单输入口的扩展 对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图7-13是用74LS244通过P0口扩展的8位并行输入口,图中,三态门由P2.6和 RD相或控制,其端口地址为BFFF
25、H。 例:数据输入 MOVDPTR,#0BFFFH;指向74LS244口地址 MOVXA,DPTR;读入数据,2020/11/21,42,图713 80C51与74LS244接口电路图,2020/11/21,43,可编程I/O接口芯片8255A的扩展及应用,在单片机I/O扩展中常用的并行可编程接口芯片有: 8255A 可编程通用并行接口芯片 8155带RAM和定时器、计数器的可编程并行接口芯片 8279 可编程键盘/显示器接口芯片 。,8255A的逻辑结构和信号引脚,8255A是一个40引脚的双列直插式集成电路芯片,其逻辑结构如图714所示。,2020/11/21,44,图714 8255A的
26、逻辑结构图,2020/11/21,45,按功能可把8255A分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。 口电路 8255A共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。 数据传送中A口所需的控制信号由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3PC0)合在一起称之为B组。,2020/11/21,46, 总线接口电路 用于实现8255A和单片机的信号连接。包括: 数据总线缓冲器 为8位双向三态缓冲器,可直接和8051
27、的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。 读/写控制逻辑 与读写有关的控制信号有: CS片选信号(低电平有效) RD读信号(低电平有效) WR写信号(低电平有效),2020/11/21,47,A0、A1端口选择信号。8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。参见表73。 RESET复位信号(高电平有效)。复位之后,控制寄存器清除,各端口被置为输入方式。 读写控制逻辑用于实现8255A的硬件管理,其内容包括芯片的选择 ,口的寻址以及规定各端口和单片机之间的数据传送方向。详见表73 8255A接口工作状态选
28、择表. 控制逻辑电路 控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器。用于存放各口的工作方式控制字。,2020/11/21,48,表73 8255A接口工作状态选择表,2020/11/21,49, 8255A的工作方式 8255A共有三种工作方式,即方式0、方式1、方式2. 方式0 基本输入/输出方式 方式0下,可供使用的是两个8位口(A口和B口)及两个4位口(C口高4位部分和低4位部分)。四个口可以是输入和输出的任何组合。 方式0适用于无条件数据传送,也可以把C口的某一位作为状态位,实现查询方式的数据传送。,8255A工作方式及数据I/O操作,2020/11/21,50, 方
29、式1 选通输入/输出方式 A口和B口分别用于数据的输入/输出。而C口则作为数据传送的联络信号。可见A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。如果两个口都按方式1使用,则还剩下2位口线,这两位口线仍然可以进行位状态的输入输出。 方式1适用于查询或中断方式的数据输入/输出。 方式2 双向数据传送方式 只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。在这种方式下需使用C口的五位线作控制线,方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,则B口可工作于方式0、1。,2020/11/21,51,表74 C口
30、联络信号定义,2020/11/21,52, 数据输入操作 用于输入操作的联络信号有: STB(StroBe)选通脉冲,输入,低电平有效。 当外设送来STB信号时,输入数据装入8255A的锁存器。 IBF(Input Buffer Full) 输入缓冲器满信号,输出,高电平有效。 IBF信号有效,表明数据已装入锁存器,因此它是一个状态信号。 INTR(INTerrupt Request)中断请求信号,高电平有效,当IBF为高,信号由低变高(后沿)时,中断请求信号有效。向单片机发出中断请求。,2020/11/21,53,数据输入过程:当外设准备好数据输入后,发出信号,输入的数据送入缓冲器。然后IB
31、F信号有效。如使用查询方式,则IBF即作为状态信号供查询使用;如使用中断方式,当信号由低变高时,产生INTR信号,向单片机发出中断。单片机在响应中断后执行中断服务程序时读入数据,并使INTR信号变低,同时也使IBF信号同时变低。以通知外设准备下一次数据输入。 数据输出操作 用于数据输出操作的联络信号有: ACK(ACKnowledge)外设响应信号输入,低电平有效。 当外设取走输出数据,并处理完毕后向单片机发回的响应信号。,2020/11/21,54,OBF(Output Buffer Full)输出缓冲器满信号,输出,低电平有效。 当单片机把输出数据写入8255A锁存器后,该信号有效, 并送
32、去启动外设以接收数据。 INTR中断请求信号,输出,高电平有效。 数据输出过程:外设接收并处理完一组数据后,发回ACK信号。该信号使OBF变高,表明输出缓冲器已空。如使用查询方式,则OBF可作为状态信号供查询使用;如使用中断方式,则当ACK信号结束时,INTR有效,向单片机发出中断请求。在中断服务过程中,把下一个输出数据写入8255A的输出缓冲器。写入后OBF有效,表明输出数据已到,并以此信号启动外设工作,取走并处理8255A中的输出数据。,2020/11/21,55,8255A是可编程接口芯片,共有两种控制字,即8255A工作方式控制字和C口位置位/复位控制字。 工作方式控制字 工作方式控制
33、字用于确定各口的工作方式及数据传送方向。其格式如图7-15所示。 C口位置位/复位控制字 C口的每一位都可以进行置位或复位。对C口各位的置位或复位是由位置位/复位控制字进行的。8255A的位置位/复位控制字格式如图716所示。 D7是该控制字的特征位,其状态固定为0。在使用中,控制字每次只能对C口中的一位进行置位或复位。,8255A控制字及初始化编程,2020/11/21,56,图715 8255A方式控制字,2020/11/21,57,图716 8255A的C口按位操作控制字,2020/11/21,58,8255A与80C51的接口电路见图717。 由图分析:PA地址为7FFCH(A15=0
34、,A1=0,A0=0) PB地址为7FFDH(A15=0,A1=0,A0=1) PC地址为7FFEH(A15=0,A1=1,A0=0) 控制寄存器地址为7FFFH(A15=0,A1=1,A0=1),8255A与80C51的接口及应用,2020/11/21,59,图717 8255A与80C51的接口电路,2020/11/21,60,例:对8255A各口作如下设置:A口方式0,B口方式0,从A口输入从B口、C口输出。 工作方式控制字10010000,即90H。初始化程序段为: MOV A,#90H;设B口、 C口输出, ; A口输入, A口、B口为方式0 MOVDPTR,#7FFFH MOVX
35、DPTR,A MOVDPTR,#7FFCH;从A口输入 MOVXA,DPTR INCDPTR;从B口输出 MOVXDPTR,A,2020/11/21,61,INCDPTR;从C口输出 MOVXDPTR,A 例:把C口的第6位PC5置为1。 MOVDPTR,#7FFFH MOVA,#00001011;PC5置位 MOVXDPTR,A,2020/11/21,62,例:要求通过8255A的PC5端向外输出1个正脉冲信号,已知8255的C口和控制口的地址分别为FB02H和FB03H。,解:可通过对PC5位的置位和复位控制来实现。 MOV DPTR, #0FB03H MOV A, #0BH MOVX D
36、PTR, A LCALL DELAY DEC A MOVX DPTR, A,2020/11/21,63,例:8051通过8255连接打印机,数据传送采用查询方式。8255的地址译码采用线选法,将P0.7直接与8255的CS端相连(通过地址锁存器),其口地址:A口为7CH,B口为7DH,C口为7EH,命令口为7FH。现要求编制打印50个字符的程序,该数据存于片内RAM从20H开始的50个连续单元中。PC7接受打印机的BUSY信号,PC0发往打印机STB。,MOV R0, #7FH MOV A, #88H MOVX R0,A MOV R1, #20H MOV R2, #32H,2020/11/21
37、,64,LP: MOV R0, #7EH LOOP1:MOVX A,R0 JB A.7,LOOP1 MOV R0,#7CH MOV A, R1 MOVX R0, A INC R1 MOV R0, #7FH MOV A, #00H MOVX R0,A MOV A,#01H MOVX R0,A DJNZ R2,LP,2020/11/21,65,A/D转换器接口的扩展及应用,A/D转换器用以实现模拟量向数字量的转换。按转换原理可分为4种:计数式、双积分式、逐次逼近式及并行式A/D转换器。 双积分式A/D转换器的主要优点为:转换精度高、抗干扰性能好、价格便宜;缺点为:转换速度较慢。 代表产品:ICL7
38、106/ICL7107/ICL7126系列、MC1443以及ICL7135等。 逐次逼近式A/D转换器是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。 代表产品: ADC0801ADC0805、ADC0808/0809、ADC0816/0817。,2020/11/21,66,AD转换器的类型,2020/11/21,67,A/D转换的基本原理,逐次逼近型的A/D转换器主要有逐次逼近寄存器SAR、D/A转换器、比较器以及时序和控制逻辑等部分组成。其实质是逐次把设定的SAR寄存器中的数字量经D/A转换后得到电压VC,与待转换的模拟电压VX进行比较。比较时,先从SAR的最高位开
39、始,逐次确定各位的数码应是“1”还是“0”。,2020/11/21,68,双积分式AD转换器,通过采样与测量两个阶段的两次积分,完成AD转换。电路在采样阶段对输入模拟电压Ui进行固定时间的积分,然后在测量阶段转为对基准电压进行反向积分,直至积分输出为0,则对基准电压积分的时间T正比于模拟输入电压Ui,输入电压大,则反向积分时间长。精度较高、速度较慢。用于数字式测量仪表中。,2020/11/21,69,A/D转换器的主要技术指标,量化间隔,绝对量化误差,相对量化误差,例如,当满量程电压为5V,采用10位A/D转换器的量化间隔:,绝对量化误差,相对量化误差,2020/11/21,70,ADC080
40、9,8位8通道逐次逼近式A/D转换器,采用CMOS工艺制造。,2020/11/21,71,ADC0809内部逻辑结构,2020/11/21,72,ADC0809通道选择表,ADC0809的引脚图,2020/11/21,73,单片机对A/D转换的控制一般分为三个过程: 单片机通过控制口发出启动转换信号,命令模数转换器开始转换。 单片机通过状态口读入A/D转换器的状态,判断它是否转换结束。 一旦转换结束,CPU发出数据输出允许信号,读入转换完成的数据。,转换数据的传送 1)定时传送方式(转换时间是已知的和固定的) 2)查询方式 (EOC) 3)中断方式 (EOC作为中断请求信号),2020/11/
41、21,74,图7-26 ADC0809与80C51中断方式连接图,74LS90,最大640KHz,2020/11/21,75,例:采用延时等待A/D转换结束方式,如上一张幻灯片中接口图,分别对8路模拟信号轮流采样一次,并依次把结果存入数据存储器。 ORG0000H SJMPMAIN ORG0030H MAIN:MOV R1,#20H MOVDPTR,#7FF8H;指向通道0地址 MOVR7,#08H;共需转换8个通道,2020/11/21,76,LOOP:MOVX DPTR,A;启动A/D转换 LCALL D128s;延时等待A/D转换结束 MOVX A,DPTR;读入A/D转换值,并存入内存
42、 MOVR1,A INCDPTR;指向下一通道地址 INCR1 DJNZR7,LOOP ;8个通道未转换完,则继续。 ,2020/11/21,77,例:ADC0809与80C51中断方式连接图接口电路如图726所示。将ADC0809作为外扩的并行I/O口,由P2.7和脉冲同时有效来启动A/D转换,通道选择端A、B、C分别与地址线A0、A1、A2相连。其端口地址为7FF8H7FFFH。A/D转换结束信号EOC经反相后接80C51的外部中断引脚。 例:采集8路模拟量,并存入20H地址开始的内部RAM中。ORG 0000H SJMPMAIN ORG 0013H ;外部中断1入口地址 LJMP INT
43、DATA,2020/11/21,78,ORG 0100H ;数据采集子程序 SAMP:MOV R0,20H ;数据缓冲区首址 MOV R2,8 ;8通道计数器 MOV DPTR,7FF8H ;指向0通道 START:CLR F0 ;清中断发生标志 MOVX DPTR,A ;启动A/D (P2.7=0,) SETB IT1 ;置外部中断0为边沿触发 SETB EX1 ;允许外部中断0 SETB EA ;开中断 LOOP:JNB F0,LOOP ;判中断发生标志是否为0 DJNZ R2,START ;8个通道转换是否结束 RET,2020/11/21,79,INTDATA:MOVX A,DPTR
44、;读数据 ,硬件撤销中断 MOV R0,A ;存数据 INC R0 INC DPTR ;指向下一通道 SETB F0 ;置中断发生标志 RETI,2020/11/21,80,设有一个8路模拟量输入的巡迥检测系统,使用中断方式采样数据,并依次存放在外部RAM的A0HA7H单元中。采集完一遍以后即停止采集。其数据采样的初始化程序和中断服务程序如下:,初始化程序: MOV R0,A0H ;设立数据存储区指针 MOV R2,08H ;8路计数值 SETB IT1 ;边沿触发方式 SETB EA ;CPU开中断 SETB EX1 ;允许外部中断1中断 MOV DPTR,0FEF0H ;送入口地址并指向I
45、N0 LOOP:MOVX DPTR,A ;启动A/D转换 HERE:SJMP HERE ;等待中断,2020/11/21,81,中断服务程序: MOVX A,DPTR ;采样数据 MOVX R0,A ;存数 INC DPTR ;指向下一个模拟通道 INC R0 ;指向下一存储单元 DJNZ R2,INT1 ;8路未转换完则继续 CLR EA ;已转换完则关中断 CLR EX1 ;禁止外部中断1中断 RETI ;从中断返回 INT1:MOVX DPTR,A ;再次启动A/D转换 RETI ;从中断返回,2020/11/21,82,D/A转换器接口的扩展及应用,1 D/A转换器及其接口电路的一般特
46、点 数模转换器是一种将数字信号转换成模拟信号的器件,为计算机系统的数字信号和模拟环境的连续信号之间提供了一种接口。 数模转换器的输出是由数字输入和参考源Vref组合进行控制的。大多数常用的数模转换器的数字输入是二进制或BCD码形式的,输出可以是电流也可以是电压,而多数是电流。因而,在多数电路中,数模转换器的输出需要用运算放大器组成的电流一电压转换器将电流输出转换成电压输出。,2020/11/21,83,(1)分辨率 分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如位数为n,则分辨率为2-n。 (2)建立时间。 描述D/A转换速度快慢的一个参数,指从输入数字量变化到输出
47、达到终值误差1/2LSB(最低有效位)时,所需的时间。 (3)接口形式。 D/A转换器本身是否带数据锁存器。 内部无锁存器(输入端需增加锁存器) 内部带锁存器,几个与接口有关的技术性能指标,2020/11/21,84,T型电阻网络的DA转换器,2020/11/21,85,由T型电阻解码网络、模拟电子开关及求和放大器组成。 VOUTDINVREF VREF为基准电压,DIN为输入的数字量。 DINdn12n-1dn22n-2d121d020,T型电阻网络的DA转换器,2020/11/21,86,八位D/A转换器芯片DAC0832,DAC0832内部结构框图,2020/11/21,87,DAC08
48、32引脚图,0832运算放大器接法,2020/11/21,88,DAC0832的技术特性 输入数字量为 8位,逻辑电平与 TTL兼容,参考电压Vref的工作范围为1010 V,单电源电压Vcc的范围为5V15V, 电流建立时间为1s,CMOS工艺,低功耗20mW,20脚双列直插式封装,具有单缓冲、双缓冲和直通三种数据输入工作方式。,2020/11/21,89,DAC0832的扩展与应用,DAC0832的单缓冲方式的接口电路,2020/11/21,90,产生锯齿波的程序清单如下: ORG0000H SJMPMAIN ORG0030H MAIN:MOV DPTR,#7FFFH;单缓冲 MOV R0
49、, #0;转换初值 LP:MOVA, R0 MOVX DPTR, A ;送出模拟量 INC R0 SJMP LP 几点说明: (1) 锯齿波的上升沿是由256个小阶梯构成的。 (2)可计算出锯齿波的周期,并可改变波形周期。 (3) 可得到正向的锯齿波,也可得到负向的锯齿波。 (4)程序中A的变化范围为0255,所得到的锯齿波为满幅度。,2020/11/21,91,DAC0832双缓冲方式的接口电路,DAC0832的双缓冲方式的接口电路和应用,2020/11/21,92,用口线P2.5控制第一片DAC0832的输入锁存器,地址为DFFFH;用口线P2.6控制第二片DAC0832的输入锁存器,地址
50、为BFFFH;用口线P2.7同时控制二片DAC0832的第二级缓冲,地址为7FFFH。 若第一片的数据在R0中,第二片的数据在R1中,送数程序为: MOVDPTR,#0DFFFH ;送第一片0832的输入锁存器 MOVA,R0 MOVX DPTR,A MOVDPTR,#0BFFFH ;送第二片0832的输入锁存器 MOVA,R1 MOVX DPTR,A MOV DPTR,#7FFFH ;两片0832同时输出模拟量MOVX DPTR,A ;A值并不重要,2020/11/21,93,MOV A,00H ;取下限值 MOV DPTR,FEFFH ;指向0832口地址 SS1:MOVX DPTR,A
51、;输出 NOP ;延时 NOP SS2:INC A ;转换值增量 JNZ SS1 ;未到峰值则继续 SS3:DEC A ;已到峰值则取后沿 MOVX DPTR,A ;输出 NOP ;延时 NOP JNZ SS3 ;未到谷值则继续 SJMP SS2 ;已到谷值则反复,利用DAC0832产生三角波的参考程序如下:,2020/11/21,94,几点说明: (1)本程序所产生的三角波谷值为0,峰值为5V(或5V)。若改变下限值和上限值,那么三角波的谷值和峰值也随之改变。 (2)改变延时时间可改变三角波的斜率。 (3)若在谷值和峰值处延时较长时间的话,则输出梯形波,延时时间的长短,取决于梯形波上下边的宽
52、度。,2020/11/21,95,键盘接口,在过程控制和智能化仪表中,通常是用单片机进行实时控制和数据处理的,为实现人机对话,键盘是个必不可少的功能配置。利用按键可以实现向单片机输入数据、传送命令、功能切换等,是人工干预单片机系统的主要手段。,2020/11/21,96,独立式按键接口电路,2020/11/21,97,按结构形式,键盘分为编码式键盘和非编码式键盘。 编码式键盘是由其内部硬件逻辑电路自动产生被按键的编码。这种键盘使用方便但价格较贵。 单片机系统中普遍使用非编码式键盘。这类键盘应主要解决以下几个问题: (1)键的识别; (2)如何消除键的抖动; (3)键的保护。,2020/11/2
53、1,98,常用的是采用矩阵式键盘,如图所示,若有四根行线,四根列线,则构成44键盘,最多可定义16个按键。,非编码式键盘,识别闭合键方法: 行扫描法 线反转法,2020/11/21,99,行扫描法,2020/11/21,100,2020/11/21,101,线反转法,比行扫描法速度要快 要求行线与列线均需有上拉电阻 两步实现,2020/11/21,102,消除键的抖动,双稳态消抖 滤波消抖 软件消抖,2020/11/21,103,程控扫描方式:CPU的控制一旦进入监控程序,将反复不断地扫描键盘,等待输入命令或数据。 定时扫描方式:在初始化程序中对定时器/计数器进行编程 ,使之产生10ms的定时
54、中断,CPU响应定时中断,执行中断服务程序,对键盘扫描一遍,检查键盘的状态,实现对键盘的定时扫描。 中断扫描方式:当键位上有键压下时,由硬件电路产生中断请求,CPU响应中断,执行中断服务程序,判断压下的键的键号,根据键的定义(数字键或功能键)作相应的处理。,键扫描的方式,2020/11/21,104,8051的I/O口具有输出锁存和输入缓冲的功能,因而用它们组成键盘电路时,可以省掉输出锁存器和输入缓冲器。,键盘的接口电路,8051与44键盘的接口电路(行扫描法),2020/11/21,105,如果不外扩程序存储器的话,则可以利用P0P2口中的任意两个口构成多达88的键盘,其中1个作为输出口,1
55、个作为输入口,既可以采用行扫描法,也可以采用线反转法。,如果口线已被占用的话,可以通过外扩I/O接口芯片来构成键盘接口电路,较常用的是8155、8255A等接口芯片。,2020/11/21,106,采用8255的键盘接口电路,2020/11/21,107,2020/11/21,108,84键盘键值计算法,2020/11/21,109,KEY1:LCALL KS1 ;检查有闭合键否? JNZ LK1 ;A非0有键闭合则转 LJMP LK8 ;无键闭合转返回 LK1:LCALL DIR ;有键闭合则延时 LCALL DIR ;消抖 LCALL KS1 ;再次检查有键闭合否? JNZ LK2 ;有键
56、闭合则转 LJMP LK8 ;无键闭合转返回,键盘扫描程序,行扫描法识别闭合键,2020/11/21,110,LK2:MOV R3,00H ;行号初值送R3 MOV R2,FEH ;行扫描初值送R2 LK3:MOV DPTR,0101H ;指向8255口A MOV A,R2 ;行扫描值送A MOVX DPTR,A ;扫描1行 INC DPTR INC DPTR ;指向8155口C MOVX A,DPTR ;读入列值 ANL A,0FH ;保留低4位 MOV R4,A ;暂存列值 CJNE A,0FH,LK4 ;列值非全”1”则转 MOV A,R2 ;行扫描值送A JNB A.7,LK8 ;已扫到最后1行则转 RL A ;未扫完则移至下1行 MOV R2,A ;行值存入R2中 INC R3 ;行号加1 SJMP LK3 ;转至扫描下1行,2020/11/21,111,LK4:MOV A,R3 ;行号送入A ADD A,R3 ;行号2 MOV R5,A ;暂存 ADD A,R5 ;行号4 MOV R5,A ;存入R5中 MOV A,R4 ;列值送入A LK5:RRC A ;右移1位 JNC LK6 ;该位为0则转 IN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公寓预转让协议书范本
- 顾客投诉处理协议的法律分析
- 利润分润协议合同范本
- 公寓多套出租合同范本
- 北京检测试验合同范本
- 南川冷藏配送合同范本
- 农村谷酒销售合同范本
- 会员位合作协议书范本
- 关于承包土地的协议书
- 卤菜培训协议合同范本
- 消防管网渗漏水点排查施工方案
- 2025年福建省事业单位招聘考试教师招聘体育学科专业知识试卷(体育教学)试题
- 核电站保安考试题及答案
- 2025年绍兴鉴湖酿酒有限公司招聘7人考试模拟试题及答案解析
- 2025内蒙古国贸集团招聘11人考试参考题库及答案解析
- 民航救生衣演示知识培训课件
- 2025-2026学年第一勾股定理、第二章实数检测试卷北师大版八年级数学上册
- 2025内初班语文试卷及答案
- 2025年甘肃省酒泉市瓜州县招聘村副职干部30人考试参考试题及答案解析
- 2025年驾照三力测试试题题库及答案
- 农村厨房翻建申请书
评论
0/150
提交评论