České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Návrh a realizace alkohol testeru Jan Šimek
Vedoucí práce: Ing. Jan Rusz
Studijní program: Elektrotechnika a informatika, dobíhající, Bakalářský Obor: Výpočetní technika 27. května 2010
iv
v
Poděkování Rád bych poděkoval svému vedoucímu Ing. Janu Ruszovi za ochotu, dále referentkám na studijním oddělení za trpělivost, Petru Holíkovi za poskytnutí odborné pomoci, všem testovaným osobám za sebeobětování a samozřejmě mé rodině za nekončící podporu.
vi
vii
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 27. 5. 2010
..................................................................
viii
Abstrakt Práce se zabývá návrhem a realizací alkohol testeru s využitím mikrokontroléru řady 8051. Skládá se ze čtyř hlavních částí: (a) popis problému, specifikace a cíle (b) analýza a návrh řešení (c) realizace alkohol tester (d) testování a porovnání s ostatními přístroji Výsledkem této práce je přenosné zařízení pro měření množství alkoholu v krvi neinvazivní metodou. Přístroj využívá plynové čidlo TGS822, které zajišťuje dostatečné kvality v porovnání s jinými, volně dostupnými zařízeními.
Abstract Work deals with the design and implementation of alcohol tester using Microcontroller Series 8051. It consist of four main parts: (a) problem description, specifications and aims (b) analysis and design of solution (c) realization of alcohol tester (d) testing and comparison with other device
ix
x The result of this thesis is mobile device for non-invasive measurement of amount of alcohol in blood. The final device is designed using gas sensor TGS822 which ensures the sufficient quality in comparison with other freely available devices.
Obsah 1 Úvod
1
2 Popis problému, specifikace cíle
3
2.1
2.2
Etanol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.1.1
Popis měřené látky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.1.2
Stádia otravy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Základní popis alkohol testerů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.1
Princip metody měření s polovodičovými senzory . . . . . . . . . . . . . . . . . . .
5
2.2.2
Princip metody měření s elektrochemickými senzory . . . . . . . . . . . . . . . . .
6
2.2.3
Kalibrace alkohol testerů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.4
Popis použitého senzoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3 Analýza a návrh řešení 3.1
9
Návrh zapojení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.1
Návrh zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.2
Návrh snímací části . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.3
Návrh řídící jednotky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.1.4
Návrh zobrazení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.1.5
Programování procesoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.1.5.1
Jazyk symbolických instrukcí . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.1.5.2
Návrh algoritmu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.1.5.3
Kalibrace čidla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4 Realizace 4.1
17
Návrh desky plošných spojů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.1.1
17
Kreslení schématu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xi
xii
OBSAH 4.1.2 4.2
Kreslení spojů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
Tvorba desky plošných spojů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.2.1
Nanesení schématu na desku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4.2.2
Leptání desky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5 Testování
23
6 Závěr
27
6.1
Rekapitulace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
6.2
Možnosti zlepšení produktu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
A Seznam použitých zkratek
31
B Seznam použitých součástek
33
C Zdrojový kód programu
35
D Obsah přiloženého CD
41
Seznam obrázků 2.1
Plynový senzor TGS822 společnosti Figaro
. . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.1
Schéma napěťového zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
Vnitřní struktura senzoru TGS822, zdroj [5] . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.3
Vnitřní zapojení senzoru TGS822, zdroj [5] . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.4
Schéma snímací části obvodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.5
Schéma řídící části obvodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.6
Schéma zobrazovací části
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.7
Vývojový diagram algoritmu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.8
Charakteristika senzoru TGS822, zdroj [4] . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.9
Překreslená charakteristika senzoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
4.1
Deska plošných spojů při pohledu zeshora . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.2
Deska plošných spojů při pohledu zdola . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.3
Nekvalitní nažehlení toneru na desku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4.4
Vyleptaná deska víc než bylo potřeba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4.5
Deska po zapájení všech součástek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.1
Graf pro srovnání naměřených výsledků, osoba A . . . . . . . . . . . . . . . . . . . . . . .
25
5.2
Graf pro srovnání naměřených výsledků, osoba B . . . . . . . . . . . . . . . . . . . . . . .
26
5.3
Graf pro srovnání naměřených výsledků, osoba C . . . . . . . . . . . . . . . . . . . . . . .
26
xiii
xiv
SEZNAM OBRÁZKŮ
Seznam tabulek 5.1
Specifikace testeru AL 2500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.2
Srovnávací test, osoba A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.3
Srovnávací test, osoba B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.4
Srovnávací test, osoba C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
B.1 Seznam použitých součástek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
xv
xvi
SEZNAM TABULEK
Kapitola 1
Úvod Tato práce se zabývá návrhem, realizací a testováním přístroje pro měření obsahu alkoholu v krvi nepřímou metodou z lidského dechu. Součástí práce je seznámení se se základními principy při návrhu alkohol testeru, výběru vhodných součástek, návrhu zapojení s využitím 8-bitového mikroprocesoru, vytvoření algoritmu, návrhu desky plošného spoje a v neposlední řadě nutné kalibrace a otestování funkčnosti v porovnání s komerčně prodávaným přístrojem. Práce je dále rozdělena do následujících kapitol. Druhá kapitola obsahuje teoretický úvod do problematiky, seznámení se s již existujícími řešeními, výčet principů, které dostupné alkohol testery využívají a popis plynového polovodičového senzoru TGS822, používaného v této práci. Třetí kapitola se zabývá návrhem řešení, zahrnující návrh elektronického schématu a to jeho čtyř základní částí – zdroje napětí, snímací části obsahující plynový senzor, řídící jednotce s mikroprocesorem a zobrazovací části sloužící k zobrazení naměřených výsledků. Dále je zde popsán výběr použitých součástek, naprogramování řídícího mikrokontroléru řady 8051 v jazyce symbolických instrukcí a vhodná kalibrace přístroje. Čtvrtá kapitola je věnována samotné realizaci výrobku – kreslení elektronického schématu a návrh desky plošných spojů za pomoci programu OrCAD 10, následný přenos motivu na jednostrannou cuprexitovou destičku a její následné vyleptání. Pátá kapitola popisuje testování výsledného produktu a jeho srovnání s jiným, volně prodávaným přístrojem a zobrazuje naměřené výsledky. Šestá kapitola obsahuje závěrečné shrnutí a výčet zjištěných možností vylepšení výrobku.
1
2
KAPITOLA 1. ÚVOD Výsledkem práce je funkční mobilní alkohol tester, který může být využit pro osobní kontrolu hladiny alkoholu v krvi, ale také může sloužit jako vhodná laboratorní pomůcka při výuce předmětů zabývajících se návrhem a konstrukcí senzorových systémů.
Kapitola 2
Popis problému, specifikace cíle 2.1 2.1.1
Etanol Popis měřené látky
Etanol(nesprávně též alkohol) je jednoduchá molekula, která vzniká kvašením cukrů. Působení etanolu na člověka je velice relativní, záleží na několika faktorech. V malých dávkách etanol krátkodobě způsobuje euforii a pocit uvolnění, ve větších pak deprese, ztrátu koordinace pohybů těla(působením na mozeček), sníženou vnímavost, prodloužení reakce a útlum rozumových schopností, případně i agresivitu. Dlouhodobé a opakované působení etanolu vede k závislosti na něm(k alkoholismu) a způsobuje cirhózu jater. Etanol se dostává do organismu nejčastěji pitím nápojů. Ze žaludku a tenkého střeva se alkohol absorbuje v nezměněné podobě. Dále se distribuuje do všech orgánů. Oxidace etanolu probíhá v játrech ve dvou stupních. V prvém je oxidován na acetaldehyd, ve druhém pak acetaldehyd na kyselinu octovou, z které v játrech vzniká např. cholesterol. Hladina etanolu v krvi závisí na • množství požité látky • tělesné hmotnosti • rychlosti absorpce • rychlosti detoxikace
3
4
KAPITOLA 2. POPIS PROBLÉMU, SPECIFIKACE CÍLE Eliminace (biotransformace) alkoholu probíhá zhruba kinetikou nultého řádu, rychlostí 7,5 g/hod.
Hladina klesá cca o 0,15% za 1 hodinu. K detoxikaci 100g alkoholu obsažených asi v jednom litru vína, kdy hladina dosáhne přibližně 2,2 promile, je nutných zhruba 13 hodin. Pro zjištění hladiny etanolu v krvi lze použít jednoduchý orientační vzorec: požitý alkohol v gramech / (tělesná hmotnost x k) = promile etanolu v krvi, kde k se rovná 0,68 v případě muže, 0,55 pokud se jedná o ženu. Fyziologická hranice etanolu v krvi člověka, jenž nepožil alkoholický nápoj, je 0,03 – 0,1 promile. Hodnoty 0,3 – 0,5 promile již svědčí o požití alkoholického nápoje a v rozmezí 0,5 – 1,0 promile se jedná o podnapilost. 1,0 – 1,5 promile znamená mírný stupeň opilosti, 1,5 – 2,0 promile pak střední stupeň opilosti s jasnými klinickými příznaky, 2,0 – 3,0 promile je hodnoceno jako těžký stupeň opilosti a při hodnotách vyšších než 3,0 promile hovoříme o akutní otravě alkoholem.
2.1.2
Stádia otravy
Akutní otrava (intoxikace) probíhá ve 3 stádiích – excitačním, narkotickém a komatózním. Jednotlivá stádia rozlišujeme dle psychických a tělních příznaků a hladiny etanolu v krvi. Excitační stádium je provázeno zvýšenou duševní a tělesnou aktivitou krátce po požití. Subjektivně se taková osoba cítí sebejistá, silná a spokojená. Dochází ke ztrátě kritičnosti a smyslu pro odpovědnost, je narušena koordinace pohybů s prodloužením reakčního času. Narkotické stádium se projeví vasodilatačními účinky, tj. překrvením a zčervenáním kůže zejména v obličeji. Chůze je vrávoravá, reakce více pomalejší. Objevuje se dvojité vidění a závratě především při zavřených očích a vleže. Stoupá krevní tlak a puls. Po předešlé euforii nastupuje významný útlum, lhostejnost a pasivita doprovázená ztrátou smyslu pro realitu. Komatózní stádium nastupuje bezvědomím s úplným motorickým ochabnutím. Dýchání je hluboké a zpomalené. Při zvracení hrozí vdechnutí žaludečního obsahu a zástava dechu. Převzato z [10].
2.2. ZÁKLADNÍ POPIS ALKOHOL TESTERŮ
2.2
5
Základní popis alkohol testerů
Alkohol tester, neboli také dechový analyzátor je v podstatě měřící přístroj, který má v dané chvíli informovat, zda určitá osoba požila či nepožila alkohol, případně v jakém množství (procenta, promile). Nalezne uplatnění zejména při kontrole schopnosti řízení motorového vozidla, dodržování kázně na pracovišti a podobně. Velmi důležité je však dodržet postup při měření. Měří se 15–30 minut po posledním požití alkoholického nápoje dle typu alkohol testeru. Měření zajišťuje senzor, jehož údaje jsou dále zpracovávány a vyhodnocovány mikroprocesorem. Na výstupní straně je displej, který zobrazí konkrétní naměřenou hodnotu. Některé alkohol testery mohou mít také paměť s posledními naměřenými hodnotami, či možnost propojení s počítačem. Pro zajištění přesnosti měření alkohol testerů a také pro vyšší životnost senzorů je nutno provádět pravidelné čištění a kalibraci, což se doporučuje většinou po každých 500 měřeních (dle typu testeru). Vlastní měření probíhá tak, že po uvedení alkohol testeru do provozu probíhá inicializace. Senzor se aktivuje a musí se zahřát na určitou teplotu, aby byl schopen přesného měření a to z důvodu, že čidlo reaguje na obsah etanolu i jiných těkavých látek po zahřátí mnohem citlivěji. Po aktivaci je alkohol tester schopen změřit s velkou přesností přítomnost i velmi nepatrného množství těchto látek. Doba zahřátí je závislá na typu čidla, jedná se o interval v řádu desítek vteřin. Po zahřátí je osoba vyzvána k vlastnímu výdechu, který musí trvat několik vteřin nepřetržitého vdechu. V plicích člověka dochází k přímému kontaktu vdechnutého vzduchu s krví. Do krve se naváže kyslík a zároveň se z krve uvolní oxid uhličitý a jiné plyny a páry, jako třeba etanol a ty nakonec vydechneme. Pokyn pro ukončení výdechu dá přístroj většinou akustickým signálem. Poté přístroj vyhodnotí koncentraci molekul etanolu v dechu a přepočítá na promile či procenta. Tato procedura může trvat několik vteřin. Poté se na displeji zobrazí číselný údaj.
2.2.1
Princip metody měření s polovodičovými senzory
Pro to, aby byl alkohol tester schopen změřit hodnoty, musí být polovodičový senzor nejprve zahřátý na provozní teplotu. Poté začíná mít schopnost poskytovat údaje potřebné pro měření. Jedná se o velmi citlivý plynový polovodič schopný identifikovat v dechu těkavé redukující látky, tedy i molekuly etanolu – jeho výhoda je, že jeho závislost není ovlivněna okolní teplotou ani vlhkostí okolního vzduchu. Další výhoda je, že výsledky nejsou ovlivněny plyny jako jsou vodík a methan. Princip fungování senzoru je založen na změně elektrické vodivosti prvku z oxidu cíničitého(SnO2 ). Oxid je polovodič typu N a zjednodušeně lze říci, že pokud je na jeho povrchu přítomen pouze čistý vzduch, je jeho vodivost nízká, protože volné elektrony, které způsobují el. vodivost, jsou vázány na kyslík. V přítomnosti detekovatelného plynu se volné elektrony uvolňují a vodivost se zvyšuje až o dva
6
KAPITOLA 2. POPIS PROBLÉMU, SPECIFIKACE CÍLE
řády. Citlivost senzoru tedy závisí na velikosti styčné plochy mezi oxidem cíničitým a okolním plynem. Mnohem detailněji zpracovaný princip této reakce se lze dočíst v [3]. Alkohol testery s polovodičovými senzory jsou levnější a snadněji dostupné. Tyto testery jsou používány jako nestanovená měřidla a nelze se na ně právně odvolávat. Slouží pouze jako orientační měřidla. Jsou klinicky ověřována a na jejich kalibraci dohlíží ústavní soudní lékařství.
2.2.2
Princip metody měření s elektrochemickými senzory
Elektrochemické analyzátory jsou založeny na aplikaci elektrochemických senzorů. Předností těchto senzorů je vysoká citlivost a vynikající selektivita. S výjimkou analyzátoru kyslíku je tento typ analyzátorů určen k měření velmi nízkých koncentrací. Většina těchto analyzátorů je postavena na IMS technologiích, které jsou konstruované na zjišťování toxických chemických látek. IMS detektory pracují na principu iontové mobilní spektrometrie, což je metoda založená na snímání spektra, které vznikne díky různé pohyblivosti iontů ve vícenásobném elektrickém poli. Vzorek měřeného plynu ve vzduchu je dopraven do ionizačního prostoru, kde je vystaven radiaci americia, které způsobí jeho ionizaci. Uvnitř elektrického pole se ionty pohybují směrem k anodě, popř. katodě charakteristickou rychlostí a jsou zaznamenány jako krátkodobé impulzy v rozsahu nanoampérů. Speciální software vyhodnotí tyto impulzy v závislosti na čase a amplitudě, přesně určí danou látku. Alkohol testery s elektrochemickými senzory jsou dražší než senzory s polovodičovými senzory a hůře dostupné. Tyto alkohol testery jsou používány jako stanovená měřidla a lze se na ně právně odvolávat. Slouží pouze jako regulérní měřidla. Tyto měřidla se musí jednou za rok zrevidovat, což provádí Český Metrologický Institut (ČMI). Alkohol testery s těmito senzory používají zvláště Policie české republiky a firmy (např. ČSA, ČSAD, . . . ), které potřebují mít absolutní jistotu o přesnosti provedených měření a lze se na ně právně odvolávat.
2.2.3
Kalibrace alkohol testerů
Kalibrace alkohol testerů je důležitá k zajištění přesnosti měření, zejména dlouhodobou. Rovněž tím docílíme prodloužení životnosti senzoru. Pokud alkohol tester není vůbec překalibrován, může dojít k poškození citlivosti čidel, což je spojené s pozdějšími nákladnými opravami. Kalibrace je proto dobré provádět po každém 500–700 měření. Některé modely informují uživatele o počtu provedených měření. Princip kalibrace spočívá v nadefinování konkrétní přesné charakteristiky čidla (senzoru) a uložení těchto informací do paměti procesoru. V praxi to vypadá tak, že se definují tři hodnoty – 0 promile, 0,5 promile a 1 promile. Hodnoty 0,5 a 1 promile mají certifikované roztoky v uzavřených ampulích, ty se
2.2. ZÁKLADNÍ POPIS ALKOHOL TESTERŮ
7
pomocí kalibračního přístroje ohřejí na předem stanovenou teplotu (v našem případě 34 stupňů Celsia, což je hodnota, kdy měříme dech člověka, jehož tělesná teplota je asi 36 stupňů – ztráta dvou stupňů cesta od úst člověka k senzoru). Samostatný výdech do alkohol testeru provádí sám kalibrační přístroj a to v servisním režimu alkohol testeru pro kalibraci, kterého sám zákazník bez patřičného vybavení není schopen docílit. První kalibrace se provádí již ve výrobě, další kalibrace po každých 500-700 měřeních, přičemž životnost čidla je asi 3000 měření. Kalibrace se provádí pro srovnávání informací charakteristiky čidla, která se může nepatrně odchýlit s přibývajícím počtem měření. Po ukončení kalibrace se rovněž ukáže jaký je stav senzoru z hlediska životnosti, případně je-li či není senzor poškozen. Převzato z [6].
2.2.4
Popis použitého senzoru
Výrobcem použitého senzoru je společnost Figaro, která se specializuje na výrobu celé řady špičkových průmyslových senzorů již od roku 1968. Plynový senzor TGS 822 byl zvolen zejména pro svoji vysokou citlivost na organické páry, především etanol. Jeho další přednosti jsou vysoká stabilita a spolehlivost po dlouhou dobu a také to, že jeho zapojení do elektrického obvodu je velmi jednoduché, jelikož využívá pouze primitivního odporového děliče. Sám výrobce uvádí jako nejčastější možné aplikace dechové testery na přítomnost alkoholu v krvi, bezpečnostní detektory úniku plynů a průmyslové plynové detektory. Základní detekovatelné látky jsou etanol, n-hexan, benzen, aceton, metanol, oxid uhelnatý a izobutan s rozlišením detekovatelnosti od 50 do 5 000 ppm.
Obrázek 2.1: Plynový senzor TGS822 společnosti Figaro
8
KAPITOLA 2. POPIS PROBLÉMU, SPECIFIKACE CÍLE
Kapitola 3
Analýza a návrh řešení 3.1
Návrh zapojení
Celkové schéma obvodu lze rozdělit do čtyř základních bloků – zdroj, snímací část obsahující senzor, řídící jednotku s mikrokontrolérem a zobrazovací část se sedmisegmentovými displeji.
3.1.1
Návrh zdroje
Celý obvod počítá s napájením z 9V baterie. Těmito devíti volty je napájen pouze samotný senzor. Pro zbytek obvodu je vstupní napětí stabilizováno na 5V, dimenzováno na maximální odběr 1A. Slouží k napájení všech TTL obvodů, displejů a pro zahřívání senzoru na pracovní teplotu. Zapojení zdroje je běžné — usměrňovací dioda pro případ otočení polarity baterie, pětivoltový stabilizátor LM7805 a LED zelené barvy pro signalizaci funkčního stavu. Schéma zapojení zobrazuje obrázek 3.1.
3.1.2
Návrh snímací části
Senzor TGS822 je pěti volty(VH ) zahříván za pomocí ohřevní cívky, která je jeho součástí. Vnitřní struktura čidla je patrná z obrázku 3.2. Senzor pracuje na principu odporového děliče. Jeho vnitřní zapojení je zobrazeno na obrázku 3.3. Na jeho vstupu je známé napětí(VC ), v případě této práce 9V. Uvnitř čidla je polovodičový prvek, který na měnící se koncentraci etanolu ve vzduchu reaguje změnou vodivosti. V sérii s ním je zapojený známý rezistor, ze kterého se odečítá napětí. Získaný analogový signál je z důvodu impedančního přizpůsobení přiveden na operační zesilovač TLC272 [12]. Ten je zapojen jako neinvertující zesilovač. Výhodou tohoto zapojení je, že vstupní impedance nezávisí na zpětnovazebních
9
10
KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ
rezistorech, ale odpovídá vstupní impedanci samotného operačního zesilovače, která se pohybuje v řádech M Ω až T Ω [9]. Zesílený signál dále putuje na osmibitový analogově digitální převodník ADC0804 [8], ze kterého je již v digitální podobě přiveden do mikrokontroléru. Schéma snímací části obvodu je na obrázku 3.4.
3.1.3
Návrh řídící jednotky
Pro řízení obvodu byl vybrán osmibitový mikrokontrolér AT89C2051 společnosti Atmel [2]. Maximální taktovací frekvence mikroprocesoru je 24MHz, v případě tohoto zařízení je taktován na 11,0592MHz. Má dva vstupně výstupní porty, jeden má osm, druhý sedm pinů. Osmipinový port je vyhrazen pro vstup digitálních dat z analogově digitálního převodníku, sedmipinový se stará o zobrazení výsledku na displejích – čtyři piny jsou reprezentují naměřenou hodnotu v BCD kódu, další dva spínají střídavě jeden a druhý sedmisegmentový displej, poslední pin ovládá LED červené barvy signalizující nepřipravenost testeru měřit.
3.1.4
Návrh zobrazení
O zobrazení výsledné hodnoty se starají dva sedmisegmentové displeje HDSP-A101 [1], které jsou buzeny pomocí tranzistorů. Signálová data jsou do nich přiváděna přes integrovaný obvod 74LS247 [11], což je převodník BCD kódu na kód sedmisegmentových displejů. Z důvodu úspory použitých pinů mikrokontroléru jsou displeje časově multiplexovány s frekvencí 100Hz, což je dostatečně vysoká vzorkovací frekvence zaručující kontinuální zobrazení číslic na displeji.
Obrázek 3.1: Schéma napěťového zdroje
3.1. NÁVRH ZAPOJENÍ
Obrázek 3.2: Vnitřní struktura senzoru TGS822, zdroj [5]
Obrázek 3.3: Vnitřní zapojení senzoru TGS822, zdroj [5]
11
12
KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ
Obrázek 3.4: Schéma snímací části obvodu
Obrázek 3.5: Schéma řídící části obvodu
3.1. NÁVRH ZAPOJENÍ
13
Obrázek 3.6: Schéma zobrazovací části
14
KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ
3.1.5
Programování procesoru
3.1.5.1
Jazyk symbolických instrukcí
Jazyk symbolických instrukcí je nízkoúrovňový programovací jazyk, který je tvořen symbolickou reprezentací jednotlivých strojových instrukcí a konstant potřebných pro vytvoření strojového kódu programu pro daný procesor. Symbolickou reprezentaci tvoří zpravidla výrobce procesoru a proto je jazyk závislý na konkrétním procesoru a zapsaný program je obtížně přenositelný na jinou platformu.
3.1.5.2
Návrh algoritmu
Algoritmus je jednoduchý, po startu procesoru se spustí čekací smyčka trvající jednu minutu, která slouží k zahřívání senzoru na pracovní teplotu. Po doběhnutí odpočtu se odečte ze vstupní brány napětí v digitální podobě a uloží se jako referenční hodnota, tzv. hodnota nula. Dále se ve smyčce odečítá napětí a testuje se, zda se zvyšuje či nikoliv. Pokud se zvyšuje, algoritmus vyčká na nejvyšší hodnotu, tu poté převede na hodnotu v promilích a zobrazí jako výslednou. Nakonec proběhne ještě další zpožďovací smyčka sloužící k vyprchání etanolu z prostoru čidla a návratu senzoru do původního stavu. Poté se algoritmus vrátí na místo za odpočítávanou minutou na začátku. Schéma algoritmu je patrné z obrázku 3.7, celý kód programu je přiložen na konci dokumentu.
3.1.5.3
Kalibrace čidla
Kalibrace čidla byla provedena obdobným způsobem jako při kalibraci Českým metrologickým institutem, ovšem rozdíl byl v tom, že v této práci nemohlo být disponováno certifikovaným roztokem o určené koncentraci etanolu. Bylo tedy u několika testovacích osob určeno orientačním výpočtem množství alkoholických nápojů, které musí vypít, aby bylo dosaženo požadovaných úrovní 0,5 a 1 promile. Na obrázku 3.8 je originální charakteristika senzoru vydána výrobcem. Vyskytuje se zde poměr RS ku R0 , což je poměr vnitřního odporu senzoru ku jeho hodnotě při koncentraci 300ppm. Konkrétní hodnoty odporů nejsou k dispozici, jde jen o naznačení průběhu. Analogicky je na obrázku 3.9 rteristika překreslena jako závistlost koncentrace etanolu ve vzduchu na poměru naměřeného napětí na senzoru Url ku Uref , což je napětí odečtené ze senzoru při koncentraci 300ppm. Průběh nepokračuje nad hranici 1000ppm, jelikož tato hodnota odpovídá zhruba 5 promilím etanolu v krvi a není potřeba se tedy těmito čísly zabývat. Charakteristika má sice exponenciální průběh, ale exponent je relativně nízký a proto je v případě této práce snaha o jeji linearizaci. Převodní funkce je tedy zvolena ve tvaru y = kx. Poté bylo při foukání osob odečítáno napětí na senzoru a dle těchto naměřených hodnot určen koeficient k převodu mezi naměřeným napětím a zobrazovanou hodnotou v promilích.
3.1. NÁVRH ZAPOJENÍ
15
Obrázek 3.7: Vývojový diagram algoritmu
16
KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ
Obrázek 3.8: Charakteristika senzoru TGS822, zdroj [4]
Obrázek 3.9: Překreslená charakteristika senzoru při jiném rozložení os. Uref je napětí naměřené na senzoru při koncentraci 300ppm.
Kapitola 4
Realizace 4.1
Návrh desky plošných spojů
Pro kreslení schématu byl vybrán program OrCAD, který nyní vyvíjí společnost Cadence Design Systems, Inc. Produkty OrCAD patří k velmi rozšířeným návrhovým systémům v elektronice. Díky svým vlastnostem a uživatelsky příjemnému prostředí se staly standardem ve své oblasti. Neslouží jen k nakreslení schématu a následnému návrhu desky plošného spoje, k dispozici je i analogově číslicová simulace, různé druhy autorouterů, zpracování postprocesů, propojení s firemní databází a mnoho dalšího [13].
4.1.1
Kreslení schématu
Jako první část OrCADu byla využita část nazvaná OrCAD Capture, což je kompletní sestava nástrojů pro návrh elektronického schématu. Capture má rozsáhlou databázi symbolů a schematických značek elektronických součástek umístěnou v knihovnách. Obsahuje více než 20 000 záznamů a v případě, že mezi nimi není požadovaná značka, je zde samozřejmě možnost vytvářet vlastní. Vytváření nových značek je jednoduché a intuitivní. Tato funkce byla využita například u senzoru a sedmisegmentových displejů. Po umístění všech symbolů na pracovní plochu je třeba propojit potřebné vývody vodiči. V tomto ohledu je OrCAD výborným nástrojem, nedochází k rozhození vodičů při posunu součástek, automatické generování spojnic je na vysoké úrovni. Důležitou součástí návrhového procesu je také nastavení pouzder jednotlivým součástkám, to je podstatné při následném automatickém generování tzv. netlistu. To je soubor, který umožňuje komunikaci části Capture s ostatními.
17
18
KAPITOLA 4. REALIZACE
4.1.2
Kreslení spojů
OrCAD Layout je komplet nástrojů pro profesionální návrh desek plošných spojů. Disponuje velkým množstvím knihoven pouzder součástek, přičemž podporuje i technologie umisťování součástek SMD a BGA1 . Na začátku Layout zpracuje vstupní soubor - netlist, vytvořený systémem Capture. Výhodou tohoto řešení je, že pokud kdykoliv v návrhu přejdeme zpět do programu Capture, provedeme změny a netlist aktualizujeme, projeví se změny okamžitě i v Layoutu. Komunikace mezi programy samozřejmě běží i v opačném směru. Tzv. zpětná anotace je přenesení změn v desce plošného spoje zpět do schématu. Zpravidla se jedná o prohazování pinů, hradel a součástek stejného typu, případně o přečíslování součástek. Zároveň jsou do schématu přeneseny veškeré údaje o souřadnicích, umístění, pouzdrech součástek a vlastnostech uzlů. Pokud jsou u všech použitých součástek načtených z netlistu nastavená správná pouzdra, která Layout nalezne ve svých knihovnách, vykreslí se všechny symboly na pracovní plochu s naznačenými plánovanými spojeními mezi jednotlivými vývody pouzder. Uživatel má poté několik možností, jak součásti rozmístit a spojení realizovat za pomocí cest. Základní možnost je prosté manuální rozmísťování a spojování pomocí myši, dále režim vedení spojů s posouváním. Program v tomto módu sám posouvá právě pokládaný spoj a již existující spoje tak, aby splňovaly podmínky izolačních vzdáleností. Poslední možností je tzv. autorouting, což je režim automatického pokládání spojů. V této práci bylo použito pouze manuální vedení spojů, jelikož navržená deska nebyla natolik složitá, aby se vyplatilo využívat služeb autoroutingu, ale při komplikovanějších návrzích je to jistě užitečný nástroj. Nebylo také nutné navrhovat desku oboustrannou, která je při složitějších schématech nutná. Podařilo se téměř všechny spoje realizovat v jedné vrstvě, pouze v několika případech bylo nezbytné využít možnosti drátové propojky. Výsledek je vyobrazen na obrázcích desky při pohledu ze strany součástek 4.1 a při pohledu ze strany spojů 4.2. Nevyužitá plocha v levém horním rohu při pohledu ze strany součástek je vyhrazena pro prostor, kde bude uložena 9V baterie, další volná místa jsou vyhrazena pro případné vrty sloužící k přichycení ke krabičce, ve které bude zařízení umístěno.
4.2
Tvorba desky plošných spojů
U konstrukce desky plošných spojů byly dvě možnosti — zadat výrobu odborné firmě nebo zvolit vlastnoruční konstrukci. Z důvodu, že deska byla navržena pouze jako jednostranná, bylo nakonec rozhod1 Technologie,
kdy se vývody součástek pájí přímo na povrch plošného spoje
4.2. TVORBA DESKY PLOŠNÝCH SPOJŮ
Obrázek 4.1: Deska plošných spojů při pohledu zeshora
Obrázek 4.2: Deska plošných spojů při pohledu zdola
19
20
KAPITOLA 4. REALIZACE
nuto vyrábět desku vlastnoručně. Výhodou tohoto rozhodnutí bylo také získání důležitých zkušeností s výrobou.
4.2.1
Nanesení schématu na desku
Jako první byla metoda pro nanesení schématu na desku byla zvolena metoda nažehlení toneru [7]. Spočívá v následujících krocích. Nakreslený návrh desky plošných spojů se vytiskne ze strany spojů na barevný lepící papír, který lze pořídit v běžném papírnictví, a to na jeho lepivou stranu, jejíž povrch je obdobný jako na poštovních známkách. Pokud se tedy nedostane do styku s vodou, nijak nelepí. Vytištěný motiv se přiloží na očištěnou cuprexitovou destičku a za pomoci žehličky se přežehlí na měděnou vrstvu. Po cca dvou minutách nažehlování se destička vloží do studené vody a zhruba po dalších pěti minutách se nažehlený papír samovolně oddělí a na destičce zůstane pouze toner ve tvaru vytištěného motivu. Tato metoda si vyžadála cca sedm pokusů, ale nebylo dosaženo požadovaného výsledku, jak je patrno z obrázku 4.3. I proto bylo rozhodnuto pro změnu výrobního postupu, a to k metodě překreslení schématu ručně. Postup je jednoduchý, vytištěný zrcadlově obrácený motiv se přichytí k destičce z cuprexitu. V místech, kde jsou naznačeny otvory pro vývody součástek, se důlčíkem prorazí dírky skrz papír do měděné vrstvičky. Papír se odstraní a po vyvrtání se vzniklé otvory speciálním fixem obtáhnou a pospojují podle předlohy.
4.2.2
Leptání desky
K leptání desky byl zvolen roztok skládající se z kyseliny chlorovodíkové(HCl), peroxidu vodíku(H2 O2 ) a vody. Z počátku byl určen poměr mezi jednotlivými složkami 1:1:1. Při prvním pokusu leptat v tomto roztoku byla reakce velmi rychlá, měď se odstranila za několik vteřin a rozrušil se silně i zbytek desky, který měl zůstat neporušen, viz 4.4. Poté již bylo složení leptací lázně zvoleno jinou metodou, smíchána byla pouze kyselina s vodou, do roztoku byla vložena deska a postupně byl přiléván peroxid a to do doby, než se začaly objevovat bubliny, čímž bylo dosaženou ideálního poměru. Výsledný poměr tedy vycházel přibližně 7:3:1, kde bylo sedm dílů vody, tři kyseliny a jeden dílec peroxidu. Výsledný výrobek je vyobrazen na fotografii 4.5.
4.2. TVORBA DESKY PLOŠNÝCH SPOJŮ
Obrázek 4.3: Nekvalitní nažehlení toneru na desku
Obrázek 4.4: Vyleptaná deska víc než bylo potřeba
21
22
KAPITOLA 4. REALIZACE
Obrázek 4.5: Deska po zapájení všech součástek
Kapitola 5
Testování Při testování byly zahrnuty vypočítané teoretické hodnoty promile v krvi podle orientačního vzorce uvedeného v kapitole 2. Byl vypočten obsah etanolu v gramech v požitém nápoji, přičemž byl znám celkový objem a procento etanolu, které nápoj obsahoval. Tento vypočítaný obsah byl dělen tělesnou hmotností testované osoby v kilogramech násobenou koeficientem1 . Měřené osoby byly tři, osoba A byl muž, tělesná váha 74kg, osoba B také muž, tělesná váha 59kg a osoba C byla žena, tělesná hmotnost 61kg. Měření bylo prováděno vždy po pauze vždy cca 15 – 20 minut po pozření velkého panáku nápoje o obsahu alkoholu 40%. Měření končí u hranice 1,6 promile, jelikož testované osoby již nebyly ochotné pokračovat do vyšších hodnot. Odhadem je, že u vyšších měřených hodnot se bude nepřesnost zvyšovat, ovšem v praxi jsou hodnoty nad 2 promile málokdy využívány a jsou brány spíše jako velmi orientační. Zároveň při testování bylo provedeno i srovnávací měření s jiným přístrojem. K jeho uskutečnění byl použit komerční, volně prodávaný alkohol tester AL 2500 Black společnosti Sentech Korea Inc. Měří s přesností na desetinu promile. V tabulce 5.1 je uvedena specifikace přístroje.
1V
případě, že testovaná osoba je muž, odpovídá koeficient hodnotě 0,68, v případě ženy 0,59.
23
24
KAPITOLA 5. TESTOVÁNÍ Použitý senzor
Advanced Semi-conductor Oxide Senzor
Čas přípravy k testu
20 sec.
Délka testu
4 sec.
Doba regenerace
15 sec.
Baterie
2 x 1,5V AA alkalická
Životnost baterie
200 testů
Rozsah měření
0,0 – 4,0 promile
Provozní teplota
+10 – +400C
Přesnost
+/- 15%
Kalibrace
doporučuje se při běžném používání po 6 měsících
Životnost senzoru
cca 2000 měření
Tabulka 5.1: Specifikace testeru AL 2500
OSOBA A
Naměřená hodnota [%]
Teoretická hodnota [%]
dle AL2500
dle vyrobeného testeru
0
0
0
0,3
0*
0,2
0,6
0,6
0,5
1
0,9
1,1
1,3
1,3
1,5
Tabulka 5.2: Srovnávací test, osoba A, * přístroj vůbec nezaznamenal vdech
OSOBA B
Naměřená hodnota [%]
Teoretická hodnota [%]
dle AL2500
dle vyrobeného testeru
0
0
0
0,3
0*
0,2
0,5
0,4
0,4
0,8
0,7
0,9
1,1
0,9
1,2
1,5
1,4
1,4
Tabulka 5.3: Srovnávací test, osoba B, * přístroj vůbec nezaznamenal vdech
25
OSOBA C
Naměřená hodnota [%]
Teoretická hodnota [%]
dle AL2500
dle vyrobeného testeru
0
0
0
0,5
0,4
0,3
1
1
1,2
1,3
1,2
1,4
Tabulka 5.4: Srovnávací test, osoba C
Obrázek 5.1: Graf pro srovnání naměřených výsledků, osoba A
26
KAPITOLA 5. TESTOVÁNÍ
Obrázek 5.2: Graf pro srovnání naměřených výsledků, osoba B
Obrázek 5.3: Graf pro srovnání naměřených výsledků, osoba C
Kapitola 6
Závěr 6.1
Rekapitulace
Výsledkem práce je plně funkční, přenosný přístroj pro měření koncentrace etanolu v krvi. Úspěšně se podařil návrh schématu a přes nemalé komplikace se vydařila i tvorba desky. Programování v jazyce symbolických instrukcí nepředstavovalo žádný větší problém, zato kalibrace zařízení byl těžký úkol, jelikož velice záleží také na množství vdechnutého vzduchu. Při stejném obsahu etanolu v krvi lze naměřit při více pokusech různé hodnoty, proto jsou všechny naměřené hodnoty zprůměrovány. Z naměřených hodnot lze usoudit, že přesnost přístroje se pohybuje okolo +/- 15%, což je standard v kategorii orientačních dechových analyzátorů. Pro přesnější výsledky je již potřeba využít senzoru na elektrochemické bázi. Přesto je zde ještě velký prostor k vylepšení a posunutí projektu dále.
6.2
Možnosti zlepšení produktu
Zavedení další napěťové reference – jelikož senzor TGS822 může být napájen až maximálně 24V, bylo by jistě nasnadě zavést kromě 5V ještě druhou stabilizovanou napěťovou úroveň, která by sloužila k napájení senzoru. Nyní je totiž nedostatek testeru, že pokud nebude baterie již plně nabitá, výsledky se budou mírně zkreslovat. Zavedení 8V reference při použití 9V baterie by tento problém vyřešilo. Ideální by bylo napájet senzor 24 volty, ale poté vyvstává problém s výběrem baterie a s tím spojenou mobilitou přístroje.
27
28
KAPITOLA 6. ZÁVĚR
Použití rezistorových polí u displejů – vhodným vylepšením je také použití rezistorového pole namísto jednoho společného rezistoru pro všechny segmenty displeje. V případě společného rezistoru totiž pokud svítí na displeji např. jednička, což odpovídá dvou aktivním segmentům, je procházející proud jednotlivými segmenty větší než v případě například osmičky, kdy jich je aktivních sedm. To vede k rozdílné svítivosti při různých zobrazovaných číslicích. Použití odporového pole, kdy každé katodě segmentu náleží jeden rezistor, zapříčiní stejný svit při všech zobrazovaných číslicích. Použití sofistikovanějšího mikrokontroléru – především z úspory místa na desce by bylo vhodné použít mikroprocesor, který by měl zahrnutých víc funkcí přímo v sobě, jde hlavně od analogově digitální převodník a také výstup na sedmisegmentový displej. Tím by se ušetřilo použití dvou integrovaných obvodů a deska by se významně zjednodušila. Propracovanější kalibrace – dalším zlepšením by byla také detailněji zpracovaná kalibrace, řešením by mohlo být rozdělení charakteristiky na více úseků a ke každému přiřadit jiný koeficient převodu a nebo se pokusit o implementaci exponenciální funkce v jazyce symbolických instrukcí, pomocí níž převádět napětí na koncentraci. Konstrukce zahrnují náústek – nepřesnosti do měření také vnáší různý styl a síla vdechovaného vzduchu, při použití náústku se tyto nepřesnosti zcela neeliminují, ale alespoň omezí.
Literatura [1] Agilent Technologies, Inc.
Katalogový list HDSP-A101, 2005.
Dostupné z:
datasheetcatalog.org/datasheet2/4/087420zwj7tqipw8lh2k96qq5xcy.pdf>. stav k 11. 5. 2010. [2] Atmel corporation. Katalogový list AT89C2051, 2000. Dostupné z:
. stav k 11. 5. 2010. [3] DELGADO, R. D. Tin Oxide Gas Sensors: An Electrochemical Approach, 2002. Dostupné z: . stav k 7. 5. 2010. [4] FIGARO USA, Inc.
Katalogový list senzoru TGS822, 2002.
Dostupné z:
figarosensor.com/products/822pdf.pdf>. stav k 11. 5. 2010. [5] FIGARO USA, Inc. Katalogový list senzorů řady TGS, 2003. Dostupné z: . stav k 11. 5. 2010. [6] JECHOVá, I. Digitální alkohol testery [online]. 2010. [cit. 10. 5. 2010]. Dostupné z: . [7] MARUšáK, M. Výroba DPS nažehlením toneru [online]. 2005. [cit. 15. 5. 2010]. Dostupné z: . [8] National Semiconductor corporation. Katalogový list ADC0804, 1994. Dostupné z: . stav k 11. 5. 2010. [9] Přispěvatelé Wikipedie. Zapojení s operačním zesilovačem [online]. 2010. [cit. 1. 5. 2010]. Dostupné z: . [10] SIXTUS, H. Farmakologie, 2. díl. Praha : Karolinum, 1996. [11] Texas Instruments. Katalogový list 74LS247, 1998. Dostupné z: . stav k 11. 5. 2010.
29
30
LITERATURA
[12] Texas Instruments. Katalogový list TLC272, 2002. Dostupné z: . stav k 11. 5. 2010. [13] ZáHLAVA, V. OrCAD 10. Praha : Grada Publishing, a.s., 1st edition, 2004. ISBN 80-247-0904-X.
Příloha A
Seznam použitých zkratek ppm Parts per million – částic na jeden milion TTL Transistor-transistor logic – tranzistorově-tranzistorová logika BCD Binary Coded Decimal – dvojkově reprezentované dekadické číslo IMS Ion mobility spectrometry – iontová mobilní spektrometrie SMD Surface mount device – součást pájená na povrch BGA Ball grid array – pouzdro s kulovými vývody
31
32
PŘÍLOHA A. SEZNAM POUŽITÝCH ZKRATEK
Příloha B
Seznam použitých součástek
33
34
PŘÍLOHA B. SEZNAM POUŽITÝCH SOUČÁSTEK
Reference
Součástka/hodnota
R1,R2,R3,R4,R5
680Ω
R6,R7,R8,R9,R10,R11
1k
R12
5k2
R13,R14
10k
R15
47k
C1,C2,C3,C4
100n
C5
47p
C6
2µ2
C7,C8
22p
C9
470µ/16V
C10
10µ
D1
1N4007
D2
LED 3mm red
D3
LED 3mm green
D4,D5
HDSP-A101
IO1
TLC272
IO2
ADC0804
IO3
AT89C2051
IO4
74LS247
J1
vstupní svorka
Q1,Q2
BC639
T1
TGS822
U1
LM7805
Y1
11,0592Mhz
Tabulka B.1: Seznam použitých součástek
Příloha C
Zdrojový kód programu $mod51
;DEFINICE PROMENYCH
vstup
equ p1
segmentovky
equ p3
aktivace_segmentovky1
equ 70
aktivace_segmentovky2
equ 71
odpocitavani
equ 72
odpocet_reg1
equ 73
hodnota_nula
equ 74
hodnota_min
equ 75
hodnota_a
equ 76
koeficient
equ 77
cas_odpoctu
equ 78
zpozdeni
equ 79
BCD_cisla
equ 90
BCD_pointer
equ r0
org 0 jmp start
35
36
PŘÍLOHA C. ZDROJOVÝ KÓD PROGRAMU
start:
;inicializace - naplneni promennych
mov koeficient,#7 mov cas_odpoctu,#59 mov zpozdeni,#15 mov aktivace_segmentovky1,#00010000b mov aktivace_segmentovky2,#00100000b
call odpocet
;naplneni referencni hodnoty
uloz_ref: mov hodnota_min,#0 orl aktivace_segmentovky1,#11000000b orl aktivace_segmentovky2,#11000000b mov hodnota_nula,vstup
test_uvod: mov a,vstup clr c subb a,hodnota_nula jz preskoc_mereni jc preskoc_mereni mov b,koeficient div ab mov hodnota_a,a call na_BCD call obnoveni_displeju mov a, hodnota_a subb a, hodnota_min
37 jc zobraz mov a, hodnota_a mov hodnota_min,a jmp test_uvod
preskoc_mereni: call nuly call na_BCD call obnoveni_displeju jmp test_uvod
zobraz: anl aktivace_segmentovky1,#01111111b anl aktivace_segmentovky2,#01111111b mov a,hodnota_min call na_BCD
mov odpocitavani,zpozdeni loop: mov odpocet_reg1,#100 loop2: call obnoveni_displeju djnz odpocet_reg1,loop2 djnz odpocitavani,loop call nuly jmp uloz_ref
nuly: mov 90,#0 mov 91,#0 mov a,#0 ret
;Podprogram zajistujici pocatecni odpocet
38
PŘÍLOHA C. ZDROJOVÝ KÓD PROGRAMU
odpocet: mov odpocitavani,cas_odpoctu odecteni: mov a,odpocitavani cjne a,#9,odecteni_jine10 mov 91,#0 odecteni_jine10: call na_BCD mov odpocet_reg1,#100 skok: call obnoveni_displeju djnz odpocet_reg1,skok djnz odpocitavani,odecteni ret
;Podprogram ktery cislo v akumulatoru rozdeli a ulozi na misto ;v pameti, kam ukazuje BCD_pointer
na_BCD: mov BCD_pointer,#BCD_cisla BCD: mov b,#10 div ab mov @BCD_pointer,b inc BCD_pointer jnz BCD ret
;Podprogram pro zobrazeni cisel v pameti na displeji
obnoveni_displeju: mov BCD_pointer,#BCD_cisla mov a,aktivace_segmentovky2
39 orl a,@BCD_pointer mov segmentovky,a call delay inc BCD_pointer mov a,aktivace_segmentovky1 orl a,@BCD_pointer mov segmentovky,a call delay ret
;Zpozdovaci podprogram 0,005s
delay: mov r2,#235 d2:
mov r1,#9
d1:
djnz R1,d1 djnz R2,d2 ret
end
40
PŘÍLOHA C. ZDROJOVÝ KÓD PROGRAMU
Příloha D
Obsah přiloženého CD Přiložené CD obsahuje dva následující adresáře: Text – obsahuje zdrojový kód této práce ve formátu tex, jeho nezbytné přílohy, veškeré použité obrázky a dále vyexportovaný text do pdf Software – zahrnuje zdrojový kód programu v jazyce symbolických instrukcí ve formátu asm a tři programy sloužící k jeho nahrání do mikrokontroléru • Assembler slouží k přeložení programu do formátu hex • Hex2bin převádí přeložený soubor do formátu bin potřebného k nahrání do mikroprocesoru • ATprog je utilita pro přenos bin souboru do mikrokontroléru přes sériový port
41