background image

   91

Elektronika  Praktyczna  6/2001

K  U  R  S

W tym odcinku postaram siÍ wy-

jaúniÊ zastosowanie tablic na przyk³a-
dzie  projektu  prostego  uk³adu,  ktÛ-
rego  opis  udostÍpniamy  na  p³ycie
CD-EP6/2001B  w†katalogu  \Noty  ka-
talogowe  do  projektow
  oraz  na  na-
szej  stronie  internetowej  w†dziale
Download>Dokumentacje.

W†sk³ad biblioteki pakietu ST6-Re-

alizer  wchodz¹  dwa  rodzaje  tablic:
IndexTable  i†LookupTable,  oznaczone
symbolami pokazanymi na rys. 1 i†2.
IndexTable daje nam moøliwoúÊ kon-

wersji wartoúci wejúciowej na dowol-
n¹  (niekoniecznie  liniowo  zaleøn¹)
wartoúÊ wyjúciow¹, ktÛr¹ definiujemy
w†tablicy.  W†LookupTable  wartoúÊ
wejúciowa  jest  wykorzystywana  do
znalezienia  i†umieszczenia  wartoúci
sta³ej  z†tablicy  na  jej  wyjúciu.  Opis
ten moøe wydawaÊ siÍ trochÍ zawi-
³y, ale sprÛbujemy go sprowadziÊ do
prostszej  postaci  w†praktycznym  za-
stosowaniu.

Uruchamiamy Realizera i†tworzymy

nowy projekt, nazywaj¹c go np. EP-
KURS
.  Z†biblioteki  wybieramy  ele-
menty  IndexTable  oraz  IndexLookup
i†umieszczamy je na planszy schema-
tu. Podczas umieszczania na planszy
schematu tych elementÛw otworzy siÍ
okno  edycji  nazwy  tablicy  (rys.  3)
oraz okno deklaracji wartoúci sta³ych
przechowywanych  w†tablicy  (rys.  4).
NastÍpnie  zostaje  utworzony  plik
*.tab o†takiej samej nazwie jak zade-
klarowano dla tablicy. Po utworzeniu
pliku  otwiera  siÍ  okno  edytora  za-
wartoúci  tablic,  ktÛre  przedstawiamy
na rys. 5 (IndexTable) i†rys. 6†(Loo-
kupTable
)Obydwa okna edytora tab-
lic po utworzeniu pliku *.tab zawie-
raj¹ tylko jedn¹ pozycjÍ def, w†ktÛrej
zadeklarowano  stan  wyjúÊ  tablic
w†przypadku  obecnoúci  na  wejúciu
wartoúci nie przewidzianej przez pro-
gramistÍ. Aby zwiÍkszyÊ liczbÍ pozy-
cji w†tablicy, moøna dokonaÊ impor-
tu zestawu wczeúniej przygotowanych
danych.  Najprostszym  sposobem  ich
przygotowania jest wykorzystanie do-
wolnego edytora tekstowego (np. sys-

temowego  Notepada)  do  edycji  pli-
kÛw *.tab.

Poniewaø mamy dwa rodzaje tab-

lic, bÍdziemy mieli dwa sposoby za-
pisu danych:
- Dla tablicy LookupTable dane nale-

øy  podawaÊ  w†dwÛch  kolumnach
oddzielonych  przecinkiem  (rys.  7).
Pierwsza kolumna to wartoúci wej-
úciowe, druga to odpowiadaj¹ce im
wartoúci wyjúciowe.

- W  przypadku  tworzenia  tablicy

IndexTable  zapis  danych  naleøy
wykonaÊ w†jednej kolumnie, ktÛra
przedstawia  wartoúci  wyjúciowe
jak to pokazano na rys. 8.

Opisan¹ metodÍ edycji zawartoú-

c i   t a b l i c   n a l e ø y   s t o s o w a Ê   t y l k o
przy  tworzeniu  ich  po  raz  pierw-

ST6−Realizer

Od pierwszego odcinka ìKursuî

poúwiÍconego Realizerowi

otrzymujemy wiele pytaÒ

zwi¹zanych z†rÛønymi

aspektami stosowania tego

oryginalnego narzÍdzia. Jednym

z†najczÍúciej powtarzaj¹cych

jest pytanie o†sposÛb

wykorzystywania tablic, ktÛre

wchodz¹ w†sk³ad zestawu

standardowych elementÛw

bibliotecznych. Postanowiliúmy

wiÍc poúwiÍciÊ ten odcinek

wyjaúnieniu w¹tpliwoúci

zwi¹zanych w³aúnie z†tablicami.

Narysuj  swój  program!

część  5

Rys.  5.

Rys.  6.

Rys.  1.

Rys.  2.

Rys.  3.

Rys.  4.

background image

K  U  R  S

Elektronika  Praktyczna  6/2001

92

szy.  PÛüniej,  gdy  bÍdziemy  mieli
juø kilka tablic utworzonych w†rÛø-
nych projektach, moøemy tylko do-
konywaÊ importu danych do nowej
tablicy.

Przyk³ad zastosowania

Po tej dawce teorii przyst¹pmy do

praktycznego zastosowania tablic. Na
rys. 9 przedstawiono schemat progra-
mu przygotowanego na potrzeby tego
odcinka. Jest to urz¹dzenie zliczaj¹ce
impulsy z†generatora taktuj¹cego i†wy-
úwietlaj¹ce  na  7-segmentowym  wy-
ú w i e t l a c z u   l i c z b Í   o d p o w i a d a j ¹ c ¹
liczbie zliczonych taktÛw zegara. Po-
miÍdzy  licznik  i†dekoder  w³¹czono
dwa  typy  tablic,  ktÛrych  wyjúcia
moøna wybraÊ za pomoc¹ multiplek-
sera sterowanego zewnÍtrznym sygna-
³em logicznym.

Licznik  countf  zlicza  impulsy

p o c h o d z ¹ c e   z † g e n e r a t o r a   o s c   d o
wartoúci  value  zaleønej  od  wpisa-
nego  rodzaju  zmiennej  w†liczniku
countf. Wyjúcie oscylatora po³¹czo-
n e   j e s t   z † w e j ú c i e m   z l i c z a j ¹ c y m
w†gÛrÍ  licznika  UP.  Z†pozosta³ych
wyprowadzeÒ licznika nie bÍdziemy
korzystaÊ.  Wejúcia  te  jednak  nie
mog¹  pozostaÊ  w†ìpowietrzuî,  naj-
proúciej do³¹czyÊ do nich elementy
constb  o†przypisanej  wartoúci  0.
Wyjúcie licznika val po³¹czone jest
z†wejúciami tablic AVT i†EP, nato-

miast wyjúcia tablic poprzez multi-
p l e k s e r   m u x 1   n a   w e j ú c i e   b l o k u
bunpack.  Sygna³y  z†jego  wyjúÊ  s¹
do³¹czone  do  wyjúÊ  dwustanowych
digout.

Program  dzia³a  nastÍpuj¹co:  im-

pulsy z†oscylatora zliczane s¹ przez
licznik countf. Podczas zliczania na
jego wyjúciu pojawia siÍ s³owo, ktÛ-
re  po  podaniu  na  wejúcie  tablicy
wywo³uje  przypisan¹  mu  w†tablicy
wartoúÊ. Pojawia siÍ ona na wyjúciu
tablic  i†nastÍpnie  -  poprzez  multi-
plekser - jest podawana na wejúcie
bloku bunpack, na wyjúciach ktÛre-
go pojawia siÍ odpowiednia kombi-
nacja  sygna³Ûw  logicznych  steruj¹-
cych  wyjúcia  A..G  oraz  I.  Do  tych

Rys.  9.

Rys.  7.

Rys.  8.

wyjúÊ  moøna  do³¹czyÊ  wyúwietlacz
lub diody LED z†w³¹czonymi w†sze-
reg rezystorami, o†wartoúci ok. 470

,

ograniczaj¹cymi pr¹d.
Krzysztof Górski, AVT
krzysztof.gorski@ep.com.pl

Projekt uk³adu opisanego w†arty-

kule zamieszczamy na p³ycie CD-EP6/
2001B w†katalogu \Noty katalogowe
do projektow oraz na stronie interne-
towej EP.

Na p³ycie CD-EP2/2001B opubliko-

waliúmy ST6-Realizera w†pe³nej wer-
sji.  Jest  on  takøe  dostÍpny  (wraz
z†katalogiem  procesorÛw  ST62)  na
p³ycie CD-EP2.