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
P O D Z E S P O £ Y
Rys. 9. Schemat elektryczny sterownika wywietlacza VFD
86
Elektronika Praktyczna 5/2004
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
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
Plik z chomika:
Headhunterz_ZKS
Inne pliki z tego folderu:
Sterowanie alfanumerycznych wyświetlaczy VFD.pdf
(263 KB)
Wyświetlacze VFD od podstaw, cz.1.pdf
(193 KB)
Wyświetlacze VFD od podstaw, cz.2.pdf
(474 KB)
Program testujący dla wyświetlaczy VFD firmy Noritake z interfejsem szeregowym.pdf
(64 KB)
Program testujący dla wyświetlaczy VFD firmy Noritake z interfejsem szeregowym-src.zip
(8 KB)
Inne foldery tego chomika:
6010
ARDUINO
ARDUINO(1)
Artykuły, poradniki
Biblioteki Eagle
Zgłoś jeśli
naruszono regulamin