Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;ZADAMNIE 1 WYUISZ NAPIS PO LITERCE NA EKLRANIE "EWELINA WRUC"
- LJMP START
- ; PUBLIC putcharLCD, putstrLCD, initLCD, putctrlLCD
- ; LCD registers ----------------------------------
- LCDstatus equ 0FF2EH
- LCDcontrol equ 0FF2CH
- LCDdataWR equ 0FF2DH
- LCDdataRD equ 0FF2FH
- // LCD control bytes ---------------------------------
- #define HOME 0x80 // put curcor to second line
- #define INITDISP 0x38 // LCD init (8-bit mode)
- #define HOM2 0xc0 // put curcor to second line
- #define LCDON 0x0e // LCD nn, cursor off, blinking of
- #define CLEAR 0x01 // LCD display clear
- ORG 0100H
- wait_lcd_busy:
- MOV DPTR,#LCDstatus
- MOVX A,@DPTR
- JB ACC.7,wait_lcd_busy ; check if LCD busy
- RET
- wr_cmd MACRO command
- LCALL wait_lcd_busy
- MOV DPTR,#LCDcontrol ; write to LCD control
- MOV A, command
- MOVX @DPTR,A
- ENDM
- ;-------------
- ; Putch from A
- ;-------------
- lcd_putch_procedure:
- PUSH ACC
- LCALL wait_lcd_busy
- MOV DPTR,#LCDdataWR; Set the datapointer to the adress when the LCD is mapped for char writing
- POP ACC
- MOVX @DPTR, A ; write data to LCD
- RET
- lcd_putch MACRO char
- MOV A, char
- LCALL lcd_putch_procedure
- ENDM
- lcd_init MACRO
- wr_cmd #INITDISP
- wr_cmd #CLEAR
- wr_cmd #LCDON
- ENDM
- START:
- lcd_init
- lcd_putch #'W'
- lcd_putch #34H
- lcd_putch #20H
- lcd_putch #5aH
- lcd_putch #59H
- lcd_putch #43H
- lcd_putch #49H
- lcd_putch #45H
- lcd_putch #4dH
- wr_cmd #HOM2
- wr_cmd #0xFF
- lcd_putch #48H
- lcd_putch #45H
- lcd_putch #48H
- lcd_putch #45H
- lcd_putch #48H
- lcd_putch #45H
- lcd_putch #48H
- lcd_putch #45H
- NOP
- NOP
- NOP
- JMP $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement