?? shaolu.a51
字號:
ale equ p1.0
cr equ p1.4
cp equ p1.5
org 2000h
ajmp star
org 2023h ;串口中斷跳2023
ljmp 2023h
org 2030h
rs232: clr ea ;串口中斷服務
mov a,sbuf ;接收一個字節
clr RI
cjne a,#0a5h,fd0
jnb ri,$
mov a,sbuf ;收到A5
mov a,57h
mov dptr,#ml ;命令處理
fa: mov sp,#58h
push dpl
push dph
fd0: mov 57h,a ;字節寄存57
reti
ram: mov dptr,#2000h ;接收Hex文件
pr0: jnb ri,$
mov a,sbuf ;接收一字節
clr ri
mov r1,a
pr1: movx @dptr,a ;存入RAM
inc dptr
cjne a,#0a5h,pr0 ;結束標記
jnb ri,$ ;A5 AA
mov a,sbuf
cjne a,#0aah,pr1
mov sbuf,a
jnb ti,$
clr ti
mov dptr,#0000h
ajmp fa
star: mov pcon,#00h ;串口預置程序
mov scon,#50h ;mod1 ren=1
mov tmod,#20h ;t1 mod2
mov tl1,#0eah ;14 buad 110
mov th1,#0eah ;EA buad 1200 (10mhz )4800( 11.0592mhz)
clr tr1
clr ea
clr et1
setb es
setb tr1
mov dptr,#2023h ;設定串口
mov a,#01h ;中斷向量
movx @dptr,a
inc dptr
mov a,#30h
movx @dptr,a
inc dptr
mov a,#00h
movx @dptr,a
ajmp $
ml: mov r0,a
rl a
add a,r0
mov dptr,#bat
jmp @a+dptr
bat: ljmp 2000h ;轉2000運行(00)
ljmp shl ;轉燒錄處理(01)
ljmp jan ;轉檢驗處理(02)
ljmp cau ;轉擦除處理(03)
ljmp 0000h ;退出回調試(04)
shl: setb cr ;燒錄程序
mov p1,#2eh
ss9: mov dptr,#8000h
jnb ri,$
clr ri
mov a,sbuf
mov r7,#0ffh
clr ale
ss0: movx @dptr,a ;延時1.2ms
nop
djnz r7,ss0
setb ale
setb cp
clr cp
cjne a,#0a5h,ss9 ;結束標記
jnb ri,$ ;A5 AA
mov a,sbuf
cjne a,#0aah,ss0
mov sbuf,a
jnb ti,$
clr ti
mov dptr,#2000h
ajmp fa
jan: mov p1,#0dh ;檢驗程序
setb cr
ja9: mov dptr,#8000h
mov r7,#0fh
ja8: mov r6,#0ffh
ja7: movx a,@dptr
movx a,@dptr
mov sbuf,a
jnb ti,$
setb cp
clr cp
djnz r6,ja7
djnz r7,ja8
mov a,#0aeh ;結束標記AE
mov sbuf,a
jnb ti,$
clr ti
mov dptr,#2000h
ajmp fa
cau: mov p1,#0fh ;擦除程序
setb ale
clr ale
mov r7,#0ffh
djnz r7,$
setb ale
mov a,#0aeh ;完成標記AE
mov sbuf,a
jnb ti,$
clr ti
mov dptr,#2000h
ajmp fa
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -