Ngồi các c ng n i ti p và các giao đi n n i ti p đ c trình bày ph n trên, vi
đi u
ti p song song thơng qua PORTD và PORTE. Do c ng song song ch ho t đ ng ch đ Slave mode nên vi đi u khi n khi giao ti p qua giao di n này s ch u s đi u khi n c a thi t b bên ngồi thơng qua các pin c a PORTE, trong khi d li u s
đ c đ c ho c ghi theo d ng b t đ ng b thơng qua 8 pin c a PORTD.
Bit đi u khi n PSP là PSPMODE (TRISE<4>). PSPMODE đ c set s thi t l p ch c n ng các pin c a PORTE là các pin cho phép đ c d li u , cho
phép ghi d li u và pin ch n vi đi u khi n ph c v
cho vi c truy n nh n d li u song song thơng qua bus d li u 8 bit c a PORTD. PORTD lúc này đĩng vai trị là thanh ghi ch t d li u 8 bit, đ ng th i tác đ ng c a thanh ghi TRISD c ng s đ c b qua do PORTD lúc này ch u s đi u khi n c a các thi t b bên ngồi. PORTE v n ch u s tác đ ng c a thanh ghi TRISE, do đĩ c n xác l p tr ng thái các pin PORTE là input b ng các set các bit TRISE<2:0>. Ngồi ra c n đ a giá tr thích h p các bit PCFG3:PCFG0 (thanh ghi ADCON1<3:0>) đ
n đnh các pin c a PORTE là các pin I/O d ng digital (PORTE cịn là các pin ch c n ng c a kh i ADC).
CH NG 5 : T P L NH C A VI I U KHI N PIC
5.1 VÀI NÉT S L C V T P L NH C A VI I U KHI N PIC
Do PIC16F877A là vi đi u khi n cĩ t p l nh rút g n RISC (Reduced Information Set Computer), bao g m 35 l nh và cĩ th đ c phân ra thành 3 nhĩm c b n:
- Nhĩm l nh thao tác trên bit. - Nhĩm l nh thao tác trên byte. - Nhĩm l nh đi u khi n.
i v i dịng vi đi u khi n PIC16Fxxx, m i l nh đ c mã hĩa thành 14 bit, bao g m các bit opcode (xác đnh l nh mã hĩa) và các bit mơ t m t hay vài tham s c a l nh.
i v i nhĩm l nh thao tác trên byte, ta cĩ 2 tham s f (xác đ nh đ a ch byte c n thao tác) và d (xác đnh n i ch a k t qu th c thi l nh). N u d = 0, k t qu s đ c
đ a vào thanh ghi W. N u d = 1, k t qu đ c đ a vào thanh ghi đ c mơ t b i tham s f.
i v i nhĩm l nh thao tác trên bit, ta cĩ hai tham s b (xác đnh bit c n thao tác) và f (xác đnh đa ch byte d li u c n thao tác).
i v i nhĩm l nh đi u khi n ch cĩ m t tham s duy nh t là k (k cĩ th là 8 bit trong tr ng h p các l nh bình th ng hay 11 bit trong tr ng h p là l nh CALL và l nh GOTO) dùng đ mơ t đ i t ng tác đ ng c a vi đi u khi n (m t label, m t h ng s nào đĩ).
M t chu kì l nh g m 4 xung clock c a oscillator. Ví d oscillator cĩ t n s 4 MHz thì t n s th c thi l nh s là 4MHz/4 = 1MHz, nh v y m t chu kì l nh cĩ th i gian 1uS.
5.2 T P L NH C A VI I U KHI N PIC 5.2.1 L nh ADDLW 5.2.1 L nh ADDLW
Cú pháp: ADDLW k (0 ≤ k≤255).
Tác d ng: c ng giá tr k vào thanh ghi W, k t qu đ c ch a trong thanh ghi W. Bit tr ng thái: C, DC, Z
5.2.2 L nh ADDWF
Cú pháp: ADDWF f,d (0≤f≤255, d [0,1]).
Tác d ng: c ng giá tr hai thanh ghi W và thanh ghi f. K t qu đ c ch a trong thanh ghi W n u d = 0 ho c thanh ghi f n u d=1.
Bit tr ng thái: C, DC, Z
5.2.3 L nh ANDLW
Cú pháp: ANDLW k (0≤k≤255)
Tác d ng: th c hi n phép tốn AND gi a thanh ghi và giá tr k, k t qu đ c ch a trong thanh ghi W.
5.2.4 L nh ANDWF
Cú pháp: ANDWF f,d (0≤f≤127, d [0,1]).
Tác d ng: th c hi n phép tốn AND gi a các giá tr ch a trong hai thanh ghi W và f. K t qu đ c đ a vào thanh ghi W n u d=0 ho c thanh ghi f n u d = 1.
Bit tr ng thái: Z
5.2.5 L nh BCF
Cú pháp: BCF f,b (0≤f≤127, 0≤b≤7). Tác d ng: xĩa bit b trong thanh ghi f v giá tr 0. Bit tr ng thái: khơng cĩ.
5.2.6 L nh BSF
Cú pháp: BSF f,b (0≤f≤127, 0≤b≤7). Tác d ng: set bit b trong trnh ghi f. Bit tr ng thái: khơng cĩ
5.2.7 L nh BTFSS
Cú pháp: BTFSS f,b (0≤f≤127, 0≤b≤7).
Tác d ng: ki m tra bit b trong thanh ghi f. N u bit b b ng 0, l nh ti p theo đ c th c thi. N u bit b b ng 1, l nh ti p theo đ c b qua và thay vào đĩ là l nh NOP.
Bit tr ng thái: khơng cĩ
5.2.8 L nh BTFSC
Cú pháp: BTFSC f,b(0≤f≤127, 0≤b≤7).
Tác d ng: ki m tra bit b trong thanh ghi f. N u bit b b ng 1, l nh ti p theo
đ c th c thi. N u bit b b ng 0, l nh ti p theo đ c b qua và thay vào đĩ là l nh NOP.
Bit tr ng thái: khơng cĩ.
5.2.9 L nh CALL
Cú pháp: CALL k (0≤k≤2047).
Tác d ng: g i m t ch ng trình con. Tr c h t đa ch quay tr v t ch ng trình con (PC+1) đ c c t vào trong Stack, giá tr đ a ch m i đ c đ a vào b đ m g m 11 bit c a bi n k và 2 bit PCLATH<4:3>.
Bit tr ng thái: khơng cĩ
Cú pháp CLRF f (0≤f≤127).
Tác d ng: xĩa thanh ghi f và bit Z đ c set. Bit tr ng thái: Z
5.2.11 L nh CLRW
Cú pháp CLRW.
Tác d ng: xĩa thanh ghi W và bit Z đ c set. Bit tr ng thái: Z
5.2.12 L nh CLRWDT
Cú pháp: CLRWDT.
Tác d ng: reset Watchdog Timer, đ ng th i prescaler c ng đ c reset, các bit và đ c set lên 1.
Bit tr ng thái:
5.2.13 L nh COMF
Cú pháp: COMF f,d (0≤f≤127, d [0,1]).
Tác d ng: đ o các bit trong thanh ghi f. K t qu đ c đ a vào thanh ghi W n u d=0 ho c thanh ghi f n u d=1.
Bit tr ng thái: Z
5.2.14 L nh DECF
Cú pháp: DECF f,d (0≤f≤127, d [0,1]).
Tác d ng: giá tr thanh ghi f đ c gi m đi 1 đ n v . K t qu đ c đ a vào thanh ghi W n u d = 0 ho c thanh ghi f n u d = 1.
Bit tr ng thái: Z
5.2.15 L nh DECFSZ
Cú pháp: DECFSZ f,d(0≤f≤127, d [0,1]). Tác d ng: gía tr thanh ghi f đ c gi m 1
đ n v . N u k t qu sau khi gi m khác 0, l nh ti p theo đ c th c thi, n u k t qu b ng 0, l nh ti p theo khơng đ c th c thi và thay vào đĩ là l nh NOP. K t qu
đ c đ a vào thanh ghi W n u d = 0 ho c thanh ghi f n u d = 1. Bit tr ng thái: khơng cĩ
5.2.16 L nh GOTO
Tác d ng: nh y t i m t label đ c đnh ngh a b i tham s k và 2 bit PCLATH<4:3>.
Bit tr ng thái: khơng cĩ.
5.2.17 L nh INCF
Cú pháp: INCF f,d (0≤f≤127, d [0,1]).
Tác d ng: t ng giá tr thanh ghi f lên 1 đ n v . K t qu đ c đ a vào thanh ghi W n u d = 0 ho c thanh ghi f n u d = 1.
Bit tr ng thái: Z
5.2.18 L nh INCFSZ
Cú pháp: INCFSZ f,d (0≤f≤127, d [0,1]).
Tác d ng: t ng giá tr thanh ghi f lên 1 đ n v . N u k t qu khác 0, l nh ti p theo
đ c th c thi, n u k t qu b ng 0, l nh ti p theo đ c thay b ng l nh NOP. K t qu s đ c đ a vào thanh ghi f n u d=1 ho c thanh ghi W n u d = 0.
Bit tr ng thái: khơng cĩ.
5.2.19 L nh IORLW
Cú pháp: IORLW k (0≤k≤255).
Tác d ng: th c hi n phép tốn OR gi a thanh ghi W và giá tr k. K t qu đ c ch a trong thanh ghi W.
Bit tr ng thái: Z
5.2.20 L nh IORWF
Cú pháp: IORWF f,d (0≤f≤127, d [0,1]).
Tác d ng: th c hi n phép tốn OR gi a hai thanh ghi W và f. K t qu đ c đ a vào thanh ghi W n u d=0 ho c thanh ghi f n u d=1.
Bit tr ng thái: Z
5.2.21 L nh RLF
Cú pháp: RLF f,d (0≤f≤127, d [0,1]).
Tác d ng: d ch trái các bit trong thanh ghi f qua c carry. K t qu đ c l u trong thanh ghi W n u d=0 ho c thanh ghi f n u d=1.
Bit tr ng thái: C
Cú pháp: RETURN.
Tác d ng: quay tr v ch ng trình chính t m t ch ng trình con. Bit tr ng thái:khơng cĩ
5.2.23 L nh RRF
Cú pháp: RRF f,d (0≤f≤127, d [0,1]).
Tác d ng: d ch ph i các bit trong thanh ghi f qua c carry. K t qu đ c l u trong thanh ghi W n u d=0 ho c thanh ghi f n u d=1.
Bit tr ng thái: C
5.2.24 L nh SLEEP
Cú pháp: SLEEP
Tác d ng: đ a vi đi u khi n v ch đ sleep. Khi đĩ WDT b xĩa v 0, bit
đ c xĩa v 0, bit đ c set lên 1 và oscillator khơng đ c cho phép ho t
đ ng.
Bit tr ng thái:
5.2.25 L nh SUBLW
Cú pháp: SUBLW k
Tác d ng: l y giá tr k tr giá tr trong thanh ghi W. K t qu đ c ch a trong thanh ghi W.
Bit tr ng thái: C, DC, Z
5.2.26 L nh SUBWF
Cú pháp: SUBWF f,d (0≤f≤127, d [0,1])
Tác d ng: l y giá tr trong thanh ghi f đem tr cho thanh ghi W. K t qu đ c l u trong thanh ghiaW n u d=0 ho c thanh ghi f n u d=1.
Bit tr ng thái: C, DC, Z
5.2.27 L nh SWAP
Cú pháp: SWAP f,d (0≤f≤127, d [0,1])
Tác d ng: đ o 4 bit th p v i 4 bit cao trong thanh ghi f. K t qu đ c ch a trong thanh ghi W n u d=0 ho c thanh ghi f n u d=1.
5.2.28 L nh XORLW
Cú pháp: XORLW k (0≤k≤255)
Tác d ng: th c hi n phép tốn XOR gi a giá tr k và giá tr trong thanh ghi W. K t qu đ c l u trong thanh ghi W.
Bit tr ng thái: Z
5.2.29 L nh XORWF
Cú pháp: XORWF f,d
Tác d ng: th c hi n phép tốn XOR gi a hai giá tr ch a trong thanh ghi W và thanh
ghi f. K t qu đ c l u vào trong thanh ghi W n u d=0 ho c thanh ghi f n u d=1. Bit tr ng thái: Z
5.2.30 L nh #DIFINE
Cú pháp: #DEFINE <text1> <text2>
Tác d ng: thay th m t chu i kí t ny b ng m t chu i kí t khc, cĩ ngh a là m i khi chu i kí t text1 xu t hi n trong ch ng trình, trình biên d ch s t đ ng thay th chu i kí t đ b ng chu i kí t <text2>.
5.2.31 L nh INCLUDE
Cú pháp: #INCLUDE <filename> ho c #INCLUDE “filename”
Tác d ng: đính km m t file khc vo ch ng trình, t ng t nh vi c ta copy file
đĩ vào v trí xu t hi n l nh INCLUDE. N u dùng cú pháp <filename> thì file đình km l file h th ng (system file), n u dùng cú pháp “filename” thì file đính kèm là file c a ng i s d ng.
Thơng th ng ch ng trình đ c đính kèm theo m t “header file” ch a cc thơng tin đnh ngh a cc bi n (thanh ghi W, thanh ghi F,..) và các đ a ch các thanh ghi ch c n ng đ c bi t trong b nh d li u. N u khơng cĩ header file, ch ng trình s khs đ c và khĩ hi u h n.
5.2.32 L nh CONSTANT
Cú pháp: CONSTANT <name>=<value>
Tác d ng: khai bo m t h ng s , cĩ ngh a là khi phát hi n chu i kí t “name” trong ch ng trình, trình biên d ch s t đ ng thay b ng chu i kí t b ng gi tr “value” đã đ c đnh ngh a tr c đĩ.
Cú pháp: VARIABLE <name>=<value>
Tác d ng: t ng t nh l nh CONSTANT, ch cĩ đi m khác bi t duy nh t là giá tr
“value” khi dùng l nh VARIABLE cĩ th thay đ i đ c trong quá trình th c thi ch ng trình cịn l nh CONSTANT thì khơng.
5.2.34 L nh SET
Cú pháp: <name variable> SET <value>
Tác d ng: gán giá tr cho m t tên bi n. Tên c a bi n cĩ th thay đ i đ c trong quá
trình th c thi ch ng trình.
5.2.35 L nh EQU
Cú pháp: <name constant> EQU <value>
Tác d ng: gán giá tr cho tên c a tên c a h ng s . Tên c a h ng s khơng thay
đ i trong quá trình th c thi ch ng trình.
5.2.36 L nh ORG Cú pháp: ORG <value> Tác d ng: đnh ngh a m t đ a ch ch a ch ng trình trong b nh ch ng trình c a vi đi u khi n. 5.2.37 L nh END Cú pháp: END Tác d ng: đánh d u k t thúc ch ng trình. 5.2.38 L nh __CONFIG Cú pháp: __CONFIG(Configuration bit)
Tác d ng: thi t l p các bit đi u khi n các kh i ch c n ng c a vi đi u khi n đ c ch a trong b nh ch ng trình (Configuration bit)
5.2.39 L nh PROCESSOR
Cú pháp: PROCESSOR <processor type>
CH NG 6 : CÁC THI T B - LINH KI N LIÊN QUAN KHÁC
6.1 NG C B C
6.1.1 GI I THI U V NG C B C
a) ng c b c l ng c c (bipolar step motor)
- Tr c đây, lo i đ ng c b c đ n c c đ c s d ng r ng rãi h n do tính đ n gi n trong c u trúc đi u khi n c a chúng. Tuy nhiên, v i s phát tri n c a các m ch s cĩ đ tích h p cao, đ ng c b c ngu n l ng c c ngày càng đ c s d ng r ng rãi h n. M t khác, trong cùng m t đi u ki n ho t đ ng, các đ ng c b c ngu n l ng c c luơn cho m t mơmen l n h n các đ ng c b c ngu n đ n c c.
- M t đ ng c b c l ng c c g m cĩ m t rotor là m t nam châm v nh c u và stator mang cu n dây. ng c cĩ th đ c đi u khi n đ quay thu n và quay ngh ch b ng cách đi u khi n th t dịng cung c p cho các cu n dây c a stator.
Hình 6.1 C u t o c a đ ng c b c l ng c c - Cách c p dịng:
C p dịng theo trình t AB/CD/BA/DC (BA ngh a là cu n dây AB cĩ đi n nh ng áp d ng đ t B). Cách c p dịng này g i là ch đ ch y 1 b c 1 pha (one phase on full step ho c wave drive). M i th i đi m ch cĩ 1 pha cĩ đi n.
Hình 6.2 Ch đ ch y 1 b c 1 pha.
Cách th 2 là c p dịng cho c 2 pha, làm cho rotor luơn n m v trí gi a 2 c c (AC ch ng h n). Ch đ này g i là ch đ ch y 1 b c 2 pha (2 phase on full
step), đ c s d ng ph bi n cho đ ng c b c l ng c c vì nĩ cho mơmen xo n l n nh t.
Hình 6.3 Ch đ ch y 1 b c 2 pha.
Cách th 3 là c p đi n cho 1 pha, 2 pha, 1 pha… đ đ ng c di chuy n n a b c (one step increment), đ c g i là ch đ ch y n a b c (haft step mode). Cách này cĩ th gi m gĩc quay đi m t n a.
Hình 6.4 Ch đ ch y n a b c. - quay ng c l i ch vi c thay đ i th t c p dịng ng c l i.
- Nh ng hình nh minh h a trên cho th y m t b c c a đ ng c là 90o. Trên th c t ng i ta t o thêm nhi u c c h n v i s cu n dây và th t c p dịng khơng thay đ i đ cho ra b c đ ng c nh h n. Ph bi n hi n nay là đ ng c cĩ b c 1.8o.
b) ng c b c đ n c c (unipolar step motor)
- ng c b c đ n c c cĩ c u t o gi ng nh đ ng c l ng c c trên, ngo i tr m i cu n dây cĩ thêm đ u ra gi a n i mass ho c ngu n đ đ o dịng c a stator.
Hình 6.6 C u t o c a đ ng c b c đ n c c.
c) ng c t tr
- ng c t tr cĩ rotor là lõi s t m m khơng t hĩa và cĩ c c ít h n stator. - ng c t tr cĩ v n t c quay l n h n so v i đ ng c b c cĩ rotor là nam