地址锁存及IO扩展.ppt

上传人:本田雅阁 文档编号:2115537 上传时间:2019-02-17 格式:PPT 页数:33 大小:1.60MB
返回 下载 相关 举报
地址锁存及IO扩展.ppt_第1页
第1页 / 共33页
地址锁存及IO扩展.ppt_第2页
第2页 / 共33页
地址锁存及IO扩展.ppt_第3页
第3页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《地址锁存及IO扩展.ppt》由会员分享,可在线阅读,更多相关《地址锁存及IO扩展.ppt(33页珍藏版)》请在三一文库上搜索。

1、单片机地址锁存及IO扩展,/端口P0P3(80H,90H,A0H,B0H),P0P3为4个8位特殊功能寄存器,分别是4个并行/端口的锁存器。它们都有字节地址,端口的每一位可以进行位操作,每一条/线均可独立用作输入或输出。 用作输出时,可以锁存数据;用作输入时,数据可以缓冲。,在单片机接口扩展系统中各端口功能,无论有无片外存储器扩展,P1端口均可用作通用I/O端口使用。 在单片机接口扩展系统中,P0口用作输出地址/数据总线,此时,P0无法再作I/O口使用了。 在单片机接口扩展系统中, P2口只输出高8位地址。 P3口可以用作第二功能使用 地址总线宽度为16位,可寻址范围64K字节。,地址锁存器,

2、锁存器在地址扩展中的作用就是锁存地址,地址锁存器74373是带三态缓冲输出的8D锁存器. 锁存器锁存原理 ALE作为低8位地址锁存选通信号,当为高电平时,复用数据总线上为地址数据。,地址锁存器(74373),74373内部逻辑,芯片介绍SRAM 6264,6264是8K*8的静态随机存储器。 A0-A12为片内13位地址线,I/O0-I/O7为双向三态数据线,/CE为片选信号,/OE为读允许信号,/WE为写信号。,硬件接口电路设计,#include xdata unsigned char *port; xdata unsigned char Buffer256 _at_ 0x6000; mai

3、n() unsigned char tmp=0x55; unsigned char j; port = ,向连续存储空间写入数据的C51程序,简单并行输出接口的扩展,在单片机的并行接口扩展中,常采用TTL、CMOS锁存器、缓冲器构成简单的扩展接口。其中,在输出接口的扩展中经常选用具备锁存功能的芯片实现,一般有:74273,74373,74573、74574等。在本节以74273为例,介绍输出接口的扩展实现。,74273引脚和功能原理,D0D7为数据输入引脚,Q0Q7为数据输出引脚,CP为时钟脉冲输入端,/MR为清零端。从内部逻辑图看出,74273为内部集成八路D触发器的锁存器,芯片的CP引脚与

4、八路D触发器的时钟控制端相连,完成数据锁存的控制。,简单并行输出接口的扩展,访问外设端口的软件设置,单片机系统外扩的接口芯片或外扩片外数据存储器统一编址,占用外部数据存储器0000-FFFFH空间,因此,片外扩展I/O口的硬件译码地址,看作片外数据存储单元访问。 #include #define 变量名 XBYTE地址常数,举例对片外的1000H单元进行数据的写操作,设计方法如下,#include #include #define port XBYTE 0x1000; void main(void) int temp; While(1) temp = port; ,注意:,程序中,#defin

5、e用于定义将外部1000H端口命名为port,定义端口寄存器的长度为8位。通过上述定义,于是,在程序中出现的Port变量映射为外部寄存器地址单元,访问地址为1000H。程序设计中,对外部1000H地址的读操作就可以直接写作“temp = port”即可,其中,temp为设计的临时变量。,应用设计举例,应用74273扩展单片机的输出端口,设定74273的端口访问地址为7FFFH,控制在数码块上轮回显示从0F的16个字符。,C51源程序为: #include #include #define port XBYTE 0x7FFF unsigned char table= 0x3f,0x06,0x5b

6、,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;/设置数码块显示数据表 void delay(void) unsigned int i; for(i=0;i40000;i+); void main(void) unsigned int i; while(1) for(i=0;i10;i+) port=tablei; /从数码块显示字表读取数据,通过74273输出显示 delay(); ,74244设计应用举例,应用74273、74244芯片实现简单的并行接口的扩展。电路实现的功能:按键的状态通过74244芯片缓冲读入,通过74273锁存输出,在八个LED发光二极管上显

7、示。,程序设计,#include #define port_273 XBYTE 0xFEFF / 定义访问的外部端口变量 #define port_244 XBYTE 0xFDFF / 定义访问的外部端口变量 void delay(void) unsigned int i; for(i=0;i40000;i+); void main() unsigned int tmp; While(1) tmp = port_244 ; /从74244端口读取数据 delay( ) ; port_273 = tmp; /将读取的数据通过74273锁存输出, /通过硬件电路在发光二极管上显示 ,分析与讨论:如

8、果将74273和74244的功能交换,即用273作输入口扩展,244作输出口扩展,是否可行?,答案是否定的。 由于P0口分时输出数据/地址信息,因此,作为输出端口要求具有锁存功能,当芯片选通时,锁存输出数据,当芯片选通结束,数据依然能够保持在输出端口。 在作为输入端口使用时,由于单片机的总线端口常常要对多个外设端口进行分时访问,因此,要求作为输入与总线相连的接口芯片具有缓冲功能。即当总线访问该接口芯片时,选片信号有效,该芯片的缓冲器三态门打开,数据输入总线。当该芯片不被选中时,芯片三态门处与高阻态,此时,芯片的输出被断开,对总线不起作用,总线此时可以被其他器件占用。,数据线D0D7:接于P0接

9、口 连接I/O设备信号线: PA、PB、PC共24条端线。 A1 A0 端口选择: 00A口 01B口 10C口 11 控制口 /CS:片选信号。低电平有效 /RD,/WR:芯片读出,写入信号; 低电平有效。 RESET:复位端。为1时,清除内部寄存器内容,3个数据口为输入方式。,可编程并行接口芯片8255A,8255A的三种工作方式,设置A、B、C端口的工作模式,8255A与单片机的接口电路设计实例,采用8255A实现输入和输出扩展功能的电路原理图,要求实现外接发光二极管由拨动开关相应位的状态进行控制的功能。,硬件电路分析,电路中单片机的/RD、/WR信号分别与8255的读写信号相连,RES

10、ET通过电阻接低电平。 8255的/CS信号与单片机的P2.7引脚相连 74373为地址锁存器,单片机的A0、A1经过所存与8255的A0、A1脚连接,根据硬件电路连接,则在8255内部的四个寄存器的访问地址分别为: A口:7FFC B口:7FFD C口:7FFE D口:7FFF 在地址译码时,不被使用的地址线设置访问地址时默认为高电平。,编写C51程序如下,#include #include #define COM8255 XBYTE0x7FFF /根据硬件电路,设置命令控制寄存器 地址 #define PA8255 XBYTE0x7FFC /设置输入端口A的访问物理地址 #define PB8255 XBYTE0x7FFD /设置输出端口B的访问物理地址 unsigned char temp; void main(void) COM8255=0x83; /初始化8255内部寄存器,根据题目要求,将 B口设置为输入,A口设置为输出,A、B、C口均工作 的方式0下。 while(1) temp = PB8255; /读入B口数据 PA8255 = temp; /从A口输出 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1