TP LNH MSP430X. TP LNH MSP430
X.1. Nhm lnh d liu
X.1.1. Lnh di chuyn MOVCu trc: MOV Ngun , ch ; ch = ngunV d: MOV
#21h, R10 ; a gi tr 2byte (21h) vo thanh ghi R10.MOV.W R3,R4 ; a gi
tr 2byte ca thanh ghi R3 vo thanh ghi R4.MOV.B 21h, 33h; a gi tr mt
byte ti a ch 21h vo a ch 33h.
X.1.2.Lnh POP(.B)Cu trc: POP ch; ly d liu t con tr ngn xp n chV
d: POP R5; tr v gi tr ban u ca R5POP SR; tr v trng thi ban u ca
thanh ghiPOP.B R5; a gi tr ca ngn xp vo byte thp ca R5, byte cao
=0
X.1.3. Lnh PUSH(.B)Cu trc: PUSH Ngun; ct gi tr ngun vo ngn xpV
d: PUSH R8; ct gi tr thanh ghi vo ngn xpPUSH SR; lu trng thi thanh
ghiX.1.4. Lnh NOPCu trc: NOP ; khng thi hnh g c v i dn lnh tip
theo.
X.2. Cc lnh s hc
X.2.1. Lnh ADDCu trc : ADD ngun , ch ; ch = ch +ngunV d 1: ADD
R0,R1 ; cng gi tr thanh ghi R0 vi R1 ng thi gi tr c lu gi trtrong
R1.V d 2: ADD.B 24h,30h ; cng gi tr mt byte a ch 24h vi gi tr nh
30h.V d 3: ADD.W 30h,31h ; cng gi tr 2 byte nh 30h vi nh 31h.
X.2.2. Lnh ADDCCu trc: ADDC ngun ,ch ; ch = ngun +ch + cV d: cng
gi tr 2byte ca thanh ghi R0 vi nh 40h v kt qu c lu trong thanhghi
R0.ADDC 40h,R0 ( ADDC.W 40h,R0
X.2.3. Lnh SUBCu trc : SUB ngun, ch ; ch = ch ngun+1.V d: SUB.B
R0,R1; ( R1= R1-R0 +1SUB.W R0,R1 ( SUB R0,R1 ; tr gi tr 2 byte gia
2 thanh ghi.V d 2: a gi tr 50h vo thanh ghi R10, v gi tr 40h vo
thanh ghi R11, ng thithc hin php tr R10 vi R11. Sau cho thanh ghi
R10 gim dn v n 0 th ngngth
hin.Gii-----------------------------------------------------------MOV
#50H,R10 ; a gi tr 50h vo thanh ghi R10MOV #40H,R11 ; a gi tr 40h
vo thanh ghi R11SUB R11,R10 ; R10= R10 R11 +1Lap1: DEC R10; gim R10
i 1hJNZ Lap1 ; ch n khi no R10 bng 0 th thi.
X.2.4. Lnh SUBCCu trc : SUBC ngun,ch ; ch = ch + ngun +C
X.2.5. Lnh DADD ( cng 2 gi tr s thp phn )Cu trc : DADD Ngun, ch
; ch = ch + ngun + C.V d: cng gi tr 40 vo thanh ghi R10 khi bit gi
tr thanh ghi R10 l 10h v cho bitkt qu sau khi tn ton.GIIDADD #40,
R10; tr gi tr 40 cho R10Sau khi thc hin lnh th R10 c gi tr l
56.
X.2.6. Lnh DADC.B ( add C to decimally destination )Cu trc: DADC
ch; ch = ch + C
X.2.7. Lnh CMP( .B) ( tr dng so snh )Cu trc: CMP Ngun,ch; ch
ngun.V d: Hy so snh gi tr ca 2 thanh ghi R10 v R11. Nu thanh ghi
R10 ln hn Thanhghi R11 th nhy n Lonhon, ngc li th nhy n
Nhohon.GIILap1:CMP R11,R10 ; tr R11 cho R10.JC
NhohonLonhon:-----------------JMP
Lap1Nhohon:---------------------JMP lap1End.
X.2.8. Lnh INC(.B) ( increment destination )Cu trc: INC ch; ch =
ch + 1V d: INC R15 ; R15= R15+1INC.B R15 ; R15= R15 +1Lc u gi s R15
c gi tr l 30h th sau khi thc hin lch trn th R15 c gi tr l31h
X.2.9. Lnh INCD(.B) (double_increment destination)Cu trc: INCD
ch ; ch = ch +2V d: MOV &P1IN, R15; ly gi tr nhp vo t port 1 lu
vo R15INCD.B R15 ; tng gi tr thanh ghi ln 2 n v.
X.2.10. Lnh DEC(.B) (Decrement destination )Cu trc: DEC ch ; ch
= ch 1V d: Vit on chng trnh cho Led chp tt 10 ln ri
dng.-------------------------------------------------------------------------Main:BIS.B
#01h,& P1DIRMOV #10, R15; s ln chp tt ca ledLap:XOR
#01h,&P1OUT; cho led thay i trng thi sao mi vng lpCall
DelayDEC.B R15; gim R15 i mt n vJZ LapJMP
$Delay:------------------------------------RETEND
X.2.11. Lnh DECD(.B) (Double_ Decrement destination)Cu trc: DECD
ch; ch = ch -2V d: DECD.B R15; gim R15 di 2 n vGi s lc u R15 c g tr
l 32h th sau khi thc hin lnh R15 c gi tr l 30h.
X.2.12. Lnh SBC(.B)Cu trc: SBC ch; ch = ch + 0ffffh + CV d: Gi s
lc u thanh ghi R15 c gi tr l 40h, C = 0 th sau khi thc hin lnh
sauth R15 c kt qu l 3Fh.SBC R15; R15= R15+ 0FFFFh+C
X.3. Cc lnh logic
X.3.1. Lnh AND( .B)(2chu k my).Cu trc: AND ngun, ch ; ch = ch
and ngun.V d: Hy kim tra thanh ghi R10 c phi l s chn khng.Nu l s
chn th xut gitr ra Port 1 cn nu l s l th kt thc chng
trnh.GII:#include "msp430.h" ; gi th vin msp430.NAME main ; module
tn.PUBLIC main ; t tn nhn chung trnh chnh.ORG 0FFFEhDC16 init ; t a
ch vect ban u cho ngn xp.RSEG CSTACK ; t on ngn xp.RSEG CODE ; on
chng trnhinit: MOV #SFE(CSTACK), SP ; a ngn xp vo con tr.main: NOP
; chng trnh chnh.MOV.W #WDTPW+WDTHOLD,&WDTCTL ; dng whatchdog
time.AND #01,R10 ; kim tra xem R10 c phi l chn hay l.JNZ Xuat; nu s
chn th xut gi tr R10 ra port 1 .JMP ThoatXuat:MOV.B R10,P1OUT ; xut
gi tr s chn ra .Thoat:JMP $ ; nhy ti chEND
X.3.2. Lnh BIS(.B) (2 chu k my)Cu trc:BIS Ngun, ch ; ch = ch or
ngun.V d: Kim tra gi tr thanh ghi R10 sau oan chng trnh sau;MOV
#20H, R11; a gi tr 20h vo thanh ghi R11AND #01, R11; And thanh ghi
R11 vi 1MOV #30H,R10; a gi tr 30h vo thanh ghi R10BIS R11,R10; thc
hin OR thanh ghi R10 vi R11.JMP $; lp ti ch.Da vo on code trn th gi
tr ca R10 sau khi kt thc chng trnh l 31h.
X.3.3. Lnh XOR( .B ) (2 chu k my)Cu trc: XOR Ngun, ch ; ch = ch
XOR ngun.V d: Thanh ghi R10 c gi tr 20h, tm gi tr thanh ghi sau cu
lnh sau:XOR #22h,R10 ; R10=22h XOR R10 = 2h
X.3.4. Lnh BIT(.B) (2 chu k my)Cu trc : BIT Ngun, ch ; ch AND
ngun.V d: So snh 2 gi tr xem ging hai khc nhauBIT.B # 01h,&P1IN
; 0ffh and P1INJC nhay; nhy nu C Cary =1
X.3.5. Lnh BIC(.B) (2 chu k my )Cu trc : BIC Ngun ,ch ; ich =
Not ngun AND ch.V d: o gi tr thanh ghi R10 v ng thi xut d liu ra
Port 1.BIC.B R10,&P1OUT;
X.3.6. Lnh dch phi RRA(.B) (mt chu k)Cu trc: RRA ch ;MSB( MSB(
LSB (CV d: Vit chng trnh thc hin cho led chy t phi sang tri 8
bit.Gii#include
"msp430.h";-------------------------------------------------------------------------------ORG
0FC00h ; bat dau chuong
trinh;-------------------------------------------------------------------------------RESET:
mov.w #0280h,SP ; khoi tao dia chi con troStopWDT: mov.w
#WDTPW+WDTHOLD,&WDTCTL ; dung whatdog timeMainloop:bis.b
#0ffh,&P1DIRMov.b #80h,R11; cho mot led sangMov.b #8,R10; dich
7 bitLap: mov.b R11,&P1OUTRRA.b R11; dich sang phai khong su
dung co cary.Wait: mov.w #050000,R15 ; delayl1: mov #2,R14L2: dec.w
R14 ; giam R15 de tao delayjnz L2dec R15 ;jnz l1dec.w R10jnz Lapjmp
Mainloop ;lap lai chuong
trinh;;-------------------------------------------------------------------------------;
Interrupt Vectors;--------------------------------------------ORG
0FFFEh ; MSP430 RESET VectorDW RESETEND
X.3.7. Dch phi c dng c Cary RRC(.B) (mt chu k)Cu trc: RRC ch; C(
MSB (....LSB (CV d: Thc hin php tnh cng hai thanh ghi v kim tra xem
c trn khng, nu c trnth thc hin ghi dch 8 bit lin tc, nu khng th
thot khi chng
trnh.GII--------------------------------------------------------------------------------Main:BIS.B
#0FFH,&P1DIR ; khi to cho php xut 8 bit d liu ra port 1ADD.B
R10,R11 ; cng 2 thanh ghiJC Dich ; nhy n chng trnh con thc hin dch
cJMP ThoatDich:CLR.B R11 ; xa thanh ghi R11MOV #8,R13 ; dch 8
bitLap:MOV.B R11,&P1OUT; xut d liu ra port 1RRC.B R11 ; ly c
Cary d dch vo thanh ghi R11CALL DELAY ; gi chng trnh con to thi
gian trDEC.B R13 ; gim dn thanh ghiJNZ Lap ; nhy nu khac 0JMP Dich
; quay lai chng trnh v iu kinDELAY:-------------------------RETI ;
tr li chng trnh chnhThoat:END ; kt thc chng trnh
X.3.8. Lnh dch tri RLA(.B) ( mt chu k )Cu trc: RLA ch ;
LSB(MSB(CV d : Ging nh v d lnh dch phi nhng thay lnh RRA thnh lnh
RLA.
X.3.9. Lnh dch tri c s dng c Carry RLC( .B) ( Mt chu k)Cu trc:
RLC ch; C ( LSB ( MSB(C ;V d: Cng ging nh v d lnh dch phi c dng c
Carry.
X.3.10. Lnh i byte SWPB (mt chu k)Cu trc: SWPB ch ; bit 15 n bt
8 i v tr vi bt 7 ti bit 0C th c minh ha nh hnh sau:V d: o thanh ghi
R15 vi gi tr 0FF00h.MOV #0FF00H,R15 ; a gi tr 0ff00h vo thanh ghi
R15SWPB R15 ; o byte thp vi byte cao.+ Ta thy lc u thanh ghi R15 c
gi tr nh phn l 1111111100000000. Sau khi thchin lnh SWPB th thanh
ghi R15 li c gi tr l 11111111.* Ch : Lnh ny ch s dng c vi vi thanh
ghi v nh 2 byte.
X.3.11. Lnh m rng v sao chp bit 7 SXT ( Exten sign)Cu trc: SXT
ch; chp Trng thi ca bit 7 ra thnh gi tr ca bit 8 ti bit 15.Chng ta
c th m t lnh ny nh hnh sau:V d: Ly d liu t Port 1 oc tc ng t bnh
ngoi ng thi lu d liu vo R10v coppy trng thi bit 7 ra byte cao ca
R10.MOV &P1IN, R10; P1IN =080H (10000000b = R10SXT R10 ; R10 =
1111111110000000b
X.3.12. Lnh kim tra thanh ghi TST(.B)Cu trc: TST ch ; Kim tra
xem thanh ghi bng hay khc 0.V d: Kim tra xem gi tr ly vo t Port 1 c
bng gi tr 80h khng nu bng th xutd liu ra port cn khc thi khng
xut.Gii:------------------------------------------------------------------------------Main:MOV.B
&P1IN, R15; ly gi tr nhp vo t port 1SUB.B #80H,R15; tr gi tr
80h cho R15TST.B R15 ; kim tra thanh ghi R15JN KHAC ; nhy nu R15
khc 0JZ GIONG; nhy nu bng khngGIONG:BIS.B #0FFH,&P1DIR; cho php
port 1 lm ng raMOV #80H,P1OUT; xut gi tr 80h ra hin thJMP $ ; lp ti
chKHAC:JMP Main ; quay v chng trnh chnh kim tra tipEnd
X.3.13. Lnh o Bt INV(.B)Cu trc: INV ch; ch = not chV d: Nhn gi
tr c ly t port 1 sao o gi tr v xut gi tr ra port
1.---------------------------Main:Mov.B &P1IN,R10; ly gi tr t
port 1 a vo thanh ghi R10INV.B R10; thc hin o cc bt trong 8 bit thp
ca thanh ghi R10
BIS.B #0FFH,& P1DIR ; cho php Port 1 lm ng ra d liuMov.B
R10,&P1OUT; xut d liu ra port 1JMP Main; tr v chng trnh chnh
tip tc kim ly d liu.--------------------------------End.Gi s lc u
gi tr nhp vo t Port 1 c gi tr nh phn l 10101010B th sao khi dliu c
xut ra l 01010101B.
X.3.14. Lnh CLR(.B) ( Clear destination)Cu trc: CLR ch; ch = 0V
d: Lc u thanh ghi R15 c gi tr l 0ffh th sau khi thc hin lnh CLR th
R15c gi tr l 0CLR R15; R15 = 0X.4. Cc lnh x l Bit+ Lnh CLRC ( clear
carry bit)+ Lnh CLRN ( clear negative bit )+ Lnh CLRZ ( clear zero
bit )
X.5. Cc lnh nhy
X.5.1. Lnh JNZ ( jum if not zero)Cu trc: JNZ Nhn ; nhy nu khng
bng khngV d: Gim dn thanh ghi R10, nu thanh ghi R10 khc khng th nhy
n nhn NhayCn bng khng th thot ra khi chng
trnh.-------------------------------Main:Mov.B #20,R10; a gi tr 20
vo thanh ghi R10Nhay: DEC.B R10 ; gim R10 i mt n vJNZ Nhay ; kim
tra R10 xem nu khc 0 th nhy--------------------------------End
X.5.2. Lnh JZ ( Jum if Zero)Cu Trc: JZ Nhn ; Nhy nu bng khngV d:
TST R7; kim tra R7JZ Nhay; nhy n nhn Nhay khi R7 = 0, ngc li th tip
lnh sau.
X.5.3. Lnh JEQ ( jum if equal)Cu trc: JEQ Nhn; nhy nu bngV d:
CMP R10, Table(R6) ;JEQ Lap; nhy n Lap nu
bng---------------------------------------------* Gii thch : Lnh
CMP R10, Table(R6) so snh ni dung ca thanh ghi R6 vi nidung ca bng
Table ti a ch vi gi tr R10
X.5.4. Lnh JGE ( Jum if greater or equal)Cu trc: JGE Nhn; nhy n
nhn nu ln hn hoc bngV d: CMP @ R10,R11; so snh c du hai thanh
ghiJGE nhay; nhy nu R11 (
(R10)---------------------------------------
X.5.5. Lnh JC (jum if carry set )Cu Trc: JC Nhn ; nhy nu c carry
= 1V d: ADD.B R10,R11; cng 8 bit 2 thanh ghiJC Nhay; nhy n nhn Nhay
nu c
trn--------------------------------Nhay:--------------------------------
X.5.6. Lnh JHS ( jum if higher or same)Cu Trc: JHS Nhn; nhy nu
ln hn hoc bng gi tr no V d: CMP #10,R15JHS Nhay; nhy n nhn nu R15
(10--------------------------------------------------
X.5.7. Lnh JN (jum if negative)Cu trc: JN Nhn ; nhy n nhn nu kt
qu nh hn 0V d: SUB R5,Count ; Count= count- R5JN Nhan; nhy n Nhan
nu php tnh nh hn 0
X.5.8. Lnh JMP ( Jum uncontionally)Cu trc: JMP Nhn; nhy khng u
kinV d: JMP Main; nhy n nhn Main m khng cn u kin.
X.5.9. Lnh JL (jum if less)Cu trc: JL Nhn; nhy n nhn nu nh hnV
d: CMP @R10,R11;JL Nhan; nhy nu R11(
(R10)----------------------------------------------
X.5.10. Lnh JNC ( jum if not carry)Cu trc: JNC Nhan; nhy n nhan
nu c carry khng btV d: Vit chng trnh cng gi tr nhn t P1 vi thanh
ghi R10 ng thi kim traxem khi no trng thanh ghi th nhy n chng trnh
con.---------------Main:ADD &P1,R10JNC Main; nhy n Main nu
thanh ghi cha
trnCon:-------------------------------------------
X.5.11. Lnh JLO ( jum if lower )Cu trc: JLO Nhan; nhy n nhn nu
thp hn mt gi tr no V d: CMP.B #2, &P1INJLO Nhan; nhy n Nhan nu
P1 nh hn 2---------------------------------------------
X.6. Cc lnh phc v chng trnh con v ngt
X.6.1. Lnh Call (call destination)Cu Trc: Call Nhan;V d: Call
Return; gi chng trnh con ti a ch ca nhn
Return---------------------Return------------------RET
X.6.2. Lnh RET ( Return from subroutine )Cu Trc: RETV d: ging v
d trn
X.6.3. Lnh RETI ( return from interrupt)Cu trc: RETIV d: Sau y l
hnh nh minh ha ca mt on chng trnh ngt
X.6.4. Lnh DINT ( Disable interrupts)Cu trc: DINT ; cm ngt
X.6.5. Lnh EINT (Enable interrupts)Cu trc: EINT ; cho php ngtV
d:PUSH.B &P1INTBIS.B @SP,&P1IFG; cho php ch bt mt c duy
nhtEINT ; ngt port 1 c lu gi trong ngn xpBIT #mask,@SPIQE
maskok---------------------Maskok:BIC
#mask,@SP---------------------INCD SPRETI
X.7. Bng thng s chu k v chiu di lnh
X.7.1. Cc lnh phc v ngt
X.7.2. Cc lnh mt ton hng* Ch : Khng c s dng cc lnh RRA,RRC,
SWPB, SXT trong trng hp nha ch trc tip.
X.7.3. Cc lnh nhyCc lnh ny ty thuc vo di on code .
X.7.4. Cc lnh 2 ton hng