历史上的今天
返回首页

历史上的今天

今天是:2025年03月09日(星期日)

正在发生

2018年03月09日 | 外扩存储器电路的工作原理及软件设计

2018-03-09 来源:eefocus

  1.单片机片外程序区读指令过程
  
  当接通电源且单片机上电复位后,程序计数器PC-OOOOH,CPU就从OOOOH地址开始取指令,执行程序。在取指令期间,PC地址低8位送往PO口,经锁存器锁存作为低8位地址A0~A7输出。PC高8位地址送往P2口,直接由P2.O~P2.4锁存到A8~A12地址线上,P2.5~P2.7输入给74LS139进行译码输出片选。这样,根据P2口、PO口状态则选中了第一个程序存储器芯片ICl(2764)的第一个单元地址OOOOH。然后当PSEN(的反)变为低电平时,把OOOOH中的指令代码经PO口读入内部RAM中进行译码,从而决定进行何种操作。取出一个指令字节后PC自动加1,然后取第二个字节,依次类推。当PC=1FFFH时,从IC1最后一个单元取指令,然后PC=2000H,CPU向P2口、PO口送出2000H地址时,则选中第二个程序存储器IC2,IC2的地址范围为2000H~3FFFH,读指令过程同IC1,不再赘述。
  
  2.单片机片外数据区读/写数据过程
  
  当程序运行中,执行“MOV”类指令时,表示与片内RAM交换数据;当遇到“MOVX”类指令时,表示对片外数据存储器区寻址。片外数据存储器区只能间接寻址。
  
  例如,把片外6000H单元的数据送到片内RAM 50H单元中,程序如下:
  1
  先把寻址地址6000H送到数据指针寄存器DPTR中,当执行“MOVX  A,@DPTR”时,DPTR的低8位(OOH)经PO口输出并锁存,高8位(60H)经P2口直接输出,根据PO口、P2口状态选中IC4(6264)的6000H单元。当读选通信号RD(的反)为低电平时,片外6000H单元的数据经PO口送往累加器A。当执行指令“MOV 50H,A”时,则把该数据存入片内50H单元。
  
  向片外数据区写数据的过程与读数据的过程类似。
  
  例如,把片内50H单元的数据送到片外4000H单元中,程序如下:
  2
  执行第1条指令,先把片内RAM 50H单元的数据送到A中,第2条指令把寻址地址4000H送到数据指针寄存器DPTR中,当执行“MOVX  @DPTR,A”时,DPTR的低8位(OOH)由PO口输出并锁存,高8位(40H)由P2口直接输出,根据PO口、P2口状态选中IC3(6264)的4000H单元。当写选通信号WR(的反)有效时,A中的内容送往片外4000H单元。
  
  AT89S51单片机读写片外数据存储器中的内容,除了使用“MOVX  A,@DPTR”和“MOVX  @DPTR,A”外,还可以使用指令“MOVX  A,@R/”和“MOVX  @R/,A”。这时PO口装入R/中的内容(低8位地址),而把P2口原有的内容作为高8位地址输出。下面介绍的例子就是采用“MOVX @R/,A”指令的例子。
  
  例:编写程序,将程序存储器中以TAB为首地址的32个单元的内容依次传送到外部RAM以4000H为首地址的区域去。
  
  数据指针DPTR指向标号TAB的首地址。RO既指示外部RAM的地址,又表示数据标号TAB的位移量。此程序为一循环程序,循环次数为32,RO的值从0变化至31,RO的值达到32就结束循环。参考程序如下:

      3


推荐阅读

史海拾趣

问答坊 | AI 解惑

我的第一块板子

这是一个运用运算放大器构成的电路测量三极管的β值的电路,是我自己设计与完成的…

查看全部问答>

EVC中调用WCE软键盘问题

我在 EVC工程里面 加入了 #include \"sipapi.h\" 文件,并在 “对象/模块库”中加了 coredll.lib 当我在 程序里调用 SipShowIM(SIPF_ON);来调用软键盘时,出现了错误! 请问下该怎么解决这个问题!!! …

查看全部问答>

求助:关于LPC2138下载字库

最近在LPC2138的项目中遇到了这样的问题,敬请达人指点:     因为在项目中有一不带字库的液晶显示,而且所需汉字较多,且不定,故需下载字库到LPC2138的内部flash中,其有500K的内部flash,HZK16只需使用261K,我准备自己的程序有200K ...…

查看全部问答>

杂散电容,寄生电容,分布电容?

最近在处理一些工程问题时对电容的一些说法犯难了,哪位大侠能准确地解释一下杂散电容,寄生电容,分布电容这三者吗?…

查看全部问答>

G2553 launchpad 串口,偶尔才能收到

按照论坛上说的 把R, T 跳冒对调。  能偶尔收到数据 。  但是更重要的是!!!!我外接MAX232串口模块,能很稳定的收到数据。 求高手解答     我用的是官方代码。    如 给串口发“ a”  ...…

查看全部问答>

我的电子技术入门之路-初“湿”单片机

虽然本人上的是电子系,可是周边的师兄师姐都一起笑称,毕业了,还不会修电话(固定电话哦,不是手机),实在不敢承认自己是电子系毕业的。 上班以后,因为工作需要,开始接触单片机。说起来也算不上从零开始,读书的时候某年暑假在实验室接手了半 ...…

查看全部问答>

请求大侠帮忙 由于积分不多下不了一个急着用的东西 有人能帮我下载下吗 万分感谢

请求大侠帮忙  由于积分不多下不了一个急着用的东西  有人能帮我下载下吗  万分感谢…

查看全部问答>

请在arrow上买过东西的指教下

最近看arrow上的开发套件: https://www.eeworld.com.cn/mcu/2014/0829/article_16112.html 于是下单了,但他们要我提供 10-digit customs reg number, 但我是个人使用, 正常步骤是直接FedEx全部处理好就行了的, 有其它人遇到过这样的问题吗? ...…

查看全部问答>

stm32f103系列单片机调试时系统延时问题

程序下载到板子上的时候系统正常运行,但是用jlink仿真单步调试的时候,程序停止在         do         {                 temp=SysTick->CTRL;   &nbs ...…

查看全部问答>