《片机的并行扩展》PPT课件.ppt

上传人:za****8 文档编号:16146376 上传时间:2020-09-20 格式:PPT 页数:62 大小:3.01MB
返回 下载 相关 举报
《片机的并行扩展》PPT课件.ppt_第1页
第1页 / 共62页
《片机的并行扩展》PPT课件.ppt_第2页
第2页 / 共62页
《片机的并行扩展》PPT课件.ppt_第3页
第3页 / 共62页
点击查看更多>>
资源描述
5-2 程序存储器的扩展,5-3 数据存储器的扩展,5-4 简单IO口的扩展,第5章 单片机的并行扩展,5-5 扩展可编程IO口8255A,5-6 小结,5-1 并行三总线的产生,5-1 并行三总线的产生,外扩展是构建单片机系统的重要内容, 有两类外扩展: 存储器扩展和I/O扩展; 有两种外扩展方法: 并行扩展和串行扩展。,单片机芯片内具有CPU、ROM、RAM、定时器/ 计数器及I / O口。但在实际应用中、大多数情况 下仅靠片内资源是不够的。 资源性扩展: 包括存储器扩展和IO扩展。 如何扩展? 扩展功能如何实现? 扩展部件如何连接?,5-1-1 片外三总线结构,图1 单片机并行扩展系统结构图,图2、89C51扩展的三总线结构,1.地址总线:,地址总线(Address Bus,AB用于传送 单片机送出的地址信号, 以便进行存储器单元和I/O端口的选择。 地址总线是单向的,只能由单片机向外发送信息。 地址总线的数目决定了可直接访问的存储单元的数目。,2.数据总线:,数据总线(Data Bus,DB)用于单片机与存储器或I/O端口之间 的数据传送。一般数据总线的位数与CPU的字长一致,MCS-51 单片机的数据总线是8位的。数据总线是双向的,可以进行两个 方向的数据传送。,3.控制总线:,控制总线(Control Bus,CB)是单片机发出的以控制片外ROM、RAM和I/O口读/写操作的一组控制线。,5-1-2 系统扩展的实现,1. 以P0口作低8位地址及8位数据的复用总线,复用,即一段时间内作两种或两种以上用途。,在这里指P0口在每个CPU的机器周期的前半个周期输出低8位 地址,由地址锁存器锁存,然后由地址锁存器代替P0口输出低8 位地址。后半个机器周期进行8位数据的输入输出。,2. 以P2口作为高8位的地址总线,P0口的低8位地址加上P2的高8位地址就可以形成16位的 地址总线,达到64KB的寻址能力。,但实际应用中,往往不需要扩展那么多地址,扩展多少 用多少根线,P2口高位剩余的口线仍可作一般I/O口来使用。,3. 控制信号线,ALE:地址锁存信号,用以实现对低8位地址的锁存。,PSEN:片外程序存储器读选通信号。,EA:程序存储器选择信号。为低电平时,访问外部程序存储器; 为高电平时,访问内外程序存储器(CPU复位先访问内部0号地 址单元,然后根据PC指针的值访问内或外部程序存储器)。,WR:片外数据存储器写选通信号。,RD:片外数据存储器读选通信号。,5-2 程序存储器的扩展,1. 存储器与微型机三总线的连接,(1) 存储器数据线D0n连接CPU数据总线DB0n (2) 存储器地址线A0N连接CPU地址总线低位AB0N。 (3) 存储器片选线CS连接CPU地址总线高位ABN+1。(4) 存储器读写线OE、WE(R/ W) 连接CPU读写控制线RD、WR。,5-2-1 存储器的连接,图3、微机与存储器连接,2. 存储器与单片机的连接,单片机采用复用总线结构: 数据与地址分时共用一组 总线。当地址出现时需要 锁存器锁存地址。,图4、单片机与存储器连接,图5、单片机访问存储器时序,地址锁存器:74LS373、8282,74LS373和Intel的8282具有相同的锁存功能,图6、 74LS373、8282的引脚,5-2-2 扩展存储器概念,1. 地址线的译码,1)线选法,直接以系统的地址线作为存储器芯片的片选信号,为此只需 把用到的地址线与存储器芯片的片选端直接相连即可。,2)译码法,使用地址译码器对系统的片外地址进行译码,以其译码输 出作为存储器芯片的片选信号。 译码法又分为完全译码和部分译码两种。,2. 扩展存储器所需芯片数目的确定,若所选存储器芯片字长与单片机字长一致,则只需扩展容量。,芯片数目=系统扩展容量/存储器芯片容量,若所选存储器芯片字长与单片机字长不一致,则不仅需扩展 容量,还需字扩展。,芯片数目=系统扩展容量/存储器芯片容量 系统字长/存储器芯片字长,5-2-4 存储器扩展的编址技术,所谓存储器编址,就是使用系统提供的地址线,通过适当的连接,最终达到一个编址唯一地对应存储器中一个存储单元的目的。,1.存储器编址分两个层次,(1) 存储芯片的选择; (2) 芯片内部存储单元的选择。,2. 存储器映像,(1) 线选法,(2) 译码法:,对系统剩余的高位地址进行译码,以其译码输出作为片选信号。 高效率地利用存储空间,适用于大容量多芯片扩展。,常用的译码芯片有:74LS139(双2-4译码器)、 74LS138(3-8译码器)和74LS154(4-16译码器)等。,3. 74LS138(38译码器),3-8 地址译码器:74LS138的Y0、Y1、Y2分别连接三片存储器的片选端CE1、CE2、CE3各片存储器芯片分配地址: :0000H1FFFH; :2000H3FFFH; :4000H5FFFH。,ABi: 15141312 111098 7 6 5 4 3 2 1 015141312 11109 8 7 6 5 4 3 2 1 0 : 0000 0000 0000 0000 0001 1111 1111 1111 : 0010 0000 0000 0000 0011 1111 1111 1111 : 0100 0000 0000 0000 0101 1111 1111 1111,5-2-5 EEPROM的扩展,常用EPROM芯片:Intel 2716 (2KB=2K8位)、2732 (4KB)、 2764 (8KB)、27128(16KB)、 27256(32KB)、27512(64KB),EEPROM是电可擦除PROM,既可全片擦除也可字节擦除, 可在线擦除信息,又能失电保存信息,扩展程序存储器2716电路,5-2-6 8031单片机外接EEPROM,EEPROM 既能作为程序存储器又能作数据存储器。,片外存储器读信号= PSEN RD,5-3 数据存储器的扩展,数据存储器即随机存取存储器(RAM),用于存放可随时修改 的数据信息。单片机使用的主要是静态RAM。,MCS-51系列单片机片外数据存储器的空间可达64KB, 而片内数据存储器的空间只有128B或256B。,5-3-1 数据存储器芯片,1. 常用静态RAM芯片,常见的静态RAM芯片有6264(8K8位)、62256(32K8位)、 628128(128K8位)等。,2. 静态RAM(SRAM)芯片引脚功能,3. EEPROM芯片,常用的EEPROM有2816、2864A等,5-3-2 访问片外RAM的操作时序,1)读片外RAM操作时序,2) 写片外RAM操作时序,5-3-3 89C51扩展2KB RAM,5-3-4 多片存储器芯片的扩展,1) 线选法寻址,用线选法外扩3片6264,2)译码法寻址,用译码法扩展4片8K8位存储器芯片连线,5-4 简单I/O口的扩展,二、I/O接口的功能 1、速度协调: 锁存数据、传送联络信号。 2、数据格式转换: 并-串转换、A/D、D/A转换。 3、电平转换: 电平幅值或正/负逻辑转换。 4、输入三态缓冲隔离: 多个设备信号通过接口三态门隔离干扰信号。 5、输出锁存驱动:驱动多个逻辑部件或大功率执行部件。,一、 扩展I/O口原因: 1、单片机本身接口功能有限; 2、控制应用中的复杂接口要求:速度差异大、 设备种类繁多、数据信号形式多种多样。因此,I/O设备必须通过I/O接口电路与计算机连接。,5-4-1 I/O口的直接输入输出,1.有关I/O口基础知识,1) 接口与接口电路,“接口” (Interface),具有界面、相互联系等含义,通过接口能 使两个被连接的器件协同工作。单片机接口,则是研究单片机 与外部设备之间的连接问题。,单片机与外部设备之间接口界面的硬件电路称为接口电路,2) 口或端口,把接口电路中这些已编址并能进行读或(和) 写操作的寄存器称为端口或简称口(Port)。,3) I/O接口的特点, 异步性, 实时性, 与设备无关性,4) 并行接口与串行接口,按数据传输方式的不同,接口有并行与串行之分, 即并行接口与串行接口。,5)I/O口的编址方式,在MCS-51单片机系统中, I/O口地址采用统一编址方式。,所谓统一编址方式,就是把I/O接口中的寄存器与外扩展的 数据存储器中的存储单元同等对待,合在一起使用同一个 64 KB的外扩展地址空间。,一、I/O接口信号及编址技术,(1)数据信息: 微型机与外设交换的数据, 经接口数据缓冲器传送。 (2)状态信息: 反映外设工作状态的信号。 (3)控制信息: 设定I/O电路工作方式的信号。,数据总线传递三种信息,用不同I/O地址区别: 输入/输出数据缓冲器共用一个I/O地址:数据端口。 状态/控制寄存器共用一个I/O地址:控制/状态端口。,CPU与I/O之间接口信号:(每个I/O接口分配有对应的I/O地址),二、I/O编址方式:,需要编址的子系统:存储器和接口电路。 1、存储器地址方式:统一编址 I/O接口共用存储器的地址空间,每个I/O端口视为一个存储单元。 2、专用I/O地址方式:独立编址 有专用I/O控制信号和I/O指令。I/O接口独立编址,不占用存储器的地址空间。如的Z80。 MCS-51、96为存储器地址方式(统一编址)。 MCS-51单片机有片内I/O接口和扩展I/O接口。 片内I/O接口寄存器在SFR中,使用片内数据存储器空间,扩展I/O接口使用片外数据存储器地址空间: 输出指令:输入指令: 片内寻址:MOV P1,A MOV A,P1 片外寻址:MOVX DPTR,AMOVX A,DPTR MOVX R0,AMOVX A,R0,三、 I/O控制方式,(二)查询方式: (有条件传送方式) 先查询I/O设备当前状态, 若准备就绪,则交换数据, 否则循环查询状态。 1.硬件查询电路: 设置状态锁存和数据锁存电路。,(一)无条件传送(同步程序传送)方式: 已知I/O设备准备就绪,可直接进行数据传送。 适用:1、具有常驻的或变化缓慢的数据信号的设备。 如:指示灯、数码管等; 2、工作速度快,足以和单片机同步工作的设备。 如:DAC等。,2.软件查询程序:,INPUT:MOV DPTR,#SATUS ;状态口地址 WAIT:MOVX A,DPTR JBACC.6,WAIT MOV DPTR,#DATA ;数据口地址 MOVX A,DPTR,查询方式只适用: 单道作业、规模比较小的单片机系统。,先输入状态,决定是否进行数据传送。,(三)中断方式(程序中断方式): 大多数时间计算机与外设并行工作,计算机不必因等待而浪费资源。当外设准备就绪,向CPU发出中断请求信号。CPU暂停当前程序,执行I/O操作。当I/O操作结束,CPU仍继续被中断的工作。,(四)直接存储器访问方式: (DMADirect Memory Access) 用于计算机与高速外设进行大批量数据交换,由DMA控制器接管总线控制权,RAM与外设之间直接数据传输,不需CPU的介入。,四、 单片机并行接口,并行I/O接口: 用于微型机与外部设备之间并行传送数据。,五、 MCS-51的并行接口 4个8位双向并行I/O接口: P0.0 P0.7、P1.0 P1.7、P2.0 P2.7、P3.0P3.7。 均为多功能I/O接口,CPU按当前操作自动进行功能切换。,片内接口寄存器在SFR中的映象地址:1、I/O数据锁存器: P0、P1、P2、P3、SBUF。2、I/O控制/状态寄存器: IE、IP、TCON、TMOD 、SCON、PCON。,3.读-修改-写: 修改输出锁存器的内容。锁存器中的数据通过 上三态门进入内部总线,修改后再写入到锁存 器中。 读-修改-写指令:并行口为目的操作数的指令: 如:ANL P1,A,1.输出锁存:输出将使数据写入输出锁存器。 输出指令:MOVP1,A ;按字节操作 MOVP1.0,C ;按位操作 2.输入三态:输入从I/O引脚上输入信号,读信号打开,引脚 信号通过下三态门进入内部总线。为保证可靠 输入,先写入“1”。 MOVP1,#0FFH;使输出驱动器截止 MOVA,P1;输入 P0P3的复位状态均为FFH,自动处于输入状态。,(一)并行接口的三种操作:,(二)并行口的使用:,(三)接口负载能力: P0驱动8个TTL电路,P1,P2,P3可驱动4个TTL电路。,3. P2口:双向I/O接口或高8位地址总线AB815。 对读写片外存储器后,引脚仍恢复输出锁存器的内容。 可用于读写片外数据存储器: MOV P2,#20H MOV R0,#00 MOVX A,R0,4. P3口:双向并行接口和第二功能: 串行接口引脚:TXD、RXD 中断输入引脚:INT0、INT1 定时器输入引脚:T0、T1 读写控制线:RD、WR,1. P0口:并行双向接口或系统总线DB07/AB07。 P1、P2和P3为准双向口。,2.P1口:称为用户I/O接口。对片内EPROM编程时,用作 EPROM低8位地址信号线。,四、 应用举例:,1.无条件传送方式:(见P166) 指示灯立即反映开关状态。,ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV A,#0FFH MOV P1,A ;熄发光二极管 MOV A,P1 ;输入开关状态 SWAP A MOV P1,A ;开关状态输出 SJMP MAIN,例:用4个发光二极管对应显示4个开关的开合状态。 如P1.0合则P1.4亮,其余依此类推。,2.中断传送方式: (见P167),先设好开关状态,然后发出中断请求信号,改变指示灯亮灭状态。,ORG 0000H AJMP MAIN ORG 0003H AJMP IOINT ORG 0100H MAIN:SETB IT0 ;脉冲边沿触发 SETB EX0 ;外部中断0允许 SETB EA ;总中断允许 HERE:SJMP HERE ;等待中断 ORG 0500H IOINT:MOV A,#0FFH ;中断程序 MOV P1,A ;熄发光二极管 MOV A,P1 ;输入开关状态 SWAP A MOV P1,A ;开关状态输出 RETI ;中断返回,5-4-2 简单I/O口的扩展方法,1. I/O口扩展概述,1)单片机扩展方法,(1)总线扩展方法,(2)串行口扩展方法,2) I/O扩展常用芯片,(1)TTL/CMOS锁存器/缓冲器芯片: 如74LS377、74LS374、 74LS373、74LS273、74LS244、74LS245等;,(2)通用可编程I/O接口芯片: 如8255、8155、8729等;,(3)可编程阵列: 如GAL16V8、GAL20V8等。,2. 扩展简单并行接口,1) 扩展并行输出口,(1)用74LS377扩展并行输出口,(2)用74LS374扩展并行输出口,2) 扩展并行输入口,3)合并输入输出口,5-5扩展可编程I/O口8255A,5-5-1 8255A可编程外围并行接口的结构,1. 8255A的内部结构,(1)3个8位并行I/O 接口PA、PB和PC,(2)2组控制:A组: PA和PC47 B组:PB和PC03,2. 8255A的引脚功能,数据线(8条):D0D7,并行I/O总线(24条),地址线:CS:片选线; A1、A0:口选线,读写控制线:RD、WR,复位线:RESET,3. 8255A方式控制字和状态字,8255A有两个控制字:方式控制字和C口置位/复位控制字。,方式选择控制字,(2) C口置位/复位控制字,4. 8255A的3种工作方式,方式0(基本I/O方式),A口、B口、C口设置为方 式0:是基本输入/输出 方式。,PC口分成两部分:上半口 (PC4PC7)、下半口 (PC0PC3),两部分可 分别设置传送方向,方式1(选通I/O方式),方式1下A口、B口用于数据 输入/输出,C口作为数据传 送联络信号。,(1)方式1输入,(2)方式1输出,方式2(双向数据传送方式),工作方式2下外设在单一的8位总线上既能发送数据, 也能接收数据(双向总线I/O),其输入和输出都锁存。,方式2下的输入输出操作时序,(1)输入操作,选通信号将数据锁存到 8255A的输入锁存器中, 从而使输入缓冲器满, 信号IBFA成为高电平( 有效),通知外设A口 已收到数据,(2)输出操作,CPU响应中断,当用输出指令向8255A的A端口中写入一个数据时,会发出写脉冲信号WR,5-5-2 8255A应用实例,89C51单片机8255A能够简单地连接而不需其他电路,【例5-1】按照图5-31对8255A初始化编程。要求:,(1)A、B、C口均为基本I/O输出方式。,(2)A口与上C口为基本I/O输出方式,B口与下C口 为基本I/O输入方式。,(3)A口为应答I/O输入方式,B口为应答I/O输出方式。,解:(1)A、B、C口均为基本I/O输出方式。,define COM8255 XBYTE0 xE003 *定义 8255A控制寄存器地址* void init8255(void) COM8255=0 x80; /*工作方式选择字送入 8255A控制寄存器, 设置A、B、C口为基本I/O输出方式* ,(2)A口与上C口为基本I/O输出方式,B口与 下C口为基本IO输入方式。,define COM8255 0 xE003*定义8255A控制寄存器地址* void init8255(void) XBYTECOM8255=0 x83; *工作方式选择字送入8255A控制寄存器 ,A口与上C 口为基本I/O输出方式, B口与下C口为基本I/O输入方式* ,(3)A口为应答I/O输入方式,B口为应答I/O输出方式。,uchar xdata COM8255 _at_ 0 xE003; *定义8255A控制寄存器地址* void init8255(void) COM8255=0 xb4; *工作方式选择字送入8255A控制寄存器, 设置A 口为应答I/O输入方式 (PAPC4PC7), B口为应答I/O输出方式(PBPC0PC3)* ,【例5-2】如图5-32所示8255A与89C51的连接图, 用8255A端口C的PC3引脚向外输出连续的正弦波 信号,频率为500Hz。程序运行仿真如图5-33所示。,分析:可用两种方法,即软件延时方式和 定时器1工作方式1中断实现延时。,(1)软件延时方式实现。将C口设置为基本I/O输出方式, 先从PC3引脚输出高电平,间隔1ms后向PC3输出低电平, 再间隔1ms后向PC3输出高电平,周而复始,则可实现从 PC3输出频率为500Hz正方波。,(2)定时器1工作方式1中断实现,可提高CPU的工作效率。 将C口设置为基本I/O输出方式,12MHz晶振,定时器初值 设为64536即可,每次中断PC3引脚翻转,周而复始,则可 实现从PC3输出频率为500Hz正方波的目的。,解:(1)软件延时方式程序如下。,#include #include / 绝对地址定义 bit bitFF;/*位计数器*/ #define PA8255 XBYTE0 xE000 /*定义8255A A口地址* #define PB8255 XBYTE0 xE001 /*定义8255A B口地址* #define PC8255 XBYTE0 xE002 /*定义8255A C口地址* #define COM8255 XBYTE0 xE003 /*定义8255A 控制寄存器地址* void init8255(void) /*初始化8255*/ COM8255=0 x80; void delay(unsigned char i) /*延时 ims函数,参考前面的程序* unsigned char j,k; for(k=0;ki;k+) for(j=0;j255;j+); ,void main(void) init8255(); while (1) COM8255=0 x07;/*PC3置1* delay(2); /*延时1ms* COM8255=0 x06; /PC3清0* delay(2); /*延时 lms* ,(2)定时器1作方式1中断实现,#include #include / 绝对地址定义 bit bitFF;/*位计数器*/ #define PA8255 XBYTE0 xE000 /*定义8255A A口地址* #define PB8255 XBYTE0 xE001 /*定义8255A B口地址* #define PC8255 XBYTE0 xE002 /*定义8255A C口地址* #define COM8255 XBYTE0 xE003 /*定义8255A 控制寄存器地址* void init8255(void) /*初始化8255*/ COM8255=0 x80;,void main(void) init8255();/*初始化8255* TMOD=0 x10;/*设置定时器 l为工作方式1* TH1=0 xFC;TL1=0 x18;/*定时器1每1000计数脉冲发生1次中断, 12MHzJI晶振,定时时间1000us* TCON=0 x40;/*内部脉冲计数* IE=0 x88; /*打开定时器中断* while(1);,void timerlint(void) interrupt 3 /定时器T1中断函数*/ EA=0;/*关总中断* TR1=0;/*停计数* TH1=0 xFC; TL1=0 x18;/*重置计数初值* TR1=1;/*启动计数* if(bitFF) COM8255=0 x07;/*PC3置1* else COM8255=0 x06;/*PC3清0* bitFF=bitFF;/ *位取反*/ EA=1;/*开总中断* ,1、单片机外部编址技术 2、IO口和存储器扩展的方法 3、程序存储器扩展 4、数据存储器扩展 5、IO扩展 6、并行接口芯片8255A,小 结,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!