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

📄 install.lst

📁 单片机C语言参考程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
                                             MOV     A,R7
                                             MOV     R0,#05H
                             L22:            XCH     A,R6
                                             CLR     C
                                             RRC     A
                                             XCH     A,R6
                                             RRC     A
                                             DJNZ    R0,L22
                                             MOV     R7,A
                                             CLR     C
                                             CLR     A
                                             SUBB    A,R7
                                             MOV     RC2L,A
                                             MOV     TL2,A
                                             CLR     A
                                             SUBB    A,R6
                                             MOV     RC2H,A
                                             MOV     TH2,A
                             
                                             MOV     T2CON,#034H
                                             MOV     SCON,#05AH
                             L16:            CLR     RI
                                             JNB     RI,$
                                             MOV     A,SBUF
                                             CJNE    A,#011H,L16
                                             JMP     Mon51
                             
                             
                             $elseif  (SERIAL = 12)
                             ;********************************************************************
                             ;*  Using second serial interface of Dallas 80C320/520/530 with     *
                             ;*  Timer 1 and multiple data pointer support                       *
                             ;*  Oscillator frequency = don't care                               *
                             ;*  Automatic Baudrate Adjustment                                   *
                             ;********************************************************************
                             DPS     DATA    086H
                             CKCON   DATA    08EH
                             SCON1   DATA    0C0H
                             SBUF1   DATA    0C1H
A51 MACRO ASSEMBLER  Configuration for MONITOR-51   (C) 1987-1995 KEIL                    03/11/2004 21:40:55 PAGE    14

                             WDCON   DATA    0D8H
                             RI1     BIT     0C0H.0
                             RXD1    BIT     P1.2
                             
                             InitSerial:     PROMCHECK               ; Check if PROM in System
                                             MOV     DPS,#00H
                                             ORL     CKCON,#010H     ; Timer 1 uses a divide by 4 clock
                                             CLR     TR1
                                             CLR     TF1
                                             CLR     A
                                             MOV     TL1,A
                                             MOV     TH1,A
                                             MOV     TMOD,#010H
                             L4:             JB      RXD1,L4
                             L6:             JNB     RXD1,L6
                             L7:             SETB    TR1
                             L8:             JNB     RXD1,L10
                                             JNB     TF1,L8
                             L10:            JNB     RXD1,L10
                             L12:            JNB     RXD1,L14
                                             JNB     TF1,L12
                             L14:            JNB     RXD1,L14
                             L15:            CLR     TR1
                                             JB      TF1,InitSerial
                                             MOV     R7,TL1
                                             MOV     R6,TH1
                             
                                             MOV     A,R7
                                             ADD     A,#040H
                                             MOV     R7,A
                                             CLR     A
                                             ADDC    A,R6
                                             MOV     R6,A
                             
                                             MOV     A,R7
                                             RLC     A
                                             MOV     A,R6
                                             RLC     A
                                             MOV     R7,A
                                             CLR     C
                                             CLR     A
                                             SUBB    A,R7
                                             MOV     TH1,A
                                             CLR     A
                                             MOV     TL1,A
                                             MOV     TMOD,#00100000B ;C/T = 0, Mode = 2
                                             SETB    TR1
                                             ORL     WDCON,#080H
                                             MOV     SCON1,#05AH
                             
                             L16:            CLR     RI1
                                             JNB     RI1,$
                                             MOV     A,SBUF1
                                             CJNE    A,#011H,L16
                                             JMP     Mon51
                             
                             $endif 
                     923     
                     924     
                     925     $if  ((SERIAL = 3) OR (SERIAL = 10))
                             ;********************************************************************
                             ;*  Interface via additional 80517 UART                             *
                             ;********************************************************************
                             SER_INT_ADR     EQU     83H             ; ADDRESS OF SERIAL INTERRUPT VECTOR
                             SER_INT_ADR_OFF EQU (INT_ADR_OFF + SER_INT_ADR)
                             
A51 MACRO ASSEMBLER  Configuration for MONITOR-51   (C) 1987-1995 KEIL                    03/11/2004 21:40:55 PAGE    15

                             INSTAT:         PUSH    B               ; INPUT STATUS OF SERIAL INTERFACE
                                             MOV     B,S1CON
                                             MOV     C,B.0
                                             POP     B
                                             RET
                             
                             OUTSTAT:        PUSH    B               ; OUTPUT STATUS OF SERIAL INTERFACE
                                             MOV     B,S1CON
                                             MOV     C,B.1
                                             POP     B
                                             RET
                             
                             INCHAR:         MOV     A,S1BUF         ; CHARACTER INPUT-ROUTINE 
                                             RET
                             
                             OUTCHAR:        MOV     S1BUF,A         ; CHARACTER OUTPUT-ROUTINE 
                                             RET
                             
                             CLR_TI:         ANL     S1CON,#11111101B ; CLEAR SERIAL TRANSMIT INTERRUPT FLAG
                                             RET
                             
                             SET_TI:         ORL     S1CON,#00000010B ; SET SERIAL TRANSMIT INTERRUPT FLAG
                                             RET
                             
                             CLR_RI:         ANL     S1CON,#11111110B ; CLEAR SERIAL RECEIVE INTERRUPT FLAG
                                             RET
                             
                             CLR_SER_IE:     ANL     IEN2,#11111110B  ; CLEAR SERIAL INTERRUPT ENABLE FLAG
                                             RET
                             
                             SET_SER_IE:     ORL     IEN2,#00000001B  ; SET SERIAL INTERRUPT ENABLE FLAG
                                             RET
                             
                             BEFORE_GO:                               ; this code is executed before a
                                             RET                      ; a go or proc step is executed
                             
                             AFTER_GO:                                ; this code is executed after a go
                                             RET                      ; command (when a breakpoint was set)
                             
                             WR_CODE:        MOVX    @DPTR,A          ; insert different code here, but
                                             RET                      ; do not change any other register
                                                                      ; without saving it
                             
                             
                             $elseif  ((SERIAL = 5) OR (SERIAL = 12))
                             ;********************************************************************
                             ;*  Interface via additional 80C320 UART                            *
                             ;********************************************************************
                             SER_INT_ADR     EQU     03BH            ; ADDRESS OF SERIAL INTERRUPT VECTOR
                             SER_INT_ADR_OFF EQU (INT_ADR_OFF + SER_INT_ADR)
                             TI1     BIT     0C1H
                             ES1     BIT     0AEH
                             
                             INSTAT:         MOV     C,RI1           ; INPUT STATUS OF SERIAL INTERFACE
                                             RET
                             
                             OUTSTAT:        MOV     C,TI1           ; OUTPUT STATUS OF SERIAL INTERFACE
                                             RET
                             
                             INCHAR:         MOV     A,SBUF1         ; CHARACTER INPUT-ROUTINE
                                             RET
                             
                             OUTCHAR:        MOV     SBUF1,A         ; CHARACTER OUTPUT-ROUTINE
                                             RET
                             
                             CLR_TI:         CLR     TI1             ; CLEAR SERIAL TRANSMIT INTERRUPT FLAG
A51 MACRO ASSEMBLER  Configuration for MONITOR-51   (C) 1987-1995 KEIL                    03/11/2004 21:40:55 PAGE    16

                                             RET
                             
                             SET_TI:         SETB    TI1             ; SET SERIAL TRANSMIT INTERRUPT FLAG
                                             RET
                             
                             CLR_RI:         CLR     RI1             ; CLEAR SERIAL RECEIVE INTERRUPT FLAG
                                             RET
                             
                             CLR_SER_IE:     CLR     ES1             ; CLEAR SERIAL INTERRUPT ENABLE FLAG
                                             RET
                             
                             SET_SER_IE:     SETB    ES1             ; SET SERIAL INTERRUPT ENABLE FLAG
                                             RET
                             
                             BEFORE_GO:                              ; this code is executed before a
                                             RET                     ; a go or proc step is executed
                             
                             AFTER_GO:                               ; this code is executed after a go
                                             RET                     ; command (when a breakpoint was set)
                             
                             WR_CODE:        MOVX    @DPTR,A         ; insert different code here, but
                                             RET                     ; do not change any other register
                                                                     ; without saving it
                             
                             
                             $elseif  (SERIAL = 6)
                             ;********************************************************************
                             ;*  Interface via external UART 16450/16550                         *
                             ;********************************************************************
                             SER_INT_ADR     EQU     023H            ; ADDRESS OF SERIAL INTERR

⌨️ 快捷键说明

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