打印

C51中的绝对地址读写与时序图

[复制链接]
5001|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hd328329346|  楼主 | 2010-5-15 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么在C中,用了<abcacc.h>头文件后,可不需跟据芯片时序进行读写控制?
例如:要对12864进行读写命令、数据。
(1)、用<abcacc.h>头文件时(硬件连线后)
#define DATA XBYTE[0x8000]
#define COM  XBYTE[0xc000]
  state=COM;
(2)、根据时序进行
sbit CD=P2^6;                        // C/D对应单片机引脚
sbit CE=P2^7;                        // CE对应单片机引脚
sbit WR=P3^6;                        // WR对应单片机引脚
sbit RD=P3^7;                        // RD对应单片机引脚
CD=1;                        
CE=0;
RD=0;
_nop_();
state=P0;
RD=1;
原因是什么?另外我还想问下,是不是所有的芯片(大部分也行),都能这样用绝对地址。

相关帖子

沙发
ayb_ice| | 2010-5-15 10:30 | 只看该作者
那就是个绝对地址访问,访问不同的区域就和51的时序有关了

使用特权

评论回复
板凳
hd328329346|  楼主 | 2010-5-15 11:38 | 只看该作者
能否更具体一点?

使用特权

评论回复
地板
xwj| | 2010-5-15 11:39 | 只看该作者
这是由单片机的硬件电路来决定、实现的。
用XBYTE访问的话编译器会编译成MOVX指令,然后51单片机执行此指令时其内部的硬件电路自动产生RD、WR以及地址、数据的正确时序,由于是硬件电路自动完成的,所以在2个指令周期内(标准51是24个时钟周期)就能执行完操作;

而你后面用操作IO口的方式来访问外部ram的话,可以死可以,但每个IO操作都要一、两个时钟周期,加起来就很多了,比内核本身的硬件处理会慢得多。
——这种方法叫做软件模拟时序操作,虽然慢点,但有些低速的外围器件还非得慢才行,快了它还不响应!:lol而有些外围器件的时序并不是标准的8080时序,只能外加硬件来转换时序或者用软件模拟,所以软件模拟时序有时还是有用武之地的。

至于“是不是所有的芯片(大部分也行),都能这样用绝对地址。”的问题,一般的CPU内核都有这种功能,但同一内核下不同的产品系列会有不同的外设配置,对于低端的当然就会省去了,以节约芯片面积,同一晶圆就能做出更多个IC了。

比如51,89x5x(比如AT89C51、AT89C5x)是有硬件访问外部RAM功能的,而AT89C2051是没有这个功能的,也只有20个脚;
再比如AVR、MSP430、STM32、PIC等等等等,高端的也都是有硬件访问外部RAM功能的,而低端的却都没有这个功能的,引脚数、资源等也少得多,所以才能做到加个相对更低。
——这就是产品的系列化,不然只有一两种贵的的话那就很多廉价的产品不会用你了,岂不是要丢掉很多很多的客户?:)

使用特权

评论回复
5
hd328329346|  楼主 | 2010-5-16 10:10 | 只看该作者
读了若干遍,总算明白了一些。
首先搞清楚了问题的原因:这是硬件自动完成的(在往里,这我就在管不上了,至少在目前)。
然后还搞懂了两个专业术语:绝对地址访问——硬件访问外部RAM,时序进行——软件模拟时序操作。
最后还了解了其他单片机关于此功能的有无。
另外,“同一晶圆就能做出更多个IC了”这句话,还给了我一点想象的空间:lol
谢谢X哥!
21IC真好~

使用特权

评论回复
6
hd328329346|  楼主 | 2010-5-16 10:23 | 只看该作者
幸亏还没结贴。
X哥的这句话:“51单片机执行此指令(MOVX)时其内部的硬件电路自动产生RD、WR以及地址、数据的正确时序”。
WR、RD时序是在MOVX指令前面产生还是在后面产生啊?
(我认为是后面。)

使用特权

评论回复
7
xwj| | 2010-5-16 10:45 | 只看该作者
呵呵,啥叫前面或后面?
是执行时(执行过程中)产生啊:lol


至于它是产生了那些动作和动作的顺序,自己去看相关指令的时序图咯~ DataSheet上都有详细说明的。

使用特权

评论回复
8
hd328329346|  楼主 | 2010-5-16 10:58 | 只看该作者
:L 难道这是个 不是问题的问题?
百事先百度、谷歌、搜搜,而后21。
datasheet?:funk: 还得再等等~

使用特权

评论回复
9
一棵小草| | 2010-5-16 12:30 | 只看该作者
我是最后才明白的,哎-----好好的一个问题,被LZ一问,还真反应不过来。

其实,51的书上已经讲得很清晰了,而且配有图,时序。:funk:

使用特权

评论回复
10
xuyiyi| | 2010-5-16 13:56 | 只看该作者
呵呵!
老X解释的真耐心。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

155

帖子

0

粉丝