单片机片外程序存储器数据存储器操作命令

发布者:不见南师久最新更新时间:2012-09-04 来源: 51hei关键字:单片机  程序存储器  数据存储器 手机看文章 扫描二维码
随时随地手机看文章

说明:单片机片外程序存储器数据存储器操作命令与通常所说的存储器不同,和I2C总线的AT24C02不同,SPI协议的也不同,是指采用专用接口电路,应用P0口P2口地址总线和控制线的“三总线”方式访问的。关于编程的时候,和访问内部程序存储器,数据存储器不同是:1对外部程序存储器,和内部一样,程序不用改。2,.对片外的数据存储器,汇编要用MOVX   DPTR 什么的,我也不懂,C语言相关的部分比如:变量关键字:pdata   xdata  是片外数据存储器类型。输送的片外数据的寄存器地址也要按实际输送,其他没什么区别。没有说要特意操作特殊寄存器。.

在设计片外程序存储器之前,首先要决定EA引脚的电平。

EA=0,单片机只访问外部程序存储器,对于8031单片机此引脚必须接地.EA=1,单片机访问内部程序存储器,对于内部有程序存储器的8XX51单片机,此引脚应接高电平,但若地址值超过4KB范围,单片机将自动访问外部程序存储器。

设定好EA后,单片机自动按程序所设定的次序执行。

在编程中不需要专门的语句指定调用的是外部程序存储器。比如设定EA接高电平,则程序在执行完片内的程序存储器指令后自动转入片外程序存储器,而无需特殊命令。这就是所谓的程序存储器是片内外统一编址,而数据存储器则用Mov和Movx分别对待的。

但楼主要知道程序在读取片外指令代码时的过程:先寻址,再取数。单片机会根据PC的值先给P2和p0送一个选通地址(PC的值),接下来从片外程序存储器读取代码。因为PC的值一般是连续的,这就要求片外的程序存储器空间要连续分布,这和数据存储器不同。如果不连续分布,就要用特殊的行号改变PC的值,使它和片外程序存储器分布能够对应

总之,记住三总线传递的方式,先寻址,再传数,由控制总线控制

存储器一般都有WR,RD,CS线以及地址端口、数据端口,有些数据地址端口复用,有些分开。看这些存储器的datasheet就会明白如何访问他们内部的数据。例如读出外部ram地址为0x0001里的数据(假设有这个地址),那么就WR置高,CS置低,地址线上输出0x0001,那么CPU的数据线就可以等到需要的数据了,这种情况下CPU的I/O只是做普通的I/O口。但是一般单片机和ARM都能够把I/O选择作为外部存储器的访问口,这时只要根据datasheet里的说明,把相应的线连上,CPU就能够根据你的指令自动在时序上配合,使得访问外部设备就像访问内部ram一样,这样做的好处就是节省CPU时间。

把地址0x0001置为0x55的C语言指令为
(*(unsigned char*)0x0001)=0x55;   //(这里假设数据宽度为8bit)
假如I/O口选择的功能是外部数据地址总线,并且硬件上接好,那么这条指令也就是对外部存储器相应地址的读写。

值得一提的是,各种类型的存储器件的访问速度都不一样,因此如果把程序放在外部器件里执行,执行时间就会有比较大的差别,例如一个for循环放在外部ram和外部flash中执行速度可能会差到3倍。
 
第一,单片机采用三总线结构传递数据。地址总线、数据总线、控制总线。传递数据的过程是先寻址,再传递数据。即先送一个地址信息(由单片机向总线写地址信息),由寄存器(程序存储器或数据存储器)根据这个地址,把微处理器要读取的数据写到总线上,微处理器再读取这个数据。整个过程由控制总线控制。所以每次读的数据是针对那个地址对应的寄存器操作的,不会发生混乱。写数据时一样,先寻址,再写数据,数据就写入刚才寻址时的地址对应的那个寄存器里去了。

第二、程序存储器、数据存储器有不同的选通信号,在一个指令周期里,是不同的时间选通的,所以不会混乱。

第三、选通的引脚不同。拿片外数据存储器来说,是P3的第6和第7引脚做选通信号,程序存储器是PSEN做选通信号,他们接在各自器件的选通引脚上,所以不会混乱。

第四,指令不同。拿汇编指令来说。MOV是程序存储器传递数据用,MOVX是数据存储器传递数据用(对片外而言)。

总之,记住三总线传递的方式,先寻址,再传数,由控制总线控制,这个模式,你就容易理解这个了。

单片机的p2和p0分别传递地址的高八位和低八位。同时p0还传递数据。在时序信号的ALE高电平期间,锁定地址信息。/PSEN是选通程序存储器的。在/PSEN低电平期间是向程序存储器传递程序代码,/WR和/RD是选通数据存储器的,即在/WR和/RD低电平期间把数据传递给数据寄存器。而/PSEN和/WR及/RD是在不同时间变为低电平的,没有重叠的部分。也就是说,当/WR及/RD变成低电平时,/PSEN已经恢复高电平了,由P0口传出的数据信息当然只会传到数据存储器里,因为程序存储器已经不再处于选通状态了!从表面看,都是从p0口传出的,但因为选通器件的时间不同而不会发生混乱。当然我说的是片外程序存储器和数据存储器的的情况,其实对片内也一样,还是三总线的这种控制方式,使它们在不同的时间被选通,而不至于发生冲突。

看看单片机的一个电路图。你会发现p0既跟74LS373连,又跟8155或8255或键盘或数模转换器等连接。而8155或8255或键盘或数模转换器等对单片机而言是当做数据存储器处理的。74LS373连的多半是程序存储器。那么p0送出的信号不是两者都接受了吗?注意看ALE接74LS373的G接口,锁存地址用,PSEN有时用有时不用。WR和RD接数据存储器的选通接口。因为WR和RD跟ALE的信号在时间上没有重叠部分,所以p0的信号不会被程序存储器和数据存储器同时收到。这是一个举例说明,具体情况要具体分析。

关键字:单片机  程序存储器  数据存储器 引用地址:单片机片外程序存储器数据存储器操作命令

上一篇:51单片机红外接收解码程序
下一篇:单片机之矩阵键盘

推荐阅读最新更新时间:2024-03-16 13:07

DDS芯片AD9850的工作原理及其与单片机的接口分析
   AD9850简介   DDS是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。   随着数字技术的飞速发展,用数字控制方法从一个参考频率源产生多种频率的技术,即直接数字频率合成(DDS)技术异军突起。美国AD公司推出的高集成度频率合成器AD9850便是采用DDS技术的典型产品之一。   AD9850采用先地蝗CMOS工艺,其功耗在3.3V供电时仅为155mW,扩展工业级温度范围为-40~80℃,采用28脚SSOP表面封装形式。AD98
[嵌入式]
nRF24L01+51单片机无线语音点滴报警系统
使用的51单片机作为主控芯片,两个51单片机通过24L01通信,一个检测吊瓶滴液的速度,如果太快太慢或者不滴液都会报警,并发送到主机,输液者也可以主动通过按键呼叫主机,丛机用1602显示,主机用12864显示。 Altium Designer画的原理图和PCB图如下: 单片机源程序如下: #include reg52.h #include intrins.h #include keys.h #include 24L01.h #include LCD1602.h #define uint unsigned int #define uchar unsigned char sbit YeDi=P2^0;//红外信号
[单片机]
nRF24L01+51<font color='red'>单片机</font>无线语音点滴报警系统
硬核MCU技术为汽车智能化控制保驾护航
11月3日,“2020年度硬核中国芯领袖峰会暨评选颁奖盛典”在深圳举办,历时4个月的“2020 硬核中国芯”评选结果隆重揭晓。 比亚迪半导体有限公司获得 “2020年度最具影响力IC设计企业”重磅奖项。同时,国内首款高集成、三合一主控 MCU (BF5823AM48)产品也以集成、高效、低功耗等优势一举获得“2020年度最佳国产MCU产品奖”。 “2020 硬核中国芯”评选活动获得近150家半导体企业积极参评,评选期间共计40万电子工程师、近40位业内专家评委参与评分,评选出2020年最具代表性的中国芯片企业和产品。 种种殊荣的获得并不是偶然,这离不开比亚迪在半导体领域的破局、深耕和创新。自2003年比亚迪半导体成立以
[汽车电子]
硬核<font color='red'>MCU</font>技术为汽车智能化控制保驾护航
基于单片机P89C669的无线PBX系统设计
  0 引言   随着我国通信技术的迅猛发展,通信网络技术层次、运行管理水平跃居世界前列,规模居世界首位。但在电话通信领域,却出现了令人尴尬的局面:一方面,通信设备制造商致力于第三代网络通信设备的研究和生产,功能强大、性能优异的交换设备层出不穷;另一方面,对于一类特殊的用户群体,比如中小型集团公司,旅游公司,厂矿小企业职工、偏远、山岭地区的人民群众、海岛官兵等,普通的电话交换机即一个话机接入一个外线的模式已经远远不能满足他们工作的要求,并且带来诸多不便,但选用专用交换机太昂贵且会造成浪费。   在国内已有人做过这方面的研究工作,小型程控交换机便是其中的一种解决方案,但是它的功能单一,实现的仅仅是内部话机的相互呼叫免费,而在
[嵌入式]
基于单片机的集成编码PT2262解码器设计
  近年来,基于波形分析的软件解码或者软硬结合解码的方法被提出来。但是,这些方法都不具有自学功能,只针对特定振荡频率的波形进行解码,当不知道发射电路 PT2262 的振荡电阻的配置的情况下无法解码,或者需要手工调整程序的参数。   本文提出了一种具有自学习功能的基于单片机的软件解码方法并完成了设计,这种新方法可以在未知发射电路的配置参数的情况下,通过先学习、后解码的过程实现解码,且可以实现自定义数据帧的格式,使编码的地址位和数据位的设置更加灵活。从而可以将通用编码集成电路扩展应用于数据通信,智能控制等领域。   1 PT2262工作原理   PT2262最多可有12位(A0~A11)三态地址端管脚(悬空,接高电平,接低电平)
[单片机]
基于<font color='red'>单片机</font>的集成编码PT2262解码器设计
基于SPCE061A的智能血液参数分析系统设计
  随着智能控制的发展,对血细胞状态及参数的分析也不断采用最新的电子、光学、化学和计算机技术,从而满足临床工作对血液细胞分析的要求。智能的仪器可以减少人工劳动的强度,加快标本的处理速度,同时使得许多操作更加标准化及减少操作者之间的个体差异。 1 系统总体设计   采用凌阳公司的SPCE061A单片机设计了血液参数分析系统,液路采用电磁阀门来控制,时序电路根据血液分析仪的实际要求进行设计,可以实现检测参数的智能语音提示。系统的整体结构如图1所示。   系统通过13路电磁阀和1路压力泵来控制整台仪器的流路。控制系统接到传来的指令时,打开相应的血液样本的通路,各种不同液路之间通过电磁阀进行隔离和导通。控制在凌阳SPCE061
[单片机]
基于SPCE061A的智能血液参数分析系统设计
单片机控制GSM手机的技术及应用
随着科技的飞速发展和人民生活水平的不断提高,手机的普及率越来越高,更新也越来越快,价格也越来越便宜。因为手机工作的无线网络覆盖范围广,在信息传递方面性能稳定、可靠,所以把手机作为信息传递的载体,与单片机结合起来构成应用系统有着强大的生命力和广阔的应用空间,特别是在远程数据传输、远程监控等领域更是受到电子设计应用工程师的关注。一些专业刊物也介绍了一些有关这方面的文章,然而由于手机的控制指令复杂,数据格式繁琐,工程技术人员在进行单片机与手机的硬软件接口设计时经常会遇到很多困难,有时还无资料可查。笔者在完成一个项目的开发过程中,针对几种手机进行了大量的测试和实验,在此基础上归纳出一些带规律性的结论,对此结论,工程设计人员可拿来即用,大大缩
[应用]
基于单片机C8051F021和时钟芯片实现定时采集存储系统的设计
随着科技的高速发展,现代工业测控领域的很多应用中都需要实现大量数据的定时采集存储。以为海流计设计的海流数据采集存储接口电路为例,介绍一种定时采集存储系统的工作原理及其实现方法。 1 总体结构 在很多情况下,尤其是恶劣的工作环境下,高性能的单片机和大容量的Flash存储器是数据采集存储系统的最佳选择,本文介绍的系统也是基于这样的考虑。系统硬件结构并不复杂,包括高性能单片机C8051F021、实时时钟芯片SD2300、大容量Flash存储器K9G8G08及其外围电路,如图1所示。工作原理也较为简单,通过串口将单片机C8051F021与海流计相连,通过对单片机的编程实现对海流计的控制和使用。同时,为了实现定时采集和数据存储的功能,还
[单片机]
基于<font color='red'>单片机</font>C8051F021和时钟芯片实现定时采集存储系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved