Wyświetlacze VFD od podstaw, cz.2.pdf

(474 KB) Pobierz
32691878 UNPDF
P O D Z E S P O £ Y
Wywietlacze VFD od podstaw,
czêæ 2
W drugiej czêci artyku³u
przedstawiamy konstrukcjê
przyk³adowego sterownika
wywietlacza VFD
wykonanego na
mikrokontrolerze AT89S8252.
Praktyczna realizacja uk³adu sterowania
wywietlaczem VFD 7-LT-109 firmy Futaba
Na rys. 9 przedstawiono schemat
przyk³adowej aplikacji uk³adu stero-
wania i zasilania wywietlacza VFD
firmy Futaba typu 7-LT-109GN. Uk³ad
U1 (LM5000-3) pe³ni rolê przetworni-
cy zasilaj¹cej VFD. Ze wzglêdu na
niewielkie rozmiary oraz ma³¹ liczbê
elementów zewnêtrznych, uk³ad ten
wietnie nadaje siê do tego rodzaju
aplikacji. Posiada wbudowany stopieñ
wyjciowy mocy, którego obci¹¿eniem
mo¿e byæ transformator. Mo¿na rów-
nie¿ wybraæ jedn¹ z dwóch czêstotli-
woci pracy przetwornicy, pod³¹czaj¹c
lub od³¹czaj¹c wyprowadzenie FS od
potencja³u masy. Charakterystycznym
dla LM5000 jest równie¿ bardzo sze-
roki zakres napiêæ zasilaj¹cych. Mo¿e
on byæ zasilany napiêciem o wartoci
z przedzia³u od 3,1 do 40 V, a mak-
symalna wartoæ prze³¹czanego napiê-
cia to a¿ 80 V. Zastosowana wersja
uk³adu umo¿liwia pracê przetwornicy
z czêstotliwoci¹ 300 lub 700 kHz.
W przyk³adzie aplikacji przetwornica
pracuje z napiêciem wejciowym rów-
nym 5 V. Jest ono jednoczenie wyko-
rzystywane do zasilania mikrokontro-
lera oraz driverów napiêcia wyjcio-
wego typu UDN2981. Uwaga: uk³ad
ten zasilany jest z dwóch napiêæ!
Obci¹¿eniem LM5000 jest transforma-
tor wykonany przy u¿yciu karkasu
i rdzenia pochodz¹cych z oferty firmy
Schuricht. Karkas ma numer katalogo-
wy 334180 (karkas EFD15), a rdzeñ
334160 (rdzeñ do EFD15). Celowo wy-
bra³em rdzeñ, który ³atwo jest kupiæ
i który dostêpny jest w sta³ej ofercie
sprzeda¿y. Równolegle do uzwojenia
pierwotnego transformatora do³¹czone
s¹ diody D1 (dioda Zenera 16 V) oraz
D2 (dioda szybka np. MUR120), których
celem jest ochrona stopnia wyjciowe-
go uk³adu przed przepiêciami. Pêtla
sprzê¿enia zwrotnego do³¹czona jest do
wyjcia napiêcia anodowego za diod¹
Schottky'ego D3 (1N5819). Wartoci re-
zystorów R2 i R3 wp³ywaj¹ bezpored-
nio na wartoæ napiêcia wyjciowego.
W tej aplikacji wynosi ono 22 V. Na-
piêcie to zosta³o dobrane odpowiednio
do typu u¿ytego wywietlacza.
Na karkasie nawiniêto równie¿
uzwojenie podaj¹ce napiêcie ¿arzenia.
Do rodkowego odczepu do³¹czona zo-
sta³a dioda Zenera D4 (BZX C3V9)
z kondensatorem bocznikuj¹cym C12.
Elementy te s³u¿¹ wypracowaniu na-
piêcie odciêcia. Wartoæ napiêcia ¿a-
rzenia zmierzona oscyloskopem na do-
prowadzeniach ¿arzenia wywietlacza
wynosi oko³o 5 V pp . Ma ono kszta³t
zbli¿ony do prostok¹tnego. Jego war-
toæ nie jest kontrolowana przez uk³ad
przetwornicy i nie wp³ywa na pracê
pêtli sprzê¿enia zwrotnego. W zwi¹z-
ku z powy¿szym nale¿y unikaæ zwaræ
w obwodzie ¿arzenia przy pracuj¹cym
uk³adzie zasilania VFD!
Rolê uk³adu sterowania pe³ni mik-
rokontroler AT89S8252 (U2). Pracuje
on z czêstotliwoci¹ taktowania równ¹
4 MHz. Mo¿na u¿yæ rezonatora o in-
nej czêstotliwoci, jednak trzeba siê
liczyæ z koniecznoci¹ wykonania
zmian w aplikacji steruj¹cej. Jako
uk³adów dopasowuj¹cych poziom na-
piêæ TTL do VFD u¿yto UDN2981A
z oferty firmy Allegro-Micro. Port P0
mikrokontrolera steruje prac¹ segmen-
tów (anod), natomiast port P2 u¿ywa-
ny jest do za³¹czania siatek znaków.
Chcia³bym zwróciæ uwagê na fakt, ¿e
na wyjciu uk³adu drivera U4 do³¹-
czona jest drabinka rezystorowa R4 (8
x 100 k
brak objawia siê widmowym wie-
ceniem segmentów s¹siedniego znaku.
P³ytka ewaluacyjna posiada wyprowa-
dzone z³¹cze do programowania mikro-
kontrolera w pracuj¹cym uk³adzie ( in-cir-
cuit ) przystosowane do programatora
AVT515 opisywanego w numerze 9/2003
Elektroniki Praktycznej. Mo¿na w niej
stosowaæ zarówno mikrokontroler z serii
'51, jak i kompatybilny pod wzglêdem
wyprowadzeñ z serii AVR, na przyk³ad
AT90S8515, ATMega8535 itp. Uwaga:
zmiana mikrokontrolera na AVR wyma-
ga wlutowania rezystora w miejsce ele-
mentu C7 oraz usuniêcia zwory JP1.
Program steruj¹cy napisany zosta³ w jê-
zyku C dla mikrokontrolera z rdzeniem
'51. Pos³ugiwa³em siê wersj¹ demonstra-
cyjn¹ kompilatora firmy Raisonance.
). Jest ona odpowiedzialna za
wstêpn¹ polaryzacjê siatek znaków. Jej
Program steruj¹cy
Program zaczyna siê od deklaracji
sta³ych tablic maj¹cych bezporedni
wp³yw na wygl¹d znaków oraz kolej-
noæ ich za³¹czania. Przyjrzyjmy siê
tablicom, które pokazano na list. 1 .
Patterns to deklaracja wzorców zna-
ków umieszczona w obszarze pamiêci
programu mikrokontrolera. Umieszcza j¹
tam kwalifikator code . Typ char infor-
muje kompilator o tym, ¿e pojedynczy
element tablicy ma rozmiar omiu bi-
tów. Zmienna wskazuj¹ca Tpat pokazu-
je poszczególne elementy tablicy.
W dalszej czêci programu jest ona u¿y-
wana jako wskanik pocz¹tku wzorców
wywietlanych znaków, do którego do-
dawany jest offset w celu wyznaczenia
wzorca znaku do pobrania z ROM. Sta-
nem aktywnym, odpowiadaj¹cym za-
wieceniu segmentu, jest wartoæ lo-
giczna 1 na pozycji bitu. Znaki w po-
staci cyfr uwzglêdniaæ musz¹ sposób
do³¹czenia mikrokontrolera do wywiet-
Elektronika Praktyczna 5/2004
85
W
32691878.052.png
P O D Z E S P O £ Y
Rys. 9. Schemat elektryczny sterownika wywietlacza VFD
86
Elektronika Praktyczna 5/2004
32691878.063.png 32691878.074.png 32691878.085.png 32691878.001.png 32691878.003.png 32691878.004.png 32691878.005.png 32691878.006.png 32691878.007.png 32691878.008.png 32691878.009.png 32691878.010.png 32691878.011.png 32691878.012.png 32691878.013.png 32691878.014.png 32691878.015.png 32691878.016.png 32691878.017.png 32691878.018.png 32691878.019.png 32691878.020.png 32691878.021.png 32691878.022.png 32691878.023.png 32691878.024.png 32691878.025.png 32691878.026.png 32691878.027.png 32691878.028.png 32691878.029.png 32691878.030.png 32691878.031.png 32691878.032.png 32691878.033.png 32691878.034.png 32691878.035.png 32691878.036.png 32691878.037.png 32691878.038.png 32691878.039.png 32691878.040.png 32691878.041.png 32691878.042.png 32691878.043.png 32691878.044.png 32691878.045.png 32691878.046.png 32691878.047.png 32691878.048.png 32691878.049.png 32691878.050.png 32691878.051.png 32691878.053.png 32691878.054.png 32691878.055.png 32691878.056.png 32691878.057.png 32691878.058.png 32691878.059.png 32691878.060.png 32691878.061.png 32691878.062.png 32691878.064.png 32691878.065.png 32691878.066.png 32691878.067.png 32691878.068.png 32691878.069.png 32691878.070.png 32691878.071.png 32691878.072.png 32691878.073.png 32691878.075.png 32691878.076.png 32691878.077.png 32691878.078.png 32691878.079.png 32691878.080.png 32691878.081.png
P O D Z E S P O £ Y
List. 1. Zmienne tablicowe zawieraj¹ce kszta³t wywietlanego znaku oraz
kolejnoæ za³¹czenia
//tablica zawieraj¹ca definicje wzorców znaków
char code patterns[11] = {0x3F, 0x06, 0x5B, 0x4F,0x66, 0x6D, 0x7D, 0x07, 0x7F,
0x6F, 0x00};
//wskanik do elementu tablic (wzorca znaku)
char code * Tpat = &patterns;
//tutaj kolejnoæ za³¹czania cyfr wywietlacza, aktywny (za³¹czaj¹cy)
//jest stan wysoki na wyprowadzeniu portu
char code digits[6] = { 0x01,0x02,0x04,0x08,0x10,0x20 };
//wskanik do tablicy kolejnoci za³¹czeñ
char code *Tdig = &digits;
List. 2. Funkcja obs³uguj¹ca przerwanie Timera 1
//procedura obs³ugi przerwania Timera 1
//wys³anie zmiennej 2-bajtowej do wywietlacza - 1 znak z bufora display
void Out2Vfd(void) interrupt 3
{
char temp;
TH1 = irqfreq; //odwie¿enie zawartoci rejestru timera
temp = *(Tbuff+irqcnt); //pobranie znaku z bufora wywietlacza
P0 = *(Tpat+temp);
//pobranie wzorca cyfry i wyprowadzenie go przez P0
P2 = *(Tdig+irqcnt);
//za³¹czenie cyfry
temp = ontime;
while (temp--);
//pêtla - regulacja czasu za³¹czenia cyfry
P2 = P0 = 0x00;
//wy³¹czenie wszystkich cyfr (pozosta³e
//polecenia tworz¹ czas Tb)
if (++irqcnt > 5) irqcnt = 0; //jeli to koniec cyfr do wywietlenia
//- powrót do pocz¹tku
}
Rys. 10. Schemat dzia³ania funkcji
obs³ugi przerwania
Tablica digits zawiera kolejnoæ za-
³¹czenia poszczególnych cyfr. W tej ap-
likacji znakowi o indeksie 0 odpo-
wiada za³¹czenie pierwszej cyfry z pra-
wej strony wywietlacza. Znak o indek-
sie 5 to pierwsza cyfra z prawej stro-
ny VFD. Kod za³¹czenia o indeksie 7
odpowiada wywietleniu symbolu
strza³ki (patrz zdjêcie wywietlacza Fu-
taba 7-LT-109). £atwo jest odwróciæ
kolejnoæ wywietlania, po prostu
zmieniaj¹c ustawienie elementów
w tablicy digits. Zmienna wskazuj¹c
Tdig podobnie jak poprzednio, s³u¿y
do wyznaczenia kodu steruj¹cego za-
³¹czaniem cyfry na bazie jej numeru.
Dynamiczne sterowanie wywietla-
niem odbywa siê z wykorzystaniem
funkcji obs³ugi przerwania Timera 1.
Pracuje on w trybie omiobitowym
z odwie¿aniem zawartoci rejestru ti-
mera w obs³udze przerwania. Funkcja
obs³ugi przerwania jest bardzo
oszczêdna. Schemat jej dzia³ania
przedstawiono na rys. 10 .
Funkcja obs³ugi przerwania pobiera
znak z bufora w RAM, zmienia na po-
staæ do wywietlenia i umieszcza go
na odpowiedniej pozycji wywietlacza.
Sta³a irqfreq to czêstotliwoæ, z jak¹
wywo³ywane jest przerwanie. Czêstot-
liwoæ ta jest równowa¿na czêstotli-
lacza VFD. Elementy tablicy u³o¿one s¹
w taki sposób, ¿e na pozycji o indeksie
0 umieszczona jest definicja znaku
0, na pozycji 1 definicja znaku 1
i tak dalej. Ostatnim w kolejnoci (in-
deks numer 10) jest kod wygaszenia
wszystkich segmentów znaku.
Rys. 11. Schemat monta¿owy p³ytki drukowanej
Elektronika Praktyczna 5/2004
87
32691878.082.png 32691878.083.png 32691878.084.png 32691878.086.png 32691878.087.png 32691878.088.png 32691878.089.png 32691878.090.png 32691878.091.png 32691878.092.png 32691878.093.png 32691878.094.png 32691878.095.png
P O D Z E S P O £ Y
List. 3. Program wykorzystany do testowania sterownika wywietlacza
/************************************************************************
Obs³uga wywietlacza 6 cyfr VFD. Wywietlanie znaków ASCII
************************************************************************/
WYKAZ ELEMENTÓW
Rezystory
R1: 1k
W
/SMD1206
#pragma SMALL
//do³¹czenie definicji rejestrów mikrokontrolera
#include <reg8252.h>
//sta³e do odwie¿enia zawartoci timera 1
#define irqfreq0xFC
#define ontime 120
#define BLANK 10
R2: 10k
W
/SMD1206
/SMD1206
R4: 8x47k
W
W
W
Uwaga! Drabinka R5 lutowana
pod p³ytk¹, nó¿ka 1 do wyprowa-
dzenia 40 (VCC) mikrokontrolera.
Kondensatory
C1: 100
// wzorce cyfr i liter
char code patterns[11] = {
//0 1 2 3 4 5 6 7 8 9 wyga
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x00};
char code *Tpat = &patterns;
//tutaj kolejnoæ za³¹czania
char code digits[6] = { 0x01,0x02,0x04,0x08,0x10,0x20 };
char code *Tdig = &digits;
//bufor wywietlacza w RAM
char data buffer[8];
char data *Tbuff = &buffer;
//licznik wejæ w obs³ugê przerwania
char data irqcnt = 0;
F/16V
C2...C5, C8: 100nF/SMD1206
C/R7: 100nF/SMD 1206 dla AT89,
100k
m
W
/SMD 1206 dla AVR
F/63V
C10: 33
m
F/50V
C11: 100pF/SMD1206
C12, C13: 10
m
//procedura obs³ugi przerwania od timera 1
//wys³anie zmiennej 2-bajtowej do wywietlacza - 1 znak z bufora display
void Out2Vfd(void) interrupt 3
{
F/16V
C14, C15: 22pF/SMD1206
Pó³przewodniki
U1: LM5000-3 National Semicon-
ductor
U2: AT89S8252-24PI zaprogramowa-
ny
U3, U4: UDN2981A
D1: BZX C16
D2: MUR120
D3: 1N5819
D4: BZX C3V9
Ró¿ne
VFD1: wywietlacz FUTABA 7-LT-
109GN
Karkas do EFD15, Schuricht numer
kat. 334180
Rdzeñ EFD15, Schuricht numer kat.
334160
Dane do wykonania transformato-
ra:
- Uzw. pierwotne: 20 zw. DNE 0,3
- Uzw. wtórne 1: 50 zw. DNE 0,12
(napiêcie anodowe)
- Uzw. wtórne 2: 2 x 5 zw. DNE 0,3
(napiêcie ¿arzenia)
m
char temp;
TH1 = irqfreq; //odwie¿enie wartoci rejestru timera 1
temp = *(Tbuff+irqcnt); //pobranie znaku z bufora wywietlacza
P0 = *(Tpat+temp);
//pobranie wzorca cyfry i wyprowadzenie go przez P0
P2 = *(Tdig+irqcnt);
//za³¹czenie cyfry
temp = ontime;
while (temp--);
//pêtla - regulacja czasu za³¹czenia cyfry
P2 = P0 = 0x00;
//wy³¹czenie wszystkich cyfr (pozosta³e
//polecenia tworz¹ czas Tb)
if (++irqcnt > 5) irqcnt = 0; //jeli to koniec cyfr do wywietlenia
//- powrót do pocz¹tku
}
//program g³ówny
void main(void)
{
unsigned int x, D, l;
P0 = P2 = 0; //wygaszenie cyfr, ustalenie wart.pocz. portów procesora
for (x = 0; x<6; x++) buffer[x] = BLANK;
TMOD = 0x10; //timer 1:16-bitowy, ustawiana tylko starsza po³ówka bajtu
TH1 = irqfreq; //wartoæ dla reload
ET1 = 1; //zezwolenie na przerwanie od timera 1
TR1 = 1; //uruchomienie timera 1
EA = 1; //zezwolenie na przyjmowanie przerwañ, za³¹czenie wywietlania
//wywietlanie polega na wstawianiu cyfr do zmiennej tablicowej buffer
//pozycja 0 odpowiada znakowi o najm³odszej wadze (pierwszy z prawej)
//NA PRZYK£AD - implementacja licznika
x = 0;
while (1) {
x++;
D = x;
if (x > 99999) {
l = D/100000;
buffer[5] = l;
//podstawienie do wywietlenia:100000
D = D - 100000*l;
}
if (x > 9999) {
l = D/10000;
buffer[4] = l;
//podstawienie do wywietlenia:10000
woci odwie¿ania wywietlacza. On-
time reguluje czas za³¹czenia. Zmie-
niaj¹c tê wartoæ mo¿na wp³ywaæ na
jasnoæ wiecenia znaku.
Program g³ówny ( list. 3 ) to przyk³ad
aplikacji licznika, którego stan wy-
wietlany jest na VFD. Licznik pracu-
je w pêtli nieskoñczonej, zliczaj¹c ko-
lejne przebiegi pêtli. Po przepe³nieniu
jest zerowany i cykl zaczyna siê od
pocz¹tku. Stan zmiennej licznika pod-
dawany jest konwersji na kod BCD,
a poszczególne wagi dziesiêtne wsta-
wiane s¹ do odpowiednich komórek
bufora wywietlacza. Stan bufora po-
bierany jest przez funkcjê obs³ugi
przerwania i wywietlany na VFD.
Jacek Bogusz
jacek.bogusz@ep.com.pl
D = D - 10000*l;
}
if (x > 999) {
l = D/1000;
buffer[3] = l;
//podstawienie do wywietlenia:1000
D = D - 1000*l;
}
if (x > 99) {
l = D/100;
buffer[2] = l;
//podstawienie do wywietlenia:100
D = D - 100*l;
}
if (x > 9) {
l = D/10;
buffer[1] = l;
//podstawienie do wywietlenia:10
D = D - 10*l;
}
buffer[0] = D; //podstawienie do wywietlenia:1
if (x > 65534) { //czyszczenie wywietlacza, powtórzenie cyklu
for (x = 0; x<6; x++) buffer[x] = BLANK;
x = 0;
}
}
}
88
Elektronika Praktyczna 5/2004
R3: 620
R5: 8x47k
C9: 1
32691878.002.png
Zgłoś jeśli naruszono regulamin