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

📄 speedo1.lst

📁 speedometer cum odometer with asm and hex files
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     226 +1        CONVERT
00F2 4430            227 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
SPEEDO1                                                                                                       PAGE 5

00F4 120141          229           LCALL DAT
                     230           
00F7 E525            231           MOV A,TKM
                     232 +1        CONVERT
00F9 4430            233 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
00FB 120141          235           LCALL DAT
                     236           
00FE E524            237           MOV A,KM
                     238 +1        CONVERT
0100 4430            239 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
0102 120141          241           LCALL DAT
                     242           
0105 742E            243           MOV A,#'.'
0107 120141          244           LCALL DAT 
                     245           
010A E523            246           MOV A,POINT
                     247 +1        CONVERT
010C 4430            248 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
010E 120141          250           LCALL DAT
                     251           
0111 74CB            252           MOV A,#0CBH    ; LINE 2
0113 120150          253           LCALL CMD
                     254           
                     255                 
0116 E52A            256           MOV A,VAL1
                     257 +1        CONVERT
0118 4430            258 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
011A 120141          260           LCALL DAT
                     261          
011D E52B            262           MOV A,VAL2
                     263 +1        CONVERT
011F 4430            264 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
0121 120141          266           LCALL DAT
                     267           
0124 742E            268           MOV A,#'.'
0126 120141          269           LCALL DAT 
                     270           
0129 E52C            271           MOV A,VAL3
                     272 +1        CONVERT
012B 4430            273 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
012D 120141          275           LCALL DAT
                     276           
                     277           
0130 22              278           RET
                     279          
                     280       
                     281    ;****************************LCD SUBROUTINES****************************************
                     282            
0131 D2B7            283      READY:SETB EN ;H->L PULSE ON E
0133 C2B2            284            CLR  RS ;RS=0 CMD
0135 D2B3            285            SETB RW ;RW=1 FOR READ
0137 D297            286            SETB P1.7 ;D7 AS INPUT
0139 2097F5          287            JB P1.7,READY 
013C C2B7            288            CLR EN
013E C2B3            289            CLR RW
0140 22              290            RET
                     291    ;****************************LCD SUBROUTINES****************************************
                     292              
SPEEDO1                                                                                                       PAGE 6

0141 D2B7            293       DAT:   SETB EN ;H->L PULSE ON E 
0143 D2B2            294              SETB RS ;RS=1 DATA
0145 C2B3            295              CLR RW ;RW=0 FOR WRITE
0147 F590            296              MOV LCD,A ;MOVE ACC.DATA TO PORT
0149 C2B7            297              CLR EN
014B 00              298              NOP
014C 120131          299              LCALL READY
014F 22              300              RET
                     301    ;****************************LCD SUBROUTINES****************************************
                     302    
0150 D2B7            303       CMD:      SETB EN ;H->L PULSE ON E
0152 C2B2            304                 CLR RS  ;RS=0 FOR COMMAND
0154 C2B3            305                 CLR RW ;RW=0 FOR WRITE
0156 F590            306                 MOV LCD,A ;MOVE ACC. DATA TO PORT
0158 C2B7            307                 CLR EN
015A 00              308                 NOP
015B 120131          309                 LCALL READY
015E 22              310                 RET
                     311     ;****************************LCD SUBROUTINES****************************************
                     312            
015F 7430            313    INIT:           MOV A,#030H   ;INITIALIZE LCD BY SENDING 30H THREE TIMES. 
0161 120150          314                    LCALL  CMD
0164 31B3            315                    ACALL DDELAY  ;INITIAL DELAY 4.1MSEC
0166 7430            316                    MOV A,#030H   
0168 120150          317                    LCALL  CMD
016B 31B3            318                    ACALL DDELAY  
016D 7430            319                    MOV A,#030H   
016F 120150          320                    LCALL  CMD
0172 31B3            321                    ACALL DDELAY 
                     322                    
0174 7438            323                    MOV A,#038H   ; INITIALIZE, 2-LINES, 5X7 MATRIX.
0176 120150          324                    LCALL  CMD
0179 31B3            325                    ACALL DDELAY 
                     326                    
017B 740C            327                    MOV A,#0CH    ;  INVISIBLE CURSOR ON;
017D 120150          328                    LCALL  CMD
0180 7401            329                    MOV A,#01H    ; CLEAR LCD SCREEN
0182 120150          330                    LCALL  CMD
0185 7406            331                    MOV A,#06H    ; SHIFT CURSOR RIGHT
0187 120150          332                    LCALL  CMD
                     333                    
018A 7480            334                    MOV A,#80H       ; LINE 1
018C 120150          335                    LCALL CMD         
                     336                   
018F 900350          337                    MOV DPTR,#MSG_1
0192 E4              338            LINE1:  CLR A
0193 93              339                    MOVC A,@A+DPTR
0194 6005            340                    JZ NEXTLINE
0196 3141            341                    ACALL DAT
0198 A3              342                    INC DPTR
0199 80F7            343                    SJMP LINE1
                     344         
019B 74C0            345          NEXTLINE: MOV A,#0C0H       ; LINE 2 
019D 120150          346                    LCALL CMD        
                     347                   
01A0 900355          348                    MOV DPTR,#MSG_2
01A3 E4              349            LINE11: CLR A
01A4 93              350                    MOVC A,@A+DPTR
SPEEDO1                                                                                                       PAGE 7

01A5 6005            351                    JZ DONE
01A7 3141            352                    ACALL DAT
01A9 A3              353                    INC DPTR
01AA 80F7            354                    SJMP LINE11
                     355                                   
                     356                    
01AC 22              357             DONE:  RET
                     358                    
                     359    ;****************************LCD SUBROUTINES****************************************
                     360                   
01AD 7401            361    CLEAR:  MOV A,#01H
01AF 120150          362            LCALL  CMD
01B2 22              363            RET
                     364    
                     365    ;****************************LCD SUBROUTINES****************************************
                     366    
01B3 7D29            367    DDELAY:  MOV R5,#41D           ; 4.1 mS DELAY
01B5 7E32            368        QT2: MOV R6,#50D
01B7 DEFE            369        QT1: DJNZ R6,QT1
01B9 DDFA            370             DJNZ R5,QT2                 
01BB 22              371             RET
                     372    
                     373    ;***********************************************************************
                     374    ;                I2C - SERIAL EEPROM ROUTINES
                     375    ;***********************************************************************
                     376    ;**********************************************************     
                     377    ; THIS SUB READS ONE BYTE OF DATA FROM THE EEPROM
                     378    ;**********************************************************
                     379    
01BC                 380    READ_BYTE:
01BC 752108          381             MOV         BITCNT,#08H; SET COUNTER FOR 8-BITS DATA
01BF 7400            382             MOV         A,#00H
01C1 D2B1            383             SETB        SDA        ; SET SDA HIGH TO ENSURE LINE
                     384                                    ; FREE
01C3                 385    READ_BITS:
                     386 +1          SCL_HIGH               ; TRANSITION SCL LOW-TO-HIGH
01C3 D2B0            387 +1           SETB   SCL      ; SET SCL HIGH
01C5 30B0FD          388 +1           JNB    SCL,$    ; LOOP UNTIL STRONG 1 ON SCL
01C8 A2B1            390             MOV         C,SDA      ; MOVE DATA BIT INTO CARRY
01CA 33              391             RLC         A          ; ROTATE CARRY-BIT INTO ACC.0
01CB C2B0            392             CLR         SCL        ; TRANSITION SCL HIGH-TO-LOW
01CD D521F3          393             DJNZ        BITCNT,READ_BITS
                     394                                    ; LOOP FOR 8-BITS
01D0 200002          395             JB          LASTREAD,ACKN
                     396                                    ; CHECK TO SEE IF THIS IS
                     397                                    ; THE LAST READ
01D3 C2B1            398             CLR         SDA        ; IF NOT LAST READ SEND ACK-BIT
                     399    
01D5                 400    ACKN:
                     401 +1          SCL_HIGH               ; PULSE SCL TO TRANSMIT ACKNOWLEDGE
01D5 D2B0            402 +1           SETB   SCL      ; SET SCL HIGH
01D7 30B0FD          403 +1           JNB    SCL,$    ; LOOP UNTIL STRONG 1 ON SCL
01DA C2B0            405             CLR         SCL        ; OR NOT ACKNOWLEDGE BIT
01DC 22              406             RET
                     407    
                     408    ;**********************************************************
                     409    ;         SUB SENDS START CONDITION
                     410    ;**********************************************************
SPEEDO1                                                                                                       PAGE 8

                     411    
01DD                 412    SEND_START:
01DD D207            413             SETB        _2W_BUSY   ; INDICATE THAT 2-WIRE
01DF C205            414             CLR         ACK        ; OPERATION IS IN PROGRESS
01E1 C206            415             CLR         BUS_FLT    ; CLEAR STATUS FLAGS
01E3 30B011          416             JNB         SCL,FAULT
01E6 30B10E          417             JNB         SDA,FAULT
01E9 D2B1            418             SETB        SDA        ; BEGIN START CODITION
                     419 +1          SCL_HIGH
01EB D2B0            420 +1           SETB   SCL      ; SET SCL HIGH
01ED 30B0FD          421 +1           JNB    SCL,$    ; LOOP UNTIL STRONG 1 ON SCL
01F0 C2B1            423             CLR         SDA
01F2 5106            424             ACALL       DEELAY
01F4 C2B0            425             CLR         SCL
01F6 22              426             RET
01F7                 427    FAULT:
01F7 D206            428             SETB        BUS_FLT
01F9 22              429             RET
                     430    
                     431    ;**********************************************************
                     432    ;          SUB SENDS STOP CONDITION
                     433    ;**********************************************************
01FA                 434    SEND_STOP:
01FA C2B1            435             CLR         SDA
                     436 +1          SCL_HIGH
01FC D2B0            437 +1           SETB   SCL      ; SET SCL HIGH
01FE 30B0FD          438 +1           JNB    SCL,$    ; LOOP UNTIL STRONG 1 ON SCL
0201 D2B1            440             SETB        SDA
0203 C207            441             CLR         _2W_BUSY
0205 22              442             RET
                     443    ;**********************************************************
                     444    ; SUB DELAYS THE BUS
                     445    ;**********************************************************
0206                 446    DEELAY:
0206 00              447             NOP                    ; DELAY FOR BUS TIMING
0207 22              448             RET
                     449    ; *********************************************************
                     450    ; THIS SUB SENDS 1 BYTE OF DATA TO THE EEPROM
                     451    ; *********************************************************
                     452    
0208                 453    SEND_BYTE:
0208 752108          454             MOV         BITCNT,#08H; SET COUNTER FOR 8-BITS
020B                 455    SB_LOOP:
020B 30E705          456             JNB         ACC.7,NOTONE ; CHECK TO SEE IF BIT-7 OF
020E D2B1            457             SETB        SDA          ; ACC IS A 1, AND SET SDA HIGH
0210 020215          458             JMP         ONE
0213                 459    NOTONE:
0213 C2B1            460             CLR         SDA             ; CLR SDA LOW
0215                 461    ONE:
                     462 +1          SCL_HIGH                    ; TRANSITION SCL LOW-TO-HIGH
0215 D2B0            463 +1           SETB   SCL      ; SET SCL HIGH
0217 30B0FD          464 +1           JNB    SCL,$    ; LOOP UNTIL STRONG 1 ON SCL
021A 23              466             RL          A               ; ROTATE ACC LEFT 1-BIT
021B C2B0            467             CLR         SCL             ; TRANSITION SCL LOW-TO-HIGH

⌨️ 快捷键说明

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