Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

1/1

Zdrojové soubory z výuky

Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".

20120515-Tue-klavesnice.asm
   1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   2 ; Soubor:  klaveska.asm
   3 ; Datum:   15.05.2012 08:23
   4 ; Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   5 ; Licence: GNU/GPL 
   6 ; Úloha:   ovládání klávesnice
   7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   8 KBD EQU P3
   9 SEG EQU P2
  10 number EQU 48d 
  11 
  12 start:
  13 
  14     call rkeyb
  15     mov P0, KBD
  16     call show
  17     jmp start
  18 
  19 
  20 rkeyb:
  21     ; budím 1. sloupec
  22     mov KBD, #11111110B
  23     mov A, KBD
  24 K1:
  25     cjne A,#11101110B, K4
  26     mov number, #01
  27     RET
  28 K4:
  29     cjne A,#11011110B, K7
  30     mov number, #04
  31     RET
  32 K7:   
  33     cjne A,#10111110B, KE
  34     mov number, #07
  35     RET
  36 KE: 
  37     cjne A,#01111110B, K2580
  38     mov number, #0EH
  39     RET
  40 
  41 K2580:  ; budím 2. sloupec
  42     mov KBD, #11111101B
  43     mov A, KBD
  44 K2:
  45     cjne A,#11101101B, K5
  46     mov number, #02
  47     RET
  48 K5:
  49     cjne A,#11011101B, K8
  50     mov number, #05
  51     RET
  52 K8:   
  53     cjne A,#10111101B, K0
  54     mov number, #08
  55     RET
  56 K0: 
  57     cjne A,#01111101B, K369F
  58     mov number, #0H
  59     RET
  60 
  61 K369F:  ; budím 3.  sloupec
  62     mov KBD, #11111011B
  63     mov A, KBD
  64 K3:
  65     cjne A,#11101011B, K6
  66     mov number, #03
  67     RET
  68 K6:
  69     cjne A,#11011011B, K9
  70     mov number, #06
  71     RET
  72 K9:   
  73     cjne A,#10111011B, KF
  74     mov number, #09
  75     RET
  76 KF: 
  77     cjne A,#01111011B, KABCD
  78     mov number, #0FH
  79     RET
  80 KABCD:  ; třetí sloupec
  81     mov KBD, #11110111B
  82     mov A, KBD
  83 KA:
  84     cjne A,#11100111B, KB
  85     mov number, #0Ah
  86     RET
  87 KB:
  88     cjne A,#11010111B, KC
  89     mov number, #0Bh
  90     RET
  91 KC:   
  92     cjne A,#10110111B, KD
  93     mov number, #0Ch
  94     RET
  95 KD: 
  96     cjne A,#01110111B, KX
  97     mov number, #0Dh
  98     RET
  99 KX:    
 100     mov KBD, #11111111B
 101     RET
 102     
 103 
 104 
 105 show:
 106     mov DPTR,#segment
 107     mov A, number; v A je číslo, které chci zobrazit
 108     movc A,@A+DPTR    ; číslo, které chci zobrazit najdu v tabulce a uložím opět do A
 109     mov SEG, A         ; zobrazím číslo vytažené z tabulky
 110     RET
 111 
 112 ;; tabulka číslic displaye
 113 segment: db 11000000b  ; 0
 114          db 11111001b  ; 1
 115          db 10100100b  ; 2
 116          db 10110000b  ; 3 
 117          db 10011001b  ; 4
 118          db 10010010b  ; 5
 119          db 10000010b  ; 6
 120          db 11111000b  ; 7
 121          db 10000000b  ; 8
 122          db 10010000b  ; 9
 123          db 10001000b  ; A
 124          db 10000011b  ; B
 125          db 11000110b  ; C
 126          db 10100001b  ; D
 127          db 10000110b  ; E
 128          db 10001110b  ; F
 129 
 130 
 131 END
`--> stáhnout

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net