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

📄 isp_mcu.lst

📁 Isp_w78e516_MCU.zip:-----W78E516B单片机的ISP在线下载的MCU端源程序(2500.A.D公司的X51.EXE)
💻 LST
📖 第 1 页 / 共 3 页
字号:
  Mon Nov 29 2004 16:01                                                                                                  Page    1







               2500 A.D. 8051 Macro Assembler  -  Version 4.01d
               ------------------------------------------------

                       Input  Filename : Isp_MCU.asm
                       Output Filename : Isp_MCU.obj


    1                          	;******************************************************************************
    2                          	;                         W78E516B单片机的ISP在线下载的MCU端源程序(ASM51)
    3                          	;******************************************************************************
    4                          	;设计人:田伯运
    5                          	;e-mail:tianboyun@163.com
    6                          	;版本号: V1.0
    7                          	;编译软件:2500.A.D公司的X51.EXE
    8                          	;******************************************************************************
    9                          	
   10   0000                   	         .chip 8052
   11                          	         .ramchk OFF
   12                          	
   13                          	;------------------------------------------------------------------------------
   14                          	;definition for connecting to PC
   15                          	
   16          00AA            	DTR             EQU  AAh
   17          00BB            	DSR             EQU  BBh
   18          00CC            	RTS             EQU  CCh
   19          00DD            	CTS             EQU  DDh
   20          00EE            	OK              EQU  EEh
   21          00FF            	FAIL            EQU  FFh
   22          001B            	ESC             EQU  27
   23                          	;
   24                          	;------------------------------------------------------------------------------
   25                          	
   26          00F6            	CHPENR          REG  F6h
   27          00C4            	SFRAL           REG  C4h
   28          00C5            	SFRAH           REG  C5h
   29          00C6            	SFRFD           REG  C6h
   30          00C7            	SFRCN           REG  C7h
   31          00BF            	CHPCON          REG  BFh
   32                          	
   33          0030            	data            REG  30h
   34          0031            	file_end_addrH  REG  31h
   35          0032            	file_end_addrL  REG  32h
   36          0033            	retL            REG  33h
   37          0034            	retH            REG  34h
   38          0035            	idle_time       REG  35h
   39          0036            	TH0e            REG  36h
   40          0037            	TL0e            REG  37h
   41          0038            	TH0p            REG  38h
   42          0039            	TL0p            REG  39h
   43                          	
   44          0000            	chk_PC_flag     REG  20h.0
   45                          	
   46                          	;?#############################################################################
   47   0000                   	         ORG    0000h
  Mon Nov 29 2004 16:01                                                                                                  Page    2




   48   0000   02 00 0E        	         JMP    start
   49   000B                   	         ORG    000Bh
   50   000B   02 01 3A        	         JMP    TF0_isr
   51   000E                   	start:
   52   000E   75 81 7F        	         MOV    SP,#7Fh
   53   0011   12 01 56        	         CALL   connect_to_PC
   54   0014                   	start2:
   55   0014   12 02 90        	         CALL   receive_data_from_PC2     ;make sure to enter ISP mode
   56   0017   E5 30           	         MOV    A,data                    ;
   57   0019   B4 5A 1B        	         CJNE   A,#5Ah,not_ISP            ;
   58   001C   12 02 90        	         CALL   receive_data_from_PC2     ;
   59   001F   E5 30           	         MOV    A,data                    ;
   60   0021   B4 A5 13        	         CJNE   A,#A5h,not_ISP            ;
   61   0024   12 02 90        	         CALL   receive_data_from_PC2     ;
   62   0027   E5 30           	         MOV    A,data                    ;
   63   0029   B4 55 0B        	         CJNE   A,#55h,not_ISP            ;
   64   002C   12 02 90        	         CALL   receive_data_from_PC2     ;
   65   002F   E5 30           	         MOV    A,data                    ;
   66   0031   B4 AA 03        	         CJNE   A,#AAh,not_ISP            ;
   67   0034   02 00 39        	         JMP    ISP_mode
   68   0037                   	not_ISP:
   69   0037   01 0E           	         JMP    start
   70                          	;
   71   0039                   	ISP_mode:
   72   0039   75 F6 87        	         MOV    CHPENR,#87h          ;enable CHPCON write attribute
   73   003C   75 F6 59        	         MOV    CHPENR,#59h          ;
   74                          	
   75   003F   12 02 90        	         CALL   receive_data_from_PC2
   76   0042   E5 30           	         MOV    A,data
   77   0044   B4 31 0B        	         CJNE   A,#'1',select_LDROM
   78   0047                   	 select_APROM:
   79   0047   E5 BF           	         MOV    A,CHPCON
   80   0049   30 E7 11        	         JNB    A.7,illegal_select   ;CHPCON.7 should be 1, boot from 4K LDROM
   81   004C   75 BF 03        	         MOV    CHPCON,#03h          ;enable ISP, 64K APROM is re-programmed
   82   004F   02 00 65        	         JMP    ISP_start
   83   0052                   	 select_LDROM:
   84   0052   E5 BF           	         MOV    A,CHPCON
   85   0054   20 E7 06        	         JB     A.7,illegal_select   ;CHPCON.7 should be 0, boot from 64K APROM
   86   0057   75 BF 01        	         MOV    CHPCON,#01h          ;enable ISP, 4K LDROM is re-programmed
   87   005A   02 00 65        	         JMP    ISP_start
   88                          	
   89   005D                   	illegal_select:
   90   005D   75 30 FF        	         MOV    data,#FAIL
   91   0060   12 02 7B        	         CALL   send_data_to_PC2
   92   0063   01 0E           	         JMP    start
   93                          	;
   94   0065                   	ISP_start:
   95   0065   75 30 EE        	         MOV    data,#OK
   96   0068   12 02 7B        	         CALL   send_data_to_PC2
   97                          	
   98   006B   12 02 90        	         CALL   receive_data_from_PC2
   99   006E   85 30 32        	         MOV    file_end_addrL,data  ;file_end_addrL
  100   0071   12 02 90        	         CALL   receive_data_from_PC2
  101   0074   85 30 31        	         MOV    file_end_addrH,data  ;file_end_addrH
  102                          	
  103   0077   75 A8 82        	         MOV    IE,#10000010b        ;enable TF0 interrupt
  104   007A   75 89 21        	         MOV    TMOD,#00100001b      ;Timer0: mode1, 16-bit timer for ISP
  Mon Nov 29 2004 16:01                                                                                                  Page    3




  105                          	                                     ;Timer1: mode2, 8-bit auto-reload UART
  106                          	;
  107                          	;------------------------------------------------------------------------------
  108                          	; Erase
  109                          	;------------------------------------------------------------------------------
  110   007D   E5 BF           	         MOV    A,CHPCON
  111   007F   20 E1 06        	         JB     A.1,erase_APROM
  112   0082                   	erase_LDROM:
  113   0082   75 C7 62        	         MOV    SFRCN,#62h           ;Erase 4K LDROM
  114   0085   02 00 8B        	         JMP    do_erase
  115   0088                   	erase_APROM:
  116   0088   75 C7 22        	         MOV    SFRCN,#22h           ;Erase 64K APROM
  117   008B                   	   do_erase:
  118                          	;
  119   008B                   	erase:
  120   008B   85 36 8C        	         MOV    TH0,TH0e             ;Tpwe=15ms/(12/11.0592us)=13824
  121   008E   85 37 8A        	         MOV    TL0,TL0e             ;
  122   0091   D2 8C           	         SETB   TR0                  ;
  123   0093   75 87 01        	         MOV    PCON,#01h            ;enter idle mode
  124   0096                   	erase_ok:
  125                          	;
  126                          	;------------------------------------------------------------------------------
  127                          	; Program
  128                          	;------------------------------------------------------------------------------
  129   0096   E5 BF           	         MOV    A,CHPCON
  130   0098   20 E1 06        	         JB     A.1,program_APROM
  131   009B                   	program_LDROM:
  132   009B   75 C7 61        	         MOV    SFRCN,#61h           ;Program 4K LDROM
  133   009E   02 00 A4        	         JMP    do_program
  134   00A1                   	program_APROM:
  135   00A1   75 C7 21        	         MOV    SFRCN,#21h           ;Program 64K APROM
  136   00A4                   	   do_program:
  137                          	;
  138   00A4   90 00 00        	         MOV    DPTR,#0000h
  139   00A7                   	program:
  140   00A7   75 30 EE        	         MOV    data,#OK
  141   00AA   12 02 7B        	         CALL   send_data_to_PC2
  142   00AD   12 02 90        	         CALL   receive_data_from_PC2
  143                          	
  144   00B0   85 83 C5        	         MOV    SFRAH,DPH            ;
  145   00B3   85 82 C4        	         MOV    SFRAL,DPL            ;
  146   00B6   85 30 C6        	         MOV    SFRFD,data           ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -