Přípravek pro výuku základů řízení zobrazovacích prvků

Navržené zařízení bylo vyvinuto v rámci semestrální práce do předmětu Mikroprocesorová technika na VOŠ v Kutné Hoře.

Autoři: Martin Pejchal, Jan Matouš, J. Krčmář, D. Krejčík, J. Kohoutek

Zadání semestrální práce:
Postavte přípravek pro výuku základů řízení zobrazovacích prvků jednočipovým mikropočítačem z rodiny Atmel AT89C... . Hardware zařízení navrhněte tak, aby bylo možné realizovat různé typy řízení zobrazovačů (statické, dynamické, řadičem displeje, ...). Dekódování čísla bude možné realizovat programově i obvodově. Jako zobrazovací prvky použijte všechny běžné typy. Přípravek řešte jako základní desku s mikrořadičem, ke které se budou přes jeden společný konektor připojovat samostatné moduly s jednotlivými zobrazovacími prvky. Pro každy typ zobrazovacího prvku a každý způsob řízení napište samostatný program. Navržené zařízení realizujte na desce plošných spojů.

Navržené řešení
Celé zařízení se skládá ze šesti částí - základní desky a pěti desek s různými zobrazovači. Jednotlivé desky se od sebe liší typem zobrazovače, příp. typem řízení zobrazovače. Na základní desce je umístěn mikroprocesor, který je srdcem zařízení. Desky se zobrazovači jsou vybaveny řadovými konektory (s kolíky), pomocí kterých se připojují do základní desky (konektor-dutinky). Přes ně vedou signálové cesty a napájení. Po zapojení desky a stisknutí tlačítka reset mikroprocesor detekuje typ desky a vybere pro ni danou část programu. Na displeji pak začne běžet posloupnost znaků předem určená programátorem. Pro lepší představu mechanického uspořádání uvádíme následující - základní deska má 4 konektory umístěné v rozích. Na tuto základní desku se shora připevňují desky se zobrazovači, spojení je provedeno pomocí 4 konektorů, jež má každá z 5 desek a jež jsou protikusy ke konektorům na základní desce. Každá z 5 desek je tvarována tak, aby byl lehký přístup k tlačítku reset na základní desce. V každém ze 4 konektorů na základní desce je na 2 pinech vyvedeno napájecí napětí, čímž jsme si usnadnili návrh DPS desek se zobrazovači (nebylo tak třeba tahat spoje s napájením na druhý konec desek, pokud k tomu návrh desek směřoval). Jak je vidět, nesplnili jsme doslovně zadání práce, ve kterém se hovoří o jednom společném konektoru. Místo jednoho konektoru jsme použili čtyři jen z čistě praktického důvodu - abychom dosáhli lepšího mechanického spojení desek zobrazovačů se základní deskou. Nic ale nebrání tomu použít jiný způsob propojení desek, např. přes klasické DIL patice + ploché kabely, nebo přes jiné robustnější konektory. Pak lze skutečně vystačit s jedním konektorem.


Základní deska
Zapojení základní (řídící) desky je velmi jednoduché, ukazuje jej obr.1. Deska obsahuje 40-pinový mikroprocesor AT89C52, který je vsazen do patice. K němu je připojen obvod krystalu ( X1=12 MHz a 2 x C=33pF ) a obvod resetu ( tlačítko, kondenzátor C=10uF , odpor 8k2 ) , kondenzátor C=1000uF , blokovací kondenzátor C = 150nF a svorkovnice (jumper) pro připojení napájecího napětí. Dále je deska vybavena čtyřmi 10-pinovými konektory, které zajištují propojení s jednotlivými deskami displejů (zobrazovačů).

Schéma zapojení základní (řídící) desky
Obr. 1  Schéma zapojení základní (řídící) desky


Seznam použitých součástek - základní deska
(značení součástek dle katalogu GM Electronic)

Položka

Množství

Referenční označení

Typ

1

1

C1

E 1000uF/10V

2

1

C2

CK 150nF/63V

3

1

C3

E 10uF/25V

4

2

C4, C5

CKS 33pF/50V

5

1

R1

8k2

6

1

X1

krystal 12 MHz

7

1

IO1

AT89C52

8

1

SW1

tlačítko P-B1720A

9

4

CON1-CON4

konektor BTK10G (10-pinový řadový, dutinky)

10

1

Jumper

svorkovnice ARK 550/2 (napájení)

11

1

-

patice DIL 40 PZ




Deska s bargrafy
Řízení probíhá staticky. Vnitřní zapojení bargrafů ukazuje obr. 2b. Všechny anody diod bargrafů jsou spojeny a je na ně přivedeno + 5 V. Jednotlivé katody jsou přez odpor připojeny na jednotlivé bity bran P0 ( 8 bitů ) a P2 ( 2 bity ) pro první bargraf. Pro druhý jsou to brány P1 ( 8 bitů ) a P3 ( 2 bity ). Kompletní schéma zapojení je na obr. 3.

Provedení bargrafu Vnitřní zapojení bargrafu
Obr. 2a  Provedení bargrafu Obr. 2b  Vnitřní zapojení bargrafu


Výpočet hodnot součástek
Bargraf tvoří skupina do sloupce uspořádaných LED diod v našem případě červené barvy. Červená LED svítí od UD =1,6V. Proud protékající diodou ve statickém režimu jsme volili 16 mA. Velikost napájecího napětí Ucc je 5V.

Jako předřadný rezistor k LED diodě jsme zvolili rezistor s nejbližší hodnotou v běžně vyráběné řadě, tedy hodnotou 220R.

Rozbor funkce dané části programu
Program obsahuje data, která se postupně posílají na v/v brány. Na začátku se spustí časovač a vyčkává se na přerušení. Po přerušení se postupně pošlou jednotlivá data na brány podle požadované funkce. Pro program jsem nemohl použít rotace jak jsem plánoval, protože rotace jde pouze na 8 (9) bitech a použité bargrafy obsahují 10 diod. I přesto je velikost programu rozumná.

Schéma zapojení desky s bargrafy
Obr. 3  Schéma zapojení desky s bargrafy
Seznam použitých součástek - deska s bargrafy
(značení součástek dle katalogu GM Electronic)

Položka

Množství

Referenční označení

Typ

1

20

R1-R20

220R

2

2

BAR1, BAR2

L-BARGRAF R (červené LED)

3

4

CON1-CON4

konektor ASS01038Z (10-pinový řadový, kolíky)

4

2

-

patice SOKL20 (pro bargrafy)





Deska se 7-segmentovým dvoumístným displejem
Řízení displeje je u této úlohy statické. Vybraný dvoumístný 7-segmentový displej se společnou katodou je pro daný účel (jak je vidět ze schématu na obr.5) krajně nevhodný. Jen pro zobrazení dvou míst sedmisegmentového displeje jsme potřebovali: 16 x tranzistor BC328, 16 x odpor 10k a 16 x odpor 220R. Mnohem vhodnější by bylo použít displej se společnou anodou, odpadli pak všechny tranzistory a polovina odporů (my jsme museli vycházet ze součástek, které jsme měli k dispozici).
Báze tranzistorů jsou připojeny přes odpor 10k na jednotlivé bity bran P1 a P2, odkud jsou vybrané tranzistory spínány do nuly. Emitory jsou připojeny na jednotlivé přívody segmentů u displeje. Tento způsob řízení je spíše ukázkou jak by to nemělo v praxi vypadat.

Displej HDSP-5623
Obr. 4a  Provedení displeje HDSP-5623

Podrobné informace o HDSP-5623 najdete zde.  Formát PDF
Informace o dalších typech sedmisegmentových displejů fy Agilent najdete zde.
Zapojení vnějších vývodů displeje s vazbou na jednotlivé segmenty
Obr. 4b  Zapojení vnějších vývodů displeje s vazbou na jednotlivé segmenty

Výpočet hodnot součástek
Pro výpočet předřadného rezistoru k LED diodě displeje musíme započítat též úbytek napětí UT na tranzistoru. Úbytek napětí UD na zelené LED diodě je 2V. Proud ID volíme opět 16mA.


Odpor nám sice vyšel 125R, ale na desku jsme nakonec vletovali 220R rezistory, které se ukázali být postačující. Bázový rezistor jsme po otestování tranzistoru zvolili 10k.

Schéma zapojení desky se 7-segmentovým dvoumístným displejem
Obr. 5  Schéma zapojení desky se 7-segmentovým dvoumístným displejem


Seznam použitých součástek - deska se 7-segmentovým dvoumístným displejem
(značení součástek dle katalogu GM Electronic)

Položka

Množství

Referenční označení

Typ

1

16

R1-R16

220R

2

16

R17-R32

10k

3

16

T1-T16

BC328

4

1

DISP1

displej HDSP-5623 (2x zelený, SK)

5

4

CON1-CON4

konektor ASS01038Z (10-pinový řadový, kolíky)





Deska s maticovými displeji
Vybrané maticové displeje 5 x 7 jsou zapojeny tak, že na sloupce se spíná kladné napětí (PNP tranzistory) a řádky jsou spínány k nulovému potenciálu (NPN tranzistory v poli tranzistorů). Schéma vnitřního zapojení maticového displeje je vyznačeno na obr. 6b.

maticovka 5x7, společná anoda, červené LED

Maticovka 5x7 typ TA07-11HWA
Obr. 6a  Provedení maticovky TA07-11HWA

Podrobné informace o maticovce TA07-11HWA najdete zde.  Formát PDF
Informace o dalších typech maticových displejů fy Kingbright najdete zde.

Obr. 6b   Vnitřní zapojení maticovky
(R=řádky, C=sloupce)


Ve schématu zapojení jsou báze tranzistorů PNP připojeny přez odpor 10k na bity brány P0 ( P0.0 až P0.4 ). Z emitorů tranzistorů PNP vedou vývody přes odpor 33R na jednotlivé dvojice stejnolehlých pinů maticových displejů popsaných jako sloupce.
Pole tranzistorů ULN2003A svými kolektory spojují jednotlivé piny popsané jako řádky s nulovým potenciálem, a to když na báze, které jsou propojeny na jednotlivé bity bran P1 a P2 přivedeme kladný potenciál.
Vzhledem k tomu, že zapojení vnějších vývodů maticového displeje je dosti nesystematické, musel jsem přemýšlet jak vést spoje na DPS bez nutnosti použít dvouvrstvou desku. Výsledkem bylo použití drátových propojek.

Zapojení vývodů tranzistorového pole ULN2003A
Obr. 7  Zapojení vývodů tranzistorového pole ULN2003A
B = báze
C = kolektor
E = společný emitor
COM = společná katoda zhášecích diod

Výpočet hodnot součástek
Jelikož řízení zobrazovače probíhá dynamicky, musíme počítat s proudem ID protékajícím diodou 4x větším než jako by tomu bylo u režimu statického. Na jednom displeji může svítit najednou max. 7 diod (tzn. 1 sloupec) a protože jsou na desce 2 displeje vypočítá se proud ID následovně (proud LED volíme 16mA):

Dále víme, že UD je rovno 2V, můžeme tedy spočítat odpor.

Navzdory výpočtu jsme na desku dosadili rezistory o odporu 33R, poněvadž v naší zásobě součástek jsme menší neměli. Svítivost je sice nižší, ale jenotlivé výsledné znaky jsou stále dobře čitelné.

Rozbor funkce dané části programu
Program jsem po dlouhých úpravách vyladil a podařilo se mi jej udělat relativně jednoduchý vzhledem k řešenému problému. Nejvíce místa zabírá tabulka pro zobrazení jednotlivých písmen abecedy. Program začíná určením pomocných proměnných a spuštěním časovače. Po vyvolání přerušení od časovače se začne rotovat s nulou na bráně P0 ( spínání PNP tranzistorů ) vždy 4x, poté rotace začíná od znova. Při vyvolání přerušení se rotuje vždy jen jednou. Dochází také k nahrání dat pro spínání tranzistorů NPN (jednotlivé řádky). K nahrání dat dochází vždy po určitém časové intervalu vždy znova na stejné místo. Nahrává se postupně 10 bytů (oba maticové displeje mají dohromady 10 sloupců). Každý byte obsahuje 7 užitečných bitů ( 7 řádků ). Podle polohy rotace se posílají na brány P2 a P1 data pro spínání tranzistorů NPN. Program postupně zobrazuje všechna písmena abecedy po dvojicích.

Schéma zapojení desky s maticovými displeji
Obr. 8  Schéma zapojení desky s maticovými displeji
Seznam použitých součástek - deska s maticovými displeji
(značení součástek dle katalogu GM Electronic)

Položka

Množství

Referenční označení

Typ

1

5

R1-R5

10k

2

5

R6-R10

33R

3

5

T1-T5

BC328

4

2

IO1,IO2

tranzistorové pole ULN2003A

5

2

DISP1,DISP2

maticový displej TA07-11HWA

6

4

CON1-CON4

konektor ASS01038Z (10-pinový řadový, kolíky)





Deska s 16-segmentovým dvoumístným displejem
Zvolené řízení je dynamické. Pomocí dvou tranzistorů PNP spínáme střídavě jeden zobrazovač a poté druhý. Pole tranzistorů jsou zapojena tak, že jsou jejich výstupy připojeny na odpory 33R. Stejnolehlé vývody segmentů obou zobrazovačů jsou spojeny a přivedeny na tyto odpory. Pricip připojení procesoru k polím tranzistorů je stejný jako u předchozí úlohy. Abychom mohli udělat rozumný jednovrstvý plošný spoj, museli jsme použít větší množství drátových propojek.

16-segmentovka červená, společná anoda

16-segmentový displej

Obr. 9a  Provedení 16-segmentového displeje

O displeji HD-A825RD se nám nepodařilo najít žádné bližší informace nad rámec údajů uvedených v katalogu GM Electronic (SA červený; 700nm; 1,1mcd; 2,1V; 15mA).

Kliknutím na obrázek se otevře nové okno s větším zobrazením

Obr. 9b  Rozmístění a označení segmentů
Přiřazení segmentů k vývodům
1 - A1
2 - G
3 - P
4 - F
5 - N
6 - L
7 - M
8 - E
9 - D1
10 - D2
11 - spol.anoda
12 - DP
13 - C
14 - K
15 - J
16 - B
17 - H
18 - A2

Výpočet hodnot součástek
Protože řízení zobrazovače probíhá opět dynamicky, musíme tedy počítat s proudem ID protékajícím LED diodou, který je 4x větší. Napětí UD jedné LED je u tohoto zobrazovače 2V.


Nejblíže tomuto výsledku byl z běžně vyráběné řady rezistor 33R.

Rozbor funkce dané části programu
Program obsahuje tabulku s daty pro zobrazení číslic a písmen. Postup je stejný jako u předchozích programů až do vyvolání přerušení. Program postupně zobrazuje všechny číslice a písmena abecedy na jednom displeji a se zpožděním o jeden znak na displeji druhém. Při každém vyvolání přerušení se přepnou tranzistory PNP, které aktivují vždy jen jeden displej. Poté se sepnou odpovídající pozice, aby se zobrazil žádaný znak. Tento cyklus probíhá neustále. Pozice které se mají spínat se po určitém časové inkrementu přehrají jinými, které tam přesuneme z paměti programu. Tím dojde k postupnému vystřídání všech číslic a písmen. Tento program se neustále opakuje.


Obr. 10  Schéma desky s 16-segmentovým dvoumístným displejem


Seznam použitých součástek - deska s 16-segmentovým dvoumístným displejem
(značení součástek dle katalogu GM Electronic)

Položka

Množství

Referenční označení

Typ

1

2

R1,R2

10k

2

17

R3-R19

33R

3

2

T1-T2

BC328

4

3

IO1-IO3

tranzistorové pole ULN2003A

5

2

DISP1,DISP2

16-segmentový displej HD-A825RD

6

4

CON1-CON4

konektor ASS01038Z (10-pinový řadový, kolíky)





Deska se 7-segmentovým čtyřmístným displejem a řadičem displeje
Pro řízení displeje jsme zvolili integrovaný řadič displeje fy National Semiconductor a to typ M5450. Řadič obsahuje posuvný registr, který se postupně plní sériově vysílanými bity z mikroprocesoru. Po naplnění je přepsán do registru ovládajícího jednotlivé segmenty. Řízení segmentů displeje je statické. To znamená, že pro řízení čtyř 7-segmentovek využíváme 32 výstupů M5450. Zbývající dva piny se mohou využít u dynamického řízení, kdy je možné řídit 2x tolik 7-segmentovek.

dvoumístná 7-segmentovka zelená, společná anoda
Displej HDSP 5521 Podrobné informace o HDSP 5521 najdete zde.  Formát PDF
Informace o dalších typech sedmisegmentových displejů fy Agilent najdete zde.

Rozbor funkce dané části programu
Na displeji se bude zobrazovat posloupnost znaků pohybujících se zprava doleva. Posloupnost je dána pořadím kódů v tabulce programu. Každý byte kódu se skládá ze dvou částí (viz obr. 11):

Obr. 11  Rozložení bitů v bytu kódu znaku pro jednotlivé segmenty zobrazovače

Horní čtyři bity bytu odpovídají spodní části 7-segmentovky ( segmenty 1, 2, 3 + tečka ). Zbylé bity odpovídají horní části ( segmenty 5,6,7,8 ). Do registru M5450 je posílána nejdříve dolní část všech 4 displejů a poté horní část. Pro kódy znaků jsou vyhrazeny paměťová místa 21h až 24h. Odtud se kódy přesunou do akumulátoru a pomocí rotace vyšlou na bránu P3.1. Obsah z akumulátoru se po rotaci přesune na adresu 25h až 28h, podle toho pro jaký displej byl znak určen. Po vyslání všech čtyř bitů vyššího půlbytu se odtut opět nahrají do Acc a rotací vyšlou první 4 bity na bránu P3.1. Toto řešení je trochu komplikovanější, ale umožnilo nám zjednodušit zapojení desky.

Podrobnější popis řadiče displeje M5450 najdete v návrhu Řídící jednotka krokového motoru.



Obr. 12  Schéma desky se 7-segmentovým čtyřmístným displejem a řadičem displeje


Seznam použitých součástek - deska se 7-segmentovým čtyřmístným displejem a řadičem displeje
(značení součástek dle katalogu GM Electronic)

Položka

Množství

Referenční označení

Typ

1

1

R1

trimr 12k

2

1

IO1

M5450

3

2

DISP1,DISP2

displej HDSP-5521

4

4

CON1-CON4

konektor ASS01038Z (10-pinový řadový, kolíky)



Rozbor celého programu pro ovládání všech displejů
Na začátku programu se testují vstupy mikroprocesoru P3.5, P3.6, P3.7. Po připojení desky displeje na základní desku se sejme logická kombinace bitů z těchto pinů. Ta je určena pevným zapojením jenotlivých desek (+5V /log. 1 / nebo na 0 V /log. 0 / ). Příslušné kombinace jsou uvedeny v tab.1 .

Tab. 1  Autodetekce
Typ zobrazovače P3.5 P3.6 P3.7
Bargrafy 0 0 0
16-segmentové displeje 0 0 1
7-segment. + řadič displeje 0 1 0
Maticové displeje 1 0 0
7-segmentové displeje 0 1 1

Na základě sejmuté kombinace je v programu provedeno volání podprogramu, pomocí kterého se vybere příslušný podprogram pro ovládání konkrétní desky. V těchto podprogramech se provádí nastavení proměnných pro funkci jednotlivých desek. Pro větší přehlednost jsou zde umístěny i tabulky s daty potřebnými k ovládání jednotlivých displejů. V celkové paměti programu jsou jednotlivé části umístěny dle tab. 2.

Tab. 2  Obsazení paměti programu
Typ zobrazovače Program Tabulky
Maticové displeje od 220 h od 600 h
7-segmentové displeje od 140 h od 740 h
16-segmentové displeje od 180 h od 770 h
Bargrafy od 100 h od 700 h
7-segment. + řadič displeje od 260 h od 5b0 h


V těchto jednotlivých podsekcích programu dojde k nastavení a spuštění časovače. Nastaví se také pomocný bit, který určuje o jakou desku se jedná - tab. 3. Po provedení této části je program zacyklen, program vyčkává na přerušení. Po vyvolání přerušení se provede obsluha přerušení, ve které se pomocí pomocných bitů program větví podle typu desky.

Tab. 3  Pomocný bit jednotlivých desek
Typ zobrazovače Bit
Maticové displeje 22h.1
7-segmentové displeje 22h.2
16-segmentové displeje 22h.3
Bargrafy 22h.5
7-segment. + řadič displeje 22h.4


Zhodnocení:
Tato úloha je velice obsáhlá z hlediska typů zobrazovačů. Jsou zde zastoupeny nejběžnější typy zobrazovačů včetně zapojení s řízením pomocí řadiče displeje. To je vhodné zejména tam, kde je potřeba řízení většího množství segmentů. V naší úloze jsme použili pouze statické řízení s řadičem displeje, ale dalo by se při ještě větším množství displejů použít i dynamické řízení. Zobrazení na maticových displejích je velice věrohodné a proto je řadíme mezi nejkvalitnější zobrazovací prvky (v oblasti nízkokapacitních zobrazovačů).


Program ASM  Výpis programu pro mikrokontroler AT89C52 (zobraz.asm)

Zpět na hlavní stránku