Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ZADANIE 1
- LJMP START
- LCDstatus equ 0FF2EH
- LCDcontrol equ 0FF2CH
- LCDdataWR equ 0FF2DH
- LCDdataRD equ 0FF2FH
- P5 equ 0F8H
- P7 equ 0DBH
- #define HOME 0x80
- #define INITDISP 0x38
- #define HOM2 0xc0
- #define LCDON 0x0e
- #define CLEAR 0x01
- ORG 0100H
- text1: DB "Wojtek",00
- text2: DB "Piotrek",00
- text3: DB "jest",00
- text4: DB "super",00
- 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
- PUSH ACC
- loop1:
- MOV DPTR, #LCDstatus
- MOVX A, @DPTR
- JB ACC.7, loop1
- MOV DPTR, #LCDdataWR
- POP ACC
- MOVX @DPTR, A
- ENDM
- initLCD MACRO
- LCDcntrlWR #INITDISP
- LCDcntrlWR #CLEAR
- LCDcntrlWR #LCDON
- ENDM
- LCDstrWR:
- CLR A
- MOVC A, @A+DPTR
- JZ koniec
- PUSH DPH
- PUSH DPL
- LCDcharWR
- POP DPL
- POP DPH
- INC DPTR
- SJMP LCDstrWR
- koniec:
- RET
- CZEKAJ2:
- MOV R1, #0FFH
- ZEWNATRZ2:
- MOV R2, #0FFH
- WEWNATRZ2:
- DJNZ R2, WEWNATRZ2
- DJNZ R1, ZEWNATRZ2
- RET
- START:
- /*initLCD
- LCDcntrlWR #HOM2
- PETLA:
- MOV C, P3.2
- JNC print1
- MOV C, P3.3
- JNC print2
- MOV C, P3.4
- JNC print3
- MOV C, P3.5
- JNC print4
- SJMP PETLA
- print1:
- MOV A, #70H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text1
- call LCDstrWR
- call CZEKAJ2
- SJMP PETLA
- print2:
- MOV A, #26H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text2
- call LCDstrWR
- call CZEKAJ2
- SJMP PETLA
- print3:
- MOV A, #7H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text3
- call LCDstrWR
- call CZEKAJ2
- SJMP PETLA
- print4:
- MOV A, #77H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text4
- call LCDstrWR
- call CZEKAJ2
- JMP PETLA */
- MOV R0, #7FH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ NEXT1
- MOV A, R1
- MOV P1, A
- NEXT1:
- MOV R0, #0BFH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ NEXT2
- MOV A, R1
- MOV P1, A
- NEXT2:
- MOV R0, #0DFH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ NEXT3
- MOV A, R1
- MOV P1, A
- NEXT3:
- MOV R0, #0EFH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ START
- MOV A, R1
- MOV P1, A
- JMP START
- NOP
- NOP
- NOP
- JMP $
- END START
- ZADANIE 2
- LJMP START
- LCDstatus equ 0FF2EH
- LCDcontrol equ 0FF2CH
- LCDdataWR equ 0FF2DH
- LCDdataRD equ 0FF2FH
- P5 equ 0F8H
- P7 equ 0DBH
- #define HOME 0x80
- #define INITDISP 0x38
- #define HOM2 0xc0
- #define LCDON 0x0e
- #define CLEAR 0x01
- ORG 0100H
- text1: DB "Wojtek",00
- text2: DB "Piotrek",00
- text3: DB "jest",00
- text4: DB "super",00
- 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
- LOCAL skok
- INC R4
- DJNZ R4, #16, skok
- MOV R4, #0
- INC R5
- LCDcntrlWR #HOM2
- DJNZ R5, #2, skok
- MOV R5, #0
- skok:
- PUSH DPL
- PUSH DPH
- PUSH ACC
- loop1:
- MOV DPTR, #LCDstatus
- MOVX A, @DPTR
- JB ACC.7, loop1
- MOV DPTR, #LCDdataWR
- POP ACC
- MOVX @DPTR, A
- POP DPH
- POP DPL
- ENDM
- initLCD MACRO
- LCDcntrlWR #INITDISP
- LCDcntrlWR #CLEAR
- LCDcntrlWR #LCDON
- ENDM
- LCDstrWR:
- CLR A
- MOVC A, @A+DPTR
- JZ koniec
- PUSH DPH
- PUSH DPL
- LCDcharWR
- POP DPL
- POP DPH
- INC DPTR
- SJMP LCDstrWR
- koniec:
- RET
- CZEKAJ2:
- PUSH ACC
- MOV A, R1
- PUSH ACC
- MOV A, R2
- PUSH ACC
- MOV R1, #0FFH
- ZEWNATRZ2:
- MOV R2, #0FFH
- WEWNATRZ2:
- DJNZ R2, WEWNATRZ2
- DJNZ R1, ZEWNATRZ2
- POP ACC
- MOV R2, A
- POP ACC
- MOV R1, A
- POP ACC
- RET
- START:
- /*initLCD
- LCDcntrlWR #HOM2
- PETLA:
- MOV C, P3.2
- JNC print1
- MOV C, P3.3
- JNC print2
- MOV C, P3.4
- JNC print3
- MOV C, P3.5
- JNC print4
- SJMP PETLA
- print1:
- MOV A, #70H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text1
- call LCDstrWR
- call CZEKAJ2
- SJMP PETLA
- print2:
- MOV A, #26H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text2
- call LCDstrWR
- call CZEKAJ2
- SJMP PETLA
- print3:
- MOV A, #7H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text3
- call LCDstrWR
- call CZEKAJ2
- SJMP PETLA
- print4:
- MOV A, #77H
- MOV P1, A
- LCDcntrlWR #CLEAR
- LCDcntrlWR #HOM2
- MOV DPTR, #text4
- call LCDstrWR
- call CZEKAJ2
- JMP PETLA */
- initLCD
- MOV DPH, #80H
- MOV DPL, #77H
- MOV A, #31H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #7BH
- MOV A, #32H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #7DH
- MOV A, #33H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #7EH
- MOV A, #41H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0B7H
- MOV A, #34H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0BBH
- MOV A, #35H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0BDH
- MOV A, #36H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0BEH
- MOV A, #42H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0D7H
- MOV A, #37H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0DBH
- MOV A, #38H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0DDH
- MOV A, #39H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0DEH
- MOV A, #43H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0E7H
- MOV A, #45H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0EBH
- MOV A, #30H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0EDH
- MOV A, #46H
- MOVX @DPTR, A
- MOV DPH, #80H
- MOV DPL, #0EEH
- MOV A, #44H
- MOVX @DPTR, A
- MOV R4, #0
- MOV R5, #0
- PETLA:
- MOV R0, #7FH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ NEXT1
- call CZEKAJ2
- MOV A, R1
- MOV DPH, #80H
- MOV DPL, A
- MOVX A, @DPTR
- LCDcharWR
- MOV P1, A
- PETLA2:
- JZ PETLA
- NEXT1:
- MOV R0, #0BFH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ NEXT2
- call CZEKAJ2
- MOV A, R1
- MOV DPH, #80H
- MOV DPL, A
- MOVX A, @DPTR
- LCDcharWR
- MOV P1, A
- NEXT2:
- MOV R0, #0DFH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ NEXT3
- call CZEKAJ2
- MOV A, R1
- MOV DPH, #80H
- MOV DPL, A
- MOVX A, @DPTR
- LCDcharWR
- MOV P1, A
- NEXT3:
- MOV R0, #0EFH
- MOV A, R0
- MOV P5, A
- MOV A, P7
- ANL A, R0
- MOV R1, A
- CLR C
- SUBB A, R0
- JZ PETLA2
- call CZEKAJ2
- MOV A, R1
- MOV DPH, #80H
- MOV DPL, A
- MOVX A, @DPTR
- LCDcharWR
- MOV P1, A
- JMP PETLA
- NOP
- NOP
- NOP
- JMP $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement