打印

总线模式下,我只需要八位地址,那么P2口怎么用做一般IO口?

[复制链接]
3618|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
myfaith|  楼主 | 2007-12-27 14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2007-12-27 14:19 | 只看该作者

用MOVX @R0这样的指令

使用特权

评论回复
板凳
myfaith|  楼主 | 2007-12-27 14:25 | 只看该作者

用C语言怎么用呢?

使用特权

评论回复
地板
myfaith|  楼主 | 2007-12-27 14:48 | 只看该作者

大虾帮忙

用XBYTE汇编出来的是用DPTR传送地址,需要占用P2口啊
用C语言怎么写使得只用P0口传送地址数据呢?

使用特权

评论回复
5
hunter01| | 2007-12-27 15:25 | 只看该作者

变量定义成pdata就可以了

使用特权

评论回复
6
myfaith|  楼主 | 2007-12-27 15:47 | 只看该作者

楼上是说把哪个变量定义成pdata?

我把地址定义成PDATA有个警告,提示空间定义忽略

使用特权

评论回复
7
john_light| | 2007-12-27 15:52 | 只看该作者

楼主原来在搞IC卡

试一试
#define gpcRCBaseAddress ((unsigned char pdata *)(MEMORY_BASE_ADDRESS))

使用特权

评论回复
8
ayb_ice| | 2007-12-27 16:02 | 只看该作者

使用PBYTE

如: PBYTE[0] = 10;

使用特权

评论回复
9
huangqi412| | 2007-12-27 19:03 | 只看该作者

对,pdata

使用特权

评论回复
10
mohanwei| | 2007-12-27 19:30 | 只看该作者

pdata

使用特权

评论回复
11
niuniu1983| | 2007-12-28 08:30 | 只看该作者

这样可不可以呢....

输出数据前,先读出P2 的状态,然后再把这个信息与要输出的地址合并为一个16位地址,最后输出。

偶是新新手,请各位指教//

使用特权

评论回复
12
xwj| | 2007-12-28 08:40 | 只看该作者

就是用pdata,编译器会自动使用MOVX @R0

11楼的方法不行的,那样的话一旦读写外部RAM都会使P2口产生电平跳变的

建议LZ还是多去看看书和DataSheet,多去看看IO 、存储器时序那几节

使用特权

评论回复
13
myfaith|  楼主 | 2007-12-28 09:15 | 只看该作者

谢谢!

谢谢各位帮助!我明白了.但还有个一直悬而未决的问题,
用MOV @Ri是8位地址就不用P2口了,那么假如我的地址是11位,这时就必须用P2口了,那么P2剩下的5个IO口又怎么用做一般IO口呢?

使用特权

评论回复
14
niuniu1983| | 2007-12-28 09:22 | 只看该作者

XWJ,偶还是觉得那样可行

怎么会出现跳变呢,要输出的地址的高字节与原来P2的各个位相同阿。。

使用特权

评论回复
15
ayb_ice| | 2007-12-28 09:44 | 只看该作者

可以把P2口指定为页选择

即P2做普通IO,然后结合pdata操作...

使用特权

评论回复
16
john_light| | 2007-12-28 10:14 | 只看该作者

通过显式地对P2赋值并结合pdata来分页访问xram是可行的

但毫无疑问你必须非常小心,在访问xram时,你必须十分清楚P2的当前值是否选择了你所期望的页。

另外,对xram不能使用如memcpy之类的库函数,因为它会使用DPTR来输出整个16位地址,这对于拿零星几根线来做IO可能是灾难性的。

这样程序的维护也可能存在一定的隐患,但愿只有你一个人使用和维护它。


前几天,我又回头看了几个自己三年前写的程序,当时做的注释不够详细,关键部分只好又研读了一遍……

使用特权

评论回复
17
myfaith|  楼主 | 2007-12-28 11:03 | 只看该作者

哦 明白了

多谢各位大虾指点!
11楼的方法我也觉得不行,打个比方,假设P2^4口接了个LED到VCC,某时刻状态是P2^4=0,LED亮.那么读入它的状态就是P2^4=1了,把它输出就输出1了.

使用特权

评论回复
18
john_light| | 2007-12-28 11:21 | 只看该作者

要显式利用P2的话

要定义一个变量来保存P2的当前值而不是读回。

使用特权

评论回复
19
myfaith|  楼主 | 2007-12-28 12:27 | 只看该作者

或许P2的当前值并不是明确的,那怎么办?

使用特权

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

本版积分规则

68

主题

468

帖子

0

粉丝