Title: MENTOR:STUDENT:
1MSP430 SET INSTRUKCIJA
- MENTOR STUDENT
- PROF. DR. MILE STOJCEV SRÐAN JOVANOVIC
2UVOD
- Asembler
- Definicija
- Osobine
- Proces nastanka izvršne datoteke
3SET INSTRUKCIJA
- Instrukcije MSP430
- Velicina instrukcija (jedna, dve ili tri reci)
- Osnovne instrukcije
- Pseudo-instrukcije
4SPISAK INSTRUKCIJA
- Status Bitovi
- V N Z C
- ADC.WADC.B dst dstC-gtdst
- ADD.WADD.B src,dst srcdst-gtdst
- ADDC.WADDC.B src,dst srcdstC-gtdst
- AND.WAND.B src,dst src.and.dst-gtdst 0
- BIC.WBIC.B src,dst .not.src.and.dst-gtdst - - -
- - BIS.WBIS.B src,dst src.or.dst-gtdst - - - -
- BIT.WBIT.B src,dst src.and.dst 0
- BR dst Branch to ....... - - - -
- CALL dst PC2-gtstack, dst-gtPC - - - -
- CLR.WCLR.B dst Clear destination - - - -
- CLRC Clear carry bit - - - 0
- CLRN Clear negative bit - 0 - -
- CLRZ Clear zero bit - - 0 -
- CMP.WCMP.B src,dst dst-src
- DADC.WDADC.B dst dstC-gtdst (decimal)
- DADD.WDADD.B src,dst srcdstC-gtdst
(decimal) - DEC.WDEC.B dst dst-1-gtdst
5SPISAK INSTRUKCIJA
- JC/JHS Label Jump to Label
- if Carry-bit is set - - - -
- JEQ/JZ Label Jump to Label
- if Zero-bit is set - - - -
- JGE Label Jump to Label
- if (N .XOR. V) 0 - - - -
- JL Label Jump to Label
- if (N .XOR. V) 1 - - - -
- JMP Label Jump to Label
- unconditionally - - - -
- JN Label Jump to Label
- if Negative-bit is set - - - -
- JNC/JLO Label Jump to Label
- if Carry-bit is reset - - - -
- JNE/JNZ Label Jump to Label
- if Zero-bit is reset - - - -
- MOV.WMOV.B src,dst src-gtdst - - - -
- NOP No operation - - - -
- POP.WPOP.B dst Item from stack,
SP2-gtSP - - - -
6SPISAK INSTRUKCIJA
- SBC.WSBC.B dst Subtract carry
- from destination
- SETC Set carry bit - - - 1
- SETN Set negative bit - 1 - -
- SETZ Set zero bit - - 1 -
- SUB.WSUB.B src,dst dst.not.src1-gtdst
- SUBC.WSUBC.B src,dst dst.not.srcC-gtdst
- SWPB dst swap bytes - - - -
- SXT dst Bit7-gtBit8 ........ Bit15 0
- TST.WTST.B dst Test destination 0 1
- XOR.WXOR.B src,dst src.xor.dst-gtdst
7INSTRUKCIJE ZA KOPIRANJE PODATAKA
- MOV Premeštanje vrednosti izvorišnog operanda u
odredišni - Sintaksa MOV src, dst ili MOV.W src, dst
- Operacija src -gt dst
- Opis Vrednost izvorišnog operanda se premešta u
odredišni. Operacija ne menja vrednost izvorišnog
operanda, dok je prethodno stanje odredišnog
operanda izbrisano.
8INSTRUKCIJE ZA KOPIRANJE PODATAKA
- PUSH Premeštanje reci iz izvorišnog operanda u
stek - Sintaksa PUSH src ili PUSH.W src
- Operacija SP -2 -gt SP
- src -gt _at_SP
- Opis Pokazivac steka se dekrementira za dva,
nakon cega se vrednost izvorišnog operanda
premešta u RAM adresiran od strane pokazivaca
steka (TOS)
9INSTRUKCIJE ZA KOPIRANJE PODATAKA
- POP Premeštanje reci iz steka u odredišni
operand (izbavljivanje podataka iz magacina) - Sintaksa POP dst
- Operacija _at_SP -gt dst
- SP 2 -gt SP
- Emulacija MOV _at_SP, dst
- MOV.W _at_SP, dst
- Opis Vrednost lokacije u steku na koju ukazuje
pokazivac steka (TOS) se premešta u odredišni
operand. Nakon toga, pokazivac steka se
inkrementira dva puta
10INSTRUKCIJE ZA SABIRANJE
- ADD.W Sabira izvorišni operand sa
odredišnim - Sintaksa ADD src,dst
- ADD.W src,dst
- Operacija src dst -gt dst
- Opis Izvorišni operand se dodaje na odredišni.
Operacija ne utice na stanje izvorišnog operanda,
dok je prethodno stanje odredišnog operanda
izgubljeno
11INSTRUKCIJE ZA SABIRANJE
- ADC.W Sabiranje sa prenosom
- Sintaksa ADC dst ili ADC.W dst
- Operacija dst C -gt dst
- Emulacija ADDC 0,dst
- ADDC.B 0,dst
- Opis Vrednost bita prenosa se dodaje na
odredišni operand. Prethodna vrednost odredišnog
operanda se briše.
12INSTRUKCIJE ZA SABIRANJE
- ADDC.W Sabira izvorišni operand sa
odredišnim, sa prenosom - Sintaksa ADDC src,dst
- ADDC.W src,dst
- Operacija src dst C -gt dst
- Opis Izvorišni operand i bit prenosa se dodaju
na odredišni. Operacija ne utice na stanje
izvorišnog operanda, dok je prethodno stanje
odredišnog operanda izgubljeno.
13INSTRUKCIJE ZA SABIRANJE
- INC Inkrementiranje odredišnog operanda
- Sintaksa INC dst ili INC.W dst
- Operacija dst 1 -gt dst
- Emulacija ADD 1, dst
- Opis Odredišni operand je uvecan za
jedan.Prethodna vrednost operanda je izbrisana.
14INSTRUKCIJE ZA SABIRANJE
- INCD Dvostruko inkrementiranje
odredišnog operanda - Sintaksa INCD dst ili INCD.W dst
- Operacija dst 2 -gt dst
- Emulacija ADD 2,dst
- Opis Vrši se dvostruko inkrementiranje
odredišnog operanda. Prethodni sadržaj je
izbrisan.
15INSTRUKCIJE ZA SABIRANJE
- DADD Sabira decimalno izvorišni operand sa
odredišnim, sa prenosom - Sintaksa DADD src, dst ili DADD.W
src,dst - Operacija src dst C -gt dst (decimalno)
- Opis Izvorišni i odredišni operand se tretiraju
kao cetvorocifreni binarno kodirani pozitivni
decimalni brojevi (BCD). Izvorišni operand se
zajedno sa bitom prenosa sabira sa odredišnim
operandom. Vrednost izvorišnog operanda se ne
menja, dok je prethodno stanje odredišnog
operanda izbrisano. Rezultat nije definisan za
ne-BCD brojeve.
16INSTRUKCIJE ZA SABIRANJE
- DADC Decimalno sabiranje sa bitom prenosa
- Sintaksa DADC dst ili DADC.W src,dst
- Operacija dst C -gt dst (decimalno)
- Emulacija DADD 0,dst
- DADD.B 0,dst
- Opis Bit prenosa se decimalno dodaje na
odredišni operand
17INSTRUKCIJE ZA ODUZIMANJE
- SUB Oduzimanje izvorišnog operanda od
odredišnog - Sintaksa SUB src,dst ili SUB.W src,dst
- Operacija dst .NOT.src 1 -gt dst
- (dst - src -gt dst)
- Opis Vrši se oduzimanje izvorišnog operanda od
odredišnog. Vrednost izvorišnog operanda ostaje
nepromenjena, dok je prethodni sadržaj odredišnog
operanda izgubljen.
18INSTRUKCIJE ZA ODUZIMANJE
- SBC Oduzimanje sa bitom prenosa
- Sintaksa SBC dst ili SBC.W dst
- Operacija dst 0FFFFh C -gt dst
- dst 0FFh C -gt dst
- Emulacija SUBC 0,dst
- Opis Vrši se oduzimanje sa bitom prenosa.
19INSTRUKCIJE ZA ODUZIMANJE
- SUBC, Oduzimanje sa bitom pozajmice
- SBB
- Sintaksa SUBC src,dst ili SUBC.W src,dst
- SBB src,dst ili SBB.W src,dst
- Operacija dst .NOT.src C -gt dst
- ili
- (dst - src - 1 C -gt dst)
- Opis Vrši se oduzimanje izvorišnog operanda od
odredišnog. Vrednost izvorišnog operanda ostaje
nepromenjena, dok je prethodni sadržaj odredišnog
operanda izgubljen.
20INSTRUKCIJE ZA ODUZIMANJE
- DEC.W Dekrementiranje odredišnog operanda
- Sintaksa DEC dst ili DEC.W dst
- DEC.B dst
- Operacija dst 1 -gt dst
- Emulacija SUB 1, dst
- Emulacija SUB.B 1, dst
- Opis Umanjuje vrednost odredišnog bita za jedan.
Prethodno stanje odredišnog operanda je
izgubljeno.
21INSTRUKCIJE ZA ODUZIMANJE
- DECD Dvostruko dekrementiranje
odredišnog operanda - Sintaksa DECD dst ili DECD.W dst
- Operacija dst - 2 -gt dst
- Emulacija SUB 2,dst
- Opis Umanjuje vrednost odredišnog bita za dva.
Prethodno stanje odredišnog operanda je
izgubljeno.
22INSTRUKCIJE ZA POREÐENJE
- CMP Poredi izvorišni i odredišni operand
- Sintaksa CMP src, dst ili CMP.W src, dst
- Operacija dst .NOT.src 1
- Opis Poredi izvorišni i odredišni operand.
23LOGICKE INSTRUKCIJE
- AND Vrši operaciju AND nad izvorišnim i
odredišnim operandima - Sintaksa AND src, dst ili AND.W src,
dst - Operacija src .AND. dst -gt dst
- Opis Vrši se operacija konjukcije nad izvorišnim
i odredišnim operandima. Rezultat se smešta u
odredišni operand.
24LOGICKE INSTRUKCIJE
- XOR Eksluzivna ILI operacija nad izvorišnim
i odredišnim operandom - Sintaksa XOR src,dst ili XOR.W src,dst
- Operacija src .XOR. dst -gt dst
- Opis Vrši se eksluzivna ILI operacija nad
izvorišnim i odredišnim operandom. Rezultat se
smešta u destinacioni operand, ciji je prethodni
sadržaj izgubljen. Operacija nema uticaja na
izvorišni operand
25LOGICKE INSTRUKCIJE
- TST Testiranje odredišnog operanda
- Sintaksa TST dst ili TST.W dst
- Operacija dst 0FFFFh 1
- dst 0FFh 1
- Emulacija CMP 0,dst
- Opis Odredišni operand se poredi sa nulom.
Statusni bitovi se postavljaju na osnovu
rezultata operacije. Vrednost odredišnog bita se
ne menja nakon izvršene operacije.
26LOGICKE INSTRUKCIJE
- BIT Testira bitove u odredišnom operandu
- Sintaksa BIT src, dst ili BIT.W
src, dst - Operacija src .AND. dst
- Opis Vrši se operacija konjukcije nad izvorišnim
i odredišnim operandima. Rezultat utice jedino na
status bitove, dok je bez uticaja na izvorišni i
odredišni operand.
27INSTRUKCIJE ZA POMERANJE I ROTIRANJE
- RLA Aritmeticko rotiranje ulevo
- Sintaksa RLA dst ili RLA.W dst
- Operacija C lt- MSB lt- MSB-1 ....LSB1 lt- LSB lt-
0 - Emulacija ADD dst, dst
- Opis Odredišni operand se pomera (šiftuje)za
jednu poziciju ulevo. MSB se pomera u bit prenosa
(C), a LSB postaje nula. Instrukcija RLA se
ponaša kao množenje sa predznakom brojem dva. - Do prekoracenja dolazi ukoliko je dstgt04000h i
dstlt0C000h pre izvodenje operacije, odnosno
dolazi do promene predznaka rezultata.
28INSTRUKCIJE ZA POMERANJE I ROTIRANJE
- RLC.W Rotiranje ulevo sa prenosom
- Sintaksa RLC dst ili RLC.W dst
- Operacija C lt- MSB lt- MSB-1 .... LSB1 lt-
LSB lt- C - Emulacija ADDC dst, dst
- Opis Odredišni operand je pomeren (shifted)
jednu poziciju ulevo. Bit prenosa (C) se upisuje
u LSB, dok se MSB upisuje u bit prenosa (C).
29INSTRUKCIJE ZA POMERANJE I ROTIRANJE
- RRA.W Aritmeticko rotiranje udesno
- Sintaksa RRA dst ili RRA.W dst
- Operacija MSB -gt MSB, MSB -gt MSB-1, ...LSB1
-gt LSB, LSB -gt C - Opis Odredišni operand se rotira jednu poziciju
udesno. MSB se rotira u MSB, onda se MSB rotira u
MSB-1, a LSB1 se rotira u LSB.
30INSTRUKCIJE ZA POMERANJE I ROTIRANJE
- RRC Rotiranje udesno sa prenosom
- Sintaksa RRC dst ili RRC.W dst
- Operacija C -gt MSB -gt MSB-1 .... LSB1 -gt LSB
-gt C - Opis Odredišni operand je pomeren (shifted)
jednu poziciju udesno. Bit prenosa (C) se upisuje
u MSB, dok se LSB upisuje u bit prenosa (C).
31INSTRUKCIJE ZA BEZUSLOVNO GRANANJE
- JMP Bezuslovni skok
-
- Sintaksa JMP labela
- Operacija PC 2pomeraj -gt PC
- Opis 10-bitni pomeraj sa predznakom koji je
sadržan u LSB-ovima instrukcije se dodaje na
programski brojac
32INSTRUKCIJE ZA BEZUSLOVNO GRANANJE
- BR, BRANCH Grananje ka destinaciji
-
- Sintaksa BR dst
- Operacija dst -gt PC
- Emulacija MOV dst, PC
- Opis Izvodi se bezuslovno grananje bilo gde u
64 K adresnog prostora. Mogu se koristiti svi
tipovi adresiranja. Instrukcija grananja je
velicine reci (word).
33INSTRUKCIJE ZA USLOVNO GRANANJE
- JC Skok ako je bit prenosa setovan
- JHS Skok ako je veci ili jednak
- Sintaksa JC labela
- JHS labela
- Operacija Ako je C 1 PC 2pomeraj -gt PC
- Ako je C 0 izvrši sledecu instrukciju
- Opis Testira se stanje bita prenosa u statusnom
registru. Ako je bit prenosa setovan, 10-bitni
pomeraj sa predznakom koji je sadržan u LSB-ovima
instrukcije se dodaje na programski brojac.
Ukoliko bit prenosa nije setovan, izvršava se
sledeca instrukcija koja sledi. JC se koristi i
za poredenje neoznacenih brojeva (0 do 65536).
34INSTRUKCIJE ZA USLOVNO GRANANJE
- JEQ , JZ Skok ako je jednako, Skok ako je nula
-
- Sintaksa JEQ labela, JZ labela
- Operacija Ako je Z1 PC 2pomeraj -gt PC
- Ako je Z0 izvrši sledecu instrukciju
- Opis Testira se stanje bita nule (Z) u statusnom
registru. Ako je bit nule setovan, 10-bitni
pomeraj sa predznakom koji je sadržan u LSB-ovima
instrukcije se dodaje na programski brojac.
Ukoliko bit nule nije setovan, izvršava se
sledeca instrukcija koja sledi.
35INSTRUKCIJE ZA USLOVNO GRANANJE
- JGE Skok ako je vece ili jednako
-
- Sintaksa JGE labela
- Operacija Ako je (N .XOR. V) 0 skok na
labelu PC 2pomeraj -gt PC - Ako je (N .XOR. V) 1 izvrši sledecu
instrukciju - Opis Testira se stanje bita negativne vrednosti
(N) i bita prekoracenja (V) u statusnom registru.
Ako su oba bita setovana ili resetovana, 10-bitni
pomeraj sa predznakom koji je sadržan u LSB-ovima
instrukcije se dodaje na programski brojac.
Ukoliko je samo jedan bit setovan, izvršava se
sledeca instrukcija koja sledi. Ova instrukcija
omogucava poredenje oznacenih celih brojeva.
36INSTRUKCIJE ZA USLOVNO GRANANJE
- JL Skok ako je manje
-
- Sintaksa JL labela
- Operacija Ako je (N .XOR. V) 1 skok na
labelu PC 2pomeraj -gt PC - Ako je (N .XOR. V) 0 izvrši sledecu
instrukciju - Opis Testira se stanje bita negativne vrednosti
(N) i bita prekoracenja (V) u statusnom registru.
Ukoliko je samo jedan bit setovan, 10-bitni
pomeraj sa predznakom koji je sadržan u LSB-ovima
instrukcije se dodaje na programski brojac. Ako
su oba bita setovana ili resetovana, izvršava se
sledeca instrukcija koja sledi. Ova instrukcija
omogucava poredenje oznacenih celih brojeva.
37INSTRUKCIJE ZA USLOVNO GRANANJE
- JN Skok ukoliko je negativan
-
- Sintaksa JN labela
- Operacija Ako je N1 PC 2pomeraj -gt PC
- Ako je N0 izvrši sledecu instrukciju
- Opis Testira se stanje bita negativne vrednosti
(N) u statusnom registru. Ako je bit negativne
vrednosti setovan, 10-bitni pomeraj sa predznakom
koji je sadržan u LSB-ovima instrukcije se dodaje
na programski brojac. Ukoliko bit nije setovan,
izvršava se sledeca instrukcija koja sledi.
38INSTRUKCIJE ZA USLOVNO GRANANJE
- JNC Skok ako je bit prenosa resetovan
- JLO Skok ako je manje
- Sintaksa JNC labela
- JLO labela
- Operacija Ako je C 0 PC 2pomeraj -gt PC
- Ako je C 1 izvrši sledecu instrukciju
- Opis Testira se stanje bita prenosa u statusnom
registru. Ako je bit prenosa resetovan, 10-bitni
pomeraj sa predznakom koji je sadržan u LSB-ovima
instrukcije se dodaje na programski brojac.
Ukoliko je bit prenosa setovan, izvršava se
sledeca instrukcija koja sledi. JNC se koristi i
za poredenje neoznacenih brojeva (0 do 65536).
39INSTRUKCIJE ZA USLOVNO GRANANJE
- JNE, JNZ Skok ako nije jednako, Skok ako nije
nula -
- Sintaksa JNE labela, JNZ labela
- Operacija Ako je Z0 PC 2pomeraj -gt PC
- Ako je Z1 izvrši sledecu instrukciju
- Opis Testira se stanje bita nule (Z) u statusnom
registru. Ako je bit nule resetovan, 10-bitni
pomeraj sa predznakom koji je sadržan u LSB-ovima
instrukcije se dodaje na programski brojac.
Ukoliko je bit nule setovan, izvršava se sledeca
instrukcija koja sledi.
40INSTRUKCIJE POZIVA
- CALL Potprogram
-
- Sintaksa CALL dst
- Operacija dst -gt tmp dst se smešta u tmp
- SP - 2-gt SP
- PC -gt _at_SP
- tmp -gt PC dst se smešta u PC
- Opis Poziva se potprogram koji smešten na bilo
kojoj adresi unutar 64 K adresnog prostora. Mogu
se koristiti svi tipovi adresiranja. Povratna
adresa (adresa instrukcije koja sledi nakon
poziva potprograma) je smeštena u steku.
Instrukcija CALL je velicine reci.
41INSTRUKCIJE POVRATKA
- RET Povratak iz potprograma
-
- Sintaksa RET
- Operacija _at_SP -gt PC
- SP 2 -gt SP
- Emulacija MOV _at_SP, PC
- Opis Povratna adresa prebacena u stek pomocu
CALL instrukcije se upisuje u programski brojac.
Program nastavlja sa izvršavanjem na adresi
instrukcije koja sledi nakon instrukcije poziva
potprograma.
42INSTRUKCIJE POVRATKA
- RETI Povratak sa obrade prekida
-
- Sintaksa RETI
- Operacija TOS -gt SR
- SP 2 -gt SP
- TOS -gt PC
- SP 2 -gt SP
- Opis 1. U statusni registar se upisuje vrednost
koja se nalazi na pocetku potprograma za obradu
prekida. Ovo se postiže time što se trenutna
vrednost SR-a zameni vrednošcu TOS-a. Pokazivac
steka se inkrementira za dva. - 2. U programski brojac se upisuje vrednost
koja se nalazi na pocetku potprograma za obradu
prekida. Ovo je korak koji sledi nakon prekida u
toku izvršavanja programa. Ovo se postiže time
što se trenutna vrednost PC-a zameni vrednošcu
TOS-a. Pokazivac steka se inkrementira za dva.
43INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
- SETC Postavljanje bita prenosa
- Sintaksa SETC
- Operacija 1 -gt C
- Emulacija BIS 1,SR
- Opis Bit prenosa C je postavljen. Operacija koja
je cesto neizbežna.
44INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
- SETN Postavi negativan bit
- Sintaksa SETN
- Operacija 1 -gt N
- Emulacija BIS 4,SR
- Opis Negativan bit je postavljen
45INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
- SETZ Postavi bit nule
- Sintaksa SETZ
- Operacija 1 -gt Z
- Emulacija BIS 2,SR
- Opis Bit nule Z je postavljen.
46INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
- CLRC Briše bit prenosa (C)
- Sintaksa CLRC
- Operacija 0 -gt C
- Emulacija BIC 1, SR
- Opis Briše se bit prenosa (C). Instrukcija CLRC
je instrukcija velicine reci.
47INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
- CLRN Briše bit negativnog predznaka (N)
-
- Sintaksa CLRN
- Operacija 0 -gt N
- ili
- (.NOT.src .AND. dst -gt dst)
- Emulacija BIC 4,SR
- Opis Vrši se konjukcija invertovane konstante
04h (0FFFBh) i odredišnog operanda. Rezultat se
smešta u odredišni operand. Ova instrukcija je
velicine reci.
48INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
- CLRZ Briše bit nule (Z) u statusnom registru
-
- Sintaksa CLRZ
- Operacija 0 -gt Z
- ili
- (.NOT.src .AND. dst -gt dst)
- Emulacija BIC 2, SR
- Opis Vrši se konjukcija invertovane konstante
02h (0FFFDh) i odredišnog operanda. Rezultat se
smešta u odredišni operand. Ova instrukcija je
velicine reci.
49OPERACIJE NAD BITOVIMA
- BIC Resetuje bitove u odredišnom operandu
- Sintaksa BIC src,dst ili BIC.W
src,dst - Operacija .NOT.src .AND. dst -gt dst
- Opis Vrši konjukciju invertovanog izvorišnog
operanda i odredišnog operanda. Rezultat se
smešta u odredišni operand, dok vrednost
izvorišnog operanda ostaje nepromenjena.
50OPERACIJE NAD BITOVIMA
- BIS Setuje bitove u odredišnom operandu
- Sintaksa BIS src,dst ili BIS.W
src,dst - Operacija src .OR. dst -gt dst
- Opis Vrši se disjunkcija izmedu izvorišnog i
odredišnog operanda. Rezultat se smešta u
odredišni operand, dok vrednost izvorišnog
operanda ostaje nepromenjena.
51OPERACIJE NAD BITOVIMA
- SWPB Zamena bajtova
- Sintaksa SWPB dst
- Operacija bitovi 15 do 8 lt-gt bitovi 7 do 0
- Opis Vrši se zamena mesta višeg i nižeg bajta
odredišnog operanda.
52OPERACIJE ZA RAD SA PREKIDIMA
- DINT Onemogucava (opšte) prekide
-
- Sintaksa DINT
- Operacija 0 -gt GIE
- ili
- (0FFF7h .AND. SR -gt / .NOT.src.AND.dst
-gt dst) - Emulacija BIC 8, SR
- Opis Blokirani su svi prekidi. Vrši se operacija
konjukcije nad invertovanom konstantom 08h i
status registrom. Rezultat se smešta u statusni
registar.
53OPERACIJE ZA RAD SA PREKIDIMA
- EINT Dozvola (opšta) prekida
-
- Sintaksa EINT
- Operacija 1 -gt GIE
- ili
- (0008h .OR. SR -gt SR / .NOT. src .OR.
dst -gt dst) - Emulacija BIS 8,SR
- Opis Dozvola za sve prekide. Vrši se disjunkcija
nad konstantom 08h i statusnim registrom SR.
Rezultat se smešta u registar SR.
54OSTALE INSTRUKCIJE
- NOP Nema operacije
-
- Sintaksa NOP
- Operacija Nema
- Emulacija MOV 0, 0
- Opis Ne izvode se nikakve operacije. Ova
instrukcija se može koristiti za vreme testiranja
softvera ili za definisanje potrebnih pauza.
55OSTALE INSTRUKCIJE
- CLR Briše odredišni operand
- Sintaksa CLR dst ili CLR.W dst
- Emulacija MOV 0, dst
- Operacija 0 -gt dst
- Opis Instrukcija briše odredišni operand.
56OSTALE INSTRUKCIJE
- INV Invertuje odredišni operand
- Sintaksa INV dst
- Operacija .NOT.dst -gt dst
- Emulacija XOR 0FFFFh, dst
- Opis Odredišni operand je invertovan. Prethodna
vrednost je izbrisana.
57OSTALE INSTRUKCIJE
- SXT Promena znaka
- Sintaksa SXT dst
- Operacija Bit 7 -gt Bit 8 ......... Bit 15
- Opis Znak iz nižeg bajta je produžen u viši
bajt.
58LABORATORIJSKA VEŽBA
- SNIMANJE I REPRODUKCIJA AUDIO SIGNALA
59LABORATORIJSKA VEŽBA
- Dizajn ploce MSP430 je takav da omogucava pun
tok obrade analognog signala korišcenjem
MSP430FG4618. Ploca može da se koristi za brojne
audio aplikacije. Moguce je snimati i
reprodukovati audio signale bez korišcenja
dodatnih spoljnih komponenata. - Mikrofon je povezan sa MSP430FG4618 i dozvola za
rad mikrofona se dobija prekoodgovarajuceg porta
MSP430FG4618.
60LABORATORIJSKA VEŽBA
Tok obrade analognog signala
61LABORATORIJSKA VEŽBA
- Analogni filtri Prvi po redu aktivni filtar
propusnik visokih ucestanosti (HPF) sa granicnom
frekvencijom postavljenom približno na 340Hz
nalazi se iza mikrofona da bi eliminisao ulazne
signale niskih frekvencija. Opcionalan, drugi po
redu, Sallen-Key aktivni filtar propusnik niskih
ucestanosti (LPF) sa granicnom frekvencijom
postavljenom približno na 4 kHz, eliminiše šum
visokih frekvencija na analognom izlazu 12-bitnog
digitalno-analognog konvertora (DAC). Šema filtra
prikazana je na slici 5. Ovi filtri koriste
integrisane operacione pojacavace mikrokontrolera
MSP430. Operacioni pojacavaci OA0 i OA1 obavljaju
proces filtriranja.
62LABORATORIJSKA VEŽBA
Šema aktivnog analognog filtra
63LABORATORIJSKA VEŽBA
- Analogni izlaz je izveden sa ploce preko mono
uticnice od 3.5mm koja je povezana na integrisani
operacioni pojacavac OA2. Ulaz u ovaj pojacavac
može interno da se poveže na DAC12 izlaz
MSP430FG4618. Nekoliko opcija slabljenjna je
omoguceno interno i hardverski pomocu
odgovarajuceg kratkospajaca.
64LABORATORIJSKA VEŽBA
- Direktni pristup memoriji DMA
- Predstavlja takav pristup gde U/I interfejs i
glavna memorija direktno razmenjuju podatke, bez
posredstva CPU-a. Ovim se premošcava usko grlo
CPU-periferija i obezbeduje prenos podataka
izmedu periferija i RAM-a mikroracunara bez
aktivne intervencije CPU-a. Osnovne
karakteristike ove tehnike su - l. prenos se ostvaruje bez programskog
upravljanja, - 2. brzina prenosa je velika i odre ena je
memorijskim ciklusom (lt 0,5µs) a reda je 2 M
- bajta/s i više,
- 3. prenos se realizuje kao blokovski.
65LABORATORIJSKA VEŽBA
Tokovi podataka kod DMA U/I prenosa
66LABORATORIJSKA VEŽBA
- Zadatak
- Snimanje i reprodukcija audio signala.
Upoznavanje sa DMA (Direct Memory Acess) i
kompletnim tokom obrade analognog signala na
mikrokontroleru MSP430 FG4618. - Potrebna oprema
- Za izvodenje ove laboratorijske vežbe potrebno
nam je - razvojna ploca MSP430FG4618/F2013
- racunar
- Flash Emulation Tool(MSP-FET430UIF) kojim cemo
razvojnu plocu povezati na racunar i izvršiti
programiranje kontrolera MSP430FG4618 - slušalice koje cemo prikljuciti na mono uticnicu
od 3.5mm
67LABORATORIJSKA VEŽBA
- Postupak rada
- Da bismo kreirali novi projekat, napisali
program, ucitali ga i izvršili na MSP430
uredajima, potrebno je da ispratimo sledecu
proceduru - Pokrenimo IAR Embedded Workbench. Kliknimo na
Start dugme na taskbar-u i izaberimo All Programs
gt IAR Systems gt IAR Embedded Workbench for MSP430
V4 gt IAR Embedded Workbench.
68LABORATORIJSKA VEŽBA
Osnovni prozor IAR Embedded Workbench IDE-a
69LABORATORIJSKA VEŽBA
- Kreirajmo novi tekstualni fajl (File gt New gt
File).
70LABORATORIJSKA VEŽBA
- Unesimo tekst programa iz Listinga 1, koji se
nalazi u štampanoj pripremi za izvodenje
laboratorijske vežbe, u novo kreirani fajl. - Sacuvajmo tekstualni fajl programa (File gt Save)
kao main.c
71LABORATORIJSKA VEŽBA
Izgled prozora nakon unešenog i sacuvanog koda
72LABORATORIJSKA VEŽBA
- Kreirajmo novi radni prostor (File gt New gt
Workspace) - Kreirajmo novi projekat (Project gt Create New
Project). Pojavice se Create New Project dijalog
prozor.
73LABORATORIJSKA VEŽBA
- Proverimo da li je Tool chain postavljen na
MSP430, izaberimo Empty project iz ponudenih
projektnih šablona (Project Templates) i kliknimo
OK. U standardnom Save As dijalog prozoru,
naznacimo direktorijum gde želimo da smestimo
projektni fajl, ili kreirajmo novi projektni
direktorijum. Ukucajmo naziv projekta, Voice
Recorder u polje za upis imena fajla i kliknimo
Save da bismo kreirali novi projekat. Projekat ce
se pojaviti u radnom prozoru. - Dodajmo prethodno kreirani tekstualni fajl
programa projektu (Project gt Add Files). - Selektujmo željeni tekstualni fajl i kliknimo
Open. Alternativno, kliknimo duplim klikom na
fajl da ga dodamo projektu. - Sacuvajmo radni prostor (File gt Save Workspace).
Naznacimo ime radnog prostora i kliknimo Save.
74LABORATORIJSKA VEŽBA
- Podesimo opcije projekta (Project gt Options). Za
svaku potkategoriju (General Options, C/C
Compiler, Assembler, Linker, Debugger) prihvatimo
polazne opcije Factory Settings sa sledecim
izuzecima - naznacimo ciljni uredaj (General Options gt Target
gt Device) - omogucimo asemblerski projekat ili C/asemblerski
projekat (General Options gt Target gt
Assembler-only project). - omogucimo generisanje izvršnog izlaznog fajla
(General Options gt Output gt Output file gt
Executable). - za FET debagiranje, kliknimo Debugger gt Setup gt
Driver gt FET Debugger. - naznacimo aktivni port koji se koristi za vezu sa
FET-om (FET Debugger gt Setup gt Connection). - Debagirajmo aplikaciju korišcenjem C-SPY-a
(Project gt Debug). Ovim startujemo - C-SPY i on preuzima kontrolu nad uredajem, briše
memoriju, zatim je programira aplikacijom i
resetuje uredaj.
75LABORATORIJSKA VEŽBA
Osnovni prozor C-SPY Debugger-a
76LABORATORIJSKA VEŽBA
- Kliknimo Debug gt Go da startujemo aplikaciju.
- Kliknimo Debug gt Stop Debugging da stopiramo
aplikaciju, izademo iz C-SPY-a i vratimo se u
Workbench. - Kliknimo File gt Exit da izademo iz Workbench-a.
77BIOGRAFIJA AUTORA
Prezime Jovanovic
Ime Srdan
Datum rodenja 07.12.1978
Adresa stanovanja Laze Lazarevica 1, 37000 Kruševac
E-mail srdja.jovanovic_at_yahoo.com
Poznavanje jezika Engleski C/C/C