跪求大侠赐教:C8051F040的外部存储器接口配置(已解决)

[复制链接]
2720|2
 楼主| geergeer 发表于 2008-9-20 19:40 | 显示全部楼层 |阅读模式
首先对浏览帖子的大侠表示深深的感谢!<br />C8051F040的外部存储器接口配置代码如下所示(用低口作存储器接口,非复用方式,有块选择的分片模式,使用了串口0和外部中断0)<br />void&nbsp;Config_IO&nbsp;(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SFRPAGE&nbsp;&nbsp;=&nbsp;EMI0_PAGE;<br />&nbsp;&nbsp;&nbsp;&nbsp;EMI0CF&nbsp;&nbsp;&nbsp;=&nbsp;0X18;<br />&nbsp;&nbsp;&nbsp;&nbsp;EMI0CN&nbsp;&nbsp;&nbsp;=&nbsp;0X80;<br />&nbsp;&nbsp;&nbsp;&nbsp;EMI0TC&nbsp;&nbsp;&nbsp;=&nbsp;0X83;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SFRPAGE&nbsp;&nbsp;=&nbsp;CONFIG_PAGE;&nbsp;//Port&nbsp;SFR's&nbsp;on&nbsp;Configuration&nbsp;page<br />&nbsp;&nbsp;&nbsp;&nbsp;P0MDOUT&nbsp;&nbsp;=&nbsp;0XFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;P1MDOUT&nbsp;&nbsp;=&nbsp;0XFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;P2MDOUT&nbsp;&nbsp;=&nbsp;0XFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;P3MDOUT&nbsp;&nbsp;=&nbsp;0XFF;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;XBR0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X04;<br />&nbsp;&nbsp;&nbsp;&nbsp;XBR1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X04;<br />&nbsp;&nbsp;&nbsp;&nbsp;XBR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X42;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0XC0;<br />&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X00;<br />&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X00;<br />&nbsp;&nbsp;&nbsp;&nbsp;P3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0X00;<br />}<br />初始化好之后,我用仿真器单步执行程序,每次对外部存储单元(例如0X8010)寻址时,即执行指令MOVX&nbsp;@DPTR&nbsp;A时,用示波器无法抓到地址线(P1,P2口)上的电平变化(芯片工作在11M频率,示波器调到10NS级),说明地址线没有工作啊,这是为什么呢?<br />恳请大侠们赐教,再次感激!
 楼主| geergeer 发表于 2008-9-22 08:24 | 显示全部楼层

顶上去,急!

  
 楼主| geergeer 发表于 2008-9-22 09:39 | 显示全部楼层

补充

我已经在外部寻址的函数里加了SFRPAGE&nbsp;=&nbsp;CONFIG_PAGE,如下:<br /><br />功能:向端口发送数据<br />void&nbsp;outportb(unsigned&nbsp;int&nbsp;DataOrCmd,&nbsp;unsigned&nbsp;char&nbsp;Data)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SFRPAGE&nbsp;&nbsp;=&nbsp;CONFIG_PAGE;<br />&nbsp;&nbsp;&nbsp;&nbsp;*((volatile&nbsp;unsigned&nbsp;char&nbsp;*)&nbsp;DataOrCmd)&nbsp;=&nbsp;Data;//向外部写<br />}<br /><br />功能:向端口接收数据<br />unsigned&nbsp;char&nbsp;inportb(unsigned&nbsp;int&nbsp;DataOrCmd)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SFRPAGE&nbsp;&nbsp;=&nbsp;CONFIG_PAGE;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;*((volatile&nbsp;unsigned&nbsp;char&nbsp;*)&nbsp;DataOrCmd);//从外部读<br />}<br /><br />示波器依然没有能够抓到地址线的变化。<br />之前,我反反复复用示波器抓地址线波形,重新编译,然后再抓,试了不下几十次,曾经有几次编译后能够抓到每次向外部选址时地址线的变化,但是重新编译后又抓不到了,好奇怪!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部