intTypePromotion=1

Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 2

Chia sẻ: Little Duck | Ngày: | Loại File: PDF | Số trang:13

0
236
lượt xem
108
download

Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 2

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Các chip vi điều khiển thuộc dòng PIC của hãng Microchip có lẽ không quá xa lạ. Với công nghệ RISC (Reduced Instruction Set Computer) nâng cao đáng kể tốc độ xử lý, khả năng chống nhiễu, khả năng mở rộng tốt, khả năng nạp lại trên 1000 lần, tập lệnh đơn giản, được hỗ trợ lập trình dưới dạng Macro và đa dạng về chủng loại, thì dòng PIC là một dòng vi điều khiển tốt nhất trong các ứng dụng tự động từ đơn giãn đến phức tạp nhất...

Chủ đề:
Lưu

Nội dung Text: Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 2

  1. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Phaàn II: LAÄP TRÌNH HÔÏP NGÖÕ CHO PIC16F84 II.1. Giôùi thieäu: Khaû naêng giao tieáp laø moät ñieàu raát quan troïng trong moïi lónh vöïc. Tuy nhieân, ñieàu ñoù chæ coù theå thöïc hieän ñöôïc khi hai beân giao tieáp bieát cuøng moät ngoân ngöõ. Vôùi quy taéc treân thì con ngöôøi vaø vi ñieàu khieån cuõng coù theå giao tieáp vôùi nhau. Ngoân ngöõ maø vi ñieàu khieån vaø con ngöôøi duøng ñeå giao tieáp goïi laø hôïp ngöõ. Teân “ Hôïp Ngöõ “ khoâng coù yù nghóa gì saâu xa, noù töông töï nhö teân caùc ngoân ngöõ khaùc nhö “ Tieáng Anh “ hay “ Tieáng Phaùp “. Noùi chính xaùc hôn thì hôïp ngöõ chæ laø giaûi phaùp trung gian, bôûi vì chöông trình vieát baèng hôïp ngöõ phaûi ñöôïc dòch sang maõ nhò phaân ñeå maø vi ñieàu khieån coù theå hieåu ñöôïc. Hôïp ngöõ vaø trình bieân dòch hôïp ngöõ laø hai khaùi nieäm khaùc nhau. Hôïp ngöõ laø ngoân ngöõ duøng ñeå vieát chöông trình cho vi ñieàu khieån, coøn trình bieân dòch hôïp ngöõ laø chöông trình treân maùy tính caù nhaân maø noù dòch chöông trình vieát baèng hôïp ngöõ sang maõ nhò phaân, chöông trình maø ñaõ ñöôïc dòch sang maõ nhò phaân thì ñöôïc goïi laø ngoân ngöõ maùy. II.1.1. Bieåu dieãn soá trong trình bieân dòch Trong hôïp ngöõ MPLAB, caùc soá coù theå bieåu dieãn döôùi daïng thaäp phaân, thaäp luïc phaân, hoaëc nhò phaân.. Chuùng ta seõ minh hoaï ñieàu naøy vôùi soá 240: .240 ;Decimal ;Thaäp luïc phaân 0xF0 ;nhò phaân B’11110000’ Soá thaäp phaân ñöôïc baét ñaàu baèng moät daáu chaám, soá thaäp luïc phaân ñöôïc baét ñaàu baèng 0x, vaø soá nhò phaân baét ñaàu baèng chöõ b vôùi daáu nhaùy ñôn. II.1.2. Caùc yeáu toá cuûa hôïp ngöõ: Caùc yeáu toá cuûa hôïp ngöõ goàm coù:  Nhaõn  Leänh  Toaùn töû  Caùc chæ daãn  -Lôøi chuù thích  Nhaõn: Nhaõn bieåu thò ñòa chæ cuûa leänh theo sau. Khi coù söï reõ nhaùnh ñeán leänh naøy, nhaõn ñöôïc duøng trong tröôøng toaùn haïng cuûa leänh reõ nhaùnh hoaëc nhaûy.  Maõ gôïi nhôù leänh: 19
  2. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Maõ gôïi nhôù leänh hoaëc chæ daãn cuûa trình hôïp ngöõ theo sau tröôøng nhaõn. Caùch thöùc maø chuùng ta vieát leänh ñöôïc goïi laø cuù phaùp. Trong ví duï sau, chuùng ta coù theå nhaän ra loãi trong khi vieát bôûi vì leänh movlp vaø gotto khoâng toàn taïi trong vi xöû lyù PIC16F84. Leänh vieát ñuùng: Movlw H’01FF’ Goto Start Leänh vieát sai: Movlp H’01FF’ Gotto Start  Toaùn haïng: Toaùn haïng theo sau maõ gôïi nhôù. Toaùn haïng chöùa ñòa chæ hoaëc döõ lieäu maø leänh seõ söû duïng. Noùi caùch khaùc, toaùn haïng laø nhaân toá cho leänh ñang thöïc thi. Chuùng thöôøng laø caùc thanh ghi, bieán hoaëc haèng.  Lôøi chuù thích: Lôøi chuù thích laø moät chuoãi kyù töï maø ngöôøi laäp trình vieát ñeå laøm cho chöông trình roõ raøng. Noù ñöôïc ñaët sau leänh vaø ñöôïc baét ñaàu baèng daáu chaám phaåy(;).  Chæ daãn: Lôøi chæ daãn thì töông töï nhö moät leänh, nhöng noù khoâng gioáng nhö moät leänh maø noù phuï thuoäc vaøo kieåu vi ñieàu khieån, vaø noù bieåu dieãn ñaëc tính cuûa hôïp ngöõ. Lôøi chæ daãn luoân luoân ñöôïc cho yù nghóa thoâng qua bieán vaø thanh ghi. Ví duï nhö LEVEL coù theå laø söï chæ ñònh cho bieán trong RAM ôû taïi ñòa chæ 0Dh. Baèng caùch naøy, bieán ôû taïi ñòa chæ ñoù coù theå ñöôïc truy xuaát thoâng qua lôøi chæ daãn LEVEL. Ñieàu naøy seõ deã hôn cho ngöôøi laäp trình khi phaûi nhôù ñòa chæ 0Dh chöùa ñöïng thoâng tin LEVEL. II.2. Taäp leänh cuûa PIC: Taäp leänh cuûa PIC ñöôïc xaây döïng treân cô sôû ngoân ngöõ Assemble. Tuy nhieân ñeå ngöôøi duøng deã daøng tieáp caän vaø giuùp cho quaù trình laäp trình trôû neân ñôn giaûn hôn, taäp leäch cuûa PIC ñöôïc toái thieåu hoaù coøn 35 leänh. Nhöng khoâng vì ít leäch hôn taäp leänh cuûa caùc hoï vi ñieàu khieån khaùc maø khaû naêng öùng duïng cuûa PIC bò haïn cheá. Theo nhö nhaø saûn xuaát Microchip thì taäp leänh cuûa PIC coù theå ñaùp öùng ñöôïc taát caû caùc öùng duïng maø caùc hoï vi ñieàu khieån khaùc coù theå laøm ñöôïc. Vaø thöïcï teá cho thaáy trong quaù trình laäp trình cho PIC baïn seõ thaáy vieäc laäp trình seõ raát deã daøng hôn caùc hoï vi ñieàu khieån khaùc vaø chöa thaáy moät haïn cheá veà giaûi thuaät naøo gaây ra töø taäp leänh. Beân caïnh ñoù, vôùi söï hoã trôï cuûa laäp trình döôùi daïng Macro, vieäc laäp trình trôû neân nheï nhaøng hôn vaø khaû naêng môû roäng öùng duïng laø raát lôùn. Sau ñaây seõ lieät keâ caùc leänh cuûa hoï PIC Movlw  Daïng leänh: Movlw K Hoaït ñoäng: 20
  3. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Ghi haèng soá K vaøo thanh ghi W Giaù trò cuûa K töø 0 ñeán 255 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 2 Movwf  Daïng leänh: Movwf f Hoaït ñoäng: Noäi dung cuûa thanh ghi W ñöôïc cheùp sang thanh ghi F Giaù trò cuûa f töø 0 ñeán 127 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 2 Movf  Daïng leänh: Movf f, d Hoaït ñoäng: Noäi dung cuûa thanh ghi f ñöôïc löu tröõ vaøo thanh ghi d Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 Clrw  Daïng leänh: Clrw Hoaït ñoäng: Xoaù thanh ghi W Taùc ñoäng leân côø :Z Soá chu kyø: 1 Soá byte: 2 Clrf  Daïng leänh: Clrf f Hoaït ñoäng: Xoaù thanh ghi f Thanh ghi f coù giaù trò töø 0 ñeán 127 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 Swapf  Daïng leänh: Swapf f, d Hoaït ñoäng: Nibbles thaáp vaø nibbles cao cuûa thanh ghi f ñöôïc hoaùn ñoåi vò trí cho nhau. 21
  4. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 2 Addlw  Daïng leänh: Addlw K Hoaït ñoäng: Noäi dung cuûa thanh ghi W ñöôïc coäng vôùi haèng soá taùm bit K, keát quaû löu vaøo thanh ghi W Taùc ñoäng leân côø:C,DC,Z Soá chu kyø:1 Soá byte: 2 Addwf  Daïng leänh: Addwf f,d Hoaït ñoäng: (W) + (f) => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø: C,DC,Z Soá chu kyø:1 Soá byte: 2 Sublw  Daïng leänh: Sublw K Hoaït ñoäng: K-(W) => W Haèng soá K coù giaù trò töù 0 ñeán 255 Taùc ñoäng leân côø:C,DC,Z Soá chu kyø:1 Soá byte: 2 Subwf  Daïng leänh: Subwf f,d Hoaït ñoäng: (F) –(w) => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø:C,DC,Z 22
  5. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Soá chu kyø:1 Soá byte: 2 Andlw  Daïng leänh: Andlw K Hoaït ñoäng: (W) and k => W Haèng soá K coù giaù trò töù 0 ñeán 255 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 Andwf  Daïng leänh: Andwf f,d Hoaït ñoäng: (W) and F => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 Iorlw  Daïng leänh: IORLW Hoaït ñoäng: Haèng soá K coù giaù trò töù 0 ñeán 255 Hoaït ñoäng cuûa leänh:(W) OR (K) => W Haèng soá K coù giaù trò töù 0 ñeán 255 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 IORWF  Daïng leänh: IORWF f,d Hoaït ñoäng: (W) OR (F) => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 23
  6. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 XORLW  Daïng leänh: XORLW K Hoaït ñoäng: Haèng soá K coù giaù trò töù 0 ñeán 255 Hoaït ñoäng cuûa leänh:(W) XOR (K) => W Haèng soá K coù giaù trò töù 0 ñeán 255 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 XORWF  Daïng leänh: XORWF f,d Hoaït ñoäng: (W) XOR (F) => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 INCF  Daïng leänh: INCF f,d Hoaït ñoäng: (F) + 1 => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :Z Soá chu kyø:1 Soá byte: 2 DECF  Daïng leänh: DECF f,d Hoaït ñoäng: (F) - 1 => d Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :Z Soá chu kyø:1 24
  7. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Soá byte: 2 RLF  Daïng leänh: RLF f,d Hoaït ñoäng: Dich thanh ghi F sang trai 1 bit thoâng qua côø c. Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :C Soá chu kyø:1 Soá byte: 2 RRF  Daïng leänh: RRF f,d Hoaït ñoäng: Dich thanh ghi F sang phaûi 1 bit thoâng qua côø C. Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :C Soá chu kyø:1 Soá byte: 2 COMF  Daïng leänh: COMF f,d Hoaït ñoäng: Laáy buø noäi dung cuûa thanh ghi F. Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi W Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi F Giaù trò cuûa thanh ghi F töø 0 ñeán 127 Taùc ñoäng leân côø :C Soá chu kyø:1 Soá byte: 2 BCF  Daïng leänh: BCF f,b Hoaït ñoäng: Xoaù bit b cuûa thanh ghi f veà 0. Giaù trò cuûa thanh ghi f töø 0 ñeán 127 Giaù trò cuûa b töø 0 ñeán 7 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 2 25
  8. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 BSF  Daïng leänh: BCF f,b Hoaït ñoäng: Set bit b cuûa thanh ghi f leân 1. Giaù trò cuûa thanh ghi f töø 0 ñeán 127 Giaù trò cuûa b töø 0 ñeán 7 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 2 BTFSC  Daïng leänh: BTFSC f,b Hoaït ñoäng: - Neáu bit b trong thanh ghi f baèng 0,con troû chöông trình seõ nhaûy ñeán leänh keá tieáp. INCFSZ  Daïng leänh: INCFSZ f,d Hoaït ñoäng: Neáu d = 0 keát quaû ñöôïc löu vaøo thanh ghi w Neáu d = 1 keát quaû ñöôïc löu vaøo thanh ghi f Hoaït ñoäng cuûa leänh:(f) + 1 => d Giaù trò cuûa thanh ghi f töø 0 ñeán 127 GOTO  Daïng leänh: GOTO K Hoaït ñoäng: Nhaûy voâ ñieàu kieän ñeán ñòa chæ K. Giaù trò cuûa K töø 0 ñeán 2048 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 4 CALL  Daïng leänh: CALL K Hoaït ñoäng: Goïi chöông trình con Giaù trò cuûa K töø 0 ñeán 2048 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 4 RETURN  Daïng leänh: RETURN 26
  9. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Hoaït ñoäng: Laáy noäi dung töø ñænh cuûa ngaên xeáp löu vaøo boä ñeám chöông trình. Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 4 RETLW  Daïng leänh: RETLW K Hoaït ñoäng: (K) =>w ; TOS => PC Giaù trò cuûa thanh ghi F töø 0 ñeán 255 Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 4 RETFIE  Daïng leänh: RETFIE Hoaït ñoäng: TOS =>PC;1=>GIE Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 4 NOP  Daïng leänh: NOP Hoaït ñoäng: Khoâng laøm gì caû. Khoâng taùc ñoäng leân côø Soá chu kyø:1 Soá byte: 4 CLRW DT  Daïng leänh: CLRWDT Hoaït ñoäng: 0=> WDT 0=>WDT prescaler 1=> TO 1=>PD Taùc ñoäng leân côø:TO,PD Soá chu kyø:1 Soá byte: 2 SLEEP  Daïng leänh: SLEEP 27
  10. Phaàn II: Laäp trình hôïp ngöõ cho PIC16F84 Hoaït ñoäng: Cheá ñoä döøng. 28
  11. Phaàn IV: öùng duïng Phaàn III: PHÖÔNG PHAÙP NAÏP CHIP III.1. Giôùi thieäu phaàn meàm MPLAB MBLAP laø phaàn meàm ñöôïc nhaø saûn xuaát_Microchip cung caáp giuùp ngöôøi duøng laäp trình cho PIC baèng ngoân ngöõ Assemble cuûa noù. Phaàn meàm hoã trôï ñaày ñuû caùc modul tieän ích giuùp cho vieäc laäp trình vaø naïp vaøo chip. Caùc modul cuûa phaàn meàm goàm:  Project: hoã trôï coâng cuï quaûn lyù 1 Project. Goàm caùc phaàn:  Quaûn lyù project  Workspace: hoã trôï soaïn thaûo leänh  Build: Dòch taäp tin.Asm sang maõ maùy.Hex  Debugger: Moâ phoûng vaø söûa loãi  Programmer: hoã trôï phaàn meàm naïp chip vôùi caùc maïch naïp chuaån:  PICSTART Plus  MPLAB MP3  MPLAB ICD2  PRO MATE 2 III.2. Phaàn meàm naïp chip IC – PROG: Trong caùc öùng duïng naøy, phaàn meàm ñöôïc duøng ñeå naïp cho chip PIC16F84 laø phaàn meàm IC-Prog. Ñaây laø phaàn meàm hoã trôï naïp chip vi ñieàu khieån khaù nhoû goïn nhöng raát hieäu quaû. Icprog khoâng chæ hoã trôï naïp taát caû caùc chip vi ñieàu khieån thuoäc doøng PIC maø coøn hoã trôï caùc hoï khaùc nhö: 59Cxx, 24Cxx, 93Cxx, BR, CXK… Moãi loaïi vi ñieàu khieån ñeàu ñöôïc phaàn meàm hoå trôï maïch naïp maø chuùng ta coù theå tham khaûo taïi trang web: http\\www.Icprog.Com Moät ñaëc ñieåm raát hay vaø tieän lôïi cuûa chöông trình laø noù coù khaû naêng dòch ngöôïc taäp tin maõ maùy.Hex veà daïng maõ gôïi nhôù .Asm khaù chính xaùc. Ñieàu ñoù giuùp cho ngöôøi laäp trình coù theå kieåm tra vaø söûa loãi ngay khi naïp hay duøng laïi maõ leänh ñaõ ñöôïc löu treân chip dó nhieân vôùi ñieàu kieän laø maõ nguoàn môû (CP off_code protection) 29
  12. Phaàn IV: öùng duïng Hình III-1: Chöông trình naïp chip ICProg Trong caùc öùng duïng ôû ñaây, maïch hoã trôï ñöôïc duøng laø maïch JDM. III.3. Mach naïp JDM JDM ñöôïc thieát keá theo phöông phaùp chuaån naïp cho PIC16F84 (PIC16F84A) vaø PIC16C84 ñöôïc nhaø saûn xuaát Mircochip höôùng daãn. Maïch naïp khaù ñôn giaûn ñöôïc trình baøy trong hình sau: 30
  13. Phaàn IV: öùng duïng Maïch treân ñöôïc thieát keá theo chuaån COM 25 chaân. Chuùng ta coù theå chuyeån ñoåi töông ñöông caùc chaân töông öùng sang chuaån COM 9 chaân theo baûng sau: Baûng III-1: Chuyeån ñoåi töông öùng Com25 vaø Com9 Chöùc naêng Chaân (25 Chaân (9 chaân) Teân goïi chaân) 2 3 Txd Truyeàn döõ lieäu Yeâu caàu gôûi. Boä truyeàn ñaït 4 7 RTS ñöôïc naøy leân cao khi saün saøng truyeàn döõ lieäu. Xoaù ñeå gôûi. Boä gôûi ñaët ñöôøng naøy leân möùc cao ñeå thoâng baùo 5 8 CTS cho boä truyeàn laø noù saün saøng nhaän döõ lieäu. 7 5 SG Ñaát cuûa tín hieäu Ñaàu cuoái döõ lieäu saün saøng. Hoaït ñoäng gioáng nhö RTS nhöng 20 4 DTR ñöôïc kích hoaït bôûi boä nhaän khi muoán truyeàn döõ lieäu. Döïa treân maïch nguyeân lyù JDM do Icpro cung caáp chuùng em ñaõ töï laøm maïch naïp cho PIC16F84. Sô ñoà maïch in ñöôïc giôùi thieäu trong hình sau: 31
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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