Académique Documents
Professionnel Documents
Culture Documents
Sterowanie alfanumerycznych
wywietlaczy VFD
Wywietlacze VFD
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
Dane zapisywane
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
S/C R/L
BR1 BR0
Adres CG 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
}
.............
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-
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);
}
&H40
50%
&H80
75%
&HC0
'tutaj
jasnoci 100%
&H80
75%
&H40
50%
DS
DS
1
1
95
K U R S
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
Przykady programw
sterujcych
96