„AVR feladatok” változatai közötti eltérés
A VIK Wikiből
Nincs szerkesztési összefoglaló |
Nincs szerkesztési összefoglaló |
||
5. sor: | 5. sor: | ||
| keretszín = black | | keretszín = black | ||
| tartalom = | | tartalom = | ||
Írjon egy programot az AVR Experiment kártyára, amely 8 bites bináris számot olvas be a | Írjon egy programot az AVR Experiment kártyára, amely 8 bites bináris számot olvas be a | ||
kapcsolósorról, két részletben. A kapcsolókon (SW0 -SW3) beállított értéket jobbról balra | kapcsolósorról, két részletben. A kapcsolókon (SW0 -SW3) beállított értéket jobbról balra | ||
növekvő súlyozású 4 bites bináris számként kell kezelni. A 8 bites szám alsó (alacsonyabb | növekvő súlyozású 4 bites bináris számként kell kezelni. A 8 bites szám alsó (alacsonyabb | ||
súlyozású) része a BT0 nyomógombbal, a felső része a BT1 nyomógombbal vihető be. A BT1 | súlyozású) része a BT0 nyomógombbal, a felső része a BT1 nyomógombbal vihető be. A BT1 | ||
gomb megnyomása után a bevitt 8 bites szám értéket jelezze ki a LED soron! | gomb megnyomása után a bevitt 8 bites szám értéket jelezze ki a LED soron! | ||
{{Infobox-táblázat| | {{Infobox-táblázat| | ||
{{Infobox-táblázatsor|A kód nyelve|Assembly}} | {{Infobox-táblázatsor|A kód nyelve|Assembly}} |
A lap 2013. május 20., 17:27-kori változata
Mérés laboratórium 2. tárgy ellenőrző méréséhez kiadott AVR-es feladatok lehetséges megoldásai:
; Bináris számok beolvasása
.def temp = r16
.def led = r17
M_INIT:
ldi temp, 0x00
sts DDRG, temp ; bemenetre állítjuk
ldi temp, 0xff
sts PORTG, temp ; felhúzzuk a kapcsolókat
ldi temp, 0x00
out DDRE, temp ; bemenetre állítjuk
ldi temp, 0xff
out PORTE, temp ; felhúzzuk a gombokat
ldi temp, 0xff
out DDRC, temp ; kimenetre állítjuk
ldi led, 0x00
out PORTC, led ; kikapcsoljuk a ledeket
M_LOOP:
in temp, PINE
sbrs temp, 5 ; ha BT0 fel van engedve, akkor átugorja a következö utasítást
call LOW4
sbrs temp, 6 ; BT1
call HIGH4
jmp M_LOOP
LOW4:
push temp
lds temp, PING
com temp
bst temp, 3 ; SW3 értéke T-be
bld led, 0; T-böl betölti led 0-as bitjébe
bst temp, 4 ; SW2
bld led, 1;
bst temp, 1 ; SW1
bld led, 2;
bst temp, 0 ; SW0
bld led, 3
pop temp
ret
HIGH4:
push temp
com temp
lds temp, PING
bst temp, 3 ; SW3 értéke T-be
bld led, 4; T-böl betölti led 0-as bitjébe
bst temp, 4 ; SW2
bld led, 5;
bst temp, 1 ; SW1
bld led, 6;
bst temp, 0 ; SW0
bld led, 7
out PORTC, led
pop temp
ret
.def temp = r16