Vous êtes sur la page 1sur 4

K U R S

Pamitam pierwsze wraenie,


jakie wywar na mnie
wywietlacz VFD. Zachwyci
mnie przede wszystkim
doskonale czytelny
zodlegoci nawet kilku
metrw obraz. Oczyma
wyobrani ju widziaem go wprojektowanych przeze
mnie sterownikach urzdze.

Sterowanie alfanumerycznych
wywietlaczy VFD
Wywietlacze VFD

wktrej poszczeglnymi elektrodami


s:
- katoda: cienkie druty (arzone)
znajdujce si nad wieccymi obszarami,

Skrt VFD pochodzi od angielskich wyrazw Vacuum Fluorescent


Display. Wywietlacz VFD to rodzaj
trjelektrodowej lampy prniowej,

- siatka kontrolna umieszczona pomidzy katod amatryc znaku


(kontrolujca wiecenie lub nie
punktw czy segmentw),
- anoda: wiecca warstwa tzw. lu-

Tab. 1. Wykaz rozkazw akceptowanych przez wywietlacz CU20025U2J firmy Noritake Itron
Instrukcja
Clear display
(kasowanie ekranu)
Cursor home
(powrt kursora
do wsp. 0,0)
Entry mode set
(ustawienie trybu
dla znakw)

Kod instrukcji
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Opis

I/D

Display ON/OFF
0
controll
(kontrola
wywietlania)
Cursor or display shift 0
(przesuwanie kursora/
obrazu)
Function set
0
(sowo 4/8bitowe)
Brightness controll
1
(jasno wiecenia)

IF

Adres DD RAM

BF

Warto wskanika adresu

Dane zapisywane

Zapis danych do DD RAM lub CG RAM wzalenoci od tego, czy ostatnio


wykonywano polecenie Set DD RAM Address, czy Set CG RAM Address

Dane odczytywane

Odczyt danych zDD RAM lub CG RAM wzalenoci od tego, czy ostatnio
wykonywano polecenie Set DD RAM Address, czy Set CG RAM Address

CG RAM address setting


(nastawy adresu
CG RAM)
DD RAM address setting
(nastawy adresu
DD RAM)
Busy flag and address
reading
(odczyt flagi zajtoci
iadresu)
Data writing to CG
or DD RAM (zapis bajtu
do CG RAM lub DD RAM)
Data reading from CG
or DD RAM (odczyt bajtu
zCG RAMlub DD RAM)

Elektronika Praktyczna 1/2003

S/C R/L

BR1 BR0

Adres CG RAM

Kasowanie ekranu oraz zapis 0do wskanika adresu DD RAM


(pami znakw)
Ustawienie wskanika adresu DD RAM na warto 0ipowrt kursora do
pozycji pocztkowej. Powoduje rwnie przywrcenie stanu przesuwanego
obrazu. Zawarto DD RAM pozostaje niezmieniona
Ustawia kierunek ruchu kursora oraz sposbprzesuwania obrazu wczasie
zapisu/odczytu danych
I/D: 1to automatyczne zwikszanie, 0 zmniejszanie adresu
S: 1to przesuwanie ekranu dozwolone, 0 zabronione
Zaczenie/wyczenie obrazu, kursora oraz migotania kursora na pozycji znaku
D: 1 ekran zaczony, 0 ekran wyczony
C: 1 kursor zaczony, 0 kursor wyczony
B: 1 migotanie zaczone, 0 migotanie wyczone
Przesuwa kursor lub zawarto ekranu nie zmieniajc zawartoci DD RAM
S/C: 1 przesuwanie obrazu, 0 przesuwanie kursora
R/L: 1 kierunek przesunicia wprawo, 0 wlewo
Ustawia dugo sowa danych dla interfejsu
IF: 1 interfejs 8bitw, 0 interfejs 4bity
Polecenie akceptowane po rozkazie Function Set jako bajt kontroli jasnoci
wiecenia.
BR1, BR0 = 00: 100%, 01: 75%, 10: 50%, 11: 25%
Ustawia adres CG RAM (pamici generatora znakw, np. przy definiowaniu
wasnych znakw)
Ustawia adres pamici DD RAM (pamici obrazu, np. przy realizacji funkcji
umieszczajcej znak na wsprzdnych [kolumna, wiersz])
Odczyt flagi zajtoci (gdy BF = 1, to realizowane jest przetwarzanie
wewntrzne ikontroler nie przyjmuje danych) oraz wskanika adresu DD RAM

93

K U R S
List. 1. Fragment programu w jzyku C opisywanego w EP 78/2002
przeznaczonego do sterowania wywietlaczem zkontrolerem HD44780
zawierajcy najwaniejsze funkcje
// zapis bajtu do lcd
void WriteByteToLcd(char X)
{
P2 |= 0xF0;
//ustawienie grnej powki portu P2 na 1
P2 &= (X | 0x0F);
//bezkolizyjny zapis 1-szej powki bajtu
//(przez funkcj logiczn)
LcdEnable = 0;
//zapis do wywietlacza (opadajce zbocze sygnau E)
LcdEnable = 1;
//zapis 2-giej powki bajtu
X <<= 4;
//przesunicie 4x w lewo
P2 |= 0xF0;
//ustawienie grnej powki portu P2 na 1
P2 &= (X | 0x0F);
//zapis 2-giej powki bajtu
LcdEnable = 0;
//opadajce zbocze E - zapis do LCD
Delay(1);
}
// zapis bajtu do rejestru kontrolnego LCD
void WriteToLcdCtrlRegister(char X)
{
LcdReg = 0;
//ustawienie sygnaw sterujcych
LcdRead = 0;
LcdEnable = 1;
WriteByteToLcd(X);
}
// zapis bajtu do wywietlacza
void LcdWrite(char X)
{
LcdReg = 1;
LcdRead = 0;
LcdEnable = 1;
WriteByteToLcd(X);
}
//inicjalizacja wywietlacza LCD w trybie 4 bity
void LcdInitialize(void)
{
char i;
Delay(15);
LcdReg = LcdEnable = LcdRead = 0; //wyzerowanie linii LcdReg,LcdRead,LcdEnable
for (i = 0; i<3; i++)
{
LcdEnable = 1;
//impuls na E
PORT &= 0x3F;
//ustawienie wart. inicjujcej
LcdEnable = 0;
Delay(5);
}
LcdEnable = 1;
//wpisanie wartoci 2 do rej. kontr.
PORT &= 0x2F;
//tylko grne 4 bity
LcdEnable = 0;
Delay(1);
WriteToLcdCtrlRegister(0x28);
//interfejs 4 bity, znaki 5x7
WriteToLcdCtrlRegister(0x08);
//wyczenie LCD
WriteToLcdCtrlRegister(0x01);
//kasowanie ekranu, powrt do spoczynkowej
WriteToLcdCtrlRegister(0x06);
//przesuwanie kursora z inkrementacj
WriteToLcdCtrlRegister(0x0C);
//zaczenie wywietlacza
}
.............

minoforu (najczciej jest nim fosfor lub jego zwizki).


Budow wywietlacza VFD pokazano na rys. 1. Jak w kadej lampie
elektronowej, wymagane jest podgrzanie katody, poniewa wskutek zachodzcej wwczas termoemisji elektronw z katody moliwa jest praca
lampy przy niezbyt wysokim napiciu anodowym. Wwywietlaczach

Rys. 1. Budowa wywietlacza VFD

94

VFD cienki drut arnika jest jednoczenie katod - w lamie tej zastosowano tzw. arzenie bezporednie. Pobierany do rozgrzania katody prd
arzenia jest przyczyn, e VFD po-

Fot. 2. Widoczny na zdjciu ciemny


kleks zmieni sw barw, jeli
wywietlacz utraci szczelno ido
wntrza dostanie si powietrze
biera wicej prdu ni rwnowany
mu funkcjonalnie wywietlacz LCD.
Wpraktyce warto ta dla wywietlacza znakowego wynosi kilkaset mA,
adla graficznego nawet okoo 1A.
Elektrony wyemitowane zkatody
przycigane s przez anod, aich
przepyw jest sterowany napiciem
siatki. Im mniej ujemny potencja ma
siatka, tym strumie elektronw pyncy przez prni od katody do
anody jest wikszy.
Luminofor pokrywajcy anod
wieci bombardowany strumieniem
tych elektronw. Gdy na siatce jest
potencja silnie ujemny, elektrony s
zawracane wkierunku katody: luminofor nie wieci. Mimo i opisane
dziaanie segmentu wskanika jest
bardzo podobne do dziaania triody,
to jednak wywietlacz rni si od
niej sposobem sterowania przepywem
prdu anodowego: siatka sterujca
dziaa jak przecznik, anie jak regulator. Pewna moliwo wpywu na
warto prdu jest czsto wykorzystywana przez producentw wywietlaczy do zmiany jasnoci wiecenia
znakw.
Kady ze znakw uformowany jest
zwieccych segmentw lub punktw. Typowo, na pojedynczy znak
wywietlacza alfanumerycznego przewidziano matryc 5x7 punktw.
Kady znich jest miniaturow anod
zdoprowadzonym napiciem zasilania.

List. 2. Przykad fragmentu programu sterujcego wywietlaczem LCD lub


VFD wjzyku Bascom
konfiguracja wywietlacza LCD
Config Lcd = 16 * 1
wybr sposobu podczenia
Config Lcdpin = Pin, Db4 = Porta.5, Db5 = Porta.4, Db6 = Porta.3, Db7 = Porta.2,
E = Porta.6,
Rs = Porta.7
program gwny
Do
Call Gettime
Locate 1, 1: Lcd Bcd(h); :; Bcd(m); :; Bcd(s)
Loop
End

Elektronika Praktyczna 1/2003

K U R S
List. 3. Fragment programu
napisanego w jzyku C do obsugi
wywietlacza VFD
/*************************************
Obsuga wywietlacza VFD firmy
Noritake VFD z uyciem UART
*************************************
Raisonance C module
Uwaga:
Ustaw Initial Timer 1 value to 0xFD !!!
(options > project > LX51 > linker >
timer 1 initial value = FD)
Dla rezonatora 11.0592MHz, prdko
UART wyniesie 9600 bps
*/
#include <reg52.h>
#include <stdio.h>
//inicjalizacja VFD (kasowanie ekranu,
//powrt do pozycji HOME
void VFD_Init(void);
{
putchar(0x1B);
putchar(0x49);
}
//ustawienie kursora na pozycji x, y
void GotoXY(char x, char y)
{
char addr;
addr == y * 20 + x - 1;
putchar(0x1B);
putchar(0x48);
putchar(addr);
}
//program gwny
void main()
{
VFD_Init();
printf(%s\n,Noritake VFD);
while(1);
}

Tak jak w lampie, elektrody wywietlacza zamknite s wszklanej


bace, wewntrz ktrej panuje prnia. Wywietlacz, ktry zjakich powodw utraci prni, atwo jest rozpozna: znajdujcy si wewntrz
zwizek chemiczny (tzw. pochaniacz
gazw szcztkowych - getter) zmienia
swjkolor ze srebrnego (lub ciemnoszarego) na biay, utleniajc si pod
wpywem powietrza atmosferycznego.
Wrnych wywietlaczach srebrny
kleks (fot. 2) mona znale wrnych miejscach. Niektre znich maj
go obok pola odczytowego, niektre
za wokolicach zatopionego koca
szklanej rurki, przez ktr wypompowywane jest powietrze.
Drucik arnika isiatka sterujca
znajduj si midzy patrzcym
awiecc anod. Musz wic by
tak mae, aby byy niezauwaalne.
Jednoczenie drut arnika powinien
by rozgrzany do okoo 1000 stopni
Celsjusza!
Sterowanie segmentami lub matryc VFD jest zblione bardziej do

List. 4. Przykad programu obsugi


wywietlacza VFD w jzyku Bascom
z wykorzystaniem portu
szeregowego
$regfile = 8515DEF.DAT
$baud = 4800
'ustawienie szybkoci
'transmisji UART
$crystal = 7372800
Do
Printbin &H1B; &H4C; 0
'30%
Printbin &H0E
'kasowanie ekranu
Printbin &H1B; &H48; 0
'ustawienie
'kursora na pocztku ekranu 0,0
Waitms 500
Print Noritake VFD display;
Waitms 500
Print CU20045SCPB-T23A
Waitms 500
Print RS232:19200,n,8,1
Waitms 500
Print Bascom is ok!
'wysyamy
'napis na ekran
Waitms 800
Printbin &H1B; &H4C;
Waitms 800
Printbin &H1B; &H4C;
Waitms 800
Printbin &H1B; &H4C;
'regulacja
Waitms 800
Printbin &H1B; &H4C;
Waitms 800
Printbin &H1B; &H4C;
Waitms 800
Loop

&H40

50%

&H80

75%

&HC0
'tutaj
jasnoci 100%
&H80

75%

&H40

50%

stosowanego dla wywietlaczy LED


ni LCD. Przewanie nie musimy si
jednak zajmowa sterowaniem - nadzoruje je wbudowany przez producenta sterownik wywietlacza.
Wystarczy wiedzie, e VFD moe
by przeze sterowany zarwno statycznie - poprzez przyoenie odpowiedniego napicia - jak idynamicznie - to znaczy zmultipleksowaniem.
Ze wzgldu na bardzo du liczb
wyprowadze koniecznych przy zastosowaniu metody statycznej (rys.
3), przewanie stosowane jest
wywietlanie dynamiczne (rys. 4).
Przy takim wywietlaniu nisza jest
cena wywietlacza imniejsza zoono.
Starsze modele wywietlaczy VFD
wymagay doprowadzenia wielu napi sterujcych. Wymagane byo zarwno odpowiednie napicie siatki,
jak ianodowe oraz arzenia. Skomplikowany sposb zasilania by przyczyn, e nie byy one zbyt chtnie
stosowane przez konstruktorw, cho
mona je byo spotka wrnych
wyrobach przemysowych, takich jak:
kalkulatory stacjonarne, magnetowidy
czy zegary cyfrowe. Charakterystyczna jest bowiem dla nich znakomita
czytelno wrnych warunkach
owietlenia.

Nowoczesne wywietlacze VFD s tak atwe wstosowaniu


jak popularne moduy LCD. Maj one podobny ukad
wyprowadze is sterowane wtaki sam sposb.

Elektronika Praktyczna 1/2003

List. 5. Program do obsugi


wywietlacza VFD przez UART
w jzyku asembler 8051
$include (REG_51.PDF)
NAME
VFDTest
DSEG AT 20H
Status:DS 1
FlagaRXBIT Status.0
FlagaTXBIT Status.1
TXDone
BIT Status.2
BuforRX:
BuforTX:

DS
DS

1
1

;wektor obsugi przerwania po reset


CODE AT 0H
JMP Init
;wektor obsugi przerwania od SPI
CODE AT 23H
JMP IrqSPI
CODE AT 30H
;pocztek programu gwnego
;i wyprowadzenie napisu
VFD_Init: DB 1BH,49H,1BH,4CH,40H,0
Napis:
DB Noritake VFD
ver.1,0 dd.2001/10/1SPI:9600,n,8,1,0
Init:
;ustawienie stosu
MOV SP,#0E0H
ACALL
SPI_Init
MOV B,#3
MOV DPTR,#VFD_Init
ACALL
StringOut
MOV DPTR,#Napis
ACALL
StringOut
AJMP
$
;************************
;Obsuga transmisji przez
SPI;*********************
;obsuga przerwania od SPI
IrqSPI:JBC RI,RXIrq
;Czy to znak przychodzcy?
TXIrq:
JBC FlagaTX,SendIt
;Nie,wysyaj dane
CLR TI
SETB
TXDone
JMP SPI_Ret
SendIt:MOV SBUF,BuforTX
CLR TI
CLR TXDone
JMP SPI_Ret
RXIrq:
MOV BuforRX,SBUF
;Tak,odbir-czytaj znak
SETB
FlagaRX ;Ustaw flag odbioru
SPI_Ret:
RETI
;inicjalizacja UART
SPI_Init: CLR TR1
CLR FlagaTX
CLR FlagaRX
SETB
TXDone
MOV SCON,#01010000B
MOV TMOD,#00100001B
;timer 1 generuje baude
;rate,
;timer 0 jako 16-bit timer
MOV PCON,#0
;pojedyncza prdko transmisji
MOV TH1,#254
;th1 = 256-(11.0592e6/384x9600)
SETB
TR1
SETB
ES
SETB
EA
RET
;Odczytuje znak i podaje go w A
CharIn:JNB FlagaRX,$
;Czekaj do momentu odbioru
MOV A,BuforRX
CLR FlagaRX
RET
;Wyprowadza znak podany w A
CharOut:
JB FlagaTX,$
;Nie za szybko, bo nastpi blokada
MOV BuforTX,A
;Wylij znak
SETB
FlagaTX
JNB TXDone,CharOut_Ret
SETB
TI
CharOut_Ret:
RET
;Zwraca CY=0,jeli znak nie jest
;gotowy,CY=1 i znak w A jeli wszystko ok
;Stan interfejsu SPI moe by rwnie
;sprawdzany poprzez bit RI
SPI_Status:
MOV C,FlagaRX
JNC SPISta_Ret
CALL
CharIn
SPISta_Ret:
RET
;Adres acucha do wysania w DPTR,
;transmisja koczona jest przez znak 0x00.
StringOut: CLR A
MOVC
A,@A+DPTR
CJNE
A,#0,StrOut_1
AJMP
StrOut_2
StrOut_1: CALL
CharOut
INC DPTR
JMP StringOut
StrOut_2: CLR A
RET
END

95

K U R S

Rys. 3. Poczenia segmentw wwywietlaczu VFD


sterowanym statycznie
Obecnie najchtniej stosowane s
te wywietlacze VFD, ktre s zasilane zpojedynczego rda napicia
isame wytwarzaj niezbdne im do
pracy napicia.

Rys. 4. Poczenia segmentw wwywietlaczu VFD


sterowanym multipleksowo

Wikszo wspczenie produkowanych wywietlaczy jest wyposaona winterfejs rwnolegy zgodny pod
wzgldem wyprowadze irealizowanych funkcji zpopularnym sterownikiem HD44780. Mona wic odczy
wywietlacz LCD wyposaony winterfejs zgodny ztym standardem, awjego miejsce podczy rwnowany

wietlaczy LCD moe by wykorzystywany przez producentw rwnie


innych
modeli
wywietlaczy.
Wzwizku ztym programy sterujce
prac wywietlacza LCD mog by
zpowodzeniem uyte rwnie dla
VFD. Programy obsugi wywietlaczy
LCD byy opisane w 3. i4. odcinkach kursu programowania wjzyku
Cdla mikrokontrolerw zrodziny
8051 (EP7 i8/2002). Wprzypadku
jzyka Bascom rwnie nie ma wikszych kopotw: wystarczy znajomo
kilku polece zwizanych zobsug
wywietlania na LCD, takich jak:
Config Lcd, Config Lcdpin, Locate
itp. Ze znalezieniem przykadw

mu odpowiednik VFD (czsto nawet


bez zmiany kolejnoci wyprowadze).
Jedyna rnica polega na niewykorzystywaniu przez VFD niezbdnego
dla LCD napicia regulacji kontrastu,
poniewa kontrast jest zawsze taki
sam (jednakowo dobry) iregulowa
mona tylko jasno wiecenia znakw. Regulacj t przyprowadza si
jednak nie za pomoc napicia zewntrznego, lecz programowo. Niewykorzystane bd rwnie wyprowadzenia podczenia napicia podwietlenia ta.
Jak wynika zdanych zawartych
wtab. 1, sterownik HD44780 skonstruowany zprzeznaczeniem dla wy-

takich programw przeznaczonych dla


dowolnego modelu mikrokontrolera
czy komputera PC nie powinno by
wikszych trudnoci.
Troch gorzej jest wprzypadku
starszych modeli wywietlaczy, produkowanych gdy nie by jeszcze
ustalony aden standard sterowania
ikady zproducentw budowa wasny interfejs. Pewnym ratunkiem moe by wykorzystanie interfejsu szeregowego, wktry wyposaane byy
niektre zmodeli wywietlaczy, na
przykad te produkowane przez firm
Noritake. Jako przykad niech posuy wywietlacz CU20025-T20A. Posiada on wszystkie cechy nowoczesnego

Przykady programw
sterujcych

96

VFD: 2linie po 20 znakw kada,


doskonaa jako obrazu oraz tylko
jedno napicie niezbdne do jego zasilania. Pewn przeszkod wjego wykorzystaniu jest specyficzny interfejs
rwnolegy wymagajcy specjalnego
sposobu sterowania, waciwego tylko
temu modelowi wywietlacza (na
przykad sygna BUSY wyprowadzony jest oddzielnie). Oczywicie moliwe jest napisanie programu sterujcego, ale przy zmianie modelu wywietlacza moe si okaza, e konieczna bdzie modyfikacja programu
obsugi wywietlania. Na szczcie
producent wyposay wywietlacze
wdwa rodzaje interfejsu: RS232,
araczej zgodny zjego specyfikacj
transmisji, lecz pracujcy zwykorzystaniem poziomw napi TTL oraz
rwnolegy. Wykorzystanie transmisji
szeregowej nie wie si zadnymi
odstpstwami od standardu ieliminuje konieczno wykonania szeregu
pocze. Wywietlacz wyposaony
jest wtrjstykowe zcze, na ktrego
wyprowadzenie 1 doprowadzane jest
napicie zasilania +5 V, na 2 sygna danych, na 3 masa. Wykorzystywane jest wycznie wyprowadzenie
TxD mikrokontrolera (transmisja
zwrotna nie jest przeprowadzana).
Nie ma potrzeby kontrolowania flagi
zajtoci oraz stanu wywietlacza wszystkim zajmuje si ukad kontrolera. Naley tylko pamita opoprawnym ustawieniu parametrw transmisji. Opis sposobu wykonania niezbdnych nastaw mona znale
wdokumentacji producenta. Osobicie bardzo mi si ta alternatywa podoba.
Na list. 3, 4 i5 zamieszczono
przykady programw napisanych dla
tego modelu wywietlacza wjzykach
Bascom, C iAsembler 51.
Jacek Bogusz, AVT
jacek.bogusz@ep.com.pl
Dodatkowe nateriay oraz oprogramowanie jest dostpne wInternecie
pod adresem: http://www.noritake-itron.com/Softview/softviewmain.htm.

Elektronika Praktyczna 1/2003

Vous aimerez peut-être aussi