Wyświetlacz RS-232.pdf

(257 KB) Pobierz
77325212 UNPDF
Wyświetlacz LCD na RS232
Układ jest uniwersalnym wyświetlaczem LCD sterowanym za pośrednictwem portu
RS232. Dzięki zastosowaniu mikrokontrolera ATTINY2313 oraz konwertera
poziomow MAX232 układ moŜe być bezpośrednio podłączony do komputera.
Sterowanie wyświetlaczem odbywa się za pomocą programu przesyłającego kody
ASCI oraz specjalne instrukcje sterujące połoŜeniem kursora i włączaniem
podświetlania, na port RS232 (zamiast specjalnego programu moŜe być dowolny
terminal). Dodatkowo układ moŜe wspołpracować z innym mikrokontrolerem i słuŜyć mu jako wyświetlacz
sterowany tylko za pomocą jednej linii sygnałowej. Jest to przydatne szczegolnie gdy chcemy zamontować
wyświetlacz kilkanaście metrow od głownego systemu mikroprocesorowego. PoniewaŜ układ wyświetlacza
posiada dwukierunkowy interfejs szeregowy, istnieje moŜliwość podłączenia klawiatury i przesyłanie rozkazow
sterujących pracą urządzenia (od wyświetlacza do urządzenia) za pomocą dodatkowego przewodu.
Działanie:
Schemat ideowy układu został przedstawiony na rysunku poniŜej:
77325212.001.png 77325212.002.png
Sercem układu jest mikrokontroler U1 (ATTINY2313) wraz z rezonatorem kwarcowym X1 (16MHz) i dwoma
kondensatorami C1 (22pF) i C2 (22pF). Potencjomatr P1 (10k) umoŜliwia regulację kontrastu wyświetlacza
LCD W1 (16x2). Tranzystor T1 (BC556) wraz z rezystorami R1 (3,3k) i R2 (3,3k) umoŜliwia sterowanie
podświetlaniem LCD. Rezystor R3 (47R) ogranicza prąd obwodow podświetlania wyświetlacza W1 .
Kondensatory C7 (100uF) i C8 (100nF) filtrują napięcie zasilania mikrokontrolera. Układ U2 (MAX232) jest
konwerterem napięć, dostosowuje on stany logiczne występujące na porcie RS232 do standardow
obsługiwanych przez mikrokontroler. Kondensatory elektrolityczne C3 C6 (1uF) są konieczne do poprawnej
pracy układu U2 . Złącza RxD_G oraz TxD_Vcc umoŜliwiają podłączenie zasilania i przewodow sygnałowych
portu RS232. PoniewaŜ port szeregowy jest dwukierunkowy istnieje moŜliwość podłączenie klawiatury i
sterowania drugim mikrokontrolerem lub programem komputerowym. Do tego celu słuŜy złącze GP1 (wymaga
modyfikacji programu). Do zaprogramowania mikrokontrolera słuŜy złącze Prog a dodatkowo jego dwa piny
(nie podłączone do wyświetlacza W1 ) mogą być wykorzystane w dowolny sposob (po zaprogramowaniu
mikrokontrolera)
Budowa:
Wyświetlacz moŜna zbudować w oparciu u płytkę drukowaną dostępną tutaj . Rysunek w odbiciu lustrzanym
moŜna pobrać tutaj . MontaŜ naleŜy rozpocząć od wlutowania trzech zworek. Kondensatory elektrolityczne C3
C7 naleŜy zamontować w pozycji leŜącej, tak aby zmieściły się pod wyświetlaczem LCD, znajdującym się nad
całą płytką drukowaną. Złącza Prog i GP1 mogą być w wersji "kątowej", ułatwi to podłączenie po
zamontowaniu wyświetlacza. Rezonator kwarcowy musi być w wersji niskiej z tego samego powodu co leŜące
kondensatory. Pod mikrokontroler i układ U2 naleŜy zastosować podstawki. Pomocą w konstrukcji moŜe
okazać się schemat montaŜowy dostępny tutaj
Wykaz Elementów:
2x Złącze Śrubowe ARK2(podwójne)
2x Listwa Goldpin 1x4 (GP1)
2x 3,3k
1x 47R
1x Potencjometr MontaŜowy 10k
2x 22pF
1x 100nF
4x 1uF Elektrolit
1x 100uF Elektrolit
1x Rezonator Kwarcowy 16MHz
1x BC556
1x Mikrokontroler ATTINY2313 + Podstawka
1x Konwerter Napięć MAX232
1x Wyświetlacz LCD 16x2
 
Programowanie:
Mikrokontroler został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics
( http://www.mcselec.com/ ). Program przedstawiony jest poniŜej:
'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 16000000
$baud = 9600
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111111 : Portd = &B10111111
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 'mirley test board
Config Lcd = 16 * 2
Cls
Cursor On Blink
'Typ wyswietlacza LCD Kmax*Wmax
Const Kmax = 16
Const Wmax = 2
'********** Konfiguracja uC Koniec ************
'****************** Zmienne *******************
'***********************************************
Dim Znak As Byte
Dim S As String * 1
Dim K As Byte , W As Byte
'************* Zmienne Koniec ****************
'************ Warunki Poczatkowe ***************
'***********************************************
K = 1
W = 1
'******* Warunki Poczatkowe Koniec ***********
'************** Petla glowna ******************
'***********************************************
Do
Inputbin Znak
If Znak <> 0 Then
Select Case Znak
Case 1:
'**************************** podswietlanie
Toggle Portd.6
'****************************
'Case 2....7
Case 8:
'**************************** kasowanie ostatniego (backspace)
Decr K
If K = 0 Then
K = Kmax
Decr W
If W = 0 Then W = Wmax
End If
Locate W , K
Lcd " "
Locate W , K
'**************************** kasowanie ostatniego (backspace)
'Case 9....12
Case 13:
'**************************** enter
Incr W
If W > Wmax Then W = 1
K = 1
Locate W , K
'**************************** enter
'Case 14....26
Case 27:
'**************************** kasowanie calosci(ESC)
Cls
K = 1
W = 1
Locate W , K
'**************************** kasowanie calosci
'Case 28....31
Case 32 To 126:
'**************************** znaki standardowe
S = String(1 , Znak)
Locate W , K
Lcd S
Incr K
If K > Kmax Then
K = 1
Incr W
If W > Wmax Then W = 1
End If
'**************************** znaki standardowe
'Case 127....160
Case 161 To 244:
'**************************** locate
K = Znak And &B00011111
W = Znak And &B01100000
Shift W , Right , 5
If K <= Kmax And W <= Wmax Then
Locate W , K
End If
'**************************** locate
'locate -> Wysylamy wartosc 1kkwwwww (kk-numer kolumny, wwwww-numer wiersza)
'gdzie kk = (01....11) wwwww = (00001.....10100)
'Case 245....255
End Select
End If
Loop
End
'************ Petla glowna Koniec **************
Obsługa:
Do osługi wyświetlacza konieczny jest komputer z programem typu terminal, lub własnym programem
sterującym. MoŜna takŜe wykorzystać drugi mikrokontroler i wysyłać odpowiednie informacje za jego pomocą.
Kody sterujące (wysyłane wartości liczbowe):
1 Zmiana stanu podświetlania
2...7 nieuŜywane
8 Backspace (kasuje ostatnio wpisany znak)
9...12 nieuŜywane
13 enter (przejście do następnej linii)
14...26 nieuŜywane
27 kasowanie całego tekstu
28...31 nieuŜywane
32...126 standardowe znaki według kodu ASCI
127...160 nieuŜywane
161...244 pozycja, wartość binarna 1kkwwwww (gdzie kk = (01...11) numer kolumny, wwwww =
(00001...10100) numer wiersza)
245...255 nieuŜywane
Zgłoś jeśli naruszono regulamin