SlideShare une entreprise Scribd logo
1  sur  16
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)
                               mov    R1,#POCET
  odecet:
                               mov    DPTR,#VYSTUP
      clr C
                               mov    R0,#PROSTOR
      mov A,DOLNI2
      subb A,DOLNI1
                      ZAPIS:
      mov POMOCD,A
                               mov    POMOCH,@R0
      mov A,HORNI2
                               inc    R0
      subb A,HORNI1
                               mov    A,@R0
      mov POMOCH,A
                               movx   @DPTR,A
     clr C
                               inc    DPTR
     mov A,POMOCH
     rrc A
                               mov    A,POMOCHm
     mov POMOCH,A
                               movx   @DPTR,A

                                                      v=(ni+1 – ni) / 4
     mov A,POMOCD
                               inc    DPTR
     rrc A
                               inc    R0
     mov POMOCD,A
                               djnz   R1,ZAPIS
     clr C
                      KONEC:   sjmp   KONEC
     mov A,POMOCH
     rrc A
                      test1:   jnc     vymen
     mov @R0,A
                               ljmp    odecet
     inc   R0
                      vymen:   mov    POMOCD,DOLNI1
                               mov    DOLNI1,DOLNI2
     mov A,POMOCD
                               mov    DOLNI2,POMOCD
     rrc A
                               mov    POMOCD,HORNI1
     mov @R0,A
                               mov    HORNI1,HORNI2
                               mov    HORNI2,POMOCD
     inc R0
                               ljmp   odecet
     djnz R1,HLAVNI
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ů
    



        Spouštěcí impuls 10 s


PIN 1


                          Impuls úměrný vzálenosti 100 s – 25ms


PIN 2
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
    

Contenu connexe

Plus de novakova

Můj vlastní veřejný prostor
Můj vlastní veřejný prostorMůj vlastní veřejný prostor
Můj vlastní veřejný prostornovakova
 
PET bottle architecture
PET bottle architecturePET bottle architecture
PET bottle architecturenovakova
 
Examples for Power of less
Examples for Power of lessExamples for Power of less
Examples for Power of lessnovakova
 
Prezentace towers
Prezentace towersPrezentace towers
Prezentace towersnovakova
 
Mestem posedli
Mestem posedliMestem posedli
Mestem posedlinovakova
 
Polymery Cvut V1
Polymery Cvut V1Polymery Cvut V1
Polymery Cvut V1novakova
 
Typography lesson
Typography lessonTypography lesson
Typography lessonnovakova
 

Plus de novakova (7)

Můj vlastní veřejný prostor
Můj vlastní veřejný prostorMůj vlastní veřejný prostor
Můj vlastní veřejný prostor
 
PET bottle architecture
PET bottle architecturePET bottle architecture
PET bottle architecture
 
Examples for Power of less
Examples for Power of lessExamples for Power of less
Examples for Power of less
 
Prezentace towers
Prezentace towersPrezentace towers
Prezentace towers
 
Mestem posedli
Mestem posedliMestem posedli
Mestem posedli
 
Polymery Cvut V1
Polymery Cvut V1Polymery Cvut V1
Polymery Cvut V1
 
Typography lesson
Typography lessonTypography lesson
Typography lesson
 

Mcu

  • 1. Velmi jemný úvod do programování microprocesorů Ing. Pavel Bánský
  • 2. Agenda Trocha historie  Trocha teorie  Programování  Komunikace s okolním světem 
  • 3. 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 
  • 4. 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é 
  • 5. Příklad programu (symbolické instrukce) mov R1,#POCET odecet: mov DPTR,#VYSTUP clr C mov R0,#PROSTOR mov A,DOLNI2 subb A,DOLNI1 ZAPIS: mov POMOCD,A mov POMOCH,@R0 mov A,HORNI2 inc R0 subb A,HORNI1 mov A,@R0 mov POMOCH,A movx @DPTR,A clr C inc DPTR mov A,POMOCH rrc A mov A,POMOCHm mov POMOCH,A movx @DPTR,A v=(ni+1 – ni) / 4 mov A,POMOCD inc DPTR rrc A inc R0 mov POMOCD,A djnz R1,ZAPIS clr C KONEC: sjmp KONEC mov A,POMOCH rrc A test1: jnc vymen mov @R0,A ljmp odecet inc R0 vymen: mov POMOCD,DOLNI1 mov DOLNI1,DOLNI2 mov A,POMOCD mov DOLNI2,POMOCD rrc A mov POMOCD,HORNI1 mov @R0,A mov HORNI1,HORNI2 mov HORNI2,POMOCD inc R0 ljmp odecet djnz R1,HLAVNI
  • 6. 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
  • 9. 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í 
  • 10. 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 
  • 11. Různé technologie Arduino  Založeno na procesorech Atmel-AVR  Programovací jazyk podobný C++  Snadné použití  http://arduino.cc/en/Reference/HomePage 
  • 12. 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 
  • 13. 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); }
  • 14. Komunikace s okolním světem Digitální vstupy / výstupy  Měření délky pulsů  Počítání pulsů  Spouštěcí impuls 10 s PIN 1 Impuls úměrný vzálenosti 100 s – 25ms PIN 2
  • 15. Komunikace s okolním světem Analogové vstupy  Měření vstupního napětí 
  • 16. 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 