Podobné dokumenty

1.2 Realizace èekání pomocí jednoduché programové smyèky Pøíklad 3: Chceme-li, aby dítì blikalo baterkou v co nejpøesnìjším intervalu, øekneme mu: Roz

3/ %,1'(& 83'1 &( &3 )XQNFH. + ; ; ; ; / ; ; + ; EH]H]PuQ\



Spínaèe jsou elektrické pøístroje, které slouží k zapínání, pøepínání a vypínání elektrických obvodù a spotøebièù. Podle funkce, kterou vykonávají, je


11 Elektrické specifikace Mezní parametry* Okolní teplota pøi zapojeném napájení 40 C až +125 C Skladovací teplota 65 C až +150 C Napájecí napìtí na V

ULTRAZVUKOVÝ DÁLKOMĚR

VLASTNOSTI PLOŠNÝCH SPOJÙ

:5$ =islv GDW V DOWHUQDFt QHMY\ããtKRELWX



Vytváøení sí ového diagramu z databáze: pøíklad

12 15 Instalace mikroturbíny v blokové plynové výtopnì " ZADÁNO: Instalace mikroturbíny v blokové plynové výtopnì Zjistìte: 1 Zda je ekonomicky výhodn


9. Harmonické proudy pulzních usměrňovačů


kap..2 Plochy (Surfaces) Plochy jsou rozšíøením NURBS køivek. Zatímco køivka NURBS používala jednorozmìrnou interpolaci (U), u ploch je navíc pøidán d




NULOROVÉ MODELY Spokojíme-li se pouze se základní analýzou elektronického obvodu s ideálními prvky, osvìdèuje se èasto užití nulorových modelù aktivní

2.4 Cykly 2. ZÁKLADY JAZYKA C


Izolaèní zesilovaèe s IL300 Zapojení izolaèních zesilovaèù s IL300 se liší pøedevším režimem v nichž pracují interní fotodiody Podle toho zda interní


3.1 Útlum atmosférickými plyny Rezonance molekul nekondenzovaných plynù obsažených v atmosféøe zpùsobuje útlum šíøících se elektromagnetických vln. Ab



Skládaèka Obr 48 G15 VBP Co to dìlá: Naète vybraný obrázek (vybraný pomocí CommonDialog1), vytvoøí MxN komponent PictureBox obsahujících odpovídající


NOiYHVQLFH SVDFtKR VWURMH Í (Q Ï Á. (VF ) )SURJUDPRYDWHOQpNOiYHV\) ) 3VF 6F/ 3DX NRQWURON\ ,QV +RPH 3J8S 7DE 'HO (QG 3J'Q &DSV/ (QWHU Í 6KLIW



CTR pro optoèlen s LED a tranzistorem:,& &75 = [%] U, CE = const ) Obvykle CTR urèíme pøi I F = 10 ma a U CE = 5 V. Hodnoty zjistíme z tabulky.,& &75


0RW\O3LFWXUH%R[ 7LPHU7LPHU



Kapitola 3 UNIPOLÁRNÍ TRNZISTORY 3.1 Obecný popis Unipolární tranzistory s pøechodovým hradlem (JFET) MOSFET MOSFET zvláštní k


14 UKAZATELE A ØETÌZCE


PDWHULiO FS>-NJ ±. FS>NFDONJ ± ƒ& VW teur åhoh]r FtQ KOLQtN N HPtN. OHG DONRKRO ROHM FFD FFD SHWUROHM UWX YRGD Y]GXFK YRGQtSiUD KHOLXP


28/40VÝVODOVÝ, 8BITOVÝ CMOS MIKROKONTROLÉR S A/D PØEVODNÍKEM, FLASH PAMÌTÍ PRO PROGRAM A SRAM/EEPROM PRO DATA VLASTNOSTI Velmi výkonný kontrolér s arc


nažhavováním elektronek, takže nedochází k neúmìrnému pøetìžování filtraèních kondenzátorù pøi nábìhu anodového proudu. Polovodièový usmìròovaè vytvoø

9. Rozšiřující desky Evb_Display a Evb_keyboard

Návod k obsluze [CZ] Solar thermo [Digital]




]PHQãLWIRQW ]Y WãLWIRQW QDVWDYLWIRQW XORåLWVRXERU Y\WLVNQRXWVRXERU Y\WYR LWQRYêVRXERU






TW15 KONCOVÝ PRVEK MSKP. Popis výrobku Technická data Návod k obsluze. Technologie 2000 s.r.o., Jablonec nad Nisou


Program "Světla" pro mikropočítač PMI-80


4 GUIDE nástroj pro interaktivní tvorbu grafického rozhraní Kapitola 3 byla vìnována ruèní tvorbì grafických objektù Všechny grafické objekty vaší apl





/2*,.$ 5(6(7 Ë=(1Ë +$/7 *(1(5È ',129é & 6./ $/8. ' /,ý. ýë7$ý 5(*,675 5(*, é. 6e5,29é 5(*,675 * $.808/È725 5:0. %8',ý(/ 45(*,675 5(*


baspelin CPM Popis komunikaèního protokolu CPM KOMPR

Komerèní využití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD ROM mající pøímo vztah ke knize, které

ELEKTRONICKÝ RADIOBUDÍK





Tepelné èerpadlo vzduch voda UŽIVATELSKÝ MANUÁL. urèeno pro sestavu LG:

výrobce domácí dorozumívací techniky Montážní návod pro komunikaci s analogovou poboèkovou ústøednou TLT 12K




NOtþRYiQt. YêE U ign

David Matoušek ÈÍSLICOVÁ TECHNIKA základy konstruktérské praxe Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována ne

8. ZÁKLADNÍ ZAPOJENÍ SPÍNANÝCH ZDROJŮ

2 Deset jednoduchých zkušebních a indikaèních zapojení Na následujících stranách je vidìt, že i velmi jednoduchá zapojení se svìtelnými diodami mohou

Programovací manuál [CZ] Domovník [ACU 100] Elektronický identifikaèní systém

červená LED 1 10k LED 2



Uživatelská příručka


KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ

Návod k obsluze výukové desky CPLD

Regulátor TERM 2.0 NÁVOD K OBSLUZE A MONTÁ NÍ PØÍRUÈKA

POPLACH. Co vše mojepco umožòuje? 12:47


Øídící karta ZBX7 1 VŠEOBECNÝ POPIS


Transkript:

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, že není dovoleno tuto ukázku jakýmkoliv zpùsobem dále šíøit, veøejnì èi neveøejnì napø. umis ováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura redakce@ben.cz

6 5 Pátý pøíklad ovládání LED pomocí tlaèítek V pøedchozích programech jsme zatím programovali výstup na PORT, LCD displej èi jsme výstupní data vysílali sériovì UARTem V dalších programech si ukážeme, jak naopak provádìt vstup Pro školní úèely se obvykle používají rùzné startkity, jako napø STK500, u kterých vstupem budou tlaèítka, výstupem diody LED V dalším programu si ukážeme jak se dá v jazyce Bascom programovì obsloužit takový jednoduchý startkit Pøedpokládejme, že k PORTA máme pøipojena tlaèítka tak, že v klidovém stavu jsou na PORTA samé jednièky, po stisknutí nìkterého tlaèítka se potom na pøíslušném pinu tohoto portu objeví nula Jako výstup slouží LEDky pøipojené k PORTB tak, že je-li na nìkterém z vývodù tohoto portu nula, tak LED svítí, je-li tam jednièka, tak nesvítí Principiální zapojení ukazuje obr 6 9 Obr 6 9 Principiální zapojení pro ovládání LED tlaèítky 82 VLADIMÍR VÁÒA A

Napíšeme jednoduchý program, inspirovaný ukázkovým programem v assembleru u startkitu STK500 Jeho úkolem je v nekoneèné smyèce zjiš ovat stav tlaèítek a na stisknutí nìkterého z tlaèítkem nìjak reagovat, napø inkrementací, dekrementací, rotací apod údaje zobrazovaného diodami LED Pøíklad takového programu je: '----------------------------------------------------------- ' priklad5 BAS ' ukazka pristupu na porty AVR AT90S8535 ' pripojeni LEDek na PORTB a tlacitek na PORTA '----------------------------------------------------------- $regfile = "8515def dat" $crystal = 8000000 Dim P As Byte Config Portb = Output Config Porta = Input P = &H00 Do Portb = P ' do PORTB posle obsah P If Pina 0 = 0 Then Incr P If Pina 1 = 0 Then Decr P If Pina 2 = 0 Then Shift P, Left If Pina 3 = 0 Then Shift P, Right If Pina 4 = 0 Then Rotate P, Left If Pina 5 = 0 Then Toggle P A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE BASCOM 83

If Pina 6 = 0 Then P = &HFF If Pina 7 = 0 Then P = &H00 Waitms 200 ' prodleva 200 msec Loop End Èinnost tohoto programu je velice primitivní Nejprve se provede inicializace PORTA jako vstupního a PORTB jako výstupního Dále se nastaví hodnota pomocné promìnné P na nulu Potom se v nekoneèné smyèce Do Loop pøíkazem Portb = P provede zobrazení této pomocné promìnné pomocí LED diod Hodnota této pomocné promìnné se mìní, pokud je stisknuto nìkteré z tlaèítek K tomu slouží pøíkazy jako napø If Pina 3 = 0 Then Kdy Pina 3 snímá logickou úroveò na pinu 3 portu PORTA a interpretuje ji jako nulu èi jednièky Pøi stisknutém tlaèítku je tato hodnota nula Podmínka v pøíkaze If je napsána tak, že k jejímu splnìní dojde právì pøi stisknutém tlaèítku a provádí se pøíkazy uvedené za Then Takto se provádí postupnì test na stisknutí u všech tlaèítek Akce provádìné po stisknutí tìchto tlaèítek jsou inkrementace, dekrementace, rotace apod obsahu pomocné promìnné P Na konci tìla nekoneèné smyèky jsem ještì zaøadil pøíkaz Waitms pro vytvoøení èasové prodlevy 200 ms jako jednoduchý zpùsob ošetøení zákmitu tlaèítek 6 6 Šestý pøíklad pøipojení maticové klávesnice 4 4 V nìkterých aplikacích potøebujeme ke komunikaci s bìžící aplikací více než osm tlaèítek použitých v pøedchozím pøíkladu Pøidání dalších tlaèítek by sice bylo možné vyøešit jejich pøipojením k dalšímu portu mikrokontroléru a každým z tlaèítek tak ovládat úroveò signálu pro jeden bit portu, ale zbyteènì se tím ochuzujeme o porty umožòující komunikaci mikrokontroléru s okolím Proto pøi použití více tlaèítek je obvyklé jejich uspoøádání do matice a pøipojení této tlaèítkové matice k jedinému portu Programové obsloužení takové klávesnice je však složitìjší, než obsluha samotných tlaèítek Èastým pøípadem je použití 16 tlaèítek zapojených do matice 4 4 Proto jazyk Bascom obsahuje funkci Getkbd() umožòující snadno naprogramovat obsluhu takové klávesnice Pøíkladem mùže být kód: 84 VLADIMÍR VÁÒA A

ILOHSULNODG%$6 SULSRMHQLNODYHVQLFH[N3257& SULSRMHQL/&'N3257$ _55 N _ $regfile = "8515def dat" $crystal = 8000000 $lib "lcd4busy lib" Const _lcdport = Porta Const _lcdddr = Ddra Const _lcdin = Pina Const _lcd_e = 2 Const _lcd_rw = 1 Const _lcd_rs = 0 Dim A As Byte Dim I As Byte Config Lcd = 16 * 2 Config Kbd = Portc Cls Lcd "klavesnice 4 4" Wait 1 Lowerline Cursor Off I = 0 'nastaveni lcd A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE BASCOM 85

Do A = Getkbd() If A <> 16 Then Incr I If I = 8 Then I = 0 Locate 2, 1 Lcd " " Locate 2, 1 Lcd Hex(a) Waitms 20 Loop End ' prodleva 20 msec Jde opìt o školní, ukázkový program V komentáøi na jeho zaèátku je uvedeno i pøipojení klávesnice k mikrokontroléru a kód kláves, vracený po jejich stisknutí Po poèáteèní inicializaci bìží program v nekoneèné smyèce Je založen na použití pøíkazu A = Getkbd(), který pøi každém prùchodu nekoneènou smyèkou do promìnné A posílá celoèíselnou hodnotu v rozmezí 0, 1 16 Je-li tato hodnota rovna 16, znamená to, že není stisknuta žádná klávesa Je-li klávesa stisknuta, vrací tato funkce èíselný kód této klávesy Každá z 16 kláves má pøiøazeno jednoznaènì èíslo v rozmezí 0, 1 15 Toto èíslo zobrazené jako hexaznak necháme zobrazovat na LCD displeji Ve skuteèné aplikaci se v závislosti na vrácené hodnotì bude provádìt nìjaká užiteèná èinnost, popø se pøedtím ještì provede pøekódování vrácené hodnoty do nìjakého jiného kódu 6 7 Sedmý pøíklad pøipojení klávesnice PC Na pøedchozím programu jsme si ukázali princip pøipojení a programového obsloužení maticové klávesnice V pøípadì, kdy potøebujeme klávesnici s vìtším poètem kláves mùže být výhodné použít bìžnou klávesnici používanou u poèítaèù PC Dùsledkem jejího rozšíøení je nízká cena a snadnost jejího pøipojení k mikropoèítaèi èi mikrokontroléru Kklávesnice PC AT tvoøí samostatný konstrukèní celek, obsahující obyèejnì 102 kláves a mikrokontrolér, který vykonává øadu funkcí Tou hlavní je neustálé sledování stavu matice spínaèù V pøípadì jakékoli zmìny zjistí mikrokontrolér souøadnice spínaèe, který ji zpùsobil, vybere v této situaci odpovídající SCAN kód, a ten po sériové lince DATA vyšle smìrem k zaøízení, s nímž klávesnice komunikuje Je-li nìkterá klávesa stisknuta déle než 0,5 s, vysílá její kód automaticky znovu Kromì vlastních dat vysílá klávesnice pøi stisku klávesy i hodinový signál 86 VLADIMÍR VÁÒA A

CLK o kmitoèet 10 až 20 khz Pøi sestupné hranì hodinového signálu CLK jsou vysílaná DATA platná Toho mùžeme využít pøi komunikaci klávesnice s nìjakým systémem jako PC, mikrokontrolér AVR apod Tuto komunikaci vèetnì obslužného programu napsaného v jazyce Bascom si ukážeme na komunikaci PC klávesnice s mikrokontrolérem ATMEL AT90S8515, který s klávesnicí spojíme podle obr 6 10 Obr 6 10 Pøipojení klávesnice PC AT k mikrokontroléru Atmel AVR Signál CLK z klávesnice pøitom bude vyvolávat vnìjší pøerušení mikrokontroléru AVR Pøerušení vyvolané sestupnou hranou hodinového signálu CLK bude obsluhováno funkcí, která bude snímat data vysílaná klávesnicí Klávesnice bude k mikrokontroléru pøipojena pøes její konektor Zapojení konektoru klávesnice PC AT popisuje tab 6 1 Tab 6 1 Zapojení konektoru klávesnice PC AT A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE BASCOM 87

Klávesnice vysílá data sériovì vždy po 11 bitech Nejprve je vysílán startbit (logická nula), poté 8 datových bitù (první je LSB, poslední MSB), dále parita a nakonec stopbit (logická jednièka) obr 6 11 Obr 6 11 Èasování klávesnice PC AT Je zøejmé, že napsání programu pro obsluhu PC klávesnice není jednoduchou záležitostí Proto souèástí Bascomu je i funkce GetATkbd(), která za nás tuto práci udìlá, takže napsat program využívající PC klávesnici mùže být jednoduché Pøíkladem školního programu, který bude na LCD displeji zobrazovat znaky odpovídající stisknutým klávesám, je: '----------------------------------------------------------- ' file: priklad7 BAS ' pripojeni PC AT klavesnice k PORTD PD2 CLK PD3 DATA ' pripojeni LCD k PORTA ' '----------------------------------------------------------- $regfile = "8515def dat" $crystal = 8000000 $lib "lcd4busy lib" Const _lcdport = Porta Const _lcdddr = Ddra Const _lcdin = Pina Const _lcd_e = 2 Const _lcd_rw = 1 Const _lcd_rs = 0 Dim A As Byte Dim I As Byte Config Lcd = 16 * 2 'nastaveni lcd Config Keyboard = Pind 2, Data = Pind 3, Keydata = Keydata Cls Lcd "PC klavesnice" Wait 1 Lowerline 88 VLADIMÍR VÁÒA A

Cursor Off I = 0 Do A = Getatkbd() Loop End If A > 0 Then Incr I If I = 16 Then I = 0 Locate 2, 1 Lcd " " Locate 2, 1 Lcd Chr(a) Keydata: 'normal keys lower case Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &H5E, 0 Data 0, 0, 0, 0, 0, 113, 49, 0, 0, 0, 122, 115, 97, 119, 50, 0 Data 0, 99, 120, 100, 101, 52, 51, 0, 0, 32, 118, 102, 116, 114, 53, 0 Data 0, 110, 98, 104, 103, 121, 54, 7, 8, 44, 109, 106, 117, 55, 56, 0 Data 0, 44, 107, 105, 111, 48, 57, 0, 0, 46, 45, 108, 48, 112, 43, 0 Data 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 13, 0, 0, 92, 0, 0 Data 0, 60, 0, 0, 0, 0, 8, 0, 0, 49, 0, 52, 55, 0, 0, 0 Data 48, 44, 50, 53, 54, 56, 0, 0, 0, 43, 51, 45, 42, 57, 0, 0 'shifted keys UPPER case Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 Data 0, 0, 0, 0, 0, 81, 33, 0, 0, 0, 90, 83, 65, 87, 34, 0 Data 0, 67, 88, 68, 69, 0, 35, 0, 0, 32, 86, 70, 84, 82, 37, 0 Data 0, 78, 66, 72, 71, 89, 38, 0, 0, 76, 77, 74, 85, 47, 40, 0 Data 0, 59, 75, 73, 79, 61, 41, 0, 0, 58, 95, 76, 48, 80, 63, 0 A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE BASCOM 89