地址锁存及IO扩展

上传人:新** 文档编号:590858961 上传时间:2024-09-15 格式:PPT 页数:33 大小:1.60MB
返回 下载 相关 举报
地址锁存及IO扩展_第1页
第1页 / 共33页
地址锁存及IO扩展_第2页
第2页 / 共33页
地址锁存及IO扩展_第3页
第3页 / 共33页
地址锁存及IO扩展_第4页
第4页 / 共33页
地址锁存及IO扩展_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

1、单片机地址锁存及单片机地址锁存及IO扩展扩展/端口端口P0P3(80H,90H,A0H,B0H)P0P3为为4个个8位特殊功能寄存器,分别是位特殊功能寄存器,分别是4个并个并行行/端口的锁存器。它们都有字节地址,端口的锁存器。它们都有字节地址,端口端口的每一位可以进行位操作,的每一位可以进行位操作,每一条每一条/线均可线均可独独立用作输入或输出立用作输入或输出。用作输出时,可以用作输出时,可以锁存锁存数据;用作输入时,数据数据;用作输入时,数据可以可以缓冲缓冲。在单片机接口扩展系统中各端口功能在单片机接口扩展系统中各端口功能无论有无片外存储器扩展,无论有无片外存储器扩展,P1端口端口均可用作均

2、可用作通用通用I/O端口端口使用。使用。在单片机接口扩展系统中,在单片机接口扩展系统中,P0口用作输出口用作输出地址地址/数据总线数据总线,此时,此时,P0无法再作无法再作I/O口使用了。口使用了。在单片机接口扩展系统中,在单片机接口扩展系统中, P2口只输出口只输出高高8位地址位地址。P3口可以用作口可以用作第二功能第二功能使用使用地址总线宽度为地址总线宽度为16位,可寻址范围位,可寻址范围64K字节。字节。地址锁存器锁存器在地址扩展中的作用就是锁存地址,地址锁存器74373是带三态缓冲输出的8D锁存器.锁存器锁存原理 ALE作为低8位地址锁存选通信号,当为高电平时,复用数据总线上为地址数据

3、。地址锁存器(74373)74373内部逻辑芯片介绍芯片介绍SRAM 62646264是是8K*8的的静态静态随机存储器。随机存储器。 A0-A12为片内为片内13位地址线,位地址线,I/O0-I/O7为为双向三双向三态态数据线,数据线,/CE为片选信号为片选信号,/OE为读允许信号,为读允许信号,/WE为写信号。为写信号。硬件接口电路设计#include xdata unsigned char *port;xdata unsigned char Buffer256 _at_ 0x6000;main() unsigned char tmp=0x55; unsigned char j; port

4、 = &Buffer; while(1) for(j=0;j256;j+) tmp+; *port+ = tmp; 向连续存储空间写入数据的向连续存储空间写入数据的C51程序程序简单并行输出接口的扩展简单并行输出接口的扩展 在单片机的并行接口扩展中,常采用TTL、CMOS锁存器、缓冲器构成简单的扩展接口。其中,在输出接口的扩展中经常选用具备锁存功能的芯片实现,一般有:74273,74373,74573、74574等。在本节以74273为例,介绍输出接口的扩展实现。74273引脚和功能原理引脚和功能原理D0D7为数据输入引脚,为数据输入引脚,Q0Q7为数据输出引脚,为数据输出引脚,CP为时钟为时

5、钟脉冲输入端,脉冲输入端,/MR为清零端。从内部逻辑图看出,为清零端。从内部逻辑图看出,74273为内部为内部集成集成八路八路D触发器的锁存器触发器的锁存器,芯片的,芯片的CP引脚与八路引脚与八路D触发器的触发器的时钟控制端相连,完成数据锁存的控制。时钟控制端相连,完成数据锁存的控制。简单并行输出接口的扩展简单并行输出接口的扩展访问外设端口的软件设置访问外设端口的软件设置单片机系统外扩的接口芯片或外扩片外数据存储器统一单片机系统外扩的接口芯片或外扩片外数据存储器统一编址,占用外部数据存储器编址,占用外部数据存储器0000-FFFFH空间,因此,空间,因此,片外扩展片外扩展I/O口的硬件译码地址

6、,看作片外数据存储单元口的硬件译码地址,看作片外数据存储单元访问。访问。#include #define 变量名变量名 XBYTE地址常数地址常数举例举例对片外的对片外的1000H单元进行数据的写操作,单元进行数据的写操作,设计方法如下设计方法如下#include #include #define port XBYTE 0x1000; void main(void) int temp; While(1) temp = port; 注意: 程序中,程序中,#define用于定义将外部用于定义将外部1000H端口命名为端口命名为port,定义端口寄存器的长度为,定义端口寄存器的长度为8位。通过上述

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

8、为:源程序为:#include #include #define port XBYTE 0x7FFFunsigned char table= 0x3f,0x06,0x5b,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设计应用

9、举例设计应用举例 应用应用74273、74244芯片实现简单的并行接口的扩芯片实现简单的并行接口的扩展。电路实现的功能:按键的状态通过展。电路实现的功能:按键的状态通过74244芯片缓芯片缓冲读入,通过冲读入,通过74273锁存输出,在八个锁存输出,在八个LED发光二极发光二极管上显示。管上显示。程序设计程序设计#include #define port_273 XBYTE 0xFEFF / 定义访问的外部端口变量#define port_244 XBYTE 0xFDFF / 定义访问的外部端口变量void delay(void) unsigned int i; for(i=0;i40000;

10、i+); void main() unsigned int tmp; While(1) tmp = port_244 ; /从74244端口读取数据 delay( ) ; port_273 = tmp; /将读取的数据通过74273锁存输出, / 通过硬件电路在发光二极管上显示 分析与讨论:如果将74273和74244的功能交换,即用273作输入口扩展,244作输出口扩展,是否可行?答案是否定的。答案是否定的。由于由于P0口分时输出数据口分时输出数据/地址信息,因此,作为输出端口要求具有地址信息,因此,作为输出端口要求具有锁存功能,当芯片选通时,锁存输出数据,当芯片选通结束,数锁存功能,当芯片

11、选通时,锁存输出数据,当芯片选通结束,数据依然能够保持在输出端口。据依然能够保持在输出端口。在作为输入端口使用时,由于单片机的总线端口常常要对多个外在作为输入端口使用时,由于单片机的总线端口常常要对多个外设端口进行分时访问,因此,要求作为输入与总线相连的接口芯设端口进行分时访问,因此,要求作为输入与总线相连的接口芯片具有缓冲功能。即当总线访问该接口芯片时,选片信号有效,片具有缓冲功能。即当总线访问该接口芯片时,选片信号有效,该芯片的缓冲器三态门打开,数据输入总线。当该芯片不被选中该芯片的缓冲器三态门打开,数据输入总线。当该芯片不被选中时,芯片三态门处与高阻态,此时,芯片的输出被断开,对总线时,

12、芯片三态门处与高阻态,此时,芯片的输出被断开,对总线不起作用,总线此时可以被其他器件占用。不起作用,总线此时可以被其他器件占用。数据线数据线D0D7:接于接于P0接口接口连接连接I/O设备信号线:设备信号线: PA、PB、PC共共24条端线。条端线。A1 A0 端口选择:端口选择: 00A口口 01B口口 10C口口 11 控制口控制口/CS:片选信号。低电平有效:片选信号。低电平有效/RD,/WR:芯片读出,写入信号;:芯片读出,写入信号; 低电平有效。低电平有效。RESET:复位端。为:复位端。为1时,清除内部寄存器内时,清除内部寄存器内容,容,3个数据口为输入方式。个数据口为输入方式。可

13、编程并行接口芯片8255A 8255A的三种工作方式的三种工作方式方式方式可用端可用端口口用途用途方式方式0A口口B口口C口口基本输入输出方式。基本输入输出方式。A口、口、B口、口、C口都可以设定为输入或输出。口都可以设定为输入或输出。作为输入口时,数据不锁存。作为输出口时,输出数据被锁存。作为输入口时,数据不锁存。作为输出口时,输出数据被锁存。A、B口口8位数据口;位数据口;C口既可作口既可作8位数据口,也可作为两个位数据口,也可作为两个4位数据口。位数据口。方式方式1A口口B口口选通输入输出方式。选通输入输出方式。A、B、C三个口分为两组:三个口分为两组:A组包括组包括A口和口和C口的高口

14、的高4位,位,A口可由编程设定为输入或输出,口可由编程设定为输入或输出,C口的高口的高4位作为输位作为输入入/输出操作的控制信号;输出操作的控制信号;B组包括组包括B口和口和C口的低口的低4位,位,B口可由编口可由编程设定为输入或输出,程设定为输入或输出,C口的低口的低4位作为输入位作为输入/输出操作的控制信号。输出操作的控制信号。方式方式2A口口双向传输双向传输设置设置A、B、C端口的工作模式端口的工作模式 8255A8255A与单片机的接口电路设计实例与单片机的接口电路设计实例 采用8255A实现输入和输出扩展功能的电路原理图,要求实现外接发光二极管由拨动开关相应位的状态进行控制的功能。硬

15、件电路分析电路中单片机的电路中单片机的/RD/RD、/WR/WR信号分别与信号分别与82558255的读写信号相连,的读写信号相连,RESETRESET通过电阻接低电平。通过电阻接低电平。82558255的的/CS/CS信号与单片机的信号与单片机的P2.7P2.7引脚相连引脚相连7437374373为地址锁存器,单片机的为地址锁存器,单片机的A0A0、A1A1经过所存与经过所存与82558255的的A0A0、A1A1脚脚连接,根据硬件电路连接,则在连接,根据硬件电路连接,则在82558255内部的四个寄存器的访问地内部的四个寄存器的访问地址分别为:址分别为: A A口:口:7FFC B7FFC

16、 B口:口:7FFD C7FFD C口:口:7FFE D7FFE D口:口:7FFF7FFF在地址译码时,不被使用的地址线设置访问地址时默认为高电平。在地址译码时,不被使用的地址线设置访问地址时默认为高电平。编写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备13022795号 | 川公网安备 51140202000112号