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

📄 e51pro.lst

📁 这是一个串行编程器源程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -