USB118a U盘读写51汇编测试程序

上传人:飞*** 文档编号:42866280 上传时间:2018-06-04 格式:DOC 页数:10 大小:73KB
返回 下载 相关 举报
USB118a U盘读写51汇编测试程序_第1页
第1页 / 共10页
USB118a U盘读写51汇编测试程序_第2页
第2页 / 共10页
USB118a U盘读写51汇编测试程序_第3页
第3页 / 共10页
USB118a U盘读写51汇编测试程序_第4页
第4页 / 共10页
USB118a U盘读写51汇编测试程序_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《USB118a U盘读写51汇编测试程序》由会员分享,可在线阅读,更多相关《USB118a U盘读写51汇编测试程序(10页珍藏版)》请在金锄头文库上搜索。

1、USB118a U 盘读写盘读写 51 汇编测试程序汇编测试程序/* * * * U 盘文件读写模块盘文件读写模块 以字节为单位进行以字节为单位进行 U 盘文件读写。盘文件读写。 * MCS-51 单片机汇编示例程序单片机汇编示例程序 * 硬件连接方式硬件连接方式: 4 线制串口(电源,地,输入,输出)线制串口(电源,地,输入,输出) * * */ /*- 初始化程序初始化程序 -*/ ORG 0000H AJMP MAIN ORG 0100H /*- 主函数主函数 -*/ MAIN: MOV SP, #60H ;设置堆栈指针设置堆栈指针 MOV TMOD,#20H ;计数器计数器 1 工作在

2、方式工作在方式 2 MOV TH1, #0F3H ;晶振频率为晶振频率为 24MHZ,波特率为,波特率为 9600 MOV TL1, #0F3H ;MOV TH1, #0FAH ;晶振频率为晶振频率为 11.0592MHZ,波特率为波特率为 9600 ;MOV TL1, #0FAH MOV PCON,#80H ;smod 为为 1 SETB TR1 ;启动计时启动计时 MOV SCON,#40H /*- 延时是由于本人所用的单片机和延时是由于本人所用的单片机和 USB118A 是同一电源供电,是同一电源供电, 起初上电复位后由于起初上电复位后由于 USB118A 要进行要进行 U 盘检测,延时

3、大约让检测完成即可发送指令盘检测,延时大约让检测完成即可发送指令 -*/ MOV R1,#10H ;闪烁闪烁 10 次次 ML: LCALL DELAY LCALL DELAY ;延时延时 LCALL DELAY LCALL DELAY DJNZ R1,ML /检测检测 U 盘是否连接正常盘是否连接正常 USB_Detect: CLR EA ;关闭中断关闭中断 CLR REN ;关闭接收位关闭接收位 MOV DPTR, #Detect ;检测检测 U 盘命令初址盘命令初址 MOV R7, #66 ;R7 定义为将要发送的字节数定义为将要发送的字节数 LCALL SEND ;调用发送子程序调用发

4、送子程序 SETB REN ;打开接收位打开接收位 JNB RI,$ ;等待接收到数据等待接收到数据 CLR RI MOV A,SBUF ;接收应答码接收应答码 CJNE A,#04H,OUT1 ;04 检测应答码,对则继续执行检测应答码,对则继续执行 判断是否成功执行判断是否成功执行 否则否则 转错误处理转错误处理 JNB RI,$ ;等待接收到数据等待接收到数据 CLR RI MOV A,SBUF ;接收应答信号接收应答信号 CJNE A,#01H,OUT1 ;01 判断是否成功执行,成功则继续执行判断是否成功执行,成功则继续执行 否则转错误处理否则转错误处理 /create file L

5、CALL CRT JNB RI,$ ;等待接收到数据等待接收到数据 CLR RI MOV A,SBUF ;接收应答码接收应答码 CJNE A,#0AH,OUT1 ;0A 检测应答码,对则继续执行检测应答码,对则继续执行 判断是否成功执行判断是否成功执行 否则否则 转错误处理转错误处理 JNB RI,$ ;等待接收到数据等待接收到数据 CLR RI MOV A,SBUF ;接收应答信号接收应答信号 CJNE A,#01H,OUT1 ;01 判断是否成功执行,成功则继续执行判断是否成功执行,成功则继续执行 否则转错误处理否则转错误处理 /open file LCALL OP JNB RI,$ ;等

6、待接收到数据等待接收到数据 CLR RI MOV A,SBUF ;接收应答码接收应答码 CJNE A,#0DH,OUT1 ;0D 检测应答码,对则继续执行检测应答码,对则继续执行 判断是否成功执行判断是否成功执行 否则否则 转错误处理转错误处理 JNB RI,$ ;等待接收到数据等待接收到数据 CLR RI MOV A,SBUF ;接收应答信号接收应答信号 CJNE A,#01H,OUT1 ;01 判断是否成功执行,成功则继续执行判断是否成功执行,成功则继续执行 否则转错误处理否则转错误处理 /write data LCALL WRT SJMP $ MOV IE,#93H RET /*- 函数

7、功能:当为检测到函数功能:当为检测到 U 盘时,从新发送指令检测盘时,从新发送指令检测 -*/ OUT1: MOV R7,#66 ;R7 定义为将要发送的字节数定义为将要发送的字节数 LJMP USB_Detect ;检测到检测到 u 盘未成功,重新检测盘未成功,重新检测 RET /*- 函数功能:函数功能:Create file -*/ CRT: CLR REN ;关闭接收位关闭接收位 LCALL DELAY MOV R7, #66 ;R7 定义为将要发送的字节数定义为将要发送的字节数 MOV DPTR,#Create ;建立文件命令初址建立文件命令初址 LCALL SEND ;调用发送子程

8、序调用发送子程序 NOP NOP NOP SETB REN ;打开接收位打开接收位 RET /*- 函数功能:函数功能:Open file -*/ OP: CLR REN ;关闭接收位关闭接收位 LCALL DELAY MOV R7, #66 ;R7 定义为将要发送的字节数定义为将要发送的字节数 MOV DPTR,#Open ;打开文件命令初址打开文件命令初址 LCALL SEND ;调用发送子程序调用发送子程序 NOP NOP NOP SETB REN ;打开接收位打开接收位 RET /*- 函数功能:函数功能:Write data -*/ WRT: CLR REN ;关闭接收位关闭接收位

9、LCALL DELAY MOV R7,#66 ;R7 定义为将要发送的字节数定义为将要发送的字节数 MOV DPTR,#Write ;写文件命令初址写文件命令初址 LCALL SEND ;发送数据发送数据 MOV R7,#15 ;此处是将要发送的写入数据的字节数此处是将要发送的写入数据的字节数 ON: MOV DPTR,#Date1 ;数据初地址数据初地址 LCALL SEND ;发送数据发送数据 NOP NOP SETB REN ;打开接收位打开接收位 RET /*- 函数功能:函数功能:ReMOVe file -*/ REM: CLR REN ;关闭接收位关闭接收位 LCALL DELAY

10、 MOV DPTR,#Remove ;设置删除命令初址设置删除命令初址 LCALL SEND ;发送命令发送命令 NOP NOP NOP SETB REN ;打开接收位打开接收位 RET /*- 函数功能:设置文件指针函数功能:设置文件指针 -*/ SFP: CLR REN ;关闭接收位关闭接收位 LCALL DELAY MOV R7,#66 MOV DPTR,#SetFilePointer ;设置文件指针命令初址设置文件指针命令初址 LCALL SEND ;发送命令发送命令 NOP NOP NOP SETB REN ;打开接收位打开接收位 RET /*- 函数功能:函数功能:Read file -*/ RAD: CLR REN ;关闭接收位关闭接收位 LCALL DELAY MOV R7,#66 MOV DPTR,#Read ;设置读命令初址设置读命令初址 LCALL SEND ;发送命令发送命令 NOP NOP NOP SETB REN ;打开接收位打开接收位 RET /*-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号