Chciałbym zrobić program obsługi klawiatury matrycowej 3x4 na dsma 51.Nie wiem jak to zrobić żeby wyświetlało mi zamiast enter -# i zamiast esc- * .Proszę o wskazówki
-[1]-[2]-[3]
-[4]-[5]-[6]
-[7]-[8]-[9]
-[*]-[0]-[#]
Najlepiej poszukać w książce Pana Gałki. Z tego co pamiętam, wbudowana w DSM-51 funkcja zwraca w formie wyniku bajtowego wartość, odpowiadającą naciśniętemu klawiszowi. Można zatem, z polecenia "If zmienna = enter then zmienna = #". Oczywiście w assemblerze, więc
MOV A,zmienna
CJNE A,#(tutaj wpisać wartość którą zwraca funkcja dla enter",pomin_poprawianie_znaku ;jeśli A jest równe temu co w nawiasie, poniższy wiersz się wykona
MOV zmienna,#(wartosc znaku dla #)
pomin_poprawianie_znaku:
nie wiem czy będzie działał, DSM-51 to taki niby asembler ale z dodatkami.
mov a,23h - do akumulatora jest kopiowana wartość komórki pamięci o adresie 23h. Jeśli chcemy do A skopiować wartość 23h należy wpisać MOV a,#23h
więc jak już to:
lcall wait_key
add a,#30h
;mov R2,a
;mov A,23h ;23h-# w tabeli asci
cjne A,#3fh,pomin_poprawienie_znaku ;3fh- funkcja enter w tabeli asci
mov A,#23h
pomin poprawienie znaku:
Chce zrobić program zamka cyfrowego i dlatego chce aby klawisze zapisywanie były w rejestrach czyli zapis kodu aby potem z rejestrami program porównywał kod do otwarcia zamka. Dlatego najlepiej by było jak by zapisał w rejeatrach a potem już nie tylko np porównywał rejeatry z komórkami pamięci aby przy wprowadzeniu właściwego otworzył zamek A kratkę zrobiłem w twn sposób: