您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机用89S51制作简易并行编程器ATmega16 正文
用89S51制作简易并行编程器ATmega16

用89S51制作简易并行编程器ATmega16

点击数:7628 次   录入时间:03-04 11:56:46   整理:http://www.55dianzi.com   AVR单片机
    NOP
    SETB _WR
    CLR _WR
    SETB _WR            ;输入一个负脉冲,开始执行命令擦除芯片
    JB RDY_BSY,$        ;等待RDY/BSY变高,表示擦除完成
    JNB RDY_BSY,$
    ACALL DELAY_106US 
    SETB LAMP           ;指示空闲
    ACALL DELAY_106US 
    RET
;///////////////写熔丝高低字节子程序////////////////
WRITE_FUSE:
    CLR LAMP            ;指示正忙
    SETB XA1            ;设置XA1,XA0="10"允许装入命令
    CLR  XA0
    CLR BS1
    CLR BS2
    MOV P0,#40H         ;送出写熔丝命令
    SETB XTAL1
    CLR XTAL1           ;XTAL1输入正脉冲将命令装入芯片
    CLR XA1            ;设置XA1,XA0="01"允许装入数据
    SETB XA0
    NOP
    CLR BS1             ;BS1,BS2="00"表示熔丝低字节“10”表示高字节
    CLR BS2
    MOV P0,#0E1H        ;DOBLEVEL=1,BODEN=1,SUT1=1,SUT1=0,SKSEL3=0,
                        ;SKSEL2=0,SKSEL1=0,SKSEL0=1(工厂设定值)
    SETB XTAL1
    CLR XTAL1            ;XTAL1输入正脉冲数据装入芯片
    SETB _WR
    CLR _WR
    SETB _WR            ;_WR输入一个负脉冲,开始执行命令
    JB RDY_BSY,$        ;等待RDY/BSY变高,表示完成
    JNB RDY_BSY,$
    ACALL DELAY_106US 
;/*********写高字节**********/      
    MOV P0,#99H         ;'99'为出厂设定值
    SETB XTAL1
    CLR XTAL1           ;XTAL1输入正脉冲数据装入芯片
    SETB BS1
    SETB _WR
    CLR _WR
    SETB _WR              ;_WR输入一个负脉冲,开始执行命令
    JB RDY_BSY,$        ;等待RDY/BSY变高,表示完成
    JNB RDY_BSY,$
    CLR BS1
    ACALL DELAY_106US         
    SETB LAMP           ;指示空闲
    RET
;/**********读熔丝及加密位************/
READ_FUSE:
    CLR LAMP           ;指示正忙
    SETB XA1           ;设置XA1,XA0="10"允许装入命令    
    CLR XA0
    CLR BS1
    CLR BS2
    MOV P0,#04H          ;送出读熔丝和锁定位命令
    CLR XTAL1
    SETB XTAL1
    CLR XTAL1            ;XTAL1输入正脉冲将命令装入芯片
    NOP
    CLR _OE
    CLR BS2              ;读熔丝低字节
    CLR BS1
    MOV P0,#0FFH
    MOV R7,P0
    SETB BS2             ;读熔丝高字节
    SETB BS1
    MOV R6,P0
    CLR BS2               ;读加密位
    MOV R5,P0
    SETB _OE
    SETB LAMP
    ACALL SIO_TO_PC
    RET
;------------------ 
DELAY_1S:
    MOV R7,#1
DELAY11:
    MOV R6,#0FFH
DELAY12:       
    MOV R5,#0FFH
    DJNZ R5,$
    DJNZ R6,DELAY12
    DJNZ R7,DELAY11
    RET
;-------------------
DELAY_106US:
    MOV R5,#18H
    DJNZ R5,$
    RET
;************************************************************
;将R5 R6 R7 的内容经 TXD 发送到 PC 子程序 
;*************************************************************
SIO_TO_PC:
   MOV      A,R5              ;加密锁定字节
   SWAP     A
   ACALL    HEX_ASC
   ACALL    SIO_SEND_OUT      ;经TXD发送加密锁定字节的高4BIT
   MOV      A,R5
   ACALL    HEX_ASC
   ACALL    SIO_SEND_OUT      ;经TXD发送加密锁定字节的低4BIT 

   MOV      A,#' '
   ACALL    SIO_SEND_OUT      ;经TXD发送 空格 
  
   MOV      A,R6              ;熔丝高字节
   SWAP     A
   ACALL    HEX_ASC
   ACALL    SIO_SEND_OUT      ;经TXD发送熔丝高字节的高4BIT   

上一页  [1] [2] [3]  下一页


本文关键字:制作  AVR单片机单片机-工控设备 - AVR单片机

上一篇:AVR应用经验

《用89S51制作简易并行编程器ATmega16》相关文章>>>