Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 01/2016 Roggemans M. (MGM)

Slides:



Advertisements
Verwante presentaties
iLV = inleiding LabVIEW
Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.
Programmeren en Software Engineering 2
Hoe werkt een rekenmachine?
Embedded systemen Embedded software.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
PROS2 Les 2 Programmeren en Software Engineering 2.
Par. 3.1 Computers zijn overal

8051 based microcontroller
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
Elektor Proton Robot RTC West-Vlaanderen 1 oktober 2013
Microcontrollers 8051 based microcontroller
bewerkingen in programmeeromgevingen
ADuC8xx MICROCONVERTER
Week 6: Invoer / uitvoer “devices” adresdecodering
PowerPC Practicum. Introductie Doel practicum = Computers begrijpen Leer de werking van een computer door een emulator te bouwen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
Computerarchitectuur
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Phoenix Contact ILC150ETH F. Rubben, Ing.. Phoenix Contact ILC150ETH F. Rubben, Ing.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Meet-, stuur- en regelsystemen
Flight 68K Temperatuur geregelde ventilator
Welkom. inhoud presentatie wat is een Micro Mouse controller motoren sensoren hardware software voeding leerwinst.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
Company LOGO Telemaintenance van landbouwmachines.
Les 2: Zaterdag 24 mei 2014 Wim Peeters
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
BIOS en Opstarten.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Onderwerp: PIC assembler programmeren
Les 1: Zaterdag 10 mei 2014 Wim Peeters
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : luidsprekertje.
2TPRJ5 – PIC assembler Hogeschool Utrecht / Institute for Information & Communication Technology Wouter van Ooijen Mail: Sheets.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Gecijferdheid Les 2.1 Talstelsels.
8051 based microcontroller
Dyscalculie uit:
H01: Informatie Digitaal Toetsweek1 : VT41, 50 min.
Microcontrollers Labo
Programmeren.
Kennismaking met programmeren
3 Hardware 3.1 De processor en intern geheugen
Kennismaking met programmeren
Informatieverwerkende systemen
Wat gaan we doen? Herhaling ARM assembler instructies
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 01/2016 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/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!!

Cursusmateriaal Beschikbaar via: – 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)

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,…)

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)

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 -…

Blokdiagramma computersysteem

Basis 8051

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

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 8051 (ADuC832)

Memory map ADuC bytes registers Optioneel RAM (niet gebruikt) MOVC

De MOV instructies Mnemonic OP-CODEUitvoeringssnelheid Symbolische werking

Alle MOV instructies (tussen registers met 8 bit getallen)

LES 2 Doelstellingen: – Overlopen schema’s ADuC bord – ADuC poorten – looplicht via tabel: DB MOVX, MOVC en DPTR DJNZ CJNE

ADuC832 poorten

Tabel aanmaken/uitlezen Waar? In FLASH geheugen (ROM) Hoe? Na DB (Define Byte) in programma VB: ljmplus;programma sluiten met lus Jef:db b;eerste waarde in tabel db b;tweede waarde in tabel … db b;laatste waarde in tabel #include“c:\aducezx.inc”; x afhankelijk gebruikte bord

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 ;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 ; mov = steek in accu wat er op adres in dptr staat Na de instructie bevat a de waarde uit de tabel (in vb = b)

MOVC & MOVX

DPTR instructies

DJNZ of lussen tellen

CJNE of getallen testen

Les 3 Doelstellingen: – gebruik van de drivers voor: LCD Arithmetic – talstelsels – basis wiskundige berekeningen (+,-,x,/, 8 en 16 bit, CY vlag)

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 tot 000h code De reële adressen +80h Voor gebruik met driver: 00 wordt 80h, 01 wordt 81h,…

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 ; 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

Talstelsels Getal=voorstelling!! Decimaal getal: – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – waarde afhankelijk plaats getal Binair getal: – 0, 1 – waarde afhankelijk plaats getal

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,...

Talstelsels

Optelling

Verschil berekenen

INC en DEC

Vermenigvuldigen en delen

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)

Basis stack werking

subroutine aanroepen

Les 5 Doelstellingen: – principe AD omvorming – mogelijkheden ADC ADuC832 – Mogelijkheden DAC ADuC832 – Timers 0, 1 – RTC (TIC)

ADC

ADC SAR

ADC sample and hold

ADC 1LSB 1LSB= Vref/(aantal schaaldelen) 5v/256=0, …..v

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)

ADuC832 ADC Optionele buffering voor externe signalen. -beveiliging tegen overspanning -opvangen capacitieve load S&H

ADuC832 DAC

Timers 0 & 1 OSC /12 C/T=0 C/T=1

Timers 0 & 1 OSC /12 C/T=0 C/T=1

RTC (TIC) TIC SFR’s

TIMECON

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

Interrupt

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

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.

Interrupt structuur

Standaard 8051 interrupt hardware

Interface Technieken74 Digitale output: stappen motoren

Interface Technieken75 Digitale output: stappen motoren

Interface Technieken76 Digitale output

Interface Technieken77 Digitale output

Interface Technieken78 Digitale output

Interface Technieken79 Digitale output

Interface Technieken80 Digitale output: current chopping

Interface Technieken81 Digitale output (recirculatie)

Interface Technieken82 Digitale output (braking)

Interface Technieken83 Digitale output: full step aansturing

Interface Technieken84 Digitale output: half step aansturing

Interface Technieken85 Digitale output (microstepping0

Interface Technieken86 Digitale output: inductieve belasting

Einde. Vragen?