avt-868 Programowalny zegar z LCD proc. 89.PDF

(556 KB) Pobierz
Programowany zegar z wyświetlaczem LCD AVT-868
Programowany zegar z wyświetlaczem LCD
P R O J E K T Y
Programowany zegar
z wyświetlaczem LCD
AVT−868
W†Elektronice Praktycznej,
podobnie jak w†innych
pismach przeznaczonych dla
elektronikÛw, opisano juø
wiele uk³adÛw zegarÛw
elektronicznych. Pomimo to,
zainteresowanie takimi
urz¹dzeniami nie s³abnie,
szczegÛlnie kiedy wyrÛøniaj¹
siÍ nietypowymi rozwi¹zaniami
i†eleganckim wygl¹dem.
W†wiÍkszoúci, jeøeli nie we
wszystkich, z†opisanych w†EP
zegarÛw uøywano do zobrazowania
up³ywu czasu wyúwietlaczy sied-
miosegmentowych LED. Wyúwietla-
cze takie maj¹ dok³adnie tyle samo
zalet co i†wad i†nie zawsze wytrzy-
muj¹ konkurencjÍ z†wyúwietlaczami
alfanumerycznymi LCD.
Proponowany zegar zosta³ po-
myúlany jako miniaturowy modu³
- panel, ktÛry moøna rÛwnie dobrze
wbudowaÊ w†istniej¹ce juø urz¹-
dzenie jak i, po odpowiednim
obudowaniu, stosowaÊ autonomicz-
nie. SzczegÛlnie polecam zastoso-
wanie go jako domowego zegarka
umieszczonego np. w†sypialni. £a-
godne, oliwkowe úwiat³o emitowa-
ne przez podúwietlany wyúwietlacz
LCD nie tylko nie denerwuje i†nie
utrudnia zaúniÍcia, ale w†ciemnoúci
wytwarza mi³y nastrÛj.
Do skonstruowania tego zegara
sk³oni³a mnie jeszcze inna oko-
licznoúÊ. Mia³em zamiar kolejny
raz wyprÛbowaÊ w†praktyce moø-
liwoúci, jakie daje opisywany
w†Elektronice Praktycznej rewela-
cyjny pakiet BASCOM i†zaprezen-
towaÊ rezultaty moich doúwiad-
czeÒ Czytelnikom.
Napisanie programu obs³uguj¹-
cego zegar okaza³o siÍ wyj¹tkowo
³atw¹ czynnoúci¹, szczegÛlnie pod-
czas realizowania procedur obs³u-
guj¹cych wyúwietlacz alfanume-
ryczny LCD, odczytuj¹cych i†zapi-
suj¹cych dane do i†z†uk³adu ze-
gara czasu rzeczywistego i†odczy-
tywania temperatury z†popularne-
go termometru cyfrowego DS1820.
Program zosta³ napisany w†ci¹gu
kilku godzin, i†to niezbyt wytÍ-
øonej pracy.
Samo, ³atwe i†przyjemne, pisa-
nie programu to jeszcze nie wszys-
tkie udogodnienia oferowane przez
pakiet BASCOM. Kaødy napisany
program wymaga wielokrotnego
przetestowania w†celu wykrycia
i†poprawienia b³ÍdÛw. Czynnoúci
te zajmuj¹ programiúcie zwykle
najwiÍcej czasu, g³Ûwnie ze wzglÍ-
du na koniecznoúÊ wielokrotnego
programowania procesora, umiesz-
czania go w†uruchamianym uk³a-
dzie i†po stwierdzeniu wystÍpo-
wania ewentualnego b³Ídu, po-
nownego programowania uk³adu.
Elektronika Praktyczna 7/2000
23
208772509.015.png
Programowany zegar z wyświetlaczem LCD
Rys. 1. Schemat elektryczny zegara.
Zupe³nie inaczej mia³a siÍ spra-
wa podczas pisania i†testowania
programu w†úrodowisku BASCOM-
a. Ca³y program (z†wyj¹tkiem frag-
mentu odczytu danych z†termo-
metru DS1820) zosta³ przetestowa-
ny bez koniecznoúci programowa-
nia procesora, wy³¹cznie z†wyko-
rzystaniem wbudowanego w†BAS-
COM emulatora sprzÍtowego i†pro-
gramowego. Da³o mi to niespoty-
kany dot¹d komfort pracy i†pew-
noúÊ, øe po usuniÍciu z†programu
dyrektywy symulacji, skompilowa-
niu go i†zaprogramowaniu proce-
sora, wszystko powinno dzia³aÊ od
razu poprawnie. Tak teø siÍ sta³o,
a†program wymaga³ jedynie drob-
nych przerÛbek polegaj¹cych na
dostosowaniu opÛünieÒ czasowych
do znacznie szybszej w†porÛwna-
niu z†symulacj¹, pracy programu.
Jedynie procedura odczytu da-
nych z†termometru DS1820 wyma-
ga³a testowania programu bezpo-
úrednio w†zaprogramowanym pro-
cesorze. Stosowany przeze mnie
emulator sprzÍtowy MCS Electro-
nics nie pozwala (jak dot¹d) na
emulacjÍ transmisji 1WIRE. S¹dzÍ
jednak, øe po konsultacji z†firm¹
MCS Electronics uda mi siÍ w†naj-
bliøszym czasie usun¹Ê tÍ niedo-
godnoúÊ.
Prezentowany uk³ad realizuje
nastÍpuj¹ce funkcje:
1.Wyúwietlanie bieø¹cego czasu
z†rozdzielczoúci¹ 1s.
2.Wyúwietlanie aktualnej daty.
3.Funkcja budzika ustawianego
z†rozdzielczoúci¹ 1†minuty.
4.Alternatywne wyúwietlanie tem-
peratury panuj¹cej w†pomiesz-
czeniu.
Opis dzia³ania uk³adu
Schemat elektryczny zegara po-
kazano na rys. 1 . Sercem uk³adu
jest dobrze nam znany procesor
typu AT89C2051 firmy ATMEL.
W†naszym uk³adzie do mikro-
kontrolera zosta³y do³¹czone na-
stÍpuj¹ce urz¹dzenia peryferyjne:
1. Zegar czasu rzeczywistego
zrealizowany na popularnym uk³a-
dzie PCF8583. Uk³ad ten (zosta³
szczegÛ³owo omÛwiony w†EP9/94)
zawiera w†swojej strukturze zegar
- kalendarz 4-letni, uk³ad trans-
misji I 2 C, wyjúcie generacji prze-
rwania INT oraz generator stabi-
lizowany zewnÍtrznym rezonato-
rem kwarcowym 32768Hz.
PCF8583 dysponuje 240 bajtami
wolnej pamiÍci EEPROM, ktÛr¹
konstruktor moøe wykorzystaÊ
zgodnie z†aktualnymi potrzebami.
24
Elektronika Praktyczna 7/2000
208772509.016.png 208772509.017.png 208772509.018.png 208772509.001.png 208772509.002.png 208772509.003.png 208772509.004.png 208772509.005.png 208772509.006.png 208772509.007.png
Programowany zegar z wyświetlaczem LCD
W†naszym uk³adzie PCF8583 po-
siada dwa ürÛd³a zasilania: wspÛl-
ne z†reszt¹ uk³adu i†awaryjne,
z†baterii BT1 o†napiÍciu 1,5V.
Obydwa ürÛd³a zasilania separo-
wane s¹ za pomoc¹ diod D1 i†D2.
2. Wyúwietlacz alfanumeryczny
LCD jest sterowany przez proce-
sor w†trybie czterobitowym.
W†uk³adzie zastosowano wyúwiet-
lacz 2x16 znakÛw z†podúwietla-
niem, ale moøliwe jest takøe
uøycie taÒszych wyúwietlaczy bez
podúwietlania. Kontrast wyúwiet-
lacza regulowany jest za pomoc¹
potencjometru montaøowego PR1.
3. KlawiaturÍ czteroprzycisko-
w¹ (S1..S4), s³uø¹c¹ do obs³ugi
funkcji zegara.
4. Alternatywnie moøna do³¹-
czyÊ do uk³adu termometr typu
DS1820 (z³¹cze CON3). Procesor
automatycznie rozpoznaje obec-
noúÊ do³¹czonego termometru
i†odpowiednio organizuje ekran
wyúwietlacza, zapewniaj¹c miejs-
ce dla dodatkowej informacji.
Procesor jest taktowany sygna-
³em z wewnÍtrznego oscylatora,
ktÛrego czÍstotliwoúÊ stabilizowa-
na jest kwarcem Q1 o†czÍstotli-
woúci rezonansowej 11,059MHZ.
Poniewaø zegar czasu rzeczywis-
tego jest taktowany odrÍbnym os-
cylatorem (z rezonatorem kwarco-
wym Q2), czÍstotliwoúÊ rezonan-
sowa kwarcu Q1 moøe byÊ doúÊ
dowolna (od 8†do 24MHz)
AnalizÍ pracy uk³adu rozpocz-
niemy od momentu pierwszego
w³¹czenia zasilania, a†pos³ugiwaÊ
siÍ bÍdziemy przy tym fragmen-
tami listingu programu obs³uguj¹-
cego zegar.
Natychmiast po w³¹czeniu zasi-
lania procesor rozpoczyna cyklicz-
ne odczytywanie zawartoúci pamiÍ-
ci RAM uk³adu PCF8583, a†kon-
kretnie rejestrÛw przechowuj¹cych
informacjÍ o†aktualnym czasie i†da-
cie. Podprogram odczytu tych da-
nych, napisany w†dialekcie MCS
BASIC stosowanym w†pakiecie
BASCOM, jest wyj¹tkowo prosty:
Sub Gettime
I2cstart 'inicjalizacja
'magistrali I 2 C
I2cwbyte &HA0 'podanie adresu
'podstawowego PCF8583
I2cwbyte 2 'wybranie drugiego
'rejestru
I2cstart 'start transmisji
I2cwbyte &HA1 'zgłoszenie
'zamiaru odczytu informacji
I2crbyte S,Ack
'odczyt rejestru sekund
'(z potwierdzeniem - Ack)
I2crbyte M,Ack
'odczyt rejestru minut
'(z potwierdzeniem - Ack)
I2crbyte H,Ack
'odczyt rejestru godzin
'(tryb 24h)
'(z potwierdzeniem - Ack)
I2crbyte Yd,Ack
'odczyt dnia miesiąca
'(z potwierdzeniem - Ack)
I2crbyte Wm,Nack
'odczyt miesiąca
'(bez potwierdzenia - Nack)
I2cstop
'zatrzymanie transmisji
Rys. 2. Wygląd wyświetlacza po
pierwszym włączeniu zegara.
Rys. 3. Ustawianie czasu.
End Sub
Poniewaø zegar zosta³ urucho-
miony po raz pierwszy, to rejestry
uk³adu PCF8583 s¹ wyzerowane
i†na wyúwietlaczach ukaøe siÍ naj-
prawdopodobniej informacja, nie-
zbyt odpowiadaj¹ca aktualnemu
czasowi ( rys. 2 ). A†zatem, pierw-
sz¹ czynnoúci¹, jak¹ bÍdziemy mu-
sieli wykonaÊ, bÍdzie ustawienie
w³aúciwego czasu i†daty. Naciska-
my klawisz S1 (ustawianie czasu)
i†za pomoc¹ klawiszy S1 i†S2
ustawiamy godziny i†minuty aktu-
alnego czasu ( rys. 3 ). CzynnoúÊ tÍ
potwierdzamy klawiszem S3, po-
wracaj¹c do trybu wyúwietlania
aktualnego czasu i†daty. Z†kolei,
po naciúniÍciu klawisza S2 uzys-
kamy dostÍp do trybu ustawiania
daty. Podobnie jak to by³o w†przy-
padku minut i†godzin, za pomoc¹
klawiszy S1 i†S2 ustawiamy aktu-
alny dzieÒ miesi¹ca i†miesi¹c ( rys.
4 ). Naleøy zwrÛciÊ uwagÍ, øe po
kaødorazowym ustawieniu czasu
licznik sekund jest zerowany.
Ustawiony czas i†data zapisy-
wane s¹ natychmiast we w³aúci-
wych rejestrach uk³adu PCF8583.
Podprogram wykonuj¹cy tÍ opera-
cjÍ jest rÛwnie prosty, jak odczy-
tywanie danych:
Rys. 4. Ustawianie daty.
Rys. 5. Ustawianie alarmu.
Rys. 6. Wygląd wyświetlacza po
dołączeniu czujnika temperatury
I2cstart 'ponowne
'rozpoczęcie transmisji
I2cwbyte &HA0 'ustawienie trybu
'zapisu
I2cwbyte 2 'wybranie drugiego
'rejestru (sekund)
I2cwbyte S'zapis sekund
I2cwbyte M 'zapis minut
I2cwbyte H 'zapis godzin
I2cwbyte Yd 'zapis dnia
'miesiąca
I2cwbyte Wm 'zapis miesiąca
I2cstop
Sub Settime
I2cstart 'inicjalizacja
'magistrali I 2 C
I2cwbyte &HA0 'podanie adresu
'podstawowego PCF8583
I2cwbyte 0 'wybranie zapisu
'do rejestru kontrolnego
I2cwbyte 8 'ustawienie
'parametrów zapisu
I2cstop
‘koniec transmisji
End sub
'zatrzymanie
'transmisji
Nasz zegar, jak na tego typu
uk³ad przysta³o, wyposaøony jest
w†budzik, ktÛry moøemy ustawiaÊ
po naciúniÍciu w†trybie wyúwiet-
lania czasu przycisku S4. Czas
Elektronika Praktyczna 7/2000
25
 
208772509.008.png 208772509.009.png 208772509.010.png 208772509.011.png 208772509.012.png
Programowany zegar z wyświetlaczem LCD
budzenia ustawiamy identycznie
jak aktualny czas i†datÍ, z†tym, øe
budzik moøe byÊ uaktywniony lub
wy³¹czony za pomoc¹ przycisku
S4 ( rys. 5 ), w†trybie ustawiania
czasu budzenia.
Elementem wykonawczym
uk³adu budzika jest przekaünik
RL1 o†duøej obci¹øalnoúci stykÛw.
Jak do tej pory, nic nie wspo-
minaliúmy o†termometrze wbudo-
wanym w†nasz zegarek. Pozostaje
on w†ìukryciuî, aø do momentu
do³¹czenia do z³¹cza CON3 ter-
mometru cyfrowego typu DS1820.
Program automatycznie rozpozna-
je fakt do³¹czenia tego uk³adu
i†natychmiast, po przeorganizowa-
niu ekranu wyúwietlacza, rozpo-
czyna wyúwietlanie temperatury
w†pomieszczeniu ( rys. 6 ). Tempe-
ratura wyúwietlana jest z†rozdziel-
czoúci¹ 0,1 O C, a†procedura odczy-
tu zawartoúci rejestrÛw uk³adu
DS1820 jest rÛwnie prosta, jak
procedury obs³ugi zegara czasu
rzeczywistego.
1wreset 'reset magistrali
'I 2 C
1wwrite &HCC 'odczyt zawartości
'RAM (scretchpad)
1wwrite &HBE 'odczyt zawartości
'RAM (scretchpad)
Bd(1) = 1wread(9)
'odczyt zawartości RAM
'(scretchpad)
1wreset 'reset magistrali
'I 2 C
Tmp = Bd(1) And 1
'kalkulacja danych
If Tmp = 1 Then Decr Bd(1)
'do osiągnięcia
T = Makeint(bd(1),Bd(2))
'precyzji 0,1 O C
T = T * 50 : T = T - 25 :
T1 = Bd(8) - Bd(7) :
T1 = T1 * 100
T1 = T1 / Bd(8) : T = T + T1 :
T = T / 10
X = T / 10
End Sub
*) Czas oczekiwania nie moøe byÊ
krÛtszy od 300ms, dla ìpewnoúciî
zada³em czas 350ms i†st¹d koniecz-
noúÊ dwukrotnego wydania polece-
nia ìwaitmsî (maksymalnie ìwaitms
255î).
WYKAZ ELEMENTÓW
Rezystory
PR1: potencjometr montażowy
miniaturowy 2,2k
R1..R4: 3,3k
R5:
4,7k
W
Kondensatory
C1, C2: 33pF
C3: 33pF lub trymer 56pF
C4: 100
F/10V
C5: 100nF
C6: 1
F/10V
C7: 220nF
Półprzewodniki
D1: BAT85
D2, D3: 1N4148
IC1: zaprogramowany procesor
89C2051
IC2: PCF8583
IC3: DS1820
T1: BC548
Różne
CON1: ARK3
CON2: ARK2
DP1: wyświetlacz alfanumeryczny
16*2
Q1: rezonator kwarcowy
11,059MHz
Q2: rezonator kwarcowy 32768Hz
RL1: przekaźnik RM96−5V
S1..S4 przycisk microswitch 10 mm
goldpin 1x14, 1x2 jumper
ząłcze szufladowe 1x14
Sub Read1820
1wwrite &HCC : 1wwrite &H44
'inicjalizacja konwersji
'A/D
Waitms 250 'oczekiwanie na
'koniec konwersji*)
Waitms 100 'oczekiwanie na
'koniec konwersji*)
Efektem ìodnalezieniaî przez
uk³ad termometru i†poprawnego
odczytania temperatury jest wy-
úwietlenie w†dolnej czÍúci wy-
úwietlacza alfanumerycznego jej
aktualnej wartoúci (rys. 6).
No i†tak, omawiaj¹c fragmenty
programu steruj¹cego naszym ze-
garem, opisaliúmy takøe jego dzia-
³anie. Naleøy jeszcze tylko dodaÊ,
øe uk³ad powinien byÊ zasilany
napiÍciem sta³ym, stabilizowanym
o†wartoúci +5VDC. Jako bateriÍ BT
moøna zastosowaÊ praktycznie do-
wolne ogniwo 1,5V, nawet typu
ìzegarkowegoî. Zapewni ona pod-
trzymanie pracy zegara czasu
rzeczywistego w†momentach
przerw w†zasilaniu zegara. Roz-
wi¹zanie to pozwala na niestoso-
wanie jakiegokolwiek zasilania
awaryjnego zegara.
elektrolitycznych.
Uwaga: Przyciski S1..S4 oraz
rz¹d goldpinÛw ³¹cz¹cy p³ytkÍ
bazow¹ z†wyúwietlaczem naleøy
wlutowaÊ od strony druku!
Po sprawdzeniu jakoúci mon-
taøu lutujemy wyúwietlacz do sze-
regu goldpinÛw wystaj¹cych
z†p³ytki od strony druku i†nastÍp-
nie wk³adamy uk³ady scalone
w†podstawki. Podczas montaøu
nie naleøy wzorowaÊ siÍ na fo-
tografiach zamieszczonych w†arty-
kule. W†uk³adzie prototypowym
zastosowano bowiem roz³¹czalne
po³¹czenie pomiÍdzy p³ytk¹ a†wy-
úwietlaczem, co w†wykonaniu
uk³adu docelowego wymaga³oby
k³opotliwego przed³uøania przy-
ciskÛw S1..S4.
Zbigniew Raabe, AVT
zbigniew.raabe@ep.com.pl
Montaø i†uruchomienie
Na rys. 7 pokazano rozmiesz-
czenie elementÛw na dwÛch p³yt-
kach obwodÛw drukowanych wy-
konanych na laminacie jedno-
stronnym. Montaø wykonujemy ty-
powo, rozpoczynaj¹c od wlutowa-
nia w†p³ytki diod i†rezystorÛw,
a†koÒcz¹c na podstawkach pod
uk³ady scalone i†kondensatorach
Rys. 7. Rozmieszczenie elementów
na płytce drukowanej.
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
pcb.html oraz na p³ycie CD-EP07/
2000B w katalogu PCB .
26
Elektronika Praktyczna 7/2000
R6: 4,7k
208772509.013.png 208772509.014.png
Zgłoś jeśli naruszono regulamin