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
- #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
- fun:
- MOV DPH, #80H
- MOV DPL, #01H
- MOV A, #031H
- MOVX @DPTR , A
- MOV DPL, #02H
- MOV A, #032H
- MOVX @DPTR , A
- MOV DPL, #03H
- MOV A, #033H
- MOVX @DPTR , A
- MOV DPL, #04H
- MOV A, #034H
- MOVX @DPTR , A
- MOV DPL, #05H
- MOV A, #035H
- MOVX @DPTR , A
- MOV DPL, #06H
- MOV A, #036H
- MOVX @DPTR , A
- MOV DPL, #07H
- MOV A, #037H
- MOVX @DPTR , A
- MOV DPL, #08H
- MOV A, #038H
- MOVX @DPTR , A
- MOV DPL, #09H
- MOV A, #039H
- MOVX @DPTR , A
- MOV DPL, #00H
- MOV A, #030H
- MOVX @DPTR , A
- MOV DPL, #0AH
- MOV A, #03AH
- MOVX @DPTR , A
- RET
- 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 tutu
- PUSH ACC
- tutu: MOV DPTR, #LCDstatus
- MOVX A,@DPTR
- JB ACC.7, tutu
- MOV DPTR,#LCDdataWR
- POP ACC
- MOVX @DPTR, A
- ENDM
- init_LCD MACRO
- LCDcntrlWR #INITDISP
- LCDcntrlWR #CLEAR
- LCDcntrlWR #LCDON
- ENDM
- newline:
- DJNZ R5, koniec
- LCDcntrlWR #HOM2
- MOV R5, #010H
- koniec:
- ret
- clearlcd:
- DJNZ R6, konieclcd
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOME
- MOV R6, #020H
- konieclcd:
- ret
- update:
- inc R1
- cjne r1, #0AH, h
- MOV R1, #00H
- inc R2
- cjne R2, #06H, h
- MOV R2, #00H
- inc R3
- cjne R3, #0AH, h
- MOV R3, #00H
- inc R4
- cjne R4, #06H, h
- MOV R4, #00H
- h:
- ret
- print:
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOME
- MOV DPH, #80H
- MOV DPL, R4
- MOVX A, @DPTR
- LCDcharWR
- MOV DPH, #80H
- MOV DPL, R3
- MOVX A, @DPTR
- LCDcharWR
- MOV DPH, #80H
- MOV DPL, #0AH
- MOVX A, @DPTR
- LCDcharWR
- MOV DPH, #80H
- MOV DPL, R2
- MOVX A, @DPTR
- LCDcharWR
- MOV DPH, #80H
- MOV DPL, R1
- MOVX A, @DPTR
- LCDcharWR
- ret
- START:
- init_LCD
- call fun
- MOV R1, #0H
- MOV R2, #0H
- MOV R3, #0H
- MOV R4, #0H
- MOV TMOD, #01H
- MOV TH0, #00H
- MOV TL0, #00H
- SETB TR0
- MOV IE, #82H
- MOV A, #00H
- MOV P1, A
- DALEJ: MOV R0, #0FH
- CZEKAM:
- MOV R5, #01111111B
- MOV A, R5
- MOV P5, B
- MOV A, P7
- ANL A, R5
- CLR C
- SUBB A,R5
- JZ CZEKAM2
- MOV R1, #0H
- MOV R2, #0H
- MOV R3, #0H
- MOV R4, #0H
- CALL print
- CZEKAM2:
- MOV A, R0
- JNZ CZEKAM
- MOV A, P1
- CPL A
- MOV P1, A
- CALL update
- CALL print
- JMP DALEJ
- NOP
- NOP
- NOP
- JMP $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement