David Matoušek UDÌLEJTE SI Z PC V DELPHI 1 díl Praha 2003
Komerèí využití stavebích ávodù je povoleo je s písemým souhlasem autora a akladatelství Soubory a CD-ROM mající pøímo vztah ke kize, tj obsah adresáøe PROGRAMY, ejsou volì šiøitelé David Matoušek UDÌLEJTE SI Z PC V DELPHI 1 díl Bez pøedchozího písemého svoleí akladatelství esmí být kterákoli èást kopírováa ebo rozmožováa jakoukoli formou (tisk, fotokopie, mikrofilm ebo jiý postup), zadáa do iformaèího systému ebo pøeášea v jié formì èi jiými prostøedky Autor a akladatelství epøejímají záruku za správost tištìých materiálù Pøedkládaá zapojeí a iformace jsou zveøejìy bez ohledu a pøípadé patety tøetích osob Nároky a odškodìí a základì zmì, chyb ebo vyecháí jsou zásadì vylouèey Veškerá práva vyhrazea Ig David Matoušek, 2003 Nakladatelství BEN techická literatura, Vìšíova 5, Praha 10 David Matoušek: Udìlejte si z PC v DELPHI 1 díl BEN techická literatura, Praha 2003 1 vydáí ISBN 80-7300-111-X
OBSAH O KNIZE 8 DÙVOD VZNIKU TÉTO KNIHY 9 1 VÝVOJOVÉ PROSTØEDÍ BORLAND DELPHI 7 0 11 1 1 Kompoety, objekt ispektor, formuláø a textový editor 12 1 2 Fukce Widows API 13 1 3 Základy rozšíøeého používáí Delphi 14 1 3 1 Ukazatele 14 1 3 2 Øetìzce 15 1 3 3 Volací kovece 17 1 3 4 Objekt Pascal 18 1 4 Dyamické kihovy (DLL) 22 2PØÍMÝ PØÍSTUP NA PORTY 25 2 1 Úvod do problému 26 2 2 Ovladaè ZLPortIO 26 2 3 Tøída TPort 26 2 3 1 Implemetace 27 2 3 2 Uživatelský popis 28 3 PARALELNÍ PORT DLE STANDARDU SPP 29 3 1 SPP Stadard Parallel Port 30 3 2 Widows XP a (možé) problémy s paralelím portem 32 3 3 Programové øízeí SPP 33 3 4 Tøída TParallel ovládáí paralelího portu fukcemi Widows API 33 3 4 1 Implemetace 33 3 4 2 Uživatelský popis 36 3 5 LPTLCD øízeí LCD displeje pøes paralelí port 36 3 5 1 Struèý popis ovládáí LCD displeje 36 3 5 2 Schéma zapojeí 39 3 5 3 Plošý spoj 39 3 5 4 Testovací aplikace 40 3 6 LPTSMT mìøeí teploty èidlem SMT160-30 47 3 6 1 Struèý popis èidla SMT160-30 47 3 6 2 Schéma zapojeí 47 A D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL 3
3 6 3 Testovací aplikace 48 3 7 Pozámka k pøípravku SPPTEST 54 4 PØÍMÉ ØÍZENÍ SÉRIOVÉHO PORTU 55 4 1 Liky sériového portu s podporou pøímého øízeí 56 4 2 Tøída TSPort Programové øízeí liek modemu sériového portu 57 4 2 1 Rozvaha 57 4 2 2 Implemetace 57 4 2 3 Uživatelský popis 61 4 2 4 Ukázková aplikace DIRCOM 62 4 3 Pøípravek COM4021 66 4 3 1 Schéma zapojeí 67 4 3 2 Tøída TCOM4021 69 4 3 3 Vlastí aplikace COM4021 72 4 3 4 Oživeí 75 4 4 Pøípravek COM1320 76 4 4 1 Struèý popis obvodu TC1320 76 4 4 2 Schéma zapojeí 78 4 4 3 Tøída TCOM1320 81 4 4 4 Vlastí aplikace COM1320 84 4 4 5 Oživeí 87 5 ASYNCHRONNÍ PØENOS NA SÉRIOVÉM PORTU 89 5 1 Tøída TSerial 90 5 1 1 Implemetace 90 5 1 2 Uživatelský popis 97 5 2 Testovací pøípravek AT8VV2 98 5 2 1 Schéma zapojeí 98 5 2 2 Program pro AT89C2051 100 5 3 Testovací aplikace pro pøípravek AT8VV2 103 5 4 Oživeí pøípravku AT8VV2 109 6 POUŽITÍ OBVODU FT232BM PRO PRÁCI SE SBÌRNICÍ USB 111 6 1 Základí pojmy USB 112 6 1 1 Koektory a kabely 112 6 1 2 Verze USB a pøeosové rychlosti 113 6 1 3 Deskriptor zaøízeí 113 6 1 4 Huby rozboèovaèe 114 6 2 Struèý popis obvodu FT232BM 115 6 2 1 Základí vlastosti FT232BM 115 4 D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL A
6 2 2 Blokové schéma FT232BM 116 6 2 3 Popis vývodù FT232BM 117 6 2 4 Pøipojeí E 2 PROM 120 6 2 5 Napájeí aplikace z USB sbìrice 120 6 2 6 Øízeí spotøeby vìjších obvodù 121 6 3 Bit Bag režim 121 6 4 Tøída TFT232 122 6 4 1 Implemetace 122 6 4 2 Uživatelský popis 129 6 5 Pøípravek FT232TST 130 6 6 Ovladaè a programováí E 2 PROM 132 6 6 1 Ovladaè FTD2XX 132 6 6 2 EFSProg programátor kofiguraèí E 2 PROM 133 6 6 3 Struèý popis položek meu 134 6 6 4 Nový ovladaè 134 6 7 Pøíklad použití (režim Bit Bag) 134 7 LPTUNI UNIVERZÁLNÍ PØÍPRAVEK PRO PARALELNÍ PORT 139 7 1 Schéma zapojeí 140 7 2 Výkres desky plošých spojù 142 7 3 Ovládací rozhraí TLUIterface 145 7 3 1 Implemetace 145 7 3 2 Uživatelský popis 148 7 4 Testovací aplikace 149 7 4 1 Krátce o aplikaci 149 7 4 2 Oživeí pøípravku LPTUNI 153 7 5 Pøíklad èasovaého øízeí spotøebièù 153 7 5 1 Iicializaèí soubor TIMER INI 154 7 5 2 Programové øešeí 155 7 5 3 Používáí aplikace 161 8 JEDNODUCHÝ DVOUKANÁLOVÝ DIGITÁLNÍ OSCILOSKOP 163 8 1 Schéma zapojeí 164 8 2 Výkres desky plošých spojù 166 8 3 Øídicí pøíkazy 168 8 4 Firmware 171 8 5 Ovládací program 181 8 5 1 Tøída TOSC Ovládací rozhraí 181 8 5 2 Vlastí aplikace 186 A D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL 5
8 6 Oživeí 197 8 7 Návrhy a další vylepšeí 198 9 USBMC 2 0 UNIVERZÁLNÍ MÌØICÍ DESKA 199 9 1 Schéma zapojeí 200 9 2 Výkres desky plošých spojù 203 9 3 Øídicí pøíkazy 206 9 3 1 Pùvodí pøíkazy dle verze 1 0 207 9 3 2 Nové pøíkazy a vývody mikrokotroléru 209 9 4 Firmware 210 9 5 TUSBMC ovládací rozhraí 221 9 6 USBMC 2 0 komplexí testovací aplikace 231 9 7 Oživeí 243 9 8 Pøíklad použití mìøeí teploty èidlem SMT160-30 244 10 PØÍLOHA PROPOJOVACÍ KABELY 249 10 1 Propojovací kabel pro paralelí port (LPTKAB) 250 10 2 Propojovací kabel pro sériový port (COMKAB) 250 10 3 Propojovací kabel PSLKAB 250 10 4 Propojovací kabel pro USB 251 11 DODAVATELÉ SOUÈÁSTEK, MODULÙ A HOTOVÝCH PØÍPRAVKÙ UVEDENÝCH V TÉTO KNIZE 253 11 1 Sezamy souèástek 254 11 2 GM Electroic 254 11 3 Zásilková služba Electroic Obecice 254 11 4 ASIX 254 ZÁVÌR 255 KONTAKT NA AUTORA 255 PØEHLED PØÍPRAVKÙ 256 PLOŠNÉ SPOJE 256 LITERATURA 257 6 D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL A
CO NAJDETE NA DOPROVODNÉM CD-ROM Doprovodé CD-ROM obsahuje všechy iformace potøebé pro sadou práci s kihou Tyto iformace lze rozdìlit do logických celkù, které se acházejí v oddìleých adresáøích: adresáø _DELPHI7 obsahuje, adresáø BEN obsahuje off-lie verzi www stráek akladatelství BEN techická literatura (aktualizováo k poèátku øíja 2003), jejichž souèástí je poèítaèová verze tištìého katalogu Edièího pláu podzim 2003 a samostatého pøehledu aší produkce BEN 2003, adresáø DATASHEET obsahuje dokumetaci vybraých itegrovaých obvodù, které jsou v kize používáy, ve formátu PDF Najdete zde též samorozbalitelý archiv programu Adobe Acrobat Reader v ìkolika verzích, který slouží k prohlížeí PDF souborù, adresáø EFSPROG, je programátor kofiguraèích E 2 PROM (viz kap 11) Teto ovládací program je mohem komfortìjší ež origiálí od firmy FTDI Chip, adresáø FOTO obsahuje, jak sám ázev apovídá, fotografie hotových pøípravkù Každý byl afoce z ìkolika pohledù, aby byla lépe dokumetováa jejich možá stavba, Do shodého adresáøe jsme umístili trial verzi prohlížeèe ACDSee stažeou z Iteretu (http://www acdsystems com): ACDSee Classic (velikost istalaèího souboru cca 1,6 MB, miimálí požadavky Widows 95/98/Me/NT4/2000, PC 486DX s 32 MB RAM, režim grafického adaptéru s 256barvami, 4 MB volého místa a pevém disku, vhodý Iteret Explorer 4 0 ebo pozdìjší) Tip: pokud se vám fotografie zdají pøíliš tmavé, aktivujte ve vašem prohlížeèi Gamma korekci a hodotu apø 1 50 (optimálí hodota závisí a astaveí vašeho grafického subsystému) adresáø OVLADACE obsahuje strukturu ìkolika podadresáøù: D2XX zde ajdete ovladaèe pro rozhraí D2XX (viz kap 3) v podadresáøi EFS jsou ovladaèe publikovaých kostrukcí a v podadresáøi FTDI jsou origiálí ovladaèe od výrobce V podadresáøi VCP ajdete ovladaèe virtuálího sériového portu (viz kap 12) adresáø PROGRAMY obsahuje zdrojové i pøeložeé formy všech programù realizovaých v kize, adresáø SPOJE obsahuje klišé plošých spojù všech pøípravkù popsaých v kize ve formátu TIF a avíc ve zdrojovém formátu BRD programu EAGLE je verze 2 6, aby si èteáøi pøípadì mohli plošé spoje upravit podle vlastích pøedstav Nìkteré spoje jsme ještì v redakci dodateèì upravovali (zvìtšováí úchytých plošek pro souèástky, ), takže fiálí verze je uložea pouze ve formátu TIF (je shodá s klišé otištìými v kize), A D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL 7
O KNIZE Kiha uvádí kostrukce ìkolika zaøízeí, která lze používat v amatérské praxi ale i mohem obecìji Ovládací programy jsou vytvoøey ve vývojovém prostøedí Borlad Delphi 7 0 a fugují a operaèích systémech Widows 98/2000/XP Prví kapitola uvádí pokroèilejší programovací techiky Delphi (ukazatele, øetìzcové typy, volací kovece, vlastosti a události, RTTI, voláí fukcí z dyamických kihove), které jsou dùležité pro efektiví programováí Druhá kapitola struèì popisuje ovladaè ZLPortIO, který poskytuje plý pøístup k portùm poèítaèe Dále je implemetováa tøída TPort, která použití ovladaèe velmi zjedodušuje Tøetí kapitola je zamìøea a popis paralelího portu dle stadardu SPP Jsou také pøipojey dvì zajímavé aplikace paralelího portu (ovládáí LCD displeje pøes paralelí port a použití èidla SMT160-30 pro mìøeí teploty) Ètvrtá kapitola se vìuje popisu sériového portu a pøiáší dvì zajímavé aplikace øízeé pomocí liek modemu (8bitový vstupí port a levý 8bitový D/A pøevodík) Obì kostrukce jsou apájey pøímo ze sériového portu, takže odpadá utost použití vìjšího apájecího zdroje Pátá kapitola ukazuje používáí sériového asychroího pøeosu a sériovém portu Také je pøipomeut pøípravek AT8VV, a kterém si lze teoretické iformace sado ovìøit Šestá kapitola pøiáší struèý popis obvodu FT232BM (kovertoru USB<=>RS232) vèetì vybraých ovládacích fukcí, který je zakoèe vytvoøeím jedoduchého testovacího pøípravku pro USB Posledí tøi kapitoly jsou vìováy tvorbì složitìjších zaøízeí: LPTUNI uiverzálí deska pro paralelí port (triaky ebo relé pro ovládáí sí ových spotøebièù, trazistory pro spíáí stejosmìrých obvodù, jede digitálí vstup), COMOSC dvoukaálový digitálí osciloskop s rozlišeím 8 bitù a maximálí vzorkovací rychlostí 100 ksps (= 100 000 vzorkù za sekudu, tj samples per secod), USBMC uiverzálí mìøicí karta pro USB (D/A pøevodíky, A/D pøevodíky, digitálí vstupy a výstupy, èítaè a èasovaè) Pro všechy kostrukce jsou vytvoøey speciálí tøídy, které zajiš ují jejich ovládáí Tak mohou èteáøi velmi sado zaèleòovat publikovaý kód do svých kostrukcí a vytváøet vlastí obslužé programy s miimálím úsilím 8 D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL A
DÙVOD VZNIKU TÉTO KNIHY Úvodem struèì vysvìtlím, proè jsem se rozhodl apsat kihu zamìøeou a ovládáí hardwarových zaøízeí pomocí vývojového prostøedí Delphi Po vydáí prvího a druhého dílu kihy Udìlejte si z PC mì reakce èteáøù vedly k pozatku, že moho zaèíajících programátorù je odrazeo zdálivou složitostí programováí v jazyce C++ Tato složitost je opravdu je zdálivá a vlastì je zpùsobea esmírou bohatostí programátorských ástrojù (zde mám hlavì a mysli velké možství klíèových slov) oproti pøehledìjšímu Pascalu Nicméì vývojové prostøedí C++ Builder, které jsem do této doby ve všech kihách používal, je velmi podobé Delphi (víte, že C++ Builder má èást kódu zapsaou v Pascalu?) Takže iformace podaé v [15] až [17] jsou dobøe použitelé i pro vývoj aplikací v Delphi Vzhledem k tomu, že však moho zaèáteèíkù erozumí rozdílùm sytaxe ebo eí schopo si programové kódy jedoduše pøepsat do Pascalu, rozhodl jsem se spolu s paem Liborem Kubicou z akladatelství BEN techická literatura vydat tuto kihu, která by rámcovì zahrula možosti ovládáí zaøízeí pøipojeých a paralelí ebo sériový port poèítaèe èi a stále více se prosazující sbìrici USB Nejde však o obaleí starých aplikací do ového kabátu Rozhodl jsem se pøiést øadu ových zapojeí, která mají praktické použití apøíklad ve vaší elektrodílì, pro podporu výuky elektropøedmìtù, v øízeí domácích spotøebièù a sad i mohem obecìji A D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL 9
10 D MATOUŠEK: UDÌLEJTE SI Z PC V DELPHI 1 DÍL A