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

📄 comm.ls1

📁 c8051f310xmodembootloader.rar
💻 LS1
📖 第 1 页 / 共 4 页
字号:
A51 MACRO ASSEMBLER  COMM                                                                 08/03/2009 16:57:28 PAGE     5

                     257             EXTRN   CODE (wie)
                     258             EXTRN   CODE (_cal_crc)
                     259             EXTRN   XDATA (MyID)
                     260             EXTRN   CODE (pow)
                     261             EXTRN   CODE (_spisendcommand)
                     262             EXTRN   IDATA (RELAY_TIME_OUT)
                     263             EXTRN   CODE (_delayms)
                     264             EXTRN   CODE (?C?CLDPTR)
                     265             EXTRN   CODE (?C?IILDX)
                     266             EXTRN   CODE (?C?CSTPTR)
                     267             EXTRN   CODE (?C?COPY)
                     268             PUBLIC  TxBuf
                     269             PUBLIC  RxBuf
                     270             PUBLIC  outTxBuf
                     271             PUBLIC  inTxBuf
                     272             PUBLIC  outRxBuf
                     273             PUBLIC  inRxBuf
                     274             PUBLIC  TIflag
                     275             PUBLIC  process_incmd
                     276             PUBLIC  process_uart
                     277             PUBLIC  _Get_Char
                     278             PUBLIC  _Printf_String
                     279             PUBLIC  _Printf_Char
                     280             PUBLIC  serial
                     281             PUBLIC  Buff_Init
                     282             PUBLIC  UART0_Init
                     283     
----                 284             RSEG  ?XD?serial?COMM
0000                 285     ?serial?BYTE:
0000                 286               t?240:   DS   3
                     287     
----                 288             RSEG  ?XD?process_uart?COMM
0000                 289     ?process_uart?BYTE:
0000                 290         dat_len?645:   DS   1
0001                 291             ORG  1
0001                 292              ch?646:   DS   1
                     293     
----                 294             RSEG  ?XD?_Printf_String?COMM
0000                 295     ?_Printf_String?BYTE:
0000                 296          string?443:   DS   3
                     297     
----                 298             RSEG  ?XD?_Printf_Char?COMM
0000                 299     ?_Printf_Char?BYTE:
0000                 300               t?342:   DS   3
                     301     
----                 302             RSEG  ?XD?process_incmd?COMM
0000                 303     ?process_incmd?BYTE:
0000                 304             pcs?747:   DS   2
                     305     
----                 306             RSEG  ?BI?COMM
0000                 307              TIflag:   DBIT   1
                     308     
----                 309             RSEG  ?XD?COMM
0000                 310             inRxBuf:   DS   3
0003                 311            outRxBuf:   DS   3
0006                 312             inTxBuf:   DS   2
0008                 313            outTxBuf:   DS   3
000B                 314               RxBuf:   DS   34
002D                 315               TxBuf:   DS   128
                     316     
----                 317             RSEG  ?C_INITSEG
0000 C100     F      318             DB      0C1H, TIflag + 080H     ; bit-init
                     319     
                     320     ; #include "global.h"
                     321     ; 
                     322     ; 
A51 MACRO ASSEMBLER  COMM                                                                 08/03/2009 16:57:28 PAGE     6

                     323     ; unsigned char xdata TxBuf[LenTxBuf],RxBuf[LenRxBuf];//收发缓冲区实体
                     324     ; unsigned char xdata *inTxBuf,*outTxBuf, *inRxBuf,*outRxBuf;//收发缓冲区读写指针
                     325     ; //inRxBuf指向收的收,outRxBuf指向收缓冲区的读。
                     326     ; bit TIflag=1;//Note:It must be 1.
                     327     ; 
                     328     ; 
                     329     ; 
                     330     ; 
                     331     ; /******************************************************************************
                     332     ; ** 函数: UART0_Init()
                     333     ; ** 入参: 
                     334     ; ** 返回: 
                     335     ; ** 说明:
                     336     ; ** UART0_Init
                     337     ; ** Configure the UART0 using Timer1, for <BAUDRATE> and 8-N-1.
                     338     ; ******************************************************************************/
                     339     ; 
                     340     ; void UART0_Init (void)
                     341     
----                 342             RSEG  ?PR?UART0_Init?COMM
0000                 343     UART0_Init:
                     344             USING   0
                     345                             ; SOURCE LINE # 21
                     346     ; {
                     347                             ; SOURCE LINE # 22
                     348     ;    SCON0 = 0x50;                       // SCON0: 8-bit variable bit rate
                     349                             ; SOURCE LINE # 23
0000 759850          350             MOV     SCON0,#050H
                     351     ;                                        //        level of STOP bit is ignored
                     352     ;                                        //        RX enabled
                     353     ;                                        //        ninth bits are zeros
                     354     ;                                        //        clear RI0 and TI0 bits
                     355     ;    if (SYSCLK/BAUDRATE/2/256 < 1) {
                     356                             ; SOURCE LINE # 28
                     357     ;       TH1 = -(SYSCLK/BAUDRATE/2);
                     358                             ; SOURCE LINE # 29
                     359     ;       CKCON &= ~0x0B;                  // T1M = 1; SCA1:0 = xx
                     360                             ; SOURCE LINE # 30
                     361     ;       CKCON |=  0x08;
                     362                             ; SOURCE LINE # 31
                     363     ;    } else if (SYSCLK/BAUDRATE/2/256 < 4) {
                     364                             ; SOURCE LINE # 32
                     365     ;       TH1 = -(SYSCLK/BAUDRATE/2/4);
                     366                             ; SOURCE LINE # 33
                     367     ;       CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01                  
                     368                             ; SOURCE LINE # 34
                     369     ;       CKCON |=  0x09;
                     370                             ; SOURCE LINE # 35
                     371     ;    } else if (SYSCLK/BAUDRATE/2/256 < 12) {
                     372                             ; SOURCE LINE # 36
0003                 373     ?C0003:
                     374     ;       TH1 = -(SYSCLK/BAUDRATE/2/12);
                     375                             ; SOURCE LINE # 37
0003 758D96          376             MOV     TH1,#096H
                     377     ;       CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
                     378                             ; SOURCE LINE # 38
0006 538EF4          379             ANL     CKCON,#0F4H
                     380     ;    } else {
                     381                             ; SOURCE LINE # 39
                     382     ;       TH1 = -(SYSCLK/BAUDRATE/2/48);
                     383                             ; SOURCE LINE # 40
                     384     ;       CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
                     385                             ; SOURCE LINE # 41
                     386     ;       CKCON |=  0x02;
                     387                             ; SOURCE LINE # 42
                     388     ;    }
A51 MACRO ASSEMBLER  COMM                                                                 08/03/2009 16:57:28 PAGE     7

                     389                             ; SOURCE LINE # 43
0009                 390     ?C0002:
                     391     ; 
                     392     ;    TL1 = TH1;                          // init Timer1
                     393                             ; SOURCE LINE # 45
0009 858D8B          394             MOV     TL1,TH1
                     395     ;    TMOD &= ~0xf0;                      // TMOD: timer 1 in 8-bit autoreload
                     396                             ; SOURCE LINE # 46
000C 53890F          397             ANL     TMOD,#0FH
                     398     ;    TMOD |=  0x20;                       
                     399                             ; SOURCE LINE # 47
000F 438920          400             ORL     TMOD,#020H
                     401     ;    TR1 = 1;                            // START Timer1
                     402                             ; SOURCE LINE # 48
0012 D28E            403             SETB    TR1
                     404     ;    Buff_Init();
                     405                             ; SOURCE LINE # 49
0014 020000   F      406             LJMP    Buff_Init
                     407     ; END OF UART0_Init
                     408     
                     409     ; 
                     410     ; }
                     411     ; 
                     412     ; /******************************************************************************
                     413     ; ** 函数: Buff_Init (void)
                     414     ; ** 入参: 
                     415     ; ** 返回: 
                     416     ; ** 说明: 
                     417     ; ******************************************************************************/
                     418     ; void Buff_Init (void)
                     419     
----                 420             RSEG  ?PR?Buff_Init?COMM
0000                 421     Buff_Init:
                     422             USING   0
                     423                             ; SOURCE LINE # 59
                     424     ; {
                     425                             ; SOURCE LINE # 60
                     426     ; 
                     427     ;     inTxBuf=TxBuf;outTxBuf=TxBuf;
                     428                             ; SOURCE LINE # 62
0000 900000   F      429             MOV     DPTR,#inTxBuf
0003 7400     F      430             MOV     A,#HIGH (TxBuf)
0005 F0              431             MOVX    @DPTR,A
0006 A3              432             INC     DPTR
0007 7400     F      433             MOV     A,#LOW (TxBuf)
0009 F0              434             MOVX    @DPTR,A
000A F9              435             MOV     R1,A
000B A3              436             INC     DPTR
000C 7401            437             MOV     A,#01H
000E F0              438             MOVX    @DPTR,A
000F A3              439             INC     DPTR
0010 7400     F      440             MOV     A,#HIGH (TxBuf)
0012 F0              441             MOVX    @DPTR,A
0013 A3              442             INC     DPTR
0014 E9              443             MOV     A,R1
0015 F0              444             MOVX    @DPTR,A
                     445     ;       inRxBuf=RxBuf;outRxBuf=RxBuf;
                     446                             ; SOURCE LINE # 63
0016 900000   F      447             MOV     DPTR,#inRxBuf
0019 7401            448             MOV     A,#01H
001B F0              449             MOVX    @DPTR,A
001C A3              450             INC     DPTR
001D 7400     F      451             MOV     A,#HIGH (RxBuf)
001F F0              452             MOVX    @DPTR,A
0020 A3              453             INC     DPTR
0021 7400     F      454             MOV     A,#LOW (RxBuf)
A51 MACRO ASSEMBLER  COMM                                                                 08/03/2009 16:57:28 PAGE     8

0023 F0              455             MOVX    @DPTR,A
0024 F9              456             MOV     R1,A
0025 A3              457             INC     DPTR
0026 7401            458             MOV     A,#01H
0028 F0              459             MOVX    @DPTR,A
0029 A3              460             INC     DPTR
002A 7400     F      461             MOV     A,#HIGH (RxBuf)
002C F0              462             MOVX    @DPTR,A
002D A3              463             INC     DPTR
002E E9              464             MOV     A,R1
002F F0              465             MOVX    @DPTR,A
                     466     ;       EA=1;ES0=1;
                     467                             ; SOURCE LINE # 64
0030 D2AF            468             SETB    EA
0032 D2AC            469             SETB    ES0
                     470     ; 
                     471     ; }
                     472                             ; SOURCE LINE # 66
0034 22              473             RET     
                     474     ; END OF Buff_Init
                     475     
----                 476     CSEG    AT      00023H
0023 020000   F      477             LJMP    serial
                     478     
                     479     ; 
                     480     ; /******************************************************************************
                     481     ; ** 函数: UATR0_ISR()  interrupt
                     482     ; ** 入参: 
                     483     ; ** 返回: 
                     484     ; ** 说明:  interrupt 4
                     485     ; ******************************************************************************/
                     486     ; 
                     487     ; void serial(void) interrupt 4
                     488     
----                 489             RSEG  ?PR?serial?COMM
                     490             USING   0
0000                 491     serial:
0000 C0E0            492             PUSH    ACC
0002 C0F0            493             PUSH    B
0004 C083            494             PUSH    DPH
0006 C082            495             PUSH    DPL
0008 C0D0            496             PUSH    PSW
000A 75D000          497             MOV     PSW,#00H
000D C000            498             PUSH    AR0
000F C001            499             PUSH    AR1
0011 C002            500             PUSH    AR2
0013 C003            501             PUSH    AR3
0015 C006            502             PUSH    AR6
                     503             USING   0
                     504                             ; SOURCE LINE # 75
                     505     ; { 
                     506     ;  
                     507     ;    unsigned char *t;
                     508     ; 
                     509     ; if(TI0) 
                     510                             ; SOURCE LINE # 80
0017 309978          511             JNB     TI0,?C0009
                     512     ;       {       
                     513                             ; SOURCE LINE # 81
                     514     ;                TI0=0;
                     515                             ; SOURCE LINE # 82
001A C299            516             CLR     TI0
                     517     ;         if(inTxBuf==outTxBuf) {TIflag=1;return;}//TxBuf Empty
                     518                             ; SOURCE LINE # 83
001C 900000   F      519             MOV     DPTR,#outTxBuf

⌨️ 快捷键说明

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