daily pastebin goal
43%
SHARE
TWEET

Untitled

a guest Oct 23rd, 2018 73 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
  1. LJMP    START
  2.     ORG 100H
  3. START:
  4.  
  5.     LCALL   LCD_CLR
  6.  
  7. LOOP_NO:
  8.     MOV R0,#CSKB0   ;adres klawiszy 0..7
  9.     MOVX    A,@R0       ;odczyt stanu klawiszy
  10.     CPL A
  11.     JNZ KEY_YES     ;czy klawisz naciœniêty
  12.     INC R0      ;adres klawiszy 8..
  13.     MOVX    A,@R0
  14.     CPL A
  15.     JZ  LOOP_NO     ;czy klawisz naciœniêty
  16.  
  17. KEY_YES:            ;eliminacja drgañ styków
  18.     MOV R2,A        ;zapamiêtaj stan klawiszy
  19.     MOV A,#10
  20.     LCALL   DELAY_MS
  21.     MOVX    A,@R0       ;odczyt stanu klawiszy
  22.     CPL A
  23.     XRL A,R2        ;porównaj z zapamiêtanym
  24.     JNZ LOOP_NO     ;czy stan stabilny
  25.                 ;-klawisz nadal wciœniêty
  26.  
  27.     MOV A,R2        ;stan klawiszy do A
  28.             ;ustaw wstêpn¹ wartoœæ R2
  29.             ;zale¿nie od zestawu klawiszy
  30.     MOV R2,#07H     ;klawisze 8..
  31.     CJNE    R0,#CSKB0,LOOP_NR
  32.     MOV R2,#0FFH    ;klawisze 0..7
  33.  
  34. LOOP_NR:            ;przekodowanie klawisza
  35.     INC R2      ;kod 1z8 na numer 0..15
  36.     RRC A
  37.     JNC LOOP_NR
  38.  
  39.     MOV A,R2        ;przekodowanie klawisza
  40.     ACALL   KEY_CODE    ;na kody LCD za pomoc¹
  41.                 ;procedury koduj¹cej
  42.     LCALL   WRITE_DATA  ;wypisz kod klawisza
  43.    
  44. LOOP_YES:
  45.     MOV R0,#CSKB0   ;adres klawiszy 0..7
  46.     MOVX    A,@R0       ;odczyt stanu klawiszy
  47.     CPL A
  48.     JNZ LOOP_YES    ;czy klawisz zwolniony
  49.     INC R0      ;adres klawiszy 8..
  50.     MOVX    A,@R0       ;odczyt stanu klawiszy
  51.     CPL A
  52.     JNZ LOOP_YES    ;czy klawisz zwolniony
  53.  
  54.     SJMP    LOOP_NO     ;powrót do oczekiwania
  55.                 ;na naciœniêcie klawisza
  56.  
  57. ;**************************************
  58. ;Podprogram zamieniaj¹cy numery klawiszy
  59. ;0..15 na kody znaków LCD
  60.  
  61. KEY_CODE:
  62.     INC A       ;pomiñ rozkaz RET
  63.     MOVC    A,@A+PC     ;pobierz kod
  64.     RET
  65.  
  66.     DB  30H,31H,32H     ;0,1,2
  67.     DB  33H,34H,35H     ;3,4,5
  68.     DB  36H,37H,38H     ;6,7,8
  69.     DB  39H,3CH,3EH     ;9,<,>
  70.     DB  5EH,76H,7FH     ;^,v,Esc
  71.     DB  0AEH            ;Enter
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top