TARTALOMJEGYZÉK. 1. Ismétlés... 19 1.1. A mikroprocesszor mőködése... 19 1.2. Mikroszámítógépek, mikrokontrollerek... 20



Hasonló dokumentumok
Mintavételes szabályozás mikrovezérlő segítségével

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Labor 2 Mikrovezérlők

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Labor gyakorlat Mikrovezérlők

Programozási segédlet DS89C450 Fejlesztőpanelhez

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Az AVR programozás alapjai. Előadja: Both Tamás

MICROCHIP PIC DEMO PANEL

Arduino bevezető Szenzorhálózatok és alkalmazásaik

Nagy Gergely április 4.

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése, alapfogalmak

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Hardver leíró nyelvek (HDL)

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Egy PIC-BASIC program fordítása, betöltése

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

USB HID 1. Bevezetés. 2. A Hardver

PIC16F877 KÍSÉRLETI PANEL

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

A Texas Instruments MSP430 mikrovezérlőcsalád

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Irányítástechnika Elıadás. Programozható logikai vezérlık

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Az MSP430 mikrovezérlők digitális I/O programozása

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Leírás. Készítette: EMKE Kft február 11.

Digitális rendszerek. Utasításarchitektúra szintje

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

A TANTÁRGY ADATLAPJA

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

FPGA áramkörök alkalmazásainak vizsgálata

ARM Cortex magú mikrovezérlők

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A ChipScope logikai analizátor

Ismerkedés az MSP430 mikrovezérlőkkel

Java II. I A Java programozási nyelv alapelemei

MPLAB ICD használata

DSP architektúrák dspic30f család

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

MSP430 programozás Energia környezetben. Az I/O portok kezelése

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Autóipari beágyazott rendszerek CAN hardver

PIC programozás C nyelven

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Számítógép architektúra

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás

A programozás alapjai

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Az AVR ATmega128 mikrokontroller

Dr. Schuster György október 14.

Készítette: Oláh István mestertanár

Occam 1. Készítette: Szabó Éva

Bevezetés az informatikába

1. Bevezetés A C++ nem objektumorientált újdonságai 3

5.4. Perifériák helyettesítése párhuzamos feldolgozással a Propeller esetében

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

A Számítógépek felépítése, mőködési módjai

Nagyteljesítményű mikrovezérlők

C programozási nyelv

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

DSP architektúrák dspic30f család memória kezelése

Foglalkozási napló a 20 /20. tanévre

Programozás I gyakorlat

A TANTÁRGY ADATLAPJA

A szerzõrõl... xi Bevezetés... xiii

A TANTÁRGY ADATLAPJA

Érzékelők és beavatkozók I.

AVR assembly és AVR C modulok együttes használata AVR C projektben. Összeállította: Sándor Tamás

Mikrorendszerek tervezése

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Programozható irányító rendszerek I. Vizsgakérdés. 1. tétel

Előadó: Nagy István (A65)

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Dr. Oniga István DIGITÁLIS TECHNIKA 9

1. Egyszerű (primitív) típusok. 2. Referencia típusok

A LOGSYS rendszer ismertetése

ARM Cortex magú mikrovezérlők

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

ems2.cp04d [18010] Keriterv Mérnök Kft Programozható Automatikai állomás 14 multifunkcionális bemenet, 6 relé kimenet, 4 analóg kimenet DIGICONTROL

Érzékelők és beavatkozók I.

Átírás:

TARTALOMJEGYZÉK Elıszó... 13 I. rész PIC MIKROVEZÉRLİK ALKALMAZÁSTECHNIKÁJA (KÓNYA LÁSZLÓ) 1. Ismétlés... 19 1.1. A mikroprocesszor mőködése... 19 1.2. Mikroszámítógépek, mikrokontrollerek... 20 2. A PIC mikrovezérlık felépítése, fejlıdése... 23 2.1. Aritmetikai-logikai egység (ALU)... 23 2.2. Programmemória... 24 2.2.1 Programmemória-típusok... 24 2.3. Adatmemória... 26 2.4. A program- és az adatmemória kapcsolata... 27 2.5. Megszakítás... 29 2.6. Rendszerelemek... 32 2.6.1 Oszcillátor, órajel... 32 2.6.2 Reset... 34 2.6.3 Watchdog... 38 2.6.4 Microchip nanowatt technológia... 39 2.6.5 Alacsony tápfeszültség figyelése (LVD)... 47 2.7. A PIC mikrovezérlık fejlıdése... 48 2.8. 8 bites mikrovezérlı-családok (8/12, 8/14, e8/14, 8/16)... 49 2.8.1. PIC10F/PIC12F/PIC16F 8/12-es család (Baseline Flash Microcontrollers)... 50 2.8.2. PIC12F/PIC16F 8/14-es család (Mid Range Microcontrollers)... 53 2.8.3. PIC12F/PIC16F e8/14-es család (Enhanced Mid Range Microcontrollers)... 55 2.8.4. PIC18F 8/16-os család (High Performance Microcontollers)... 58 2.9. 16/24-es mikrovezérlık, PIC24/PIC30/dsPIC33 családok... 66 2.9.1 A PIC24-es termékvonal... 67 2.9.2 dspic termékvonal: DSP PIC... 72 2.10. A 32/32 bites mikrovezérlık PIC32-es család... 74 2.11. Összefoglalás... 80 3. Digitális perifériák... 81 3.1. I/O portok... 83 3.1.1. Bemeneti változások kezelése a 16/24 bites kontrollereknél... 85 3.1.2 Az érintésérzékelık kezelése... 85 3.1.3 Funkciók más lábakhoz rendelése Peripheral Pin Select (PPS)... 88 3.2. Párhuzamos I/O port... 90 3.3. Idızítı/eseményszámláló modulok... 93 3.4. Naptár/óra modul (RTCC)... 95 3.5. A CCP modulok fejlıdése... 96 3.6. Az Input Capture modul... 97 3.7. Output Compare (OC) /PWM modul... 98 7

PIC mikrovezérlık alkalmazástechnikája PIC programozás C nyelven 3.8. Motor Control PWM (MCPWM)... 101 3.9. Forgásérzékelés QEI... 102 3.10. EEPROM modul... 104 3.11. LCD vezérlés... 105 3.12. DMA közvetlen memóriahozzáférés... 107 3.13. JTAG peremfigyelı modul... 108 4. Analóg perifériák... 110 4.1. A D/A átalakítás elve: 4 bites D/A átalakító... 110 4.2. Meredekség (slope) A/D átalakítók... 111 4.3. Fokozatos közelítéső A/D átalakítók... 112 4.3.1 Fokozatos közelítéső átalakítók fejlıdése... 115 4.4. Delta-szigma átalakítók.... 118 4.5. Analóg komparátorok... 119 4.6. Mechatronika... 120 5. Kommunikációs perifériák... 123 5.1. SPI... 123 5.1.1 16 bites SPI mőködési módok... 124 5.2. I2C... 125 5.3. Aszinkron soros átvitel... 126 5.4. UNIO busz... 127 5.5. LIN... 130 5.6. CAN... 131 5.7. USB... 137 5.7.1. MPLAB Starter Kit PIC24-es mikrovezérlıkhöz... 139 5.7.2. Keretprogram az USB eszközök kezelésére... 140 5.8. Data Converter Interface (DCI)... 141 5.9. Ethernet... 142 5.9.1. Az Ethernet sikere... 143 5.9.2. Microchipmegoldások... 144 5.10. CRC ellenırzı modul... 147 6. PIC programfejlesztı eszközök... 149 6.1. MPLAB... 150 6.1.1. Fejlesztési lépések projektek... 151 6.1.2. MPLAB installálása, törlése... 151 6.1.3. Projekt létrehozása... 152 6.1.4. Projekt és munkakörnyezet... 153 6.1.5. MPLAB használat... 153 6.1.6. Szimulátor használata és nyomkövetés... 160 6.1.7. Stimulus használata... 161 6.1.8. Aszinkron stimulus... 161 6.1.9. Szinkron stimulus... 162 6.1.10. Vizsgálóeszközök a szimulátorban... 165 6.2. VDI Visual Device Initializer... 169 6.3. Application Maestro... 169 6.4. Kódmodul könyvtár (Code Module Library)... 171 6.5. MINDI a Microchip webalapú analóg szimulátora... 172 6.6. MAPS Microchip Advanced Product Selector... 172 8

Tartalomjegyzék 7. Hardver fejlesztıeszközök PIC mikrovezérlıkhöz... 173 7.1. ICD2... 173 7.1.1. A debugger mőködése... 173 7.1.2. Az ICD használata... 174 7.1.3. ICD2 debugger... 174 7.1.4. Korlátozások az ICD használatakor... 175 7.2. ICD3... 176 7.3. Real ICE Emulátor... 176 7.4. PICkit 1... 177 7.5. PICkit 2... 178 7.6. Explorer 16 Demo Board... 181 7.7. PIC programozók... 183 8. PIC programozás assembler segítségével... 185 8.1 Utasításkészletek programozói modell... 185 8.2 Assembler programozás... 186 8.3 Programfejlesztés linker használatával... 186 8.3.1 Map fájl használata... 189 8.4 Többmodulos programozás... 190 8.5 Assembler mintapéldák... 192 8.5.1 minta00.asm... 194 8.5.2 blink01.asm... 196 8.5.3 bcnt_02.asm... 198 8.5.4 rotate_03.asm... 200 8.5.5 dled_04.asm... 201 8.5.6 blinkpol_05.asm... 201 8.5.7 ittabla_06.asm... 202 8.5.8 adtabla_07.asm... 204 8.5.9 indir_08.asm... 205 8.5.10 stmach_09.asm... 206 8.5.11 preemt_10.asm... 207 8.5.12 bilkez_11.asm... 208 8.5.13 eeprom_12.asm... 209 8.5.14 frekgen_13.asm... 211 8.5.15 kodzar_14.asm... 212 8.5.16 adkod_15.asm... 213 8.5.17 jatek_16.asm... 214 9. PIC programozás Basic-ben... 215 9.1. PICBASIC programozás... 215 9.2. Ajánlott programozási stílus... 217 9.3. Megoldások Basic programozáshoz... 219 II. rész PIC PROGRAMOZÁS C NYELVEN (KOPJÁK JÓZSEF) Bevezetés... 223 10. Az elsı program... 225 10.1. A fordító könyvtárszerkezete... 225 10.2. Az elsı projekt létrehozása... 225 9

PIC mikrovezérlık alkalmazástechnikája PIC programozás C nyelven 10.3. Szia világ!... 226 10.3.1 Fordítás... 227 10.3.2 Futtatás és szimuláció... 230 10.4. PORTA beállítása... 230 10.4.1 És a LED-ek felvillannak... 232 10.5. Azoknak, akik csak az assemblyben bíznak... 234 11. Egy kis matematika... 236 11.1. Változók... 236 11.1.1 Egész számok... 236 11.1.2 Változók a memóriában... 238 11.1.3 Lebegıpontos valós számok... 238 11.2. Operátorok... 239 11.3. Aritmetikai operátorok... 239 11.4. Elválasztást végzı operátorok... 240 11.5. Inkrementáló és dekrementáló operátor... 241 11.6. A megfelelı változótípus kiválasztása... 243 11.6.1 A legkisebb változótípus... 243 11.6.2 Egy lépéssel feljebb... 244 11.6.3 Irány a long!... 245 11.6.4 És végül a 64 bit... 246 11.6.5 Elhagyjuk az egész számokat... 246 11.6.6 Mérési eredmények... 246 11.6.7 Mikor melyik változótípust érdemes választani?... 248 12. Körbe-körbe... 249 12.1. A ciklus fogalma... 249 12.2. Relációs operátorok... 250 12.3. Logikai operátorok... 251 12.4. While ciklus... 251 12.4.1 Egy kis dinamizmus... 254 12.4.2 A villogó LED-ek... 255 12.5. For ciklus... 255 12.6. Do-while ciklus... 258 12.7. Break utasítás... 259 12.8. Continue utasítás... 260 13. Amikor dönteni kell... 261 13.1. If utasítás... 261 13.2. If-else utasítás... 262 13.3. Bitoperátorok... 262 13.4. Rekurzív értékadó operátorok... 264 13.4.1 Egy kis partihangulat... 264 13.5. Feltételes operátor... 266 13.5.1 Bemeneteink is vannak... 267 13.6. Switch-case szerkezet... 271 13.6.1 Csak haladóknak... 274 14. Vissza a változókhoz... 275 14.1. Típuskonverzió... 275 14.1.1 Magyar jelölés... 278 14.2. Mutatók... 278 10

Tartalomjegyzék 14.3. Tömbök... 281 14.3.1 Jöjjenek újból a LED-ek... 282 14.3.2 Const elıtag... 284 14.3.3 Többdimenziós tömbök... 285 14.3.4 Karakterláncok... 286 14.3.5 Készítsünk fényújságot!... 287 14.4. Mutatóaritmetika... 290 14.5. Kapcsolat a tömbök és a mutatók között... 290 14.6. Mutatótömbök... 292 14.6.1 Karakterláncokat tartalmazó tömbök... 293 14.7. Mutatók nagysága... 293 14.8. Sizeof() operátor... 294 14.9. Dinamikus memóriakezelés... 294 15. Még mindig a változókról... 297 15.1. Változótípus-definíció typedef segítségével... 297 15.2. Felsorolástípus... 297 15.3. Struktúrák... 300 15.3.1 Struktúrák deklarálása... 300 15.3.2 Hivatkozás a struktúrák elemeire... 302 15.3.3 Struktúrák egybeágyazása... 303 15.3.4 Bitstruktúrák... 305 15.3.5 Elıre deklarált bitek használata... 306 15.4. Unionok... 306 15.5. Operátorok kiértékelési sorrendje... 307 16. És a kép összeáll... 309 16.1. Függvények... 309 16.1.1 Függvények definiálása... 310 16.1.2 Függvények deklarálása... 312 16.1.3 Függvények paraméterátadása... 313 16.1.4 Rekurzív függvényhívás... 317 16.1.5 Függvénymutatók... 318 16.2. Változók láthatósága és élettartama... 318 16.2.1 Lokális, automatikus változó... 318 16.2.2 Lokális, statikus változók... 319 16.2.3 Globális változók... 319 16.2.4 volatile elıtag... 320 16.3. Több forrásállományból álló programok készítése... 320 16.3.1 extern elıtag... 322 16.3.2 Statikus globális változók... 323 16.3.3 Statikus függvények... 323 16.4. Az elıfordítónak szóló utasítások... 323 16.4.1 Szimbolikus konstansok és makrók definiálása... 323 16.4.2 Elıre definiált szimbólumok... 325 16.4.3 Fejlécállományok betöltése... 325 16.4.4 Feltételes fordítás utasításai... 325 16.4.5 Implementációfüggı utasítások... 326 11

PIC mikrovezérlık alkalmazástechnikája PIC programozás C nyelven 17. Amikor több szálon futnak az események... 327 17.1. Timer1 idızítı/számláló modul használata... 327 17.2. Megszakításkezelés... 329 17.2.1 A PIC24F család megszakításvezérlıje... 329 17.3. A megszakításrutin elkészítése... 332 17.4. Energiatakarékos üzemmódok használata... 334 17.5. Inline assembly... 335 17.6. Analóg digitális átalakító használata... 336 17.7. Több megszakításforrás egyidejő használata... 340 18. Átjárás a világok között... 346 18.1. Áttérés a MICROCHIP C18 fordítójára... 346 18.1.1 A fordító könyvtárszerkezete... 346 18.1.2 Az elsı projekt elkészítése... 346 18.1.3 Konfigurációs bitek beállítása... 348 18.1.4 Regiszterek és bitek használata... 348 18.1.5 Változótípusok... 348 18.1.6 Mutatók... 349 18.1.7 Tárolási hely meghatározása... 350 18.1.8 Inline assembly... 350 18.1.9 Megszakítások használata... 352 18.1.10. Kétszintő megszakításrendszer használata... 355 18.2. Áttérés a HI-TECH PIC-C fordítójára... 358 18.2.1 A fordító könyvtárszerkezete... 358 18.2.2 Az elsı projekt elkészítése... 358 18.2.3 Konfigurációs bitek beállítása... 359 18.2.4 Regiszterek és bitek használata... 360 18.2.5 Változótípusok... 360 18.2.6 Tárolási hely meghatározása... 361 18.2.7 Mutatók... 361 18.2.8 Inline assembly... 362 18.2.9 Megszakítások használata... 362 18.2.10. Több megszakításforrás használata... 364 18.3. Áttérés a MICROCHIP C32 fordítójára... 366 18.3.1 A fordító könyvtárszerkezete... 366 18.3.2 Az elsı projekt elkészítése... 366 18.3.3 Konfigurációs bitek beállítása... 368 18.3.4 Regiszterek és bitek használata... 368 18.3.5 Változótípusok és mutatók... 368 18.3.6 Inline assembly... 369 18.3.7 Megszakítások használata... 370 18.3.8 Több megszakításvektor használata... 374 19. Mellékletek... 377 19.1. A Microchip internet-oldalán közvetlenül elérhetı témák győjteménye... 377 19.2. PIC mikrovezérlıkkel kapcsolatos fogalmak győjteménye... 378 19.3. Egyéb irodalom... 387 19.4. A bináris prefixum... 387 19.5. Könyvajánló... 388 12