mcu
DESCRIPTION
miniintervention into robo-world by Ing. Pavel BanskyTRANSCRIPT
![Page 1: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/1.jpg)
Velmi jemný úvod do programování microprocesorů
Ing. Pavel Bánský
![Page 2: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/2.jpg)
Agenda Trocha historie Trocha teorie Programování Komunikace s okolním světem
![Page 3: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/3.jpg)
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
![Page 4: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/4.jpg)
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é
![Page 5: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/5.jpg)
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
![Page 6: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/6.jpg)
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
![Page 7: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/7.jpg)
Jste zděšeni?
![Page 8: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/8.jpg)
Nebuďte
![Page 9: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/9.jpg)
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í
![Page 10: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/10.jpg)
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
![Page 11: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/11.jpg)
Různé technologie Arduino
Založeno na procesorech Atmel-AVR Programovací jazyk podobný C++ Snadné použití http://arduino.cc/en/Reference/HomePage
![Page 12: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/12.jpg)
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
![Page 13: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/13.jpg)
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); }
![Page 14: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/14.jpg)
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
![Page 15: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/15.jpg)
Komunikace s okolním světem Analogové vstupy
Měření vstupního napětí
![Page 16: Mcu](https://reader036.vdocuments.pub/reader036/viewer/2022081505/556572f2d8b42a95028b484f/html5/thumbnails/16.jpg)
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