8

Click here to load reader

05 Zadaci I Del

Embed Size (px)

Citation preview

Page 1: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 1/8

  

Задачи по микропроцесорски системи – I дел – 

 Зад.1. Секои 30ms од изолирана порта со адреса 0Ah се чита податок. Ако битовите 2 и 5 се 1 и 

0  соодветно,  на  мемориски‐пресликана  порта  на  адреса  F00Ah  се  испраќа  прочитаниот  податок поделен со 2, инаку се испраќа прочитаниот податок помножен со 7. Фреквенцијата на кристалот на осцилаторот е 5MHz. 

   if (bit 2==1) and (bit 5==0)     (F00Ah) <– Data/2   else     (F00Ah) <– Data*7  

РЕШЕНИЕ:  

fosc = 5MHz     Tosc = 0,2 µs         ; Периодот е 1/f.  Работниот период е 2 пати поголем. Ts = 2Tosc = 0,4µs  DOCNI_1: MVI D,178d ; 14 циклуси x 0,4 µs= 5,6 µs x 178= 1 ms DOCNI: DCR D ; 4 циклуси JNZ DOCNI ; 10 циклуси RET DOCNI_30: MVI E,30d ; 30 пати по 1 ms = 30 ms DOCNI_1: MVI D,178d ; јамка за 1 ms 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 ; исполнети се двата услови RRC ; ACC се дели со 2 STA IZLEZNA ; резултатот се запишува на Mm порта JMP START ; безусловен скок на почеток

Page 2: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 2/8

MNOZI_SO_7: MVI C,7d ; множењето е реализирано со собирање MVI A,0 PAK: ADD B DCR C JNZ PAK STA IZLEZNA ; резултатот се запишува на F00Ah JMP START END VLEZNA EQU OAh IZLEZNA EQU F00Ah 

 Зад.2. Да  се  иницијализира  компонентата  8156  така  да  RAM‐от  го  зафаќа  просторот  4800h–

48FFh.  Портата  А  да  се  иницијализира  како  стробирана  влезна  порта,  а  B  како  обична  излезна. Тајмерот брои поворка од кратки импулси со T = 1ms. ( f = 4MHz ).  РЕШЕНИЕ:  

А15   А14  А13  А12  А11 32к  16к  8к  4к  2к 0    1  0  0  1 

  

  Адресите на командно/статусниот регистар, портите и тајмерот се:  CSR  01001 000    PA  01001 001   TLSB     01001 100         PB  01001 010   TMSB  01001 101         PC  01001 011 

Page 3: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 3/8

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

Вредносите кои треба да се запишат во командно/статусниот регистар и тајмерот се:  TMSB  11000111  ; 199 TLSB  11010000  ; 208 CSR  11010110  ; D6h  

MVI A, 208d OUT TLSB MVI A, 199d OUT TMSB MVI A, D6h OUT CSR END CSR EQU 01001000 TMSB EQU 01001101

    TLSB EQU 01001100  Зад.3.  Да  се  проектира  решение  за  раскрсница  со  помош  на  семафори,  да  се  предложи 

минимално хардверско решение (име на компонента). 

 РЕШЕНИЕ:  

Ц (Ѕ1)  Ж (Ѕ1)  З (Ѕ1)  Ц (Ѕ2)  Ж (Ѕ2)  З (Ѕ2)  Ц (Р1)  Ц (Р2)   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  1 мин.

S1 S2

P1

P2

Page 4: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 4/8

 Доволен е ROM 8355  START: MVI H, LIGHT

MVI L, LOC ; можеше и LXI H, LIGHT LOC MOV 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 секунди

- - - - - - - - - - - - - - - - - -

MOV A, M ; се вчитува првата локација од ROM OUT PORTA ; се праќа на соодветна I/O порта CALL DOCNI_3SEC ; се повикува процедура за доцнење од 3 секунди JMP START ; на почеток на првобитната состојба на семафорот END  

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

void main() {   const int N = 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 N LXI B, ADRZ ; BC регистарскиот пар се полни со адресата на ADRZ LXI D, ADRY ; DE регистарскиот пар се полни со адресата на ADRY LXI H, ADRX ; HL регистарскиот пар се полни со адресата на ADRX

VRTI: MVI A, 10d STAX B ; се сместува 10 како елемент на полето ADRZ

; (индиректно преку BC)

Page 5: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 5/8

LDAX D ; во ACC се вчитува елементот од ADRY полето

; (индиректно преку DE) RLC ; множење со 4 RLC MOV M, A ; тоа што е во ACC се сместува во полето ADRX

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

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

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

 РЕШЕНИЕ:  

   Зад.6.  Да  се  прикаже  потребното  хардверско  поврзување  кое  ќе  овозможи  да  се  генерира 

прекин од тип RST 7 при појава на прекин на линијата INTR на µP 8085.  РЕШЕНИЕ: 

    

Page 6: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 6/8

 

   

Opcode на RST:  1  1  1  n  n  n  1  1  

 Зад.7. Од изолирана порта на адреса 0Ah се чита низа на податоци и на локација SUMA_PAR се 

сместува вкупниот број на парни броеви. За време на работата  може да се појави прекин од повисок приоритет  која  на  локација  SUMA_PAR  додава  3.  Да  се  нацрта  хардверско  поврзување  и  напише соодветна асемблерска програма.  РЕШЕНИЕ:  

  

 2Ch: CALL PRIMI_DATA         34h: CALL DOJDE_POVISOK          RET           RET                      RST  5.5            RST  6.5 

 

Иницијализација Главна програма END

Page 7: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 7/8

 Зад.8.  За  регулирање  на  гужва  во  услужна  установа  е  проектиран  систем  каде  шалтерски 

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

 РЕШЕНИЕ: 

 

  

MVI A,0 ; реден број на корисникот STA RDN_BR

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

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

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

Page 8: 05 Zadaci I Del

Аудиториски вежби по микропроцесорски системи                                                     

Александар Симевски 8/8

2Ch: CALL SERVIS_55 ; на адреса 2Ch, наменета за RST 5.5 RET 34h: CALL SERVIS_65 ; на адреса 34h, наменета за RST 6.5 RET SERVIS_55: MVI A,1 ; на дисплеј се испишува бројот на шалтер OUT 01h LDA RDN_BR ; се вчитува редниот број на корисникот INR A ; се зголемува за 1, се запишува во соодветната

; мемориска локација и се испишува на вториот ; дисплеј

STA RDN_BR OUT 02h DCR E ; еден корисник помалку RET SERVIS_65: MVI A,2d ; на дисплеј се испишува бројот на шалтер OUT 01h LDA RDN_BR ; се вчитува редниот број на корисникот INR A ; се зголемува за 1, се запишува во соодветната

; мемориска локација и се испишува на вториот ; дисплеј

STA RDN_BR OUT 02h DCR E ; еден корисник помалку RET