Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdChrista Cools Laatst gewijzigd meer dan 8 jaar geleden
1
Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 01/2016 Roggemans M. (MGM)
2
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)
3
Situering van het vak Embedded systemen Hardware georiënteerd Basis automatisering Basis voor PLC Specifieke uitwerking onderdeel computersystemen Manier van denken
4
Afspraken Labo/Les Microcontrollers Aanwezigheid niet verplicht Passieve aanwezigheid verboden Actieve participatie verplicht Misbruik infrastructuur verboden: – niet eten of drinken in labo/les – respect voor apparatuur Stiptheid verplicht!!
5
Cursusmateriaal Beschikbaar via: – www.grog.be Nederlandstalige cursus (optioneel): – Thuis lezen als herhaling/voorbereiding les (min 5X) – ftp://telescript.thomasmore.be/pub/CD- Microcontrollers/8051/ADuC800V2/ Alle materiaal met betrekking op labo (software, documentatie, oef) ADuC_condensed (onmisbaar in labo en lessen) – TOLEDO ADuC_20xx_labo (bevat uitleg over labo opgaven onmisbaar in labo) ADuC_20xx_theorie (beknopte versie cursus onmisbaar in de les) Stick (minimaal 100MB) : – bevat info van telescript (onmisbaar in labo) – bevat eigen programma’s (onmisbaar in labo) ADuC microcontroller kit (onmisbaar in labo) met kabel (thuis)
6
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 (laptop, GSM, tablet,…lichtsignalen, geluidsgolven,…)
7
Examenverloop en quotering Opgave beschikbaar op papier (moet je afgeven) Je moet op de PC’s van het labo werken Examen duurt 1u en 30 minuten Puntenverdeling: Flowchart (5/20) (DIGITALE BEOORDELING) Werkt het programma 100% (5/20) (DIGITALE BEOORDELING) Programma (10/20) (ANALOGE BEOORDELING)
8
Waarom programmeerbare bouwstenen gebruiken? 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 Microcontroller - PLC - Regelaar Procescomputer – Controller -…
9
Blokdiagramma computersysteem
10
Basis 8051
12
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
14
Memory map 8051
16
Memory map 8051 (ADuC832) General Purpose Registers
17
Memory map 8051 (ADuC) Onderste 128 GPR’s
18
Memory map 8051 (XC888) SFR’s “oude” 8051
19
Memory- map 8051 (ADuC832)
21
Memory map ADuC832 256 bytes registers Optioneel RAM (niet gebruikt) MOVC A,@A+DPTR
22
De MOV instructies Mnemonic OP-CODEUitvoeringssnelheid Symbolische werking
23
Alle MOV instructies (tussen registers met 8 bit getallen)
24
LES 2 Doelstellingen: – Overlopen schema’s ADuC bord – ADuC poorten – looplicht via tabel: DB MOVX, MOVC en DPTR DJNZ CJNE
30
ADuC832 poorten
31
Tabel aanmaken/uitlezen Waar? In FLASH geheugen (ROM) Hoe? Na DB (Define Byte) in programma VB: ljmplus;programma sluiten met lus Jef:db11111110b;eerste waarde in tabel db11111101b;tweede waarde in tabel … db01111111b;laatste waarde in tabel #include“c:\aducezx.inc”; x afhankelijk gebruikte bord
32
Tabel aanmaken/uitlezen Hoe aangeven in programma waar tabel in geheugen zit? Jef: = adres eerste byte in tabel in geheugen = label in programma Hoe Flash lezen? movc a,@a+dptr ;lees uit code geheugen naar de accu dptr=DPTR= pointer die 16 bit adres moet bevatten jef: =16 bit adres in geheugen = label in programma a? Voor de instructie ongekende waarde eerst op 0 zetten mov dptr,#jef ;16 bit adres tabel in dptr laden mov a,#00h ;eerst accu=0 mov a,@a+dptr ; mov a,@0+dptr = steek in accu wat er op adres in dptr staat Na de instructie bevat a de waarde uit de tabel (in vb = 11111110b)
33
MOVC & MOVX
34
DPTR instructies
35
DJNZ of lussen tellen
36
CJNE of getallen testen
37
Les 3 Doelstellingen: – gebruik van de drivers voor: LCD Arithmetic – talstelsels – basis wiskundige berekeningen (+,-,x,/, 8 en 16 bit, CY vlag)
38
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,…
39
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
40
ADuCEZ ; Diverse ; delaya0k05s tijdsvertraging (waarde in accu)*0,05s ; getadc lees spanning op analoge input ; getadcmeet de spanning op de analoge input waarvan het nummer in de accu (a) ; staat. ; ; input:accu= te meten kanaalnummer (00h-0Fh) ; output:accu= 8 bit meetresultaat ; gebruikt: accu
41
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
42
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,...
43
Talstelsels
44
Optelling
46
Verschil berekenen
47
INC en DEC
48
Vermenigvuldigen en delen
49
Les 4 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)
50
Basis stack werking
51
subroutine aanroepen
52
Les 5 Doelstellingen: – principe AD omvorming – mogelijkheden ADC ADuC832 – Mogelijkheden DAC ADuC832 – Timers 0, 1 – RTC (TIC)
53
ADC
54
ADC SAR
55
ADC sample and hold
56
ADC 1LSB 1LSB= Vref/(aantal schaaldelen) 5v/256=0,01953125…..v
57
Gebruik getadc getadc is een functie: lcallgetadc;roep functie op getadc verwacht input parameter mova,#xx;xx=06h voor LM335 (10mV/K) ;xx=07h voor potmeter (0-5v) lcallgetadc;roep functie op getadc geeft resultaat terug na lcall getadc bevat accu 8 bit meetresultaat: 00h=0v ffh=4,980v ((5/256)x255)
58
ADuC832 ADC Optionele buffering voor externe signalen. -beveiliging tegen overspanning -opvangen capacitieve load S&H
59
ADuC832 DAC
61
Timers 0 & 1 OSC /12 C/T=0 C/T=1
62
Timers 0 & 1 OSC /12 C/T=0 C/T=1
63
RTC (TIC) TIC SFR’s
64
TIMECON
65
Les 6 Doelstellingen: – Uitleg interrupt op 8051 en generiek – Belang van: PUSH-POP uitvoeringstijd flowchart – Uitleggen hoe interrupt interval instelbaar – Uitleg over stappenmotoren – Uitleg over DC motoren
66
Interrupt
68
Interrupts Noodzakelijk wanneer hardware niet kan wachten op polling door CPU Wordt gegenereerd door hardware: – timers, I/O pinnen, ADC, SIO, system,... Initialisatie nodig: – hardware die interrupt zal genereren – CPU Er moet een interruptroutine klaar staan
69
Mogelijke interrupt bronnen en -adressen -Interrupts zijn HARDWARE GEBEURTENISSEN. -Een interrupt activeert een interruptroutine (indien ingeschakeld). -Een interruptroutine moet met een RETI afgesloten worden. -PUSH en POP kunnen noodzakelijk zijn. -Interruptroutines zijn beperkt in de tijd. -Bij meer dan een interruptbron zijn PRIORITEITEN belangrijk. -Overlappingen in het geheugen moeten vermeden worden.
70
Interrupt structuur
71
Standaard 8051 interrupt hardware
74
Interface Technieken74 Digitale output: stappen motoren
75
Interface Technieken75 Digitale output: stappen motoren
76
Interface Technieken76 Digitale output
77
Interface Technieken77 Digitale output
78
Interface Technieken78 Digitale output
79
Interface Technieken79 Digitale output
80
Interface Technieken80 Digitale output: current chopping
81
Interface Technieken81 Digitale output (recirculatie)
82
Interface Technieken82 Digitale output (braking)
83
Interface Technieken83 Digitale output: full step aansturing
84
Interface Technieken84 Digitale output: half step aansturing
85
Interface Technieken85 Digitale output (microstepping0
86
Interface Technieken86 Digitale output: inductieve belasting
87
Einde. Vragen?
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.