寫指令數(shù)據(jù)不對(duì)

1,我用的是STC58和375S,我的硬件電路是用的T0接的A0,片選CS直接接地.所以理論上我的375硬件地址可以任意設(shè)定,我設(shè)的數(shù)據(jù)/和指令地址分別為:0XFEF0/0XFFF0;

2,在寫指令的時(shí)候T1置1,在讀/寫數(shù)據(jù)的時(shí)候T0置低.下載程序后,插上U盤有中斷,但無論是寫測試信號(hào)還是其他操作從375返回的都是FF00????,在寫入獲取中斷狀態(tài)并清中斷的指令后,不能清中斷,(貌似該指令沒起作用)

不知道什么原因,個(gè)人認(rèn)為是不是不應(yīng)該用T0去控制區(qū)別指令和數(shù)據(jù)操作指令請斑竹指點(diǎn)!!!!!!!!!!!!

根據(jù)你的地址可以使用P2.0接375的A0引腳


(1)T0接的A0,那么應(yīng)是模擬I/O方式操作CH375,不存在地址一說 (2)主機(jī)模式設(shè)置成功沒?若沒,確認(rèn)單片機(jī)與CH375之間的軟硬件接口是否正常,用測試命令測試 (3)參考下面的讀寫時(shí)序 sbit CH375_A0 = P1^0; sbit CH375_CS = P1^1; sbit CH375_WR = P1^2; sbit CH375_RD = P1^3; void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫命令 */ { //*(UINT8XV *)0XBDF1 = mCmd; //return; mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延時(shí)1uS */ P0 = mCmd; /* 向CH375的并口輸出數(shù)據(jù) */ CH375_A0 = 1; CH375_CS = 0; CH375_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH375芯片的命令端口 */ CH375_CS = 0; /* 該操作無意義,僅作延時(shí),CH375要求讀寫脈沖寬度大于100nS */ CH375_WR = 1; /* 輸出無效的控制信號(hào), 完成操作CH375芯片 */ CH375_CS = 1; CH375_A0 = 0; P0 = 0xFF; /* 禁止數(shù)據(jù)輸出 */ mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延時(shí)2uS */ }

void xWriteCH375Data( UINT8 mData ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫數(shù)據(jù) */ { //*(UINT8XV *)0XBCF0 = mData; //return; P0 = mData; /* 向CH375的并口輸出數(shù)據(jù) */ CH375_A0 = 0; CH375_CS = 0; CH375_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH375芯片的數(shù)據(jù)端口 */ CH375_CS = 0; /* 該操作無意義,僅作延時(shí),CH375要求讀寫脈沖寬度大于100nS */ CH375_WR = 1; /* 輸出無效的控制信號(hào), 完成操作CH375芯片 */ CH375_CS = 1; P0 = 0xFF; /* 禁止數(shù)據(jù)輸出 */ mDelay1_2uS( ); /* 至少延時(shí)1.2uS */ }

UINT8 xReadCH375Data( void ) /* 外部定義的被CH375程序庫調(diào)用的子程序,從CH375讀數(shù)據(jù) */ { UINT8 mData; //return( *(UINT8XV *)0XBCF0 ); mDelay1_2uS( ); /* 至少延時(shí)1.2uS */ P0 = 0xFF; /* 輸入 */ CH375_A0 = 0; CH375_CS = 0; CH375_RD = 0; /* 輸出有效寫控制信號(hào), 讀CH375芯片的數(shù)據(jù)端口 */ CH375_CS = 0; /* 該操作無意義,僅作延時(shí),CH375要求讀寫脈沖寬度大于100nS */ mData = P0; /* 從CH375的并口輸入數(shù)據(jù) */ CH375_RD = 1; /* 輸出無效的控制信號(hào), 完成操作CH375芯片 */ CH375_CS = 1; return( mData ); }


1.我CS直接接的低電平,沒影響吧? 2.機(jī)模式設(shè)置沒成功,確認(rèn)單片機(jī)與CH375之間的軟硬件接口是正常的,用測試命令測試,返回是0XFF00. 3.再問375S和375A/B有什么區(qū)別,我的是375S


這個(gè)沒有區(qū)別,如果返回0XFF的話,那么硬件上面還是有問題,你首先先檢測下芯片的25,26腳,正常的情況的話,25腳為低,26腳為高,還有你的系統(tǒng)工作的電壓是多少?


25腳為低,26腳為高 `這錯(cuò)了` 25是高`26是低才正常


hcn: 1.我返回的是0XFF00,用的是單面板做的扳子 2.以前我的375在插入U(xiǎn)盤時(shí)有中斷產(chǎn)生 3.我重新做了扳子后測得25腳為高,26腳為低,資料上說明25是高`26是低才正常,你的回復(fù)是不是筆誤???


你可以把電路圖貼出來看看,估計(jì)是你的程序有問題,讀寫子函數(shù)有問題 正常的情況下,25為低,26為高,不是筆誤,復(fù)位完成后25為低,26為高.資料上說的是25輸出高電平的復(fù)位信號(hào)供其他芯片復(fù)位,26輸出低電平的復(fù)位信號(hào)供其他芯片復(fù)位.復(fù)位完成后25為低,26為高


電路圖就是官網(wǎng)上的,只是片選用的是直接接地,A0接的是P2.6,當(dāng)然地址用的是0XFFF0,和0XBFF0 系統(tǒng)電壓是5V,現(xiàn)在上電的、后測得25為高26,為低,應(yīng)該是什么原因呢?


XI=1.8V ,XO=2.5V


晶振已經(jīng)起振了.那這樣的話,芯片沒有復(fù)位成功. 你把電路傳上來看看,檢查你的硬件2腳,是高電平還是低電平.確定要用12MHZ的晶振


2腳是高電平,是12M的晶振,我換了一個(gè)晶振XI=1.98V,XO=2.86V.


當(dāng)RSTI 引腳為高電平時(shí),CH375芯片被復(fù)位;當(dāng)RSTI 引腳恢復(fù)為低電平后,CH375 會(huì)繼續(xù)延時(shí)復(fù)位35mS 左右,然后進(jìn)入正常工作狀態(tài).那你檢查你的375的第2腳怎么回事吧,怎么會(huì)為高電平呢?外部把375的第2腳強(qiáng)制拉為高電平了.正常情況為低電平?您的電路不方面給我們看看嗎?盡量貼出來



論壇不能貼圖 我把電路發(fā)你郵箱了


沒有收到 發(fā)送到tech@wch.cn郵箱.


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

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