使用U盘读写模块程序的若干问题 汇编版CH375HMP.ASM 1:编译过不了 它的头文件是这样定义的 ;$include (REG51.INC) $include (CH375HM.INC)
这样声明说明REG51.INC没有包含进去,刚好我的电脑里也没有reg51.inc,不知道从哪能搞到,所以编译器不认识INT0,只能手动换成 P3^2 CH375HM.INC是包含进去了,可是编译说重复定义CY,可是在这两个文件中都找不到CY,不知道为什么,望指教,如果不包含CH375HM.INC,出来一大堆未定义的符号,一个一个按CH375HM.INC中改过来实在是太麻烦了,程序也更难看懂了。
2:文件中有这样的定义
mCmdParam DATA 20H ;默认情况下该结构将占用64字节的RAM,可以修改MAX_PATH_LEN常量,当修改为32时,只占用32字节的RAM,并口最大值62 SECTOR_COUNT DATA 1DH ;文件占用扇区数 NEW_SIZE_HIGH DATA 1EH ;文件长度的高字节 NEW_SIZE_LOW DATA 1FH ;文件长度的低字节
mCmdparam 是做什么的啊,看不太懂,希望解释详细点
3:有如下定义 CH375HM_INDEX XDATA 0BCF0H ;CH375模块的索引端口的I/O地址 CH375HM_DATA XDATA 0BDF1H ;CH375模块的数据端口的I/O地址 可是在后面的ExecCommand程序中却有多次这样的注释
MOV R6,DPH ;对于读写文件数据命令,保存外部RAM缓冲区起始地址 MOV R4,DPL MOV DPTR,#CH375HM_INDEX CLR A MOVX @DPTR,A ;索引地址为0 MOV DPTR,#CH375HM_DATA MOV A,R7 MOVX @DPTR,A ;向索引地址0写入命令码 ; MOV DPTR,#CH375HM_DATA MOV A,R5 MOVX @DPTR,A ;向索引地址1写入后续参数的长度 JZ ExecCommand_W0 ;没有参数 MOV R0,#mCmdParam; ;指向输入参数的起始地址 ; MOV DPTR,#CH375HM_DATA
在执行 MOV DPTR,#CH375HM_DATA MOV A,R7 MOVX @DPTR,A ;向索引地址0写入命令码 以后,地址应该是数据的I/O了啊,为什么注释一直是索引地址,还有为什么会连着两次对数据指针去数据I/O地址?有区别吗??
昨天刚拿到U盘读写模块,上面是我刚看了一会程序所遇到的问题,ExecCommand程序太长,倒来倒去看的我头都大了,所以跑这里来捣乱。因为我是初学者,可能问的问题有点弱智,但真心希望得到大家的帮助。
我只想用U盘读写模块加一个单片机实现往U盘里写程序的功能,读都不要,可是示例程序却过不了,我也还没到自己写的程序。如果哪为沁恒的好心大哥大姐在的话,帮忙提供一个。不胜感激,我会继续购买你们的产品的。用并口通知,查询都行,外部单片机已经扩了一个62256,RAM是够的。
另外,真心希望哪为老鸟可以帮我看看,调试一下程序。就是CH375HMP.ASM,好象有下载,如果没有我可以传上来。我像瞎子走夜路,周围连个可以求教的都没有,