9
 1 Задачи по Микропроцесори -I дел- 1. Секој 30ms од изолирана порта со адреса 0Ah се чита податок. Ако битовите 2 и 5 се 1 и 0 соодветно на мемориска пресликана порта на адреса F00Ah се испраќа прочитаниот податок поделен со 2, инаку се испраќа прочитаниот податок помножен со 7. Фреквенцијата на кристалот на осцилаторот е 5MHz. If bit 2,5==1,0 If bit 2,5==1,0 If bit 2,5==1,0 If bit 2,5==1,0 F00Ah F00Ah F00Ah F00Ah  Data/2 Data/2 Data/2 Data/2 Else Else Else Else F00Ah F00Ah F00Ah F00Ah  Data*7 Data*7 Data*7 Data*7 Решение:  fosc=5MHz Tosc=0,2 µsec ;Периодата е 1/f. Работната периода е 2 пати  поголема. Ts=2Tosc Ts=0,4µsec DOCNI_1: MVI D,178d ;14 циклуси x 0,4 = 5, 6 микросекунди x 178= 1ms DOCNI: DCR D ;4 циклуси JNZ DOCNI ;10 циклуси RET DOCNI_30: MVI E,30d ; 30 пати по 1 ms = 3 0 ms DOCNI_1: MVI D,178d ; јамка за 1ms DOCNI: DCR D JNZ DOCNI DCR E JNZ DOCNI_1 RET START: CALL DOCNI_30 ;доцнење од 30 ms IN VLEZNA ;се вчитува податокот од I/O уред на адреса OAh MOV B,A ANI 00100000b ;се проверува 5-тиот дали е 0 JNZ MNOZI_SO_7 ;доколку резултатот не е нула се скока на mnozi_so_7 MOV A,B ORI 11111011b ;се проверува дали битот 2 е единица CPI FFh ;ACC се споредува со FFh JNZ MNOZI_SO_7 ;доколку не е 0 с е скока на mnozi_so_7  DELI_SO_2: MOV A,B ; исполнети се двата услови 

04_zadaci_I_del

Embed Size (px)

Citation preview

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 1/9

  1

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

-I дел-

1.  Секој 30ms од изолирана порта со адреса 0Ah се читаподаток. Ако битовите 2 и 5 се 1 и 0 соодветно на меморискапресликана порта на адреса F00Ah се испраќа прочитаниотподаток поделен со 2, инаку се испраќа прочитаниот податокпомножен со 7. Фреквенцијата на кристалот на осцилаторот е5MHz.

If bit 2,5==1,0If bit 2,5==1,0If bit 2,5==1,0If bit 2,5==1,0F00AhF00AhF00AhF00Ah Data/2Data/2Data/2Data/2

ElseElseElseElse F00AhF00AhF00AhF00Ah Data*7Data*7Data*7Data*7

Решение:

 fosc=5MHzTosc=0,2 µsec ;Периодата е 1/f. Работната периода е 2 пати поголема. Ts=2ToscTs=0,4µsec

DOCNI_1: MVI D,178d ;14 циклуси x 0,4 = 5,6 микросекунди x 178= 1ms 

DOCNI: DCR D ;4 циклуси JNZ DOCNI ;10 циклуси RET

DOCNI_30: MVI E,30d ; 30 пати по 1 ms = 30 ms DOCNI_1: MVI D,178d  ; јамка за 1ms 

DOCNI: DCR DJNZ DOCNIDCR EJNZ DOCNI_1RET

START: CALL DOCNI_30 ;доцнење од 30 ms IN VLEZNA ;се вчитува податокот од I/O уред на адреса OAh MOV B,AANI 00100000b ;се проверува 5-тиот дали е 0 JNZ MNOZI_SO_7 ;доколку резултатот не е нула се скока на

mnozi_so_7 MOV A,BORI 11111011b ;се проверува дали битот 2 е единица CPI FFh ;ACC се споредува со FFh

JNZ MNOZI_SO_7  ;доколку не е 0 се скока на mnozi_so_7 

DELI_SO_2: MOV A,B ; исполнети се двата услови 

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 2/9

  2

  RRC ; ACC се дели со 2 STA IZLEZNA ;резултатот се запишува на Mm порта JMP START ;безусловен скок на почеток  

MNOZI_SO_7:MVI C,7d  ;множењето е реализирано со собирање MVI A,0

PAK: ADD BDCR CJNZ PAKSTA IZLEZNA ;резултатот се запишува на F00Ah JMP STARTEND

VLEZNA EQU OAhIZLEZNA EQU F00Ah

2.  Да се иницијализира компонентата 8155/56 така да RAM-отзафаќа простор 4800h–48FFh. Портата А да се иницијализиракако стробирана влезна порта, а B како обична излезна.Тајмерот брои поворка од кратки импулси со T = 1ms.(f=4MHZ).

РЕШЕНИЕ:

 А15 А14 А13 А12 А1132к 16к 8к 4к 2к

0 1 0 0 1

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 3/9

  3

 

CSR 01001 000PA 01001 001PB 01001 010PC 01001 011TLSB 01001 100TMSB 01001 101

T=0,25 microsec, Ts = 0,5 microsec; 1 ms = 2000 * 0,5 microsec; 2000 = 7*256+208

TMSB 11000111TLSB 11010000CSR 11010110

MVI A, 208d CSR EQV 01001000OUT TLSB TMSB EQV 01001101MVI A, 199d TLSB EQV 01001100OUT TMSBMVI A, D6h 

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 4/9

  4

OUT CSREND

3. 

Да се проектира решение за раскрсница со помош насемафори, да се предложи минимално хардверско решение(како име на компонента).

РЕШЕНИЕ:

Ц  Ж  З  Ц  Ж  З  Ц  Ц 

0 0 1 1 0 0 1 0 1 мин0 1 0 1 0 0 1 1 3 сек1 0 0 1 1 0 1 1 3 сек1 0 0 0 0 1 0 1 1 мин1 0 0 0 1 0 1 1 3 сек1 1 0 1 0 0 1 1 3 сек0 0 1 1 0 0 1 0

Доволен е ROM 8355

START MVI H,LIGHTMVI L, LOC ;можеше и LXI H, LIGHT LOCMOV A,M  ; се вчитува првата локација од ROM 

OUT PORTA ; се праќа на соодветна I/O порта 

CALL DOCNI_1MIN ;се повикува процедура за доцнење од 1 минута 

INX H  ; зголеми го HL парот за 1 (наредна локација) 

MOV A,M  ; се вчитува втората локација од ROM

OUT PORTA  ; се праќа на соодветна I/O порта 

CALL DOCNI_3SEC  ;се повикува процедура за доцнење од 3 секунди 

S1S2

P1

P2

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 5/9

  5

--MOV A,M  ; се вчитува првата локација од ROM 

OUT PORTA  ; се праќа на соодветна I/O порта

CALL DOCNI_3SEC  ;се повикува процедура за доцнење од 3 секунди 

JMP START  ;на почеток на првобитната состојба на семафорот 

END

4.  Да се напише еквивалентна асемблерска програма насоодветната C програма:

void main()

{

const int = 30;

int x[50], y[50], z[50];

for (int i=1; i<=N; i++)

{

z[i]=10;

x[i]=4*y[i];

}

}

РЕШЕНИЕ:

 ADRX DS 50  ;декларација на поле ADRX со 50 елементи  ADRZ DS 50 ;декларација на поле ADRZ со 50 елементи  ADRY DS 50 ;декларација на поле ADRY со 50 елементи 

N DS 1 ;дефинирање на еднобајтна променлива N MVI A,30d ;Иницијализација на N на 30 STA NLXI B,ADRZ ;BC регистарскиот пар се полни со адресата на ADRZ LXI D,ADRY ;DE регистарскиот пар се полни со адресата на ADRY  LXI H,ADRX ;HL регистарскиот пар се полни со адресата на ADRX

 VRTI: MVI A,10dSTAX B ;се сместува 10 како елемент на полето ADRZ (индиректно преку BC) LDAX D ;во ACC се вчитува елементот од ADRY полето (индиректно преку DE) 

RLC ; множење со 4 RLCMOV M,A ;тоа што е во ACC се сместува во полето ADRX (индиректно преку HL) INX B ;BC покажува на наредниот елемент од полето ADRZ

INX D ;DE покажува на наредниот елемент од полето ADRY  INX H ;HL покажува на наредниот елемент од полето ADRX LDA NDCR A ;намали го бројачот за 1. STA N

JNZ VRTI ;се додека бројачот е различен од 0. 

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 6/9

  6

 

5.  Два уреди за најава на комуникација со µP користат истапрекидна линија. Да се нацрта компјутерска реализација наовој систем при што едниот уред е надреден MASTER во односна другиот.

РЕШЕНИЕ:

6. 

Да се прикаже потребното хардверско поврзување кое ќеовозможи при појава на прекин на линијата INTR на µP 8085да се генерира прекин од тип RST 7.

РЕШЕНИЕ:

1 1 1 n n n 1 1

7.  Од изолирана порта на адреса 0Ah се чита низа на податоци ина локација SUMA_PAR се сместува вкупниот број на парниброеви. За време на работата може да се појави прекин одповисок приоритет која на локација SUMA_PAR додава 3. Да

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 7/9

  7

се нацрта хардверско поврзување и напише соодветнаасемблерска програма.

2Ch: CALL PRIMI_DATA 34h:CALL DOJDE_POVISOK

RET RET

RST 5.5 RST 6.5

8.  За регулирање на гужва во услужна установа е проектирансистем каде шалтерски работник со притискање на тастер јанајавува својата расположливост, а на дисплеј чија природае небитна се прикажува бројот на шалтерот и бројот накорисникот кој е на ред. Во установата има два шалтера.Корисниците броевите ги добиваат на влез и во еден деннема повеќе од 255 корисника. Да се нацрта минимално

 хардверско поврзување и да се напише соодветна

асемблерска програма базирана на µP 8085A.РЕШЕНИЕ:

Иницијализација 

Главна програма 

END

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 8/9

  8

 

MVI A.0 ;реден број на корисникот STA RDN_BRMVI E,255d

 VRTI: MOV A,E ;јамка за 255 корисника  ANI FFhJNZ VRTI ;сите интерапти се случуваат тука HLT ;крај на програмата END

RDN_BR DS 1 ;променлива каде се чува редниот број на корисникот 

;има само 4B меморија наменета за интерапт рутините (премалку), па затоа повикувамепроцедура (CALL=3B, RET=1B)

2Ch: CALL SERVIS_55 ;на адреса 2Ch, наменета за RST 5.5 RET

34h: CALL SERVIS_65 ;на адреса 34h, наменета за RST 6.5 RET

SERVIS_55: MVI A,1 ;на дисплеј се испишува бројот на шалтер OUT 01hLDA RDN_BR ;се вчитува редниот број на корисникот 

7/17/2019 04_zadaci_I_del

http://slidepdf.com/reader/full/04zadaciidel 9/9

  9

  INR A ;се зголемува за 1, се запишува восоодветната мемориска локација и се испишува на втоориот дисплеј

STA RDN_BROUT 02hDCR E ;еден корисник помалку RET

SERVIS_65: MVI A,2d ;на дисплеј се испишува бројот на шалтер OUT 01hLDA RDN_BR ;се вчитува редниот број на корисникот 

INR A ;се зголемува за 1, се запишува восоодветната мемориска локација и се испишува на втоориот дисплеј 

STA RDN_BR

OUT 02hDCR E ;еден корисник помалку RET