Radioelektronik Audio-HiFi-Video 8/2003
Przedstawiamy niezwy-
kle prost¹, lecz w pe³ni
funkcjonaln¹ i nowocze-
sn¹ zabawkê, któr¹ mo¿e
zmontowaæ ka¿dy po-
cz¹tkuj¹cy adept sztuki
programowania i wyko-
rzystania mikrosterowni-
ków AVR lub zgodnych ze
standardem przemys³o-
wym MCS51,.
U
k³ad symuluje rzut kostk¹ sze-
cienn¹ do gier (np. do gry w ko-
ci lub do gier planszowych).
Prawdopodobieñstwo wyrzuce-
nia od 1 do 6 oczek jest takie samo jak
w prawdziwej kostce i wynosi 1/6. Uk³ad
wywietla wynik wyrzuconych oczek, w za-
le¿noci od wersji wykonania, na diodach
LED lub na wywietlaczu 7 segmentowym
w postaci odpowiedniej cyfry.
Opis uk³adu
W przedstawionej konstrukcji wykorzystano
tani i popularny mikrosterownik AVR _
At90s2313, który steruje wszystkimi funkcja-
mi uk³adu. Schematy symulatorów przedsta-
wiono na rys.1 i 2. Ró¿ni¹ siê one miêdzy
sob¹ sposobem wywietlania wyniku wyrzu-
conych oczek. Niewielkie ró¿nice s¹ równie¿
w programach obs³uguj¹cych uk³ady. Mikro-
sterownik jest wyposa¿ony w minimaln¹
liczbê elementów zewnêtrznych umo¿liwia-
j¹cych jego poprawne funkcjonowanie. Przy-
cisk Start/Stop s³u¿y zarówno do wprawie-
nia kostki w ruch, jak i do jej zatrzymania.
Po w³¹czeniu napiêcia zasilaj¹cego kostka
toczy siê (jest w ruchu), wiec¹ siê wszy-
stkie diody D1
÷
D7 lub znak _ na wywie-
tlaczu W1. Je¿eli teraz naciniemy przy-
cisk SW1, to po jego zwolnieniu kostka za-
trzymuje siê. W wersji z diodami wieca siê
tylko te, które symbolizuj¹ liczbê wyrzuco-
nych oczek, a pozosta³e gasn¹, natomiast
w przypadku wywietlacza W1 pojawia siê
cyfra od 1 do 6.
Je¿eli po raz kolejny naciniemy SW1, to
po jego zwolnieniu kostka znowu zaczyna siê
toczyæ, zawiecaj¹ siê wszystkie diody lub
MIKROPROCESOROWY SYMULATOR
RZUTU KOSTK¥
Rys. 1. Schemat mikroprocesorowego
symulatora rzutu kostk¹ z diodami
Rys. 2. Schemat mikroprocesorowego
symulatora rzutu kostk¹ z wywietlaczem
Rys. 3. P³ytka drukowana symulatora z diodami
(skala 1:1)
Rys. 4. P³ytka drukowana symulatora
z wywietlaczem (skala 1:1)
znak _ na wywietlaczu SW1. Dodatkow¹
sygnalizacjê czy kostka siê toczy czy te¿ jest
zatrzymana zapewniaj¹ diody wiec¹ce D8
i D9. Ograniczenie wartoci pr¹du p³yn¹ce-
go przez diody, wywietlacz, i porty I/O mikro-
sterownika daj¹ rezystory R3
÷
R11. Rezy-
stor R2 jest elementem uk³adu kasowania mi-
krosterownika AVR po w³¹czeniu napiêcia
zasilaj¹cego. Kondensatory C1 i C2 odsprzê-
gaj¹ i filtruj¹ napiêcie zasilaj¹ce +5 V. Ca³oæ
uzupe³nia oscylator kwarcowy 1 MHz taktu-
j¹cy mikrosterownik US1.
2
z wywietlaczem. Nastêpnie przystêpuje-
my do wlutowania pozosta³ych elementów
zgodnie ze schematami monta¿owymi (rys.5
i 6) z wyj¹tkiem mikroprocesora US1. Na po-
lu lutowniczym pod US1 umieszczamy od-
powiedni¹ podstawkê, w któr¹ póniej za-
montujemy zaprogramowany uk³ad.
Teraz nale¿y zaprogramowaæ mikroprocesor
At90s2313 (mog¹ byæ te¿ At89c1051, 2051
lub 4051, przy zmodyfikowanym odpowie-
dnio uk³adzie reset mikrosterownika).
W celu zaprogramowania trzeba pobraæ
z Internetu, (ze strony redakcyjnej lub auto-
ra) odpowiednie programy obs³ugi. W zale¿-
noci od potrzeby pobieramy program Ko-
stka11.hex przeznaczony do sterowania
wywietlaczem 7. segmentowym lub pro-
gram Kostka22.hex do sterowania diodami
LED. Nastêpnie nale¿y przyst¹piæ do zapro-
gramowania mikroprocesora przy pomocy
odpowiedniego programatora. Je¿eli nie
dysponujemy w³asnym programatorem, to
powinnimy skorzystaæ z pomocy serwisu
elektronicznego dysponuj¹cego programa-
torem do mikroprocesorów standardu AVR.
Zaprogramowany uk³ad montujemy w pod-
stawkê na p³ytce drukowanej, a nastêpnie
do³¹czamy napiêcie zasilaj¹ce, które mo¿e
mieciæ siê w przedziale od 4 do 6 V. Uk³ad
mo¿na zasilaæ ze zwyk³ej p³askiej baterii
3R12. Je¿eli w trakcie odwzorowania uk³a-
du nie pope³nilimy ¿adnych b³êdów a pro-
ces programowania i weryfikacji programu
dla mikrosterownika przebieg³ pomylnie,
to uk³ad powinien dzia³aæ od razu po w³¹cze-
niu napiêcia zasilaj¹cego, bez ¿adnych do-
datkowych czynnoci uruchomieniowych.
Dziêkujemy firmie Elfa Polska za dostarcze-
nie najwa¿niejszych podzespo³ów urz¹dze-
nia (tablica). Podzespo³y mo¿na kupiæ w sy-
stemie sprzeda¿y wysy³kowej Elfa: obslu-
ga.klienta
@
elfa.se lub tel. (0-22) 520-2200.
Ceny mo¿na znaleæ w katalogu
www.elfa.se/pl
n
Mariusz Janikowski
Bc107
@
Poczta.Onet.pl
L I T E R A T U R A
[1] Ga³ka P., Ga³ka P.: Podstawy programowania mikro-
kontrolera 8051, MIKOM, Warszawa 1995, wyd. I.
[2] Pe³ka R.: Mikrokontrolery Architektura programowa-
nie zastosowania, WK£, Warszawa 1999, wyd. I.
23
Radioelektronik Audio-HiFi-Video 8/2003
Opis programu
Do obs³ugi przedstawionej konstrukcji s³u-
¿¹ programy Kostka11.hex, Kostka11.asm,
Kostka22.hex, Kostka22.asm, które zosta-
³y napisane dla wykorzystanego w kon-
strukcji mikrosterownika AVR At90s2313.
Programy mo¿na pobraæ z redakcyjnej stro-
ny internetowej http://www.radioelektronik.pl
lub z witryny autora http://bc107.republika.pl.
Program Kostka11 obs³uguje wersjê uk³adu
z wywietlaczem 7 segmentowym, nato-
miast Kostka22 jest przeznaczony do obs³u-
gi diod wiec¹cych. Zatrzymanie lub urucho-
mienie toczenia siê kostki jest realizowa-
ne za porednictwem zg³oszenia przerwa-
nia sprzêtowego INT0 po naciniêciu przy-
cisku SW1. Obs³ugê przerwania zapewnia
fragment programu umieszczony w pamiê-
ci Flash ROM mikroprocesora pocz¹wszy
od adresu $01 hex. W kodzie ród³owym
fragment ten zaczyna siê od nag³ówka
.ORG Int0addr.
Do sygnalizacji stanu kostki wykorzystano
flagê ogólnego przeznaczenia Fo umieszczo-
n¹ w obszarze rejestrów, w rejestrze R30.
W momencie zg³oszenia przerwania pro-
gram sprawdza stan tej flagi i w zale¿noci od
tego, czy jest ona ustawiona czy zgaszona
podejmuje odpowiednie dzia³anie polegaj¹-
ce na wywietleniu liczby wyrzuconych oczek
lub ustawieniu wywietlacza w stanie nieak-
tywnym, kiedy kostka toczy siê.
G³ówna pêtla programu zaczynaj¹ca siê od
etykiety START: realizuje wylosowany wynik,
który widzimy na wywietlaczu lub diodach.
Losowanie odbywa siê przez cykliczn¹ i re-
gularn¹ zmianê kodu wpisanego do rejestru
R31, która zmienia siê co 3 cykle maszyno-
we. (Przy rezonatorze 1 MHz zmiana bêdzie
wiêc nastêpowaæ regularnie co 3
µ
s). Dla ³a-
twiejszego zrozumienia istoty rzeczy g³ów-
na czêæ programu zosta³a podzielona na
sekcje od 1 do 6, z których ka¿da jest tak
skonstruowana, aby jej wykonanie zajê³o
w³anie 3 cykle maszynowe. Dziêki temu
przychodz¹ce w dowolnej chwili przerwanie
INT0 mo¿e z równym prawdopodobieñ-
stwem trafiæ na jeden z szeciu kodów liczb
lub iloci zapalonych diod w rejestrze R30.
W wyniku tego prawdopodobieñstwo tra-
fienia liczby od 1 do 6 jest takie samo jak na
prawdziwej kostce i wynosi 1/6. Je¿eli
zmienimy liczbê cykli maszynowych przypa-
daj¹cych na poszczególne sekcje, to w kon-
sekwencji tego zmieni siê równie¿ rozk³ad
tego prawdopodobieñstwa. Kod ród³owy
programu zawiera jeszcze dwa dodatkowe
podprogramy wywo³ywane w trakcie swej
pracy i s³u¿¹ce do nastêpuj¹cych celów:
podprogram MILISEK realizuje kalibrowane
opónienie 20 ms s³u¿¹ce do eliminacji
drgañ zestyków prze³¹cznika SW1 oraz
podprogram CZEKAJ, który realizuje chwi-
lowe wstrzymanie pracy programu. Warto
w tym miejscu dodaæ, ¿e autor tego artyku-
³u udostêpnia tak¿e programy obs³ugi mikro-
sterowników At89c1051, 2051, 4051, mog¹-
cych pracowaæ zamiennie zamiast uk³adu
2313.
Monta¿ i uruchomienie
Monta¿ uk³adu rozpoczynamy od wykona-
nia jednej z p³ytek drukowanych przedsta-
wionych na rys. 3 lub 4. W pierwszej kolej-
noci lutujemy zwory ZW dla wersji uk³adu
Rys. 5. Rozmieszczenie elemntów
na p³ytce drukowanej symulatora z diodami
Rys. 6. Rozmieszczenie elemntów na p³ytce
drukowanej symulatora z wywietlaczem
Nazwa
Typ
Numer katalogowy
ELFA
Mikroprocesor
At90s2313
73-665-78
Wywietlacz
MAN6660
75-512-52
Oscylator
1 MHz
74-557-77
Oscylator
12 MHz
74-560-31
LED bia³a
110140-01
75-008-95
LED czerwona
EL264-7IT
75-021-56
LED zielona
HLMP3950
75-049-70