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

📄 init_e2p.lst

📁 speedometer cum odometer with asm and hex files
💻 LST
📖 第 1 页 / 共 3 页
字号:
INIT_E2P                                                                                                      PAGE 1

                       1    ;*******************************************************************************************
                                                                               ***********
                       2    ;                        INIT_EEPROM (PROGRAM INITIALIZES I2C EEPROM)
                       3    ; Author: Arun Kumar Vadla
                       4    ;*******************************************************************************************
                                                                               ***********
                       5    ; XTAL Freq = 12 MHz
                       6    
                       7    $MOD51
                       8    
                       9    
  0090                10    LCD    EQU      P1    ;   P1.0 .....P1.7, PORT1 USED AS DATA BUS 
  00B2                11    RS     EQU      P3.2
  00B3                12    RW     EQU      P3.3
  00B7                13    EN     EQU      P3.7
                      14    
  00B4                15    DISTO  EQU      P3.4   ; TIMER 0 INPUT FOR DISTANCE-ODOMETER
  00B5                16    SPEDO  EQU      P3.5   ; TIMER 1 INPUT FOR SPEEDOMETER
                      17    
                      18    
  00B0                19    SCL   EQU        P3.0         ;SCL=PIN6
  00B1                20    SDA   EQU        P3.1         ;SDA=PIN5
                      21    
  00A0                22    EEPROMW   EQU    10100000B     ; SLAVE ADDRESS  OF EEPROM 1010 000  + 0 TO WRITE
  00A1                23    EEPROMR   EQU    10100001B     ; SLAVE ADDRESS  OF EEPROM  1010 000 + 1 TO READ
                      24    
                      25    
                      26    
----                  27    DSEG 
0020                  28    ORG 020H                      ; BIT-ADDRESSABLE RAM
                      29     
0020                  30    FLAGS:    DS      1           ; VARIABLES FOR I2C PROTOCOL
  0000                31    LASTREAD  BIT    FLAGS.0
  0004                32    SQW       BIT    FLAGS.4
  0005                33    ACK       BIT    FLAGS.5
  0006                34    BUS_FLT   BIT    FLAGS.6
  0007                35    _2W_BUSY  BIT    FLAGS.7
  0001                36    OK        BIT      1
  0001                37    STORE BIT 1
0021                  38    BITCNT:   DS            1
0022                  39    BYTECNT:  DS            1
0023                  40    POINT:  DS 1    ; DISTANCE VARIABLES
0024                  41    KM:     DS 1
0025                  42    TKM:   DS 1
0026                  43    HKM:   DS 1
0027                  44    KKM:   DS 1
0028                  45    TKKM:  DS 1
0029                  46    TOTAL: DS 1
                      47    
                      48    
                      49    ; ***MACRO'S***
                      50    
                      51    SCL_HIGH  MACRO
                      52              SETB   SCL      ; SET SCL HIGH
                      53              JNB    SCL,$    ; LOOP UNTIL STRONG 1 ON SCL
                      54              ENDM
                      55              
                      56       
INIT_E2P                                                                                                      PAGE 2

                      57    CONVERT MACRO               
                      58       ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
                      59       ENDM
                      60    
                      61    
----                  62    CSEG                                      ; CODE BEGINS HERE
0000                  63                          ORG 0000H           ; ON RESET
                      64    
0000 8000             65                          SJMP MAIN    
                      66    
                      67                          ;ORG 000BH                  ;Timer Interrupt0
                      68    
                      69                          ;LJMP UPDATE
                      70     
                      71    
                      72    
0002 758170           73    MAIN:  MOV SP,#70H       ; MOVE STACK POINTER TO ADDRESS 70H OF RAM
0005 1201D5           74           LCALL PWR_DELAY   ;LCD POWER ON DELAY
0008 1200A4           75           LCALL INIT        ;INITIALIZE LCD
                      76                
000B 752300           77    TRY_AGAIN:MOV POINT,#00H
000E 752400           78           MOV KM,#00H
0011 752500           79           MOV TKM,#00H
0014 752600           80           MOV HKM,#00H
0017 752700           81           MOV KKM,#00H
001A 752800           82           MOV TKKM,#00H
                      83           
                      84                 
001D 1201A6           85           LCALL SEND2EEPROM
0020 1201DE           86           LCALL DELAY
0023 752301           87           MOV POINT,#1H
0026 752402           88           MOV KM,#2H
0029 752503           89           MOV TKM,#3H
002C 752604           90           MOV HKM,#4H
002F 752705           91           MOV KKM,#5H
0032 752806           92           MOV TKKM,#6H
0035 120169           93           LCALL READEEPROM
0038 120041           94           LCALL SEND2LCD     ; DISPLAY INITIAL/PREVIOUS VALUES
003B E523             95           MOV A,POINT
003D 70CC             96           JNZ TRY_AGAIN
003F 80FE             97          SJMP $ 
                      98         
                      99    
                     100     
                     101    
                     102     
0041                 103    SEND2LCD: 
                     104           
0041 74C0            105           MOV A,#0C0H     ; LINE 1
0043 120095          106           LCALL CMD
                     107           
0046 E528            108           MOV A,TKKM
                     109 +1        CONVERT
0048 4430            110 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
004A 120086          112           LCALL DAT
                     113              
                     114           
004D E527            115           MOV A,KKM
INIT_E2P                                                                                                      PAGE 3

                     116 +1        CONVERT
004F 4430            117 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
0051 120086          119           LCALL DAT
                     120           
0054 E526            121           MOV A,HKM
                     122 +1        CONVERT
0056 4430            123 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
0058 120086          125           LCALL DAT
                     126           
005B E525            127           MOV A,TKM
                     128 +1        CONVERT
005D 4430            129 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
005F 120086          131           LCALL DAT
                     132           
0062 E524            133           MOV A,KM
                     134 +1        CONVERT
0064 4430            135 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
0066 120086          137           LCALL DAT
                     138           
0069 742E            139           MOV A,#'.'
006B 120086          140           LCALL DAT 
                     141           
006E E523            142           MOV A,POINT
                     143 +1        CONVERT
0070 4430            144 +1    ORL A,#30H         ; CONVERT TO ASCII BY ADDING 30H
0072 120086          146           LCALL DAT
                     147          
                     148           
0075 22              149           RET
                     150          
                     151       
                     152    ;****************************LCD SUBROUTINES****************************************
                     153            
0076 D2B7            154      READY:SETB EN ;H->L PULSE ON E
0078 C2B2            155            CLR  RS ;RS=0 CMD
007A D2B3            156            SETB RW ;RW=1 FOR READ
007C D297            157            SETB P1.7 ;D7 AS INPUT
007E 2097F5          158            JB P1.7,READY 
0081 C2B7            159            CLR EN
0083 C2B3            160            CLR RW
0085 22              161            RET
                     162    ;****************************LCD SUBROUTINES****************************************
                     163              
0086 D2B7            164       DAT:   SETB EN ;H->L PULSE ON E 
0088 D2B2            165              SETB RS ;RS=1 DATA
008A C2B3            166              CLR RW ;RW=0 FOR WRITE
008C F590            167              MOV LCD,A ;MOVE ACC.DATA TO PORT
008E C2B7            168              CLR EN
0090 00              169              NOP
0091 120076          170              LCALL READY
0094 22              171              RET
                     172    ;****************************LCD SUBROUTINES****************************************
                     173    
0095 D2B7            174       CMD:      SETB EN ;H->L PULSE ON E
0097 C2B2            175                 CLR RS  ;RS=0 FOR COMMAND
0099 C2B3            176                 CLR RW ;RW=0 FOR WRITE
009B F590            177                 MOV LCD,A ;MOVE ACC. DATA TO PORT

⌨️ 快捷键说明

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