我的电路是仿效CH375的datasheet1中的并行电路画的,只是单片机的P2^7直接和ch375的cs相联,而P2^7经过7404反相后和62256的片选相联,也就是62256的地址为8000-FFFF,下面是我的简单的测试程序,为什么没反应。我用的是STC89C54RD+单片机。 #include #include "CH375INC.H" #include /* 以下定义适用于MCS-51单片机,其它单片机参照修改 */ #define UINT8 unsigned char #define UINT16 unsigned short #define UINT32 unsigned long #define UINT8X unsigned char xdata #define UINT8VX unsigned char volatile xdata UINT8VX CH375_CMD_PORT _at_ 0x0ff1; /* CH375命令端口的I/O地址 */ UINT8VX CH375_DAT_PORT _at_ 0x0ff0; /* CH375数据端口的I/O地址 */
sfr AUXR=0x8e;//声明AUXR寄存器的地址
void mDelaymS( UINT8 delay ) { UINT8 i, j, c; for ( i = delay; i != 0; i -- ) { for ( j = 200; j != 0; j -- ) c += 3; for ( j = 200; j != 0; j -- ) c += 3; } }
void CH375_WR_CMD_PORT( UINT8 cmd ) { /* 向CH375的命令端口写入命令 */ CH375_CMD_PORT=cmd; for ( cmd = 2; cmd != 0; cmd -- ); /* 发出命令码前后应该各延时2uS */ } void CH375_WR_DAT_PORT( UINT8 dat ) { /* 向CH375的数据端口写入数据 */ CH375_DAT_PORT=dat; /* 因为MCS51单片机较慢所以实际上无需延时 */ } UINT8 CH375_RD_DAT_PORT( void ) { /* 从CH375的数据端口读出数据 */ return( CH375_DAT_PORT ); /* 因为MCS51单片机较慢所以实际上无需延时 */ }
main() {
mDelaymS(200); AUXR=0x02;//禁止STC89C54RD+的内部扩展RAM
// mInitSTDIO( ); CH375_WR_CMD_PORT(CMD_SET_USB_MODE); CH375_WR_DAT_PORT(6); CH375_WR_CMD_PORT(CMD_CHECK_EXIST);//测试状态 CH375_WR_DAT_PORT(5); TEST=CH375_RD_DAT_PORT(); P1=TEST; //通过测量P1的值来判定
while(1); } 好像ch375没有工作,苦恼啊,大侠们帮帮忙,帮我分析分析,上面测试程序没错吧, 还有一般ch375不工作都有哪些情况。下面是我的PCB图。