Notes
![]() ![]() Notes - notes.io |
ORG 0100H
P5 EQU 0F8H
P7 EQU 0DBH
//rejestry sterujace lcd
LCDstatus equ 0FF2EH //status wyświetlacza
LCDcontrol equ 0FF2CH //sterowanie wyswietlaczem
LCDdataWR equ 0FF2DH //wypisywanie
LCDdataRD equ 0FF2FH //czytanie
#define HOME 0x80 //powrot na poczatek linii
#define INITDISP 0x38 //inicjalizacja lcd
#define HOM2 0xc0 //kursor do drugiej linii
#define LCDON 0x0e //wlaczenie lcd z
#define CLEAR 0x01 //wyczyszczenie wyswietlacza
LCDcntrlWR MACRO x
LOCAL loop
loop:
MOV DPTR, #LCDstatus
MOVX A,@DPTR
JB ACC.7,loop ;check if LCD is 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
POP ACC
MOVX @DPTR,A
ENDM
init_LCD MACRO
MOV R7, #20H ;LICZNIK ZAPELNIENIA LCD
LCDcntrlWR #INITDISP
LCDcntrlWR #CLEAR
LCDcntrlWR #LCDON
ENDM
SHOW MACRO ;WYPISUJE ZNAK NA EKRAN
MOV DPH, #80H ;KOD SKANINGOWY ZNAKU W A
MOV DPL, A ;WYCIAGNIECIE Z XRAM KODU ASCII
MOVX A, @DPTR
MOV R3, A ;ZAPAMIETANIE KODU
LCDcharWR ;WYPISANIE ZNAKU NA LCD, TRACI SIE A
MOV A, R3 ;ODZYSKANIE KODU ASCII
CPL A ;ZANEGOWANIE A
MOV P1, A ;WLACZENIE DIOD
ENDM
ROWc MACRO val ;SPRAWDZA CZY W DANYM WIERSZU ZOSTAL WCISNIETY KLAWISZ
local NEXT,INIT,NEWLINE,PRINT
MOV A, val ;NUMER WIERSZA
MOV R1, A ;ZAPAMIETANIE W R1
MOV P5, A ;WLACZAMTY WIERSZ
MOV A, P7 ;POBIERAMY STAN KOLUMN
CPL A ;NEGACJA BO 0 WLACZA 1 WYLACZA
JZ NEXT ;JESLI 0 TO NIC W TYM WIERSZU NIE ZOSTALO NACISNIETE, SKOK DO NASTEPNEGO WIERSZA
CPL A ;ODZYSKANIE
ANL A, R1 ;UZYSKANIE KODU SKANINGOWEGO
MOV R3, A ;ZAPAMIETANIE KODU
MOV A, R7 ;ZALADOWANIE LICZNIKA LINII
JZ INIT ;JESLI ZERO TO ZNACZY ZE ZAPELNILISMY JUZ OBA WIERSZE LCD
SUBB A, #10H ;JELSI NIE BYLO 0 TO SPRAWDZAMY CZY ZAPELNILISMY PIERWSZY WIERSZ
JZ NEWLINE ;JESLI TAK TO NOWA LINIA
JMP PRINT ;JESLI NIE TO DRUKUJEMY DALEJ
NEWLINE:
LCDcntrlWR #HOM2 ;NOWA LINIA
JMP PRINT
INIT:
init_LCD ;CZYSZCZENIE EKRANU, LICZNIK ZAPELNIENIA NA 32
PRINT:
MOV A, R3 ;ODZYSKANIE KODU SAKNINGOWEGO ZNAKU
SHOW ;WYPISUJE Z AKUMULATORA ZNAK
DEC R7 ;DEKREMENTUJE LICZNIK ZAPELNIENIA LCD
DELAY #0FFH ;OPOZNIENIE
NEXT:
ENDM
DELAY MACRO val
LOCAL TAM, TU, TUTAJ
MOV R6, val //OPOZNIENIE
TAM:
MOV R5, val
TU:
MOV R2, #2H
TUTAJ:
DJNZ R2, TUTAJ
DJNZ R5,TU
DJNZ R6,TAM
ENDM
LOAD MACRO adr, val ;WCZYTUJE DO XRAM POD ADRES WSKAZANY PRZEZ
;KOD SKANINGOWY WARTOSC ASCII ODPOWIADAJACA ZNAKOWI
MOV DPH, #80H
MOV DPL, adr
MOV A, val
MOVX @DPTR, A
ENDM
START:
LOAD #01110111B, #31H
LOAD #01111011B, #32H
LOAD #01111101B, #33H
LOAD #01111110B, #41H
LOAD #10110111B, #34H
LOAD #10111011B, #35H
LOAD #10111101B, #36H
LOAD #10111110B, #42H
LOAD #11010111B, #37H
LOAD #11011011B, #38H
LOAD #11011101B, #39H
LOAD #11011110B, #43H
LOAD #11100111B, #2AH
LOAD #11101011B, #30H
LOAD #11101101B, #23H
LOAD #11101110B, #44H
init_LCD ;USTAWIA LICZNIK ZPAELNIENIA EKRANU NA WARTOSC 32 I CZYSCI EKRAN
READ:
ROWc #7FH
ROWc #0BFH
ROWc #0DFH
ROWc #0EFH
JMP READ
NOP
NOP
NOP
JMP $
END START
![]() |
Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 14 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team