📄 main.lst
字号:
A51 MACRO ASSEMBLER MAIN 07/25/2005 11:24:57 PAGE 1
MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN .\Main.obj
ASSEMBLER INVOKED BY: D:\applysoft\Keil\C51\BIN\A51.EXE ..\Main.asm NOMOD51 SET(LARGE) DEBUG PAGELENGTH(1000) OBJECT(.\M
ain.obj) EP
LOC OBJ LINE SOURCE
1 ;********************************************************************************
2 ; main.asm *
3 ;********************************************************************************
4 ;$include (Sm5964.h)
+1 5 ;********************************************************************************
+1 6 ; Sm5964.h *
+1 7 ;********************************************************************************
+1 8 ;$include (Mcs51.h)
+2 9 ;********************************************************************************
+2 10 ; Mcs51.h *
+2 11 ;********************************************************************************
+2 12 +1 $save
+2 124 +1 $restore
+2 125 ;================================================================================
+1 126
+1 127 ;================================================================================
00D8 +1 128 P4 DATA 0XD8
009F +1 129 WDTC DATA 0X9F
00BF +1 130 SCONF DATA 0XBF
00F4 +1 131 ISPFAH DATA 0XF4
00F5 +1 132 ISPFAL DATA 0XF5
00F6 +1 133 ISPFD DATA 0XF6
00F7 +1 134 ISPC DATA 0XF7
0085 +1 135 RCON DATA 0X85
0086 +1 136 DBANK DATA 0X86
009B +1 137 P1CON DATA 0X9B
00A3 +1 138 SPWMC DATA 0XA3
00A4 +1 139 SPWMD0 DATA 0XA4
00A5 +1 140 SPWMD1 DATA 0XA5
00A6 +1 141 SPWMD2 DATA 0XA6
00A7 +1 142 SPWMD3 DATA 0XA7
00AC +1 143 SPWMD4 DATA 0XAC
00C9 +1 144 T2MOD DATA 0XC9
+1 145 ;================================================================================
146
147 ;================================================================================
0040 148 STACKSIZE EQU 40H
00FA 149 W_TH1 EQU 0XFA
150 ;================================================================================
00B5 151 WatchDog EQU P3.5
152 ;================================================================================
F000 153 ISPVECTOR EQU 0XF000
154 ;================================================================================
155 MainIDseg SEGMENT IDATA
---- 156 RSEG MainIDseg
0000 157 Stack: DS STACKSIZE
158 ;================================================================================
159 MainDSeg SEGMENT DATA
---- 160 RSEG MainDSeg
0000 161 DLCNT: DS 1
0001 162 ?Debug_Str?BYTE:
0001 163 BYTE1: DS 1
0002 164 BYTE2: DS 1
0003 165 ?Debug_Mem?BYTE:
0003 166 ?Debug_Rom?BYTE:
0003 167 BYTE3: DS 1
0004 168 BYTE4: DS 1
0005 169 BYTE5: DS 1
0001 170 StrPtr EQU BYTE1
0003 171 MemPtr EQU BYTE3
0004 172 MemLen EQU BYTE4
0003 173 RomPtr EQU BYTE3
0005 174 RomLen EQU BYTE5
175 ;================================================================================
---- 176 CSEG AT 0XF000
177 USING 0
178 ;================================================================================
F000 179 DownLoad:
F000 758100 F 180 MOV SP, #Stack-1
F003 75D000 181 MOV PSW, #00000000B
F006 75A800 182 MOV IE, #00000000B
183
F009 75BF04 184 MOV SCONF, #00000100B
F00C 759F00 185 MOV WDTC, #00000000B
F00F 12F0C9 186 LCALL InitDownLoadUart
F012 187 DownLoad_L1:
F012 7500F5 F 188 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Star)
F015 750056 F 189 MOV ?Debug_Str?BYTE+1, #LOW(Str_Star)
F018 12F43F 190 LCALL Debug_Str
F01B 7500F5 F 191 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Title1)
F01E 75007C F 192 MOV ?Debug_Str?BYTE+1, #LOW(Str_Title1)
F021 12F43F 193 LCALL Debug_Str
F024 7500F5 F 194 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Title2)
F027 7500A2 F 195 MOV ?Debug_Str?BYTE+1, #LOW(Str_Title2)
F02A 12F43F 196 LCALL Debug_Str
F02D 7500F5 F 197 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Select1)
F030 7500C8 F 198 MOV ?Debug_Str?BYTE+1, #LOW(Str_Select1)
F033 12F43F 199 LCALL Debug_Str
F036 7500F5 F 200 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Select2)
F039 7500EE F 201 MOV ?Debug_Str?BYTE+1, #LOW(Str_Select2)
F03C 12F43F 202 LCALL Debug_Str
F03F 7500F6 F 203 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Select3)
F042 750014 F 204 MOV ?Debug_Str?BYTE+1, #LOW(Str_Select3)
F045 12F43F 205 LCALL Debug_Str
F048 7500F6 F 206 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Select4)
F04B 75003A F 207 MOV ?Debug_Str?BYTE+1, #LOW(Str_Select4)
F04E 12F43F 208 LCALL Debug_Str
F051 7500F6 F 209 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Select5)
F054 750060 F 210 MOV ?Debug_Str?BYTE+1, #LOW(Str_Select5)
F057 12F43F 211 LCALL Debug_Str
F05A 7500F6 F 212 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Select6)
F05D 750086 F 213 MOV ?Debug_Str?BYTE+1, #LOW(Str_Select6)
F060 12F43F 214 LCALL Debug_Str
F063 7500F5 F 215 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Star)
F066 750056 F 216 MOV ?Debug_Str?BYTE+1, #LOW(Str_Star)
F069 12F43F 217 LCALL Debug_Str
F06C 12F0EE 218 LCALL StartISP
219
F06F 12F403 220 LCALL Debug_In
F072 F5F0 221 MOV B, A
F074 7500F6 F 222 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Choice)
F077 7500AC F 223 MOV ?Debug_Str?BYTE+1, #LOW(Str_Choice)
F07A 12F43F 224 LCALL Debug_Str
F07D 12F40D 225 LCALL Debug_Byte
F080 7500F5 F 226 MOV ?Debug_Str?BYTE+0, #HIGH(Str_LF)
F083 750053 F 227 MOV ?Debug_Str?BYTE+1, #LOW(Str_LF)
F086 12F43F 228 LCALL Debug_Str
229
F089 E5F0 230 MOV A, B
F08B 6431 231 XRL A, #'1'
F08D 7006 232 JNZ DownLoad_L2
F08F 12F0F8 233 LCALL ChipErease
F092 02F012 234 LJMP DownLoad_L1
F095 235 DownLoad_L2:
F095 E5F0 236 MOV A, B
F097 6432 237 XRL A, #'2'
F099 7006 238 JNZ DownLoad_L3
F09B 12F148 239 LCALL PageErease
F09E 02F012 240 LJMP DownLoad_L1
F0A1 241 DownLoad_L3:
F0A1 E5F0 242 MOV A, B
F0A3 6433 243 XRL A, #'3'
F0A5 7006 244 JNZ DownLoad_L4
F0A7 12F1C8 245 LCALL Program
F0AA 02F012 246 LJMP DownLoad_L1
F0AD 247 DownLoad_L4:
F0AD E5F0 248 MOV A, B
F0AF 6434 249 XRL A, #'4'
F0B1 7006 250 JNZ DownLoad_L5
F0B3 12F2AD 251 LCALL Protect
F0B6 02F012 252 LJMP DownLoad_L1
F0B9 253 DownLoad_L5:
F0B9 E5F0 254 MOV A, B
F0BB 6435 255 XRL A, #'5'
F0BD 7003 256 JNZ DownLoad_L6
F0BF 020000 257 LJMP 0X0000
F0C2 258 DownLoad_L6:
F0C2 12F2C8 259 LCALL ShowRom
F0C5 02F012 260 LJMP DownLoad_L1
F0C8 22 261 RET
262 ;================================================================================
F0C9 263 InitDownLoadUart:
F0C9 C2AC 264 CLR ES
F0CB C28E 265 CLR TR1
F0CD 758780 266 MOV PCON, #80H
F0D0 759870 267 MOV SCON, #01110000B
F0D3 E589 268 MOV A, TMOD
F0D5 540F 269 ANL A, #00001111B
F0D7 4420 270 ORL A, #00100000B
F0D9 F589 271 MOV TMOD, A
F0DB 758BFA 272 MOV TL1, #W_TH1
F0DE 758DFA 273 MOV TH1, #W_TH1
F0E1 C2AB 274 CLR ET1
F0E3 C2BC 275 CLR PS
F0E5 D28E 276 SETB TR1
F0E7 C299 277 CLR TI
F0E9 C298 278 CLR RI
F0EB D2AC 279 SETB ES
280
F0ED 22 281 RET
282 ;================================================================================
F0EE 283 StartISP:
F0EE 75F655 284 MOV ISPFD, #0X55
F0F1 75F6AA 285 MOV ISPFD, #0XAA
F0F4 75F655 286 MOV ISPFD, #0X55
F0F7 22 287 RET
288 ;================================================================================
F0F8 289 ChipErease:
F0F8 7500F6 F 290 MOV ?Debug_Str?BYTE+0, #HIGH(Str_ChipErease)
F0FB 7500BC F 291 MOV ?Debug_Str?BYTE+1, #LOW(Str_ChipErease)
F0FE 12F43F 292 LCALL Debug_Str
F101 12F345 293 LCALL AreYouSure
F104 5041 294 JNC ChipErease_Ret
295
F106 75F783 296 MOV ISPC, #0X83
F109 75F783 297 MOV ISPC, #0X83
298
F10C 75F4EF 299 MOV ISPFAH, #HIGH(ISPVECTOR-1)
F10F 75F5FF 300 MOV ISPFAL, #LOW(ISPVECTOR-1)
301
F112 302 ChipErease_L1:
F112 B2B5 303 CPL WatchDog
F114 85F483 304 MOV DPH, ISPFAH
F117 85F582 305 MOV DPL, ISPFAL
F11A E4 306 CLR A
F11B 93 307 MOVC A, @A+DPTR
F11C 64FF 308 XRL A, #0XFF
F11E 600A 309 JZ ChipErease_L2
F120 7500F7 F 310 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Failure)
F123 750014 F 311 MOV ?Debug_Str?BYTE+1, #LOW(Str_Failure)
F126 12F43F 312 LCALL Debug_Str
F129 22 313 RET
F12A 314 ChipErease_L2:
F12A E5F4 315 MOV A, ISPFAH
F12C 700E 316 JNZ ChipErease_L3
F12E E5F5 317 MOV A, ISPFAL
F130 700A 318 JNZ ChipErease_L3
F132 7500F7 F 319 MOV ?Debug_Str?BYTE+0, #HIGH(Str_Success)
F135 750009 F 320 MOV ?Debug_Str?BYTE+1, #LOW(Str_Success)
F138 12F43F 321 LCALL Debug_Str
F13B 22 322 RET
F13C 323 ChipErease_L3:
F13C 15F5 324 DEC ISPFAL
F13E E5F5 325 MOV A, ISPFAL
F140 04 326 INC A
F141 7002 327 JNZ ChipErease_L4
F143 15F4 328 DEC ISPFAH
F145 329 ChipErease_L4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -