13.1 i8085 микропроцессор командалары
МП командалары 13.1 кестеде келтірілген бірінші бағанда r арқылы белгіленген, rp арқылы белгіленген регистр жұптарының, М арқылы белгіленген жады ұяшықтарының, b3b2 арқылы белгіленген 2 және 3 байт командааралық, port арқылы белгіленетін СҚ адрестерінің мнемокодтары берілген.
13.1 кесте - i8085 микропроцессор командалары
Ассемблер
|
КОП
|
Ұзындығы, байт
|
Мазмұны
|
Қайта жіберу командалары
|
MOV r1, r2
|
01ПППИИИ
|
1
|
Жіберу r2 → r1
|
MOV r, M
|
01ППП110
|
1
|
Жіберу М → r
|
MVI r, b2
|
00ППП110
|
2
|
Байтты жіберу → r
|
LXI rpb3b2
|
00ПР0001
|
3
|
2 байтты жүктеу → rр
|
LDA b3b2
|
3A
|
3
|
А-ны тура жүктеу
|
SHLD b3b2
|
22
|
3
|
Тура жазу HL → M
|
STA b3b2
|
32
|
3
|
Тура жазу A → M
|
Арифметикалық және логикалық командалар
|
ADD r
|
10000ИИИ
|
1
|
А + r → А
|
ADD M
|
86
|
1
|
А + М → А
|
ADI b2
|
С6
|
2
|
А + байт → А
|
ADC r
|
10001ИИИ
|
1
|
А + r + С → А
|
ACI b2
|
СЕ
|
2
|
А + байт + С → А
|
SUB r
|
10010ИИИ
|
1
|
А - r → А
|
SUI b2
|
D6
|
2
|
А - байт → А
|
SBB r
|
10011ИИИ
|
1
|
А - байт - С → А
|
INR r
|
00ППП100
|
1
|
Регистр инкременті
|
INR M
|
34
|
1
|
Жалы инкременті
|
13.1 кестенің жалғасы
|
DCR r
|
00ППП101
|
1
|
Регистр декременті
|
DCR M
|
35
|
1
|
Жады декременті
|
DAA
|
27
|
1
|
BC → BCD
|
ANA r
|
10100ИИИ
|
1
|
Лог.ЖӘНЕ А & r → A
|
ORA r
|
10110ИИИ
|
1
|
Лог. НЕМЕСЕ А + r → A
|
CMA
|
2F
|
1
|
Лог. ЕМЕС инверсия А
|
XRA r
|
10101ИИИ
|
1
|
Ерекшелік. НЕМЕСЕ А + r → А
|
CMP r
|
10111ИИИ
|
1
|
Салыстыру А - r
|
CPI b2
|
FE
|
2
|
Салыстыру А - байт
|
RLC
|
07
|
1
|
Цикл.А солға ығысуы
|
RRC
|
0F
|
1
|
Цикл.А оңға ығысуы
|
Басқару командалары
|
JMP b3b2
|
C3
|
3
|
Шартсыз ауысым
|
Jусл b3b2
|
11УУУ010
|
3
|
Шартты ауысым
|
CALL b3b2
|
CD
|
3
|
Бағдарламаны шақыру
|
RET
|
C9
|
1
|
Қайтару
|
Арнайы командалар
|
PUSH rp
|
11РП0101
|
1
|
rp ағынына жіберу
|
POP rp
|
11РП0001
|
1
|
rp ағынынан жүктеу
|
IN port
|
DB
|
2
|
А енгізу
|
OUT port
|
D3
|
2
|
А шығару
|
EI
|
FB
|
1
|
Үзуге рұқсат беру
|
DI
|
F3
|
1
|
Үзуге рұқсат бермеу
|
NOP
|
00
|
1
|
Опреация жоқ
|
HLT
|
76
|
1
|
тоқтатылды
|
Екінші бағанында ИИИ -мәліметтер көздерінің адресі; ППП – қабылдағыш адресі; РЖ- регистрлер жұбы. РОН адрестері: 000 – В; 001 – С; 010 – Д; 011 – Е; 100 – Н; 101 – L; 111 – A.
ADD – addition – қосу;
SUB – subtraction – азайту.
13.2 МПС құрылымдық сызба
Микропроцессорлық жүйе құрамына төмендегі микросызбалар кіреді:
- орталық процессор i8085;
- тактілік импульстар генераторы (ТИГ) i8284A;
- ақаулар бақылаушысы i8259;
- баспа регистрі i8282 сыртқы қондырғыларды бекітуге арналған;
- шиналы қалыптастырғыш i8286 (екібағытты мәліметтер буфері);
- оперативті жады RAM i2142;
- бағдарламаланатын ПЗУ PROM i2716;
- бағдарламаланатын параллельді интерфейс (БПИ) i82С55.
13.1 сурет – i8085 базасындағы МПС сызбасы
13.3 Индикация құрылғылары
Жетісегментті индикаторлар МП регистрлерінің құрамын және жады ұяшықтарын бақылауға мүмкіндік береді, басқа ақпаратты бейнелейді. Әрбір индикаторға ОЗУ (ОЕСҚ) ұяшығы сәйкес келеді, онда индикатор сегменттерінің жарқырауын басқаратын жетісегментті код сақталады. Осы ұяшықтардан ақпарат арнайы сызба көмегімен индикаторларға жіберіліп, олар индикацияның динамикалық режимін қамтамасыз етеді. Бұл ұяшықтардағы әрбір бит анықталған сегментке (13.2 суретті қара) сәйкес келеді. Егер бит 1-ге тең болса, онда сәйкес сегмент жанатын болады, және керісінше 83FFH – жады ұяшығы оң индикаторға (барлығы сегіз) сәйкес келеді.
Бит
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
Сегмент
|
H
|
G
|
F
|
E
|
D
|
C
|
B
|
A
|
|
|
|
|
|
|
|
|
|
13.2 сурет - Жеті сегментті индикатор сызбасы
Сыртқы құрылғылармен ақпарат алмасу i82C55 бағдарламалаушы интерфейс арқылы іске асырылады.
Бағдарламалар ассемблер тілінде, яғни мнемониканы қолдану арқылы жазылады. МП команданы «түсіну» үшін оны машина тіліне (код) аудару керек. МП сандық сигналдармен тікелей жұмыс жасағандықтан, Ассемблер командалары екі кодта кодталған. Үлкен көрнекілік және ыңғайлылық үшін екі кодты он алтылыққа ауыстырады. Мысалы, 00111100 коды оналтылық түрде 3С деп жазылады, МП 8085 үшін А регистрі құрамындағы команданы 1-ге арттыруды көрсетеді және Ассемблер тілінде (INRA түрінде) жазылады.
Ассемблерде жазылған бағдарламалар қодың трансляциялау және ОЕСҚ жүктеуге ұшырайды, сондай-ақ жүктеу жадының тізбекті ұяшықтарында іске асырылады. Қолдан трансляциялау 13.1 кестесі көмегімен i8085 мнемоникалық белгілеулерімен іске асырылады.
Мысалы индикаторға «8» цифрын шығаратын бағдарламаны (13.2 кестені қара) . Бұл үшін басқа барлық сегменттерге бірлік импульстер беру керек. «1» байтының сәйкес разрядын қарастырыңыз (13.2 суретті қара). Екілік кодын аламыз: 01111111. 7Fh коды алдымен МП аккумуляторына алдымен MVI A командасымен жазылады, содан соң А құрамындағы индикаторға қайта жіберіледі.
13.2 кесте
Адрес
|
Мазмұны
|
Оператор
|
Операнд
|
Түсініктеме
|
8000
8001
8002
8003
8004
8005
|
3E
7F
32
F8
83
76
|
MVI
STA
|
A, 7Аh
83F8h
|
Цифра «8»
Останов
|
|
|
|
|
|
|
14 Дәріс. Арифметикалық және логикалық командалар
14.1 Арифметикалық командалар
МП орындалатын негізгі арифметикалық функциялардың бірі қосу болып табылады. Бір екілік санды екіншінің қосымша кодымен қосқан кезде азайту операциясы іске асырылады. Қосу көп рет қайтаналануы мүмкін, ал көп рет қосу дегеніміз, бұл көбейту операциясы. Қайталанатын азайту операциясы бөлу операциясын береді.
Екілік сандарды көбейту ондықтарды көбейтуге ұқсас. Екі жағдайда да ең шеткі оң позицияда орналасқан ең аз мәнді сандар наймын өңдеуден басталады.
Тасымалдау 110 0110 0000 С
Қосылғыш 062 0011 1110 А
Қосылғыш 049 0011 0001 В
-------------------- -------------
Сома 111 0110 1111 А
Он екілік сандарды азайту операциясы да ондықтарға ұқсас.
Заем /тасымалдау/ 1 0000 0010 С
Азайғыш 62 0011 1110 А
Азайтқыш 49 0011 0001 В
-------------------- ------------
Айырымы 13 0000 1101 А
Теріс екілік сандар қосымша кодта беріледі (2 дейін толықтырылған), оның қалыптасуы екі кезеңнен тұрады: теріс кодты алу және бірді қосу. Егер сан оң болса, онда үлкен бит белгі 0 тең, ал кері жағдайда да 1-ге тең. Екілік санның кері коды осы типті санның кодын инвертирлеу нәтижесі. Жоғарыда келтірілген мысалда теріс санды қосымша кодта беруге болады
0011 0001 49 саны тура кодта
------------
1100 1110 49 кері коды
0000 0001 кері кодқа қосылған бірлік
------------
1100 1111 49 қосымша код
Сонда екі санның айырмасы мынаған тең болады
0011 1110 А аға битте 0, яғни оң сан
1100 1111 В
----------------
0000 1101 А
Екі екілік санды көбейтуде екі амал орындалады: ығысу және қосу. Көбейтіндіні солға жылжыту, екілік санды 1 көбейту сол санның өзіне тең.
Бөлу көбейтуге кері операция, яғни азайтқыш азайғыштан аз болғанша алу деген сөз. Арифметикалық операциясының көбейтіндісін орындауға қажетті бағдарламаны жазуы керек «Қосу» операциясы АDD r командасымен орындалады , бұл А, В регистрлерінің мазмұнына байланысты мәліметтердің орналасу орнына тәуелді қосылады, қосылу командасы жады және А (АDD М), мәліметтер және А (АDI байт) бірге болуы мүмкін.
«Азайту» операциясы SUB r, командасымен іске асырылады, бұл кезде А регистрі құрамынан r регистрі құрамы азайтылады. Осы сияқты азайту командалары және А жадысымен (SUI байт) болуы мүмкін.
14.2 Логикалық (биттік) командалар
Әрбір бит және булдік айнымалы болатын мәліметтермен операциялар жүргізу үшін НЕ, ЖӘНЕ, НЕМЕСЕ логикалық командалары, НЕМЕСЕ жоққа шығару командалары қолданылады.
ЕМЕС функциясын бірбайттық СМА (коп 2F)командасы жүзеге асырады, ол аккумулятор құрамын инвертирлейді.
ЖӘНЕ функциясын ANA B – коп А0 командасы орындайды.
НЕМЕСЕ функциясы ОRА r, командасымен орындалады, ол «НЕМЕСЕ» бойынша А және r регистрлер құрамын біріктіреді.
«НЕМЕСЕ шығарылып тасталынатын» функция XRA r командасымен іске асырылады, бұл кезде A және r регистрлері құрамындағы логикалық функция орындалады. Іс жүзінде аккумуляторды тазалау үшін XRA A (коп AF) командасы қолданылады, ол әрбір битте нөлдік нәтиже береді.
i8085 екілік- ондық кодпен (ВСD) жұмыс істеуге мүмкіндік береді, онда әрбір разрядтың ондық сандары екілік болып танылады. Осының салдарынан 9 (1001+1111) екіде асатын сандар ВСD-да жіберілмейді. Осы мақсатта МП ондық коррекциясы жүзеге асырылады DАА (коп 27) командасы қарастырылған: егер аккумулятор құрамындағы жартылай байт 9-дан үлкен болса, онда 6 қосылады. Ереже бойынша, ондық коррекция қосу операциясынан кейін орындалады.
i8085 қосымша логикалық командаларына СМР r командасын жатқызуға болады, ол аккумулятор құрамы мен r регистрін бірінен бірін алу кезінде А құрамын өзгертпеу жолы арқылы салыстыру жүргізеді. Салыстыру нәтижесі жалаулар биттері бойынша анықталады: егер Z = 1 нолі, А = r ; егер А < r болса, ауысуы C = 1 болады. Кейбір есептерді шешуде берілген санды 2 есе арттыру/ кеміту керек. Ол RRC (оңға) немесе RLC (солға), бір разрядқа жылжиды.
RAR және RAL командаларының айырмашылығы - олардың аккумулятор құрамының оңға (солға) циклдік ығысуы тасымалдау (С) жалау биті арқылы жүзеге асырылуында.
CMC (коп 3F) командасы (C) тасу бит жалауын инвертирлейді.
15 Дәріс. i82С55 кіріс-шығыс интерфейсі
15.1 Жалпы мағлұматтар
Енгізу/шығару жүйесі (КШЖ) МП сыртқы құрылғылармен байланысын қамтамасыз етеді, оларға мыналар жатады:
- енгізу/шығару құрылғылары (ЕШҚ) - пернетақта, дисплей, принтер, берілгіштер және орындаушы механизмдер, АЦП, ЦАП, таймерлер және т.б.;
- сыртқы есте сақтау құрылғылары (СЕСҚ): магниттік дискідегі жинақтаушылар, «электронды дискілер» және т.б.
ЕШЖ қарастыру шегінде «ЕШҚ» және «СҚ» терминдерін синонимдер деп аламыз да, оларға процессор тарапынан көңіл аудару бір заң бойынша іске асырылады.
ЕШЖ келесі функциялардың орындалуын қамтамасыз етуі керек:
- мәліметтер форматын келістіру, себебі процессор әрқашан мәліметтерді параллельді формада жібереді/қабылдайды, ал кейбір СҚ (мысалы, НМД) – тізбекті формада. Осы көзқарас тұрғысынан параллель және тізбекті интерфейс құрылғылары ажыратылады. Параллель ауысу аясында берілген сөздердің форматтарын түрлендіру жүргізілмейді, осы кезде тізбекті ауысуда параллель кодты тізбектіге түрлендіру жүзеге асырылады;
- ауысу режимін ұйымдастыру – әртүрлі шиналарда ақпараттың болуы, оның типі, СҚ күйі (Дайын, Бос емес, Авария), ауысудың уақытша параметрлерін шектеу, индентификациялаушы басқару сигналдарының қалыптасуы мен қабылдануы. Процессор және СҚ байланыс тәсілімен (активті және пассивті) асинхронды және синхрондық ауысуды бөліп көрсетуге болады. Синхрондық ауысу кезінде ауысудың уақыттық сипаттамалары толығымен МП анықталады, ол СҚ ауысуға дайындығын және ауысудың іс-жүзіндегі аяқталу уақытын сараптамайды. Синхрондық ауысу осыған үнемі дайын болатын құрылғылармен ғана болуы мүмкін (мысалы, екілік индикация).
Асинхронды ауысу кезінде МП ауысу біту процесінде СЖ күйін сараптайды. Осы жағдайда ауысудың уақыттық сипаттамалары СҚ анықтала алады:
- сыртқы құрылғының сыртқы селекциясын.
Енгізу/шығару процесі МП басқаруымен не СҚ (ПДП контроллері) болуы мүмкін. Бірінші жағдайда енгізу/шығару әдістері екі түрге бөлінеді: сұрау бойынша және сүзу бойынша.
Сұрау бойынша енгізу/шығару әдісі СҚ жауапқа дайындығын процессормен үнемі тексеру дегенді білдіреді. Бұл әдістің кемшілігіне төменгі тезжүргіштікті жатқызуға болады. Процессор және сыртқа құрылғылар
жылдамдық бойынша сәйкес болулары керек. Егер ақпарат сирек түсетін болса (процессор СҚ сұрайды, ақпарат жоқ), тиімділігі төмен болады.
15.2 Бағдарламаланатын i8255 периферийлік интерфейсі
Бағдарламаланатын i8255 бағдарламаланатын периферийлік интерфейсінің (programmable peripheral interface – PPI) 40 шығысы бар:
- мәліметтерді енгізу/шығаруға арналған үш порт А(РА7 – РА0), В(РВ7 – РВ0), С(РС7 – РС0);
- мәліметтерді уақытша сақтауға арналған мәліметтер буфері МБ (Д7 – Д0);
- басқару блогы.
Басқару блогының 6 шығысы бар: CS – бағдарламалау, есептеу немесе жазу операциялары үшін микросхемалар жиыны; А0, А1 – енгізу-шығару портын таңдау (00 – порт А, 01 – В, 10 – С, 11 – басқару блогының командаларының регистрі); RD, WR – оқу және жазу операциясы үшін; RESET – бастапқы күйге келу ауытқу сигналы, яғни ППИ барлық порттары мәліметтердің енгізу құрылғысы ретінде МП қолданылады.
15.1 сурет – ППИ құрылымдық
А, В, С порттары жеке бағдарламаланған, сол сияқты топтар бойынша бағдарламаланған болуы мүмкін: А тобы – А порты және С портының үлкен жартылай байтты (РС7 – РС4); В тобы – кіші жартылай байтты В порты (РС3 – РС0).
ППИ үш режимде жұмыс істейді:
- 0 режим – негізгі (стробталмаған);
- 1 режим –стробталған енгізу-шығару ( бірбағытты);
- 2 режим – стробталған екібағытты ауыстыру.
15.2.1 Режим 0.
ППИ-ді 0 режимінде порттар топтарға қосылатындай етіп бағдарламалауға болады:
- екі бірбайттық және екі жартылай байттық порт (С порт) енгізу-шығару 16 мүмкін комбинациялары не үш бірбайттық порт А,В, және С порттарынан 8 мүмкін комбинациялар. Аккумулятор (А) мәліметтерді шығарған кезде МП
(OUT командасы бойынша, порт адресі) олар ППИ буферлік регистрінде есте сақталып, ал содан кейін порт шинасы арқылы белгіленген портқа жіберіледі.
Мәліметтерді аккумуляторға енгізген кезде МП А,В,С регистрлері «мөлдір» болады (мәліметтерді тіркемейді) және (IN, порт адресі) командасы бойынша мәліметтерді порт шинасынан микропроцессорлық мәліметтердің жүйелік шинасына (Д7 – Д0) жібереді.
15.2.2 Режим 1.
Бұл режимде С портының 6 разряды МП және СҚ арасындағы мәліметтер ауысуын синхронизациялау үшін А және В порттары арқылы пайдаланылады, яғни тек екі порт А және В порттары ғана қолданылады. Бұл кезде 1 режим стробирленген кіріс немесе стробирленген шығыс ретінде болуы мүмкін.
1 режимінің стробирленген шығысы А порты немесе В портының жалғамалары бар енгізу құрылғысы ретінде жұмыс жасауын ұсынады. Бұл сыртқы мәліметтердің МП оларды шығарып тастауға дайын болғанша портта сақталуына мүмкіндік береді. Көптеген енгізу/шығару құрылғылары ақпаратты МП істегенге қарағанда біраз баяулау қабылдайды және береді. Ақпаратты ендіру-шығару процесін басқару әдісі бар, ол квиртирлеу (handshaking) немесе сауалнама (poling) деп аталады да, МП-мен енгізу-шығару құрылғысының жұмысын синхрондайды. Мысалы, квитирлеуді талап ететін құрылғы болып, секундына 100 белгі (cps) басып шығаратын жылдамдықты параллель принтер бола алады. Принтерден оның бос еместігі туралы сұрау сауалнама жүргізу, ал принтерге бір уақыттағы Strobe сигналымен мәліметтер жіберу – квиртирлеу деп аталады.
Әдебиеттер тізімі
1. Гусев В. Г. Электроника и микропроцессорная техника: Учебник для вузов. – М.: Высшая школа, 2006. – 799 с.
2. Опадчий Ю.Ф. Аналоговая и цифровая электроника: Учебник для вузов. /Под ред. О.П.Глудкина. – М.: Горячая линия‑Телеком, 2005. – 768 с.
3. Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники. – М.: БИНОМ. Лаборатория знаний, 2006.
4. Угрюмов Е.П. Цифровая сұлбатехника. – СПб.: БХВ-Петербург, 2002. – 528 с.
5. Шанаев У.Т. Цифровые устройства и микропроцессоры. Методические указания к выполнению лабораторных работ. – Алматы: АУЭС, 2010. – 25 с.
6. Байкенов Б.С. 8085-симулятор. Методические указания к выполнению лабораторных работ. – Алматы: АУЭС, 2010. – 24 с.
Достарыңызбен бөлісу: |