版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目奖励颁奖
- 医美行业报告:轻医美VS重整形
- 《应用数值分析》课件数值分析3最佳逼近和最小二乘法
- 外研版八年级英语下册Module9 Unit3 Language in use课件
- 纳米技术应用
- 任务流程智能化
- 企业清明节安全培训
- 2024年度餐饮店保险服务合同
- 2024年租赁公司车库合同
- 子宫切除术后伤口护理
- 住院患者静脉血栓栓塞症预防护理与管理专家共识解读
- 数据生命周期管理dam白皮书
- 作文的谋篇布局课件
- 马丁路德的宗教改革 完整版课件
- 北斗卫星导航系统(全套课件208P)
- 公路养护安全意识培训课件PPT76
- 2021年上海市初三英语二模试卷汇总附答案版
- 《大个子老鼠小个子猫1》班级读书会课件
- 胸痛中心培训课件
- 社会团体发起人基本情况表+发起单位基本情况表
- 提高现浇预埋PVC止水节施工质量QC成果报告
评论
0/150
提交评论