Mikrokontroléry PIC pro pokročilé - PIC16F628A
Autoren
Mehr zum Buch
Kniha je zaměřena na popis pokročilejších periferií mikrokontrolérů PIC16F628A a pokročilejších možností programování v jazyce C. Navazuje na knihu Mikrokontroléry PIC bez předchozích znalostí, ve které byly popsány základní periferie společně se základy jazyka C. První kapitola je věnována popisu komunikace řádkového LCD modulu včetně výkladu realizace řídicích funkcí, sestavení knihovny těchto funkcí označené jako MLCD (používá se v dalších příkladech) a použití funkce printf pro výstup na LCD modul. Druhá kapitola popisuje jednotku Timer0. Tato jednotka je použita pro měření kmitočtu, jsou ukázány možnosti automatického přepínání předděličky a pomocného počítadla přetečení pro dynamickou úpravu měřicího rozsahu. Též je předvedeno měření odporu mezipřevodem na kmitočet. Třetí kapitola ukazuje použití jednotek Timer1 a CCP1. Příklady používají jednotku Timer1 jako časovač pro odměr intervalu 0,5 s, generátor PWM signálu a speciální událostní spouštěč (režim compare). Čtvrtá kapitola představuje softwarovou implementaci sběrnice I2C. Po úvodním popisu sběrnice I2C a použitého obvodu MCP23008 (expandér pro 8 vývodů) je zařazen výklad práce s ukazateli, který je nutný pro pochopení realizace funkcí s výstupními parametry. Následně je realizována knihovna funkcí pro sběrnici I2C označená jako I2C. Pomocí této knihovny a expandéru MI2CEXP je nejdříve ovládán přípravek M8LED a poté přípravek MLEDSW. Nakonec je knihovna I2C použita pro řízení přípravku MLCD, což je klíčovým úkolem celé této kapitoly. Na závěr je pak ukázáno použití jednotky CCP1 v režimu Capture. Pátá kapitola popisuje omezení funkce vývodů portů daná zabudovanými periferiemi mikrokontroléru. Dále je popsáno praktické řešení ovládání maticové klávesnice realizované přípravkem MMATKBD a rotačního spínače EC11 připojeného na přípravek MSVORKY. Jsou diskutovány vstupy vnějšího přerušení INT0/RB0 a Input Change (RB7 až RB4). Příklady použití vstupů vnějšího přerušení jsou zaměřeny na obsluhu rotačního spínače a počítačové klávesnice s konektorem PS/2 (mini DIN 6). Vzhledem k rozdílným rychlostem komunikace mikrokontroléru s počítačovou klávesnicí a LCD displejem připojeným přes I2C je též pozornost věnována výkladu implementace datové struktury fronta. Šestá kapitola probírá pokročilé možnosti programování v jazyce C. Probrány jsou datové typy struct, bitové pole, union. Jsou též zařazeny pokročilejší příklady obsluhy počítačové klávesnice s konektorem PS/2 pro editaci údaje na LCD. Dále je vysvětleno použití operátoru sizeof(), příkazů switch a break a funkce atoi. Kapitola končí ukázkou automatického generování souboru s nastavením konfiguračních bitů mikrokontroléru. Sedmá kapitola je věnována pokročilým možnostem mikrokontroléru PIC16F628A. Jedná se o doplnění popisu konfiguračních bitů a konfigurace oscilátoru z [1], popis zdrojů resetu a přidružených jednotek (POR, PWRT, OST, BOR), popis jednotky WDT, režimu Sleep a datové paměti E2PROM. Příklady ukazují použití dvourychlostního režimu interního RC oscilátoru, použití režimu Sleep společně s jednotkou WDT a použití datové paměti E2PROM. V příloze jsou uvedeny podklady pro výrobu upravené verze přípravku MLCD pod označením MLCDXL. Přehled uváděných příkladů pro mikrokontroléry: PROG_01 - výklad funkcí pro řízení řádkového LCD, PROG_02 - knihovna funkcí MLCD včetně použití funkce printf, PROG_03 - měření kmitočtu pomocí jednotky Timer0 s automatickým přepínáním předděličky, PROG_04 - měření kmitočtu pomocí jednotky Timer0 s počítáním přetečení, PROG_05 - měření kmitočtu pomocí jednotky Timer0 s počítáním přetečení a odměrem času pomocí jednotky Timer2, PROG_06 - měření odporu mezipřevodem na kmitočet, PROG_07 - měření kmitočtu pomocí Timer0 s odměrem časového intervalu pomocí Timer1, PROG_08 - pulzně-šířkový modulátor vytvořený pomocí jednotek Timer1 a CCP1, PROG_09 - speciální událostní spouštěč vytvořený pomocí jednotek Timer1 a CCP1, PROG_10 - 8bitový expandér výstupů pro přípravek M8LED s obvodem MCP23008 připojeným na sběrnici I2C, PROG_11 - kombinovaný režim vstupů/výstupů pro přípravek MLEDSW s obvodem MCP23008 připojeným na sběrnici I2C, PROG_12 - připojení LCD modulu přes sběrnici I2C, PROG_13 - použití jednotky CCP1 v režimu Capture pro měření doby trvání záporného impulzu (log. 0), PROG_14 - základní obsluha maticové klávesnice, PROG_15 - základní obsluha rotačního spínače, PROG_16 - obsluha rotačního spínače pomocí přerušení Input Change, PROG_17 - základní obsluha klávesnice PS/2, PROG_18 - zobrazení písmen a číslic zadávaných z klávesnice PS/2, PROG_19 - editace textu na LCD pomocí klávesnice PS/2, PROG_20 - výpis velikosti vybraných datových typů pomocí operátoru sizeof(), PROG_21 - editace číselné hodnoty na LCD pomocí klávesnice PS/2, použití příkazů switch a break a použití funkce atoi, PROG_22 - snížení spotřeby pomocí dvourychlostního režimu INTOSC, PROG_23 - snížení spotřeby použitím režimu Sleep a jednotky WDT, PROG_24 - použití E2PROM. Seznam přípravků použitých v knize: Název - Označení - Stručný popis PKIT627 - BEN 0280 - vývojový kit pro mikrokokntrolér PIC16F628A M8LED - BEN 0234 - osmice LED (svítí při log. 0) MLEDSW - BEN 0239 - 4 tlačítka a 4 LED MSVORKY - BEN 0267 - svorkovnice a pinová lišta MLCD - BEN 0241 - modul LCD displeje 2×8 znaků MLCDXL - BEN 0298 - modul LCD displeje 2×16 znaků MRX555 - BEN 0243 - generátor obdélníkového signálu s obvodem NE555 MI2CEXP8 - BEN 0271 - 8bitový expandér řízený I2C s obvodem MCP23008 MMATKBD - BEN 0272 - maticová klávesnice 4×4 s běžnými tlačítky MPCKLAV - BEN 0299 - přípravek pro připojení klávesnice PS/2 Obsah knihy: 1.LCD modul 2. Jednotka Timer0 3. Jednotky Timer1 a CCP1 4. Sběrnice I2C 5. Vstupně/výstupní vývody a vstupy vnějšího přerušení 6. Pokročilé možnosti programování 7. Pokročilé možnosti mikrokontroléru PIC16F628A Obsah doprovodného CD (doprovodný ZIP archiv): PROGRAMY - zdrojové texty všech 24 příkladů, které jsou popsány v knize. SPOJE - soubory návrhového systému Eagle (SCH a BRD) a klišé plošných spojů jednotlivých přípravků. 978-80-7300-549-8 (brož.) 978-80-7300-550-4 (pdf)