哪位朋友能发个纯51汇编的读写U盘的程序。

哪位朋友能发个纯51汇编的读写U盘的程序。谢谢!

我也需要汇编的读写U盘程序,如果有的话发给我一下,谢谢拉!个人信息保护,已隐藏


有很多C的东西,不过我现在不会C啊有汇编的话我会给你发的,斑竹说有汇编的可以下载,不过里面还是有些C的成分,还是看不懂,学C吧,我现在也正在改学C ,但是我现在急用汇编的。


exam5是用汇编写的,编译时还要将库文件包含到项目中,如果用的是WAVE等仿真,需要指定库文件的路径


不太懂,能否给出具体步骤!


能够读U盘1扇区,但写入总是不成功,每写入64字节都能返回1EH,但第九次返回1FH失败.望高人指点. 使用时先调用USB初始化,延时,再调用rsq或wsq

rsq: mov 08h,#00h ;读扇区,4字节地址 mov 09h,#04h mov 0ah,#40h mov 0bh,#00h mov 0ch,#01h ;读出扇区数 mov r0,#08h mov r2,#05h mov a,#54h ;读命令 setb tb8 lcall wup ;写入命令 clr tb8 rsq1: mov a,@r0 ;写入地址、扇区数 lcall wup inc r0 djnz r2,rsq1 setb tb8 jb p3.2,$ ;等待中断 rsq2: mov a,#22h ;取中断状态命令 lcall wup clr ri lcall ys jnb ri,rsq2 mov a,sbuf ;取状态 cjne a,#1dh,rsq4 ;是否请求读出 mov a,#28h ;写读出命令 lcall wup jnb ri,$ mov r2,sbuf ;读出字节数 clr ri rsq3: jnb ri,$ mov a,sbuf clr ri cjne a,#08h,rsq5 ;mov @r0,a ;inc r0 rsq5: djnz r2,rsq3 mov a,#55h lcall wup jb p3.2,$ sjmp rsq2 rsq4: clr led ret

wsq: mov 08h,#00h ;4字节地址 mov 09h,#04h mov 0ah,#40h mov 0bh,#00h mov 0ch,#01h ;写入扇区数 mov r0,#08h mov r2,#05h mov r3,#08h mov a,#56h ;写命令 setb tb8 lcall wup ;写入命令 clr tb8 wsq1: mov a,@r0 ;写入地址、扇区数 lcall wup inc r0 djnz r2,wsq1 lcall ys jb p3.2,$ ;等待中断 lcall ys setb tb8 wsq2: mov a,#22h ;取中断状态命令 lcall wup clr ri lcall ys jnb ri,wsq2 mov a,sbuf ;mov 7fh,a cjne a,#1eh,wsq5 ;是否请求写入缓冲区 setb tb8 mov a,#2bh ;写缓冲区命令 lcall wup clr tb8 mov a,#40h ;写字节数 mov r2,#40h lcall wup wsq3: mov a,#06h lcall wup inc r0 djnz r2,wsq3 setb tb8 mov a,#22h ;取中断状态命令 lcall wup clr ri lcall ys jnb ri,$ mov a,sbuf cjne a,#1eh,wsq5 setb tb8 mov a,#57h lcall wup jb p3.2,$ djnz r3,wsq2 wsq4: clr led wsq5: ret

adcj: mov ADC_CONTR,#0e9h adcj2: mov a,ADC_CONTR anl a,#10h jz adcj2 mov a,adc_data mov 7fh,a mov a,adc_low2 mov r0,#80h mov @r0,a lcall wee ret

usb: setb tb8 ;初始化USB mov a,#06h ;测试工作状态 lcall wup clr tb8 mov a,#57h ;测试字 lcall wup clr ri lcall ys jnb ri,$ mov a,sbuf clr ri cjne a,#0a8h,usb1 sjmp usb2 ;测试字取反=a8正常 usb1: lcall cys sjmp usb usb2: setb tb8 mov a,#15h ;设置工作模式 lcall wup clr tb8 mov a,#06h ;主机方式 lcall wup lcall ys usb3: jnb ri,$ mov a,sbuf clr ri cjne a,#51h,usb3 ;设置是否完成 setb tb8 ;设置完成 mov a,#51h ;初始化U盘 lcall wup jb p3.2,$ setb p3.2 usb4: mov a,#22h lcall wup lcall ys usb5: jnb ri,usb4 mov a,sbuf clr ri cjne a,#14h,usb5 mov a,#59h ;询问U盘是否准备好 lcall wup jb p3.2,$ usb6: mov a,#22h lcall wup lcall ys usb7: jnb ri,usb6 mov a,sbuf clr ri cjne a,#14h,usb7 ret

wup: clr ti ;写U盘一字节 mov sbuf,a jnb ti,$ lcall ys ret

rup: jnb ri,$ ;读U盘一字节 mov a,sbuf clr ri lcall ys ret


只有登录才能回复,可以选择微信账号登录