我用51单片机与ch374通过并口通讯时,借用其它口线模拟读写时序,可读写的数据很不稳定,时对时错,代码如下: /* 向索引端口写入索引地址 ,a为8位地址 */ void Write374Index(UINT8 addr) { WR = 1; RD = 1; CH374A0 = CH374Addr; P0 = addr; for(addr=0;addr<3;addr++); WR = 0; for(addr=0;addr<3;addr++); WR = 1; _nop_(); } /* 向数据端口写入数据,索引地址自动加1 */ void Write374Data(UINT8 d) { WR = 1; RD = 1; CH374A0 = CH374Data; P0 = d; for(d=0;d<3;d++); WR = 0; for(d=0;d<3;d++); WR = 1; _nop_(); }
/* 从数据端口读出数据,索引地址自动加1 */ UINT8 Read374Data(void) /* 从CH374读数据 */ { UINT8 Value ; WR = 1; RD = 1; CH374A0 = CH374Data; P0 = 0xFF; RD = 0; for(Value = 0;Value<3;Value++); Value = P0; RD = 1; return Value; } 其中数据建立时间都用了for(Value = 0;Value<3;Value++);这么长还是有问题,请高手指点;