你好, 我采用ch375與單片機(jī)相連,沒有辦法按照如下 unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBDF1; /* CH375命令端口的I/O地址 */ unsigned char volatile xdata CH375_DAT_PORT _at_ 0xBCF0; /* CH375數(shù)據(jù)端口的I/O地址 */ 來與ch375通訊,那我該如何與它通訊,讓一些I/O來模擬時序嗎?能否給一些相關(guān)的例子?多謝!我已經(jīng)購買了你們的開發(fā)板了。
你可以自己來定義地址啊,影響地址的就是A0,CS# 還有就是可以用模擬口,但是要注意時序
void CH375_PORT_INIT( ) /* 由于使用通用I/O模塊并口讀寫時序,所以進(jìn)行初始化 */ { CH375_CS = 1; CH375_WR = 1; CH375_RD = 1; CH375_A0 = 0; // P1=0XFE; P0 = 0xFF; /* 并口輸入 */ }
void xWriteCH375Cmd( unsigned char mCmd ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫命令 */ { mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延時1uS */ P0 = mCmd; /* 向CH375的并口輸出數(shù)據(jù) */ mDelay1_2uS( ); CH375_A0 = 1; CH375_CS = 0; CH375_WR = 0; /* 輸出有效寫控制信號, 寫CH375芯片的命令端口 */ CH375_CS = 0; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */
CH375_WR = 1; /* 輸出無效的控制信號, 完成操作CH375芯片 */ CH375_CS = 1; CH375_A0 = 0; P0 = 0xFF; /* 禁止數(shù)據(jù)輸出 */ mDelay1_2uS( ); /* 至少延時2uS */ }
void xWriteCH375Data( unsigned char mData ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫數(shù)據(jù) */ { P0 = mData; /* 向CH375的并口輸出數(shù)據(jù) */ CH375_A0 = 0; CH375_CS = 0; CH375_WR = 0; /* 輸出有效寫控制信號, 寫CH375芯片的數(shù)據(jù)端口 */ CH375_CS = 0; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */ CH375_WR = 1; /* 輸出無效的控制信號, 完成操作CH375芯片 */ CH375_CS = 1; P0 = 0xFF; /* 禁止數(shù)據(jù)輸出 */ mDelay1_2uS( ); /* 至少延時1.2uS */ }
unsigned char xReadCH375Data( void ) /* 外部定義的被CH375程序庫調(diào)用的子程序,從CH375讀數(shù)據(jù) */ { unsigned char mData; mDelay1_2uS( ); /* 至少延時1.2uS */ P0 = 0xFF; /* 輸入 */ mDelay1_2uS( ); CH375_A0 = 0; CH375_CS = 0; CH375_RD = 0; /* 輸出有效寫控制信號, 讀CH375芯片的數(shù)據(jù)端口 */
CH375_CS = 0; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */ mData = P0; /* 從CH375的并口輸入數(shù)據(jù) */ CH375_RD = 1; /* 輸出無效的控制信號, 完成操作CH375芯片 */ CH375_CS = 1; return( mData ); } /* 延時50毫秒,不精確 */
多謝! P0 = 0xFF; /* 并口輸入 */ 是針對ch375還是mcu?
我覺得初始化時,P0設(shè)定為輸入的話,發(fā)送命令和數(shù)據(jù)時是否應(yīng)該先將P0設(shè)定為輸出?由于這個程序不全,可能我理解有誤!還請指教。
因?yàn)?1單片機(jī)的I/O口是準(zhǔn)雙向輸出口,不需要額外的確定是輸出還是輸入,不象別的單片機(jī)有一個專門的設(shè)定輸入輸出的寄存器,你在使用的時候只要將數(shù)據(jù)輸入到P0口就是輸入,只要將P0口的數(shù)據(jù)輸出的話就是輸出。
我現(xiàn)在使用的不是51就是你所說的那種呢?
那你就要設(shè)置方向啊