intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Vu Son | Ngày: | Loại File: PDF | Số trang:35

1.405
lượt xem
622
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình Vi điều khiển PIC gồm 9 bài giới thiệu vi điều khiển PIC, giao tiếp vào ra IO, giao tiếp với led 7 thanh, giao tiếp với bàn phím, bộ chuyển đổi ADC,... Cùng tham khảo nhé.

Chủ đề:
Lưu

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

  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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2