Mikroprotsessorid: Praktikum 1

13
Artur Abels

description

Mikroprotsessorid: Praktikum 1. Artur Abels. Ülesandeid. Teha lõpmatu tsükkel :). Ülesandeid aritmeetiliste tehete peale. - PowerPoint PPT Presentation

Transcript of Mikroprotsessorid: Praktikum 1

Page 1: Mikroprotsessorid: Praktikum 1

Artur Abels

Page 2: Mikroprotsessorid: Praktikum 1

ÜlesandeidTeha lõpmatu tsükkel :)

Page 3: Mikroprotsessorid: Praktikum 1

Ülesandeid aritmeetiliste tehete pealeLaadida 2 arvu registritesse ja teha nendega

mingi aritmeetiline tehe. Peale seda minna lõpmatu tsükli sisse. Võite kasutada erinevaid registre, mitte ainult r16 ja r17 . Selleks et saada teada mis registritega saab töötada mingi assembleri käsk vaadake selle käsu kirjeldust AVRStudio helbist.

Proovige teha erinevad aritmeetilised tehed (ADD, SUB, MUL kui leiate veel midagi huvitavat siis katsetage seda ka)

Page 4: Mikroprotsessorid: Praktikum 1

Ülesandeid aritmeetiliste tehete peale Uurige kuidas ja mis juhul mõjutab instruktsioon ADD lipu “carry”. Uurige mida teeb instruktsioon ADC ja kuidas see sõltub lipust

“carry” Tehke programm mis liidab kaks 16bitist arvu

Kuna mõlemad arvud on 16bitised siis igaüks nendest võtab 2 registrit. Olgu arv A, mille ülemised 8 biti (AH) on registris r17 ja alimised 8 biti – r16. (kombeks on teha nii et suurema numbriga register hoiab ülemist arvu osa) ja arv B registrite paaris r19:r18.

Alguses tuleks liita alumised arvude osad omavahel kasutades instruktsiooni ADD. Juhul kui tulemus oli suurem kui 0xFF siis statuse registri “carry” lipp (ülekanne) sätitakse 1ks.

See bit oleks nagu 9s bitt mida tuleks liita ülemiste arvude osade summale. Just seda teeb instruktsioon ADC. Selle instruktsiooni abil tuleks liita ülemised arvude osad.

Mis registrites on teil tulemus ? Kontrollige et liitmine käib õigesti erinevate arvudega.

Page 5: Mikroprotsessorid: Praktikum 1

Ülesandeid aritmeetiliste tehete pealeTehke tsükkel kus 16bitist arvu

suurendatakse 0st 0xFFFFni, ja ülemine osa väljastatakse PORT B peale.

Veenduge et pole enam nii suurt viivist vaja et vilkumine oleks nähtav. Seletage miks see nii on.

Page 6: Mikroprotsessorid: Praktikum 1

Ülesandeid bititehete kohtaPõhjenda et ükskõik mis arvul saab kindlad

bitid püsti panna teisi muutmata, kui teha selle arvu bitikaupa “OR” õige maskiga.

Mis bitte paneb püsti mask 0x01? 0x02? 0x6D?

Mis maski on vaja selleks et panna püsti bitid 0, 1 ja 5 teisi bite muutmata.

Page 7: Mikroprotsessorid: Praktikum 1

Ülesandeid bititehete kohtaPõhjenda et ükskõik mis arvul saab kindlad

bitid maha võtta teisi muutmata, kui teha selle arvu bitikaupa “AND” õige maskiga.

Mis bitte paneb püsti mask 0xFE? 0x02? 0x6D?

Mis maski on vaja selleks et võta maha bitid 0, 1 ja 5 teisi bite muutmata.

Page 8: Mikroprotsessorid: Praktikum 1

Ülesandeid bittetehete kohtaPõhjenda et ükskõik mis arvul saab kindlad

bitid muuta(flip) teisi muutmata, kui teha selle arvu bitikaupa “EXCLUSIVE OR” õige maskiga.

Mis bitte muudab mask 0x01? 0x02? 0x6D? Mis maski on vaja selleks et panna muuta

bitid 0, 1 ja 5 teisi bite muutmata.

Page 9: Mikroprotsessorid: Praktikum 1

Nuppude ühendus: jalg sisendiksKui mingi mikrokontrolleri jalg on konfitud

sisendiks, siis see ei mõjuta välismaailma, nagu oleks mikrokontrolleri sees ühendamata, nagu lihtsalt metalli tükk oleks raja küljes.

Vahe on selles et mikrokontroller ikka oskab mõõta pinget selle jala peal. Kui pinge on lähedane toitepingega siis selle jala seisundit loetakse 1ks. Kui pinge selle jala peal on lähedane nullile siis selle jala seisundit loetakse 0ks.

Page 10: Mikroprotsessorid: Praktikum 1

Nuppude ühendus

Page 11: Mikroprotsessorid: Praktikum 1

Nuppude ühendus

AVR mikrokontrollerite see on olemas sisemised PULLUP takistid, mis ühendavad jalga toitepingega kui vastavalt konfida vastav port.

See lubab ühendada nuppe ilma välimisi takisteid kasutamata.

Page 12: Mikroprotsessorid: Praktikum 1

Ülesandeid nupu kasutuseleUurida AVRButterfly andmelehest kuidas on

mikrokontrolleriga ühendatud joystick. Mis pine on vaja on programmis vaja lugeda et saada teada joysticku nupude vajutamisest.

Teha programm mis konfigureerib vajalikud pordid nupude lugemiseks, tsüklis loeb nupu seisu ja väljastab selle PORTB seitsmenda jala peale.

Teha sama, aga väljastada inverteeritud nupu seis.

Page 13: Mikroprotsessorid: Praktikum 1

Ülesanded nupu kasutuseleTeha programm mis vilgub valgusdioodiga kui

mingi nupp on all, ja ei vilgu vastasel juhulTeha programm mis vilgub mingi kiirusega x

kui ükski nupp ei ole all, vilgub kiirusega 2x kui all on joysticku nupp “A”, 4x kui “B” jne.