各位大俠幫幫我

今天看那個U盤的讀寫模塊的文件,有幾點不是很明白:望大家賜教:萬分感謝! #define CH375HM_INDEX XBYTE[0xBCF0] /* CH375模塊的索引端口的I/O地址 */ #define CH375HM_DATA XBYTE[0xBDF1] /* CH375模塊的數(shù)據(jù)端口的I/O地址 */ 索引端口和數(shù)據(jù)端口的地址是如何計算出來的?為什么要放在數(shù)組XBYTE[0XBCF0]里面?? /* 對于模擬的并口讀寫時序或者其它并口讀寫方式,請修改以下3個子程序 */ #define CH375HM_INDEX_WR( Index ) { CH375HM_INDEX = (Index); } /* 寫索引地址 */ #define CH375HM_DATA_WR( Data ) { CH375HM_DATA = (Data); } /* 寫數(shù)據(jù) */ #define CH375HM_DATA_RD( ) ( CH375HM_DATA ) /* 讀數(shù)據(jù) */ 這一段程序實現(xiàn)什么功能??/* 對于模擬的并口讀寫時序或者其它并口讀寫方式,請修改以下3個子程序 */這一句如何解釋?

1、索引端口和數(shù)據(jù)端口的地址其實是由A0和CS#來決定的。CS#=0,A0=1時為數(shù)據(jù)端口;CS#=0,A0=0時為索引端口; 2、這三個讀寫子程序是對375的低層操作:寫命令,寫數(shù)據(jù),讀數(shù)據(jù);這里才用的掛到單片機總線的連接方式,采用模擬并口或其他并口方式得對這三個函數(shù)進行修改。


那我能不能這樣編寫寫命令語句: CS=0; A0=0; P0=命令;


向索引地址寫入63 CH375HM_INDEX_WR( 63 ); /* 寫入索引地址63 */

是個什么概念??63的含義又是什么??希望各位大蝦不吝賜教!


大體是這樣的: 寫命令: 向并口輸出數(shù)據(jù)、A0=1 ;注意,A0一定要在CS和WR變化之前 CS=0和WR=0 延時幾十納秒 CS=1和WR=1 I/O禁止輸出、A0=0 ;注意,A0一定要在CS和WR變化之后,建議操作完后的A0默認為低電平 寫數(shù)據(jù): 向并口輸出數(shù)據(jù)、A0=0 CS=0和WR=0 延時幾十納秒 CS=1和WR=1 ;如果A0默認為低電平,則一定要注意,A0不能早于CS和WR為高電平 I/O禁止輸出 讀數(shù)據(jù): 并口I/O方向設為輸入 A0=0 ;注意,A0一定要在CS和WR變化之前,如果A0默認為低電平則此處可省掉 CS=0和RD=0 延時幾十納秒 ;對于低速單片機無所謂,對高速單片機很關鍵,要讓并口有20nS的準備時間 從并口輸入數(shù)據(jù) CS=1和RD=1

CH375HM_INDEX_WR( 63 ); /* 寫入索引地址63 */ 相當于偏移到這個地址,再發(fā)讀命令可以從索引地址63讀取中斷狀態(tài) 。


謝謝大哥,套用今年春晚的話:您太有才啦!!

不過小弟還有不明白的地方還希望大哥賜教,: 索引地址是個什么概念??它的作用是什么? 是否一定需要??我采用您上述的編程,模擬并口; 我可否這樣操作: 假設U盤插入,中斷,我這時候去讀取并口的數(shù)據(jù),把讀到的數(shù)作為狀態(tài)返回單片機處理??


我們的并口模塊上有一個421芯片,索引地址相對于421來說的,具體你可以下載CH421DS1.PDF。 你采用模擬并口的話,只需要修改三個讀寫子程序,其他的可以直接參考并口的例子程序。


謝謝大哥


我能這樣編程嗎?? 假設我的單片機P0接 421的Y口 P27---YA0 P26------YRD P25-------YWR CS 接地強制片選 #define unsigned char uchar void CH375HM_INDEX_WR( uchar Index )//指向索引口 {YA0=0;//指向索引口 P0=Index; } uchar CH375HM_DATA_RD(void ) {uchar dat; YA0=1;指向數(shù)據(jù)口 YRD=0;讀 P0=0XFF; dat=P0; return(dat); } void CH375HM_DATA_WR( uchar Data ) {YA0=1;指向數(shù)據(jù)口 YWR=0;寫 P0=Data;

}

我這個程序可以對U盤讀寫模塊標準板操作嗎??因為我想買這塊板作畢業(yè)設計, 那塊板引出的腳有那些?? 能給出個簡單圖嗎??


模擬并口的三個讀寫子程序不是你所想的這樣,而是通過控制WR#,RD#,CS#,A0信號線來模擬一個讀寫時序出來。 你用的MCU為89S51,直接掛到總線上操作不是更簡單嗎,大體是這樣連接: 單片機 模塊 P0 = D0-D7 RD = RD# WR = WR# ? = CS# 如果沒有外部RAM,那么CS#=P26,如果有超過16KB的外部RAM,那么CS#=P27 & ! P26 & ...,所以CS#的片選地址為BXXXH P20 = A0 P15 = STA# INT0 = INT# 雖然連接到INT0,但是本程序只是查詢模塊的INT#的狀態(tài),所以可以用P1口等普通I/O引腳代替INT0

其實你不用關心421芯片,這只是一個雙緩沖芯片,只要考慮單片機與模塊給出的引腳相連就可以了。 簡單連接圖可以參考說明文檔CH375HMP.PDF,至于PCB圖的話,你可以到網(wǎng)上下載PCB375HM.ZIP,下載權限的話你可以向銷售申請一下。


可是我就不大喜歡掛在總線上,因為我的P0 和P2口都有具體用途了 怎么辦?。??


在你們的下載頁面找不到PCB375HM.ZIP這個東西


在在線下載頁面下不是有嗎?


技術資料 應用資料 其他資料都翻了好像沒有


能給個不用掛在總線上操作的例子程序嗎??就是不用去 定義那個索引口和數(shù)據(jù)口的地址的


1.搜索PCB,在第二頁PCBCH375HM.ZIP就是的 2.你可以根據(jù)上面說的時序流程,模擬自己的端口時序


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

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