1、第六章 MCS-51单片机总线系统与I/O口扩展,6.1单片机扩展总线概述6.1.1 片外总线扩展结构6.1.2 三总线扩展的方法6.1.3 AT89C系列单片机的片内存储容量6.2 MCS-51单片机I/O口扩展及编址技术6.2.1 单片机I/O口扩展6.2.2 89C51单片机总线扩展的编址技术6.3 MCS-51存储器扩展技术6.3.1 89C51单片机的数据存储器扩展6.3.2 89C51单片机的程序存储器扩展,6.1.1 片外总线扩展结构,总线:连接系统中主机与各扩展部件的一组公共信号线。,1、数据总线(DB): 传送数据,双向,CPU的位数和外部数据总线的位数一致。而数据可能是指令
2、代码、状态量或控制量,也可能是真正的数据。2、地址总线(AB): 传送CPU发出的地址信息,单向,宽度(线数目)决定了CPU的可寻址范围。例如:2根地址线,可寻址22=4个字节单元; 16根地址线,可寻址216=64K字节单元;3、控制总线(CB): 传送使微机协调工作的定时、控制信号,双向,但对于每一条具体的控制线,都有固定的功能。控制线数目受芯片引脚数量的限制。,8位微机的DB总是8位,AB总是16位,而CB的数目则随机型不同而不同。,6.1.2 三总线扩展的方法,1P0口作为数据总线和低8位地址线2以P2口作为高8位地址线3地址、数据分离电路,ALE 信号就是 MCS-51 单片机提供的
3、专用于数据/地址分离的一个引脚。,6.1.3 AT89Cxx片内存储容量,6.2 单片机I/O口扩展及编制技术,51系列单片机内部有4个双向的并行I/O端口P0P3,共占32根引脚。P0口的每一位可以驱动8个TTL负载,P1P3口的负载能力为3个TTL负载。 在无片外存储器扩展的系统中,这4个端口都可以作为准双向通用I/O口使用。,6.2.1 单片机I/O口扩展,MCS-51单片机的I/O端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行连接。 简单的I/O口扩展,通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵
4、活的特点。 实际中可使用74LS244、74LS245等芯片作为并行输入口进行扩展,使用74LS273、74LS377等芯片作为并行输出口进行扩展。,6.2.1 单片机I/O口扩展,74LS244为8同相三态缓冲/驱动器,6.2.1 单片机I/O口扩展,74LS273为8D三态同相触发器,6.2.1 单片机I/O口扩展,图6-3为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。,6.2.1 单片机I/O口扩展,P2.0决定了74LS244的地址为: 0B 其中“”代表任意电平。由于地址线中有无关位,且无关位可组成多种状态,则会出现“地址重叠”问题。所谓“地址重叠”
5、,是指一个扩展芯片占有多个额定地址空间。一般情况下,无关位取“1”。确定了地址以后,就可以读入扩展输入口的内容。程序如下:MOVDPTR,#0FEFFH;确定扩展芯片地址MOVXA,DPTR;将扩展输入口内容读入累加器A当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。,6.2.1 单片机I/O口扩展,输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端有效,选通74LS273, P0上的数据锁存到74LS273的输出端,控制发光二极管LED,芯片地址与74LS244的选通地址相同(都是0B,通常取为FEFFH)。当某线输出为0时,相
6、应的LED发光。虽然二个芯片的口地址都为FEFFH,但是由于分别由RD和WR控制,两个信号不可能同时为0(执行输入指令例如MOVX A,DPTR或MOVX A,Ri时,有效;执行输出指令例如MOVX DPTR,A或MOVX Ri,A时,有效),所以逻辑上二者不会发生冲突。,6.2.1 单片机I/O口扩展,例6-1:参照图6-3,编写程序实现把按钮开关状态通过发光二极管(LED)显示出来。分析:首先根据电路确定输入/输出扩展芯片的地址;读入输入口的数据并用此内容控制输出端口(注意要使用MOVX指令)。 循环检测并输出。汇编语言程序如下:MOVDPTR,# 0FEFFH;确定扩展输入/输出芯片地址
7、LOOP:MOVXA,DPTR;将扩展输入端口内容读入累加器AMOVXDPTR,A;将读入的数据送到扩展输出端口SJMPLOOP;循环检测,6.2.1 单片机I/O口扩展,C51语言程序如下:#include /定义MCS-51的特殊功能寄存器SFR unsigned char xdata addr _at_ 0xFEFF;/定义扩展输入/输出芯片地址main( )unsigned char x; /定义8位数据变量while(1)x = addr; /读入扩展输入端口内容addr = x; /将读入的数据送到扩展输出端口,6.2.2 单片机总线扩展的编址技术,可供使用的编址方法有两种:线选法
8、 适用于小规模单片机系统的总线扩展。 译码法 适用于大容量多芯片存储器扩展。常用译码器来完成译码功能。 常用的译码芯片有: 74LS139(双2-4译码器)和74LS138(3-8译码器)等 。,6.2.2 单片机总线扩展的编址技术,3线-8线译码器74LS138,6.2.2 单片机总线扩展的编址技术,地址锁存器74LS373,6.3 MCS-51存储器扩展技术,存储器的主要技术指标:存储容量存取速度可靠性功耗工作温度范围封装形式,6.3.1 89C51单片机的数据存储器扩展,MCS-51系列单片机产品中片内数据存储器容量一般为1282048个字节。,表6-3 常用SRAM芯片的主要性能,例6
9、-2:在单片机应用系统中扩展2K字节静态RAM。(1)芯片选择根据题目容量的要求我们选用SRAM 6116,它是一种采用CMOS工艺制成的SRAM,采用单一+5V供电,输入输出电平均与TTL电平兼容,具有低功耗操作方式。当CPU没有选中该芯片时( ),芯片处于低功耗状态,可以减少80%以上的功耗。6116的管脚如图6-9所示。,6.3.1 89C51单片机的数据存储器扩展,6.3.1 89C51单片机的数据存储器扩展,(2)硬件电路单片机与6116的硬件连接如图6-10所示。,6.3.1 89C51单片机的数据存储器扩展,(3)连线说明6116与单片机的连线如下:地址线:A0A10连接单片机地
10、址总线的A0A10,即P0.0P0.7、P2.0、P2.1、P2.2共11根;数据线:I/O0I/O7连接单片机的数据线,即P0.0P0.7;控制线:片选端,写允许线,.,读允许线,6.3.1 89C51单片机的数据存储器扩展,.,4)片外RAM地址范围的确定及使用,显然只有P2.7=0,才能够选中该片6116,故其地址范围确定如表6-5所示:,6.3.1 89C51单片机的数据存储器扩展,如果与6116无关的管脚取0,那么6116的地址范围是0000H07FFH;如果与6116无关的管脚取1,那么6116的地址范围是7800H7FFFH。单片机对片外RAM的读写除了可以使用:MOVXDPTR
11、,A ;64K字节内写入数据MOVXA,DPTR ;64K字节内读取数据还可以使用以下对低256字节的读写指令:MOVXRi,A ;低256字节内写入数据MOVXA,Ri ;低256字节内读取数据C51编写方法:xdata和pdata用于单片机的片外RAM区,这两个区声明变量参见第四章。xdata片外数据存储区(64KB);pdata分页寻址片外数据存储区(256字节)。,例6-3:扩展8K RAM,地址范围是4000H5FFFH,并且具有唯一性;其余地址均作为外部I/O扩展地址。(1)芯片选择静态RAM芯片6264 6264是8K8位的静态RAM,它采用CMOS工艺制造,单一+5V供电,额定
12、功耗200mW,典型读取时间200ns,封装形式为DIP28。3-8译码器74LS138 这里采用全译码方式,6264的存储容量是8K8位,占用了单片机的13条地址线A0A12,剩余的3条地址线A13A15通过74LS138来进行全译码。,6.3.1 89C51单片机的数据存储器扩展,6.3.1 89C51单片机的数据存储器扩展,(2)硬件电路,(3)连线说明,6.3.1 89C51单片机的数据存储器扩展,.,4)片外RAM地址范围的确定及使用,6.3.1 89C51单片机的数据存储器扩展,.,总结:,扩展一片6264 (8K字节),需考虑步骤如下:确定地址线根数; 已知1KB=1024字节,
13、则1K = 210 8K = 213 。所以需要13根地址线,A0A12。确定地址总线AB及其连接; 地址总线 AB:低8位地址A0A7从P0口输出,由于P0口是复用口,所以需通过74LS373锁存。高8位地址A12A8直接从P2口输出,其中A12为最高位。确定数据总线DB及其连接; 数据总线 DB:直接接P0口,即D0D7。确定控制总线CB及其连接。,6.3.2 89C51单片机的程序存储器扩展,.,通常扩展的外部程序存储器使用EPROM或E2PROM。,单片机与程序存储器的连接方法和数据存储器连接方法大致相同。,6.3.2 89C51单片机的程序存储器扩展,.,89C51单片机扩展程序存储
14、器27C64的连接,6.3.2 89C51单片机的程序存储器扩展,.,例6-4 采用译码器法扩展2片8KB EPROM,2片8KB RAM。EPROM选用2764,RAM选用6264。共扩展4片芯片,扩展接口电路见图6-13。写出4片存储芯片的地址范围。,6.3.2 89C51单片机的程序存储器扩展,.,图6-13为用74LS138作译码器的扩展存储器接口电路,74LS138的地址线输入端A、B、C分别接P2.5、P2.6、P2.7; 译码状态信号输出端Y0、Y1、Y2、Y3分别接存储芯片IC1、IC2、IC3、IC4的CE端。因此P2.7、P2.6、P2.5的编码分别为000011时,对应Y0、Y1、Y2、Y3的输出有效。因此各芯片的地址范围见表。,6.3.2 89C51单片机的程序存储器扩展,.,
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。