第4章1节并行接口扩展技术_第1页
第4章1节并行接口扩展技术_第2页
第4章1节并行接口扩展技术_第3页
第4章1节并行接口扩展技术_第4页
第4章1节并行接口扩展技术_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章并行器件扩展技术

4.1并行I/O口的扩展技术D414.2显示器接口技术D424.3键盘接口技术D434.4模拟量接口技术D44(一般不需要扩展并行的存储器了)4.1并行I/O口的扩展技术4.1.1举例4.1.2总线与译码4.1.3简单I/O口扩展举例4.1.4可编程I/O口的扩展举例

4.1.1举例D41_1.C

#include<reg51.h>#include<absacc.h>#definePAXBYTE[0x7cff]#definePBXBYTE[0x7dff]#definePKXBYTE[0x7fff]voidmain(){PK=0x90;while(1){PB=PA;}}4.1.2总线与译码1、51单片机的总线芯片一般的外部引脚:并行存储器一般不需要扩展了。D7-D0:数据线,和单片机数据总线相连;A?-A0:地址线(不同的芯片,地址线的数量不一样)/RD:读允许/WR:写允许/CS:片选I/O:和外部设备相连的信号线,不同的芯片有不同的I/O线。扩展时:数据线------单片机的数据总线;读、写允许---CPU的读、写控制;I/O线---外部设备;A?-A0、片选---单片机的地址总线(系统扩展的寻址)2、译码—系统扩展的寻址确定地址—--寻址

系统扩展的寻址是指,当单片机扩展了存储器、I/O口等外围接口芯片之后,如何确定存储器的地址空间范围和I/O口的端口地址。

◎地址是由地址线确定的。◎低位地址线、剩余的高位地址线。低位地址线参加片内译码,剩余的高位地址线参加片间译码。线译码、译码器译码(1)线译码所谓线译码是低位地址线用作I/O接口芯片的片内译码,剩余的高位地址线直接作为I/O接口芯片的片选,即一线选中。地址范围:(X为不用的地址线,设定为1)(2)译码器译码所谓译码器译码是低位地址线用作I/O接口芯片的片内译码,剩余的高位地址线接译码器的输入,译码器的输出接片选信号。3、地址的使用(绝对地址的访问)

包括片内RAM、片外RAM及I/O的访问。C51语言提供了两种比较常用的访问绝对地址的方法。(1)绝对宏用#include<absacc.h>即可使用其中声明的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD,具体使用方法参考absacc.h头文件。其中:CBYTE以字节形式对code区寻址;CWORD以字形式对code区寻址;DBYTE以字节形式对data区寻址;DWORD以字形式对data区寻址;XBYTE以字节形式对xdata区寻址;XWORD以字形式对xdata区寻址;PBYTE以字节形式对pdata区寻址;PWORD以字形式对pdata区寻址。【例】

片内RAM、片外RAM及I/O的定义示例#include<absacc.h>

#definePAXBYTE[0xffec]

//将PA定义为外部I/O口,地址为0xffec#defineNRAMDBYTE[0x40]/*将NRAM定义为片内RAM,地址为40H,长度为8位*/voidmain(){ PA=0x3A;//将数据3AH写入地址为0xffec的外部I/O端口 NRAM=0x01; //将数据01H写入片内RAM40H单元}(2)_at_存储类型】数据类型变量名_at_地址号;如:dataunsignedcharx1_at_0x40;xdataunsignedintx2_at_0x2000;voidmain(){x1=0xff;x2=0x1234;}举例:将片外RAM6000开始的连续10个字节内容清零xdataunsignedcharbuffer[10]_at_0x6000;voidmain(){unsignedcharindex;

for(index=0;index<10;index++){buffer[index]=0;}}4.1.3简单I/O口扩展举例例D41_2利用锁存器扩展输出口U3、U4的口地址分别为0BFFFH、7FFFH,下面给出将变量i1、i2内容通过锁存器输出程序#include<reg51.h>#include<absacc.h>#defineU3XBYTE[0xBFFF]#defineU4XBYTE[0x7FFF]voidmain(){unsignedi1,i2;.........U3=i1;U4=i2;.......}74LS273资料:8位锁存器(D触发器)如果在273的时钟有效时将单片机I/O引脚上的数据写入其中,则无论单片机I/O引脚上的数据如何变化,在下一个时钟在之前,这个数据会被“锁定”。D7-D0:输入;Q7-Q0:输出;CLK:时钟,在时钟的上升沿将输入引脚的数据送到输出端口;MR:清除,地电平有效例D41_3使用三态门扩展输入口U3、U4的口地址分别为0BFFFH、7FFFH,参考例D41_2可以给出将两个输入口的内容读入变量i1、i2。i1=U3;i2=U4;74LS244资料:8位三态门当控制信号有效时,其输入和输出连接在一起,否则它可以看成输出引脚从连接到一起的其他电路上断开。A0-A3:输入Y0-Y3:输出/OE:控制引脚,高电平时,高阻。(一个芯片中有两组)例41_4(将开关的状态在L上显示出来)#include<reg51.h>#include<absacc.h>#defineU3XBYTE[0x7FFF]#defineU4XBYTE[0x7FFF]voidmain(){while(1){U4=U3;}}4.1.4可编程I/O口的扩展举例例D41_1#include<reg51.h>#include<absacc.h>#definePAXBYTE[0x7cff]#definePBXBYTE[0x7dff]#definePKXBYTE[0x7fff]voidmain(){PK=0x90;while(1){PB=PA;}}8255A资料:(8255A是一种通用的可编程并行I/O接口芯片)具有3个8位并行端口:

PA口、PB口、PC口3个端口分2组控制:

A组控制A口和C口的上半部;

B组控制B口和C口的下半部。3种可编程工作方式:方式0:基本输入/输出方式方式1:选通输入/输出方式方式2:双向总线方式(A口具有)外部引脚:片选:/CS读信号:/WR写信号:/RD端口选择:A1A0A1A000-----PA口

01-----PB口

10-----PC口

11-----控制寄存器端口8255有4个口地址:

PA口、PB口、PC口、控制口

8255A的控制字:方式控制字如设置8255A工作于方式0,且PA口为输出、PB口为输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论