?? e51pro.lst
字號:
264 1 // 0 1 0 1 0 0 0 0
265 1 SCON=0x50;
266 1 TR1=1;
267 1 Delay_ms(1000);//延時1秒后編程器自舉
268 1 ComBuf[0]=0;
269 1 SendData();
270 1 while(1)//串口通訊采用查詢方式
271 1 {
272 2 if(!WaitComm())//如果超時,通訊出錯
273 2 {
274 3 Delay_ms(500);
275 3 ComBuf[0]=0;//讓編程器復位,使編程器就緒
276 3 }
277 2 switch(ComBuf[1])//根據FID設置(ProWork)pw中的函數指針
278 2 {
279 3 case 0://at89c51編程器
280 3 PreparePro00();
281 3 break;
282 3 case 1://at89c2051編程器
283 3 PreparePro01();
284 3 break;
285 3 case 2://at89s51編程器
286 3 PreparePro02();
287 3 break;
288 3 //case 3:支持新器件時,請繼續向下添加
289 3 // break;
290 3 //case 4:
291 3 // break;
292 3 default:
293 3 ComBuf[0]=0xff;
294 3 ComBuf[1]=0xff;//表示無效的操作
295 3 break;
296 3 }
297 2 switch(ComBuf[0])//根據操作ID跳到不同的操作函數
298 2 {
299 3 case 0x00:
300 3 RstPro();//編程器復位
301 3 break;
302 3 case 0x01:
C51 COMPILER V7.07 E51PRO 10/28/2003 18:27:17 PAGE 6
303 3 ReadSign();//讀特征字
304 3 break;
305 3 case 0x02:
306 3 Erase();//擦除器件
307 3 break;
308 3 case 0x03:
309 3 Write();//寫器件
310 3 break;
311 3 case 0x04:
312 3 Read();//讀器件
313 3 break;
314 3 case 0x05:
315 3 Lock();//寫鎖定位
316 3 break;
317 3 default:
318 3 SendData();
319 3 break;
320 3 }
321 2 }
322 1 }
323
324
C51 COMPILER V7.07 E51PRO 10/28/2003 18:27:17 PAGE 7
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _Delay_us (BEGIN)
; SOURCE LINE # 13
;---- Variable 'nUs' assigned to Register 'R7' ----
; SOURCE LINE # 14
; SOURCE LINE # 15
0000 E4 CLR A
0001 F58C MOV TH0,A
; SOURCE LINE # 16
0003 F58A MOV TL0,A
; SOURCE LINE # 17
0005 D28C SETB TR0
0007 ?C0001:
; SOURCE LINE # 18
0007 E58A MOV A,TL0
0009 C3 CLR C
000A 9F SUBB A,R7
000B 40FA JC ?C0001
; SOURCE LINE # 19
; SOURCE LINE # 20
000D ?C0002:
; SOURCE LINE # 21
000D C28C CLR TR0
; SOURCE LINE # 22
000F 22 RET
; FUNCTION _Delay_us (END)
; FUNCTION _Delay_ms (BEGIN)
; SOURCE LINE # 24
;---- Variable 'nMs' assigned to Register 'R6/R7' ----
; SOURCE LINE # 25
; SOURCE LINE # 26
;---- Variable 'n' assigned to Register 'R4/R5' ----
0000 E4 CLR A
0001 FD MOV R5,A
0002 FC MOV R4,A
; SOURCE LINE # 27
0003 D28C SETB TR0
0005 ?C0004:
; SOURCE LINE # 28
0005 C3 CLR C
0006 ED MOV A,R5
0007 9F SUBB A,R7
0008 EC MOV A,R4
0009 9E SUBB A,R6
000A 5014 JNC ?C0005
; SOURCE LINE # 29
; SOURCE LINE # 30
000C E4 CLR A
000D F58C MOV TH0,A
; SOURCE LINE # 31
000F 758A14 MOV TL0,#014H
0012 ?C0006:
; SOURCE LINE # 32
0012 E58C MOV A,TH0
0014 C3 CLR C
0015 9404 SUBB A,#04H
0017 40F9 JC ?C0006
; SOURCE LINE # 33
; SOURCE LINE # 34
C51 COMPILER V7.07 E51PRO 10/28/2003 18:27:17 PAGE 8
0019 ?C0007:
; SOURCE LINE # 35
0019 0D INC R5
001A ED MOV A,R5
001B 7001 JNZ ?C0086
001D 0C INC R4
001E ?C0086:
; SOURCE LINE # 36
001E 80E5 SJMP ?C0004
0020 ?C0005:
; SOURCE LINE # 37
0020 C28C CLR TR0
; SOURCE LINE # 38
0022 22 RET
; FUNCTION _Delay_ms (END)
; FUNCTION WaitComm (BEGIN)
; SOURCE LINE # 40
; SOURCE LINE # 41
; SOURCE LINE # 42
;---- Variable 'n' assigned to Register 'R7' ----
0000 E4 CLR A
0001 FF MOV R7,A
; SOURCE LINE # 43
0002 C298 CLR RI
0004 ?C0009:
; SOURCE LINE # 44
0004 3098FD JNB RI,?C0009
0007 ?C0010:
; SOURCE LINE # 45
0007 7400 R MOV A,#LOW ComBuf
0009 2F ADD A,R7
000A F8 MOV R0,A
000B A699 MOV @R0,SBUF
; SOURCE LINE # 46
000D C298 CLR RI
; SOURCE LINE # 47
000F 0F INC R7
; SOURCE LINE # 48
0010 ?C0011:
0010 EF MOV A,R7
0011 D3 SETB C
0012 9411 SUBB A,#011H
0014 5025 JNC ?C0012
; SOURCE LINE # 49
; SOURCE LINE # 50
0016 E4 CLR A
0017 F500 R MOV nTimeOut,A
0019 F500 R MOV nTimeOut+01H,A
001B ?C0014:
; SOURCE LINE # 51
001B 209812 JB RI,?C0015
; SOURCE LINE # 52
; SOURCE LINE # 53
001E 0500 R INC nTimeOut+01H
0020 E500 R MOV A,nTimeOut+01H
0022 7002 JNZ ?C0087
0024 0500 R INC nTimeOut
0026 ?C0087:
; SOURCE LINE # 54
0026 D3 SETB C
0027 9410 SUBB A,#010H
C51 COMPILER V7.07 E51PRO 10/28/2003 18:27:17 PAGE 9
0029 E500 R MOV A,nTimeOut
002B 9427 SUBB A,#027H
002D 40EC JC ?C0014
; SOURCE LINE # 55
002F 22 RET
; SOURCE LINE # 56
0030 ?C0015:
; SOURCE LINE # 57
0030 7400 R MOV A,#LOW ComBuf
0032 2F ADD A,R7
0033 F8 MOV R0,A
0034 A699 MOV @R0,SBUF
; SOURCE LINE # 58
0036 C298 CLR RI
; SOURCE LINE # 59
0038 0F INC R7
0039 80D5 SJMP ?C0011
003B ?C0012:
; SOURCE LINE # 60
003B D3 SETB C
; SOURCE LINE # 61
003C ?C0017:
003C 22 RET
; FUNCTION WaitComm (END)
; FUNCTION WaitResp (BEGIN)
; SOURCE LINE # 63
; SOURCE LINE # 64
; SOURCE LINE # 65
0000 E4 CLR A
0001 F500 R MOV nTimeOut,A
0003 F500 R MOV nTimeOut+01H,A
; SOURCE LINE # 66
0005 C298 CLR RI
0007 ?C0018:
; SOURCE LINE # 67
0007 20981C JB RI,?C0019
; SOURCE LINE # 68
; SOURCE LINE # 69
000A 0500 R INC nTimeOut+01H
000C E500 R MOV A,nTimeOut+01H
000E 7002 JNZ ?C0088
0010 0500 R INC nTimeOut
0012 ?C0088:
; SOURCE LINE # 70
0012 AE00 R MOV R6,nTimeOut
0014 FF MOV R7,A
0015 E4 CLR A
0016 FC MOV R4,A
0017 FD MOV R5,A
0018 7B50 MOV R3,#050H
001A 7AC3 MOV R2,#0C3H
001C F9 MOV R1,A
001D F8 MOV R0,A
001E C3 CLR C
001F 120000 E LCALL ?C?SLCMP
0022 50E3 JNC ?C0018
; SOURCE LINE # 71
; SOURCE LINE # 72
0024 C3 CLR C
0025 22 RET
; SOURCE LINE # 73
C51 COMPILER V7.07 E51PRO 10/28/2003 18:27:17 PAGE 10
; SOURCE LINE # 74
0026 ?C0019:
; SOURCE LINE # 75
0026 C298 CLR RI
; SOURCE LINE # 76
0028 859900 R MOV ComBuf,SBUF
; SOURCE LINE # 77
002B D3 SETB C
; SOURCE LINE # 78
002C ?C0021:
002C 22 RET
; FUNCTION WaitResp (END)
; FUNCTION WaitData (BEGIN)
; SOURCE LINE # 80
; SOURCE LINE # 81
; SOURCE LINE # 83
0000 C298 CLR RI
; SOURCE LINE # 84
;---- Variable 'n' assigned to Register 'R7' ----
0002 E4 CLR A
0003 FF MOV R7,A
0004 ?C0022:
0004 EF MOV A,R7
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -