51單片機與ch374通過并行口通訊的問題

我用51單片機與ch374通過并口通訊時,借用其它口線模擬讀寫時序,可讀寫的數(shù)據(jù)很不穩(wěn)定,時對時錯,代碼如下: /* 向索引端口寫入索引地址 ,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_(); } /* 向數(shù)據(jù)端口寫入數(shù)據(jù),索引地址自動加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_(); }

/* 從數(shù)據(jù)端口讀出數(shù)據(jù),索引地址自動加1 */ UINT8 Read374Data(void) /* 從CH374讀數(shù)據(jù) */ { UINT8 Value ; WR = 1; RD = 1; CH374A0 = CH374Data; P0 = 0xFF; RD = 0; for(Value = 0;Value<3;Value++); Value = P0; RD = 1; return Value; } 其中數(shù)據(jù)建立時間都用了for(Value = 0;Value<3;Value++);這么長還是有問題,請高手指點;

三個讀寫子函數(shù): void Write374Index( UINT8 mIndex ) /* 向CH374寫索引地址 */ { CH374_DATA_DAT_OUT( mIndex ); /* 向CH374的并口輸出數(shù)據(jù) */ CH374_DATA_DIR_OUT( ); /* 設(shè)置并口方向為輸出 */ CH374_A0 = 1; CH374_CS = 0; CH374_WR = 0; /* 輸出有效寫控制信號, 寫CH374芯片的索引端口 */ // CH374_CS = 0; /* 該操作無意義,僅作延時,CH374要求讀寫脈沖寬度大于70nS */ CH374_WR = 1; /* 輸出無效的控制信號, 完成操作CH374芯片 */ CH374_CS = 1; CH374_A0 = 0; CH374_DATA_DIR_IN( ); /* 禁止數(shù)據(jù)輸出 */ }

void Write374Data( UINT8 mData ) /* 向CH374寫數(shù)據(jù),索引地址自動加1 */ { CH374_DATA_DAT_OUT( mData ); /* 向CH374的并口輸出數(shù)據(jù) */ CH374_DATA_DIR_OUT( ); /* 設(shè)置并口方向為輸出 */ CH374_A0 = 0; CH374_CS = 0; CH374_WR = 0; /* 輸出有效寫控制信號, 寫CH374芯片的數(shù)據(jù)端口 */ // CH374_CS = 0; /* 該操作無意義,僅作延時,CH374要求讀寫脈沖寬度大于70nS */ CH374_WR = 1; /* 輸出無效的控制信號, 完成操作CH374芯片 */ CH374_CS = 1; CH374_DATA_DIR_IN( ); /* 禁止數(shù)據(jù)輸出 */ }

UINT8 Read374Data( void ) /* 從CH374讀數(shù)據(jù),索引地址自動加1 */ { UINT8 mData; CH374_DATA_DIR_IN( ); /* 設(shè)置并口方向為輸入 */ CH374_A0 = 0; CH374_CS = 0; CH374_RD = 0; /* 輸出有效寫控制信號, 讀CH374芯片的數(shù)據(jù)端口 */ CH374_CS = 0; /* 該操作無意義,僅作延時,CH374要求讀寫脈沖寬度大于70nS,強烈建議此處執(zhí)行一條空指令延時以確保并口有足夠時間輸入數(shù)據(jù) */ mData = CH374_DATA_DAT_IN( ); /* 從CH374的并口輸入數(shù)據(jù) */ CH374_RD = 1; /* 輸出無效的控制信號, 完成操作CH374芯片 */ CH374_CS = 1; return( mData ); } 你最好用示波器看一下,讀或?qū)懸粋€字節(jié),各控制線是否穩(wěn)定,是否存在脈沖干擾,導(dǎo)致讀寫不穩(wěn)定。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频