This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Prepaid energy meter

INITLCD4: CLR LCD_RS CLR LCD_E MOV R4,#CONFIG CALL WRLCDCOM4 MOV R4,#ONDSP CALL WRLCDCOM4 MOV R4,#ENTRYMODE CALL WRLCDCOM4 MOV R4,#CLRDSP CALL WRLCDCOM4 RET
RESETLCD4: CLR LCD_RS CLR LCD_E CLR LCD_DB7 CLR LCD_DB6 SETB LCD_DB5 SETB LCD_DB4 SETB LCD_E CLR LCD_E MOV A,#4 CALL MDELAY SETB LCD_E CLR LCD_E MOV A,#1 CALL MDELAY SETB LCD_E CLR LCD_E MOV A,#1 CALL MDELAY CLR LCD_DB4 SETB LCD_E CLR LCD_E MOV A,#1 CALL MDELAY MOV R4,#CONFIG CALL WRLCDCOM4 MOV R4,#08H CALL WRLCDCOM4 MOV R4,#1 CALL WRLCDCOM4 MOV R4,#ENTRYMODE ACALL WRLCDCOM4 JMP INITLCD4
WRLCDCOM4: CLR LCD_E CLR LCD_RS PUSH ACC MOV A,R4 MOV C,ACC.4 MOV LCD_DB4,C MOV C,ACC.5 MOV LCD_DB5,C MOV C,ACC.6 MOV LCD_DB6,C MOV C,ACC.7 MOV LCD_DB7,C SETB LCD_E CLR LCD_E MOV C,ACC.0 MOV LCD_DB4,C MOV C,ACC.1 MOV LCD_DB5,C MOV C,ACC.2 MOV LCD_DB6,C MOV C,ACC.3 MOV LCD_DB7,C CLR LCD_E SETB LCD_E CLR LCD_E CALL MADELAY POP ACC RET
WRLCDDATA: CLR LCD_E SETB LCD_RS PUSH ACC MOV A,R4 MOV C,ACC.4 MOV LCD_DB4,C MOV C,ACC.5 MOV LCD_DB5,C MOV C,ACC.6 MOV LCD_DB6,C MOV C,ACC.7 MOV LCD_DB7,C SETB LCD_E CLR LCD_E MOV C,ACC.0 MOV LCD_DB4,C MOV C,ACC.1 MOV LCD_DB5,C MOV C,ACC.2 MOV LCD_DB6,C MOV C,ACC.3 MOV LCD_DB7,C CLR LCD_E SETB LCD_E CLR LCD_E NOP NOP POP ACC RET
LCD_MSG: CLR A MOVC A,@A+DPTR INC DPTR JZ LCD_MSG9 CJNE A,#01H,LCD_MSG1 MOV R4,A CALL WRLCDCOM4 JMP LCD_MSG
LCD_MSG1: CJNE A,0FFH,FLL MOV R4,A CALL WRLCDDATA JMP LCD_MSG
FLL: CJNE A,#080H,$+3 JC LCD_MSG_DATA MOV R4,A CALL WRLCDCOM4 JMP LCD_MSG
LCD_MSG_DATA: MOV R4,A CALL WRLCDDATA JMP LCD_MSG
LCD_MSG9:

RET
MDELAY: PUSH ACC MOV A,0A6H
MD_OLP: INC A NOP NOP NOP NOP NOP NOP NOP NOP JNZ MD_OLP NOP POP ACC RET
MADELAY: PUSH ACC MOV A,036H
MAD_OLP: INC A NOP NOP NOP NOP NOP NOP NOP NOP JNZ MAD_OLP NOP POP ACC RET
DELAYS: MOV R6,#00H MOV R5,#04H
LOOPB: INC R6 ACALL DELAYMS
HERE: MOV A,R6 JNZ LOOPB DEC R5 MOV A,R5 JNZ LOOPB RET
DELAYMS:
; MOV R7,#00H
LOOPA: INC R7 MOV A,R7 CJNE A,0FFH,LOOPA RET
OUTS: MOV R2,#8 SETB SDA1 SETB SCL1 NOP NOP NOP CLR SDA1 NOP NOP NOP CLR SCL1
OTSLP: RLC A JNC BITLS SETB SDA1 JMP OTSL1
BITLS: CLR SDA1
OTSL1: SETB SCL1 NOP NOP NOP

CLR SCL1 DJNZ R2,OTSLP SETB SDA1 NOP

SETB SCL1 NOP NOP NOP CLR SCL1 RET
OUT: MOV R2,#8
OTLP: RLC A JNC BITL SETB SDA1 JMP OTL1
BITL: CLR SDA1
OTL1: SETB SCL1 NOP NOP NOP

CLR SCL1 DJNZ R2,OTLP SETB SDA1 NOP

SETB SCL1 NOP NOP NOP

CLR SCL1 RET
STOP: CLR SDA1 NOP NOP NOP

SETB SCL1 NOP NOP NOP

SETB SDA1 RET
CREAD: MOV A,#RDCMD CALL OUTS CALL IN MOV R1,A CALL STOP RET
IN: MOV R2,#8 SETB SDA1
INLP: CLR SCL1 NOP NOP NOP NOP

SETB SCL1 CLR C JNB SDA1,INL1 CPL C
INL1: RLC A DJNZ R2,INLP CLR SCL1 RET
ACKTST: MOV A,#WTCMD MOV R2,#8 CLR SDA1 NOP NOP NOP

CLR SCL1
AKTLP: RLC A JNC AKTLS SETB SDA1 JMP AKTL1
AKTLS: CLR SDA1
AKTL1: SETB SCL1 NOP NOP NOP

CLR SCL1 DJNZ R2,AKTLP SETB SDA1 NOP

SETB SDA1 NOP

SETB SCL1 NOP NOP NOP

JNB SDA1,EXIT JMP ACKTST
EXIT: CLR SCL1 CLR SDA1 NOP NOP NOP

SETB SCL1 NOP NOP SETB SDA1 RET END

This 3 threads contains my program sir please help to clearthe warningL4:Data Space Memory Overlap
From 0000H to 0033H.. Please help me sir