Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
3/3
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á".
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; Soubor: prvni.asm
3 ; Datum: 12.03.2012 22:45
4 ; Autor: Marek No?ka, nozka <@t> spseol <d.t> cz
5 ; Licence: GNU/GPL
6 ; Úloha: ukázka funkce přerušení
7 ; Popis:
8 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 led bit P2.7 ; symbolická konstanta pro bit
10
11
12 ORG 0000H ;
13 jmp start
14
15 ORG 0003H ; externí přerušení
16 jmp externi
17
18 ORG 000BH ; obsluha přerušení C/T0
19 jmp obsluha
20
21 ORG 001BH ; obsluha přerušení C/T1
22 jmp nacteno
23
24 start:
25 mov TMOD,#01100001b ; nastavím C0 na 16-bitový, nastavím T1 jako 8-bitový
26 setb EA ; globálně povolím přerušení
27 setb ET0 ; povolím přerušení od T/C0
28 setb ET1 ; povolím přerušení od T/C1
29 setb EX0 ; povélím externí přerušení 0
30
31 ; TH0 a TL0 nepřednaplňujeme protože požadujeme jechich maximální velikost
32 setb TR0 ; spustím časovač
33 mov TH1, #250D
34 mov TL1, #250D
35 setb TR1 ; spustím čítač
36
37 loop:
38 mov A, TL1
39 CPL A
40 mov P0, A
41 jmp loop
42
43 obsluha: ; obsluha přerušení od C/T0
44 inc R0
45 cjne R0, #15, preskoc
46 CPL led
47 mov R0, #0
48 preskoc:
49 RETI
50
51 nacteno: ; obsluha přerušení od C/T1
52 CPL P2.0
53 RETI
54
55 externi:
56 CPL P2.1
57 CPL P2.6
58 RETI
59
60 END
61