intTypePromotion=1

NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 1

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

0
202
lượt xem
90
download

NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 1

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

Tham khảo tài liệu 'nghiên cứu vi điều khiển pic16f84 - phần 1', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 1

  1. LÔØI CAÛM ÔN PIC laø moät doøng vi ñieàu khieån khaù môùi meû ôû nöôùc ta. Laàn ñaàu tieân chuùng em tieáp xuùc vôùi noù do ñoù vieäc tìm hieåu noù gaëp raát nhieàu khoù khaên. Tuy nhieân nhôø söï giuùp ñôõ nhieät tình cuûa giaùo vieân höôùng daãn_thaày Voõ Töôøng Quaân cuøng vôùi söï hoã trôï nhieät tình cuûa caùc baïn trong lôùp, chuùng em ñaõ hoaøn thaønh toát ñoà aùn naøy. Chuùng em xin chaân thaønh caûm ôn Thaày vaø caùc baïn. Laàn ñaàu tieân tìm hieåu veà doøng PIC neân chaén khoâng traùnh khoûi nhöõng thieáu soùt, chuùng em mong seõ nhaän ñöôïc nhöõng höôùng daãn quyù baùu cuûa caùc Thaày trong Boä moân vaø caùc yù kieán ñoùng goùp cuûa caùc baïn ñeå coù theå tieáp tuïc tìm hieåu sau hôn veà doøng vi ñieàu khieån PIC. 1
  2. LÔØI GIÔÙI THIEÄU Ngaøy nay, vôùi toác ñoä phaùt trieån maïnh meõ cuûa coâng ngheä töï ñoäng trong taát caû moïi lónh vöïc thì vieäc tìm hieåu vaø öùng duïng caùc doøng chip Vi ñieàu khieån laø moät vaán ñeà caàn ñöôïc quan taâm. Hoï Vi ñieàu khieån 8051 raát quen thuoäc vôùi chuùng ta, vaø noù töøng ñöôïc xem laø hoï vi ñieàu khieån raát öu vieät. Tuy nhieân vôùi nhu caàu ngaøy caøng cao veà tính oån ñònh, toác ñoä xöû lyù cuõng nhö khaû naêng tieáp caän deã daøng cuûa ngöôøi duøng, thì hoï 8051 ñaõ khoâng phaùt huy ñöôïc öu theá cuûa mình. Caùc chip vi ñieàu khieån thuoäc doøng PIC cuûa haõng ® Microchip coù leõ khoâng quaù xa laï. Vôùi coâng ngheä RISC (Reduced   Instruction   Set   Computer)  naâng cao ñaùng keå toác ñoä xöû lyù, khaû naêng choáng nhieãu, khaû naêng môû roäng toát, khaû naêng naïp laïi treân 1000 laàn, taäp leänh ñôn giaûn, ñöôïc hoã trôï laäp trình döôùi daïng Macro vaø ña daïng veà chuûng loaïi, thì doøng PIC laø moät doøng vi ñieàu khieån toát nhaát trong caùc öùng duïng töï ñoäng töø ñôn giaõn ñeán phöùc taïp nhaát. Tuy nhieân ñeán giôø noù coøn khaù môùi meû vaø vaãn chöa ñöôïc öùng duïng roäng raõi. Vì theá vieäc tìm hieåu doøng vi ñieàu khieån naøy laø moät nhu caàu thöïc teá vaø noù höùa heïn mang laïi nhieàu hieäu quaû thieát thöïc phuïc vuï cho coâng ngheä töï ñoäng. PIC16F84 laø moät tieâu bieåu, coù theå ñöôïc coi laø chip vi ñieàu khieån ñôn giaûn nhaát cuûa doøngï PIC. Vôùi 2 Port, 18 chaân vaø ñaày ñuû caùc tính chaát öu vieät cuûa doøng PIC, PIC16F84 phuø hôïp vôùi caùc öùng duïng vöøa vaø nhoû, nhaát laø caùc thí nghieäm phuïc vuï hoïc taäp, nghieân cöùu. Chuùng em mong raèng vôùi ñoà aùn “PIC16F84 vaø moät soá öùng duïng” seõ laø böôùc khôûi ñaàu môû ra caùi nhìn gaàn guõi hôn veà doøng PIC ñeå töø ñoù chuùng ta coù theâm moät coâng cuï ñaéc löïc trong ñieàu khieån töï ñoäng. 2
  3. GIÔÙI THIEÄU VEÀ PIC16F84 Toång quan: Caáu truùc PIC16F84 thuoäc vi ñieàu khieån 8 bit coù caáu truùc RISC( Reduce Instruction Set Computer). Caáu truùc toång quaùt cuûa noù ñöôïc bieåu dieãn döôùi daïng caùc khoái sau : Hình Error! No text of specified style in document.-1: Sô ñoà khoái PIC Boä nhôù chöông trình (Program memory) : Duøng ñeå chöùa chöông trình naïp. Vì ñöôïc cheá taïo baèng coâng ngheä FLASH neân boä nhôù naøy coù theå ñöôïc laäp trình hay xoaù nhieàu laàn.Öu ñieåm naøy khieán cho con vi ñieàu khieån naøy thích hôïp cho vieäc xaây döïng caùc öùng duïng ñieàu khieån. EPPROM: Ñaây laø boä nhôù ñeå löu tröõ döõ lieäu khi khoâng caáp nguoàn. Thoâng thöôøng noù ñöôïc duøng ñeå chöùa döõ lieäu quan troïng khoâng theå maát neáu chaúng may nguoàn caáp bò maát ñoät ngoät. RAM: Boä nhôù döõ lieäu ñöôïc söû duïng cho trong suoát quaù trình thöïc thi chöông trình trong vi ñieàu khieån. PORTA vaø PORTB: laø caùc ngoõ keát noái vaät lyù giöõa vi ñieàu khieån vôùi caùc phaàn cöùng beân ngoaøi. PORTA coù 5 chaân giao tieáp trong khi PORTB coù ñeán 8 chaân. 3
  4. FREE- RUN TIMER: Ñaây laø moät thanh ghi 8 bit ôû beân trong vi ñieàu khieån, noù hoaït ñoäng ñoäc laäp vôùi chöông trình. Cöù moãi boán xung nhòp cuûa boä dao ñoäng thì giaù trò cuûa noù taêng leân moät cho ñeán khi ñaït ñeán giaù trò toái ña laø 255, vaø sau ñoù noù laïi baét ñaàu ñeám töø 0. Neáu nhö chuùng ta bieát ñöôïc chính xaùc thôøi giöõa hai laàn taêng cuûa noäi dung thanh ghi Timer, thì khi ñoù noù seõ ñöôïc duøng ñeå ñònh thôøi gian, moät ñaëc ñieåm heát söùc höõu ích vaø ñöôïc öùng duïng raát nhieàu trong thöïc teá. CPU(Central Processing Unit ): Ñoùng vai troø then choát trong vieäc keát noái caùc thaønh phaàn trong vi ñieàu khieån vôùi nhau, ñöôïc so saùnh gioáng nhö boä naõo con ngöôøi. Noù lieân keát caùc hoaït ñoäng cuûa caùc khoái trong vi ñieàu khieån vaø thöïc thi chöông trình. RISC Ngay phaàn ñaàu chuùng ta coù noùi raèng PIC16F84 coù caáu truùc RISC, vaäy RISC coù nghóa laø gì? Ñeå coù theå thaáy ñöôïc öu ñieåm cuûa vi ñieàu khieån naøy, chuùng ta seõ ñi vaøo tìm hieåu khaùi nieäm veà caáu truùc RISC thoâng qua vieäc so saùnh hai moâ hình khoái caáu truùc Von - Neuman vaø caáu truùc Harvards. Hình Error! No text of specified style in document.-2: Caáu truùc Havard vaø Von - Neumann Nhö ta ñaõ bieát, caáu truùc vi ñieàu khieån cuûa Von Neuman la moät caáu truùc coå ñieån vaø ñöôïc öùng duïng phoå bieán.ÔÛ caáu truùc naøy, bus döõ lieäu vaø ñòa chæ ñöôïc truy xuaát treân cuøng moät ñöôøng, do ñoù noù phaàn naøo aûnh höôûng ñeán toác ñoä thöïc thi cuûa vi ñieàu khieån. Khoâng gioáng nhö caáu truùc Von Neuman, caáu truùc Harvards taùch rieâng bus döõ lieäu vôùi bus ñòa chæ. Chính ñieàu naøy ñaõ taêng toác ñoä xöû lyù cuûa vi ñieàu khieån leân moät caùch ñaùng 4
  5. keå. Caùc vi ñieàu khieån coù caáu truùc phaàn cöùng kieåu Harvards thì ñöôïc goïi laø vi ñieàu khieån RISC. RISC laø vieát taét cuûa thuaät ngöõ “Reduce Instruction Set Computer”. Bôûi vì PIC16f84 coù caáu truùc RISC neân noù coù taäp leänh ñöôïc tinh giaûm, cuï theå laø 35 leänh. Taát caû caùc leänh naøy ñeàu ñöôïc thöïc thi trong moät chu kyø maùy,tröø caùc leänh nhaûy vaø reõ nhaùnh. Sô ñoà chaân PIC16F84 coù toång coäng 18 chaân, teân goïi vaø chöùc naêng töøng chaân nhö sau: Hình Error! No text of specified style in document.-3: Hình daùng beân ngoaøi PIC16f84 • Chaân1: RA2, chaân thöù hai cuûa port A • Chaân 2: RA3, chaân thöù ba cuûa port A • Chaân 3: RA4, chaân thöù tö cuûa port A. Ngoaøi ra, chaân naøy coù coù chöùc naêng laø moät boä ñònh thôøi( TOCK1) • Chaân 4: MCLR ngoõ reset vaø caáp aùp laäp trình cho vi ñieàu khieån. • Chaân 5: Vss chaân noái ñaát cuûa nguoàn. • Chaân 6: RB0, chaân soá 0 cuûa port B. Ngoaøi ra noù coøn laø ngoõ vaøo cuûa ngaét. • Chaân 7: RB1, chaân soá 1 cuûa port B. • Chaân 8: RB2, chaân soá 2 cuûa port B. • Chaân 9: RB3, chaân soá 3 cuûa port B. • Chaân 10: RB4, chaân soá 4 cuûa port B. • Chaân 11: RB5, chaân soá 5 cuûa port B. • Chaân 12: RB6, chaân soá 6 cuûa port B. 5
  6. • Chaân 13:RB7, chaân soá 7 cuûa port B. • Chaân 14: Vdd, chaân caáp nguoàn cho vi ñieàu khieån. • Chaân 15: OSC2,chaân noái vôùi boä dao ñoäng. • Chaân 16: OSC1, chaân noái vôùi boä dao ñoäng. • Chaân 17: RA2, chaân soá 2 cuûa port A. • Chaân 18: RA1, chaân soá 1 cuûa port A. Boä taïo xung Boä taïo xung duøng ñeå caáp xung cho vi ñieàu khieån hoaït ñoäng. PIC16F84 coù theå hoaït ñoäng vôùi boä taïo xung duøng thaïch anh vaø maïch dao ñoäng RC. ÔÛ ñaây chuùng ta chæ söû duïng thaïch anh, vì noù oån ñònh vaø ñôn giaûn. Hình Error! No text of specified style in document. -4: Maïch taïo xung duøng thaïch anh Reset Chöùc naêng Reset duøng ñeå khôûi taïo laïi cho ñieàu khieån veà ñieàu kieän ban ñaàu. Thöïc teá trong quaù trình hoaït ñoäng, coù nhöõng luùc vi ñieàu khieån hoaït ñoäng khoâng nhö mong muoán do bò taùc ñoäng bôûi moät taùc nhaân naøo ñoù, khi ñaáy ta seõ duøng chöùc naêng Reset ñeå khôûi taïo laïi chöùc naêng cho vi ñieàu khieån, ñöa caùc thanh ghi veà vò trí khôûi taïo ban ñaàu. Khoâng chæ coù theá, Reset coøn coù vai troø nhö moät ngaét ( Interupt ), giuùp thoaùt khoûi moät chöông trình moät caùch töùc thôøi. Caùc nhieàu caùch ( nguoàn ) ñeå Reset laïi vi ñieàu khieån, trong ñoù coù hai nguoàn quan troïng nhaát, ñoù laø Reset khi vöøa caáp nguoàn ( Power On Reset _ POR ), vaø Reset bôûi chaân MCLR. 6
  7. Boä xöû lyù trung taâm (CPU) CPU ñöôïc ví nhö laø boä naõo cuûa vi ñieàu khieån, noù ñaûm nhaän vai troø tìm kieám vaø giaûi maõ caùc caáu truùc leänh cho vi ñieàu khieån hoaït ñoäng. CPU gaén keát caùc thaønh phaàn cuûa vi ñieàu khieån thaønh moät khoái thoáng nhaát. Nhö ñaõ noùi ôû treân, chöùc naêng quan troïng nhaát cuûa noù chính laø giaûi maõ leänh. Khi ta vieát moät chöông trình, caùc caâu leänh thöôøng coù daïng gôïi nhôù nhö MOVLW 0x20. Theá nhöng ñeå cho vi ñieàu khieån hieåu ñöôïc, thì caâu leänh treân phaûi ñöôïc dòch thaønh moät chuoãi caùc soá 0 vaø 1, goïi laø maõ leänh ( opcode ). Vieäc dòch töø daïng chöõ sang thaønh maõ leänh ñöôïc thöïc hieän bôûi caùc trình bieân dòch, chaúng haïn nhö trình dòch hôïp ngöõ. Sau ñoù CPU seõ giaûi maõ vaø thöïc thi caùc leänh. Thanh ghi traïng thaùi status Hình Error! No text of specified style in document.-5: Thanh ghi traïng thaùi Bit 7_ IRP( Register bank Select bit ): laø bit thöù 8 cuûa thanh  ghi STATUS laøm nhieäm vuï ñònh ñòa chæ giaùn tieáp cho RAM noäi. IRP = 1: bank 2 vaø 3 IRP = 0 bank 1 vaø 0 ( töø ñòa chæ 00h ñeán FFh). Bit 6:5 _ RP1: RP0 ( Register Bank Select Bits ): Hai bit naøy duøng  ñeå choïn bank thanh ghi. 01 = Bank 1 00 = Bank 0 Bit 4 _TO (Time – out ): bit naøy ñöôïc set baèng 1 moãi khi WDT  bò traøn. 1 = Chöa traøn 0 = Bò traøn Bit 3_ PD ( Power – down bit ) bit naøy ñöôïc set moãi khi vi ñieàu  khieån ñöôïc caáp nguoàn, khi baét ñaàu chaïy, sau khi reset, vaø sau khi thöïc hieän leänh CLRWDT 7
  8. Bit 2_ Z ( Zero bit ) Duøng ñeå chæ keát quaû ra 0, ñöôïc set moãi  khi keát quaû traû veà cuûa moät pheùp toaùn soá hoïc hay luaän lyù coù giaù trò laø 0. Bit 1_ DC ( Digit Carry ) Bò aûnh höôûng bôûi caùc pheùp toaùn  coäng, tröø. Noù ñöôïc set khi ta tröø moät soá cho moät soá lôùn hôn.Vaø ñöôïc reset trong tröôøng hôïp ngöôïc laïi. Bit 0_ C (Carry )aûnh höôûng bôûi caùc leänh ADDWF, ADDLW,  SUBLW, SUBWF. Caùc port Port duøng ñeå chæ moät nhoùm caùc chaân treân vi ñieàu khieån coù theå truy xuaát ñoàng thôøi, hoaëc coù theå set moät bit mong muoán leân 1 hay xuoáng 0, hoaëc ñoïc töø chuùng traïng thaùi ñang toàn taïi. Veà maët vaät lyù, Port laø moät thanh ghi beân trong vi ñieàu khieån ñöôïc noái bôûi daây daãn vôùi caùc chaân cuûa vi ñieàu khieån. Noù ñaïi dieän cho söï keát noái vaät lyù giöõa boä xöû lyù trung taâm vôùi theá giôùi beân ngoaøi. Vi ñieàu khieån duøng chuùng ñeå hieån thò hay ñieàu khieån caùc caùc thaønh phaàn hay thieát bò khaùc. Tuyø theo chöùc naêng, maø moät vaøi chaân coù theå ñaûm nhieäm caû vai troø, chaúng haïn nhö chaân RA4/TOCKI, vöøa laø bi thöù 4 cuûa Port A, laïi vöøa laø ngoõ vaøo töø beân ngoaøi cho boä ñeám. Vieäc löïa choïn moät trong hai chöùc naêng naøy ñöôïc thöïc hieän qua vieäc thay ñoåi giaù trò cho caùc thanh ghi chuyeân duïng, chaúng haïn ôû ñaây laø bit thöù 5 TOSC trong thanh ghi OPTION. Khi ta choïn moät trong hai chöùc naêng thì chöùc naêng coøn laïi seõ khoâng hoaït ñoäng ñöôïc. Taát caû caùc chaân trong port ñeàu coù theå ñöôïc duøng nhö caùc ngoõ xuaát hay nhaäp, tuyø thuoäc vaøo yeâu caàu cuûa thieát bò caàn ñieàu khieån. Ñeå ñònh nghóa moät chaân laø xuaát hay laø nhaäp, thì ta söû duïng caùc thanh ghi TRIS ôû bank1. Neáu moät bit trong thanh ghi TRIS baèng 1, thì bit töông öùng vôùi vò trí ñoù trong port luùc naøy seõ laø ngoõ nhaäp, vaø ngöôïc laïi.Moãi moät port coù moät thanh ghi TRIS rieâng cho noù, port A öùng vôùi TRISA, port B öùng vôùi TRISB.Thanh ghi Port A vaø B naèm trong bank 0, trong khi TRISA vaø TRISB naèm trong bank1. PORTB vaø TRISB Port B goàm 8 chaân. Thanh ghi töông öùng cho vieäc xaùc ñònh chieàu döõ lieäu laø TRISB. 8
  9. Hình Error! No text of specified style in document.-6: Caáu truùc PORTB & TRISB Moãi chaân trong Port B ñeàu coù saün moät ñieän trôû keùo leân coù giaù trò nhoû ôû ngay beân trong (duøng ñeå noái ngoõ leân möùc logic 1 ) coù theå ñöôïc kích hoaït baèng caùch reset bit thöù 7 RBPU trong thanh ghi OPTION. Caùc ñieän trôû keùo leân naøy töï ñoäng taét khi caùc chaân cuûa port ñöôïc ñònh nghóa laø caùc ngoõ xuaát. Khi vi ñieàu khieån baét ñaàu hoaït ñoäng, caùc ñieän trôû naøy khoâng ñöôïc kích hoaït. Caùc chaân töø RB4 ñeán RB7 cuûa port B coù theå gaây ra ngaét khi traïng thaùi cuûa noù thay ñoåi töø möùc 0 leân möùc 1 vaø ngöôïc laïi. Chæ coù nhöõng chaân naøo ñöôïc ñònh nghóa laø ngoõ nhaäp môùi coù theå gaây ra ngaét ñöôïc. PORTA vaø TRISA Port A coù 5 chaân xuaát nhaäp, thanh ghi töông öùng cuûa noù laø TRISA coù ñòa chæ 85h. Cuõng gioáng nhö port B, vieäc set moät bit trong thanh ghi TRISA seõ ñònh nghóa bit töông öùng trong port A laø xuaát hay laø nhaäp. 9
  10. Moät ñieàu quan troïng caàn chuù yù laø chaân RA4 cuûa port A chæ coù theå döøng ñeå nhaäp maø thoâi. Noù cuõng duøng ñeå nhaäp töø ngoaøi cho boä ñònh thôøi TMR0. Hình Error! No text of specified style in document.-7: Caáu truùc PORTA & TRISA Toå chöùc boä nhôù PIC16F84 coù hai khoái boä nhôù phaân caùch nhau, moät cho döõ lieäu vaø caùi coøn laïi cho chöông trình. Boä nhôù EPPROM vôùi caùc thanh ghi GPR vaø SFR trong boä nhôù RAM seõ quaûn lyù khoái döõ lieäu, coøn boä nhôù FLASH quaûn lyù khoái chöông trình. Boä nhôù chöông trình Boä nhôù chöông trình ñöôïc cheá taïo baèng coâng ngheä FLASH, noù cho pheùp laäp trình cho vi ñieàu khieån ñöôïc nhieàu laàn tröôùc khi noù ñöôïc laép ñaët vaøo thieát bò, hoaëc ngay caùc sau khi noù ñöôïc laép ñaët maø coù moät söï coá naøo ñoù xaûy ra. Dung löôïng cuûa boä nhôù chöông trình naøy laø 1024 doøng leänh vôùi ñoä daøi 14 bit, trong ñoù caùc vò trí töø 0h ñeán 4h ñöôïc duøng cho caùc vector reset vaø ngaét. Boä nhôù döõ lieäu Boä nhôù döõ lieäu bao goàm boä nhôù RAM vaø EPPROM. Boä nhôù EPPROM bao goàm 64 byte, noäi dung cuûa noù khoâng bò maát 10
  11. ñi neáu lôõ nhö maát nguoàn. EPPROM khoâng ñöôïc ñònh ñòa chæ tröïc tieáp, maø ñöôïc truy xuaát giaùn tieáp thoâng qua 2 thanh ghi laø EEADR vaø EEDATA. Bôûi vì boä nhôù EPPROM ñöôïc duøng cho vieäc löu tröõ nhöõng thoâng soá quan troïng, cho neân ngöôøi laäp trình caàn phaûi tuaân theo moät soá quy taéc ñeå traùnh maéc loãi trong luùc vieát. Boä nhôù Ram coù ñòa chæ töø 0x0C ñeán 0x4F, bao goàm 68 oá nhôù 8 bit. Vieäc xaùc ñònh vò trí cuûa RAM cuõng ñöôïc thöïc hieän thoâng qua thanh ghi GPR Caùc thanh ghi SFR Ñaây laø caùc thanh ghi coù chöùc naêng ñaëc bieät, chieám 12 oâ nhôù ñaàu tieân trong caùc bank 0 vaø bank 1. 11
  12. Hình Error! No text of specified style in document.-8: Toå chöùc boä nhôù PIC16F84 Boä ñeám chöông trình Boä ñeám chöông trình (PC ) laø moät thanh ghi 13 bit, noù chöùa ñòa chæ cuûa caùc leänh caàn thöïc thi. Noù ñöôïc xaùc ñònh 12
  13. baèng caùch keát hôïp cuûa thanh ghi 5 bit PCLATCH cho 5 bit cao caû ñòa chæ vôùi thanh ghi 8 bit PCL cho 8 bit thaáp cuûa ñòa chæ. Baèng caùch taêng daàn noäi dung cuûa PC, vi ñieàu khieån seõ töøng böôùc thöïc hieän caùc leänh coù trong chöông trình. Laäp trình cho vi ñieàu khieån Ñeå laäp trình vaøo boä nhôù chöông trình,vi ñieàu khieån phaûi ñöôïc set ôû cheá ñoä laøm vieäc ñaëc bieät, cuï theå khi ñoù chaân MCLR seõ ñöôïc noái vôùi aùp 13,5V, vaø nguoàn cung caáp phaûi oån ñònh. Boä nhôù chöông trình coù theå ñöôïc laäp trình noái tieáp söû duïng 2 chaân “ data / clock “. Caùc kieåu ñònh ñòa chæ Ñòa chæ oâ nhôù trong RAM coù theå ñöôïc truy xuaát baèng hai caùch: _Ñònh ñòa chæ tröïc tieáp. _Ñònh ñòa chæ giaùn tieáp. Caùc cô cheá ngaét Ngaét laø moät ñaëc tính cuûa vi ñieàu khieån maø cho pheùp noù ñaùp öùng ñöôïc vôùi nhöõng söï kieän taïi luùc noù xaûy ra, vaø xaùc ñònh xem vi ñieàu khieån seõ laøm gì tieáp theo sau ñoù. Ñaây laø moät chöùc naêng voâ cuøng quan troïng, bôûi vì noù taïo neân söï gaén keát giöõa vi ñieàu khieån vôùi theá giôùi xung quanh noù. Thoâng thöôøng thì ngaét seõ laøm ngöng chöông trình ñang thöïc hieän, coøn goïi laø chöông trình neàn, vaø thöïc hieän tieáp chöông trình ngaét töông öùng vôùi nguyeân nhaân gaây ra ngaét. Hình Error! No text of specified style in document.-9: Caáu truùc ngaét 13
  14. Thanh ghi ñieàu khieån ngaét (INTCON ) Thanh ghi ñieàu khieån ngaét (INTCON) ñöôïc truy xuaát baèng caùch choïn bank töông öùng. Noù coù chöùc naêng cho pheùp hay laø caám xaûy ra ngaét, vaø xaùc ñònh caùc nguyeân nhaân ngaét. Hình Error! No text of specified style in document.-10: Thanh ghi ñieàu khieån ngaét Bit 7_ GIE ( Global Interupt Enable bit ): Ñaây laø bit cho pheùp  hay khoâng cho pheùp ngaét. Neáu GIE = 1: Caùc ngaét ñöôïc cho pheùp. Neáu GIE = 0: Caùc ngaét bò caám. Bit 6 EEIE ( EPPROM Write Complete Interupt Enable bit ): Bit cho  pheùp ngaét gaây ra taïi nôi keát thuùc cuûa vieäc vieát chöông trình con vaøo EPPROM. Bit 5 TOIE ( TMR0 Overflow Interupt Enable bit ): Bit cho pheùp  kích hoaït ngaét gaây ra bôûi söï traøn cuûa TMR0. Bit 4 INTE( INT External Interupt Enable bit ): Bit cho pheùp ngaét  gaây ra bôûi ngaét ngoaøi taït chaân RB0/INT. Bit 3 RBIE ( RB port change Interupt Enable bit ) Cho pheùp ngaét  xaûy ra khi coù söï thay ñoåi traïng thaùi treân caùc chaân RB4 ñeán RB7. Bit 2 TOIF ( TMR0 Overflow Interupt Flag bit ): Côø baùo traøn  cuûa TMR0. Bit naøy phaûi ñöôïc xoaù baèng phaàn meàm ñeå coù theå söû duïng ngaét naøy tieáp theo. Bit 1 INTF ( INT External Interupt Flag bit ): Côø baùo khi xaûy ra  ngaét ngoaøi. Bit 0 RBIF ( RB Port Change Interupt Flag bit ): Bit xaùc ñònh söï  thay ñoåi treân caùc chaân töø RB4 ñeán RB7. Nit naøy cuõng caàn phaûi ñöôïc xoaù trong chöông trình con ngaét ñeå coù theå ñaùp öùng caùc ngaét tieáp theo xaûy ra sau ñoù. 14
  15. Ngaét ngoaøi treân chaân RB0/INT cuûa vi ñieàu khieån  Ngaét ngoaøi xaûy ra treân chaân RB0/INT  Ñöôïc kích hoaït bôûi tín hieäu caïnh leân ( neáu bit INTEDG = 1 trong thanh ghi OPTION ) hoaëc bôûi tín hieäu caïnh xuoáng ( neáu INTEDG = 0 ). Khi coù tín hieäu xuaát hi65n treân chaân INT, bit INTF seõ ñöôïc set trong thanh ghi INTCON. Bit naøy phaûi ñöôïc xoaù ñi trong chöông trình phuïc vuï ngaét ñeå ngaét khoâng xaûy ra nöõa khi quay laïi chöông trình chính. Ngaét do söï traøn cuûa boä ñeám TMR0 Khi TMR0 bò traøn, noù seõ set bit TOIF leân 1. Ñaây laø moät chöùc naêng quan troïng, bôûi vì nhieàu vaán ñeà hoùc buùa trong thöïc teá coù theå ñöôïc giaûi quyeát khi söû duïng chöùc naêng naøy. Ngaét do cô cheá naøy coù theå ñöôïc cho pheùp hay caám baèng caùch set/ reset bit T0IE. Ngaét do söï thay ñoåi traïng thaùi treân caùc chaân  RB4:RB7. Söï thay ñoåi traïng thaùi treân caùc chaân RB4: RB7 seõ set bit RBIF (INTCON< 0 > ) leân 1, töø ñoù kích hoaït ngaét xaûy ra.Ñeå cho caùc chaân naøy nhaän ñöôïc söï thay ñoåi traïng thaùi cuûa tín hieäu, thì chuùng phaûi ñöôïc ñònh nghóa laø caùc ngoõ nhaäp. Neáu moät trong chuùng ñöôïc ñònh nghóa laø ngoõ xuaát, thì ngaét seõ khoâng xaûy ra ñöôïc. Neáu nhö ta ñònh nghóa taát caû chuùng ñeàu laø ngoõ xuaát, thì traïng thaùi hieän thôøi cuûa chuùng seõ ñöôïc so saùnh vôùi giaù trò cuõ maø ñöôïc löu ôû laàn ñoïc cuoái cuøng töø port B.  Khôûi taïo ngaét Ñeå coù theå ñöôïc chöùc naêng ngaét cuûa vi ñieàu khieån, thì ñaàu tieân ta phaûi thöïc hieän caùc leänh khôûi taïo ban ñaàu cho noù, baèng caùch xaùc ñònh caùc bit töông öùng trong thanh ghi ñieàu khieån ngaét INTCON. Timer TMR0 Timer thöôøng laø phaàn gaây khoù hieåu cuûa vi ñieàu khieån, theá nhöng neáu tìm hieåu kyõ caøng, ta seõ thaáy noù giuùp ích raát nhieàu trong coâng taùc laäp trình cho vi ñieàu khieån. Moät trong nhöõng öùng duïng cuûa noù laø thieát laäp moái quan heä giöõa moät ñaïi löôïng thöïc, chaúng haïn nhö thôøi gian vaø moät bieán soá maø bieåu thò traïng thaùi cuûa moät boä ñònh thôøi vôùi vi ñieàu khieån. Veà maët vaät lyù, timer laø moät thanh ghi 8 bit coù giaù trò taêng daàn töø 0 ñeán 255, vaø sau ñoù laïi tieáp tuïc ñeám leân töø 0. Söï taêng leân naøy ñöôïc thöïc hieän treân neàn cuûa caùc chöông 15
  16. trình ñang thöïc hieän cuûa vi ñieàu khieån. Noù ñöa ra cho ngöôøi söû duïng nhieàu giaûi phaùp höõu hieäu trong vieäc giaûi quyeát toái öu vaán ñeà, moät trong chuùng laø taêng moät bieán soá naøo ñoù leân taïi moãi thôøi ñieåm timer bò traøn. Nhö ñaõ noùi treân, PIC16F84 coù moät boä timer 8 bit, vaø nhö vaäy giaù trò toái ña maø timer ñeám laø 256 ( töø 0 ñeán 255 ). Sau moãi laàn timer ñeám ñeán 255, noù seõ töï reset giaù trò veà 0 vaø baét ñaàu ñeám laïi töø ñaàu. Taïi thôøi ñieåm timer chuyeån giaù trò töø 255 veà 0, bit T0IF trong thanh ghi INTCON seõ ñöôïc set leân 1. Neáu nhö caùc ngaét ñöôïc cho pheùp xaûy ra, thì con troû chöông trình seõ nhaûy ñeán chöông trình con phuïc vuï ngaét. Beân caïnh vieäc nhaän xung noäi, giaù trò cuûa timer cuõng coù theå taêng leân nhôø vaøo vieäc nhaän xung töø beân ngoaøi thoâng qua chaân RA4/ TOCKI, vaø khi ñoù timer hoaït ñoäng nhö moät boä ñeám. Thanh ghi OPTION Hình Error! No text of specified style in document.-11: Thanh ghi OPTION Bit 7 RBPU ( PORTB Pull up Enable bit )  Ñaây laø bit kích hoaït hay taét ñieän trôû noäi keùo leân coù trong caùc chaân cuûa port B. 1 = Kích hoaït 0 = Voâ hieäu Bit 6 INTEDG ( Interupt Edge Select bit )  Neáu söï kieän ngaét ñöôïc cho pheùp, bit naøy seõ xaùc ñònh xem ngaét xaûy ra khi coù söï thay ñoåi cuûa tín hieäu taïi caïnh leân hay caïnh xuoáng. 1 = Caïnh leân 0 = Caïnh xuoáng Bit 5_ T0CS( TMR0 Clock Source Select bit )  Bit naøy seõ xaùc ñònh xem boä ñònh thôøi seõ taêng taïi moãi ¼ xung kích cuûa boä dao ñoäng, hoaëc laø taêng daàn thoâng qua xung kích töø b6n ngoaøi thoâng qua chaân RA4/ T0CKI. 1 = Xung töø beân ngoaøi 16
  17. 0 = ¼ xung beân trong Bit 4 T0SE ( TMR0 Source Edge Select bit )  Neáu söû duïng TMR0 nhö laø moät boä ñeám xung beân ngoaøi thoâng qua chaân RA4 thì bit naøy seõ xaùc ñònh xem boä ñeám seõ taêng taïi caïnh leân hay caïnh xuoáng cuûa xung kích. 1 = Caïnh xuoáng 0 = Caïnh leân Bit 3 PSA ( Presscaler Assignment bit )  Bit naøy seõ xaùc ñònh tæ leä giöõa TMR0 vaø WDT. 1 = Tæ leä gaùn cho WDT. 0 = Tæ leä ñöôïc gaùn cho TMR0. Bit 0: 2 PS0, PS1, PS2 ( Presscaler Assignment bit )  Trong tröôøng hôïp söû duïng xung thaïch anh 4 MHz, thì moät chu kyø leänh toán 1us. Caùc bit PS0, PS1, PS2 seõ xaùc ñònh khoaûng thôøi gian giöõa moãi laàn taêng cuûa TMR0 hay WDT. Boä nhôù döõ lieäu EEPROM PIC16F84 coù moät boä nhôù döõ lieäu EPPROM vôùi dung löôïng 64 bytes coù ñòa chæ töø 00h ñeán 63h, coù theå ñöôïc ghi hay ñoïc. Ñaëc tính quan troïng nhaát cuûa noù chính laø döõ lieäu caát trong noù khoâng bò maát ñi khi bò maát nguoàn. Theo nhaø saûn xuaát thì döõ lieäu coù theå caát trong EPPROM seõ ñöôïc baûo toaøn ñeán 40 naêm. Boä nhôù EPPROM ñöôïc ñaët trong moät vuøng nhôù ñaëc bieät vaø coù theå ñöôïc truy xuaát thoâng qua caùc thanh ghi ñaëc bieät. Chuùng laø: 17
  18. EEDATA chöùa caùc döõ lieäu ñoïc vieát. EEADR chöùa ñòa chæ cuûa phaân vuøng EPPROM caàn truy xuaát. EECON1 chöùa caùc bit ñieàu khieån. EECON2 thanh ghi naøy khoâng toàn taïi veà maët vaät lyù, maø noù duøng ñeå baûo veä EPPROM khoûi nhöõng loãi laäp trình khoâng ñaùng coù. Thanh ghi EECON1 Hình Error! No text of specified style in document.-12: Thanh hi EECON1 Bit 4 EEIF (EEPROM Write Operation Interupt Flag bit)  Bit duøng ñeå baùo cho vi ñieàu khieån bieát quaù trình ghi döõ lieäu vaøo EPPROM ñaõ keát thuùc. Khi keát thuùc quaù trình ghi, thì bit naøy seõ töï ñoäng set leân 1. Ngöôøi laäp trình caàn phaûi xoaù bit naøy baêng phaàn meàm ñeå noù coù theå nhaän bieát ñöôïc moät söï keát thuùc cuûa vieäc ghi tieáp theo. 1 = Ghi keát thuùc 0 = Ghi chöa xong, hoaëc chöa baét ñaàu ghi Bit 3 WRERR (Write EPPROM Error Flag )  Baùo loãi neáu gaëp trong quaù trình ghi vaøo EPPROM. Bit naøy chæ ñöôïc set leân khi quaù trình ghi vaøo EPPROM bò ngaét bôûi moät tín hieäu reset hoaëc bò traøn WDT khi WDT ñöôïc kích hoaït. 1 = Coù loãi xaûy ra 0 = Khoâng coù loãi Bit 2 WREN ( EPPROM Write Enable bit ):  Bit cho pheùp ghi vaøo EPPROM. Neáu bit naøy khoâng ñöôïc set leân thì vi ñieàu khieån seõ khoâng cho pheùp ghi vaøo EPPROM. Bit 1 WR (Write Control bit ):  Vieäc set bit naøy leân seõ khôûi taïo vieäc ghi döõ lieäu töø thanh ghi EEDATA ñeán moät ñòa chæ cuï theå thoâng qua thanh ghi EEDR. 1 = Khôûi taïo ghi 18
  19. 0 = Khoâng khôûi taïo Bit 0 RD ( Read Control bit ):  Bit duøng ñeå ñieàu khieån vieäc khôûi taïo quaù trình chuyeån döõ lieäu töø moät ñòa chæ ñaõ ñöôïc ñònh nghóa trong EEDR ñeán thanh ghi EEDATA. 1 = Khôûi taïo 0 = Khoâng khôûi taïo 19
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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