求助大神这是什么歌.P2口可不可以做数据总线

2016第三届物联网大会
智能后视镜产品方案对接会
中国LED智能照明高峰论坛
第三届·无线通信技术研讨会
第二届·中国IoT大会
ETFo智能安防技术论坛
移入鼠标可放大二维码
单片机P0口的片外数据存储器扩展
来源:本站整理
作者:佚名日 10:32
[导读]   随着单片机运算速度和处理能力的不断提高,其在各个领域得到更广泛的应用。然而。随着其应用领域的不断扩大及集成化的不断提高,其内部资源已不能满足实际需求,往
  随着单片机运算速度和处理能力的不断提高,其在各个领域得到更广泛的应用。然而。随着其应用领域的不断扩大及集成化的不断提高,其内部资源已不能满足实际需求,往往需要对其内部资源进行扩展。经典的扩展方法主要是通过地址总线、数据总线即P0、P2口,以及控制线ALE、*****等来进行数据或程序存储器的扩展,最大寻址空间可达64KB,但这种方法占用端口较多,在有些情况下不能满足需求。这里以MCS-8051系列单片机为例,介绍一种新的片外扩展方法,仅用单片机的P0口、P1.6及P1.7共10个端口便可实现256 KB数据存储器的扩展。
  1 总体设计思路
  MCS-8051单片机片内部存储空间为256 B,有P0、P1、P2、P3 4个I/O端口。实际应用中,其内部存储空间往往不能满足需求,常常会在片外进行扩展。有别于经典的扩展方法,这里并没有用到P2口,仅用P0口和各个存储器的地址线、数据线连接,组成地址总线和数据总线。同时将PO口的P0.0、P0.1和P0.2这3个端口引到译码器件的输入端,译码后作为数据存储器件的片选择控制线,与单片机的其他控制端口一起形成控制总线。从而通过数据总线、地址总线和控制总线这3个总线实现单片机片外256 KB数据存储器的扩展。
  单片机的PO口具备地址总线、数据总线及控制线的功能。由软件来分时传送地址信号、数据信号和片选择控制信号。
  2 硬件接口电路设计
  MCS-805l单片机与多片62256数据存储器的扩展电路主要由8片62256型数据存储器、3片74IS373锁存器和1片74LS138译码器件组成。62 256数据存储器为32 KB静态随机存取存储器,CS为片选信号输入线,WE为写选通信号输入线,OE为读选通信号输人线,A0~A14为地址输入线,D0~D7为双向三态数据线。该存储器件在不同操作方式下控制引脚电平的状态如表1所示。74LS373是带三态缓冲输出的8D触发器,OE为使能端,G为控制端。其功能如表2所示。
  图1是MCS-8051单片机与多片62256数据存储器的硬件连接电路。单片机的P0口与译码器741S138、锁存器74LS373-0和74LS373-l的输入端口相连,用来传输地址信息和控制信息。同时,P0口还与数据存储器的数据线相连接,用来传输数据信息。P1.6接到锁存器74LS373-2的控制端G,P1.7接到锁存器74LS373-1的控制端G,ALE接到锁存器74LS373-0的控制端上。由此,在P1.6、P1.7和ALE 3个端口共同作用下,使可实现地址信息和数据信息的分时传送。T0~T7是8片62256数据存储器,组成片外256 KB存储空间。
  3 软件设计
  3.1 数据存储器扩展的软件设计
  MCS-8051单片机片外256 KB数据存储器扩展,其软件设计的主要思路是如何在MCS-805l单片机与要访问的片外存储单元之间建立联系,实现两者的信息传递。MOVX指令执行时,将地址信息同时进行锁存,然后开始传送数据,其读、写周期很短,但占用端口较多。为了节约端口资源,可将地址信息分时传送,图2是单片机读、写片外数据存储器的过程。与MOVX指令不同,单片机在访问片外存储单元时,首先是分时将片外存储单元的地址信息送入锁存器并锁存起来,然后再对片外数据存储单元进行读、写操作,这是2个完全独立的过程,这一特点大大节约了端口资源,但读、写周期较长。
  3.2 数据存储器扩展的软件实例分析
  分析对数据存储器扩展软件设计可知,单片机通过P1口读、写片外数据存储单元时,软件设计具有重要作用。下面通过一实例介绍单片机访问片外数据存储单元的过程。
  以下程序段首先是将片外存储器000000H单元中的内容读到片内存储器30H单元中,然后再将片内存储器30H单元中的内容写到片外存储器077FFFH单元中。在程序中,首先将片内存储单元20H、21H和22H定义为地址信息存储单元,20H是高8位地址信息存储单元,仅低3位有效;21H是中8位地址信息存储单元,低7位有效;22H是低8位地址信息存储单元,8位全有效。所以,其寻址空间为000000H~007FFFH、010000H~017FFFH、020000H~027FFFH、030000H~037FFFH、040000H~047FFFH、050000H~057FFFH、060OOOH~067FFFH和070000H~077FFFH,共256 KB。MOVR和MOVW分别读、写子程序。
  从程序中分析可知,能够仅用P0口及其他几个很少的控制端口便可实现片外大容量数据存储器的扩展,主要是因为PO口具备地址线、数据线及片选择控制线的功能,而这一功能是通过软件方式实现的,即分时传送地址信息,数据信息和控制信息。从MOVR和MOVW 2个子程序可以看出数据的具体传送过程。此外,在编程过程中,每次读、写外部存储器内容时,只要将地址信息写到DPHH、DPTRH和DPTRL3个单元中,然后调用子程序MOVR和MOVW便可实现对片外数据存储器的读、写操作。
  4 结论
  介绍MCS-8051单片机片外256 KB数据存储器的扩展方法,其特点主要是扩展的存储空间大,占用的端口少,数据传送采用并行传送方式。在外围设备较多的情况下,有限的端口无法满足要求,或是存储空间难以满足要求时,完全可采用该扩展方法。此外,如果将单片机与数据存储器件的硬件连接部分稍作改动,便可直接访问片外256 KB,2种访问方式可完全独立。如果256 KB的存储空间还不能满足实际需求,不妨将高位地址存储单元的8位全部进行译码。可得到256个片选择控制端口,那么原来的8片数据存储器便可增加到256片。这样,片外存储空间就可以达到8 MB。完全满足需求。而且,按此原理,还可以将原来的3个地址存储单元改为4个地址存储单元或更多,以增加其存储空间。但这样其读、写周期也将更长。因此需根据实际情况,综合考虑,最终使单片机的硬件与软件达到最优化。
P0口相关文章
P0口相关下载
数据相关文章
数据相关下载
单片机相关文章
单片机相关下载
技术交流、积极发言! 发表评请遵守相关规定。
微软的Windows桌面操作系统已经被绝大部分人所熟知,但对Windows 10 IoT熟悉的人可能并不多。面对规模巨大的物联网市场,微软这样的科技巨头一定不会错过...
日,来自华为OpenLife运营商智慧家庭解决方案总经理在电子发烧友主编的第三届物联网大会高峰论坛上,针对我们关注的《openlife智慧家庭解决方...
创新实用技术专题
版权所有 & 深圳华强聚丰电子科技有限公司AD7545写时序及总线实现方式二
& & 前面讨论了AD7545的写时序以及分析了一种总线连接方式,今天主要介绍单片机的总线扩展技术以及另一种总线连接方式。
& & 单片机具有很强的外部扩展功能。其外部引脚可构成三总线结构,即地址总线、数据总线和控制总线。单片机所有的外部扩展都是通过三总线进行的。
& &(1)地址总线(AB):地址总线用于传送单片机输出的地址信号,宽度为16位,可寻址的地址范围为216=64KB。地址总线是单向的,只能由单片机向外发出。P0口提供低8位地址,P2口提供高8位地址。由于P0口既做地址线又做数据线,分时复用,所以,P0口提供的低8位地址是由P0口经锁存器提供的。锁存信号是由CPU的ALE引脚提供的。
& &(2)数据总线(DB):数据总线是由P0口提供的,宽度为8位。P0口是双向三态口,是单片机应用系统中使用最频繁的通道。P0口提供的数据总线上要连接多个扩展的外围芯片,而某一时刻只能有一个有效的数据传输通道。具体哪一个芯片的数据通道有效,是由各个芯片的片选信号控制选择的。欲使CPU与某个外部芯片交换数据,则CPU必须先通过地址总线发出该芯片的地址,使该芯片的片选信号有效,则此时P0口数据总线上的数据只能在CPU和该芯片之间进行传送。
& &(3)控制总线(CB)::控制总线实际上是CPU输出的一组控制信号。每条控制信号都是单向的,但是由多条不同的控制信号组合而成的控制总线则是双向的。MCS-51系列单片机中用于系统扩展的控制信号有RD、WR、PSEN、ALE和EA。
& & 如图1便为单片机外部总线的写时序图。
& & & & & & & & & & & & & & & & & & & & & &图1
& & 由图1我们可知道,单片机往外部存储器写一个数据,会从ALE、WR、P0和P2输出信号,首先ALE先拉高后拉低,建立低8位地址信号,而高8位地址信号一直在输出,然后拉低WR信号,输出数据D0-D7,延时一下释放ALE和WR,整个总线过程大概就是这样。熟悉了以上过程,我们就可以根据该过程来实现对AD7545的设计,如图2便是另外一个根据单片机总线时序来实现控制的例子。
& & & & & & & & & & & & & & & & & & & & & 图2
& & 在图2中,单片机的WR连接ADR7545的WR,D0-D7连接至器件的DB0-DB7,并且D0-D3通过一个锁存器连接至DB8-DB11,而该锁存器的使能信号CS和AD7545的使能信号CS均是地址总线通过一个地址译码器来实现的,该译码器可使用一个3-8地址译码器,可使A8-A10连接至译码器的输入地址,不与数据端口利用,实现起来比较简单。接下来说一下程序实现。
& & 为了实现外部总线读写,首先得定义一个外部存储器变量。
& &Unsigned char con_data1 xdata _at_0x8000; //用于控制AD7545
& &Unsigned char con_data2 xdata _at_0x8100; //用于控制LATCH
& &然后接着应该先把DB8-DB11先锁存在LATCH中,假设DB8-DB11=8,那么可使
& &con_data2=0x08;
& &该语种一执行,则ALE先拉低,A8-A10输出&001&,使译码器的Q1拉低,使能LATCH,DB0-DB7输出0x08,这样就把数据0x08锁存在LATCH中了,在下一个数据来临之前,DB8-DB11将一直等于8。
& &再接着把DB0-DB7写入AD7545中,假设DB0-DB7=0x7f,那么可使
& &con_data1=0x7f;
& &执行了该语句,首先地址信号A0-A15=0x8000,即A8-A10输出&000&,那么译码器的Q0被拉低,从而使能了AD7545器件,而D0-D7输出0x7f,即DB0-DB7=0x7f,此时DB0-DB11将是写入的数据信号0x087f,现在就差WR信号啦。由前面的时序可知,地址信号输出不久,WR信号就会拉低,从而将DB0-DB11写入AD7545中。
& &至此通过单片机总线时序完成整个写操作。
& & 程序连接起来便是:
& &Unsigned char con_data1 xdata _at_0x8000; //用于控制AD7545
& &Unsigned char con_data2 xdata _at_0x8100; //用于控制LATCH
& &con_data2=0x08;
& &con_data1=0x7f;
关注微信公众号。P2口可不可以做数据总线_51单片机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:41,968贴子:
。P2口可不可以做数据总线收藏
P2口接1602的数据总线可不可以??
实邦电子多年专注于单片机产品开发,为客户提供电子产品解决方案,已成功开发100多款产品.我们拥有多位经验的电子工程师,为您的产品提供优异的设计,稳定可靠的电路板.
应该可以的,你用P3口都行的.
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 求助网 的文章

 

随机推荐