Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LJMP START
- P5 EQU 0F8H
- P7 EQU 0DBH
- LCDstatus equ 0FF2EH
- LCDcontrol equ 0FF2CH
- LCDdataWR equ 0FF2DH
- LCDdataRD equ 0FF2FH
- #define HOME 0x80
- #define INITDISP 0x38
- #define HOM2 0xc0
- #define LCDON 0x0e
- #define CLEAR 0x01
- ORG 000BH
- MOV TH0, #00H
- MOV TL0, #00H
- DEC R0
- RETI
- ORG 0100H
- LCDcntrlWR MACRO x
- LOCAL loop
- loop:
- MOV DPTR, #LCDstatus
- MOVX A, @DPTR
- JB ACC.7, loop
- MOV DPTR, #LCDcontrol
- MOV A, x
- MOVX @DPTR, A
- ENDM
- LCDcharWR MACRO
- LOCAL loop1, loop2
- PUSH ACC
- loop1:
- MOV DPTR, #LCDstatus
- MOVX A, @DPTR
- JB ACC.7, loop1
- loop2:
- MOV DPTR, #LCDdataWR
- POP ACC
- MOVX @DPTR, A
- ENDM
- init_LCD MACRO
- LCDcntrlWR #INITDISP
- LCDcntrlWR #CLEAR
- LCDcntrlWR #LCDON
- ENDM
- putChrLCD:
- LCDcharWR
- RET
- putStringLCD:
- CLR A
- MOVC A, @A+DPTR
- JZ EXIT
- PUSH DPH
- PUSH DPL
- CALL putChrLCD
- POP DPL
- POP DPH
- INC DPTR
- SJMP putStringLCD
- EXIT:RET
- WAIT:
- MOV R2, #0FFH
- INNERLOOP:
- MOV R3, #0FFH
- INLOOP:
- DJNZ R3, INLOOP
- DJNZ R2, INNERLOOP
- RET
- START:
- MOV DPH, #80H
- MOV DPL, #31H //1 - SKN
- MOV A, #31H //ASCII
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #32H //2
- MOV A, #32H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #33H //3
- MOV A, #33H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #41H //A
- MOV A, #41H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #34H //4
- MOV A, #34H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #35H //5
- MOV A, #35H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #36H //6
- MOV A, #36H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0BEH //B
- MOV A, #42H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #37H //7
- MOV A, #37H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #38H //8
- MOV A, #38H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #39H //9
- MOV A, #39H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0DEH //C
- MOV A, #43H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0E7H //*
- MOV A, #02AH
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #30H //0
- MOV A, #30H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0EDH //#
- MOV A, #23H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0EEH //D
- MOV A, #44H
- MOVX @DPTR, A
- MOV TMOD, #01H
- MOV TH0, #00H
- MOV TL0, #00H
- SETB TR0
- init_LCD
- MOV IE, #82H
- MOV A, #00H
- MOV R1, A
- WROC:
- MOV R2, #0H
- MOV R3, #0H
- MOV R4, #7FH
- DALEJ:
- MOV A, R4
- MOV P5, A
- MOV A, P7
- ANL A, R4
- MOV R5, A
- CLR C
- SUBB A, R4
- JZ NIC
- ACALL WAIT
- CLR C
- MOV A, R5
- SUBB A, #077H
- JZ STOP
- MOV A, R5
- SUBB A, #07BH
- JZ WROC2
- NIC:
- init_LCD
- MOV R0, #0FH
- MOV A, R2
- ADD A, #30H
- MOV DPH, #80H
- MOV DPL, A
- MOVX A, @DPTR
- LCDcharWR
- MOV A, R3
- ADD A, #30H
- MOV DPH, #80H
- MOV DPL, A
- MOVX A, @DPTR
- LCDcharWR
- INC R3
- CLR C
- MOV A, R3
- SUBB A, #0BH
- JZ ZMIENDZIESIATKE
- JMP CZEKAM
- WROC3:
- JMP WROC
- NIC2:
- JMP NIC
- CZEKAM:
- MOV A, R0
- JNZ CZEKAM
- MOV A, P1
- CPL A
- MOV P1, A
- JMP DALEJ
- WROC2:
- LJMP START
- STOP:
- MOV A, R4
- MOV P5, A
- MOV A, P7
- ANL A, R4
- MOV R6, A
- CLR C
- SUBB A, R4
- JZ STOP
- //ACALL WAIT
- CLR C
- MOV A, R6
- SUBB A, #7DH
- JZ NIC2
- JMP STOP
- ZMIENDZIESIATKE:
- MOV R3, #00H
- INC R2
- CLR C
- MOV A, R2
- SUBB A, #0AH
- JZ WROC3
- JMP DALEJ
- NOP
- NOP
- NOP
- JMP $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement