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

📄 lm032l4l.lst

📁 this program uses pic microcontroller for display temperature on a lcd monitor.
💻 LST
📖 第 1 页 / 共 4 页
字号:
                     0378             CALL    BUSY_CHECK      ; Wait for LCD to be ready 
                     0379             MOVF    CHAR, w           
                     0380             MOVWF   LCD_DATA        ; Send data to LCD 
                     0381             BCF     LCD_CNTL, R_W   ; Set LCD in read mode 
                     0382             BCF     LCD_CNTL, RS    ; Set LCD in command mode 
                     0383             BSF     LCD_CNTL, E     ; toggle E for LCD 
                     0384             BCF     LCD_CNTL, E 
                     0385             RETURN 
                     0386 ; 
                     0387     endif 
                     0388 ; 

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  5:29:26                 PAGE 11


LOC  OBJECT CODE     LINE SOURCE TEXT

                     0390 ; 
                     0391     if ( Four_bit )      ; 4-bit Data transfers? 
                     0392 ; 
                     0393         if ( Data_HI )   ; 4-bit transfers on the high nibble of the PORT 
                     0394 ; 
                     0395 ;******************************************************************* 
                     0396 ;* This routine checks the busy flag, returns when not busy        * 
                     0397 ;*  Affects:                                                       * 
                     0398 ;*      TEMP - Returned with busy/address                          * 
                     0399 ;******************************************************************* 
                     0400 ; 
                     0401 BUSY_CHECK 
                     0402             BSF     STATUS, RP0     ; Select Register page 1 
                     0403             MOVLW   0xFF            ; Set Port_D for input 
                     0404             MOVWF   LCD_DATA_TRIS 
                     0405             BCF     STATUS, RP0     ; Select Register page 0 
                     0406             BCF     LCD_CNTL, RS    ; Set LCD for Command mode 
                     0407             BSF     LCD_CNTL, R_W   ; Setup to read busy flag 
                     0408             BSF     LCD_CNTL, E     ; Set E high 
                     0409             BCF     LCD_CNTL, E     ; Set E low 
                     0410             MOVF    LCD_DATA, W     ; Read upper nibble busy flag, DDRam address 
                     0411             ANDLW   0xF0            ; Mask out lower nibble 
                     0412             MOVWF   TEMP 
                     0413             BSF     LCD_CNTL, E     ; Toggle E to get lower nibble 
                     0414             BCF     LCD_CNTL, E 
                     0415             SWAPF   LCD_DATA, w     ; Read lower nibble busy flag, DDRam address 
                     0416             ANDLW   0x0F            ; Mask out upper nibble 
                     0417             IORWF   TEMP            ; Combine nibbles 
                     0418             BTFSC   TEMP, 7         ; Check busy flag, high = busy 
                     0419             GOTO    BUSY_CHECK      ; If busy, check again 
                     0420             BCF     LCD_CNTL, R_W         
                     0421             BSF     STATUS, RP0     ; Select Register page 1 
                     0422             MOVLW   0x0F 
                     0423             MOVWF   LCD_DATA_TRIS   ; Set Port_D for output 
                     0424             BCF     STATUS, RP0     ; Select Register page 0 
                     0425             RETURN 
                     0426 ; 
                     0427         else             ; 4-bit transfers on the low nibble of the PORT 
                     0428 ; 
                     0429 ;******************************************************************* 
                     0430 ;* This routine checks the busy flag, returns when not busy        * 
                     0431 ;*  Affects:                                                       * 
                     0432 ;*      TEMP - Returned with busy/address                          * 
                     0433 ;******************************************************************* 
                     0434 ; 
                     0435 BUSY_CHECK 
0083 1683            0436             BSF     STATUS, RP0     ; Bank 1 
0084 30FF            0437             MOVLW   0xFF            ; Set PortB for input 
Warning: Argument out of range LCD_DATA_TRIS (0086).  Least significant bits used.
0085 0086            0438             MOVWF   LCD_DATA_TRIS 
0086 1283            0439             BCF     STATUS, RP0     ; Bank 0 
0087 1105            0440             BCF     LCD_CNTL, RS    ; Set LCD for Command mode 
0088 1485            0441             BSF     LCD_CNTL, R_W   ; Setup to read busy flag 

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  5:29:26                 PAGE 12


LOC  OBJECT CODE     LINE SOURCE TEXT

0089 1405            0442             BSF     LCD_CNTL, E     ; Set E high 
008A 1005            0443             BCF     LCD_CNTL, E     ; Set E low 
008B 0E06            0444             SWAPF   LCD_DATA, W     ; Read upper nibble busy flag, DDRam address 
008C 39F0            0445             ANDLW   0xF0            ; Mask out lower nibble 
008D 00B5            0446             MOVWF   TEMP            ; 
008E 1405            0447             BSF     LCD_CNTL, E     ; Toggle E to get lower nibble 
008F 1005            0448             BCF     LCD_CNTL, E 
0090 0806            0449             MOVF    LCD_DATA, W     ; Read lower nibble busy flag, DDRam address 
0091 390F            0450             ANDLW   0x0F            ; Mask out upper nibble 
0092 04B5            0451             IORWF   TEMP, F         ; Combine nibbles 
0093 1BB5            0452             BTFSC   TEMP, 7         ; Check busy flag, high = busy 
0094 2883            0453             GOTO    BUSY_CHECK      ; If busy, check again 
0095 1085            0454             BCF     LCD_CNTL, R_W 
0096 1683            0455             BSF     STATUS, RP0     ; Bank 1 
0097 30F0            0456             MOVLW   0xF0            ; 
Warning: Argument out of range LCD_DATA_TRIS (0086).  Least significant bits used.
0098 0086            0457             MOVWF   LCD_DATA_TRIS   ; RB7 - 4 = inputs, RB3 - 0 = output 
0099 1283            0458             BCF     STATUS, RP0     ; Bank 0 
009A 0008            0459             RETURN 
                     0460 ; 
                     0461         endif 
                     0462     else 
                     0463 ; 
                     0464 ;************************************************************** 
                     0465 ;* This routine checks the busy flag, returns when not busy   * 
                     0466 ;*  Affects:                                                  * 
                     0467 ;*      TEMP - Returned with busy/address                     * 
                     0468 ;************************************************************** 
                     0469 ; 
                     0470 BUSY_CHECK 
                     0471             BSF     STATUS,RP0      ; Select Register page 1 
                     0472             MOVLW   0xFF            ; Set port_D for input 
                     0473             MOVWF   LCD_DATA_TRIS 
                     0474             BCF     STATUS, RP0     ; Select Register page 0 
                     0475             BCF     LCD_CNTL, RS    ; Set LCD for command mode 
                     0476             BSF     LCD_CNTL, R_W   ; Setup to read busy flag 
                     0477             BSF     LCD_CNTL, E     ; Set E high 
                     0478             BCF     LCD_CNTL, E     ; Set E low 
                     0479             MOVF    LCD_DATA, w     ; Read busy flag, DDram address 
                     0480             MOVWF   TEMP     
                     0481             BTFSC   TEMP, 7         ; Check busy flag, high=busy 
                     0482             GOTO    BUSY_CHECK  
                     0483             BCF     LCD_CNTL, R_W         
                     0484             BSF     STATUS, RP0     ; Select Register page 1 
                     0485             MOVLW   0x00 
                     0486             MOVWF   LCD_DATA_TRIS   ; Set port_D for output 
                     0487             BCF     STATUS, RP0     ; Select Register page 0 
                     0488             RETURN 
                     0489 ; 
                     0490     endif 

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  5:29:26                 PAGE 13


LOC  OBJECT CODE     LINE SOURCE TEXT

                     0492 ; 
                     0493 Table 
009B 0782            0494             addwf   PCL       ;Jump to char pointed to in W reg 
009C 344D            0495             retlw   'M' 
009D 3469            0496             retlw   'i' 
009E 3463            0497             retlw   'c' 
009F 3472            0498             retlw   'r' 
00A0 346F            0499             retlw   'o' 
00A1 3463            0500             retlw   'c' 
00A2 3468            0501             retlw   'h' 
00A3 3469            0502             retlw   'i' 
00A4 3470            0503             retlw   'p' 
00A5 3420            0504             retlw   ' ' 
00A6 3454            0505             retlw   'T' 
00A7 3465            0506             retlw   'e' 
00A8 3463            0507             retlw   'c' 
00A9 3468            0508             retlw   'h' 
00AA 346E            0509             retlw   'n' 
00AB 346F            0510             retlw   'o' 
00AC 346C            0511             retlw   'l' 
00AD 346F            0512             retlw   'o' 
00AE 3467            0513             retlw   'g' 
00AF 3479            0514             retlw   'y' 
                     0515 Table_End 
00B0 3400            0516             retlw   0 
                     0517 ; 
                     0518         if ( (Table & 0x0FF) >= (Table_End & 0x0FF) ) 
                     0519        MESSG   "Warning - User Definded: Table Table crosses page boundry in computed jump" 
                     0520     endif 
                     0521 ; 
                     0522  
                     0523  
                     0524  
                     0525     end 
                     0526  
                     0527  
                     0528  
                     0529  
                     0530  

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  5:29:26                 PAGE 14


SYMBOL TABLE

LABEL                            VALUE

ADCON0                            001F 
ADCON1                            009F 
ADCS0                             0006 
ADCS1                             0007 
ADON                              0000 
ADRES                             001E 
AM                                0007 
BF                                0000 
BRGH                              0002 
BUSY_CHECK                        0083 
C                                 0000 
CCP1CON                           0017 
CCP1IE                            0002 
CCP1IF                            0002 
CCP1M0                            0000 
CCP1M1                            0001 
CCP1M2                            0002 
CCP1M3                            0003 
CCP1X                             0005 
CCP1Y                             0004 
CCP2CON                           001D 
CCP2M0                            0000 
CCP2M1                            0001 
CCP2M2                            0002 
CCP2M3                            0003 
CCP2X                             0005 
CCP2Y                             0004 
CCPR1H                            0016 
CCPR1L                            0015 
CCPR2H                            001C 
CCPR2L                            001B 
CHAR                              0036 
CHS0                              0003 
CHS1                              0004 
CHS2                              0005 
CKP                               0004 
CLR_DISP                          0001 
CLR_MIN_SW                        0005 
CMD_SEQ                           002F 
CREN                              0004 
CSRC                              0007 
DA                                0005 
DB_HI_BYTE                        0002 
DC                                0001 

⌨️ 快捷键说明

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