Задачи по Микропроцесори

-II делЗадачи:
9. По исчитување на податок со вредност 09h од изолирана
порта со адреса 0Bh почнувајќи од адреса POCET, сериски со
брзина од 1200bps се пренесуваат 255 податока. По
пренесувањето на податоци, на излезна изолирана порта на
адреса 0Ah се пренесува податок 0Ch. Да се напише
асемблерска програма базирана µP 8085. Фреквенцијата на
осцилаторот е 4MHz.
РЕШЕНИЕ:
Ќе го искористиме тоа дека µP знае битот 7 да го пренесе при SIM
инструкција на SOD пинот, само доколку битот 6 е 1.

Ts=0,5 µS
1/1200=833µS
X*7=833
CEKAJ: IN 0Bh
CPI 09h
JNZ CEKAJ
LXI H,POCET
MVI D,255
PАK: MOV A,M

X=119
;Се вчитува податокот од порта 0Bh
;Се споредува со 09h
;Се чека да дојде податок 09h
;Се полни HL парот со адресата на полето
;Бројач на податоци (не повеќе од 255)
;Првиот податок од полето се запишува

во

акумулатор

CALL PRATI
INX H
DCR D
JNZ PAK
MVI A,0Ch

;се повикува процедура за праќање
;наредната адреса во полето
;еден податок е пратен
;ако не се испратени сите врати се отпочеток
;откако ќе се испратат стави вредност OCh во

акумулаторот

OUT 0Ah
END

;таа вредност се испраќа на адреса 0Аh
;Крај на програмата

DOCNI: MVI Е, 119d
LOOP: DCR Е
JNZ LOOP
RET

;процедура за доцнење

PRATI: MVI C,8h
CIKL:
MOV B,A
ORI 01000000

; Треба да се праќа бит по бит
;Привремена копија и во B регистарот
;Го поставуваме битот 6 на 1, останатите не ги

; 4 такта
;10 такта
; 14 такта * 0,5

833µs

µs = 7 µs * 119 = 833 µs

менуваме

SIM
CALL DOCNI
MOV A,B
RLC
DCR C

;се испраќа битот 7
;се доцни 833 µs
;се враќа податокот во ACC
;сега се праќа битот 6
;еден бит помалку за праќање

1

бројач на податоци MVI L.дефинираме бројач MVI B.0 .креираме јамка ANI FFh JNZ VRTI PUSH H . РЕШЕНИЕ: VRTI: 2Ch: N DS 1 .Се појавил интерапт 5.на врв на стек ги сместуваме max и min END CALL SERVIS RET . Од стробирана порта на адреса OAh по прекидна секвенца се чита низа од непознат број на карактери но не поголем од 128. Во рамки на низата може да се појави податок со вредност ААh.иницијален минимум MOV A.иницијален максимум MVI H.Дали сме ги испратиле сите 10.JNZ CIKL RET .C . Почетокот на низата е означен со код AAh.255d .5 2 .го користиме како флег регистар дали сме во низа MVI C.1 .0 .за јамка MVI A. a крајот со код 55h.0 STA N . На врвот од стекот да се сместат најголемиот и најмалиот податок од низата. Доколку се појават повеќе од 128 податока се запира работата на µP.

Доколку сите 3 резултати се исти се пали зелено.ако не сме се чита карактерот IN 0Ah CPI AAh . Надредениот µP испраќа бајт податок кон сите µP кои потоа истиот го обработуваат. РЕШЕНИЕ: 3 .и излегуваме од процедурата VO_NIZA_SME:IN 0Ah .B . ако се различни се пали црвено светло. Надредениот µP по испраќање на податокот влегува во IDLE режим и останува 3.да не е 128-миот JZ ZAPRI_MPS MOV A.дошол карактер STA N CPI 128d . Едниот од нив е надреден во однос на останатите три.провери дали е min или max JMP KRAJ GOTOVO: MVI C.SERVIS: LDA N .A JMP KRAJ1 NOV_MIN: MOV H.процедура за проверка дали е min или max 11.рутина за RST 5.провери да не е последниот карактер JZ GOTOVO CALL MAXMIN .2 msec. Потоа со прозивка го зема резултатот од сите 3 µP и го споредува.5 INR A .O .ако е почетниот го сетираме флегот INR B JMP KRAJ .A KRAJ1: NOP RET .ако сме во низа CPI 55h .дали сме во низа или не CPI 1d JZ VO_NIZA_SME .се сетира флег за крај JMP KRAJ ZAPRI_MPS: HLT KRAJ: NOP RET MAXMIN: CMP H JM NOV_MIN CMP L JP NOV_MAX JMP KRAJ1 NOV_MAX: MOV L. Повеќе процесорски систем се состои од 4µP 8085А.и се проверува дали е почетниот JNZ KRAJ .

microPmaster 8212 8282 microP1 microP2 microP3 A8 A9 INT A10 A11 OUT 02h STB ` DS1 IN 02h ` OE 8212 INT IN 01h RST 5.5 A12 A13 8282 DS2 A8 STB A9 8085A 4 .

5 .

се праќа мна првиот микропроцесор OUT 04h .2 msec се чита од првиот микропроцесор MOV B.2 msec се чита од вториот микропроцесор IN 08h CMP B . По добивање на знак за старт. РЕШЕНИЕ: 6 .по 3.01XXXXXX .исти се! JMP CRVENO .се праќа мна третиот микропроцесор Јамка за 3.2 msec.се праќа мна вториот микропроцесор OUT 16h .11XXXXXX SIM KRAJ: NOP END 12.Главна програма MOV A.се праќа „1“ на SOD OK: MVI A. за време од 5 сек треба да се внесат 2 бајти.A .M . се чита податокот од третиот микропроцесор OK1: IN 20h CMP B JZ OK CRVENO: MVI A. IN 02h .по 3. Да се нацрта хардверско поврзување и напише процедура за опслужување на тајмерот. на тастатурата на влезот од просторијата.се праќа „0“ на SOD SIM JMP KRAJ .се споредува со податокот добиен од I микропроцесор JZ OK1 . Систем базиран на 8085 служи за контрола на влегување во заштитена просторија.се чита податокот OUT 01h .

2µsec ts=0.4 msec 6. 8156 ќе јавува интерапт на секои 6.бројач на бајти ако С=0 изминала 1 сек 7 .5 msec 214=16384 TH.4µsec 6. 0 CALL POLNI_TIMER SERVIS_65: INR H RET SERVIS_75: DCR C JNZ КРАЈ . се полни и се стартува тајмерот .5 msec .TL 16000  6.fosc =5MHz t=0.потребно е 156 пати 8155 да јави интерапт за да знаеме дека изминала 1 sec. THB EQU 00001 101 TLB EQU 00001 100 CSR EQU 00001 000 2Ch: CALL SERVIS_55 RET 34h: CALL SERVIS_55 RET 3Ch: CALL SERVIS_75 RET SERVIS_55: MVI E.4*156=1000ms=1 sec .4 msec .8156 може да брои max 6.ако TH и TL се наполнат со 16000d.

DCR D JZ GOTOVO .се полни долниот бајт .ако не се полни тајмерот да брои отпоново CALL POLNI_TIMER JMP KRAJ GOTOVO: MVI E. маскирај ги сите прекини.5 SIM VRTI: MOV A.128d .крај на јамката во главната програма KRAJ: NOP RET POLNI_TIMER:MVI A.се полни горниот бајт .дали се внесени 2 бајти CPI 2d JZ OK_E //NE SE VNESENI DVA BAJTI . X0X01110b .E . MVI C.10000000 OUT TLB MVI A.креираме јамка за старт ANI FFh JNZ VRTI MVI А.бројач за 1 секунда MVI D.5d . X0X01001b . пр. овозможи ги само RST 6.1 . овозможи го само RST 5.0 .H . Заради зголемена надежност во работата на систем за надзор се користат два µP 8085.10111110 OUT THB MVI A. SIM MVI H. отвори врата KRAJ: NOP END 13. 156d .11XXXXXX OUT CSR RET .E ANI FFh JNZ LOOP MOV A.флег за јамка MVI А.62d+128d(краток импулс)=190 .156d .бројач за 5 секунди MVI E.соодветна акција. Двата µP 8085 извршуваат 8 .се стартува тајмерот Главна Програма: MVI А. пр.соодветна акција.5 SIM MVI E.Aко C и D се 0 изминалe 5 sec. вклучи аларм JMP KRAJ OK_E://OK E . MVI C. X0X01111b .1 LOOP: MOV A.бројач на бајти.5 и RST 7.0 .

14. d. 9 .иста програма сместена во соодветна ROM меморија. 16 битниот уред за секој податок испраќа прекин кон µP. 16 битниот уред не праќа нов податок додека не добие потврда од µP. Процесорот му сигнализира на 8 битниот уред кога е поставен податок за него. b. Да се проектира помошно “неинтелегентно” коло кое ќе форсира TRAP сигнал во сите случаи кога пресметаниот податок во двата µP се разликува. c. Спориот 8 битен уред му сигнализира на процесорот за некоректно извршен пренос по што тој податок повторно треба да се препрати. Да се нацрта хардверско поврзување и софтверска поддршка за следното сценарио. 16 битен уред комуницира со 8 битен поспор уред под софтверска контрола на 8085. a.

спориот уред пријавува грешка.бесконечна јамка 10 .Главна програма: VRTI: MVI А.брзиот праќа податок RET 34h: CALL SERVIS_65 .11X00XXX SIM JNP VRTI END 2Ch: CALL SERVIS_55 . RET .

100d DCR C JNZ VRTI1 MVI A.01X00XXXb SIM MVI A. 100d DCR C JNZ VRTI2 RET .01X00XXXb SIM MVI A. се праќа горниот бајт . Температурата доаѓа по прекидна секвенца. 11 .се праќа долниот бајт .5 s.се праќа долниот бајт 15. Контролата се врши секоја 0.XXXXXX10b OUT 01h OUT 02h NOP MVI A.XXXXXX01b OUT 01h OUT 02h MVI C. се праќа горниот бајт .SERVIS_55: SERVIS_65: VRTI1: VRTI2: MVI A. сместени на врвот на стекот.XXXXXX10b OUT 01h OUT 02h MVI C. Микропроцесорски систем базиран на 8085 служи за контрола на температура. а обратно се пали црвена сијаличка и се запира работата на процесорот.XXXXXX01b OUT 01h OUT 02h RET MVI A. се пали зелена сијаличка. Доколку прочитаната температура е во интервалот помеѓу две гранични температури.

136 OUT TLB MVI A.11XXXXXXb . треба 250 пати да се изврти тајмерот.11XXXXXXb SIM THB EQU 00001 101 TLB EQU 00001 100 CSR EQU 00001 000 PCH PCL T1 T2 12 . се стартува тајмерот OUT CSR INIT: MVI B. 19. 3Ch: DCR B RET MVI A.2 µs Ts=0.Fosc=5MHz T=0.5 sec.B ANI FFh JNZ PAK POP D IN 01h CMP D SP JC STOP CMP E JNC STOP MVI A. 5000/256=19 и ост 136 поворка кратки имплуси OUT THB MVI A.250d PAK:MOV A. па до 0. 11010011b .4 µs 5000 во тајмерот ќе даде интерапт до 2ms. 10001000b .

РЕШЕНИЕ: MVI A. .Уредите имаат 8-битна влезна порта и 8-битна излезна порта и влезен CLKIN сигнал. на 8155 MVI A.запишување во CSR рег. . Два 8 битни уреди комуницираат паралелно помеѓу себе со одредена стапка од X [B/s].1001XXXXb 13 .01XXXXXXb SIM HLT END 16. Да се нацрта хардверско поврзување и напише соодветна асемблерска програма.Фреквенцијата на осцилаторот е 5MHz. при што може истовремено и двата уреди и да праќаат и да примаатподатоци.И двата уреди имаат едно-битен RCV влезен сигнал кој кога е единица уредот почнува да прима 8-битни податоци на секоја растечка ивица од CLKIN.Уредот 1 е надреден и има едно-битен излезен INT сигнал за комуникација по прекидна секвенца со процесорот на кој му соопштува како течат податоците: кој уред праќаподатоци. на почеток никој не пренесува OUT 02h JAMKA: JMP JAMKA 2Ch: CALL DATA RET DATA: IN 01h CPI 1h JZ U1_do_U2 CPI 2h JZ U2_do_U1 CPI 3h JZ DVONASOCNO JMP KRAJ U1_do_U2: LDA CSR_PRIV . а кој прима.подесување на 8155 во ACC OUT CSR .JMP INIT STOP: MVI A.И двата уреди имаат едно-битен TR влезен сигнал кој кога е единица уредот почнува да праќа 8-битни податоци на секоја растечка ивица од CLKIN. . . 0000XXXXb .

запишување во CSR рег.подесување на 8155 во ACC OUT CSR .1111XXXXb OUT 02h KRAJ: NOP RET 14 . на 8155 MVI A.подесување на 8155 во ACC OUT CSR . на 8155 MVI A.0110XXXXb OUT 02h JMP KRAJ DVONASOCNO:LDA CSR_PRIV .запишување во CSR рег.OUT 02h JMP KRAJ U2_do_U1: LDA CSR_PRIV .

Sign up to vote on this title
UsefulNot useful