MPR
MPR
INTRODUCERE
Pentru a alimenta cu energie calitativa şi in cantităţi necesare consumatorii SAEE sunt înzestrate cu diferite
sisteme si instalaţii de automatica auxiliară. Din aceste sisteme de automatica un rol principal îl au sistemele de
telemecanica, sistemele de automatizare şi sistemele de protecţia prin relee.
Sistemele telemecanice sunt menite de a informa sau dirija la distanta prin fire sau prin unde instalaţii
concrete sau SAEE in general. Cele mai răspândite sisteme de telemecanica sunt telemăsura si telecontrol (TM-TC),
teledirijare (TM-TD), telesemnalizare (TM-TS).
Din sistemele de automatica in SAEE cele mai răspândite sunt RAR (reanclanşarea automata rapida)/АПВ
(автоматическое повторное включение) şi AAR (anclanşarea automată a rezervei)/АВР (автоматическое включение
резерва).
В СЭСн АПВ, как правило, устанавливают на отходящих фидерах ЛЭП и предназначены для
осуществления повторного включения выключателя при самоустраняемых повреждениях, что позволяет
обеспечивать дальнейшее бесперебойное ЭСн потребителей.
Устройства АВР в СЭСн используются, в основном, для включения резервного источника питания
при выходе из строя основного источника питания и им снабжаются все потребители I и частично II категорий.
Menirea protecţiei prin relee este de a preintâmpina şi localiza defectele si accidentele care deregleaza
funcţionarea normala a SAEE. Din protecţia prin relee cele mai răspândite sisteme ale SAEE a întreprinderilor
industriale sunt
- Protecţia maximala de curent, care întrerupe alimentarea cu energie electrica in caz, daca curentul
depăşeşte curentul nominal;
- Protecţia diferenţiala, care reacţionează la deteriorare înnuntru elementului, comparând curenţii la intrare
şi ieşire.
La primul etap o mare parte din sisteme de automatică o constituia circuitele pe baza releelor electrice.
Releul este un dispozitiv care reacţionează la modificarea parametrilor unui proces fizic (temperatura, presiune, curent
etc.). Atunci, când parametrul atinge valoarea prestabilita, releul efectuează o acţionare prin salt a mecanizmului de
execuţie, aceasta schimbare a stării mecanizmului fiind reversibila. Dacă pentru funcţionarea releului se utilizează
electricitatea, el este numit releu electric.
Denumirea de releu a fost utilizata pentru prima data in comunicaţie telegrafice, in care se folosea un
electromagnet cu contacte electrice fixate pe armatura lui (fig.1.).
Releul este un dispozitiv cu prag, adică el acţionează la depăşirea de către semnalul de comanda a unui
anumit nivel, numit prag de acţionare. Caracteristica generala a releului este prezentata in fig.1a, unde X este
parametrul de intrare, iar Y - parametrul de ieşire. După cum se vede din desen, releul acţionează la un anumit nivel al
semnalului de comanda Xact.
Fres
Y
Fem
X Y
Xacţ X
a) b)
a) b) c)
Fig.2. Elemente semiconductoare: (a) - dioda; (b) - tranzistor de tip n-p-n; (c) - tranzistor de tip p-n-p
Cu ivirea tranzistorelor SA AEE au devenit mai compacte după gabarit, cu mult sau micşorat cheltuielile de
alimentare, sa mărit fiabilitatea, termenul de funcţionare şi viteza de acţionare.
In ultimii ani o revoluţie au produso microcircuitele integrate. Microcircuitul integrat consta dintr-un şir de
elemente de tip semiconductoare unite intre ele după anumite scheme într-un singur corp rigid.
Cu dezvoltarea SAEE şi cerinţele majorate fata de SA pe lor au început să se folosească in automatizarea
AEE microcomputatoarele şi microprocesoare.
Schema structurala a dirijării automata cu ajutorul microprocesorului e prezentata pe fig.3. Traductor
transforma parametrii fizici controlaţi după care se efectuează dirijarea (presiunea, viteza etc.) in semnalele electrice
analogice (neîntrerupte in timp). Convertor analogic-numeric (CAN) transforma semnalele analogice electrice in
semnalele electrice discrete (numerice) capabile de a fi recepţionaţi de MP. Informaţia discreta primita se analizează şi
se prelucrează in MP după algoritmul de dirijare dat (programa) si la ieşirea MP se elaborează semnalele discrete de
dirijare. Convertor numerico analogic (CNA) transforma informaţia de la MP in informaţie analogice ante de a fi
recepţionaţi de sistemul automat de dirijare (SAD) care acţionează asupra obiectului de dirijare.
SAD CNA
Programa
Obiect de dirijare Microprocesor
Traductor CAN
Fig.3. Schema structurala a dirijarei automata cu ajutorul microprocesorului (SAD - sistemul automat de
dirijare; CNA – convertor numerico-analogic; CAN - convertor analogic-numeric)
Tema I. Sistemele numerice binar şi hexazecimal. Legile principale ale algebrei lui Bool
Таким образом, более удобной для использования в ЭВМ оказывается ДВОИЧНАЯ система
счисления. В этом случае для записи чисел используется всего две цифры: 0 и 1. В двоичной системе счисления
основанием является число 2, при этом соответствующий степенной ряд имеет вид:
... 28 27 26 25 24 23 22 21 20
... 256 128 64 32 16 8 4 2 1
и двоичное число с его помощью легко может быть приведено к десятичной системе счисления.
Например, 11012 = 8*1+4*1+2*0+1*1 =1310
Перевод числа из десятичной системы счисления в двоичную производится методом
последовательного деления числа на 2 до тех пор, пока частное от деления не станет равным 1. Число в двоичной
системе счисления записывается в виде остатков от деления, начиная с последнего частного, слева направо.
Пример перевода числа 132 в двоичный код:
132 | 2 --------остаток--------> 0
66 | 2 -------остаток-------> 0
33 | 2 ------остаток------> 1
16 | 2 -----остаток-----> 0
8 | 2 ----остаток----> 0
4 | 2 ---остаток---> 0
2 | 2 --остаток--> 0
1 | 2 -остаток-> 1
Итак, 13210 = 100001002 .
Проверка: 100001002 = 1*128 +0*64+0*32+0*16+0*8 + 1*4+0*2+0*1 = 13210
По рассмотренному правилу числа можно переводить и в другие широко распространенные системы
счисления: шестнадцатеричную, восьмеричную. Во всех случаях деление переводимых чисел производится на
основание новой системы счисления.
1.2. Sistemul hexazecimal
Necătând la aceia, că microprocesorul foloseşte semnalele codului binar 1 şi 0 pentru a înlesni şi micşora
volumul programei, programarea se efectuează în codul hexazecimal. Pentru reprezentarea cifrelor hexazecimale sunt
folosite zece cifre: 0 – 9 şi şase litere A, B, C, D, E, F.
Tabela echivalenţei între codurile zecimal, binar şi hexazecimal:
Tabelul 1
Codul zecimal Codul hexazecimal Codul binar
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
Trecerea de la sistemul binar la sistemul hexazecimal se efectuează în următorul mod: împărţim codul binar
în grupe câte 4 biţi de la dreaptă spre stângă, în caz de necesitate grupa superioară se completează până la tetrada cu
zerourile. Fiecare tetradă se înlocuieşte cu cifră hexazecimală respectivă. De exemplu: 1100 01002 = C416
Transferul din sistemul hexazecimal în sistemul binar se efectuează în mod invers: fiecare cifră hexazecimală
se înlocuim cu tetradă binară respectivă. De exemplu: E716 =1110 01112
1.3. Algebra logică
Circuitele logice (digitale) sunt circuite capabile să realizeze operaţii logice. Semnalul de ieşire reprezintă
rezultatul unei operaţii logice, aplicată semnalelor de intrare.
Mărimile, aplicate acestor circuite, pot avea doar două valori distincte, reprezentate simbolic prin cifrele "0"
şi "l" (respectiv: nivel de tensiune aproape de zero şi nivel înalt de tensiune), numite mărimi binare.
Pentru descrierea operaţiilor logice este folosit aparatul matematic, denumit algebră logică sau algebră
booleana (în cinstea matematicianului irlandez George Boole, care a elaborat-o).
Algebra logică studiază relaţiile între expresiile simple, din care sunt formate expresiile sofisticate. Algebra
booleana presupune, că expresia simplă poate conţine numai două valori: adevărat sau fals (true, falls), respectiv "0"
sau "1", prin urmare, expresia simplă este o funcţie binară.
Funcţiile logice pot fi reprezentate în diverse moduri, din care vom menţiona:
tabel de adevăr;
forme analitice (forma canonică disjunctivă, forma canonică conjunctivă);
diagrame Karnaugh;
logigrame (circuite cu porţi logice);
diagrame de timp, etc.
1.3.1. Tabel de adevăr
Totalitatea combinaţiilor posibile se poate urmări într-un tabel numit tabel de adevăr. Tabelul de adevăr este
un tabel al cărui număr de coloane coincide cu numărul de variabile (mărimi de intrare) plus numărul de funcţii
(mărimi de ieşire), iar numărul de linii este determinat de numărul de combinaţii posibile ale mărimilor de intrare, în
tabelul de adevăr pentru fiecare combinaţie a variabilelor este prezentată valoarea funcţiei. Prin urmare, tabelul de
adevăr este cel mai detaliat şi complet mod de prezentare a funcţiei logice şi prezintă algoritmul funcţionării circuitului
logic respectiv.
1.3.2. Forme analitice
Funcţiile logice pot fi redate, de asemenea, printr-o expresie analitică. Funcţia logică poate fi reprezentată
analitic prin diverse combinaţii ale operaţiilor de adunare şi înmulţire logică a variabilelor. Din punct de vedere practic
(pentru implementarea ulterioară a funcţiei logice într-un circuit logic) se acceptă în primul rând formele analitice
canonice în care funcţia logică este reprezentată sau prin suma produselor logice ale variabilelor sau prin produsul
sumelor logice ale variabilelor.
În continuare vor fi prezentate formele canonice care operează cu termeni canonici. Un termen este canonic
dacă în termenul respectiv sunt prezentate toate variabilele independente sub formă directă sau negată. Se cunosc două
asemenea forme canonice:
Forma canonică disjunctivă (FCD) exprimă funcţia logică ca o sumă logică (disjuncţie) de termeni canonici
conjunctivi (TCC). Forma canonică conjunctivă (FCC) exprimă funcţia logică ca un produs logic (conjuncţie) de
termeni canonici disjunctivi (TCD).
1.3.3. Diagrame Karnaugh
Diagrama Karnaugh este o reprezentare tabelară mai compactă datorită dispunerii bidirecţionale a valorilor
argumentelor. In cazul general, al unei funcţii logice de n argumente, diagrama Karnaugh conţine 2 p coloane şi 2q linii,
astfel încât p+q=n (dacă n este par, p=q, iar dacă n este impar q=p+l).
Diagrama Karnaugh are 2p·2q =2n câmpuri în care se trec valorile funcţiei pentru combinaţiile
corespunzătoare ale valorilor argumentelor. Valorile argumentelor sunt indicate la capetele liniilor şi coloanelor
diagramei. Dispunerea combinaţiilor argumentelor se face conform codului Gray (binar reflectat) care, fiind un cod
continuu şi ciclic, asigură adiacenta între câmpurile
1.3.4. Logigrame
Schema logică (logigrama) este o reprezentare grafică a funcţiei logice obţinută prin adoptarea unor semne
convenţionale pentru operaţiile logice. Logigrama indică de fapt topologia unui circuit logic care materializează funcţia
logică dată. Logigrama reprezintă schema conform cărei funcţia logică este realizată ca o combinaţie a funcţiilor logice
elementare. Prin urmare, simbolurile grafice adoptate pentru operaţiile logice constituie o reprezentare a circuitelor
logice, care materializează funcţiile logice elementare. Aceste simboluri vor fi studiate în tema următoare.
1.3.5. Diagrame de timp
Diagrama de timp reprezintă grafic o funcţie logică prin forma semnalelor sincronizate corespunzătoare
argumentelor şi funcţiei. Cifrelor binare O şi l li se ataşează semnale de nivel coborât şi, respectiv, ridicat, astfel încât
să existe o diferenţiere clară a acestora. Reprezentarea prin diagrame temporale este deosebit de utilă pentru studiul
sistemelor secvenţiale în a căror evoluţie intervine timpul. De asemenea, folosind această reprezentare, se pot studia
fenomenele tranzitorii de comutare şi fenomenele de hazard datorate funcţionării reale a elementelor, care
materializează variabile sau funcţii booleene.
1.3.6. Operaţiile algebrei Booleana
Noţiunile principale cu care se operează algebra Booleana sunt „ADEVĂRUL” („TRUE”, „ИСТИНА”) şi
„FALS” („FALSE”, „ЛОЖЬ”). În algebra Booleana „ADEVĂRUL” se notează prin „1” iar „FALS” prin „0”.
Din operaţiuni logice cel mai mare interes prezint următoarele:
Operaţia inversia logică NU (NOT, HET) transformă expresia adevărată în falsă şi invers. Operaţia inversia
se notează în următorul mod: Y = X . Pe logigrama inversia se prezintă prin circuleţ la întrare sau ieşire elementului
logic (fig.4).
Tabel de adevăr a inversiei logice:
XY0 1
11
0
Fig.4. Funcţia inversia (NU). Tabelul de adevăr şi logigrama conform standardelor CSI şi SUA
Operaţia suma logică SAU (OR, ИЛИ) (disjuncţia) este folosită pentru formarea expresiilor sofisticate din
expresii simple. In acest caz rezultatul va fi adevărat, dacă cel puţin o expresie simplă este adevărată. În algebra
Booleana disjuncţia se notează în următorul mod: Y = X1 + X2 sau Y = X1 \/ X2. Pe logigrama disjuncţia se prezintă
în următorul mod (fig.5).
X1 X2 Y X1
X1
0 0 0 1 Y Y
0 1 1
1 0 1
1 1 1 X2
X2
Fig.5. Funcţia disjuncţia (SAU). Tabelul de adevăr şi logigrama conform standardelor CSI şi SUA
Operaţia produsul logic ŞI (AND) (conjuncţia) de asemenea este folosită pentru formarea expresiilor
sofisticate din expresii simple, în acest caz rezultatul va fi adevărat numai în cazul când toate expresiile simple sunt
adevărate. Conjuncţia logică să notează în următorul mod: Y = X1 * X2 sau Y = X1 /\ X2 sau Y = Х1&X2. Pe
logigrama conjuncţia se prezintă în următorul mod (fig.6).
X1X2Y0 X1 X1
& Y Y
0
1
10
1
X2 X2
0
10
Fig.6. Funcţia conjuncţia (ŞI). Tabelul de adevăr şi logigrama conform standardelor CSI şi SUA
0
0
In teme următoare adăugător vor fi folosite funcţiile
SAU-NU (NOR,
1 funcţia Pierce) ŞI-NU (NAND, funcţia Şefferd) SAU EXLUSIV (XOR, anticoincidenţa)
Y X1 X 2 Y X 1* X 2 Y X 1* X 2 X 1* X 2
X1 X2 Y X1 X2 Y X1 X2 Y
0 0 1 0 0 1 0 0 1
0 1 0 0 1 1 0 1 0
1 0 0 1 0 1 1 0 0
1 1 0 1 1 0 1 1 1
Realizarea tuturor funcţiilor logice se face în prezent cu ajutorul circuitelor integrate. Circuitele logice
integrate se împart în două grupe mari în funcţie de tehnologia fabricării: circuite bipolare şi circuite unipolare (MOS).
Tehnica circuitelor logice integrate bipolare a evoluat rapid de la familia:
RTL (Rezistor Tranzistor Logic - logica prin rezistenţe şi tranzistoare),
la actualele tipuri:
DTL (Diode Tranzistor Logic - logica cu diode şi tranzistoare),
TTL (Tranzistor Tranzistor Logic - logica cu tranzistoare cuplate),
STTL (Schottky Tranzistor Tranzistor Logic - logica cu tranzistoare cuplate),
ECL (Emitter Coupled Logic - logica cuplată prin emitor),
I2L (logica integrată de injecţie).
Circuitele logice integrate unipolare sunt formate în baza tranzistoarelor cu efect de câmp şi în comparaţie cu
cele bipolare sunt caracterizate prin grad mai înalt de integrare şi consum redus. Principalele familii sunt: PMOS (MOS
canal P), NMOS (MOS canal N), CMOS (MOS complementar - logică cu tranzistoare cu efect de câmp cu grilă izolată
canal indus cu canale de ambele tipuri).
Circuitul logic corespunzător trebuie să nege semnalul aplicat la intrare, deci să-i schimbe faza. Cel mai frecvent
el se realizează cu ajutorul unui tranzistor în montaj EC, căruia i se aplică semnalul de intrare pe bază, iar semnalul de
ieşire se culege de pe colector. La aplicarea nivelului înalt ("l" ) la intrare tranzistorul este în conducţie (saturat).
Tensiunea E cade preponderent pe rezistenţa din circuitul colectorului şi la ieşire va fi nivel mic ("0"). La
aplicarea nivelului mic ("1") la intrare tranzistorul este blocat şi tensiunea E preponderent cade pe tranzistor şi la ieşire
este nivel înalt ("l").
2.1.3. Poarta ŞI +E
X1 Y
& Y X1 X2 -E X1
Y
1
X2 X2
2 -E
Logigrama Schema electrică pe baza releelor Schema electrică pe baza DTL
2.2. Circuite logice integrate unipolare. Tehnologie MOS - metal - oxid (izolator) -semiconductor.
Spre deosebire de tranzistoarele bipolare, la cele unipolare (cu efect de câmp - FET) conducţia curentului
electric este asigurată de un singur tip de purtători de sarcină, în tranzistoarele FET (Field Effect Tranzistor) curentul
este controlat de un câmp electric, care modulează conducţia canalului. Canalul poate fi cu conducţie de tip p (PMOS)
sau cu conducţie de tip n (NMOS). Conducţia prin dispozitiv (mai concret prin canal) începe la o anumită valoare
numită tensiune de prag. În circuitele integrate logice, de regulă, sunt formate tranzistoare cu efect de câmp cu grilă
izolată, care au structura MOS - metal - oxid (izolator) - semiconductor.
GRILA +
OXID
D
SURSA DRENA G
S
Semiconductor
а) b)
Fig.7. NMOS tranzistor cu canal indus
а – schema de funcţionare; b - logigrama
R 1 Q
S
R S Qn-1 Qn Starea
T Q 0 0 0/1 0/1 Păstrarea
S 0 1 0/1 1/1 Stabilirea
1 0 0/1 0/0 Restabilirea R
1 R 1 1 0/1 X Interzisă
Q
S Q
Q
а) Schema electrică b)Logigrama c) Tabelul adevărului d) Diagrama de timp
Fig.7. Bistabil RS asincron cu porţi NOR
S & Q T Q
S
R
Q
&
R
Q
а) Schema electrică b)Logigrama
Fig.8. Bistabil RS asincron cu porţi NAND
Недостаток асинхронного RS-триггера заключается в том, что есть опасность ложного
срабатывания или несрабатывания при несинхронной подаче входных сигналов.
C
S T1 T2 Q TT Q
S S S S
C C C C
R R R R
R
Q Q
1
Q
а) b) c)
T Q C
D S T Q
D
C C D
1 R
Q C
Q Q
а) б) в)
& C
J T1 T2 Q TT Q
S S J
J
C C C
& R R K
K Q K
Q
1
Q
а) б) в)
Q T
T TT
C
Q Q
D
Q
а) б)
4.1. RegistreT
Registru (Rg) reprezintă un dispozitiv destinat păstrării informaţiei binare, precum şi îndeplinirii asupra ei a
unor operaţii. Rg reprezintă un ansamblu de bistabile şi scheme auxiliare, care asigură efectuarea următoarelor operaţii
asupra codurilor binare de informaţie: Q
stabilirea în registru a stării 0 (ştergerea informaţiei) sau 1;
înregistrarea (înscrierea) şi păstrarea codurilor binare;
transferul codului binar în formă directă sau inversă;
deplasarea codului înscris în stîngă ori în dreapta cu un număr dat de poziţii;
transformarea codului succesiv (consecutiv) în cod paralel şi invers.
În Rg în calitate de elemente de memorare şi păstrare a informaţiei se utilizează bistabile de diverse tipuri:
RS, D, JK şi modificaţiile lor. Fiecărui bit al codului binar îi corespunde o celulă de memorie în circuitul registrului.
Registrele permit efectuarea unor operaţii logice (suma şi produsul logic pe biţi, etc.) şi operaţii de convertizare a
codurilor binare (spre exemplu transformarea codului serie în cod paralel sau invers).
Registrul este format dintr-o serie de bistabile interconectate reciproc şi un dispozitiv de comandă semnalelor
de intrare şi ieşire. Numărul de bistabile componente este determinat de numărul de biţi ai registrului. Fiind folosite
ieşirile directe sau inverse ale bistabilelor informaţia din registru se poate citi, atât în cod direct, cât şi în cod invers.
Clasificarea registrelor se face în funcţie de modul de stocare şi modul de citire a informaţiei, în funcţie de
modul de stocare şi modul de citire a informaţiei deosebim:
- registre de memorie (cu acces paralel),
- registre de deplasare (cu acces serial),
- registre combinate (paralel-serie).
În funcţie de prezentare a informaţiei stocate sau citite deosebim:
- registre monofazice şi
- registre parafazice.
În registrele monofazice informaţia este stocată numai în cod direct sau numai în cod invers, iar în registrele
parafazice informaţia este stocată simultan, atât în cod direct, cât şi în cod invers. Citirea informaţiei, atât din registrele
monofazice, cât şi din registrele parafazice se poate face atât în cod direct, cât şi în cod invers. Registrele pot fi simple
sau universale (reversibile).
4.1.1. Registrul paralel de tipul D (pe baza bistabililor de tipul D) se foloseşte pentru păstrarea informaţiei.
Schema acestui Rg se deosebeşte prin faptul că conţine bistabile fără legături reciproce. Bistabilele sunt legate între ele
numai cu linii unice de sincronizare şi stabilirea în stare de 0 sau 1 a registrului. În astfel de scheme fiecare bistabil
asigură înscrierea şi păstrarea unui bit de informaţie (unei poziţii a codului binar) corespunzător pe intrările X0, X1,
X2, ..., Xn (nu e neapărat concomitent, însă strict până la momentul aplicării impulsului de sincronizare, care este
semnalul de permitere a înscrierii). Când se aplică impulsul de sincronizare, toate bistabilele se stabilesc în stările
corespunzătoare valorilor X0, X1, X2, ..., Xn. De aceea acest proces de înscriere şi însuşi registrul se numeşte de tip
paralel, fiindcă toate poziţiile se înscriu concomitent.
Transferul de informaţie din Rg de păstrare poate fi efectuat de pe ieşirile directe Q şi atunci se transferă
codul direct al cuvântului înscris. Dacă transferul este efectuat de pe ieşirile inverse Q , se transferă codul invers.
Astfel, pentru transferul codului direct receptorul trebuie legat cu ieşirile directe Q, iar pentru transferul
codului invers – cu ieşirile inverse Q . Pentru a dirija în mod automat procesul de conectare cu ieşirile directe ori
inverse se utilizează multiplexoare cu 2 intrări informaţionale.
Registrele de memorie sunt utilizate pentru stocarea şi memorarea informaţiei binare în cod paralel (stocare
simultană în toţi biţii registrului). Informaţia poate fi citită din registru de mai multe ori şi se păstrează în registru un
timp nelimitat. Schema registrului paralel de tipul D este prezentată pe fig.16. Numărul de ordine a registrului, adică
ordinul informaţiei (numărului binar) care poate fi înscris in registrul este egal cu numărul bistabililor folosite. De
exemplu, registrul de ordinul N este compus din N bistabile. Dacă la intrările registrului este instalat cod binar X 1...Xn,
atunci la ivirea impulsului de tact (sincronizare) pe bara „Stocare” are loc înscrierea codului dat in registrul la ieşirile
Q1...Qn, unde acest cod vor fi păstrat pană la ivirea următorului impuls de tact. Fiecărui bit ii corespunde bistabilul
respectiv. Întrările comune „Setare” şi „Anulare” a registrului sunt folosite pentru instalarea sau la deteriorarea a tuturor
bistabililor în mod forţat.
Q1 Q2 Qn
T1 T2 Tn
S DC R S DC R S DC R
Setare
Anulare
Stocare
X1 X2 Xn
Q1 Q2 Qn
T1 T2 Tn
S JCKR S JCKR SJCKR
Setare
Anulare
Stocare
X1 X2 Xn
4.1.2. Registrul parafazic de tipul RS se foloseşte pentru înscrierea informaţiei (numărului) in cod binar si
citirea informaţiei in cod binar DIRECT sau INVERS.
Iniţial toate bistabilele sunt resetate prin aplicarea unui impuls pe intrarea „Anulare" (unitate logică pe
intrările R). Stocarea informaţiei în registru este realizată când se aplică semnal de comandă pe intrarea „Stocare", în
acest caz unităţile logice de pe intrările porţilor logice Ti se aplică pe intrările S ale bistabilelor şi, prin urmare, codul de
la intrare este stocat în registru. Informaţia se va păstra în registru până la următoarea procedură de anulare.
Pentru citirea codului direct se foloseşte intrare "Citire cod direct", pentru citirea codului invers - "Citire cod
invers".
Х1 & T1
S & 1 Q1
R &
Х2 & T2
S & 1 Q2
R &
Хn & Tn
S & 1 Qn
R &
4.1.3. Registrele de deplasare sunt circuite numerice, care la fiecare impuls de tact aplicat îşi deplasează
conţinutul spre dreapta sau spre stânga cu câte o celulă. Aceste registre se realizează cu CBB de tipul D „master-slave",
conectate în cascadă. Ieşirea fiecărui bistabil este legată la intrarea bistabilului următor, în timp ce tuturor bistabilelor li
se aplică un semnal de tact comun, funcţionarea lor fiind sincronă
În figura 19 este reprezentată schema unui registru de deplasare cu patru biţi cu bistabile D „master-slave".
Stocarea informaţiei în registru este realizată în cod direct serie, biţii cărui se aplică pe intrarea D a bistabilului TTo
sincron (simultan) cu impulsurile de tact aplicate pe intrarea C a tuturor bistabilelor. Aceleaşi impulsuri de tact
comandă deplasarea codului stocat în registru spre dreapta, în timpul impulsului de tact în treptele „maşter" ale
bistabilelor se stabileşte informaţia de la intrarea bistabilului (starea bistabilului precedent), iar după impulsul de tact
(în pauze) starea respectivă se stabileşte în treapta a doua a bistabilelor.
După cum se observă, la fiecare impuls de tact conţinutul registrului se mută cu câte o poziţie spre dreapta,
în consecinţă, semnalul de ieşire va fi identic cu cel de la intrare, dar întârziat cu un număr de perioade de tact egal cu
numărul de celule din care a fost format registrul
Q1 Q2 Q3 S Q3 Q 2 Q 1 C
0 0 0 0
1 0 0 1
T1 T2 T3 2 0 1 0 Q1
3 0 1 1
S JCKR S JCKR SJCKR 4 1 0 0 Q2
5 1 0 1
Set 6 1 1 0
Reset 7 1 1 1
+1 8 0 0 0
Q3
C
a) b) c)
Fig.20. Schema (а), tabelul de comutaţii (b) şi diagrama temporală (c) numărătorului binar direct
În schema examinată din fig. 20 se efectuează numărarea directă. Însă, în cadrul multor unităţi electronice de
calcul apare necesitatea de a efectua numărarea inversă. În astfel de cazuri se elaborează numărătoare inverse (de
scădere). Dacă în schema din fig. 20 legăm ieşirile inverse cu intrările C şi examinăm procesul de comutare a
bistabilelor la aplicarea impulsurilor Xnum, atunci observăm că schema îndeplineşte numărarea inversă. La examinarea
procesului de comutare a bistabilelor trebuie să se ţină cont că ei îşi schimbă starea numai la trecerea semnalului de pe
C de la 1 la 0.
C
In fig.21 (a) este reprezentată schema unui numărător binar asincron cu trei biţi cu transport succesiv cu
scădere, format în baza bistabilelor de tip JK (T), iar în fig.21 (c) prin diagramele temporale este explicată funcţionarea
acestui numărător. Tabelul de comutaţii al numărătorului binar invers asincron cu trei biţi este reprezentat în tabelul 21
(b). După al opta impuls toate bistabile il revin în starea „l".
C
Q1 Q2 Q3 SQ3 Q2 Q10
1
T1 T2 T3 2 Q1
3
4 Q1
S JCKR S JCKR SJCKR 5
6 Q2
Set 7
Reset 80 0 0 Q2
+1 1 1 1
1 1 0 Q3
C 1 0 1
a) 1b) 0 0 c)
Fig.21. Schema (а), tabelul de comutaţii (b) şi diagrama temporală
0 1 1(c) numărătorului binar invers
0 1 0
4.2.3. Numărătoare abinare 0 0 1
0 0 0
Numărătoarele de impulsuri ale căror modul de numărare este diferit de 2 n se numesc numărătoare abinare.
Din analiza funcţionării numărătoarelor prezentate mai sus este clar că frecvenţa impulsurilor la ieşirea fiecărui bit este
de două ori mai mică ca frecvenţa la intrarea bitului. Prin urmare fiecare bit al numărătorului binar efectuează divizarea
frecvenţei la doi, iar factorul de divizare al numărătorului este egal cu modulul de numărare.
Numărătoarele abinare sunt create în baza unor numărătoare binare în care se realizează bucle de reacţie
serie, paralele sau mixte. Mai frecvent este folosită reacţia paralelă. Pentru formarea unui numărător cu modulul de
numărare N se procedează în modul următor:
- Se găseşte numărul necesar de bistabile n, reieşind din condiţia 2n-1<N<2n,
- Se leagă toate bistabilele într-un circuit de numărător asincron cu transport succesiv.
- Se găseşte numărul M, care este transferat în sistem binar, biţii codului găsit (M) reprezentaţi
prin unităţi indică numerele de ordine ale bistabilelor, care sunt legate prin bucle paralele de
reacţie cu întrarea „Reset”.
In fig.22 este reprezentată schema unui numărător direct abinar asincron cu modulul de numărare N=5.
Numărul necesar de bistabile este egal cu 3, fiind-că 22 < 5 < 23. Pentru contor direct legăm ieşirea Q a unui bistabil cu
intrarea de tact a următorului. Numărul M=5 prezentăm în codul binar 1012.
&
Q1 Q2 Q3
T1 T2 T3
C
Fig.22. Numărător direct abinar asincron cu modulul de numărare N=5
4.2.4. Numărătoarele reversibile
Numărătoarele reversibile au două intrări de tact +1 şi -l. Dacă impulsurile de intrare vor fi aplicate la
intrarea +1 se va efectua numărarea directă, iar dacă impulsurile vor fi aplicate la intrarea -l se va efectua numărarea
inversă. Intrările de instalare iniţială sunt D1, D2, D4, D8 şi C, întrare de anulare iniţială este R.
La ieşire „>15” apară semnal de tensiunea înaltă dacă pentru numărarea directă codul binar vor depăşi 11112.
D1 CT2
1
D2 2
D4 4
D8 8
C >15
R <0
+1
-1
Fig.24. Numărător reversibil К155ИЕ7
Divizoarele de frecvenţă sunt circuite care formează la ieşire tot aşa o serie de impulsuri dreptunghiulare ca
şi cele aplicate la intrare dar cu o frecvenţă de câteva ori mai mică. Divizoarele de frecvenţă se deosebesc de
numărătoare, în numărătoare semnalele la ieşirile bistabilelor reprezintă codul necesar conform sistemului de numeraţie
şi numărul de impulsuri aplicate la intrarea numărătoarelor, în divizoarele de frecvenţă consecutivitatea stărilor
bistabilelor nu este importantă. Este important numai raportul între frecvenţa la ieşire şi la intrare. Consecutivitatea se
alege reieşind din simplitatea legăturilor între bistabile.
4.3. Decodificatoare
Decodificatorul (decodorul) este un circuit logic combinaţional, care transformă codul, aplicat la intrare, în
semnal la o unică ieşire (sau la câteva ieşiri). Numărul maxim de linii distincte de ieşire m corespunde numărului de
combinaţii posibile ale celor variabile binare de la intrare: m=2 n. Dacă numărul de intrări corespunde expresiei m=2 n,
decodificatorul se numeşte complet, iar dacă m<2n , decodificatorul se numeşte incomplet.
Decodificarea este necesară în numeroase aplicaţii cum sunt adresarea memoriilor, afişarea numerică,
multiplexarea datelor, etc. De regulă, pe intrările decodorului se aplică semnalul de la ieşirile registrului sau
numărătorului, în care este format (stocat) codul numeric. Decodificatoarele sunt folosite:
- în dispozitive de comandă a microprocesoarelor,
- pentru convertizarea codului paralel în cod serie,
- pentru formarea distribuitoarelor de impulsuri pe diferite canale.
Decodificatoarele de adresă (spre exemplu, decodificatoare cu trei intrări) sunt circuite logice
combinaţionale, care activează linia de ieşire a cărei adresă este prezentă pe intrări. Având în vedere, că numărul
cuvintelor de cod distincte de n biţi este 2 n, rezultă că un decodificator de adresă cu n intrări va avea 2 n ieşiri distincte.
Prin urmare, decodorul cu trei intrări de adresă are 23=8 ieşiri. La fiecare ieşire semnal apare numai pentru o anumită
combinaţie a semnalelor de intrare. Starea fiecărei ieşiri este determinată de funcţiile respective prezentate în tabelul de
funcţionare (vezi tabelul 4.1). Fiecare din aceste funcţii poate fi implementată cu porţi AND cu trei intrări, în fig.25
sunt reprezentate schema circuitului implementat cu porţi AND (a) şi simbolul decodificatorului de adresă cu trei intrări
(b).
Tabelul 4.1
x2 x1 x0 y7 y6 y5 y4 y3 y2 y1 y0
0 0 0 1 0 0 0 0 0 0 0 y 0 x 2 ·x1 ·x0
0 0 1 0 1 0 0 0 0 0 0 y1 x 2 ·x1 ·x0
0 1 0 0 0 1 0 0 0 0 0 y 2 x 2 ·x1 ·x0
0 1 1 0 0 0 1 0 0 0 0 y 3 x 2 ·x1 ·x0
1 0 0 0 0 0 0 1 0 0 0 y 4 x 2 ·x1 ·x0
1 0 1 0 0 0 0 0 1 0 0 y5 x 2 ·x1 ·x0
1 1 0 0 0 0 0 0 0 1 0 y 6 x 2 ·x1 ·x0
1 1 1 0 0 0 0 0 0 0 1 y 7 x 2 ·x1 ·x0
Fig..25 Schema circuitului implementat cu porţi AND (a) şi simbolul decodificatorului de adresă cu trei intrări (b)
Decodificatorul analizat este de o treaptă (liniar). Avantajul acestui decodificator este viteza înaltă de
comutaţie, deoarece timpul de propagare printr-un singur element este mic, iar dezavantajul - necesitatea porţilor logice
cu multe (trei) intrări şi cerinţele înalte faţă de coeficienţii de sortanţă ai elementelor componente ale registrului
(circuitul logic precedent).
4.3.2. Decodifîcator BCD-Zecimal
În practică se întâlnesc frecvent situaţii, în care trebuie făcute decodificări dintr-un alt cod decât cel binar
natural, de exemplu din codul BCD. în cele ce urmează va fi prezentat un astfel de decodifîcator din BCD în zecimal.
Semnalul de nivel înalt ("l") la ieşirea respectivă a decodificatorului determină cifra zecimală, a cărui cod binar a fost
aplicat la intrare.
Decodificatorul este deseori folosit pentru reprezentarea vizuală a cifrelor (informaţiei digitale), de exemplu,
de la ieşirea unui numărător sau registru. Decodificatorul este folosit în cazul tuburilor indicatoare, iar în cazul
indicatoarelor cu 7 segmente luminoase sunt folosite decodificatoare cu şapte ieşiri.
Decodificatorul BCD-7 segmente este un circuit logic combinaţional cu patru intrări şi şapte ieşiri: a, b, c, d,
e, f şi g. Tabelul de funcţionare a decodificatorului este reprezentat în tabelul 3.5. Pe cele patru intrări ale circuitului se
aplică cuvântul de cod (codul BCD), iar semnalele de ieşire comandă segmentele indicatorului (a, b, c, d, e, f, g).
X1
X2
X3
X4
X5
1 DC 0 1 DC 0 Y0 1 DC 0 Y16
2 1 2 1 Y1 2 1 Y17
4 2 4 2 4 2
Y2 Y18
8 ... 8 ... 8 ...
... 1 ...
W0 14 W0 14 W0 14
15 15 Y14 15 Y30
W1 W1 Y15 W1 Y31
СИНХР
а) б)
Рис.28. Графическое обозначение дешифратора К155ИД3 (а) и наращивание разрядности дешифраторов
при их объединении (б) (W0, W1 - входы микросхемы для выборки дешифратора)
4.4. Codificatoare
Codificatoarele sunt circuite logice combinaţionale, care realizează codificarea semnalelor (informaţiei), în
fig. 3.2. sunt reprezentate schema de principiu şi simbolul unui codificator, care codifică orice cifră zecimală în cod
binar. Prin apăsarea butonului respectiv cifrei se va căpăta la ieşire codul binar al acestei cifre. De exemplu, fiind apăsat
butonul cifrei 9, tensiunea sursei de alimentare se va aplica la ieşirile l (2 0) şi 8 (23), iar la ieşirile 2 (21) şi 4 (22)
semnalul va fi nul. Prin urmare, căpătăm codul 1001.
Метод построения функциональной схемы шифратора очень прост. Если номеру j входа, на котором
присутствует единичный сигнал, соответствует двоичный код Cj, то данную входную цепь необходимо
подвести через элементы ИЛИ к тем выходным разрядам, в которых содержатся единицы.
Пример построения шифратора по заданной таблице преобразования, и графическое обозначение
шифратора приведен на рис.29.
Так как номеру X1 входа соответствует код 000, то первый вход не соединяется ни с одним выходом;
номеру X2 входа соответствует код 100, то этот вход соединен через элемент ИЛИ с выходом Y 1 и т.д.
X0 X1 X2 X3 X4 X5 X6 X7 Y1 Y2 Y31 0 X0
0
0 0 0 0 0 0 X1 CD 4
1
0 1 0 0 0 0 0 0 X2 2
0 0 1 0 0 0 0 0 3 2
0 0 0 1 0 0 0 0 X3
4
0 0 0 0 1 0 0 0 X4 5 1
0 0 0 0 0 1 0 0 X5 6
0 0 0 0 0 0 1 0 X6
0 0 0 0 0 0 0 10 0 0 7 E
1 0 0 X C
7 1 1 1
0 1 0
1 1 0 Y1 Y2 Y3
0 0 1
а) б) в)
Рис.29.1Шифраторы.
0 1 Построение функциональной схемы (б) по заданной таблице преобразования (а).
0 1 1
Графическое изображение шифратора типа К155ИВ1 (в)
1 1 1
4.5. Multiplexoare
Multiplexoarele sunt circuite logice combinaţionale, care permit trecerea datelor de la una din cele n intrări
la o ieşire unică. Selectarea intrării se face prin aplicarea cuvântului de cod (de adresă) de m biţi la intrările de adresă.
Pentru fiecare intrare informaţională este rezervat un cod de adresă. Atunci când pe intrarea de autorizare
Enable se aplică nivelul zero logic E = O, multiplexorul selectează intrarea informaţională, a cărei cod de adresă este
aplicat la intrările de adresă, şi o conectează la ieşirea Y.
în aşa mod formând diferite coduri de adresă pot fi transmise datele de pe diferite intrări informaţionale la
ieşirea Y.
X2 1 1X _ X
0 3 A30 _
X3 X1 X2 Y
& A1 Y
X2
C
a) Xб)
3
в) X3 г)
Рис.30. Мультиплексор. Релейный эквивалент (а), таблица функционирования (б), функциональная
схема (в) и графическое изображение (г)
4.6. Demultiplexoare
Demultiplexoarele sunt circuite logice combinaţionale, care permit transmiterea datelor de pe o intrare de
date comună pe una din cele n ieşiri selectate. Selectarea ieşirii se face prin aplicarea cuvântului de cod (de adresă) de
m biţi la intrările de selecţie(de adresă).
Pentru fiecare ieşire este rezervat un cod de adresă. Atunci când pe intrarea de autorizare Enable se aplică
nivelul zero logic E = O, demultiplexorul selectează ieşirea, a cărei cod de adresă este aplicat la intrările de adresă, şi o
conectează la intrarea D.
În aşa mod formând diferite coduri de adresă pot fi transmise datele pe diferite ieşiri de pe intrarea
informaţională D.
&
Y0
A1
A0 A1X0 0
A0 DC 0 & X DM Y0
Y0 0 1
A0 0 1 Y1 A Y1
Y1 1 0 0
X A 1 2 & A Y2
Y2 1 1Y0 1 1
3
Y1 Y2 C Y3
Y3 &
Y2
Y3
Y3 X
a) б) в) г)
Рис.31. Демультиплексор. Релейный эквивалент (а), таблица функционирования (б), функциональная схема (в)
и графическое изображение (г)
4.6. Sumatoare
Operaţia fundamentală efectuată de calculatoare şi sisteme cu microprocesoare este adunarea. Operaţia de
scădere se reduce în adunarea primului termen (al descăzutului) cu complementul (în binar) al celui de al doilea termen (al
scăzătorului). Înmulţirea se face prin adunări succesive, iar împărţirea prin scăderi succesive. Orice problemă sau operaţie
matematică mai complexă se poate reduce (printr-o programare adecvată) la cele patru operaţii elementare, deci în ultimă
instanţă la adunare. Iată de ce blocul, care efectuază adunarea în sistemele digitale, aşa numit sumator, reprezintă unul din
blocurile cele mai importante ale unităţii de calcul aritmetic şi logic (ALU).
Conform sistemului de numeraţie şi codificare folosit în sistemul cu microprocesor sumatoarele sunt clasificate
în sumatoare:
binare;
zecimale;
binar-zecimale
Conform metodei de efectuare a operaţiei de adunaresumatoarele sunt clasificate în sumatoare:
serie;
paralel;
paralel-serie.
În sumatoarele serie operaţia de adunare este efectuatăconsecutiv începînd de la biţii inferiori (LSB) spre biţii
superiori (MSB), iar în sumatoarele paralel adunarea se face concomitent pe toţi biţii. În sumatoarele paralel-serie
numerele sunt divizate îngrupe de biţi în care adunarea se face paralel, iar sumele parţiale sunt adunate în serie.
P X YP S0 0 0
0 0 1 HS
X X P 1 P
0 1 0
0 1 1 X SM S
Y Y S
1 0 0
Y
1 0 1
1 1 0 HS P P
X P
1 1 10 0 S
0 1 P Y S
0 1
1 0
0 1а) b) c)
1 0 Fig.33. Tabelul de funcţionare (а), schema logică (b)
1 0
1 1
şi logigrama (c) ale sumatorului elementar
Adunarea a două numere de n biţi necesită sumatoarele complete, transportul considerat la sumarea biţilor
cei mai puţin semnificativi fiind „0”, iar fiecare rezultat în urma unei sumări aplicînduse biţilor cu ponderea imediat
superioară, ca în figura 34.
Dezavantajul sumatorului analizat cu transport succesiv îl constituie viteza mică de efectuare a operaţiei de
adunare.
S0 S1 S2 Sn
X0 X SM S X1 X SM S X2 X SM S Xn X SM S
Y0 Y Y1 Y Y2 Y Yn Y
P P P P P P P P
P X Y P1 S P X Y P X Y P X Y P X Y P X Y P X Y P X Y P X Y
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
& & & & & & & &
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0 1 1
1 1 1 1 1
P1 S
а) б)
Рис.35. Синтез сумматора при помощи ДНФ. Таблица функционирования (а), функциональная схема (б)
Например, для сумматора (рис.35) при построении ДНФ P1 необходимо выделить строки 4,6,7 и 8,
а для ДНФS – строки 2, 3, 5 и 8. При этом соответствующие ДНФ имеют вид:
ДНФP1 = P*X*Y + P*X*Y + P*X*Y + P*X*Y
ДНФS = P*X*Y + P*X*Y + P*X*Y + P*X*Y
На третьем этапе формальным подходом строят функциональную схему по полученной ДНФ.
Классификация цифровых элементов
Для ИС, используемых в схемах широкого применения, перед кодом ИС ставится буква К.
Например, интегральная схема К155ЛА1 относится к ИС широкого применения, конструктивно-
технологическая группа 1,порядковый номер серии 55, выполняет логическую функцию И-НЕ (ЛА), имеет
первый условный номер разработки по функциональному признаку.
Tema 6. Microprocesor K580
ГТИ ШД
МИКРОПРОЦЕССОР
ОЗУ ПЗУ КВВ УВВ
ШУ
ША
C
Ф1
Ф2
КОП
Рис. 38. Структурная схема функционирования арифметико-логического устройства
В операционный
блок (АЛУ, СОЗУ)
M SP
A PC
F A F PSW
Fig.40. Arhitectura MP K580 din punct de vedere a programatorului
Programatorul are acces la 10 registre: 6 registre de uz general (RUG) de 8 biţi (B, C, D, E, H, L), registrul
acumulator A şi registrul fanioanelor de condiţii F ambii de 8 biţi şi două registre de 16 biţi SP (indicatorul stivei) şi PC
(contorul de program). În unele instrucţiuni pentru adresare şi cu alt scop se folosesc de odată o pereche de RUG una
din (B,C), (D,E), (H,L). Adresarea la perechea de registre se face prin intermediul primei litere a perechii, deci B, D şi
H respectiv. Conţinutul perechii de registre A şi F se numeşte ca cuvântul stării programului şi se semnează prin PSW.
ШД
D0 D7
Буферный
Регистр Данных
Арифметико-логическое устройство
ПРЕРЫВАНИЕ
ГОТОВНОСТЬ
МАШИННЫХ
ФОРМИРОВ,
12
+5
ЧТЕНИЕ/
ЦИКЛОВ
ЗАПИСЬ
ЗАХВАТ
-5 Буферный
GND Регистр Адреса
A0 A15
READY
RESET
C1
C2
HOLD
HLDA
WAIT
INT
SYNC
INTE
DBIN
WR
___
ШA
DBIN (Чтение) - сигнал на линии указывает интервал времени, на котором данные из ОЗУ или ВУ
считываются в МП;
D0 A7
D1 A8
D2 A9
D3 A10
D4 A11
D5 A12
D6 A13
D7 A14
A15
INT INTE
HOLD HLDA
RESET
DBIN
SYNC
МП С1
ШД
С2
Рг СС
SYNC SYNC
ШД СС
С2 &
РгСС СС
С2
SYNC
В такте Т1 цикла М1, счетчик команд РС выдает на ША адрес ячейки памяти, в которой записана
исполняемая команда. На ШД формируется код, соответствующий Слову Состояния выполняемого цикла (М1-
считывание кода операции). Во время импульса SYNC Слово Состояния записывается в Регистр Слова
Состояния и остается в нем на протяжении всего машинного цикла М1. В соответствии со Словом Состояния к
ШД подключается своими выходами память в которой записана исполняемая команда. Код в ШД в цикле М1
будет соответствовать содержимому ячейки, адрес которой выставлен на ША.
В такте Т2 цикла М1 анализируется состояние сигналов HOLD, READY, формируемых внешними
устройствами и состояния HALT (останов) МП. Если к моменту появления импульса Ф2 на шине READY
установлен 0, то МП переходит в режим WAIT (Ожидание). В этом режиме приостанавливается процесс
обработки данных и формируется WAIT=1, подтверждающий это состояние. Длительность этого режима
измеряется целым числом тактов и продолжается до появления логической 1 на входе READY.
В такте Т3 производится запись данных в Регистр Команд. В такте Т4 Дешифратор Команд
расшифровывает код команды и определяет последовательность ее исполнения. (В данном случае необходимо
ввести второй байт команды в цикле М2 и данные с ВУ в цикле М3).
В соответствии с этим в такте Т1 цикла М2 на ША формируется адрес следующей за кодом операции
ячейки, на ШД -Слово Состояния, задающее режим чтения данных. Такты Т1 и Т2 аналогичны для таких же
тактов цикла М1. В такте Т3 производится запись не в Регистр Команд, а в Регистр Адреса.
В такте Т1 цикла М3 на ША выставляется адрес ВУ, записанный в предыдущем цикле в Регистр
Адреса, на магистрали ШД - Слово Состояния, соответствующее циклу ввода данных из внешнего устройства.
В этом цикле от ШД отключаются все блоки (ОЗУ, ПЗУ, ВУ) кроме ВУ, адрес которого сформирован на ША.
Такты Т2 и Т3 аналогичны соответствующим тактам М1. Отличие заключается в том, что информация с ШД
записывается в такте Т3 в регистр А (Аккумулятор).
7.1. Программирование МП
Программирование - это описание последовательности действий, которые МП должен выполнить для
решения поставленной задачи. Программирование включает следующие этапы:
- составление алгоритма решения задачи или описание процесса с учетом возможностей МП;
- составление программы на языке МП посредством команд, которые МП может выполнить;
- отладка программы, в процессе которой программа загружается в МП и осуществляется попытка
ее выполнить.
Напомним, что МП обрабатывает информацию в соответствии с последовательностью команд,
записанных в памяти, при этом все команды представлены в МАШИННОМ КОДЕ - совокупности сигналов
высокого и низкого уровня.
Приведем пример программы на машинном языке:
00111110
00111110
00101111
00110010
00000000
00111110
01110110
Программа в двоичном коде очень громоздкая, понять ее практически невозможно.
Программа на машинном языке становится проще для восприятия, когда она представлена в
шестнадцатиричном коде, как показано ниже:
3E
3E
2F
32
00
3E
76
Хотя программа записана в шестнадцатиричных кодах, все равно считается, что она на машинном
языке (учитывая, что перевод шестнадцатиричных кодов в двоичную систему осуществляется заменой каждой
шестнадцатиричной цифры соответствующей двоичной тетрадой). Даже записанная в шестнадцатиричных
кодах программа все еще трудна для восприятия. (Так, например, код 3E трижды встречается в программе, и
каждый раз этот код имеет разный смысл: в первый раз это код операции, во второй - данные, в третий - адрес).
На обычном человеческом языке программа выглядит следующим образом:
ЗАГРУЗИТЬ В АККУМУЛЯТОР ЧИСЛО 3E
ИНВЕРТИРОВАТЬ АККУМУЛЯТОР
ЗАПИСАТЬ ЕГО СОДЕРЖИМОЕ ПО АДРЕСУ 3E00
ОСТАНОВИТЬ МИКРОПРОЦЕССОР
Возникает вопрос: как перейти от этой формы человеческого языка (длинной и сложной для МП) к
машинному языку? Ответ состоит в использовании языка АССЕМБЛЕРа. ассемблер использует слова и фразы,
посредством мнемокода (от греческого МНЕМО- искусство запоминания) преобразуя их в машинный код МП. Так
как каждый МП имеет свою систему команд, то ассемблер называют МАШИННО-ОРИЕНТИРОВАННЫМ языком.
Для МП К580 обычно фраза на языке ассемблера будет соответствовать выражению длиной от 1 до 3
байт машинного языка. Приведенная выше программа на языке ассемблер, записанная человеком, выглядит
следующим образом:
MVI A,3E
CMA
STA 3E00
HLT
Машинный Мнемокод
Адрес Метка Комментарий
код Мнемоника Операнд
0800 3E MVI A,03 Загрузить в аккумулятор число 3Е
0801 3E
0802 2F CMA Инвертировать аккумулятор
0803 32 STA 3E00 Сохранить аккумулятор по адресу 3Е00
0804 00
0805 3E
0806 76 HLT Остановить микропроцессор
Таким образом задача ассемблирования состоит из следующих этапов:
1. Перевод мнемокода на машинный язык.
2. Назначение последовательно ячеек памяти каждому коду операции и операнду.
В отличии от языков высокого уровня (ФОРТРАН, PL, ПАСКАЛЬ, БЕЙСИК), в которых каждой
команде обычно соответствует 20-30 машинных команд, ассемблер относится к языкам низшего уровня. Такие
программы почти не содержат числовых значений, их заменяют символические имена, мнемоника команд,
метки адресов, идентификаторы переменных и констант. Машинный язык и язык ассемблер отражают
аппаратные средства и обеспечивают реализацию максимальных возможностей МПС
Stack Ops
D,A 57 M,A 77 0 C7 A 9F B 0B A BF
B C5
D,B 50 M,B 70 1 CF B 98 DCX D 1B B B8
D D5
D,C 51 M,C 71 2 D7 C 99 H 2B C B9
PUSH H E5
D,D 52 M,D 72 3 DF SBB D 9A SP 3B CMC D BA
PSW F5
MOV D,E 53 MOV M,E 73 RST 4 E7 E 9B E BB
B C1
D,H 54 M,H 74 5 EF H 9C H BC
D D1
D,L 55 M,L 75 6 F7 L 9D L BD
POP H E1
D,M 56 M,M 76 7 FF M 9E M BE
PSW F1
Rotate Specials Move Control Arithmetical Double Add [Link]
immediate B 09
RLC 07 DAA 27 XCHG EB D1 F3 ANI byte E6
ADI byte C6 DAD D 19
RRC 0F CMA 2F XTHL E5 E1 FB XRI byte EE
ACI byte CE H 29
RAL 17 STC 37 SPHL F9 NOP 00 ORI byte F6
SUI byte D6 SP 39
RAR 1F CMC 3F HLT 76 CPI byte FE
SBI byte DE
Команды могут быть систематизированы по типу, длине, способу адресации
Команды пересылок передают данные с одного устройства на другое. При написании команды в
мнемокодах языка ассемблера в команды пересылок сначала ставится приёмник а затем источник данных. В
том случае, если в обмене данных участвует память М, ее адрес определяется содержимым регистров Н, L
(старший байт адреса находится в регистре Н, младший - в регистре L).
Опорными словами данного типа команд являются слова MOVE (переместить), LOAD (загрузить),
STORE (сохранить).
Команда LXI rp, data обеспечивает запись второго и третьего байтов команды в соответствующую
пару регистров. (2-й байт в младший, 3-й байт в старший)
data (rp)
Команды группы Load/Store отличаются между собой тем, что по командам Load данные из памяти
загружаются в соответствующую группу регистров, а по командам Store данные из регистров записываются в
память.
Мнемоника Функция Назначение
LDA adr adr A Загрузка аккумулятора из памяти
LDAX B ((BC)) A Косвенная загрузка аккумулятора из памяти
LDAX D ((DE)) A Косвенная загрузка аккумулятора из памяти
LHLD adr (adr) L; (adr+1) H Загрузка Н-пары из памяти
LDA adr (A) adr Сохранение аккумулятора в памяти
LDAX B (A) (BC) Косвенное сохранение аккумулятора в памяти
LDAX D (A) (DE) Косвенное сохранение аккумулятора в памяти
LHLD adr (L)--> adr; (H)--> adr+1 Сохранение Н-пары в памяти
Например, по команде LHLD 21AО содержимое ячейки памяти с адресом 21АО запишется в ячейку
L, а в ячейку Н - содержимое следующей ячейки 21А1. По команде STA 2108 содержимое аккумулятора
запишется в ячейку с адресом 2108.
Сложение 16-разрядных кодов реализуется командами DAD rp, при этом содержимое регистров HL
суммируется с содержимым регистров ВС, DE, HL, SP и сумма записывается в регистры HL.
(HL)+(rp) HL
C 87…321 C 87…321
RAL RAR
C 87…321 C 87…321
RLC RRC
Рис. 47. Организация команд сдвига
По командам безусловного перехода JMP adr управление передаётся указанной в команде ячейке
памяти команд. adr PC
По командам условного перехода передача управления выполняется только при определенном значении
заданного разряда регистра признаков. Если условие не соблюдается, выполняется команда, следующая по
порядку за выполняемой. Команды условных переходов имеют модификацию по разрядам регистра признаков C
(перенос), Z (нуль), S (знак, который может быть М (минус), и P (плюс)), P (паритет, который может быть Odd
(нечетный) и Even (четный)). Команда условного перехода проверяет заданное условие, представленное
состоянием конкретного флажка, и, если условие удовлетворяется, осуществляет передачу управления. В
противном случае передача управления не производится, а выполняется следующая по порядку команда.
Например, по команде JC 1EE0 будет исполняться команда с адресом 1EE0, если разряд C регистра
признаков равен 0.
A1
A3
A2 A3
A3
A2
A1
A1
A2
A2
A2 A3
SP
CALL A1 RET CALL A2 CALL A3 RET RET
a) b)
Рис.48. Диаграмма процесса обращения к подпрограммам
а) последовательность переходов в программе; б) содержимое стека при переходах