做測試CH375是否正常的測試,但是怎么返回是0x5f?。????[求助]

我用CMD_CHECK_EXIST做測試375是否正常工作,輸入數(shù)據(jù)是0X5A,那么若375正常工作的話,讀出來的數(shù)應(yīng)該是0xA5,但是怎么我讀出來的數(shù)是0X5F呢? 這樣的數(shù)是不是首先說明375是工作了(復(fù)位成功,晶振振動),只是硬件的IO口連接錯誤,如果是這樣的化,應(yīng)該是怎么連接? 很急的問題啊,請高手指點(diǎn)指點(diǎn)?。?!謝謝拉!

你再發(fā)送數(shù)據(jù)AA看測試出的數(shù)據(jù)是什么.從發(fā)送55測試來看,好象根本沒有執(zhí)行成功. 一般來說測試命令錯誤是由于硬件連接錯誤,或者讀寫子函數(shù)有問題.你去檢查一下硬件連線.


發(fā)送AA 返回的還是5F啊 請問是怎么回事???急啊


返回0x5F 說明你的命令操作失敗. 你把你的硬件原理圖貼出來看看.


我的硬件是at89s51+ch375,51的p0口接375的D0-D7,51的WR,RD接375的WR,RD,375的cs直接接地,A0接51的p2.0 就這么簡單的 我的測試程序是: #include #include "CH375INC.H" #include

#define CH375_DATA_PORT P0 #define CMD_RET_SUCCESS 0x51 /* 命令操作成功 */ sbit CH375_CMD_DAT=P2^0; sbit CH375_RD=P3^7; sbit CH375_WR=P3^6 ; sbit CH375_INT_WIRE=P3^2;

void delay50ms(); void delay1s(); void CH375_WR_CMD_PORT(unsigned char cmd) ; void CH375_WR_DAT_PORT(unsigned char dat) ; unsigned char CH375_RD_DAT_PORT(void) ; unsigned char wait_interrupt(void);

void delay50ms() { unsigned char i,j; for(i=100;i!=0;i--) for(j=250;j!=0;j--); {_nop_(); _nop_(); } } void CH375_WR_CMD_PORT(unsigned char cmd) { _nop_(); _nop_(); CH375_DATA_PORT=cmd;

_nop_(); _nop_();

}

void CH375_WR_DAT_PORT(unsigned char dat) { _nop_(); _nop_();

CH375_DATA_PORT=dat; _nop_(); _nop_(); }

unsigned char CH375_RD_DAT_PORT(void) { unsigned char recv_data=0x00;

_nop_(); _nop_(); recv_data=CH375_DATA_PORT; return (recv_data); }

void main(void) { unsigned char i,k; unsigned char ch=0x00;

SCON=0x50; //工作方式1 允許串行接收 PCON=0x80; //SMOD=1 TMOD=0x20; //定時計數(shù)器1 工作方式2 8-bit 自動加載 TL1=0xF3; TH1=0xF3; //波特率為9600 fosc=11.0592 若fosc=24MHZ 則TH1=oxF2 TR1=1; IP=0x10; EA=1; //開啟定時計數(shù)器1 ES=1; //串行接收中斷

for(k=500;k!=0;k--) { CH375_WR_CMD_PORT(CMD_CHECK_EXIST); i=0X55; CH375_WR_DAT_PORT(i); i=~i; ch=CH375_RD_DAT_PORT(); SBUF=ch; while(!TI) ; TI=0; if(ch!=i) { for(i=80;i!=0;i--) { CH375_WR_CMD_PORT(CMD_RESET_ALL); CH375_RD_DAT_PORT(); } CH375_WR_CMD_PORT(0); delay50ms(); }

}

} 哪里出問題了???


我的用CH375坐的USB主機(jī)也不工作,發(fā)送0xA6的時間沒有中斷發(fā)生,該是什么問題的,高手給以指點(diǎn)呀


TO:wangyy6552 您到底是總線方式還是想模擬I/O口操作CH375呢,看接口程序,像總線方式,但卻找不到375的命令口地址和數(shù)據(jù)口地址。 CH375沒有收到單片機(jī)發(fā)送的命令碼,因為CH375_CMD_DAT,CH375_WR根本沒有用到,CH375是通過A0區(qū)分?jǐn)?shù)據(jù)和命令的。 (1)建議您下載:CH375EVT.ZIP,參考\CH375EVT\PUB\MCS51C\MISCELL示例中CH375總線接口程序的寫法 (2)模擬I/O,參考下述程序 /* 單片機(jī)的引腳 CH375芯片的引腳 P3.2 INT# P1.0 A0 P1.1 CS# 如果模擬出的并口上只有CH375,那么CS#可以直接接低電平,強(qiáng)制片選 P1.2 WR# P1.3 RD# P0(8位端口) D7-D0 */ sbit CH375_A0 = P1^0; sbit CH375_CS = P1^1; sbit CH375_WR = P1^2; sbit CH375_RD = P1^3;

void mDelay1_2uS( ) /* 至少延時1.2uS,根據(jù)單片機(jī)主頻調(diào)整 */ { return; }

void CH375_PORT_INIT( ) /* 由于使用通用I/O模塊并口讀寫時序,所以進(jìn)行初始化 */ { CH375_CS = 1; CH375_WR = 1; CH375_RD = 1; CH375_A0 = 0; P0 = 0xFF; /* 并口輸入 */ }

void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫命令 */ { mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延時1uS */ P0 = mCmd; /* 向CH375的并口輸出數(shù)據(jù) */ 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( ); mDelay1_2uS( ); /* 至少延時2uS */ }

void xWriteCH375Data( UINT8 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 */ }

UINT8 xReadCH375Data( void ) /* 外部定義的被CH375程序庫調(diào)用的子程序,從CH375讀數(shù)據(jù) */ { UINT8 mData; mDelay1_2uS( ); /* 至少延時1.2uS */ P0 = 0xFF; /* 輸入 */ 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 ); }


哦 我在上面的程序中忘了說打了 我用得是總線方式 命令端口地址是 0XBDF1 數(shù)據(jù)端口的地址的0XBCF0 如果這樣的話 我上面的程序還對么?


謝謝啊 我看來您給我推薦的程序 然后改寫了一下我的程序 現(xiàn)在能輸入55給返回aa了 很感謝您


TO:SCM { M } 您好,我按您說的 CH375EVT.ZIP,參考\CH375EVT\PUB\MCS51C\MISCELL示例中CH375總線接口程序的寫法 可程序里沒說怎么配置管腳呀,怎么連線的?怎么辦?


51單片機(jī)的總線是不需要配置的。硬件連線為CS接P2.6,A0接P2.0,WR接WR,RD接RD


TO:hcn 謝謝你! 再問一個小白的問題,如果我通過單片機(jī)向U盤里寫數(shù)據(jù),會以什么形式保存呢?在U盤里能看到寫入的數(shù)據(jù)嗎?


我司的文件系統(tǒng)不關(guān)心數(shù)據(jù)格式,一般創(chuàng)建成".TXT"文件。這個數(shù)據(jù)格式是安裝ASCII碼的形式存儲。至于其他數(shù)據(jù)格式需要去查看每一個文件對應(yīng)的數(shù)據(jù)格式。


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

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