Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # PTM 04.06.19
- Wyswietla w kolko od 9 do 1, a zero nie dziala
- LJMP START
- LCDstatus equ 0FF2EH
- LCDcontrol equ 0FF2CH
- LCDdataWR equ 0FF2DH
- LCDdataRD equ 0FF2FH
- P5 EQU 0F8H
- P7 EQU 0DBH
- // 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
- 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
- ORG 000BH
- MOV TH0, #00H
- MOV TL0, #00H
- DEC R0
- RETI
- ORG 0100H
- START:
- init_LCD
- MOV R1, #39H
- MOV TMOD, #01H
- MOV TH0, #00H
- MOV TL0, #00H
- SETB TR0
- MOV IE, #82H
- MOV A, #00H
- MOV P1, A
- DALEJ:
- MOV R0, #13H
- CZEKAM:
- MOV A, R0
- JNZ CZEKAM
- MOV A, P1
- LCDcntrlWR #CLEAR
- MOV A, R1
- MOV P1, A
- LCDcharWR
- SUBB A,#30H
- JZ START
- ADD A, #30H
- DEC A
- MOV R1, A
- MOV P1, A
- JMP DALEJ
- NOP
- NOP
- JMP $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement