Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LJMP START
- LCDstatus equ 0FF2EH
- LCDcontrol equ 0FF2CH
- LCDdataWR equ 0FF2DH
- #define HOME 0x80
- #define INITDISP 0x38
- #define HOM2 0xc0
- #define LCDON 0x0e
- #define CLEAR 0x01
- ORG 0100H
- text: DB "PTM LABSKO", 00
- text1: DB "INNE LABSKO", 00
- text2: DB "TRZECIE LABSKO", 00
- text3: DB "PODDAJE SIE", 00
- LCDcntrlWR MACRO x
- LOCAL loop
- loop:
- MOV DPTR,#LCDstatus
- MOVX A,@DPTR
- JB ACC.7,loop ; check if LCD busy
- MOV DPTR,#LCDcontrol ; write to LCD control
- 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 ; check if LCD busy
- loop2: MOV DPTR,#LCDdataWR ; write data to LCD
- POP ACC
- MOVX @DPTR,A
- ENDM
- init_LCD MACRO
- LCDcntrlWR #INITDISP
- LCDcntrlWR #CLEAR
- LCDcntrlWR #LCDON
- ENDM
- putcharLCD:
- LCDcharWR
- RET
- putstrLCD:
- CLR A
- MOVC A,@A+DPTR
- JZ ?EXIT ; check if end of string
- push DPH
- push DPL
- CALL putcharLCD ; put char to LCD
- pop DPL
- pop DPH
- INC DPTR
- SJMP putstrLCD
- ?EXIT: RET
- START:
- init_LCD
- MOV DPTR, #text
- CALL putstrLCD
- NOP
- NOP
- NOP
- JMP $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement