電路連接方式 單片機 模塊 P0 = D0-D7 RD = RD# WR = WR# P2.7 = CS# P2.4 = A0 P2.6= INT#
程序如下:#include #include #include #include
#define MAX_PATH_LEN 32 /* 最大路徑長度,含所有斜杠分隔符和小數(shù)點間隔符以及路徑結束符00H,CH375模塊支持的最大值是64,最小值是13 */ #include "CH375HM.H"
/* 電路連接方式 單片機 模塊 P0 = D0-D7 RD = RD# WR = WR# P2.7 = CS# 如果沒有外部RAM,那么CS#=P26,如果有超過16KB的外部RAM,那么CS#=P27 & ! P26 & ...,所以CS#的片選地址為BXXXH P2.4 = A0 p2.6= INT# 雖然連接到INT0,但是本程序只是查詢模塊的INT#的狀態(tài),所以可以用P1口等普通I/O引腳代替INT0 說明 沒有外界RAM 使用STC89C58RD
*/ sbit INT = P2^6; sbit P1_0 = P1^0; #define CH375HM_INDEX XBYTE[0x60F0] /* CH375模塊的索引端口的I/O地址 */ #define CH375HM_DATA XBYTE[0x70F1] /* CH375模塊的數(shù)據(jù)端口的I/O地址 */ #define CH375HM_INT_WIRE INT /* 假定CH375模塊的INT#引腳連接到單片機的INT0引腳 */
/* 假定文件數(shù)據(jù)緩沖區(qū): ExtRAM: 0000H-7FFFH */ unsigned char xdata DATA_BUF[ 512 * 64 ] _at_ 0x0000; /* 外部RAM的文件數(shù)據(jù)緩沖區(qū),從該單元開始的緩沖區(qū)長度不小于一次讀寫的數(shù)據(jù)長度,最少為512字節(jié) */
CMD_PARAM mCmdParam; /* 默認情況下該結構將占用64字節(jié)的RAM,可以修改MAX_PATH_LEN常量,當修改為32時,只占用32字節(jié)的RAM */ unsigned char mIntStatus; /* CH375模塊的中斷狀態(tài)或者操作完成狀態(tài) */
sbit LED_OUT = P1^4; /* P1.4 低電平驅動LED顯示,用于監(jiān)控演示程序的進度 */
/* 對于模擬的并口讀寫時序或者其它并口讀寫方式,請修改以下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ù) */
/* 以毫秒為單位延時,適用于24MHz時鐘 */ void mDelaymS( unsigned char delay ) { unsigned char i, j, c; for ( i = delay; i != 0; i -- ) { for ( j = 200; j != 0; j -- ) c += 3; /* 在24MHz時鐘下延時500uS */ for ( j = 200; j != 0; j -- ) c += 3; /* 在24MHz時鐘下延時500uS */ } } 以后的和例子一樣??! 接U盤 一直提示 錯誤 80 或FF 是什么錯誤啊