电路连接方式 单片机 模块 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 /* 最大路径长度,含所有斜杠分隔符和小数点间隔符以及路径结束符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#的状态,所以可以用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模块的数据端口的I/O地址 */ #define CH375HM_INT_WIRE INT /* 假定CH375模块的INT#引脚连接到单片机的INT0引脚 */
/* 假定文件数据缓冲区: ExtRAM: 0000H-7FFFH */ unsigned char xdata DATA_BUF[ 512 * 64 ] _at_ 0x0000; /* 外部RAM的文件数据缓冲区,从该单元开始的缓冲区长度不小于一次读写的数据长度,最少为512字节 */
CMD_PARAM mCmdParam; /* 默认情况下该结构将占用64字节的RAM,可以修改MAX_PATH_LEN常量,当修改为32时,只占用32字节的RAM */ unsigned char mIntStatus; /* CH375模块的中断状态或者操作完成状态 */
sbit LED_OUT = P1^4; /* P1.4 低电平驱动LED显示,用于监控演示程序的进度 */
/* 对于模拟的并口读写时序或者其它并口读写方式,请修改以下3个子程序 */ #define CH375HM_INDEX_WR( Index ) { CH375HM_INDEX = (Index); } /* 写索引地址 */ #define CH375HM_DATA_WR( Data ) { CH375HM_DATA = (Data); } /* 写数据 */ #define CH375HM_DATA_RD( ) ( CH375HM_DATA ) /* 读数据 */
/* 以毫秒为单位延时,适用于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 是什么错误啊