mcu
Post on 27-May-2015
649 Views
Preview:
DESCRIPTION
TRANSCRIPT
Velmi jemný úvod do programování microprocesorů
Ing. Pavel Bánský
Agenda Trocha historie Trocha teorie Programování Komunikace s okolním světem
Trocha historie Vysoký stupeň integrace umožnil výrobu
mikroprocesorů „stovky“ klopných obvodů v jednom pouzdře „tisíce“ tranzistorů v jednom pouzdře 1971 – první mikroprocesor Intel 4004 2009
8 bitové mikroprocesory 16 bitové mikroprocesory 32 bitové mikroprocesory
Trocha teorie Mikroprocesor = mikropočítač
Poslouchá příkazy (velmi atomické instrukce) Má paměť
Flash – pro uložení programu RAM – pro běh programu a „přemýšlení“
Vstupně a výstupní obvody Digitální Analogové
Příklad programu (symbolické instrukce)
odecet: clr C mov A,DOLNI2 subb A,DOLNI1 mov POMOCD,A mov A,HORNI2 subb A,HORNI1 mov POMOCH,A clr C mov A,POMOCH rrc A mov POMOCH,A
mov A,POMOCD rrc A mov POMOCD,A
clr C mov A,POMOCH rrc A mov @R0,A
inc R0
mov A,POMOCD rrc A mov @R0,A
inc R0 djnz R1,HLAVNI
mov R1,#POCET mov DPTR,#VYSTUP mov R0,#PROSTOR
ZAPIS: mov POMOCH,@R0 inc R0 mov A,@R0 movx @DPTR,A
inc DPTR
mov A,POMOCHm movx @DPTR,A
inc DPTR inc R0 djnz R1,ZAPIS
KONEC: sjmp KONEC
test1: jnc vymen ljmp odecet
vymen: mov POMOCD,DOLNI1 mov DOLNI1,DOLNI2 mov DOLNI2,POMOCD mov POMOCD,HORNI1 mov HORNI1,HORNI2 mov HORNI2,POMOCD ljmp odecet
v=(ni+1 – ni) / 4
Programování Program se píše v PC Provádí se překlad (kompilace) do strojového
kódu Výsledný datový soubor se nahraje do
mikropočítače speciálním programovacím obvodem
Jste zděšeni?
Nebuďte
Mikroprocesory pro línější Využívají běžné mikroprocesory Obsahují interpretr vyššího programovacího
jazyka Na způsob Basic, Pascal, C, Java
Mají překladač/kompilátor vyššího programovacího jazyka
Program se nahrává pomocí seriového portu, USB, sítě
Možnost komunikace s PC pro případ ladění
Různé technologie Microsoft .NET Micro Framework
Profesionální řešení založené na procesorech ARM Objektový programovací jazyk C# Vysoká produktivita a možnosti http://www.microsoft.com/netmf
Různé technologie Arduino
Založeno na procesorech Atmel-AVR Programovací jazyk podobný C++ Snadné použití http://arduino.cc/en/Reference/HomePage
Různé technologie Picaxe
Založeno na procesorech Microchip PIC Obsahuje interpret jazyka Basic Jednoduché strukurované programování Dobrá dokumentace http://www.rev-ed.co.uk/docs/picaxe_manual1.pdf
Příklad programu (vyšší programovací jazyk) I2CDevice.I2CTransaction[] xact = new I2CDevice.I2CTransaction[] { bus.CreateWriteTransaction(new byte[] { 0x02}), bus.CreateReadTransaction(buffer) };
int count = bus.Execute(xact, 2000); if (count == 3) { int azimuth = buffer[0] << 8; azimuth |= buffer[1]; azimuth /= 10;
ShowAzimuth(azimuth); }
Komunikace s okolním světem Digitální vstupy / výstupy
Měření délky pulsů Počítání pulsů
PIN 1
PIN 2
Spouštěcí impuls 10 ms
Impuls úměrný vzálenosti 100 ms – 25ms
Komunikace s okolním světem Analogové vstupy
Měření vstupního napětí
Kam dál http://www.hobbyrobot.cz/ http://shop.snailinstruments.com
Robotický den – Soutěž Eurobot Sobota 25. Dubna 2009 10 – 17 Retro Music Hall, Francouzská 4, Praha 2
top related