這幾天在調(diào)CH375,但是開始的測(cè)試就不通,不知道是怎么回事,看了別人的貼子檢查硬件似乎也沒(méi)問(wèn)題.帖一下程序,各位幫我看看吧,謝了
void CH375_WR_CMD_PORT( UINT8 cmd ) { Delay2us(); CH375_CMD_PORT=cmd; Delay2us(); }
void CH375_WR_DAT_PORT( UINT8 dat ) { CH375_DAT_PORT=dat; Delay1us(); /* 如果是MCS51單片機(jī),因其較慢,所以實(shí)際上無(wú)需延時(shí) */ }
UINT8 CH375_RD_DAT_PORT( void ) { Delay1us(); /* 如果是MCS51單片機(jī),因其較慢,所以實(shí)際上無(wú)需延時(shí) */ return( CH375_DAT_PORT ); }
/* CH375初始化子程序 */ void CH375_Init( void ) { UINT8 i; UINT8 j;
#define TEST_CH375_FIRST
#ifdef TEST_CH375_FIRST /* 測(cè)試CH375與單片機(jī)的物理連接是否正常以及是否正常工作,可選操作,通常不需要 */ CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 測(cè)試CH375是否正常工作 */ Delay2us( ); /* 如果時(shí)鐘頻率低于16MHz則無(wú)需該指令延時(shí) */ CH375_WR_DAT_PORT( 0x55); /* 寫入測(cè)試數(shù)據(jù),任意數(shù)據(jù) */ Delay2us( ); i =~ 0x55; /* 返回?cái)?shù)據(jù)應(yīng)該是測(cè)試數(shù)據(jù)取反 */ if ( CH375_RD_DAT_PORT( ) != i ) { /* 就是在這出問(wèn)題,CH375不正常 */ for ( i=80; i!=0; i-- ) { CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* 多次重復(fù)發(fā)命令,執(zhí)行硬件復(fù)位 */ CH375_RD_DAT_PORT( ); } CH375_WR_CMD_PORT( 0 ); for ( i=250; i!=0; i-- ) for( j=100; j!=0; j-- ) Delay2us( ); /* 延時(shí)50mS */ }
#endif