阅读:1598回复:6
一个简单的问题
我第一次接触c51,各位多指点,它与c好像不太一样;
如在zboard的fireware中: outportb(unsigned short nPort, unsigned char nVal) { #ifdef PARALLEL_BUS unsigned char xdata *exAddress; exAddress = nPort; *exAddress = nVal; ......} xdata是不是指外部data存储区,那exaddress指其地址了, 不知其代表d12中那个管脚,在fireware何处能找到其与硬件管脚 的联系。 |
|
沙发#
发布于:2002-04-28 16:28
xdata是指向外部数据地址,
unsigned char xdata *exAddress; 是定义一个指向外部数据的指针, exAddress = nPort; 是指向外部数据地址值(nPort), *exAddress = nVal; 是在地址nPort处写入值nVal |
|
板凳#
发布于:2002-04-28 20:13
那么exAddress = nPort在硬件是d12的那个管脚呢?,如没定义
PARALLEL_BUS ,则由nport可决定IC_D12_A0的值,而IC_D12_A0 被定义为P1_6脚,即d12的A0脚,而exAddress = nPort所代表的 管脚是那个呢? |
|
地板#
发布于:2002-04-29 14:38
其实nPort只有2个值,一个代表d12的cmd reg,另外一个就是data reg。zboard仅仅是把它们当作2个外部ram地址来处理。
|
|
|
地下室#
发布于:2002-04-29 14:40
如果没有定义PARALLEL_BUS,仅仅会用到nPort的最后一个bit。
|
|
|
5楼#
发布于:2002-04-29 15:05
多谢斑竹,今天我的板子计算机不认识了,
一般,斑竹能否诊断一下? |
|
6楼#
发布于:2002-04-30 10:09
难说,看看是不是有什么芯片坏了,或者接触不好。
|
|
|