哪位朋友能發(fā)個(gè)純51匯編的讀寫U盤的程序。謝謝!
我也需要匯編的讀寫U盤程序,如果有的話發(fā)給我一下,謝謝拉!個(gè)人信息保護(hù),已隱藏
有很多C的東西,不過我現(xiàn)在不會(huì)C啊有匯編的話我會(huì)給你發(fā)的,斑竹說有匯編的可以下載,不過里面還是有些C的成分,還是看不懂,學(xué)C吧,我現(xiàn)在也正在改學(xué)C ,但是我現(xiàn)在急用匯編的。
exam5是用匯編寫的,編譯時(shí)還要將庫文件包含到項(xiàng)目中,如果用的是WAVE等仿真,需要指定庫文件的路徑
不太懂,能否給出具體步驟!
能夠讀U盤1扇區(qū),但寫入總是不成功,每寫入64字節(jié)都能返回1EH,但第九次返回1FH失敗.望高人指點(diǎn). 使用時(shí)先調(diào)用USB初始化,延時(shí),再調(diào)用rsq或wsq
rsq: mov 08h,#00h ;讀扇區(qū),4字節(jié)地址 mov 09h,#04h mov 0ah,#40h mov 0bh,#00h mov 0ch,#01h ;讀出扇區(qū)數(shù) mov r0,#08h mov r2,#05h mov a,#54h ;讀命令 setb tb8 lcall wup ;寫入命令 clr tb8 rsq1: mov a,@r0 ;寫入地址、扇區(qū)數(shù) lcall wup inc r0 djnz r2,rsq1 setb tb8 jb p3.2,$ ;等待中斷 rsq2: mov a,#22h ;取中斷狀態(tài)命令 lcall wup clr ri lcall ys jnb ri,rsq2 mov a,sbuf ;取狀態(tài) cjne a,#1dh,rsq4 ;是否請(qǐng)求讀出 mov a,#28h ;寫讀出命令 lcall wup jnb ri,$ mov r2,sbuf ;讀出字節(jié)數(shù) 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字節(jié)地址 mov 09h,#04h mov 0ah,#40h mov 0bh,#00h mov 0ch,#01h ;寫入扇區(qū)數(shù) mov r0,#08h mov r2,#05h mov r3,#08h mov a,#56h ;寫命令 setb tb8 lcall wup ;寫入命令 clr tb8 wsq1: mov a,@r0 ;寫入地址、扇區(qū)數(shù) lcall wup inc r0 djnz r2,wsq1 lcall ys jb p3.2,$ ;等待中斷 lcall ys setb tb8 wsq2: mov a,#22h ;取中斷狀態(tài)命令 lcall wup clr ri lcall ys jnb ri,wsq2 mov a,sbuf ;mov 7fh,a cjne a,#1eh,wsq5 ;是否請(qǐng)求寫入緩沖區(qū) setb tb8 mov a,#2bh ;寫緩沖區(qū)命令 lcall wup clr tb8 mov a,#40h ;寫字節(jié)數(shù) mov r2,#40h lcall wup wsq3: mov a,#06h lcall wup inc r0 djnz r2,wsq3 setb tb8 mov a,#22h ;取中斷狀態(tài)命令 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 ;測試工作狀態(tài) 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 ;設(shè)置工作模式 lcall wup clr tb8 mov a,#06h ;主機(jī)方式 lcall wup lcall ys usb3: jnb ri,$ mov a,sbuf clr ri cjne a,#51h,usb3 ;設(shè)置是否完成 setb tb8 ;設(shè)置完成 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盤是否準(zhǔn)備好 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盤一字節(jié) mov sbuf,a jnb ti,$ lcall ys ret
rup: jnb ri,$ ;讀U盤一字節(jié) mov a,sbuf clr ri lcall ys ret