C51编程:请教老古您好:
我的硬件电路是您网站上面的电路。
在keil C中,我的C51程序按照您说的:延时,初始化之后。
接下来我的程序是想将page1中的reg01,reg02,reg03,reg04,reg05,reg06设置
成:0x52,0x54,0x4c,0xC5,0x60,0xB0;然后通过串口读到计算机。
程序如下:
void writemynodeid()
{
page(1);
reg01=0x52; //PAR0
reg02=0x54; //PAR1
reg03=0x4c; //PAR2
reg04=0xc5; //PAR3
reg05=0x60; //PAR4
reg06=0xB0; //PAR5
}
主程序是这样的:main()
{
delay(1000);
netcardreset();
ne2000init();
writemynodeid();
TMOD=0x20;
TL1=0xfd;
TH1=0xfd;
SCON=0x50;
PCON=0x00;
TR1=1;
page(1);
while(1)
{ SBUF=reg01;
while(TI==0);
TI=0;
SBUF=reg02;
while(TI==0);
TI=0;
SBUF=reg03;
while(TI==0);
TI=0;
SBUF=reg04;
while(TI==0);
TI=0;
SBUF=reg05;
while(TI==0);
TI=0;
SBUF=reg06;
while(TI==0);
TI=0;
}
}
结果我通过串口读出来的数是:00 4C 4C 00 00 82;有时是别的数据。都不是我刚刚学入的
数据。
另外:我还将62256中的arp数据包(42个字节,不够60个网卡会自动我我们加上吧??)通
过remoteDMA送到0x4000单元,然后remote读回来通过串口到计算机上,也不是一串错误的
东西。(注:我已经试过直接将62256中的改arp数据包通过串口验证一下,数据显示是正确
的)
现在问题好像是读写网卡的都出错了!(地址线,数据线我都测试过了)
请您赐教!非常感谢!