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

📄 lm032l8.lst

📁 this program uses pic microcontroller for display temperature on a lcd monitor.
💻 LST
📖 第 1 页 / 共 4 页
字号:
006B 2073            0378             CALL    BUSY_CHECK      ; Wait for LCD to be ready 
006C 0836            0379             MOVF    CHAR, w           
006D 0088            0380             MOVWF   LCD_DATA        ; Send data to LCD 
006E 1105            0381             BCF     LCD_CNTL, R_W   ; Set LCD in read mode 
006F 1085            0382             BCF     LCD_CNTL, RS    ; Set LCD in command mode 
0070 1585            0383             BSF     LCD_CNTL, E     ; toggle E for LCD 
0071 1185            0384             BCF     LCD_CNTL, E 
0072 0008            0385             RETURN 
                     0386 ; 
                     0387     endif 
                     0388 ; 

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  0:53:47                 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 
                     0436             BSF     STATUS, RP0     ; Bank 1 
                     0437             MOVLW   0xFF            ; Set PortB for input 
                     0438             MOVWF   LCD_DATA_TRIS 
                     0439             BCF     STATUS, RP0     ; Bank 0 
                     0440             BCF     LCD_CNTL, RS    ; Set LCD for Command mode 
                     0441             BSF     LCD_CNTL, R_W   ; Setup to read busy flag 
                     0442             BSF     LCD_CNTL, E     ; Set E high 

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  0:53:47                 PAGE 12


LOC  OBJECT CODE     LINE SOURCE TEXT

                     0443             BCF     LCD_CNTL, E     ; Set E low 
                     0444             SWAPF   LCD_DATA, W     ; Read upper nibble busy flag, DDRam address 
                     0445             ANDLW   0xF0            ; Mask out lower nibble 
                     0446             MOVWF   TEMP            ; 
                     0447             BSF     LCD_CNTL, E     ; Toggle E to get lower nibble 
                     0448             BCF     LCD_CNTL, E 
                     0449             MOVF    LCD_DATA, W     ; Read lower nibble busy flag, DDRam address 
                     0450             ANDLW   0x0F            ; Mask out upper nibble 
                     0451             IORWF   TEMP, F         ; Combine nibbles 
                     0452             BTFSC   TEMP, 7         ; Check busy flag, high = busy 
                     0453             GOTO    BUSY_CHECK      ; If busy, check again 
                     0454             BCF     LCD_CNTL, R_W 
                     0455             BSF     STATUS, RP0     ; Bank 1 
                     0456             MOVLW   0xF0            ; 
                     0457             MOVWF   LCD_DATA_TRIS   ; RB7 - 4 = inputs, RB3 - 0 = output 
                     0458             BCF     STATUS, RP0     ; Bank 0 
                     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 
0073 1683            0471             BSF     STATUS,RP0      ; Select Register page 1 
0074 30FF            0472             MOVLW   0xFF            ; Set port_D for input 
Warning: Argument out of range LCD_DATA_TRIS (0088).  Least significant bits used.
0075 0088            0473             MOVWF   LCD_DATA_TRIS 
0076 1283            0474             BCF     STATUS, RP0     ; Select Register page 0 
0077 1085            0475             BCF     LCD_CNTL, RS    ; Set LCD for command mode 
0078 1505            0476             BSF     LCD_CNTL, R_W   ; Setup to read busy flag 
0079 1585            0477             BSF     LCD_CNTL, E     ; Set E high 
007A 1185            0478             BCF     LCD_CNTL, E     ; Set E low 
007B 0808            0479             MOVF    LCD_DATA, w     ; Read busy flag, DDram address 
007C 00B5            0480             MOVWF   TEMP     
007D 1BB5            0481             BTFSC   TEMP, 7         ; Check busy flag, high=busy 
007E 2873            0482             GOTO    BUSY_CHECK  
007F 1105            0483             BCF     LCD_CNTL, R_W         
0080 1683            0484             BSF     STATUS, RP0     ; Select Register page 1 
0081 3000            0485             MOVLW   0x00 
Warning: Argument out of range LCD_DATA_TRIS (0088).  Least significant bits used.
0082 0088            0486             MOVWF   LCD_DATA_TRIS   ; Set port_D for output 
0083 1283            0487             BCF     STATUS, RP0     ; Select Register page 0 
0084 0008            0488             RETURN 
                     0489 ; 
                     0490     endif 

MPASM 00.00.68 Intermediate    LM032L.ASM   6-8-1994  0:53:47                 PAGE 13


LOC  OBJECT CODE     LINE SOURCE TEXT

                     0492 ; 
                     0493 Table 
0085 0782            0494             addwf   PCL       ;Jump to char pointed to in W reg 
0086 344D            0495             retlw   'M' 
0087 3469            0496             retlw   'i' 
0088 3463            0497             retlw   'c' 
0089 3472            0498             retlw   'r' 
008A 346F            0499             retlw   'o' 
008B 3463            0500             retlw   'c' 
008C 3468            0501             retlw   'h' 
008D 3469            0502             retlw   'i' 
008E 3470            0503             retlw   'p' 
008F 3420            0504             retlw   ' ' 
0090 3454            0505             retlw   'T' 
0091 3465            0506             retlw   'e' 
0092 3463            0507             retlw   'c' 
0093 3468            0508             retlw   'h' 
0094 346E            0509             retlw   'n' 
0095 346F            0510             retlw   'o' 
0096 346C            0511             retlw   'l' 
0097 346F            0512             retlw   'o' 
0098 3467            0513             retlw   'g' 
0099 3479            0514             retlw   'y' 
                     0515 Table_End 
009A 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  0:53:47                 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                        0073 
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 + -