Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LJMP START
- LCDstatus equ 0FF2EH //adres do odczytu gotowosci
- LCDcontrol equ 0FF2CH //adres do podania bajtu sterującego
- LCDdataWR equ 0FF2DH //adres do podania kodu ASCII na LCD
- LCDdataRD equ 0FF2FH
- //bajty sterujace LCD
- #define HOME 0x80 //ustawienie kursora na druga linie
- #define INITDISP 0x38 //inicjalizacja
- #define HOM2 0xc0 //ustawienie kursora na druga linie
- #define LCDON 0x0e //wlaczenie wyswietlacza, ustawienie opcji
- #define CLEAR 0x01 // czyszczenie wyswietlacza
- ORG 0100H
- //macro do wprowadzenia bajtu sterujacego na LCD
- LCDcntrlWR MACRO x // x - parametr wywolania makra - bajt sterujacy
- LOCAL loop //zmienna lokalna - moze sie powtorzyc w programie
- loop:
- mov DPTR,#LCDstatus //DPTR załadowany adresem statusu
- movx A,@DPTR //pobranie bajtu z biezacym statusem LCD
- jb ACC.7,loop //jesli lcd zajety skacz do etykiety loop
- mov DPTR,#LCDcontrol //DPTR zaladowany adresem do podania bajtu sterującego
- mov A,x //do akumulatora trafia argument wywolania macra-bajt sterujący
- movx @DPTR,A //bajt sterujacy podany do LCD - akcja widoczna na LCD
- ENDM
- //macro do wypisania znaku ASCII na LCD, znak ASCII przed wywołaniem macra ma być w A
- LCDcharWR MACRO
- LOCAL loop1 //local oznacza ze etykieta loop1 moze powtorzyc sie w programie
- push ACC //odlozenie biezacej wartosci akumulatora na stos
- loop1:
- mov DPTR,#LCDstatus //DPTR zaladowany adresem statusu
- movx A,@DPTR //pobranie bajtu z aktualnym statusem LCD
- jb ACC.7,loop1 //jesli lcd zajety skacz do etykiety loop
- mov DPTR,#LCDdataWR //DPTR zaladowany adresem do podania bajtu sterujacego
- pop ACC //w akumulatorze ponownie kod ASCII znaku na LCD
- movx @DPTR,A //kod ASCII podany do LCD - znak widoczny na LCD
- ENDM
- //macro do inicjalizacji wyswietlacza - bez parametrów
- init_LCD MACRO
- LCDcntrlWR #INITDISP //wywolanie makra LCDcntrlWR - inicjalizacja LCD
- LCDcntrlWR #CLEAR //wywolanie makra LCDcntrlWR - czyszczenie LCD
- LCDcntrlWR #LCDON //wywolanie makra LCDcntrlWR - konfiguracja kursora
- ENDM
- START:
- init_LCD
- mov A,#41H //zaladowanie znaku 'A' do akumulatora
- LCDcharWR //wywolanie macra
- mov A,#4CH //zaladowanie znaku 'L' do akumulatora
- LCDcharWR //wywolanie macra
- mov A,#41H //zaladowanie znaku 'A'
- LCDcharWR //wywolanie macra
- LCDcntrlWR #HOM2 //przejscie do nastepnej linii
- mov A,#4BH //zaladowanie znaku 'K' do akumulatora
- LCDcharWR //wywolanie macra
- mov A,#4FH //zaladowanie znaku 'O' do akumulatora
- LCDcharWR //wywolanie macra
- mov A,#54H //zaladowanie znaku 'T' do akumulatora
- LCDcharWR //wywolanie macra
- NOP //no operation
- NOP
- NOP
- jmp $
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement