Vui lòng download xuống để xem tài liệu đầy đủ.

Giáo trình Vi điều khiển PIC

Chia sẻ: | Ngày: pdf 35 p | 460

1
690
views

Khái niệm vi điều khiển (microcontroller - MC) đã khá quen thuộc với các sinh viên CNTT, điện tử, điều khiển tự động cũng như Cơ điện tử ... Nó là một trong những IC thích hợp nhất để thay thế các IC số trong việc thiết kế mạch logic. Ngày này đã có nh74ng MC tích hợp đủ tất cả các chức năng của mạch logic.

Giáo trình Vi điều khiển PIC
Nội dung Text

  1. Microcontroller Training Center DKS GROUP 1 http://www.dks.edu.vn
  2. Microcontroller Training Center M CL C Bài 1.Gi i thi u vi ñi u khi n PIC 4 1.Gi i thi u các lo i chip PIC 4 2. Gi i thi u vi ñi u khi n PIC16F877 5 3.T ch c b nh PIC16F877 8 3.1.T ch c b nh chương trình 8 3.2.B nh d li u 8 3.2.M t s thanh ghi quan tr ng 8 4.L p trình cho PIC 9 4.1.Gi i thi u 18 4.2.Ph n m m l p trình cho PIC 18 4.3.Gi i thi u ph n m m CCS 18 Bài 2.Giao ti p vào ra IO 27 1.Giao ti p IO 27 1.1.Gi i thi u 27 1.2.Các c ng vào ra 23 2.Sơ ñ m ch 29 3.L p trình 30 4.N p chương trình cho chip 35 Bài 3.Giao ti p v i led 7 thanh 39 1.Nguyên lý 39 2.Nguyên lý ho t ñ ng 39 Bài 4.Giao ti p v i bàn phím 42 DKS GROUP 2 http://www.dks.edu.vn
  3. Microcontroller Training Center 1.Sơ ñ nguyên lý 42 2.Nguyên lý ho t ñ ng 42 3.Mã ngu n 43 4.K thu t ch ng rung 44 Bài 5.B chuy n ñ i ADC 46 1.S d ng ADC v i CCS 46 2.Hàm h tr 46 Bài 6.ði u ch ñ r ng xung (PWM) 50 1.ðôi nét v PWM 50 2.Sơ ñ kh i PWM 52 3.Hàm trong CCS 54 Bài 7.Giao ti p máy tính 58 1.Giao ti p RS-232 58 2.Hàm h tr 58 Bài 8.Giao ti p I2C 64 1.Gi i thi u chung 64 2.ñ c ñi m giao ti p I2C 64 3.Start ,stop 66 4.ð nh d ng d li u truy n 67 5.ð nh d ng ñ a ch cho thi t b 62 6.Truy n d li u trên bus I2C ,master-slave 69 7.Ch ñ Multi-master 72 8.Modul I2C trong vi ñi u khi n PIC 72 9.ñ c ñi m ph n c ng 72 10.Cách s d ng I2C trong CCS 73 Bài 9.Giao ti p LCD 74 DKS GROUP 3 http://www.dks.edu.vn
  4. Microcontroller Training Center 1.Gi i thi u LCD 16x2 74 2.LCD v i CCS (4 bit) 80 3.Ví d 82 Khái ni m vi ñi u khi n (microcontroller – MC) ñã khá quen thu c v i các sinh viên CNTT, ñi n t , ñi u khi n t ñ ng cũng như Cơ ñi n t … Nó là m t trong nh ng IC thích h p nh t ñ thay th các IC s trong vi c thi t k m ch logic. Ngày nay ñã có nh ng MC tích h p ñ t t c các ch c năng c a m ch logic. Nói như v y không có nghĩa là các IC s cũng như các IC m ch s l p trình ñư c khác như PLD… không c n dùng n a. MC cũng có nh ng h n ch mà rõ ràng nh t là t c ñ ch m hơn các m ch logic… MC cũng là m t máy tính – máy tính nhúng vì nó có ñ y ñ ch c năng c a m t máy tính. Có CPU, b nh chương trình, b nh d li u, có I/O và các bus trao ñ i d li u. C n phân bi t khái ni m MC v i khái ni m vi x lý (microprocessor – MP) như 8088 ch ng h n. MP ch là CPU mà không có các thành ph n khác như b nh I/O, b nh . Mu n s d ng MP c n thêm các ch c năng này, lúc này ngư i ta g i nó là h vi x lý (microprocessor system). Do ñ c ñi m này nên n u ñ l a ch n gi a MC và MP trong m t m ch ñi n t nào ñó thì t t nhiên ngư i ta s ch n MC vì nó s r ti n hơn nhi u do ñã tích h p các ch c năng khác vào trong chip. Trong ph m vi môn h c ki n trúc máy tính, chúng em xin ch n m t lo i MC ñ tìm hi u v i m c ñích cu i cùng là hi u h t các ch c năng c a MC này và thi t k , l p ráp m t m ch ño nhi t ñ dùng MC. Có r t nhi u lo i MC ñ l a ch n như h 8051 c a Atmel, Philips AVR c a Atmel, dòng 68000 (32bit) c a Motorola ñây xin ch n PIC c a hãng microchip (www.microchip.com) vì s ph bi n c a nó. Có m t ñi u khá thú v là trong s n ph m trò chơi ñi n t PlayStation c a Sony cũng có PIC.Theo ñánh giá thì PIC là dòng MC 8 bit s d ng nhi u nh t trên th gi i t i th i ñi m năm 2006 này. Vi t Nam có l cũng không ph i là m t ngo i l . 1.Gi i thi u các lo i chip PIC Như ñã nói ph n trư c, ñây ta s ch n vi ñi u khi n PIC ñ tìm hi u, tuy nhiên vi c ch n lo i nào trong h này cũng là m t ñi u c n quan tâm. PIC có r t nhi u dòng t PIC12xx, PIC16xx, PIC18xx ñ n dsPIC… theo th t ñ ph c t p c a t ng dòng chip tăng lên, vi c tìm hi u ch c năng c a DKS GROUP 4 http://www.dks.edu.vn
  5. Microcontroller Training Center t ng dòng này n m ngoài ph m vi ki n th c c a chúng em do ñó ñây xin ch n lo i cao nh t trong dòng 16 ñó là PIC16F877 (mid-range). Nó là lo i vi ñi u khi n lo i trung v i kích c 1 l nh là 14 bit (dòng 12 kích c l nh là 12bit, 18 có kích c 16bit) Ch F trong tên g i th hi n b nh chương trình ñây là b nh FLASH (có th xoá và n p l i xxxx l n) 2. Gi i thi u v PIC16F877 Hình 1.2.PIC16F877 a.PIC16F877 mang t t c các ñ c ñi m chung c a các dòng PIC. - Nó là máy tính có t p l nh rút g n (RISC). ði u ñó có nghĩa là s l nh c a nó h n ch ñ n m c t i thi u ( 35 l nh). T i sao là RISC l i có l i và phát tri n sau này? Như ta ñã bi t ñ có th th c hi n m t ch c năng nào ñó thì vi ñi u khi n c n ph i th c hi n các l nh trong b nh chương trình (code memory) ñư c lưu dư i d ng các s nh phân c a nó b ng các b gi i mã (decoder). ði u ñó cũng có nghĩa là n u MC càng có nhi u t p l nh càng c n nhi u b decoder ñ gi i mã. Như v y s m ch gi i mã tích h p trong chip s c n nhi u lên. ði u này làm cho chip c n tiêu th nhi u năng lư ng hơn cũng như chip s d b nóng hơn. Như v y n u như ng d ng c n tiêu th ít năng lư ng thì ngư i ta s ch n RISC. Và có l m t ph n nguyên nhân là do m ch c a nó ñơn gi n hơn nên RISC như PIC ch ng h n ñư c m i ngư i ñánh giá là lo i MC ch ng nhi u t t nh t trong dòng 8 bit. T t nhiên DKS GROUP 5 http://www.dks.edu.vn
  6. Microcontroller Training Center RISC cũng có ñi u không t t, như ñ th c hi n m t phép tính toán có th ph c t p hơn m t chút như l nh nhân 2 s 8 bit hay chia s 16 bit cho 8 bit ch ng h n thì c n vi t các hàm c n m t chút th thu t tính toán (ðó là n u vi t tr c ti p b ng ngôn ng Assembly còn n u vi t b ng các ngôn ng c p cao như C thì s không c n). Khi ñã xây d ng m t trình d ch b ng ngôn ng C ch ng h n thì nh ng vi c khó khăn v thu t toán hoàn toàn do trình biên d ch (compiler) x lý nghĩa là n u xét v m t t n công s c l p trình v các thu t toán thì RISC cũng xem không t n công hơn so v i CISC. Có th hình dung chuy n t CISC sang RISC là quá trình chuy n s ph c t p t ph n c ng sang s ph c t p v ph n m m. Trái l i CISC l i có s lư ng các thanh ghi cũng như b nh ít hơn c n có ít hơn RISC vì: ð thao tác m t ch c năng nào ñó CISC c n thao tác v i s thanh ghi nh hơn RISC. Ngoài ra b nh chương trình cũng gi m hơn r t nhi u. Tư ng tư ng n u RISC c n th c hi n 1 phép toán nào ñó mà c n 5 l nh ch ng h n. Thay vì ñó trong máy tính CISC ngư i ta thi t k m t b gi i mã l nh ñ gi i mã l nh thay cho c 5 l nh này, như v y rõ ràng trong máy tính CISC c n có thêm 1 b gi i mã l nh nhưng mã ngu n lưu tr trong chương trình l i gi m ñi ñư c 1/5. G n ñây l i xu t hi n xu hư ng ngư c l i là chuy n t ph n m m v ph n c ng và có l s l a ch n t t nh t trong tương lai s là trung gian gi a hai lo i ñ trung hoà các ñ c tính c a c RISC l n CISC. Chính vì là RISC nên các l nh c a PIC ñã ñư c t i gi n hoá, t t c các l nh tr các l nh thay ñ i con tr chương trình(Program Counter - PC) ñ u t n 1 chu kỳ máy ( các l nh thay ñ i PC t n 2 chu kỳ máy). ði u này là khác v i CISC có th có nh ng l nh t n nhi u chu kỳ máy vì th c ra b n thân l nh c a CISC ñó cũng có th coi là bao g m nhi u l nh c a RISC v y. PIC là MC mang c u trúc Havard là c u trúc có các ñư ng bus d li u và bus chương trình riêng l . ði u này làm cho chương trình có th ñư c th c hi n ñ ng th i các thao tác gi i mã th c hi n l nh v i các thao tác ñ c d li u cùng lúc. ði u này khác v i c u trúc Von Neumann có 2 ñư ng bus này chung do ñó cùng lúc ch th c hi n 1 công vi c. (V sơ ñ tìm n p) . ðây là nguyên nhân làm cho c u trúc Von neumann th c hi n 1 l nh lâu hơn máy mang c u trúc Harvard. T t nhiên ngư i ta ch th y ñư c cái l i c a c u trúc Harvard khi mà công ngh s n xu t chip ñã ñư c phát tri n lên. Cũng c n ph i nh là MC ñã ñư c phát tri n t nh ng dòng ñ i trư c r i và sau này nó có thêm các ch c năng khác vào v y m t câu h i ñư c ñ t ra là n u không có các ch c năng ph n c ng này thì trư c ñây ngư i ta s làm DKS GROUP 6 http://www.dks.edu.vn
  7. Microcontroller Training Center th nào ñ th c hi n các ch c năng c n thi t? Th c t ngư i ta v n làm ñư c các công vi c ñó nhưng là b ng ph n m m. Ngư i vi t mã s ph i th c hi n các ch c năng ñó b ng m t s phương pháp nào ñ y. Còn khi tích h p s n vào trong ph n c ng r i thì vi c th c hi n s ñơn gi n hơn trư c ñây. ði u này có v như l i ñi ngư c v i khuynh hư ng ñã nêu trên ñ i v i các b gi i mã l nh. Quá trình gi i mã l nh chuy n t ph c t p ph n c ng sang ph c t p ph n m m. Còn quá trình th c hi n các ch c năng khác l i chuy n t ph c t p ph n m m sang ph n c ng. Hai quá trình này không có gì mâu thu n v i nhau mà ngư c l i nó là m t s b sung cho nhau. Có th sau này ta s th y rõ hơn ñi u này nhưng ñây xin ñư c nói sơ qua nguyên nhân. Quá trình gi i mã l nh n u như dùng trong RISC thì s ph c t p ph n m m ñây ngoài các gi i thu t (là ñi u không ñáng ng i vì qua th i gian các gi i thu t này s ñư c tích lu d n d n cũng như xây d ng ñư c các compiler ngôn ng c p trung và c p cao như C, Pascal) là khó khăn ra thì các phép tính c n nh ng th trung gian th c hi n lúc này là b nh chính xác hơn là các thanh ghi (càng ngày càng r và d ch t o). Còn quá trình th c hi n các ch c năng khác thì n u không có ph n c ng thêm vào thì các ph n c ng hi n th i ñư c s d ng s m t công vào vi c này mà s không th c hi n ñư c vi c khác. Chúng ta s th y rõ ñi u này hơn sau. PIC16F877 có ñ c ñi m ph n c ng và các ch c năng: - 368 bytes b nh d li u RAM. 8K Words b nh chương trình FLASH (trong ñó m i word c a dòng mid-range là 14bit), 256 bytes EEPROM - Có 3 b ñ nh th i Timer0, Timer1, Timer2 - Có kh năng x lý ng t t nhi u ngu n ng t khác nhau như ng t ngoài, ng t tràn Timer, ng t ngo i vi như ng t ADC…. - Ch c năng CCP g m Comparator (B so sánh), Capture và PWM (ði u bi n ñ r ng xung) - Ch c năng giao ti p ñ ng b n i ti p SSP (Synchnorous Serial Port) bao g m 2 giao ti p SPI và giao ti p I2C - Ch c năng b truy n/phát không ñ ng b ña năng n i ti p USART (Universal Serial Asynchnorous Receiver/Transmitter) d ng mô ñun ph n c ng ph c v cho giao ti p theo chu n RS- 232, do ñó ta không c n quan tâm ñ n các thao tác c p th p khi s d ng RS-232. ðây là ch c năng h u ích trong vi c giao ti p v i PC c a MC DKS GROUP 7 http://www.dks.edu.vn
  8. Microcontroller Training Center - B chuy n ñ i ADC 10 bit chuy n ñ i tín hi u tương t thành tín hi u s 10 bit. Ngu n ñi n áp tham chi u có th ch n t ngu n ngoài ho c t ngu n Vdd và Vss c p cho PIC - Ch c năng giao ti p song song PSP (Parralel Slave Port) - Ch c năng Watchdog Timer 1. T ch c b nh 2. Giao ti p vào ra I/O 3. S d ng Timer 4. Ng t 5. S d ng EEPROM và FLASH ñ lưu tham s 6. Môñun CCP (Capture/Compare/PWM) 7. B bi n ñ i tương t - s ADC 10bit, 8bit 8. Giao ti p không ñ ng b v i máy tính qua chu n RS-232 b ng USART 9. Các giao ti p n i ti p ñ ng b SPI và I2C 10.Tóm g n v t p l nh ð có th có cách ñ c d hi u, trong quá trình gi i thi u chi ti t các ch c năng tích h p trong chip, ta s gi i thi u luôn các l nh c n thi t tương ng c n dùng. 3.T ch c b nh c a PIC 16F877 3.1.T ch c b nh chương trình Nhìn vào sơ ñ bên ta có th hình dung v b nh chương trình c a PIC:B nh chương trình có 8KWords (1 word = 14 bits) ñư c phân thành 4 trang có ñ a ch như bên. C n nh v i con tr chương trình PC là 13 bit thì kích c ñ a ch t i ña ñánh ñư c là 213 = 8K do ñó ta có th th y v i dòng mid-range thì kích thư c b nh chương trình PIC16F877 ñã là t i ña có th ñ t ñư c ñ n, v i nh ng lo i kém hơn trong mid-range thì b nh ít hơn do ñó khi PC tăng vư t quá giá tr b nh c a nó s x y ra hi n tư ng quay vòng tr l i ph n ñ u c a b nh chương trình Có 8 stack. Stack là nơi ta lưu PC lúc c n ph c v cho các thao tác ng t cũng như chương trình con. Ch có 8 m c stack ñi u ñó có nghĩa là n u có 9 l n ñ y vào stack thì l n ñ u tiên s b m t ñ a ch tr v và chương trình s b ch y sai. PIC không có c ng t báo x y ra tràn stack. 3.2.B nh d li u PIC là lo i chip có b x lý ch qu n lý m t không gian ñ a ch duy nh t, g i là không gian ñ a ch b nh . DKS GROUP 8 http://www.dks.edu.vn
  9. Microcontroller Training Center B nh d li u phân thành 4 banks như hình bên phân thành hai vùng là vùng các thanh ghi tr ng thái và ñi u khi n, vùng 2 là vùng các thanh ghi ña m c ñích. N u mu n th c hi n m t ch c năng nào ñó thông thư ng ta c n thao tác v i các thanh ghi ñi u khi n ñ thi t l p m t s cài ñ t c n thi t, còn vùng các thanh ghi ña m c ñích GPR (General Purpose Register) thư ng ñ lưu các bi n trung gian ph c v cho các thao tác tính toán. Microchip xem vùng không gian nh RAM như là các thanh ghi m c dù ch c năng c a nó th c s không ph i như các thanh ghi, nó ch dùng ñ ch d li u. N u mu n thao tác v i thanh ghi nào trư c tiên ta ph i xem nó thu c bank nào trong 4 bank sau ñó ta ph i chuy n ñ n bank ñó b ng cách thao tác v i 2 bít RP1 và RP0 c a thanh ghi tr ng thái STATUS như b ng dư i v i các l nh BCF STATUS, RP1 BSF STATUS, RP0 s chuy n v bank 1. Các tên STATUS, RP1, RP0 khi d ch ra không có ý nghĩa gì v i PIC mà nó ch là các tên ñ nh danh ñã ñư c khai báo trong t p tiêu ñ (mà ta s ph i include ñ u chương trình) c a MPASM (Trình biên d ch assembler) tương ng v i giá tr ñ a ch c a thanh ghi ñó, cũng có th chuy n các bank b ng cách s d ng macro ñã ñư c trình biên d ch h p ng BANKSEL. N u ta vi t BCF 0x03, 6 BSF 0x03, 5 Thì cũng hoàn toàn tương ñương v i l nh trên (lúc này không c n thi t include n a) 3.3.M t s thanh ghi quan tr ng a) Thanh ghi tr ng thái Cũng gi ng như t t c các b vi x lý khác, ñây ta có thanh ghi tr ng thái STATUS t i các ñ a ch 03h, 83h,103h, 183h n m c 4 bank. Thanh ghi tr ng thái có ñ a ch t i 4 bank ñ ta có th ti n trong quá trình thao tác, hơn n a ngay b n thân các bit xác ñ nh v trí bank cũng n m trong thanh ghi tr ng thái IRP: Bit l a ch n bank ñư c dùng trong ch ñ truy nh p ñ a ch gián ti p DKS GROUP 9 http://www.dks.edu.vn
  10. Microcontroller Training Center RP1:RP0 Bit l a ch n bank ñư c dùng trong ch ñ truy nh p ñ a ch tr c ti p TO : Bit Time-out 1 = Sau khi b t ngu n ho c l nh CLRWDT, ho c l nh SLEEP 0 = 1 time-out c a WDT x y ra (WDT = watch dog timer) PD : Bit Power-down 1 = Sau khi b t ngu n ho c l nh CLRWDT 0 = S th c hi n l nh SLEEP Z : C tr ng thái zero 1 = Thao tác logic ho c s h c b ng 0 0 = khác 0 DC : Bit carry/borrow ch s 1 = carry t 4 bit th p 0 = không carry t 4 bit th p C : Carry/borrow 1 = carry t bit MSb 0 = không carry t bit MSb b)Thanh ghi tr ng thái OPTION Nó ch c các bit ñi u khi n ñ c u hình RBPU : Bit enable ñi n tr kéo lên PORTB INTEDG : Bit xác ñ nh c nh lên c a ng t ngoài t i chân RB0/INT T0CS : Bit l a ch n ngu n clock c a timer0 T0SE : ............ PSA: Bit gán t l Prescaler 1 = Gán cho WDT 0 = Gán cho môñun Timer0 PS2:PS0 Bit l a ch n t l gán c)Thanh ghi INTCON(Thanh ghi ñi u khi n ng t chung) GIE : Bit enable t t c các ngu n ng t, n u mu n disable t t c các ngu n ng t ch c n disable ngu n ng t này, còn n u enable 1 ngu n ng t nào ñó thì enable bit này s là l nh cu i cùng PEIE: Bit enable các ng t ngo i vi TMR0IE: Bit enable ng t trnà c a timer0 INTE: Bit enable ng t ngoài trên chân RB0/INT RBIE: Bit enable ng t thay ñ i trên c ng PORTB TMR0IF: Bit c báo ng t c a timer0 DKS GROUP 10 http://www.dks.edu.vn
  11. Microcontroller Training Center INTF: Bit c báo ng t ngoài trên chân RB0/INT RBIF: Bit c báo ng t thay ñ i trên c ng RB d)Thanh ghi PIE1 (Thanh ghi ñi u khi n ng t thi t b ngo i vi) PSPIE: Bit enable ng t ñ c/ghi c ng slave song song ADIE: Bit enable ng t ADC RCIE: Bit enable ng t nh n c a USART TXIE: Bit enable ng t phát c a USART SSPIE: Bit enable ng t c ng n i ti p ñ ng b CCP1IE: Bit enable ng t c a CCP1 (Compare-Capture-PWM) TMR2IE: Bit enable ng t c a timer2? TMR1IE: Bit enable ng t tràn timer1 e) Thanh ghi PIR1 4.L p trình cho PIC 4.1.Gi i thi u ð l p trình cho PIC16F877 b n có th s d ng 2 ngôn ng cơ b n là C và ASM .Nhìn chung ,2 ngôn ng này có nh ng ưu và như c ñi m riêng.Ngôn ng ASM có ưu ñi m là g n nh ,giúp ngư i l p trình n m b t sâu hơn v ph n c ng .Tuy nhiên l i có như c ñi m là ph c t p ,khó hi u ,không thu n ti n ñ xây d ng các chương trình l n.Ngư c l i ngôn ng C l i d dung ,ti n l i ,d debug ,thu n ti n ñ xây d ng các chương trình l n.Nhưng như c ñi m c a ngôn ng C là không giúp ngư i l p trình hi u bi t sâu v ph n c ng. 4.2.Các ph n m m l p trình cho PIC -CCS Ph n m m CCS là ph n m m chuyên d ng ñ l p trình cho PIC (vi t b ng ngôn ng C).Ph n m m CCS có b thư vi n hàm r t phong phú ,h tr ñ y ñ các tính năng như giao ti p RS-232 ,LCD ,ch c năng I/O, Timer ,thu n ti n ñ làm các ng d ng l n.Hi n nay CCS ñã có phiên b n 4 ñư c c p nh t b thư vi n hàm m i . DKS GROUP 11 http://www.dks.edu.vn
  12. Microcontroller Training Center Hình 2.2.Giao di n ph n m m CCS -HT-PIC HT-PIC là ph n m m biên d ch cho PIC s d ng ngôn ng l p trình C. HT- PIC thư ng ñư c tích h p trong môi trư ng MPLAB-IDE ñ so n th o chương trình. -MPLAB IDE DKS GROUP 12 http://www.dks.edu.vn
  13. Microcontroller Training Center Hình 2.3.Giao di n ph n m m MPLAB IDE Giáo trình này s ch y u hư ng d n các b n l p trình PIC b ng ngôn ng C .S d ng ph n m m CCS phiên b n 3 4.3.Gi i thi u ph n m m CCS 4.3.1.Vì sao ta s d ng CCS ? S ra ñ i c a m t lo i vi ñi u khi n ñi kèm v i vi c phát tri n ph n m m ng d ng cho vi c l p trình cho con vi ñi u khi n ñó. Vi ñi u khi n ch hi u và làm vi c v i hai con s 0 và 1. Ban ñ u ñ vi c l p trình cho VðK là làm vi c v i dãy các con s 0 và 1. Sau này khi ki n trúc c a Vi ñi u khi n ngày càng ph c t p, s lu ng thanh ghi l nh nhi u lên, vi c l p trình v i dãy các s 0 và 1 không còn phù h p n a, ñòi h i ra ñ i m t ngôn ng m i thay th . Và ngôn ng l p trình Assembly. ñây ta không nói nhi u ñ n Assmebly. Sau này khi ngôn ng C ra ñ i, nhu c u dùng ngôn ng C ñ thay cho ASM trong vi c mô t các l nh l p trình cho Vi ñi u khi n m t cách ng n g n và DKS GROUP 13 http://www.dks.edu.vn
  14. Microcontroller Training Center d hi u hơn ñã d n ñ n s ra ñ i c a nhi u chương trình so n th o và biên d ch C cho Vi ñi u khi n : Keil C, HT-PIC, MikroC,CCS… Tôi ch n CCS cho bài gi i thi u này vì CCS là m t công c l p trình C m nh cho Vi ñi u khi n PIC. Nh ng ưu và như c ñi m c a CCS s ñư c ñ c p ñ n trong các ph n dư i ñây. 4.3.2.Gi i thi u v CCS . CCS là trình biên d ch l p trình ngôn ng C cho Vi ñi u khi n PIC c a hãng Microchip.Chương trình là s tích h p c a 3 trình biên d ch riêng bi t cho 3 dòng PIC khác nhau ñó là: - PCB cho dòng PIC 12-bit opcodes - PCM cho dòng PIC 14-bit opcodes - PCH cho dòng PIC 16 và 18-bit T t c 3 trình biên d ch này ñu c tích h p l i vào trong m t chương trình bao g m c trình so n th o và biên d ch là CCS, phiên b n m i nh t là PCWH Compiler Ver 3.227.Gi ng như nhi u trình biên d ch C khác cho PIC, CCS giúp cho ngư i s d ng n m b t nhanh ñư c vi ñi u khi n PIC và s d ng PIC trong các d án. Các chương trình ñi u khi n s ñư c th c hi n nhanh chóng và ñ t hi u qu cao thông qua vi c s d ng ngôn ng l p trình c p cao – Ngôn ng C.Tài li u hư ng d n s d ng có r t nhi u, nhưng chi ti t nh t chính là b n Help ñi kèm theo ph n m m (tài li u Ti ng Anh). Trong b n tr giúp nhà s n xu t ñã mô t r t nhi u v h ng, bi n, ch th ti n x a lý, c u trúc các câu l nh trong chương trình, các hàm t o s n cho ngư i s d ng…Ngoài ra v Ti ng Vi t cũng có b n d ch c a tác gi Tr n Xuân Trư ng, SV K2001 DH BK HCM. Tài li u này d ch trên cơ s b n Help c a CCS, tuy r ng chưa ñ y ñ nhưng ñây là m t tài li u hay, n u b n tìm hi u v PIC và CCS thì nên tìm tài li u này v ñ c. ð a ch Download tài li u: www.picvietnam.com -> M c nói v CCS. -T o PROJECT ñ u tiên trong CCS ð t o m t Project trong CCS có nhi u cách, có th dùng Project Wizard, Manual Creat,hay ñơn gi n là t o m t Files m i và thêm vào ñó các khai báo ban ñ u c n thi t và “b t bu c”. Dư i ñây s trình bày cách t o m t project h p l theo c 3 phương pháp. M t ñi u ta c n chú ý khi t o m t Project ñó là: khi t o b t c m t Project nào m i thì ta nên t o m t thư m c m i v i tên liên quan ñ n Project ta ñ nh làm, r i lưu các files vào ñó. Khi l p trình và biên d ch, CCS s t o ra r t nhi u files khác nhau, do ñó n u ñ chung các Project trong m t thư m c s DKS GROUP 14 http://www.dks.edu.vn
  15. Microcontroller Training Center r t m t th i gian trong vi c tìm ki m sau này. ðây cũng là quy t c chung khi ta làm vi c v i b t kỳ ph n m m nào, thi t k m ch hay l p trình.Vi c ñ u tiên b n c n làm là kh i ñ ng máy tính và b t chương trình PIC C Compiler. -T o m t PROJECT s d ng PIC Wizard Trư c h t b n kh i ñ ng chương trình làm vi c PIC C Compiler. T giao di n chương trình b n di chu t ch n Project -> New -> PIC Wizard nh n nút trái chu t ch n. Sau khi nh n chu t, m t c a s hi n ra yêu c u ban nh p tên Files c n t o. B n t o m t thư m c m i, vào thư m c ñó và lưu tên files c n t o t i ñây. DKS GROUP 15 http://www.dks.edu.vn
  16. Microcontroller Training Center Như v y là xong bư c ñ u tiên. Sau khi nh n nút Save, m t c a s New Project hi n ra.Trong c a s này bao g m r t nhi u Tab, m i Tab mô t v m t vài tính năng c a con PIC.Ta s ch n tính năng s d ng t i các Tab tương ng.Dư i ñây s trình bày ý nghĩa t ng m c ch n trong m i Tab. Các m c ch n này chính là ñ c p ñ n các tính năng c a m t con PIC, tùy theo t ng lo i mà s có các Tab tương ng.ð i v i t ng d án khác nhau, khi ta c n s d ng tính năng nào c a con PIC thì ta s ch n m c ñó. T ng c ng có 13 Tab ñ ta lưa ch n. Tôi gi i thi u nh ng Tab chính thư ng hay ñư c s d ng. -Tab General Tab General cho phép ta l a ch n lo i PIC mà ta s d ng và m t s l a ch n khác như ch n t n s th ch anh dao ñ ng, thi t l p các bit CONFIG nh m thi t l p ch ñ ho t ñ ng cho PIC. DKS GROUP 16 http://www.dks.edu.vn
  17. Microcontroller Training Center -Device: Li t kê danh sách các lo i PIC 12F, 16F, 18F… Ta s ch n tên Vi ñi u khi n PIC mà ta s d ng trong d án. L y ví d ch n PIC16F877A -Oscilator Frequency: T n s th ch anh ta s d ng, ch n 20 MHz (tùy t ng lo i) -Fuses: Thi t l p các bit Config như: Ch ñ dao ñ ng (HS, RC, Internal ), ch ñ b o v Code, Brownout detected… -Ch n ki u con tr RAM là 16-bit hay 8-bit -Tab Communications Tab Communications li t kê các giao ti p n i ti p mà m t con PIC h tr , thư ng là RS232 và I2C, cùng v i các l a ch n ñ thi t l p ch ñ ho t ñ ng cho t ng lo i giao ti p. Giao ti p RS232 DKS GROUP 17 http://www.dks.edu.vn
  18. Microcontroller Training Center M i m t Vi ñi u khi n PIC h tr m t c ng truy n thông RS232 chu n. Tab này cho phép ta l a ch n chân Rx, Tx, t c ñ Baud, Data bit, Bit Parity… Giao ti p I2C ð s d ng I2C ta tích vào nút ch n Use I2C, khi ñó ta có các l a ch n: Chân SDA, SCL, T c ñ truy n (Fast - Slow), ch ñ Master hay Slave, ñ a ch cho Salve. -Tab SPI and LCD Tab này li t kê cho ngư i dùng các l a ch n ñ i v i giao ti p n i ti p SPI, chu n giao ti p t c ñ cao mà PIC h tr v ph n c ng. Chú ý khi ta dùng I2C thì không th dùng SPI và ngư c l i. ð có th s d ng c hai giao ti p này cùng m t lúc thì bu c m t trong 2 giao ti p ph i l p trình b ng ph n DKS GROUP 18 http://www.dks.edu.vn
  19. Microcontroller Training Center m m (gi ng như khi dùng I2C cho các chip AT8051, không có h tr ph n c ng SSP).Ph n c u hình cho LCD dành cho các chíp dòng 18F và 30F. Hình 2.4: Tab SPI and LCD -Tab Timer Li t kê các b ñ m/ñ nh th i mà các con PIC dòng Mid-range có: Timer0, timer1,timer2, WDT…Trong các l a ch n c u hình cho các b ñ m /ñ nh th i có: ch n ngu n xung ñ ng h (trong/ngoài), kho ng th i gian x y ra tràn… DKS GROUP 19 http://www.dks.edu.vn
  20. Microcontroller Training Center Hình 2.5: Tab Timer -Tab Analog Li t kê các l a ch n cho b chuy n ñ i tương t /s (ADC) c a PIC. Tùy vào t ng IC c th mà có các l a ch n khác nhau, bao g m: - L a ch n c ng vào tương t - Ch n chân ñi n áp l y m u (Vref) - Ch n ñ phân gi i: 8-bit = 0 ~ 255 hay 10-bit = 0~1023 - Ngu n xung ñ ng h cho b ADC (trong hay ngoài), t ñó mà ta có ñư c t c ñ l y m u, thư ng ta ch n là internal 2-6 us. -Khi không s d ng b ADC ta ch n none DKS GROUP 20 http://www.dks.edu.vn
Đồng bộ tài khoản