⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shaolu.a51

📁 自己动手制作一个MCS-51编程器
💻 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 + -