1.06k likes | 1.37k Views
Microcontrollers. 8051 based microcontroller ADuC832 from Analog Devices 12/2011 Roggemans M. (MGM). LES 1. Doelstellingen: situering vak, afspraken labo en evaluatie toelichten concept embedded oplossing probleem blokdiagramma computersysteem wat is een microcontroller?
E N D
Microcontrollers 8051 based microcontroller ADuC832 from Analog Devices 12/2011 Roggemans M. (MGM)
LES 1 • Doelstellingen: • situering vak, afspraken labo en evaluatie toelichten • concept embedded oplossing probleem • blokdiagramma computersysteem • wat is een microcontroller? • hoe ziet een basis 8051 er uit • ADuC mogelijkheden en blokdiagramma • memorymap 8051/ADuC832 • MOV instructies (inwendige adressering)
Situering van het vak • Embedded systemen • Hardware georiënteerd • Basis automatisering • Basis voor PLC • Specifieke uitwerking onderdeel computersystemen • Manier van denken
Afspraken Labo Microcontrollers • Aanwezigheid nietverplicht • Passieve aanwezigheid verboden • Actieve participatie verplicht • Misbruik infrastructuur verboden: • niet eten of drinken in labo • respect voor apparatuur • Stiptheid verplicht!!
Cursusmateriaal • Nederlandstalige cursus: • thuis lezen als herhaling/voorbereiding les (min 5X) • ADuC_condensed (onmisbaar in labo) • Stick: • bevat info van telescript(onmisbaar in labo) • bevat eigen programma’s(onmisbaar in labo) • ADuC microcontroller kit met kabel(onmisbaar in labo) • Slides(PPT) (beknopte versie cursus)(onmisbaar in labo)
Evaluatie • GEEN permanente evaluatie: • lessen zijn er om te oefenen en vragen te stellen • Open boek examen (praktische opgave): • vak kan je enkel leren door te doen!!! • vak vraagt zekere incubatietijd!!! • blok en examenperiode onvoldoende tijd!!! • Je mag op het examen alles gebruiken behalve communicatiemiddel of laptop
Examenverloop en quotering • Opgave beschikbaar op papier (moet je afgeven) • Je moet op de PC’s van het labo werken • Examen duurt 1,5u Puntenverdeling: • Flowchart (5/20) (DIGITALE BEOORDELING) • Werkt het programma 100% (5/20)(DIGITALE BEOORDELING) • Programma (10/20) (ANALOGE BEOORDELING)
Concept embedded oplossing probleem • Universele hardware • Relatie tussen input en output : • eenvoudig aanpasbaar (software=programma) • kan afhankelijk zijn van input en output (adaptief(remmen voertuig)) • kan gebaseerd zijn op ervaringsgegevens (FUZZY) • is aanpasbaar nadat product verkocht is (firmware upgrade) • aanpasbaar aan voorkeuren gebruiker
Voordelen microcontroller (t.o.v. discrete computer) • Slechts enkele componenten: • eenvoudige PCB • weinig kans op hardware fouten • betrouwbaar • low cost • kleine afmetingen Nadeel microcontroller (t.o.v. discrete computer): • minder flexibel (je koopt een totaal pakket, maar er is wel veel keuze) • minder rekenkracht/geheugen
Memory map 8051 (ADuC832) General Purpose Registers
Memory map 8051 (ADuC) Onderste 128 GPR’s
Memory map 8051 (XC888) SFR’s “oude” 8051
Memory map ADuC832 256 bytes registers
De MOV instructies Mnemonic OP-CODE Uitvoeringssnelheid Symbolische werking
LES 2 • Doelstellingen: • Testen en verdelen van de hardware • Verkennen van de IDE (Integrated design environment) en WSD software • Overlopen schema’s ADuC bord • maken programma’s (via sjabloon): • schakelaars naar LED’s • knipperlicht zonder tijdsvertraging (basis uitvoeringstijd instructies) • knipperlicht vaste snelheid (met delaya0k05s) • knipperlicht variabele snelheid(met delaya0k05s) • looplicht variabele snelheid (rotateinstucties) • Knight rider (herhaald gebruik rotate instructies)
Les 3 • Doelstellingen: • MOVX en MOVC • looplicht via tabel (DJNZ, CJNE, DB, DPTR) • gebruik van de drivers voor: • LCD • SIO • Arithmetic
ADuCEZ ; LCD interace ; initlcd klaar zetten LCD voor gebruik ; lcdoutchar schrijven van ascii code (accu=input) ; lcdoutbyte schrijven hex waarde accu naar LCD ; lcdoutnib afdrukken 4 laagste bits accu op LCD ; lcdoutmsga afdrukken ascii string @dptr, tot 000h code De reële adressen +80h Voor gebruik met driver: 00 wordt 80h, 01 wordt 81h,…
ADuCEZ ; Seriële interface ; initsio klaar zetten seriële poort 9600 baud ; siooutchar afdrukken ascii code (accu=input) ; siooutbyteafdrkken getal in accu ; siooutnib afdrukken 4 laagste bits accu ; siooutmsga afdrukken ascii string @dptr tot 000h code ; sioinchar inlezen van 1 ascii code in de accu ; sioinbufa inlezen van ascii buffer vanaf adres strtbuf, max 20h karakters!
ADuCEZ ; Arithmetic: ; mul16 vermenigvuldigen 2 16 bit getallen ; mul32 vermenigvuldigen 2 32 bit getallen ; div16 delen 2 16 bit getallen ; div32 delen 2 32 bit getallen ; add16 optellen 2 16 bit getallen ; add32 optellen 2 32 bit getallen ; sub16 verschil 2 16 bit getallen ; sub32 verschil 2 32 bit getallen ; hexbcd8 omvormen 8 bit hex naar bcd ; hexbcd16 omvormen 16 bit hex naar bcd ; bcdhex8 omvormen 8 bit bcd naar hex ; bcdhex16 omvormen 16 bit bcd naar hex
ADuCEZ ; Diverse ; delaya0k05s tijdsvertraging (waarde in accu)*0,05s
Les 4 • Doelstellingen • talstelsels • basis wiskundige berekeningen (+,-,x,/, 8 en 16 bit, CY vlag) • teller op LCD (een decimaal en een hex, stand dip-switches bij op tellen, een decimaal en een hex stand dip-switches er van aftrekken (4 tellers!!)) • uurwerk in uu:mm:ss, met software delay
Talstelsels Getal=voorstelling!! Decimaal getal: • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • waarde afhankelijk plaats getal 123 1 2 3 Binair getal: • 0, 1 • waarde afhankelijk plaats getal 1001 1 0 0 1
Talstelsels Hexadecimaal getal: • 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • waarde afhankelijk plaats getal FF BCD getal: • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • binair gecodeerd: 0000, 0001, 0010, 0011, ...
Les 5 • Doelstellingen: • Overlopen instructieset (adhv. CONDENSED) : • speciale “verplaats” instructies • logische instructies (ANL, ORL, XRL) • bit-instructies • voorwaardelijke sprongen • stack bij subroutines (LCALL, RET, PUSH en POP) • Programma looplicht 1 uit 4 via functieschakelaars: • contactdender • overnamecontact