Professional Documents
Culture Documents
Zgjidhjet-MM-28 12 2018
Zgjidhjet-MM-28 12 2018
2018
Zgjidhje:
Pergjigja: (P1)=00010110B
a) programi i ka 12 bajta
b) vlera e regjistrit A ne fund eshte e njohur
c) koha e ekzekutimit do te jete 257.0 µs
ç) DJNZ R7, LOOP do te ekzekutohet 257 here
d) permbajtja e regjistrit 30H ne fund do te jete 255
Zgjidhje:
a)
MOV direct, #data 3 bajt 2 cikle
MOV Rn, #data 2 bajt 1 cikel
MOV A, Rn 1 bajt 1 cikel
DJNZ Rn, rel 2 bajt 2 cikle
DJNZ direct, rel 3 bajt 2 cikle
Total 11 bajt, a) eshte e pasakte
c) e pasakte, programi do te ekzekutohet per 778 cikle te makines, qe eshte ekuivalente me 259.334
µs
ç) sakte
03. Instruksioni: Loop: JZ Loop eshte i vendosur ne memorie duke filluar nga 4321H
Zgjidhje:
a) JZ rel ka enkodimin 01100000 eeeeeeee ku e paraqet bitat e kercimit relativ. Kur vie te
instruksioni JZ Loop se pari inkrementohet per 2 PC, pra ka vleren 4323H, pastaj relative offset per
tu kthyer tek loop do te jete -2. Kjo paraqitet si signed integer, pra si 2-komplementi i numrit 2.
00000010
11111101 1K
11111110 2K
Pra bajtat e instruksionit ne hex do te jene 60 FE
c) sakte
ç) sakte
d) pasakte
04. Gjendja e regjistrave te procesorit 8051 eshte si vijon (vlerat jane ne HEX)
Zgjidhje:
a) e pasakte, MOV direct, A eshte instruksion 2 bajtesh, qe do te thote PC inkrementohet per 2, pra
nga 8210 behet 8212
b) sakte, RET nuk ndikon ne A
c) sakte, SP pointon ne adresen 11H, pas RET, SP dekrementohet per 2 dhe vlerat e adresave 11H
dhe 10H vendosen ne PC
05. Timer 0 duhet te punoj si "interval timer" ne modin 8-bit autoreload dhe Timer 1 si numerues
16-bitesh me kontroll nga sinjali i jashtem. Te shkruhet programi perkates per konfigurimin e timer-
eve dhe fillim te punes se tyre.
Zgjidhje:
06. Ne regjistrin IE (Interrupt Enable) eshte shkruar vlera 1001 1001 (99H)
Zgjidhje:
a) sakte, vlera e bitit 4 te IE eshte 1 qe aktivizon serial port interrupts (Gjithashtu biti 7 i IE eshte 1
qe aktivizon interruptat globalisht)
ç) sakte, vlera e bitit 5 te IE eshte 0 qe do te thote se timer 2 interrupts nuk jane aktivizuar
07. Ne portin 0 eshte lidhur treguesi 7-segmentesh ashtu qe "0" ne bitin perkates e ndez segmentin
perkates (P0.0-a, P0.1-b, P0.2-c, P0.3-d, P0.4-e, P0.5-f, P0.6-g, P0.7-DP). Te gjitha lokacionet e
memories se brendshme kur perdoren si burim e kane permbajtjen te barabarte me adresen e tyre
(p.sh. (23H)=23H).
08. Nese fosc=10.24MHz te shkruhen instruksionet me te cilat konfigurohet qe porti serik te punoi ne
shpejtesine 9600 bps. Komunikimi te kryhet me interrapte. Sa do te jete shpejtesia reale e fituar dhe
gabimi i shprehur ne perqindje?
Zgjidhje:
10.24MHz/(12 * 32 * 9600) = 2.778 =~ 3
MOV TMOD, #20H
MOV TH1, #0FFH-3
MOV SCON, #40H
MOV IE, #90H
SETB TR1
Shpejtesia reale = 10.24MHz/(12 * 32 * 3 ) = 8888.89 bps
Gabimi ne perqindje = (|9600 - 8888.89| / 9600) * 100% = 7.4%
09. Te shkruhet programi i cili ne portin serik e pranon nje rresht me karaktere ASCII i cili
perfundon me CR+LF (ASCII kodi i CR dhe LF). Pas cdo rreshti nese teksti i rreshtit te pranuar
eshte AT do te kthehet pergjigja >OK e pasuar me CR+LF. Ne te gjitha rreshtat tjere dergohet > e
pasuar me CR+LF, me perjashtim te atyre te zbrazet kur dergohet vetem CR+LF.
Zgjidhje:
ORG 0000H
LJMP Main
ORG 0023H
CLR RI
LJMP SPISR
Main:
MOV R0, #30H
MOV IE, #90H
MOV SCON, #50H
SJMP $
SPISR:
MOV A, SBUF
MOV @R0, A
CJNE A, #0AH, Pjesa1
DEC R0
CJNE @R0, #0DH, Pjesa2
LJMP Kontrollimi
Pjesa1:
INC R0
RETI
Pjesa2:
INC R0
INC R0
RETI
Kontrollimi:
CJNE R0, #30H, Kontrollimi2
MOV A, #0DH
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #0AH
MOV SBUF, A
JNB TI, $
CLR TI
RETI
Kontrollimi2:
DEC R0
CJNE @R0, #'T', Kontrollimi3
DEC R0
CJNE @R0, #'A', Kontrollimi3
CJNE R0, #30H, Kontrollimi3
MOV A, #3EH
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #'O'
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #'K'
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #0DH
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #OAH
MOV SBUF, A
JNB TI, $
CLR TI
RETI
Kontrollimi3:
MOV A, #3EH
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #0DH
MOV SBUF, A
JNB TI, $
CLR TI
MOV A, #0AH
MOV SBUF, A
JNB TI, $
CLR TI
MOV R0, #30H
RETI
END
10. Te shkruhet programi i cili e kryen shumezimin e 2 numrave 2-bajtesh duke perdorur
instruksionin MUL. Adresa e LSB per numrat qe shumezohen eshte e ruajtur ne R0 dhe R1.
Rezultati ruhet ne adresat 40H deri 43H.
Zgjidhje:
Supozojme se adresa e MSB per numrat gjenden ne R2 respektivisht R3
Pra numri i pare R0R2 dhe numri i dyte R1R3
MOV A, R0
MOV B, R1
MUL AB
MOV 40H, A
MOV 41H, B
MOV A, R0
MOV B, R3
MUL AB
MOV 42H, B
ADDC A, 41H
MOV 41H, A
MOV A, R2
MOV B, R1
MUL AB
ADDC A, 41H
MOV 41H, A
MOV A, B
ADDC A, 42H
MOV 42H, A
MOV A, R2
MOV B, R3
MUL AB
ADDC A, 42H
MOV 42H, A
MOV A, B
ADDC A, #00H
MOV 43H, A