Witam
Mam kawałek kodu symulującego system alarmowy. Wciśnięcie klawisza enter powoduje jego uzbrojenie a esc dezaktywację. Czy jest możliwe aby aktywacja odbywała się za pomocą kodu z klawiatury symulatora jagoda (np. za pomocą kodu 1,2,3) A jeżeli tak jak to powinno wyglądać.
LED EQU P1.7 ;dioda test podłączona do P1.7
BUZZER EQU P1.5 ;brzęczyk podłączony do P1.5
KEY1 EQU 00000001B
KEY2 EQU 00000010B
KEY EQU 111100B
LJMP ENTER
ORG 100H
ENTER:
MOV R0,#CSDS ;adres bufora sterujacego
MOV A,#KEY1 ;sprawdzanie entera
MOVX @R0,A
JB 0B5H,DIODA ;jesli klawisz ent jest wcisniety to skok do zapalenia diody
MOV A,#10 ;eliminacja drgań styków
LCALL DELAY_MS
JB 0B5H,DIODA ;czy nadal naciśnięty
LJMP ENTER ;gdy klawisz puszczony to ide do poczatku
DIODA:
CLR LED ;zapalenie diody
MOV A,#5 ;czekaj czas
LCALL DELAY_100MS
CPL LED
LJMP CZUJNIKI
CZUJNIKI:
MOV R0,#CSDS ;adres bufora sterujacego
MOV A,#KEY ;sprawdzanie klawiszy (czujników)
MOVX @R0,A
JB 0B5H,DIODA1 ;jesli klawisz jest wcisniety to skok do włączenia alarmu
SJMP CZUJNIKI ;gdy klawisz puszczony to ide do poczatku
DIODA1:
CPL LED ;zapal/zgaś diode
CPL BUZZER ;włącz/wyłącz brzęczyk
MOV A,#10 ;czekaj czas 10*100ms=1s
LCALL DELAY_100MS
LJMP ESC
ESC:
MOV R0,#CSDS ;adres bufora sterujacego
MOV A,#KEY2 ;sprawdzanie ESC
MOVX @R0,A
JB 0B5H,USTAWIENIE ;jesli klawisz ESC jest wcisniety to skok do początku programu
MOV A,#10 ;eliminacja drgań styków
LCALL DELAY_MS
JB 0B5H,USTAWIENIE ;jesli klawisz ESC jest wcisniety to skok do początku programu
LJMP DIODA1
USTAWIENIE:
SETB LED ;gaszenie diody
SETB BUZZER ;wyłączenie buzzera
LJMP ENTER
Mam kawałek kodu symulującego system alarmowy. Wciśnięcie klawisza enter powoduje jego uzbrojenie a esc dezaktywację. Czy jest możliwe aby aktywacja odbywała się za pomocą kodu z klawiatury symulatora jagoda (np. za pomocą kodu 1,2,3) A jeżeli tak jak to powinno wyglądać.
LED EQU P1.7 ;dioda test podłączona do P1.7
BUZZER EQU P1.5 ;brzęczyk podłączony do P1.5
KEY1 EQU 00000001B
KEY2 EQU 00000010B
KEY EQU 111100B
LJMP ENTER
ORG 100H
ENTER:
MOV R0,#CSDS ;adres bufora sterujacego
MOV A,#KEY1 ;sprawdzanie entera
MOVX @R0,A
JB 0B5H,DIODA ;jesli klawisz ent jest wcisniety to skok do zapalenia diody
MOV A,#10 ;eliminacja drgań styków
LCALL DELAY_MS
JB 0B5H,DIODA ;czy nadal naciśnięty
LJMP ENTER ;gdy klawisz puszczony to ide do poczatku
DIODA:
CLR LED ;zapalenie diody
MOV A,#5 ;czekaj czas
LCALL DELAY_100MS
CPL LED
LJMP CZUJNIKI
CZUJNIKI:
MOV R0,#CSDS ;adres bufora sterujacego
MOV A,#KEY ;sprawdzanie klawiszy (czujników)
MOVX @R0,A
JB 0B5H,DIODA1 ;jesli klawisz jest wcisniety to skok do włączenia alarmu
SJMP CZUJNIKI ;gdy klawisz puszczony to ide do poczatku
DIODA1:
CPL LED ;zapal/zgaś diode
CPL BUZZER ;włącz/wyłącz brzęczyk
MOV A,#10 ;czekaj czas 10*100ms=1s
LCALL DELAY_100MS
LJMP ESC
ESC:
MOV R0,#CSDS ;adres bufora sterujacego
MOV A,#KEY2 ;sprawdzanie ESC
MOVX @R0,A
JB 0B5H,USTAWIENIE ;jesli klawisz ESC jest wcisniety to skok do początku programu
MOV A,#10 ;eliminacja drgań styków
LCALL DELAY_MS
JB 0B5H,USTAWIENIE ;jesli klawisz ESC jest wcisniety to skok do początku programu
LJMP DIODA1
USTAWIENIE:
SETB LED ;gaszenie diody
SETB BUZZER ;wyłączenie buzzera
LJMP ENTER