Thiết bị ghi âm điện thọai ứng dụng vi điều khiển PIC

Tài liệu Thiết bị ghi âm điện thọai ứng dụng vi điều khiển PIC: ... Ebook Thiết bị ghi âm điện thọai ứng dụng vi điều khiển PIC

doc138 trang | Chia sẻ: huyen82 | Lượt xem: 1434 | Lượt tải: 1download
Tóm tắt tài liệu Thiết bị ghi âm điện thọai ứng dụng vi điều khiển PIC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MUÏC LUÏC Trang Lôøi noùi ñaàu 5 TOÙM TAÉT ÑEÀ TAØI 6 PHAÀN 1 : CÔ SÔÛ LYÙ THUYEÁT CHÖÔNG I : GIÔÙI THIEÄU TOÅNG QUAN HOÏ VI ÑIEÀU KHIEÅN PIC 8 I.1. Lòch söû phaùt trieån 8 I.2. Caùc ñaëc ñieåm 8 I.3. Phaân loaïi 9 CHÖÔNG II : KIEÁN TRUÙC PHAÀN CÖÙNG PIC 16F84A 10 II.1. Giôùi thieäu PIC16F84A 10 II.2. Sô ñoà boá trí chaân 11 II.3. Sô ñoà khoái 13 II.4. Caáu taïo boä dao ñoäng 16 II.5. Hoaït ñoäng RESET 19 II.6. Toå chöùc boä nhôù 21 Boä ñeám chöông trình ( PC ) 36 Ngaên xeáp ( STACK) 36 Cheá ñoä ñòa chæ 37 II.7.Caáu truùc coång I/O 40 II.8. Boä ñònh thôøi (TMR0) 51 II.9. Watchdog Timer 53 II.10. Ngaét 54 CHÖÔNG III : TAÄP LEÄNH CUÛA PIC16F84A 56 III.1/ Baûng toùm taét taäp leänh 56 III.2/ Ñònh daïng toång quaùt cuûa töø leänh 57 III.3/ Moâ taû chi tieát töøng leänh 58 CHÖÔNG IV : LAÄP TRÌNH HÔÏP NGÖÕ PIC16F84A VÔÙI CHÖÔNG TRÌNH BIEÂN DÒCH MPASM 77 IV.1/ Giôùi thieäu chöông trình bieân dòch MPASM 77 IV.2/ Caùch vieát moät chöông trình 77 IV.3/ Moät soá ví duï 81 CHÖÔNG V : ÖÙNG DUÏNG PIC 16F84A THIEÁT KEÁ VAØ THI COÂNG MAÏCH GHI AÂM ÑIEÄN THOAÏI 93 V.1. Sô ñoà khoái vaø nguyeân lyù hoaït ñoäng cuûa heä thoáng 93 V.2. Giôùi thieäu caùc IC söû duïng trong maïch 96 PHAÀN 2 : TÍNH TOAÙN VAØ THI COÂNG CHÖÔNG VI : THIEÁT KEÁ CHI TIEÁT 106 VI.1. Maïch nguoàn. 106 VI.2. Maïch caûm bieán chuoâng. 106 VI.3. Maïch ñieàu khieån Relay 108 VI.4. Maïch taïo taûi giaû 109 VI.5. Maïch Hybrid vaø Maïch loïc 112 VI.6. Maïch phaùt hieän Busy Tone 116 VI.7. Maïch thu & phaùt tieáng noùi 119 VI.8. Maïch khueách ñaïi coâng suaát aâm taàn 120 VI.9. Maïch ñieàu khieån trung taâm 121 CHÖÔNG VII : LÖU ÑOÀ GIAÛI THUAÄT 122 KEÁT LUAÄN 139 HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI 140 TAØI LIEÄU THAM KHAÛO 141 Lôøi noùi ñaàu Töø giöõa nhöõng naêm 80 ñeán nay coâng ngheä cheá taïo linh kieän baùn daãn coù nhöõng phaùt trieån ñaäm neùt ñeå hoã trôï cho söï phaùt trieån cuûa coâng ngheä thoâng tin vaø söï töï ñoäng hoaù trong coâng nghieäp. Vôùi söï tích hôïp ngaøy caøng cao( coù theå löu tröõ haøng traêm ngaøn transistor trong moät vi maïch ) coâng suaát tieâu taùn beù hôn, thoâng minh hôn. Nhöõng ñieàu kieän ñoù ñaõ taïo ra saûn phaåm vi ñieàu khieån. Ngaøy nay kyõ thuaät vi ñieàu khieån ñaõ trôû neân quen thuoäc trong caùc ngaønh kyõ thuaät vaø daân duïng. Töø caùc daây chuyeàn saûn xuaát lôùn ñeán caùc thieát bò ñieän gia duïng, ñeàu thaáy söï hieän dieän cuûa vi ñieàu khieån. Caùc boä vi ñieàu khieån coù khaû naêng xöû lyù nhieàu hoaït ñoäng phöùc taïp vôùi toác ñoä nhanh maø chæ caàn moät chip vi maïch nhoû, noù ñaõ thay theá caùc tuû ñieàu khieån lôùn vaø phöùc taïp baèng nhöõng maïch ñieän goïn nheï, thao taùc söû duïng deã daøng Trong chöông trình hoïc thì em ñaõ ñöôïc caùc thaày coâ daïy veà hoï vi ñieàu khieån 8051. Trong cuoán luaän vaên naøy em xin giôùi thieäu moät hoï vi ñieàu khieån khaùc ñoù laø PIC (Programmable Intelligent Computer ) cuûa haõng Microchip vaø öùng duïng PIC 16F84A ñeå thieát keá maïch töï ñoäng ghi aâm vaø traû lôøi ñieän. Maïch naøy söû duïng coâng ngheä soá ñeå löu tröõ tieáng noùi vôùi moät vi maïch ñieàu khieån trung taâm neân khaû naêng giao tieáp roäng, toác ñoä xöû lyù nhanh, maïch nhoû goïn. Do thôøi gian coù haïn vaø khaû naêng coøn haïn cheá neân trong quaù trình thöïc hieän cuoán luaän vaên naøy khoâng traùnh khoûi nhöõng thieáu xoùt kính mong caùc chaày coâ cuøng caùc baïn thoâng caûm vaø chæ baûo theâm. TOÙM TAÉT ÑEÀ TAØI Ñeà taøi khaûo saùt Chip vi ñieàu khieån môùi hoï PIC. Cuï theå laø chip PIC16F84A, vaø öùng duïng vaøo thieát keá, thi coâng maïch ghi aâm ñieän thoaïi. Ñeà taøi naøy ñöôïc chia thaønh 7 chöông vôùi noäi dung chính nhö sau : Chöông 1: Giôùi thieäu toång quan hoï vi ñieàu khieån PIC Chöông 2: Kieán truùc phaàn cöùng cuûa PIC16F84A Chöông 3: Taäp leänh cuûa PIC16F84A Chöông 4: Laäp trình hôïp ngöõ PIC16F84A vôùi chöông trình bieân dòch MPASM Chöông 5: ÖÙng duïng PIC16F84A thieát keá vaø thi coâng maïch ghi aâm ñieän thoaïi Chöông 6 : Thieát keá chi tieát Chöông 7 : Löu ñoà giaûi thuaät PHAÀN 1: CÔ SÔÛ LYÙ THUYEÁT CHÖÔNG I : GIÔÙI THIEÄU TOÅNG QUAN HOÏ VI ÑIEÀU KHIEÅN PIC I.1. Lòch söû phaùt trieån Hoï vi ñieàu khieån PIC laø teân vieát taét cuûa Programmable Intelligent Computer – “Maùy tính thoâng minh khaû trình “ do haõng General Instrument saûn xuaát vaø con vi ñieàu khieån ñaàu tieân laø PIC1650. Con vi ñieàu khieån naøy laø meï ñeû cuûa taát caû caùc vi ñieàu khieån hoï PIC sau naøy. Veà sau hoï vi ñieàu khieån naøy ñöôïc haõng Microchip tieáp tuïc phaùt trieån vaø hieän nay caùc saûn phaåm vi ñieàu khieån PIC ñaõ coù gaàn 100 loaïi saûn phaåm töø hoï 10Fxxx ñeán caùc hoï 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx ...... I.2. Caùc ñaëc ñieåm PIC laø hoï vi ñieàu khieån coù raát nhieàu chuûng loaïi, töø caùc doøng saûn phaåm cô baûn thích hôïp vôùi nhöõng öùng duïng nhoû ñeán caùc doøng saûn phaåm phoå thoâng vaø cao caáp, caùc saûn phaåm naøy coù nhieàu chaân xuaát/nhaäp hôn caùc doøng cô baûn vaø noù tích hôïp nhieàu thieát bò ngoaïi vi nhö : boä chuyeån ñoåi tín hieäu töông töï sang soá ( ADC : Analog-To-Digital Converter ), truyeàn noái tieáp vôùi hai chuaån laø MSSP ( Master Synchronous Serial Port ) vaø USART ( Universal Synchronous Asynchronous Receiver Transmitter ), truyeàn song song vôùi PSP ( Parallel Slave Port ). . . Maëc duø coù nhieàu loaïi nhöng chuùng ñeàu coù nhöõng ñaëc tính chung sau : Coù theå giao tieáp vôùi thieát bò ngoaïi vi thoâng qua caùc chaân xuaát/nhaäp Coù theå ñieàu khieån caùc chaân xuaát nhaäp maø khoâng laøm aûnh höôûng tôùi söï hoaït ñoäng cuûa boä vi xöû lyù Söû duïng coâng ngheä CMOS laøm giaûm doøng tieâu thuï, thôøi gian chuyeån maïch nhanh Coù tính oån ñònh cao Boä nhôù chöông trình : duøng ñeå löu tröõ maõ chöông trình, tuyø töøng loaïi FLASH : goàm caùc saûn phaåm xxFxxx OTP : goàm caùc saûn phaåm 14000, 16Cxxx, 16HV540 ROM/ROMless : goàm caùc saûn phaåm 16CRxxx, 18C601, 18C801 Kích thöôùc boä nhôù chöông trình (Bytes): tuyø töøng loaïi maø coù kích thöôùc boä nhôù khaùc nhau töø 0,5K ñeán 256K I.3. Phaân loaïi Döïa vaøo ñoä daøi cuûa töø leänh, hoï vi ñieàu khieån PIC naøy coù theå chia thaønh 3 loaïi sau : Doøng PIC cô baûn ( Base – Line ) goàm caùc PIC 12Cxxx. Caùc PIC thuoäc loaïi naøy coù ñoä daøi leänh laø 12 bit Doøng PIC phoå thoâng ( Mid – Range ) goàm caùc doøng PIC 10F, 12F vaø 16, loaïi naøy coù ñoä daøi leänh laø 14 bit Doøng PIC High – End goàm caùc doøng PIC 18, loaïi naøy coù ñoä daøi leänh laø 16 bit CHÖÔNG II : KIEÁN TRUÙC PHAÀN CÖÙNG PIC16F84A II.1. Giôùi thieäu PIC16F84A PIC16F84A laø moät vi ñieàu khieån 8 bit söû duïng caáu truùc RISC ( Reduced Instruction Set Computer = Maùy tính coù taäp leänh ruùt ngoïn ). Caùc bus döõ lieäu vaø leänh rieâng bieät theo caáu truùc Harvard cho pheùp töø leänh coù ñoä daøi 14 bit trong khi moät töø döõ lieäu coù ñoä daøi 8 bit. Vuøng ngaên xeáp coù ñoä saâu 8 möùc vaø ñoäc laäp vôùi boä nhôù RAM Caùc ñaëc ñieåm + Coù 35 leänh ñôn. + Moãi leänh ñöôïc thöïc hieän trong moät chu kyø maùy ( ngoaïi tröø caùc leänh reõ nhaùnh ñöôïc thöïc hieän trong hai chu kyø maùy ). + Boä nhôù chöông trình : 1024 töø, moãi töø coù ñoä daøi 14 bit. + Boä nhôù döõ lieäu RAM : 68 byte, moãi byte coù ñoä daøi 8 bit. + Boä nhôù döõ lieäu EEPROM : 64 byte, moãi byte coù ñoä daøi 8 bit. + 16 thanh ghi coù chöùc naêng ñaëc bieät. + 13 chaân xuaát/nhaäp ñöôïc chia thaønh 2 port. Port A coù 5 chaân, port B coù 8 chaân. + Coù 4 nguoàn ngaét Ngaét ngoaøi treân chaân RB0/INT. Hoaøn thaønh vieäc ghi döõ lieäu vaøo EEPROM. Ngaét traøn cuûa boä ñònh thôøi TMR0. Port B thay ñoåi traïng thaùi treân caùc chaân RB . Caùc tính naêng + PIC16F84A coù theå giao tieáp vaø ñieàu khieån thieát bò ngoaïi vi thoâng qua caùc chaân xuaát/nhaäp. + Coù theå ñaùp öùng caùc maïch ñoøi hoûi thôøi gian thöïc. + Söû duïng coâng ngheä CMOS neân doøng söû duïng thaáp 20mA. + Coù theå löïa choïn boä dao ñoäng. + Reset Chöùc naêng Reset PIC trong khi nguoàn cung caáp chöa oån ñònh. Khi baät nguoàn thì boä dao ñoäng thaïch anh luùc ñaàu chöa oån ñònh do ñoù ôû thôøi gian ñaàu caàn phaûi Reset PIC cho ñeán khi boä dao ñoäng thaïch anh oån ñònh. Coù hai boä ñònh thôøi laøm treã luùc baät ñieän, moät laø boä ñònh thôøi khôûi ñoäng boä dao ñoäng, hai laø Power-up Timer (PWRT) cung caáp khoaûng treã coá ñònh laø 72 ms chæ khi baät ñieän. Power-on Reset (POR) Power-up Timer (PWRT) Boä ñònh thôøi khôûi ñoäng boä dao ñoäng + Ngaét + Watchdog Timer (WDT) Cheá ñoä Watchdog Timer chæ ñöôïc choïn hoaëc taét thoâng qua caùc bit caáu hình. Chöùc naêng naøy duøng ñeå Reset PIC hay ñaùnh thöùc PIC ( khi ôû cheá ñoä SLEEP) sau moät khoaûng thôøi gian. + Cheá ñoä SLEEP Khi cheá ñoä naøy ñöôïc thöïc hieän noù laøm cho PIC ngöng xöû lyù chöông trình öùng duïng. Cheá ñoä naøy ñöa PIC vaøo traïng thaùi nghæ taïm thôøi vôùi moät doøng tieâu thuï raát thaáp. Coù theå cho PIC hoaït ñoäng trôû laïi baèng 3 caùch : reset taïi chaân MCLR , cho boä Watchdog timer hoaït ñoäng, duøng ngaét ngoaøi. + Söï baûo veä maõ + Cheá ñoä laäp trình noái tieáp ICSP ( In-Cicuit Serial Programming ) II.2. Sô ñoà boá trí chaân PIC16F84A coù taát caû 18 chaân thöôøng ñöôïc tìm thaáy laø loaïi DIP 18 nhöng cuõng coù theå tìm thaáy loaïi SMD, loaïi naøy coù kích thöôùc nhoû hôn DIP. DIP laø töø vieát taét cuûa Dual In Package, SMD laø töø vieát taét cuûa Surface Mount Devices. Hình 1 : Sô ñoà boá trí chaân PIC16F84A YÙ nghóa caùc chaân : Chaân 1: RA2 Chaân thöù hai cuûa port A, laø chaân nhaäp/xuaát. Chaân 2: RA3 Chaân thöù ba cuûa port A, laø chaân nhaäp/xuaát. Chaân 3: RA4/T0CKI Chaân thöù tö cuûa port A, laø chaân nhaäp/xuaát. T0CKI choïn ngoõ vaøo Clock tôùi boä ñònh thôøi TMR0. Chaân 4: MCLR Ngoõ vaøo Reset vi ñieàu khieån, tích cöïc möùc thaáp vaø coøn duøng ñeå laäp trình cho vi ñieàu khieån vôùi ñieän aùp laäp trình laø 13V. Chaân 5: Vss Chaân noái mass. Chaân 6: RB0/INT Chaân thöù 0 cuûa port B, laø chaân xuaát/nhaäp, ngoaøi ra coøn coù chöùc naêng laø chaân ngaét ngoaøi. Chaân 7:RB1 Chaân thöù nhaát cuûa port B, laø chaân nhaäp/xuaát. Chaân 8:RB2 Chaân thöù hai cuûa port B, laø chaân nhaäp/xuaát. Chaân 9:RB3 Chaân thöù ba cuûa port B, laø chaân nhaäp/xuaát. Chaân 10:RB4 Chaân thöù tö cuûa port B, laø chaân nhaäp/xuaát. Chaân 11:RB5 Chaân thöù naêm cuûa port B, laø chaân nhaäp/xuaát. Chaân 12:RB6 Chaân thöù saùu cuûa port B, laø chaân nhaäp/xuaát. Khi laäp trình noù laø ñöôøng ‘clock’. Chaân 13:RB7 Chaân thöù baûy cuûa port B, laø chaân nhaäp/xuaát. Khi laäp trình noù laø ñöôøng döõ lieäu. Chaân 14:VDD Chaân cung caáp nguoàn +5V. Chaân 15:OSC2/CLKOUT Chaân noái tôùi boä dao ñoäng. Chaân 16:OSC1/CLKOUT Chaân noái tôùi boä dao ñoäng. Chaân 17:RA0 Chaân thöù 0 cuûa port A, laø chaân xuaát/nhaäp. Chaân 18:RA1 Chaân thöù nhaát cuûa port A, laø chaân xuaát/nhaäp. II.3. SÔ ÑOÀ KHOÁI Hình 2 : Sô ñoà khoái PIC16F84A Ñôn vi xöû lyù trung taâm ( Central Processing Unit) CPU Ñôn vò xöû lyù trung taâm ( CPU ) laø boä naõo cuûa vi ñieàu khieån, noù coù nhieäm vuï phaùt hieän vaø tìm naïp thöù töï leänh caàn ñeå thöïc hieän, maõ hoaù leänh ñoù vaø cuoái cuøng noù cho leänh naøy thöïc hieän Hình 2.1 : Sô ñoà khoái CPU CPU keát noái vôùi taát caû caùc boä phaän cuûa vi ñieàu khieån taïo thaønh moät khoái thoáng nhaát. Chöùc naêng quan troïng nhaát cuûa CPU laø ñoïc vaø giaûi maõ caùc leänh chöông trình. Khi ta vieát moät chöông trình, chöông trình naøy bao goàm caùc doøng leänh ví duï MOVLW 0x20 . Tuy nhieân, vi ñieàu khieån seõ khoâng hieåu caùc kyù töï naøy maø noù chæ laøm vieäc vôùi caùc traïng thaùi ‘0’ vaø ‘1’, vì vaäy ta caàn moät chöông trình bieân dòch caùc doøng leänh naøy thaønh daõy ‘0’ vaø ‘1’ nhö laø chöông trình bieân dòch hôïp ngöõ. Nhö vaäy khi naïp vaøo boä nhôù chöông trình noù seõ ñöôïc CPU giaûi maõ thaønh caùc leänh. Khi caùc leänh naøy chæ ñònh söï chuyeån tieáp döõ lieäu töø boä nhôù naøy ñeán boä nhôù khaùc, töø boä nhôù leân caùc port hoaëc moät vaøi söï tính toaùn khaùc, CPU phaûi ñöôïc keát noái vôùi taát caû caùc boä phaän cuûa vi ñieàu khieån, söï keát noái naøy ñöôïc thöïc hieän qua bus döõ lieäu vaø bus ñòa chæ Ñôn vò soá hoïc – logic ( Arithmetic Logic Unit) ALU ALU thöïc hieän caùc thao taùc nhö coäng, tröø, di chuyeån ( traùi hay phaûi trong moät thanh ghi ) vaø caùc pheùp logic cô baûn. PIC16F84A bao goàm moät ALU 8 bit vaø thanh ghi W 8 bit Hình 2.2 : Sô ñoà khoái ALU ÔÛ caùc leänh coù hai toaùn haïn, thoâng thöôøng 1 toaùn haïn laø thanh ghi W vaø toaùn haïn kia coù theå laø moät haèng soá hoaëc laø moät trong caùc thanh ghi GPR hay SFR. GPR- General Purposes Registers laø caùc thanh ghi muïc ñích chung vaø SFR-Special Function Registers laø caùc thanh ghi coù chöùc naêng ñaëc bieät ÔÛ caùc leänh coù moät toaùn haïn, toaùn haïn naøy coù theå laø thanh ghi W hoaëc moät thanh ghi khaùc. Khi moät pheùp coäng trong hoaït ñoäng soá hoïc vaø logic, ALU ñieàu khieån caùc bit traïng thaùi ( caùc bit naøy trong thanh ghi traïng thaùi ‘STATUS’). Söï thöïc hieän cuûa moät vaøi leänh seõ aûnh höôûng ñeán caùc bit traïng thaùi. Söï aûnh höôûng naøy phuï thuoäc vaøo keát quaû cuûa leänh ñoù, ALU coù theå aûnh höôûng ñeán giaù trò cuûa caùc bit C (Carry), DC (Digit Carry), Z (Zero) trong thanh ghi traïng thaùi (STATUS). Thanh ghi chæ leänh ( Instruction Register) Thanh ghi naøy chöùa maõ leänh ñoïc töø boä nhôù chöông trình. Khi thöïc hieän vieäc ghi maõ leänh töø boä nhôù chöông trình tôùi thanh ghi chæ leänh thì ñòa chæ cuûa maõ leänh naøy ñöôïc ñoïc töø boä ñeám chöông trình. Giaûi maõ vaø ñieàu khieån leänh (Instruction Decode & Control) Khoái naøy coù nhieäm vuï giaûi maõ noäi dung cuûa thanh ghi chæ leänh thaønh leänh vaø noù thi haønh theo noäi dung cuûa leänh ñoù. Thanh ghi W ( W reg) Ñaây laø thanh ghi laøm vieäc, noù duøng ñeå löu tröõ taïm thôøi noäi dung cuûa ALU. Thanh ghi W caàn thieát cho caùc hoaït ñoäng tính toaùn. Noäi dung cuûa thanh ghi naøy coù theå ñöôïc chuyeån ñeán caùc thanh ghi khaùc vaø ngöôïc laïi, noù cuõng ñöôïc söû duïng ñeå ñieàu khieån coång I/O II.4. Caáu taïo boä dao ñoäng Maïch dao ñoäng duøng ñeå cung caáp cho vi ñieàu khieån moät dao ñoäng xung clock . Noù caàn thieát cho vi ñieàu khieån coù theå thöïc hieän moät chöông trình hay moät leänh cuûa chöông trình Caùc loaïi dao ñoäng PIC16F84A coù theå laøm vieäc vôùi 4 caáu hình dao ñoäng khaùc nhau. Ngöôøi laäp trình coù theå choïn caáu hình dao ñoäng khi laäp trình PIC hoaëc choïn baèng 2 bit caáu hình FOSC1 vaø FOSC0 LP tinh theå nguoàn thaáp XT tinh theå/coäng höôûng HS tinh theå toác ñoä cao/coäng höôûng RC ñieän trôû/ tuï ñieän Boä dao ñoäng tinh theå / hoäp coäng höôûng baèng goám : Trong kieåu XT, LP hoaëc HS moät tinh theå thaïch anh goàm coù hai chaân thöôøng ñöôïc giöõ trong voû boïc baèng kim loaïi ñöôïc noái tôùi caùc chaân OSC1/CLKIN vaø OSC2/CLKOUT theo kieåu song song. Hai tuï loaïi ceramic coù trò soá baèng nhau moät chaân ñöôïc noái mass chaân coøn laïi noái vôùi tinh theå ñöôïc trình baøy nhö hình sau Hình 3 : Sô ñoà keát noái boä dao ñoäng tinh theå Boä dao ñoäng tinh theå vaø tuï ñieän coù theå goäp chung trong moät voû boïc baèng goám vôùi 3 chaân, ñöôïc goïi laø hoäp coäng höôûng. Chaân ôû giöõa ñöôïc noái mass, hai chaân coøn laïi ñöôïc noái ñeán chaân OSC1 vaø OSC2 cuûa vi ñieàu khieån. Khi thieát keá moät thieát bò, theo nguyeân taéc laø phaûi ñaët boä taïo dao ñoäng gaàn con vi ñieàu khieån ñeå traùnh nhieãu treân ñöôøng maïch khi con vi maïch ñang nhaän clock. Hình 4 : Keát noái boä coäng höôûng tôùi vi ñieàu khieån Ngoaøi ra trong caùc kieåu XT, LP hoaëc HS, thieát bò coù theå söû duïng moät nguoàn clock ngoaøi ñeå ñieàu khieån chaân OSC1/CLKIN. Hình 5 : Keát noái vôùi nguoàn xung clock beân ngoaøi Baûng löïa choïn tuï cho boä dao ñoäng tinh theå Kieåu Taàn soá OSC1/C1 OSC2/C2 LP 32 kHz 200 kHZ 68-100 pF 15-33 pF 68-100 pF 15-33 pF XT 100 kHz 2 MHz 4 MHz 100-150 pF 15-33 pF 15-33 pF 100-150 pF 15-33 pF 15-33 pF HS 4 MHz 20 MHz 15-33 pF 15-33 pF 15-33 pF 15-33 pF Khi ñieän dung cao hôn seõ laøm taêng theâm söï vöõng vaøng cuûa boä dao ñoäng nhöng thôøi gian khôûi ñoäng cuõng taêng. Boä taïo dao ñoäng RC Boä dao ñoäng RC thöôøng ñöôïc duøng trong nhöõng öùng duïng khoâng caàn thôøi gian chính xaùc. Taàn soá coäng höôûng cuûa boä dao ñoäng RC ñöôïc quyeát ñònh bôûi möùc ñieän aùp nguoàn, ñieän trôû R, tuï ñieän C vaø nhieät ñoä hoaït ñoäng Hình 6 : Caáu taïo boä dao ñoäng RC Hình 6 bieåu dieãn caùch noái boä dao ñoäng RC vôùi PIC16F84A. Vôùi giaù trò cuûa ñieän trôû R döôùi 2,2K boä dao ñoäng coù theå baét ñaàu khoâng oån ñònh, hoaëc noù coù theå ngöng dao ñoäng. Vôùi giaù trò raát cao cuûa ñieän trôû R ( ví duï 1M) boä dao ñoäng raát deã bò hoûng bôûi taïp nhieãu vaø ñoä aåm. Ñieän trôû R neân choïn giaù trò naèm trong khoaûng 3K ñeán 100K. Maëc duø boä dao ñoäng laøm vieäc khoâng coù moät tuï ñieän beân ngoaøi, nhöng ñeå traùnh taïp nhieãu vaø cho maïch oån ñònh neân maéc moät tuï 20pF hoaëc lôùn hôn. Moät clock cuûa boä dao ñoäng ñöôïc phaân bieät bôûi 4 chu kyø. Boä dao ñoäng clock phaân bieät bôûi 4 chu kyø cuõng coù theå thu ñöôïc ôû chaân OSC2/CLKOUT, vaø cuõng coù theå duøng ñeå thöû hay ñoàng boä caùc maïch logic Caùc chu kyø maùy Moät chu kyø maùy cuûa PIC16F84A goàm coù 4 traïng thaùi ñöôïc ñaùnh soá töø Q1 ñeán Q4. moãi traïng thaùi chieám 1 chu kyø cuûa boä dao ñoäng. Nhö vaäy moät chu kyø maùy chieám 4 chu kyø cuûa boä dao ñoäng hay 1s neáu taàn soá cuûa boä dao ñoäng laø 4MHz Sau khi caáp nguoàn, boä dao ñoäng baét ñaàu dao ñoäng. Ôû chu kyø ñaàu tieân söï dao ñoäng khoâng oån ñònh nhöng sau ñoù vaøi chu kyø noù baét ñaàu hoaït ñoäng bình thöôøng Hình 8 : Tín hieäu cuûa boä dao ñoäng sau khi caáp nguoàn Ñeå ngaên chaën boä dao ñoäng hoaït ñoäng khoâng chính xaùc khi caáp nguoàn coù theå aûnh höôûng ñeán söï thöïc hieän chöông trình cuûa vi ñieàu khieån, neân reset vi ñieàu khieån trong suoát thôøi gian laøm oån ñònh boä dao ñoäng II.5. Hoaït ñoäng RESET PIC16F84A coù caùc nguoàn RESET sau : Reset trong thôøi gian môû nguoàn Power – On Reset ( POR) Reset trong thôøi gian thao taùc bình thöôøng baèng caùch taùc ñoäng möùc ‘0’ tôùi chaân cuûa vi ñieàu khieån Reset ôû chaân trong thôøi gian thöïc hieän cheá ñoä SLEEP Reset khi Watchdog Timer (WDT) traøn ôû cheá ñoä bình thöôøng. Reset khi WDT traøn ôû cheá ñoä SLEEP Chaân thöôøng ñöôïc noái qua moät ñieän trôû tôùi VDD, ñieän trôû naøy coù giaù trò trong khoaûng 5 ñeán 10k. khi mang moät möùc ‘0’ tôùi chaân naøy thì PIC seõ ñöôïc Reset. Ñieàu kieän Reset cho boä ñeám chöông trình ( PC ) vaø thanh ghi STATUS Ñieàu kieän PC Thanh ghi STATUS POR 000h 0001 1xxx Reset ôû thôøi gian thao taùc bình thöôøng 000h 000u uuuu Reset khi ñang ôû cheá ñoä SLEEP 000h 0001 0uuu Reset baèng WDT ( ôû thôøi gian hoaït ñoäng bình thöôøng ) 000h 0000 1uuu WDT Wake-up PC + 1 uuu0 0uuu Ngaét ngoaøi ôû thôøi gian thöïc hieän cheá ñoä SLEEP PC + 1 uuu1 0uuu Chuù thích : u : khoâng thay ñoåi x : khoâng bieát Khi duøng ngaét ngoaøi ôû thôøi gian thöïc hieän cheá ñoä SLEEP neáu bit GIE ñöôïc set thì PC ñöôïc naïp vôùi ñòa chæ 004h. Ñieàu kieän Reset caùc thanh ghi Thanh ghi Ñòa chæ Power-on Reset MCLR Reset trong : - Hoaït ñoäng bình thöôøng - Cheá ñoä SLEEP WDT Reset trong thôøi gian thao taùc bình thöôøng Wake-up töø SLEEP : - Thoâng qua ngaét ngoaøi - Thoâng qua traøn WDT W --- xxxx xxxx uuuu uuuu uuuu uuuu INDF 00h ---- ---- ---- ---- ---- ---- TMR0 01h xxxx xxxx uuuu uuuu uuuu uuuu PCL 02h 0000 0000 0000 0000 PC + 1(2) STATUS 03h 0001 1xxx 000q quuu uuuq quuu FSR 04h xxxx xxxx uuuu uuuu uuuu uuuu PORTA 05h ---x xxxx ---u uuuu ---u uuuu PORTB 06h xxxx xxxx uuuu uuuu uuuu uuuu EEDATA 08h xxxx xxxx uuuu uuuu uuuu uuuu EEADR 09h xxxx xxxx uuuu uuuu uuuu uuuu PCLATH 0Ah ---0 0000 ---0 0000 ---u uuuu INTCON 0Bh 0000 000x 0000 000u uuuu uuuu(1) INDF 80h ---- ---- ---- ---- ---- ---- OPTION_REG 81h 1111 1111 1111 1111 uuuu uuuu PCL 82h 0000 0000 0000 0000 PC + 1(2) STATUS 83h 0001 1xxx 000q quuu uuuq quuu FSR 84h xxxx xxxx uuuu uuuu uuuu uuuu TRISA 85h ---1 1111 ---1 1111 ---u uuuu TRISB 86h 1111 1111 1111 1111 uuuu uuuu EECON1 88h ---0 x000 ---0 q000 ---0 uuuu EECON2 89h ---- ---- ---- ---- ---- ---- PCLATH 8Ah ---0 0000 ---0 0000 ---u uuuu INTCON 8Bh 0000 000u 0000 000u uuuu uuuu(1) Ghi chuù : u = khoâng thay ñoåi x = khoâng bieát - = bit khoâng duøng ñoïc nhö ‘0’ q = giaù trò ñöôïc quyeát ñònh treân ñieàu kieän Chuù yù : (1) moät hay nhieàu bit trong thanh ghi INTCON seõ bò aûnh höôûng ( do thöïc hieän Wake-up) (2) khi WAKE-up ñöôïc thöïc hieän baèng ngaét ngoaøi vaø bit GIE ñöôïc set thì PC ñöôïc naïp vôùi vecto ngaét 004h II.6. Toå chöùc boä nhôù PIC16F84A coù hai khoái nhôù rieâng bieät, ñoù laø boä nhôù döõ lieäu vaø boä nhôù chöông trình , boä nhôù EEPROM vôùi caùc thanh ghi GPR vaø SFR trong boä nhôù RAM naèm trong khoái nhôù döõ lieäu, boä nhôù FLASH naèm trong khoái nhôù chöông trình Hình 9 : Toå chöùc boä nhôù cuûa vi ñieàu khieån PIC16F84A II.6.1. Khoái nhôù chöông trình Hình 10 : Toå chöùc boä nhôù chöông trình Boä nhôù chöông trình duøng coâng ngheä FLASH, ñaëc ñieåm cuûa boä nhôù FLASH laø döõ lieäu trong boä nhôù seõ khoâng bò maát ñi khi taét nguoàn vaø noù cho pheùp ghi laïi nhieàu laàn nhöng soá laàn ghi laïi ñöôïc giôùi haïn laø 1000 laàn. Boä nhôù FLASH ñöôïc duøng ñeå löu chöông trình, khoâng gian söû duïng boä nhôù laø 1024 töø, 1 töø coù chieàu daøi laø 14 bit (1024 Word 14 bit). Ñòa chæ cuûa boä nhôù FLASH töø 0000h ñeán 03FFh. Ñòa chæ 0000h : vectô Reset ( Reset Vector ). Khi coù moät ñieàu kieän Reset xaûy ra do môû nguoàn, baèng WDT (Watchdog timer) hay moät vaøi nguoàn Reset khaùc, chöông trình seõ baét ñaàu töø ñòa chæ naøy. Ñòa chæ 0004h : vectô ngaét (Interrupt Vector). Khi coù moät ñieàu kieän ngaét xaûy ra do thanh ghi TMRO traøn khi cho pheùp ngaét traøn cuûa boä ñònh thôøi hoaëc do moät nguoàn ngaét ngoaøi, chöông trình seõ thöïc hieän leänh taïi ñòa chæ naøy. Nhö vaäy khoâng gian söû duïng chöông trình seõ baét ñaàu töø ñòa chæ 0005h ñeán 03FFh. Ñòa chæ 0400h ñeán 1FFFh : khoâng gian boä nhôù naøy khoâng ñöôïc söû duïng. Ñòa chæ 2007h : ñòa chæ naøy chöùa nhöõng bit caáu hình. Nhöõng bit caáu hình Nhöõng bit caáu hình coù theå ñöôïc laäp trình (ñoïc nhö ‘0’) hoaëc khoâng ñöôïc laäp trình (ñoïc nhö ‘1’) ñeå choïn löïa caùc caáu hình thieát bò nhö caùc bit cho pheùp Power-up Timer vaø WDT cuõng nhö caùc bit choïn boä dao ñoäng. Nhöõng bit naøy ñöôïc aùnh xaï ñeán oâ nhôù 2007h. Ñòa chæ 2007h ôû beân ngoaøi phaïm vi söû duïng boä nhôù chöông trình vaø noù thuoäc veà tröôøng hôïp ñaëc bieät / caáu hình cuûa khoâng gian boä nhôù (2000h – 3FFFh). Khoâng gian naøy chæ coù theå truy caäp trong thôøi gian laäp trình CP WDTE FOSC1 FOSC0 Bit13 4 3 bit 0 Bit 13 – 4 : CP : Code Protection 1 = khoâng ñöôïc maõ baûo veä 0 = taát caû boä nhôù chöông trình ñöôïc maõ baûo veä Bit 3 : PWRTE Power-up Timer Enable bit 1 = khoâng cho pheùp Power-up Timer 0 = cho pheùp Power-up Timer Bit 2 : WDTE : Watchdog Timer Enable bit 1 = cho pheùp chöùc naêng Watchdog Timer 0 = khoâng cho pheùp chöùc naêng Watchdog Timer Bit 1-0 : FOSC1 – FOSC0 Oscillator Selection bits 11 = dao ñoäng RC 10 = dao ñoäng HS 01 = dao ñoäng XT 00 = dao ñoäng LP II.6.2. Khoái nhôù döõ lieäu Khoái nhôù döõ lieäu bao goàm boä nhôù döõ lieäu vaø boä nhôù EEPROM II.6.2.a. Boä nhôù döõ lieäu Hình 11 : Toå chöùc boä nhôù döõ lieäu Boä nhôù döõ lieäu goàm caùc thanh ghi file RAM (Random Access Memory-boä nhôù truy xuaát ngaãu nhieân), döõ lieäu trong caùc thanh ghi naøy seõ bò maát khi taét nguoàn Boä nhôù döõ lieäu coù taát caû laø 256 byte (00h ñeán FFh) ñöôïc chia thaønh 2 bank, moãi bank coù 128 byte. Bank 0 ôû ñòa chæ 00h ñeán 7Fh trong ñoù caùc byte coù ñòa chæ töø 50h ñeán 7Fh vaø byte ôû ñòa chæ 07h khoâng ñöôïc söû duïng vaø noù ñoïc nhö ‘0’. Bank 1 ôû ñòa chæ 80h ñeán FFh trong ñoù caùc byte coù ñòa chæ töø D0h ñeán FFh vaø byte ôû ñòa chæ 87h khoâng ñöôïc söû duïng vaø noù ñoïc nhö ‘0’. Khi muoán truy xuaát ñeán moät thanh ghi trong boä nhôù döõ lieäu thì tröôùc tieân phaûi choïn bank chöùa thanh ghi ñoù, vieäc choïn bank naøy ñöôïc qui ñònh trong thanh ghi STATUS ôû ñòa chæ 03h vaø 83h. Caùc thanh ghi trong boä nhôù döõ lieäu coù theå ñöôïc truy xuaát tröïc tieáp baèng ñòa chæ tuyeät ñoái cuûa moãi thanh ghi hoaëc giaùn tieáp qua thanh ghi FSR (File Select Register). Ñòa chæ giaùn tieáp söû duïng giaù trò hieän thôøi cuûa bit RP0 trong thanh ghi STATUS ñeå truy xuaát vaøo trong vuøng bank cuûa boä nhôù döõ lieäu Boä nhôù döõ lieäu ñöôïc phaân thaønh 2 phaàn : Phaàn 1 goàm 12 byte ñaàu tieân cuûa moãi bank ñöôïc goïi laø SFR ( Special Funstion Registers – caùc thanh ghi chöùc naêng ñaëc bieät ) vaø ñöôïc duøng ñeå ghi laïi traïng thaùi hoaït ñoäng cuûa PIC nhö laø ñieàu khieån choïn cheá ñoä coång ngoõ vaøo hay ngoõ ra... Coù 16 thanh ghi khaùc nhau trong SFR (11 thanh ghi trong bank 0 vaø 5 thanh ghi trong bank 1 ). Noäi dung cuûa moãi thanh ghi ñöôïc quaûn lyù bôûi PIC. Maëc duø coù toång coäng laø 24 thanh ghi nhöng moät vaøi thanh ghi naèm trong caû 2 bank. Khi vieát chöông trình caàn quan taâm ñeán vieäc choïn bank nhôù khi truy xuaát ñeán caùc thanh ghi naøy Phaàn 2 goàm 68 byte töø ñòa chæ 0Ch ñeán 4Fh ñöôïc goïi laø GPR ( General Purpose Registers – Caùc thanh ghi muïc ñích chung ) duøng ñeå löu tröõ keát quaû vaø ñieàu kieän trong khi chöông trình ñang chaïy. Noäi dung cuûa GPR trong 2 bank laø nhö nhau, vì theá khi truy xuaát ñeán caùc thanh ghi naøy khoâng caàn thöïc hieän vieäc choïn bank nhôù, toång dung löôïng cuûa RAM laø 68 byte. Noäi dung cuûa GPR bò maát khi taét nguoàn vaø khoâng coù giôùi haïn soá laàn ghi döõ lieäu Noäi dung caùc thanh ghi coù chöùc naêng ñaëc bieät SFR Ñòa chæ Teân Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on Power-on RESET Bank 0 00h INDF Söû duïng noäi dung cuûa SFR tôùi ñòa chæ boä nhôù döõ lieäu ---- ---- 01h TMR0 8-bit Real-Time Clock/Counter xxxx xxxx 02h PCL Ñaët 8 bit thaáp cuûa boä ñeám chöông trình (PC) 03h STATUS IRP RP1 RP0 Z DC C 0001 1xxx 04h FSR Ñòa chæ boä nhôù döõ lieäu giaùn tieáp pointer 0 xxxx xxxx 05h PORTA --- --- --- RA4/ T0CKI RA3 RA2 RA1 RA0 ---x xxxx 06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/INT xxxx xxxx 07h --- Ñoïc nhö ‘0’ --- 08h EEDATA Thanh ghi döõ lieäu EEPROM xxxx xxxx 09h EEADR Thanh ghi ñòa chæ EEPROM xxxx xxxx 0Ah PCLATH --- --- --- Boä ñeäm ghi cho 5 bit treân PC ---0 0000 0Bh INTCON GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 0000 0000 Bank 1 80h INDF Söû duïng noäi dung cuûa FSR laøm ñòa chæ boä nhôù döõ lieäu ---- ---- 81h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 82h PCL Ñaët 8 bit thaáp cuûa boä ñeám chöông trình (PC) 0000 0000 83h STATUS IRP RP1 RP0 Z DC C 0001 1xxx 84h FSR Ñòa chæ boä nhôù döõ lieäu giaùn tieáp pointer 0 xxxx xxxx 85h TRISA --- --- --- Thanh ghi giaùn tieáp döõ lieäu PORTB ---1 1111 86h TRISB Thanh ghi giaùn tieáp döõ lieäu PORTB 1111 1111 87h --- Ñoïc nhö ‘0’ --- 88h EECON1 --- --- --- EEIF WRERR WREN WR RD ---0 x000 89h EECON2 Thanh ghi 2 ñieàu khieån EEPROM ---- ---- 0Ah PCLATH --- --- --- Boä ñeäm ghi cho 5 bit treân PC ---0 0000 0Bh INTCON GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x Thanh Ghi Traïng Thaùi ( STATUS ) R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x IRP RP1 RP0 Z DC C bit 7 bit 0 Ghi chuù : R : bit coù theå ñoïc W : bit coù theå ghi -n : giaù trò khi Reset nguoàn (-x : chöa bieát ) Caáu truùc thanh ghi traïng thaùi ôû ñòa chæ 03h vaø 83h Bit 0 C ( Carry ) 1 = laáy ra bit quan troïng nhaát töø keát quaû 0 = khoâng laáy ra bit quan troïng nhaát cuûa keát quaû Bit 1 DC ( Digit Carry ) 1 = laáy bit thaáp thöù tö cuûa keát quaû 0 = khoâng laáy bit thaáp thöù tö cuûa keát quaû Bit 2 Z ( Zero bit ) 1 = keát quaû cuûa pheùp tính soá hoïc hoaëc logic laø zero 0 = keát quaû cuûa pheùp tính soá hoïc hoaëc logic khaùc zero Bit 3 :bit taét nguoàn 1 = sau khi baät nguoàn hoaëc duøng leänh CLRWDT 0 = khi duøng leänh SLEEP Bit 4 : Time-out bit 1 = sau khi môû nguoàn, khi thöïc hieän leänh CLRWDT hoaëc leänh SLEEP 0 = khi WDT traøn Bit 6:5 RP1:RP0 ( Register Bank Select bit ) bit choïn bank thanh ghi 01 = Bank 1 ( 80h - FFh) 00 = Bank 0 ( 00h – 7Fh) Bit 7 IRP Ñoái vôùi con PIC16F84A thì bit naøy khoâng duøng vaø noù ñöôïc duy trì ôû möùc ‘0’. Ñoái vôùi caùc doøng vi ñieàu khieån PIC cao hôn ( loaïi coù 4 bank thanh ghi ) thì noù duøng ñeå choïn bank thanh ghi 1 = bank 2 vaø 3 0 = bank 0 vaø 1 Thanh ghi traïng thaùi chöùa caùc traïng thaùi soá hoïc cuûa ALU ( C, DC, Z), traïng thaùi Reset ( , ) vaø nhöõng bit choïn bank nhôù (IRP, RP1, RP0) Thanh ghi tuøy choïn ( OPTION_REG) R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 INTEDG T0CS T0SE PSA PS2 PS1 PS0 bit 7 bit 0 Ghi chuù : R : bit coù theå ñoïc W : bit coù theå ghi -n : giaù trò khi Reset nguoàn (-x : chöa bieát ) Caáu truùc thanh ghi tuyø choïn ôû ñòa chæ 81h Thanh ghi tuyø choïn laø thanh ghi coù theå ñoïc vaø ghi ñöôïc noù bao goàm nhöõng bit ñieàu khieån khaùc nhau nhö laø ñònh caáu hình Prescaler tôùi TMR0/WDT, ngaét ngoaøi INT, TMR0, cheá ñoä ‘ Pull-up’ treân PORTB Bit 0:2 PS0, PS1, PS2 : bit choïn toác ñoä Prescaler 3 bit naøy duøng ñeå ñònh toác ñoä Prescaler (xem baûng döôùi). Vieäc ñònh toác ñoä Prescaler coù theå aûnh höôûng ñeán söï laøm vieäc cuûa vi ñieàu khieån, ñieàu naøy seõ ñöôïc ñeà caäp roõ hôn ôû phaàn TMR0 Giaù trò bit Möùc TMR0 Möùc WDT 000 001 010 011 100 101 110 111 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 Bit 3 PSA ( Prescaler Assignment bit ) Bit chæ ñònh Prescaler tôùi TMR0 hay Watchdog 1 = Prescaler ñöôïc chæ ñònh tôùi Watchdog 0 = Prescaler ñöôïc chæ ñònh tôùi moâñun TMR0 Bit 4 T0SE ( TMR0 Source Edge Select bit) : bit ._.choïn caïnh nguoàn TMR0 Neáu choïn moâñun TMR0 ôû cheá ñoä ñeám baèng nguoàn xung ôû chaân RA4/T0CKI thì bit naøy xaùc ñònh caïnh leân hay caïnh xuoáng cuûa tín hieäu 1 = kích caïnh xuoáng 0 = kích caïnh leân Bit 5 T0CS ( TMR0 Clock Source Select bit ) Bit löïa choïn nguoàn xung TMR0 Bit naøy cho pheùp boä ñeám TMR0 taêng baèng nguoàn dao ñoäng beân trong ôû moãi 1/4 dao ñoäng xung clock hay nguoàn xung beân ngoaøi ôû chaân RA4/T0CKI 1 = töø nguoàn xung beân ngoaøi 0 = 1/4 dao ñoäng xung clock beân trong Bit 6 INTEDG ( Interrupt Edge Select bit ) : bit choïn caïnh ngaét Neáu ngaét ngoaøi treân chaân RB0/INT ñöôïc cho pheùp thì bit naøy seõ xaùc ñònh caïnh ngaét taïi RB0/INT 1 = ngaét baèng caïnh leân 0 = ngaét baèng caïnh xuoáng Bit 7 RBPU ( PORTB Pull-up Enable bit) Bit naøy duøng ñeå môû hoaëc taét caùc chaân cuûa PORTB coù ñieän trôû beân trong keùo leân nguoàn VDD 1 = taét 0 = môû Thanh ghi INTCON R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x GIE EEIE T0IE INTE RBIE T0IF INTF RBIF bit 7 bit 0 Ghi chuù : R : bit coù theå ñoïc W : bit coù theå ghi -n : giaù trò khi Reset nguoàn (-x : chöa bieát ) Caáu truùc thanh ghi INTCON ôû ñòa chæ 0Bh vaø 8Bh Bit 0 RBIF ( RB Port Change Interrupt Flag bit ) Bit côø ngaét thay ñoåi port RB 1 = ít nhaát 1 trong caùc chaân RB4 : RB7 thay ñoåi traïng thaùi 0 = khoâng coù chaân naøo trong caùc chaân RB4 : RB7 thay ñoåi traïng thaùi Bit 1 INTF ( INT Enternal Interrupt Flag bit ) Bit côø ngaét ngoaøi ôû chaân RB0/INT 1 = xaûy ra ngaét ngoaøi 0 = khoâng xaûy ra ngaét ngoaøi Bit 2 T0IF ( TMR0 Overflow Interrupt Flag bit ) bit côø ngaét traøn TMR0 1 = boä ñeám thay ñoåi traïng thaùi töø FFh tôùi 00h 0 = traøn khoâng xaûy ra Bit 3 RBIE ( RB Port Change Interrupt Enable bit ) Cho pheùp ngaét xaûy ra khi thay ñoåi traïng thaùi treân caùc chaân 4,5,6 vaø 7 cuûa Port B 1 = cho pheùp ngaét khi thay ñoåi traïng thaùi 0 = khoâng cho pheùp ngaét khi thay ñoåi traïng thaùi Bit 4 INTE ( INT External Interrupt Enable bit ) Bit cho pheùp ngaét ngoaøi taïi chaân RB0/INT 1 = cho pheùp ngaét ngoaøi 0 = khoâng cho pheùp ngaét ngoaøi Bit 5 T0IE ( TMR0 Overflow Interrupt Enable bit ) Bit cho pheùp ngaét khi boä ñeám TMR0 traøn 1 = cho pheùp ngaét 0 = khoâng cho pheùp ngaét Neáu bit T0IE vaø T0IF ñöôïc set ñoàng thôøi thì ngaét xaûy ra Bit 6 EEIE ( EEPROM Write Complete Interrupt Enable bit) : Bit naøy cho pheùp ngaét xaûy ra khi keát thuùc vieäc ghi thoâng thöôøng tôùi EEPROM 1 = cho pheùp ngaét 0 = khoâng cho pheùp ngaét Neáu bit EEIE vaø EEIF ( bit EEIF naèm trong thanh ghi EECON1) ñöôïc set thì ngaét xaûy ra Bit 7 GIE ( Global Interrupt Enable bit ) bit cho pheùp ngaét toång theå 1 = cho pheùp taát caû caùc ngaét 0 = ñoùng taát caû caùc ngaét II.6.2.b. Boä nhôù EEPROM Boä nhôù döõ lieäu EEPROM coù theå ñoïc vaø ghi trong ñieàu kieän hoaït ñoäng bình thöôøng (VDD phaûi ñuû). Boä nhôù naøy khoâng coù baûn ñoà tröïc tieáp trong khoâng gian file thanh ghi. Thay vaøo ñoù noù ñöôïc ñònh vò giaùn tieáp qua caùc thanh ghi coù chöùc naêng ñaëc bieät. Coù 4 thanh ghi trong SFR ñöôïc söû duïng ñeå ñoïc vaø ghi boä nhôù EEPROM. Nhöõng thanh ghi naøy laø: EECON1 EECON2 (khoâng phaûi laø moät thanh ghi veà maët vaät lyù ñöôïc thöïc hieän) EEDATA EEADR EEDATA chöùa 8 bit döõ lieäu cho ñoïc/ghi, vaø EEADR chöùa ñòa chæ cuûa vò trí EEPROM duy trì ñòa chæ cuûa vò trí EEPROM ñöôïc truy caäp. Vi maïch PIC16F84A coù 64 byte cuûa döõ lieäu EEPROM vôùi phaïm vi ñòa chæ töø 00h ñeán 3Fh. Boä nhôù döõ lieäu EEPROM cho pheùp ñoïc vaø ghi töøng byte. Khi ghi moät byte thì döõ lieäu tröôùc ñoù taïi vò trí ghi seõ ñöôïc xoaù töï ñoäng tröôùc khi döõ lieäu môùi ñöôïc ghi vaøo. Boä nhôù döõ lieäu EEPROM coù soá laàn ghi xoùa lôùn . Thôøi gian ghi ñöôïc ñieàu khieån bôûi timer treân vi maïch. Thôøi gian ghi seõ thay ñoåi theo ñieän aùp vaø nhieät ñoä cuõng nhö töø maïch ñeán maïch. Khi vi maïch ñöôïc baûo veä, thì CPU coù theå tieáp tuïc ñoïc/ghi döõ lieäu boä nhôù EEPROM. Tuy nhieân boä laäp trình cho vi maïch khoâng theå truy xuaát vaøo boä nhôù naøy. U-0 U-0 U-0 R/W-0 R/W-x R/W-0 R/S-0 R/S-0 --- --- --- EEIF WRERR WREN WR RD bit 7 bit 0 Caáu truùc thanh ghi EECON1 (ñòa chæ 88h) bit 7-5 : Duy trì ôû möùc ‘0’ bit 4 : EEIF: EEPROM ghi hoaït ñoäng cuûa bit côø ngaét 1= ghi söï hoaït ñoäng ñöôïc hoaøn thaønh (phaûi ñöôïc clear trong phaàn meàm) 0= ghi söï hoaït ñoäng khoâng ñöôïc hoaøn thaønh hoaëc khoâng baét ñaàu bit 3 : WRERR: bit côø hieäu cuûa EEPROM bò loãi 1= ñoïc söï hoaït ñoäng ñuôïc keát thuùc sôùm 0= ñoïc söï hoaït ñoäng hoaøn thaønh bit 2 : WREN: bit maø EEPROM cho pheùp ghi 1= cho pheùp ghi chu trình 0= khoâng pheùp ghi tôùi EEPROM bit 1 : WR: bit ñieàu khieån ñoïc 1= chu trình ghi bò caám, khi hoaøn thaønh moät laàn ñoïc thì bit ñoù ñöôïc clear bôûi phaàn cöùng. Bit WR coù theå chæ ñöôïc set (khoâng clear) trong phaàn meàm. 0= hoaøn thaønh chu trình ghi tôùi EEPROM bit 0 : RD: bit ñieàu khieån ñoïc 1= caám EEPROM ñoïc RD ñöôïc clear trong phaàn cöùng. Bit RD coù theå chæ ñöôïc set (khoâng clear) trong phaàn meàm. 0=khoâng caám EEPROM ñoïc. Ñoïc boä nhôù döõ lieäu EEPROM Ñeå ñoïc 1 vò trí cuûa boä nhôù döõ lieäu ngöôøi laäp trình phaûi ghi ñòa chæ leân thanh ghi EEADR vaø sau ñoù taïo bit ñieàu khieån RD (EECON1 ). Döõ lieäu ñuôïc chuyeån vaøo thanh ghi EEDATA trong caùc chu kyø keá tieáp. Do ñoù döõ lieäu coù theå ñöôïc ñoïc trong nhöõng chu kyø tieáp theo. EEDATA seõ giöõ giaù trò döõ lieäu cho ñeán laàn ñoïc khaùc hoaëc laàn ghi döõ lieäu. Ví duï : Ñoïc döõ lieäu EEPROM BCF STATUS, RP0 ; Bank 0 MOVLW CONFIG_ADDR ; MOVWF EEADR ; Address to read BSF STATUS, RP0 ; Bank 1 BSF EECON1, RD ; EE Read BCF STATUS, RP0 ; Bank 0 MOVF EEDATA, W ; W=EEDATA Ghi tôùi boä nhôù döõ lieäu EEPROM Ñeå ghi moät vò trí döõ lieäu EEPROM ngöôøi laäp trình tröôùc heát phaûi ghi ñòa chæ ñeán thanh ghi EEADR vaø döõ lieäu ñeán thanh ghi EEDATA. Sau ñoù ngöôøi söû duïng phaûi theo moät söï noái tieáp ñaëc bieät ñeå baét ñaàu vieát cho moãi byte. Ví duï : ghi döõ lieäu vaøo EEPROM BSF STATUS, RP0 ;Bank 1 BCF INTCON, GIE ;Disable INTs BSF EECON1, WREN ;Enable Write MOVLW 55h ; MOVWF EECON2 ;Write 55h MOVLW AAh ; MOVWF EECON2 ;Write AAh BSF EECON1, WR ;Set WR bit begin write BSF INTCON, GIE ;Enable INTs Ghi seõ khoâng khôûi ñaàu neáu quaù trình treân chöa ñöôïc ñi theo chính xaùc (ghi 55h ñeán EECON2, ghi AAh ñeán EECON2, luùc ñoù set bit WR) cho moãi byte. Ngaét seõ khoâng theå taùc ñoäng trong khi thöïc hieän ñoaïn maõ treân. Ñoàng thôøi bit WREN trong EECON1 phaûi ñöôïc taïo ra ñeå cho pheùp ghi. Cô cheá naøy nhaèm ngaên ngöøa söï ghi döõ lieäu EEPROM thình lình bôûi söï thöïc hieän khoâng ñuùng maõ (i.e., maát chöông trình). Ngöôøilaäp trình caàn phaûi giöõ bit WREN troáng ôû taát caû thôøi gian, tröø khi naøo ñieàu chænh EEPROM. Bit WREN khoâng ñöôïc xoùa bôûi phaàn cöùng. Sau khi quaù trình ghi baét ñaàu, xoùa bit WREN seõ khoâng aûnh höôûng ñeán chu trình ghi naøy. Bit WR seõ khoâng ñöôïc thieát laäp tröø khi bit WREN ñöôïc thieát laäp. Luùc hoaøn thaønh chu trình vieát bit WR ñöôïc xoaù baèng phaàn cöùng vaø bit EEIF ñöôïc thieát laäp. Ngöôøi laäp trình coù theå cho pheùp moãi ngaét naøy hoaëc kieåm tra bit naøy. EEIF phaûi ñöôïc xoaù bôûi phaàn meàm. Kieåm tra quaù trình ghi: Phuï thuoäc vaøo öùng duïng, thöïc haønh laäp trình toát coù theå ñoïc chính taû giaù trò ñoù ñöôïc vieát cho döõ lieäu EEPROM caàn phaûi ñöôïc xaùc minh tôùi giaù trò mong muoán seõ ñöôïc vieát. Caùi naøy phaûi ñöôïc söû duïng trong nhöõng öùng duïng ôû nôi maø 1 bit EEPROM seõ ñöôïc nhaán maïnh gaàn giôùi haïn thieát minh. Noùi chung vieát EEPROM thaát baïi seõ laø moät bit maø ñöôïc vieát nhö laø ‘0’, nhöng ñoïc luøi nhö ‘1’ Ví duï : BCF STATUS, RP0 ; choïn Bank 0 : ; Any code : ; can go here MOVF EEDATA, W ; Must be in bank 0 BSF STATUS, RP0 ; Bank 1 READ BSF EECON1, RD ; YES, read the ; value written BCF STATUS, RP0 ; Bank 0 ; ; Is the value written ; (in W reg) and ; read (in EEDATA) ; the same? ; SUBWF EEDATA, W ; BTFSS STATUS, Z ; IS difference 0? GOTO WRITE_ERR ; NO, Write error Caùc thanh ghi / Caùc bit keát hôïp vôùi döõ lieäu EEPROM: Ñòa chæ Teân bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 Giaù trò khi reset nguoàn Giaù trò cuûa caùc nguoàn reset khaùc 08h EEDATA Thanh ghi döõ lieäu EEPROM xxxx xxxx uuuu uuuu 09h EEADR Thanh ghi ñòa chæ EEPROM xxxx xxxx uuuu uuuu 88h EECON1 --- --- --- EEIF WRERR WREN WR RD ---0 x000 ---0 q000 89h EECON2 Thanh ghi 2 ñieàu khieån EEPROM ---- ---- ---- ---- Ghi chuù: x = khoâng bieát. u = khoâng thay ñoåi. - = khoâng duøng, ñoïc nhö ‘0’. q = tuyø thuoäc vaøo giaù trò treân traïng thaùi --- khoâng ñöôïc söû duïng bôûi döõ lieäu EEPROM Boä ñeám chöông trình (Program Counter) Boä ñeám chöông trình (PC) chöùa ñòa chæ cuûa leänh tieáp theo maø chöông trình seõ thöïc hieän. PC daøi 13 bit. 8 bit thaáp ñöôïc goïi laø thanh ghi PCL, thanh ghi naøy coù theå ñoïc vaø ghi ñöôïc. 5 bit cao ñöôïc goïi laø thanh ghi PCLATH, thanh ghi naøy khoâng theå ñoïc hoaëc ghi tröïc tieáp. PC seõ taêng moät giaù trò moãi laàn moät leänh ñöôïc thöïc hieän vaø vò trí cuûa leänh tieáp theo ñöôïc theå hieän trong PC. Nhöng khi thöïc hieän moät leänh yeâu caàu nhaûy thì boä ñeám naøy ñöôïc ghi laïi ñòa chæ nôi maø chöông trình nhaûy ñeán Ngaên xeáp (Stack) Ngaên xeáp duøng ñeå löu tröõ ñòa chæ ñeå trôû veà chöông trình khi chöông trình thöïc hieän leänh nhaûy ñeán chöông trình khaùc nhö khi thöïc hieän leänh CALL hoaëc khi coù moät ñieàu kieän ngaét xaûy ra. Ñòa chæ löu treân ngaên xeáp seõ ñöôïc laáy ra khi gaëp leänh RETURN, RETLW hay RETFIE Ví duï : neáu moät chöông trình xöû lyù moät vieäc ñöôïc thöïc hieän nhieàu laàn thì thöôøng söû duïng moät chöông trình con ñeå thöïc hieän rieâng taùc vuï ñoù. Leänh CALL ñöôïc duøng ñeå nhaûy ñeán chöông trình con vaø ñeå keát thuùc chöông trình con thì caàn thöïc hieän leänh RETURN. Khi chöông trình gaëp leänh CALL, ñòa chæ cuûa leänh sau leänh CALL ñöôïc löu ôû ñænh ngaên xeáp, hoaït ñoäng naøy goïi laø PUSH. Leänh RETURN ñöôïc thöïc hieän ñeå baùo keát thuùc moät chöông trình con vaø ñòa chæ ôû ñænh ngaên xeáp ñöôïc ñaët vaøo PC vaø chöông trình tieáp tuïc thöïc hieän taïi ñòa chæ naøy, hoaït ñoäng naøy goïi laø POP Ngaên xeáp goàm coù 8 thanh ghi, moãi thanh ghi daøi 13 bit. Boä nhôù cuûa ngaên xeáp khoâng naèm trong boä nhôù chöông trình hay boä nhôù döõ lieäu vaø caùc thanh ghi trong ngaên xeáp khoâng theå ñoïc hoaëc ghi Ngaên xeáp coù chieàu saâu 8 möùc (8 thanh ghi), ñieàu naøy coù nghóa laø ta coù theå thöïc hieän tuaàn töï 8 chöông trình con (bao goàm caû ngaét) lieân tieáp Caùch hoaït ñoäng cuûa ngaên xeáp ñöôïc theå hieän nhö giaûi thuaät sau : Hình 12 : Caùch löu ñòa chæ leänh vaøo ngaên xeáp Khi chöông trình ñang chaïy neáu baét gaëp leänh CALL hay ñieàu kieän ngaét xaûy ra thì ñòa chæ cuûa leänh sau noù seõ ñöôïc löu vaøo ñænh cuûa ngaên xeáp vaø caùc ñòa chæ tröôùc ñoù trong ngaên xeáp seõ giaûm xuoáng 1 möùc trong ngaên xeáp. Khi laáy ñòa chæ töø ngaên xeáp ra seõ laáy töø ñænh cuûa ngaên xeáp vaø caùc ñòa chæ phía döôùi trong ngaên xeáp seõ ñöôïc ñaåy leân 1 möùc. ÔÛ hình 12 khi chöông trình chính thöïc hieän ñeán leänh CALL SUB1 thì ñòa chæ cuûa leänh sau noù laø X1 ñöôïc löu vaøo ñænh cuûa ngaên xeáp. ÔÛ chöông trình con SUB1, khi gaëp leänh CALL SUB2 thì ñòa chæ cuûa leänh sau noù laø X2 ñöôïc löu vaøo ñænh cuûa ngaên xeáp vaø vò trí cuûa X1 bò giaûm xuoáng 1 möùc. Cöù tieáp tuïc nhö vaäy, ôû chöông trình con SUB7 khi gaëp leänh CALL SUB8 thì ñòa chæ cuûa leänh sau noù laø X8 ñöôïc löu vaøo ñænh cuûa ngaên xeáp. Nhö vaäy luùc naøy ngaên xeáp ñaõ ñaày, neáu trong chöông trình con SUB8 coù leänh CALL thì ñòa chæ cuûa leänh sau noù ví duï laø X9 seõ ñöôïc löu vaøo ñænh ngaên xeáp vaø ñòa chæ X1 seõ bò maát ñi. Nhö vaäy luùc naøy PC seõ göûi ñeán chöông trình chính ñòa chæ khoâng ñuùng. Cheá ñoä ñòa chæ Ñòa chæ vaät lyù boä nhôù RAM coù theå ñöôïc truy xuaát tröïc tieáp hay giaùn tieáp Ñònh ñòa chæ tröïc tieáp Ñònh ñòa chæ tröïc tieáp ñöôïc thöïc hieän qua 9 bit ñòa chæ. Ñòa chæ naøy thu ñöôïc baèng caùch noái 7 bit ñòa chæ tröïc tieáp cuûa moät leänh vôùi hai bit RP0, RP1 ( bit 5 vaø 6 cuûa thanh ghi STATUS ) ñöôïc bieåu dieãn nhö hình 13. Ví duï cuûa ñònh ñòa chæ tröïc tieáp laø vieäc truy xuaát tôùi caùc thanh ghi SFR BSF STATUS, RP0 ;choïn bank 1 MOVLW 0xFF ;w=0xFF MOVWF TRISA ;ñòa chæ cuûa thanh ghi ;TRISA ñöôïc laáy töø leänh ;MOVWF Hình 13 : Ñònh ñòa chæ tröïc tieáp Ñònh ñòa chæ giaùn tieáp Ñònh ñòa chæ giaùn tieáp khoâng gioáng vôùi ñònh ñòa chæ tröïc tieáp laø khoâng laáy ñòa chæ töø leänh maø laáy ñòa chæ töø bit IRP ( bit 7 cuûa thanh ghi STATUS ) vaø thanh ghi FSR ( thanh ghi FSR laø moät con troû noù chöùa ñòa chæ cuûa caùc thanh ghi ). Ñòa chæ INDF xaùc ñònh caùc thanh ghi maø ñòa chæ cuûa chuùng naèm trong thanh ghi FSR Ví duï : Giaû söû moät thanh ghi muïc ñích chung (GPR) ôû ñòa chæ 0Fh chöùa giaù trò laø 20, baèng vieäc ghi giaù trò 0Fh vaøo thanh ghi FSR seõ coù ñöôïc moät thanh ghi baùo ôû ñòa chæ 0Fh vaø khi ñoïc töø thanh ghi INDF seõ cho moät giaù trò laø 20. Ñieàu naøy coù nghóa laø ta khoâng coù truy suaát tröïc tieáp giaù trò cuûa thanh ghi ôû ñòa chæ 0Fh maø truy suaát giaùn tieáp qua thanh ghi FSR vaø INDF. Hình 14 : Ñònh ñòa chæ giaùn tieáp Nhö vaäy ñònh ñòa chæ giaùn tieáp khoâng thuaän lôïi hôn ñònh ñòa chæ tröïc tieáp nhöng noù raát thuaän tieän trong vaøi tröôøng hôïp ví duï nhö khi thao taùc treân moät daûi caùc thanh ghi GPR, trong tröôøng hôïp naøy chæ caàn ghi vaøo thanh ghi FSR ñòa chæ ñaàu tieân cuûa daûi vaø luùc naøy döõ lieäu coù theå ñöôïc truy xuaát baèng caùch taêng thanh ghi FSR Ví duï : ñoaïn chöông trình sau duøng xoùa RAM ôû ñòa chæ 0Fh ñeán 1Fh MOVLW 0Fh MOVWF FSR LOOP CLRF INDF INCF FSR BTFSS FSR, 5 GOTO LOOP CONTINUE . . Ñoïc giaùn tieáp döõ lieäu thanh ghi INDF khi noäi dung cuûa thanh ghi FSR laø 0 seõ cho giaù trò 00h. Vieäc ghi giaùn tieáp leân thanh ghi INDF khoâng hoaït ñoäng II.7. Caáu truùc coång I/O Coång I/O ñöôïc duøng ñeå PIC giao tieáp vôùi caùc thieát bò, vi maïch beân ngoaøi. PIC 16F84A coù 13 chaân I/O, ñöôïc chia thaønh 2 port goïi laø Port A vaø Port B. Port A goàm 5 chaân töông öùng vôùi thanh ghi PORTA, port B goàm 8 chaân töông öùng vôùi thanh ghi PORTB. Moãi thanh ghi goàm 8 bit, moãi bit töông öùng vôùi moät chaân. Thanh ghi PORTA coù 5 bit ñöôïc söû duïng (bit 0 ñeán bit 4 ) vaø 3bit khoâng söû duïng (bit 5, bit 6, bit 7). Thanh ghi PORTB coù 8 bit ñöôïc söû duïng taát caû. Vieäc choïn cheá ñoä ngoõ vaøo/ra cuûa moãi chaân thoâng qua thanh ghi TRISA cho port A vaø thanh ghi TRISB cho port B Ñòa chæ Thanh ghi Bit 7 Bit6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Giaù trò reset nguoàn Giaù trò ôû caùc reset khaùc 05H PORTA — — — RA4/ T0CKI RA3 RA2 RA1 RA0 ---x xxxx ---u uuuu 85H TRISA — — — TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 ---1 1111 ---1 111 06H PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/ INT xxxxxxxx uuuuuuuu 86H TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 11111111 11111111 Ghi chuù : — : bit khoâng söû duïng x : giaù trò khoâng xaùc ñònh ñöôïc u :giaù trò khoâng thay ñoåi Neáu set bit n (bit n = “1” : n = 0 ñeán 7) trong thanh ghi TRISx (x laø A hoaëc B) thì chaân töông öùng vôùi bit n trong thanh ghi PORTx ñöôïc choïn ôû cheá ñoä ngoõ vaøo, ngöôïc laïi neáu clear bit n (bit n = “0”) trong thanh ghi TRISx thì chaân töông öùng vôùi bit n trong thanh ghi PORTx ñöôïc choïn ôû cheá ñoä ngoõ ra. Ñeå deã nhôù ngöoøi vieát coù theå xem “0” laø O - Output vaø “1”laø I – Input. Ví duï : Neáu muoán thieát laäp chaân RA0 ôû cheá ñoä ngoõ vaøo, RA1 ôû cheá ñoä ngoõ ra cuûa thanh ghi port A thì ngöoøi laäp trình chæ caàn set bit TRISA0 vaø clear bit TRISA1 cuûa thanh ghi TRISA. Veà chöông trình khôûi taïo, truy xuaát caùc port seõ ñöôïc ñeà caäp chi tieát ôû phaàn laäp trình PIC. Ngoaøi ra port A vaø port B coøn coù caùc chöùc naêng khaùc treân caùc chaân ñaëc bieät. ÔÛ port A, chaân RA4/T0CKI coù theå söû duïng laø ngoõ vaøo xung clock cuûa moâñun TMR0 . ÔÛ port B, chaân RB0 coù chöùc naêng taïo ngaét ngoaøi, caùc chaân RB4 ñeán RB7 coù chöùc naêng nhaän bieát söï thay ñoåi tín hieäu ngoõ vaøo ñeå taïo ra ngaét. Caùc chöùc naêng naøy caàn phaûi ñöôïc thieát laäp (xem caùch thieát laäp vaø hoaït ñoäng ôû phaàn moâñun TIMER0 vaø Ngaét). II.7.1/ PORT A II.7.1.a. Caáu truùc chaân RA0 – RA3 Hình 15 : Sô ñoà maïch chaân RA0 – RA3 Maïch ngoõ ra döõ lieäu goàm coù thanh ghi choát döõ lieäu OUT ( duøng Flip – Flop loaïi D kích caïnh xuoáng ) vaø maïch ñieàu khieån ñaàu ra duøng coâng ngheä CMOS (Complementary-Metal Oxide Semiconductor) Maïch ngoõ vaøo goàm thanh ghi choát döõ lieäu IN ( duøng Flip – Flop loaïi D ) vaø caùc coång ñeäm Ngoaøi ra coøn coù thanh ghi choát TRIS ( duøng Flip – Flop loaïi D ) duøng choát döõ lieäu thanh ghi TRISA Hoaït ñoäng cuûa maïch ñieàu khieån ngoõ ra Hình 16 : Hoaït ñoäng cuûa P-FET vaø N-FET Ngoõ ra duøng CMOS laø maïch phoái hôïp giöõa MOSFET keânh N ( N-FET ) vaø MOSFET keânh P ( P-FET ). Ôû loaïi P-FET, khi cöïc G laø möùc L (möùc “0”) noù trôû thaønh ñieàu kieän ON vaø khi möùc H (möùc “1”) noù trôû thaønh ñieàu kieän OFF. Ñoái vôùi loaïi N-FET thì khi cöïc G laø möùc L thì noù trôû thaønh ñieàu kieän OFF vaø khi möùc H noù trôû thaønh ñieàu kieän ON Döõ lieäu trong thanh ghi PORTA ñöôïc choát bôûi thanh ghi choát döõ lieäu OUT. Cheá ñoä cuûa moãi chaân ñöôïc choïn bôûi thanh ghi TRISA. Giaù trò ñaët trong thanh ghi TRISA ñöôïc ñöa leân bus döõ lieäu vaø ñöôïc choát bôûi thanh ghi choát TRIS. Ngoõ ra ñaûo cuûa thanh ghi choát döõ lieäu OUT vaø ngoõ ra Q cuûa thanh ghi choát TRIS laø ngoõ vaøo maïch coång OR duøng ñeå ñieàu khieån P-FET. Ngoõ ra ñaûo cuûa thanh ghi choát döõ lieäu OUT vaø ngoõ ra cuûa thanh ghi choát TRIS laø ngoõ vaøo maïch coång AND duøng ñeå ñieàu khieån N-FET Hoaït ñoäng cuûa maïch ôû cheá ñoä ngoõ ra Hình 17 : Hoaït ñoäng cuûa maïch ñieàu khieän ngoõ ra ôû cheá ñoä ngoõ ra Ñeå thieát laäp cheá ñoä ngoõ ra cho bit töông öùng vôùi chaân caàn thieát laäp trong thanh ghi TRISA ôû möùc “0” . Nhö vaäy ngoõ ra Q cuûa thanh ghi choát TRIS laø möùc L vaø ngoõ ra ñaûo laø möùc H. Luùc naøy ngoõ ra cuûa chaân ñöôïc thieát laäp laø möùc H hay möùc L seõ phuï thuoäc vaøo ngoõ ra ñaûo cuûa thanh ghi choát döõ lieäu OUT . Khi ngoõ ra ñaûo cuûa thanh ghi choát döõ lieäu OUT laø möùc H thì ngoõ ra coång OR laø möùc H vaø ngoõ ra coång AND laø möùc H, ñieàu naøy daãn ñeán P-FET ôû ñieàu kieän OFF vaø N-FET ôû ñieàu kieän ON töùc laø ngoõ ra chaân I/O coù möùc L . Khi ngoõ ra ñaûo cuûa thanh ghi choát döõ lieäu OUT laø möùc L thì ngoõ ra coång OR laø möùc L vaø ngoõ ra coång AND laø möùc L , ñieàu naøy daãn ñeán P-FET ôû ñieàu kieän ON vaø N-FET ôû ñieàu kieän OFF töùc laø ngoõ ra chaân I/O coù möùc H Söï chuyeån giao cuûa ñaàu vaøo döõ lieäu tôùi ngoõ ra thanh ghi choát döõ lieäu OUT, söï thieát laäp döõ lieäu tôùi thanh ghi choát TRIS vaø döõ lieäu töø chaân I/O tôùi thanh ghi choát döõ lieäu IN ñöôïc laøm thoâng qua BUS döõ lieäu. Bus döõ lieäu coù 8 ñöôøng vaø söï chuyeån giao döõ lieäu vôùi caùc chaân laø song song. Bôûi vì bus döõ lieäu ñöôïc duøng phoå bieán, söï chuyeån giao thoâng tin ñöôïc ñieàu khieån bôûi xung tín hieäu tôùi moãi thanh ghi Hình 18 : Xung tín hieäu ñieàu khieån choát döõ lieäu ngoõ ra Khi muoán xuaát ra noäi dung cuûa thanh ghi PORTA, ñaàu tieân döõ lieäu cuûa thanh ghi PORTA ñöôïc ñaët tôùi bus döõ lieäu, tieáp ñeán tín hieäu ñieàu khieån WR PORT cuûa thanh ghi choát döõ lieäu OUT thay ñoåi töø möùc H xuoáng möùc L( kích caïnh xuoáng ) vaø döõ lieäu treân bus ñöôïc ghi tôùi thanh ghi choát döõ lieäu OUT. Sau ñoù döõ lieäu ñöôïc choát bôûi thanh ghi choát döõ lieäu OUT vaø noù seõ khoâng thay ñoåi cho tôùi khi coù moät caïnh xuoáng tieáp theo cuûa tín hieäu ñieàu khieån WR PORT Töông töï cho thanh ghi choát TRIS, ñaàu tieân noäi dung cuûa thanh ghi TRISA ñöôïc leân bus döõ lieäu, sau ñoù tín hieäu ñieàu khieån WR TRIS cuûa thanh ghi choát TRIS coù caïnh xuoáng, döõ lieäu seõ ñöôïc ghi vaø choát taïi ngoõ ra cuûa thanh ghi choát TRIS. Moät coång ñaûo ñöôïc duøng ñeå ñoïc noäi dung cuûa thanh ghi choát TRIS vaø ñöa leân bus döõ lieäu khi tín hieäu RD TRIS coù möùc “1” Hoaït ñoäng cuûa maïch ôû cheá ñoä ngoõ vaøo Hình 19 : Hoaït ñoäng cuûa maïch ñieàu khieån ngoõ ra ôû cheá ñoä ngoõ vaøo Ngoõ ra Q cuûa thanh ghi choát TRIS laø möùc H do ñoù ngoõ ra coång OR luoân laø möùc H vì theá P-FET luoân ôû ñieàu kieän OFF, töông töï ngoõ ra ñaûo cuûa thanh ghi choát TRIS laø möùc L do ñoù ngoõ ra cuûa coång AND luoân laø möùc L vì theá N-FET luoân ôû ñieàu kieän OFF . Nhö vaäy trong tröôøng hôïp naøy P-FET vaø N-FET luoân ôû ñieàu kieän OFF. Chaân I/O luùc naøy taùch rôøi vôùi maïch ñieàu khieån ngoõ ra vaø noù chæ nhaän tín hieäu töø beân ngoaøi ñöa vaøo Maïch ngoõ vaøo luoân ñöôïc noái vôùi chaân I/O, vì theá ngay caû khi chaân I/O naøy thieát laäp ôû cheá ñoä ngoõ ra thì maïch naøy cuõng laøm vieäc. Tín hieäu ñaàu vaøo naøy ñöôïc ñöa tôùi ngoõ vaøo thanh ghi choát döõ lieäu IN qua coång ñeäm TTL Hình 20 : Maïch ngoõ vaøo döõ lieäu vaø giaûn ñoà thôøi gian Moät coång Gate ôû giöõa thanh ghi choát döõ lieäu IN vaø bus döõ lieäu, coång naøy ñöôïc môû khi tín hieäu RD PORT thay ñoåi töø möùc “0” leân möùc “1” ñoàng thôøi tín hieäu naøy taïo caïnh xuoáng tôùi chaân EN cuûa thanh ghi choát döõ lieäu IN . Traïng thaùi cuûa chaân I/O ñöôïc ghi tôùi thanh ghi choát döõ lieäu IN vaø noù ñöôïc ñaët leân bus döõ lieäu thoâng qua coång Gate. Ôû ñaây thanh ghi choát döõ lieäu IN coù nhieäm vuï laø khoâng laøm aûnh höôûng ñeán döõ lieäu treân bus khi maø döõ lieäu treân chaân I/O thay ñoåi ôû cheá ñoä ngoõ ra. Ôû giaûn ñoà thôøi gian hình 20, luùc ñaàu ngoõ vaøo chaân I/O (A) laø möùc “1”, B ôû möùc “0” thì C möùc “1” thanh ghi choát döõ lieäu IN khoâng hoaït ñoäng neân D möùc “0”, vì B möùc “0” neân coång Gate khoâng môû neân E möùc “0”. Taïi thôøi ñieåm B thay ñoåi töø möùc “0” leân möùc “1” thì C noùi thay ñoåi töø möùc “1” xuoáng möùc “0” taïo canh xuoáng taïi chaân EN laøm cho thanh ghi choát döõ lieäu IN hoaït ñoäng vaø D = A = “1”, do B möùc “1” neân coång Gate môû vaø E = D = “1”. Veà sau khi A thay ñoåi traïng thaùi töø möùc “1” xuoáng möùc “0” ñieàu naøy seõ khoâng aûnh höôûng ñeán caùc traïng thaùi khaùc. Khi B töø möùc “1” trôû veà möùc “0” thì C trôû laïi möùc “1” vaø D seõ khoâng thay ñoåi vaãn laø möùc “1”, luùc naøy coång Gate bò ñoùng neân E ôû möùc “0”. Nhö vaäy taïi thôøi ñieåm B thay ñoåi töø möùc “0” leân möùc “1” thì E = A vaø thieát bò seõ phaùt hieän traïng thaùi naøy trong khoaûng xung B II.7.1.b. Caáu truùc chaân RA4 Hình 21 : Sô ñoà maïch chaân RA4 Trong port A chaân RA4 coù chöùc naêng ñaëc bieät, söï khaùc nhau vôùi chaân khaùc laø FET ñieàu khieån ngoõ ra chæ duøng N-FET vaø coù theâm boä ñeäm ngoõ vaøo Schmitt trigger Chaân naøy coù theå duøng cho ngoõ vaøo xung clock cuûa moâñun TMR0 ôû khoái ngoõ vaøo. Bôûi vì noù söû duïng boä ñeäm ngoõ vaøo loaïi Schmitt, noù coù theå nhaän bieát möùc H hay möùc L khi caïnh leân (hay xuoáng) cuûa tín hieäu beân ngoaøi khoâng xoùa Bôûi vì chaân naøy khoâng coù P-FET ôû maïch ñieàu khieån ngoõ ra, neân chaân naøy trôû thaønh loaïi cöïc maùng hôû ôû cheá ñoä ngoõ ra vì vaäy caàn moät ñieän trôû beân ngoaøi noái chaân naøy leân Vdd ñeå ngoõ ra laø möùc H II.7.2. PORTB II.7.2.a. Caáu truùc chaân RB0 - RB3 Hình 22 : Sô ñoà maïch chaân RB0 – RB3 Caáu taïo maïch ngoõ ra cuûa port B khaùc vôùi port A, noù khoâng söû duïng FET cho maïch ngoõ ra vaø noù thay ñoåi cheá ñoä thoâng qua caùc coång ñieàu khieån. Ñaëc ñieåm cuûa port B laø noù ñöôïc trang bò chöùc naêng “pull-up” chæ hoaït ñoäng ôû cheá ñoä ngoõ vaøo, chöùc naêng “pull-up” naøy khi ñöôïc môû seõ ñöa chaân I/O leân Vdd . Vì vaäy khi cheá ñoä ngoõ vaøo ñöôïc thieát laäp thì caùc chaân I/O naøy ôû möùc cao, thoâng thöôøng ñieän trôû ñöôïc duøng ñeå keùo leân Vdd nhöng ôû ñaây duøng FET. Neáu FET ôû ñieàu kieän ON thì chöùc naêng naøy ñöôïc môû. Khi chöùc naêng naøy aûnh höôûng ñeán söï hoaït ñoäng cuûa noù coù theå khoâng söû duïng Chaân RB0 coøn coù theå söû duïng laø ngoõ vaøo cuûa ngaét ngoaøi vaø noù ñöôïc keát noái qua boä ñeäm loaïi Schmitt Ôû cheá ñoä ngoõ ra thì bit töông öùng vôùi chaân ngoõ ra trong thanh ghi TRISB laø möùc “0”. Giaù trò naøy ñöôïc choát bôûi thanh ghi choát TRIS. Khi ngoõ ra Q cuûa thanh ghi choát TRIS laø möùc “0” thì ngoõ ra cuûa coång NAND luoân laø möùc “1” vaø luùc naøy P-FET trôû thaønh ñieàu kieän OFF, chöùc naêng “pull-up” khoâng ñöôïc söû duïng trong tröôøng hôïp naøy. Ñoàng thôøi möùc “0” cuûa ngoõ ra thanh ghi choát TRIS seõ môû coång ñeäm ôû giöõa thanh ghi choát döõ lieäu OUT vaø chaân I/O. Nhö vaäy luùc naøy döõ lieäu trong thanh ghi PORTB ñöôïc choát bôûi thanh ghi choát TRIS vaø noù xuaát ra chaân I/O qua coång ñeäm Ôû cheá ñoä ngoõ vaøo thì ngoõ ra thanh ghi choát TRIS laø möùc “1”, coång ñieàu khieån döõ lieäu ngoõ ra bò ñoùng vaø tín hieäu ngoõ ra seõ taùch rôøi vôùi chaân I/O, ñoàng thôøi möùc “1” ñeán ngoõ vaøo coång NAND. Luùc naøy ngoõ ra coång NAND laø möùc “0” (Môû chöùc naêng “pull-up”) hay möùc “1” (Taét chöùc naêng “pull-up”) laø tuyø thuoäc vaøo tín hieäu cuûa RBPU (RBPU laø bit 7 trong thanh ghi OPTION-REG ). Neáu tín hieäu RBPU laø möùc “0” thì chöùc naêng “pull-up” ñöôïc môû, neáu laø möùc “1” thì chöùc naêng “pull-up” bò taét. Nhö vaäy ôû cheá ñoä ngoõ vaøo döõ lieäu khoâng theå xuaát ra chaân I/O maø chæ nhaän tín hieäu töø chaân I/O vaøo II.7.2.b. Caáu truùc chaân RB4 – RB7 Hình 23 : Sô ñoà maïch chaân RB4 – RB7 Caùc chaân naøy coù chöùc naêng phaùt hieän söï thay ñoåi traïng thaùi tín hieäu ngoõ vaøo cuõng nhö chöùc naêng ngoõ vaøo döõ lieäu. Chöùc naêng naøy ñöôïc duøng ñeå taïo ra ngaét baèng caùch thay ñoåi traïng thaùi ôû caùc chaân naøy. Neáu nhö thieát laäp ngaét baèng söï thay ñoåi traïng thaùi cuûa caùc chaân naøy thì ngaét seõ xaûy ra neáu nhö ngoõ ra cuûa coång OR laø möùc “1” töùc laø set bit RBIF (bit 0 trong thanh ghi INTCON) nhö vaäy chæ caàn 1 trong 4 ngoõ vaøo coång OR laø möùc “1” ñieàu naøy coù nghóa chæ caàn thay ñoåi traïng thaùi moät trong caùc chaân RB4 - RB7 thì ngaét seõ xaûy ra. Chöùc naêng naøy chæ hoaït ñoäng trong cheá ñoä ngoõ vaøo vì ôû cheá ñoä ngoõ ra, ngoõ ra Q cuûa thanh ghi choát TRIS laø möùc “0” vaø ngoõ ra coång AND luoân laø möùc “0” do ñoù ngaét seõ khoâng xaûy ra. Maïch phaùt hieän söï thay ñoåi traïng thaùi cuûa chaân I/O goàm thanh ghi choát döõ lieäu OLD, thanh ghi choát döõ lieäu IN vaø coång XOR. Baûng Söï Thaät Cuûa Coång XOR Söï hoaït ñoäng cuûa maïch phaùt hieän söï thay ñoåi traïng thaùi ngoõ vaøo Hình 24 : Maïch phaùt hieän söï thay ñoåi traïng thaùi ngoõ vaøo Döõ lieäu ngoõ vaøo ñöôïc ñöa tôùi ngoõ vaøo thanh ghi choát döõ lieäu IN vaø thanh ghi choát döõ lieäu OLD. Khi tín hieäu RD PORT thay ñoåi töø möùc L leân möùc H thì thanh ghi choát döõ lieäu IN seõ choát döõ lieäu ngoõ vaøo vaø khi tín hieäu RD PORT thay ñoåi töø möùc H xuoáng möùc L thì thanh ghi choát döõ lieäu OLD seõ choát döõ lieäu ngoõ vaøo, nhö vaäy luùc naøy 2 ngoõ vaøo coång XOR cuøng möùc tín hieäu neân ngoõ ra laø möùc L. Hình 25 : Giaûn ñoà thôøi gian cuûa maïch phaùt hieän söï thay ñoåi traïng thaùi ngoõ vaøo (traïng thaùi ngoõ vaøo thay ñoåi ôû ngoaøi xung tín hieäu RD PORT) ÔÛ hình 25, luùc ñaàu ngoõ vaøo döõ lieäu A = “0”, B = “0” thì C = “1”, D = “0”, E = “0” thì F = “0”. Khi B thay ñoåi töø möùc “0” leân möùc “1” thì C seõ thay ñoåi töø möùc “1” xuoáng möùc “0”. Luùc naøy E = A = “0”, D vaãn ôû möùc “0” do ñoù F = “0”. Khi B thay ñoåi töø möùc “1” xuoáng möùc “0” thì D = A = “0”, C = “1”, E = “0”vaø F vaãn möùc “0”. Khi A thay ñoåi traïng thaùi leân möùc “1”, B coù söï thay ñoåi traïng thaùi tieáp töø möùc “0” leân möùc “1” thì C thay ñoåi töø möùc “1” xuoáng möùc “0”, luùc naøy thanh ghi choát döõ lieäu IN ñöôïc môû vaø E = A = “1” trong khi ñoù thanh ghi choát döõ lieäu OLD khoâng môû vaø D vaãn möùc “0” do ñoù ngoõ ra F luùc naøy laø möùc “1”. Khi B thay ñoåi töø möùc “1” veà möùc “0” thì thanh ghi choát döõ lieäu OLD ñöôïc môû vaø D = A = “1”, C = “1”, E ñöôïc choát vaãn laø möùc “1” vaø F trôû veà möùc “0”. Luùc naøy maïch trôû veà traïng thaùi chôø ngoõ vaøo döõ lieäu thay ñoåi tieáp Hình 26 : Giaûn ñoà thôøi gian cuûa maïch phaùt hieän söï thay ñoåi traïng thaùi ngoõ vaøo (traïng thaùi ngoõ vaøo thay ñoåi khi ñang ñoïc xung tín hieäu RD PORT) ÔÛ hình 26, luùc ñaàu ngoõ vaøo döõ lieäu A = “0”, B = “0” thì C = “1”, D = “0”, E = “0” thì F = “0”. Khi B thay ñoåi töø möùc “0” leân möùc “1” thì C seõ thay ñoåi töø möùc “1” xuoáng möùc “0, thanh ghi choát döõ lieäu IN ñöôïc môû E = A = “0”, D = “0” vaø F = “0”. Khi A thay ñoåi traïng thaùi leân möùc “1”, B chöa coù söï thay ñoåi traïng thaùi neân caùc ngoõ khaùc vaãn giöõ nguyeân traïng thaùi. Khi B thay ñoåi töø möùc “1” xuoáng möùc “0” thì thanh ghi choát döõ lieäu OLD ñöôïc môû vaø D = A = “1”, C thay ñoåi töø möùc “0” leân möùc “1” neân thanh ghi choát döõ lieäu IN khoâng môû vaø E vaãn möùc “0” do ñoù ngoõ ra F luùc naøy laø möùc “1”. Khi B thay ñoåi tieáp töø möùc “0” leân möùc “1” thì C thay ñoåi töø möùc “1” xuoáng möùc “0” thanh ghi choát döõ lieäu IN ñöôïc môû vaø E = A = “1” luùc naøy F trôû veà möùc “0” II.8. Boä ñònh thôøi (TMR0) PIC16F84A coù 1 boä ñònh thôøi 8 bit Hình 27 : Sô ñoà khoái keát noái giöõa Prescaler vôùi boä ñònh thôøi vaø watchdog timer TMR0 laø moät boä ñeám 8 bit nhö vaäy boä ñeám leân ñeán 256. Khi boä ñeám thay ñoåi töø 255 ( FFh ) xuoáng 0 ( 00h ) töùc laø boä ñeám traøn moät ngaét seõ xaûy ra vaø bit TOIF cuûa thanh ghi INTCON ñöôïc set = ‘1’. Neáu thieát laäp caû 2 bit GIE ( bit 7 ) vaø T0IE ( bit 5 ) cuûa thanh ghi I._. chæ hoaït ñoäng trôû laïi khi baám phím 2 ( phím phaùt ). Khi baám phím phaùt maïch seõ hoaït ñoäng nhö chöùc naêng cuûa phím naøy. Sau khi thöïc hieän xong maïch seõ trôû veà traïng thaùi hoaït ñoäng bình thöôøng Khi nguoàn cung caáp bò maát maïch seõ ngöng hoaït ñoäng, khi coù nguoàn trôû laïi maïch seõ trôû laïi traïng thaùi tröôùc ñoù V.2. Giôùi thieäu caùc IC söû duïng trong maïch V.2.1. OPTO 4N35 V.2.1.a. Moâ taû chung Opto 4N35 laø boä gheùp quang ñöôïc caáu taïo bôûi photodiode vaø phototransistor. Boä gheùp quang duøng ñeå caùch ñieän giöõa nhöõng maïch ñieän coù söï khaùc bieät khaù lôùn veà ñieän theá. Ngoaøi ra coøn ñöôïc duøng ñeå traùnh caùc voøng ñaát gaây nhieãu trong maïch ñieän. Thoâng thöôøng boä gheùp quang goàm 1 diode loaïi GaAs phaùt ra tia hoàng ngoaïi vaø moät phototransistor vôùi vaät lieäu silic. Vôùi doøng ñieän thuaän diode phaùt ra böùc xaï hoàng ngoaïi vôùi böôùc soùng khoaûng 900 nm. Naêng löôïng böùc xaï naøy ñöôïc chieáu leân beà maët cuûa phototransistor hay chieáu giaùn tieáp qua moät moâi tröôøng daãn quang. Ñaàu tieân tín hieäu phaàn phaùt (Led hoàng ngoaïi) trong boä gheùp quang bieán thaønh tín hieäu aùnh saùng, sau ñoù tín hieäu aùnh saùng ñöôïc phaàn tieáp nhaän (Phototransistor) bieán laïi thaønh tín hieäu ñieän. Tính chaát caùch ñieän: boä gheùp quang thöôøng ñöôïc duøng ñeå caùch ñieän giöõa 2 maïch ñieän coù ñieän theá caùch ñieän khaù lôùn. Boä gheùp quang coù theå laøm vieäc vôùi doøng ñieän moät chieàu hay tín hieäu ñieän coù taàn soá khaù cao. Ñieän trôû caùch ñieän : ñoù laø ñieän trôû vôùi doøng ñieän moät chieàu giöõa ngoõ vaøo vaø ngoõ ra cuûa boä gheùp quang coù trò soá beù nhaát laø 1011 W, nhö theá ñuû yeâu caàu thoâng thöôøng. Nhöng caàn chuù yù doøng dieän roø khoaûng nA coù theå aûnh höôûng ñeán hoaït ñoäng cuûa maïch ñieän. Gaëp tröôøng hôïp naøy, nhöõng khe troáng coù theå ñöôïc taïo giöõa ngoõ vaøo vaø ngoõ ra. Noùi chung vôùi boä gheùp quang thì caàn phaûi coù maïch in toát. V.2.1.b. Hình daïng vaø moâ taû chaân Hình 30 : Hình daïng vaø sô ñoà chaân cuûa Opto 4N35 Chaân 1 : chaân anode cuûa photodiode Chaân 2 : chaân cathode cuûa photodiode Chaân 3 : chaân khoâng keát noái Chaân 4 : chaân emitter cuûa phototransistor Chaân 5 : chaân colector cuûa phototransistor Chaân 6 : chaân base cuûa phototransistor V.2.1.c. Tính chaát Nguoàn cung caáp Vcc = + 5 V ôû chaân soá 5 Tín hieäu ñöôïc ñöa vaøo chaân soá 1 vaø 2 Tín hieäu laáy ra ôû chaân 4 Hieäu ñieän theá caùch ñieän laø 3350 V Heä soá truyeàn ñaït 100% Ñöôïc öùng duïng trong moät soá maïch caùch ly vaø maïch ñieàu khieån V.2.2. VI MAÏCH THUAÄT TOAÙN TL082 V.2.2.a. Moâ taû chung TL082 goàm 2 vi maïch thuaät toaùn 741 trong cuøng moät voû. Vi maïch thuaät toaùn tieâu chuaån 741 laø loaïi vi maïch ñôn khoái tích hôïp lôùn ñöôïc cheá taïo theo coâng ngheä maøng moûng. Nhôø khaû naêng tích hôïp lôùn neân phaïm vi öùng duïng trong thöïc teá raát roäng raõi vaø ña daïng. Öu ñieåm noåi baät cuûa vi maïch laø laøm vieäc toát ôû möùc ñieän aùp thaáp ñeán ± 5V, ngoaøi ra coøn coù caùc ñaëc tính chung nhö sau : Khoâng caàn buø taàn soá, taêng ñoä oån ñònh ôû cheá ñoä laøm vieäc tuyeán tính. Coù maïch baûo veä ngaén vaø quaù taûi ôû ngoõ ra. Coù ñoä leäch ñieåm troâi veà zero nhoû. Khoâng bò khoùa neáu tín hieäu ñöa ñeán ngoõ vaøo khoâng thích hôïp. Heä soá neùn ñoàng pha lôùn. Tieâu hao coâng suaát nhoû. V.2.2.b. Moâ taû chaân Hình 31 : Sô ñoà boá trí chaân cuûa TL082 Chaân 1, 7 : ngoõ ra Chaân 2, 5 : ngoõ vaøo ñaûo Chaân 3, 6 : ngoõ vaøo khoâng ñaûo Chaân 4 : nguoàn cung caáp aâm Chaân 8 : nguoàn cung caáp döông V.2.2.c. Caùc tính naêng kyõ thuaät Veà maët nguyeân lyù, vi maïch lyù töôûng seõ coù toång trôû vaøo voâ cuøng lôùn, toång trôû ra voâ cuøng nhoû, toác ñoä baùm giöõ tín hieäu ra vôùi tín hieäu vaøo khoâng bò giôùi haïn vaø coù baêng thoâng raát roäng. Nhöng thöïc teá thì khoâng coù chuyeän ñoù. Ñoä khueách ñaïi ñieän aùp hay ñoä lôïi: maïch duøng voøng hoài tieáp, goïi laø voøng hôû ñoä lôïi rieâng vaøo khoaûng Av = 105 dB. Toång trôû vaøo : vaøi chuïc MW. Toång trôû ra : khoaûng 1 ¸ 100 W. Doøng phaân cöïc ngoõ vaøo : khi duøng transistor luôõng cöïc ôû taàng ñaàu vaøo, giaù trò IB = 0.1 ¸ 0.8 mA. Nguoàn cung caáp : thoâng thöôøng duøng nguoàn löôõng cöïc ñeå khai thaùc heát hieäu suaát cuûa vi maïch. Giaù trò söû duïng ± 5V. Tín hieäu vaøo khoâng vöôït quaù Vcc. Noù ñöôïc giôùi haïn ôû giaù trò toái ña bôûi Vcc. Giaù trò cöïc ñaïi cho pheùp thöôøng nhoû hôn Vcc töø 1¸2V. V.2.3. IC LM 567 V.2.3.a. Moâ taû chung LM 567 laø IC taùch tone vaø taàn soá, ñoù laø moät boä PLL (phase locked loop) vôùi söï taùch khoùa ñoàng boä AM vaø maïch coâng suaát ngoõ ra. Chöùc naêng goác cuûa noù laø ñeå laùi moät taûi trong moät phaïm vi baêng taùch. Taàn soá trung taâm cuûa baêng vaø söï treã ôû ngoõ ra ñöôïc xaùc ñònh moät caùch ñoäc laäp. Ñaëc tính: Söï oån ñònh cao cuûa taàn soá trung taâm. Baêng thoâng ñieàu khieån ñoäc laäp. Ngoõ ra logic coù theå töông hôïp vôùi doøng 100mA trôû xuoáng. Coù khaû naêng choáng nhieãu cao. Ñieàu chænh taàn soá baèng moät bieán trôû beân ngoaøi coù giaù trò töø 20 ¸ 1000 W.. ÖÙng duïng: Taùch tone Ñieàu khieån xa baèng tia hoàng ngoaïi Truyeàn goùi Ñieän thoaïi voâ tuyeán Boä dao ñoäng chính xaùc V.2.3.b. Moâ taû chaân Hình 32 : Sô ñoà boá chaân cuûa LM567 Chaân 1 : loïc ngoõ ra Chaân 2 : loïc thoâng thaáp Chaân 3 : ngoõ vaøo Chaân 4 : nguoàn cung caáp Chaân 5, 6 : maïch dao ñoäng RC Chaân 7 : GND Chaân 8 : ngoõ ra V.2.3.c. Coâng thöùc thieát keá Taàn soá trung taâm : Baêng thoâng Taàn soá trung taâm cuûa voøng khoùa pha PLL : Laø taàn soá töï do cuûa boä dao ñoäng khi chöa coù tín hieäu vaøo. Baêng thoâng cuûa voøng khoùa pha laø phaïm vi cuûa taàn soá xung quanh taàn soá trung taâm fO maø moät tín hieäu vaøo treân ñieän aùp ngöôõng (200 mVRMS) seõ gaây ra möùc logic 0 ôû ngoõ ra. Phaïm vi khoùa laø phaïm vi taàn soá roäng nhaát maø trong ñoù tín hieäu vaøo seõ giöõ ñöôïc traïng thaùi logic 0 ôû ngoõ ra. V.2.4. IC THU/PHAÙT TIEÁNG NOÙI ISD2560 V.2.4.a. Ñaëc tính Deã daøng söû duïng trong daûi phaùt ghi phaùt ngöõ aâm Vieäc taùi taïo aâm thanh vaø tieáng noùi chaát löôïng cao Thôøi gian ghi phaùt 60 giaây Cheá ñoä tieát kieäm ñieän khi ôû traïng thaùi chôø khoaûng 1uA Thoâng ñieäp löu tröõ ñöôïc 100 naêm Chu kyø ghi aâm laø 100.000 laàn Maïch dao ñoäng treân chip Nguoàn cung caáp ñôn +5V Nhieät ñoä vaän haønh töø 0 0 C ñeán 70 0 C V.2.4.b. Sô ñoà khoái Hình 33 : Sô ñoà khoái cuûa ISD 2560 V.2.4.c. Sô ñoà boá trí chaân Hình 34 : Sô ñoà boá trí chaân cuûa ISD 2560 Teân chaân Vò trí chaân Chöùc naêng Ax/Mx 1-10 Address/Mode Input Ngoõ vaøo choïn ñòa chæ hay cheá ñoä : nhöõng ngoõ vaøo naøy coù 2 chöùc naêng tuyø thuoäc vaøo ngoõ vaøo cuûa hai bit A8 vaø A9 ôû chaân 9 vaø 10 Neáu caû 2 chaân naøy ñöôïc keùo xuoáng möùc thaáp thì caùc chaân A0-A7 ñöôïc hieåu laø nhöõng ngoõ vaøo choïn ñòa chæ hieän taïi cho vieäc ghi hoaëc phaùt ngöõ aâm. Neáu muoán choïn ñòa chæ naøo thì chaân cuûa ñòa chæ ñoù ôû möùc ‘1’ caùc chaân coøn laïi xuoáng möùc ‘0’. Nhöõng chaân naøy chæ laø ngoõ vaøo ñòa chæ chöù khoâng ñöôïc xem laø ngoõ ra cuûa ñòa chæ beân trong khi noù hoaït ñoäng vaø nhöõng chaân naøy ñöôïc choát baèng caïnh xuoáng cuûa CE Neáu caû hai chaân naøy keùo leân möùc cao thì caùc chaân M0-M6 ñöôïc hieåu laø nhöõng ngoõ vaøo choïn cheá ñoä hoaït ñoäng AUX IN 11 Auxiliary Input ngoõ vaøo phuï VSSA , VSSD 13, 12 Chaân noái mass SP+/SP- 14/15 Ngoõ ra phaùt tieáng noùi VCCA , VCCD 16, 28 Nguoàn cung caáp MIC 17 Microphone chaân naøy truyeàn tín hieäu ngoõ vaøo töø micro tôùi maïch Pre Amp MIC REF 18 Microphone Reference ngoõ vaøo ñaûo tôùi Pre Amp AGC 19 Chaân töï ñoäng ñieàu khieån ñoä lôïi ANA IN 20 Ngoõ vaøo Analog ANA OUT 21 Ngoõ ra Analog OVF 22 Overflow ngoõ ra chaân naøy coù xung thaáp khi heát boä nhôù CE 23 Chip Enable tích cöïc möùc thaáp, chaân CE xuoáng möùc thaáp cho pheùp söï hoaït ñoäng ghi vaø phaùt. Nhöõng chaân ñòa chæ vaø chaân PD ñöôïc choát baèng cnh5 xuoáng cuûa chaân CE PD 24 Power Down Khi khoâng coù hoaït ñoäng ghi hoaëc phaùt, chaân PD neân ñaåy leân möùc cao ñeå ñaët vaøo cheá ñoä tieát kieän ñieän. Khi boä nhôù traøn chaân OVF coù xung thaáp, chaân PD ñaåy leân möùc cao ñeå reset ñòa chæ con troû trôû veà vò trí baét ñaàu cuûa boä nhôù EOM 25 End-Of-Message moät ñieåm nhôù seõ töï ñoäng löu laïi trong boä nhôù moãi khi keát thuùc ghi thoâng ñieäp. Noù seõ toàn taïi cho tôùi khi moät thoâng ñieäp döôïc ghi ñeø leân. Moãi khi keát thuùc thoâng ñieäp chaân EOM coù xung thaáp trong thôøi thôøi TEOM. ISD2560 coù moät maïch nguoàn nuoâi beân trong ñeå giöõ thoâng tin nguyeân veïn ñieän aùp Vcc döôùi 3,5V. Trong tröôøng hôïp naøy EOM xuoáng möùc thaáp vaø hoaït ñoäng hieän taïi seõ döøng ñieàu naøy chæ duøng cho cheá ñoä phaùt XCLK 26 External Clock ngoõ vaøo dao ñoäng clock beân ngoaøi. Khi khoâng söû duïng chaân naøy phaûi ñöôïc noùi mass P/R 27 Playback/Record Phaùt /Ghi ngoõ vaøo chaân P/R ñöôïc choát bôûi caïnh xuoáng cuûa chaân CE. Khi ngoõ vaøo chaân laø möùc cao thì chu kyø phaùt ñöôïc choïn vaø ôû möùc thaáp thì chu kyø ñöôïc choïn. Khi vieäc ghi ñöôïc choïn, nhöõng chaân ñòa chæ caáp ñòa chæ baét ñaàu vaø vieäc ghi seõ tieáp tuïc cho tôùi khi chaân PD hay CE ñaåy leân möùc cao hay boä nhôù traøn. Khi vieäc ghi bò giaùn ñoaïn bôûi chaân PD hay CE ñöôïc keùo leân möùc cao, sau ñoù ñieåm EOM ñöôïc löu taïi chæ hieän thôøi trong boä nhôù ÔÛ quaù trình phaùt laïi, nhöõng chaân ñòa chæ caáp ñòa chæ baét ñaàu vaø noù seõ phaùt cho tôùi khi gaëp moät ñieåm EOM. Vieäc phaùt coù theå tieáp tuïc boû qua dieåm EOM neáu chaân CE ñöôïc giöõ möùc thaáp Moät soá ñieàu kieän hoaït ñoäng Thoâng soá Min Chuaån Max Ñôn vò Ngoõ vaøo möùc thaáp 0,8 V Ngoõ vaøo möùc cao 2,0 V Ngoõ ra möùc thaáp 0,4 V Ngoõ ra möùc cao Vcc – 0,4 V Ngoõ ra möùc cao cuûa chaân EOM Vcc – 1,0 Vcc – 0,8 V Doøng khi hoaït ñoäng 25 30 mA Doøng ôû cheá ñoä chuaån 1 10 uA Thôøi gian ghi/phaùt 58,1 60,0 62,0 Sec Ñoä roäng xung CE 100 nsec Ñoä roäng xung PD(ghi) 25,0 msec Ñoä roäng xung PD(phaùt) 12,5 msec Ñoä roäng xung EOM 12,5 msec PHAÀN 2 : TÍNH TOAÙN VAØ THI COÂNG CHÖÔNG VI : THIEÁT KEÁ CHI TIEÁT VI.1. Maïch nguoàn Maïch naøy coù chöùc naêng cung caáp ñieän cho toaøn maïch. Trong maïch söû duïng 3 nguoàn ñieän aùp laø +5VDC, +12VDC vaø -12VDC Hình 35 : Sô ñoà nguyeân lyù maïch nguoàn VI.2. Maïch caûm bieán chuoâng Hình 36 : Sô ñoà nguyeân lyù maïch caûm bieán chuoâng VI.2.1. Nguyeân lyù hoaït ñoäng Bình thöôøng khi khoâng coù tin hieäu chuoâng thì ñieän aùp treân ñöôøng daây khoaûng 48VDC, tuï C1 coù taùc duïng ngaên doøng DC do ñoù khoâng coù doøng phaân cöïc cho diode quang vì theá diode quang taét. Luùc naøy ñieän aùp taïi RB1 laø 5V Khi toång ñaøi caáp tín hieäu chuoâng cho thueâ bao, tín hieäu naøy coù bieân ñoä töø 70V ñeán 100V ( VAC(RMS) ) laø tín hieäu xoay chieàu coù taàn soá khoaûng 25Hz vôùi chu kyø 2 giaây coù vaø 3 giaây khoâng. Tín hieäu naøy qua tuï C1 laøm giaûm bieân ñoä cuûa tín hieäu, sau ñoù tín hieäu chuoâng qua caàu diode D3, caàu diode coù taùc duïng chænh löu ñieän aùp laøm cho ñieän aùp coù cöïc tính nhaát ñònh ñoàng thôøi noù taêng ñoâi taàn soá cuûa tín hieäu. Nhö vaäy tín hieäu sau khi qua caàu diode coù taàn soá khoûng 50Hz Tuï C2 duøng laøm phaúng tín hieäu , D4 coù taùc duïng choáng nhieãu, neáu ñieän aùp nhoû hôn möùc ngöôõng VZ cuûa D4 thì noù seõ khoâng daãn, ñieän trôû R3 duøng ñeå haï aùp caáp cho diode quang. Khi coù doøng qua diode quang noù seõ phaùt quang kích vaøo cöïc B cuûa transistor laøm cho transistor daãn, luùc naøy ñieän aùp töø nguoàn +5V seõ qua R4 ñeán cöïc C roài xuoáng cöïc E ñoå xuoáng mass. Luùc naøy ñieän aùp taïi RB1 laø 0V Toùm laïi khi khoâng coù tín hieäu chuoâng thì ñieän aùp taïi RB1 laø +5V. Khi coù tín hieäu chuoâng thì Ñieän aùp taïi RA1 laø 0V VI.2.2. Tính toaùn caùc linh kieän Choïn doøng qua opto laø 4mA Suït aùp treân diode quang cuûa opto laø 1,2V Choïn C1 laø tuï khoâng cöïc tính coù thoâng soá laø 0,47uF/250V Choïn doøng qua R1 laø 5mA Nhö vaäy khi coù tín hieäu chuoâng thì ñieän aùp treân tuï C1 laø VC1 = ZC1.I Vôùi : Suy ra Choïn ñieän aùp tín hieäu chuoâng laø 90Vrms Ñieän aùp qua caàu diode laø VD = 90 – VC1 = 22V Choïn Zener coù VZ = 12V Tính R3 Choïn R3 = 1,8K Tuï C2 laø tuï loïc nguoàn. Choïn C2 = 10uF/50V Choïn caàu diode coù doøng chòu ñöïng laø 1A Tính R4 Khi daãn baõo hoaø thì VCE cuûa transistor = 0,2V Choïn R4 = 1K VI.3. Maïch ñieàu khieån RELAY Hình 37 : Sô ñoà nguyeân lyù maïch ñieàu khieån Relay Ôû traïng thaùi bình thöôøng Relay noái ñöôøng daây thoaïi vôùi maïch caûm bieán chuoâng (tieáp ñieåm thöôøng ñoùng). Khi coù tín hieäu chuoâng töø toång ñaøi caáp ñeán, neáu sau 5 hoài chuoâng maø khoâng nhaác maùy thì maïch ñieàu khieån trung taâm seõ ñieàu khieån ñoùng Relay, luùc naøy ñöôøng daây thoaïi keát noái vôùi maïch taïo taûi giaû Tính toaùn Trong maïch duøng Relay coù 2 tieáp ñieåm thöôøng ñoùng vaø 2 tieáp ñieåm thöôøng môû, ñieän aùp hoaït ñoäng 5VDC , ñieän trôû cuoän daây 170 Choïn transistor Q1 loaïi NPN C1815 coù caùc thoâng soá : ICmax = 100mA choïn Ñieàu kieän ñeå transistor daãn baõo hoaø : VBE = 0,8V ; VCE = 0,2V Ñieän aùp rôi treân cuoän daây laø : Vdd – VCE = 5V – 0,2V = 4,8V Nhö vaäy doøng qua Relay laø: Choïn LED1 : ñieän aùp rôi 1,8V ; doøng 10mA Choïn R1 = 330 Doøng IE cuûa transistor khi daãn baûo hoaø : IE IC = IRelay + ILED1 =28mA + 10mA = 38mA Theo ñaëc tuyeán cuûa transistor ta coù : IE = .IB Choïn R2 = 10K Ngoaøi ra ñeå ñaûm baûo transistor khoâng bò hoûng khi hoaït ñoäng cuøng vôùi taûi thuaàn caûm thì ta caàn duøng diode naén ñieän thoâng thöôøng vôùi ñaëc tính phaân cöïc ngöôïc nhaèm traùnh hieän töôïng cuoän daây choáng laïi doøng do nguoàn cung caáp baèng caùch cuoän daây taïo ra ñieän theá caûm öùng baèng ñieän theá nguoàn nhöng ngöôïc daáu VI.4. Maïch taïo taûi giaû hình 38 : Sô ñoà nguyeân lyù maïch taïo taûi giaû Toång ñaøi nhaän bieát traïng thaùi nhaác maùy qua söï thay ñoåi trôû voøng cuûa ñöôøng daây. Theo tieâu chuaån toång trôû voøng khi thueâ bao nhaác maùy : Veà maët DC toång trôû RDC < 300 Veà maët AC toång trôû RAC = 700 ± 30% Nhö vaäy maïch taïo taûi coù nhieäm vuï taïo ra trôû khaùng DC khoaûng 300 vaø trôû khaùng AC xaáp xæ 600 ñeå toång ñaøi nhaän bieát thueâ bao ñaõ nhaác maùy Tính toaùn Treân ñöôøng daây thoaïi ngoaøi tín hieäu AC coøn coù tín hieäu DC, do ñoù caàu diode coù taùc duïng chænh löu vaø choáng ñaûo cöïc Choïn doøng DC qua maïch taïo taûi giaû theo tieâu chuaån laø 20mA Nhö vaäy aùp rôi treân hai ñaàu TIP RING laø : Vtipring = 30020mA = 6V Choïn transistor Q2 loaïi NPN C1815 coù caùc thoâng soá : ICmax = 100mA choïn Aùp rôi treân caàu diode khoaûng 1,2V VC = 6V – 1,2V = 4,8V Xeùt veà maët DC IC = IE = 20mA Choïn VCE = ½ VC = 4,8V/2 = 2,4V Döïa vaøo sô ñoà maïch ta coù VC = IBR5 +VBE +IER6 Maø Choïn R5 = 10K Xeùt veà maët AC xem nhö Q2 khoâng daãn, R5, C5 taïo thaønh maïch loïc thoâng thaáp, maïch naøy coù taùc duïng ngaên khoâng cho tín hieäu thoaïi ñi vaøo Q2 traùnh laøm suy giaûm tín hieäu, khi ñoù toång trôû AC nhìn töø toång ñaøi laø Zbieán aùp //R5 phaûi nhoû hôn 700( choïn Zbieán aùp = 600) Do ñoù R5 >> Zbieán aùp , thoâng thöôøng R5 10Zbieán aùp =10600 = 6K Giaù trò R5 ñaõ ñöôïc choïn ôû treân laø 10K thoaû maõn ñieàu kieän treân Ta coù tín hieäu thoaïi vaø caùc tín hieäu tone cuûa toång ñaøi coù baêng thoâng naèm trong daõi 300Hz ñeán 3400Hz do ñoù ta caàn thieát keá maïch loïc thoâng thaáp coù taàn soá caét thaáp khoaûng döôùi 300Hz Thöôøng choïn tuï C5 = 10uF Tuï C4 coù taùc duïng ngaên caûn ñieän aùp DC tôùi bieán aùp, tuï naøy ñöôïc choïn sao cho: ZC4 < Zbieán aùp = .600 = 60 Choïn C4 = 10uF Ngoaøi ra coøn coù 2 diode zener D5 vaø D6 4.3V maéc vôùi bieán aùp caùch ly coù trôû khaùng 600Ω duøng oån ñònh ñieän aùp nhieãu beân ngoaøi taùc ñoäng vaøo VI.5. Maïch HYBRID vaø Maïch loïc VI.5.1. Maïch Hybrid Hình 39 : Sô ñoà nguyeân lyù maïch HYBRID Moái quan heä giöõa ñieän aùp ngoõ ra maïch Hybrid VR vaø ñieän aùp nhaän veà töø ñöôøng daây VT ñöôïc xaùc ñònh baèng phöông phaùp choàng chaäp: Trong tröôøng hôïp Neáu xem nhö Op_Amp laø lyù töôûng thì ta coù: Maø Tröôøng hôïp : Ta coù: Aùp duïng coâng thöùc choàng chaäp ta coù: (1) Ñeå tín hieäu töø maïch phaùt sang maïch taûi giaû maø khoâng qua maïch loïc thì tín hieäu thu vaøo VR phaûi ñoäc laäp vôùi tín hieäu phaùt VT (2) Thay (2) vaøo (1) ta ñöôïc: Ta thaáy neáu ñieàu kieän treân thoûa maõn thì tín hieäu thoaïi töø maïch taûi giaû sang maïch loïc maø khoâng qua maïch phaùt voice Do Op_Amp coù trôû khaùng ngoõ vaøo lôùn neân ñeå phoái hôïp trôû khaùng ta choïn Z7 vaø Z8 ñuû lôùn ñeå phoái hôïp trôû khaùng (töø vaøi chuïc K trôû leân). Trong maïch naøy ta choïn Gía trò chuaån hoùa ZL trong thoâng tin laø 600 ño ôû taàn soá 800Hz. Tuy nhieân trong baêng taàn ñieän thoaïi ZL thay ñoåi khoâng ñaùng keå neân ta coù theå xem nhö thuaàn trôû. Vì yeâu caàu thieát keá cuûa maïch laø tín hieäu töø maïch phaùt seõ coù moät phaàn nhoû ñi vaøo maïch loïc, do ñoù choïn Z9 laø moät bieán trôû coù giaù trò 1k ñeå ñieàu chænh. VI.5.2. Maïch loïc Maïch loïc coù nhieäm vuï loïc caùc tín hieäu coù taàn soá cao hôn taàn soá cuûa tín hieäu thoaïi, loaïi boû caùc taàn soá cao hôn ngoaøi yù muoán. Hình 40 : Sô ñoà nguyeân lyù maïch loïc Baêng thoâng cuûa tín hieäu thoaïi BW=(300Hz ñeán 3400Hz), vaø taàn soá cuûa tín hieäu busy tone laø 425Hz naèm trong daûi taàn cuûa tín hieäu thoaïi, do ñoù ta thieát keá maïch loïc thoâng thaáp sao cho tín hieäu thoaïi vaø busy tone cuøng coù theå ñi qua maïch loïc naøy. Ta choïn taàn soá cao nhaát cuûa baêng thoâng thoaïi laø Haøm truyeàn maïch loïc thoâng thaáp hoài tieáp döông: Ñeå ñôn giaûn trong maïch ñieän ta choïn vaø , luùc ñoù haøm truyeàn ñöôïc ruùt goïn nhö sau: Töø baûng haøm Butterworth ñaõ chuaån hoaù ta coù: Choïn Maët khaùc ta coù: Vaø Choïn =10 = VI.6. Maïch phaùt hieän tín hieäu BUSY TONE Hình 41 : Sô ñoà nguyeân lyù maïch phaùt hieän tín hieäu BUSY TONE Tín hieäu Busy Tone do toång ñaøi caáp ñeán coù taàn soá khoaûng 425Hz, bieân ñoä 3Vd-d . Trong maïch naøy caàn phaûi nhaän bieát ñöôïc tín hieäu Busy Tone ñeå göûi ñeán vi ñieàu khieån xöû lyù khi maø thueâ bao ñoái phöông gaùc maùy Ñeå nhaän bieát tín hieäu naøy ta söû duïng IC LM 567. Ñaây laø IC chuyeân duïng ñeå taùch tone coù chöùa moät voøng khoaù pha beân trong. Khi taàn soá ngoõ vaøo (chaân 3) baèng taàn soá trung taâm thì ngoõ ra taïi chaân 8 seõ coù möùc ‘0’ Maët khaùc tín hieäu Busy Tone cuõng naèm trong daõy tín hieäu aâm taàn nhöng coù bieân ñoä 3V trong khi tín hieäu aâm taàn coù bieân ñoä khoaûng vaøi chuïc mVlôùn hôn raát nhieàu so vôùi tín hieäu aâm taàn vaøo chaân 3 cuûa LM 567 cho pheùp möùc ñieän aùp cao nhaát laø 25mVrms (theo nhaø saûn xuaát khuyeán caùo möùc ñieän aùp toát nhaát taïi ngoõ vaøo laø 20mVrms) maø tín hieäu Busy Tone laïi coù bieân ñoä laø 3V. Vì vaäy ñeå vieäc taùch vaø nhaän tín hieäu chính ta cho tín hieäu qua boä so saùnh duøng IC TL 082 Choïn ñieän aùp chuaån , ta coù: Choïn Choïn Ñaëc ñieåm cuûa maïch so saùnh naøy laøbieán ñoåi tín hieäu ngoõ daïng Sin thaønh daïng xung vuoâng Vin Vref 0 Vout Vcc Hình 42 : Daïng tín ngoõ vaøo vaø ngoõ ra cuûa maïch so saùnh Khi coù tín hieäu busy tone ñöa ñeán ngoõ vaøo coäng cuûa TL082, ngoõ ra seõ taïo thaønh moät daõy tín hieäu xung vuoâng coù bieân ñoä baèng vôùi möùc ñieän aùp nguoàn cuûa Op_Amp Thoâng soá kyõ thuaät cuûa IC LM567 coù taàn soá trung taâm ñöôïc tín theo coâng thöùc thöùc Vôùi R vaø C ñöôïc noái vaøo chaân 5 vaø 6 Coâng thöùc treân laø taàn soá töï do cuûa boä giao ñoäng khi chöa coù tín hieäu vaøo. Khi taàn soá trung taâm vaø moät tín hieäu vaøo baèng nhau thì ngoõ ra chaân 8 ôû möùc logic ‘0’ Baêng thoâng cuûa voøng khoaù pha: Vôùi laø ñieän aùp ngoõ vaøo ôû chaân soá 3 (). C laø tuï ñieän noái ôû chaân soá 2 xuoáng mass. Tín hieäu daïng xung ôû ngoõ ra cuûa TL082 qua caàu phaân aùp , ñeå haï aùp cho phuø hôïp vôùi ngoõ vaøo cuûa IC LM567 Ta coù: Choïn Choïn Taàn soá trung taâm cuûa IC LM567 ñöôïc choïn baèng vôùi taàn soá cuûa tín hieäu busy tone 425Hz Ta choïn Choïn laø bieán trôû ñeå ñieàu chænh taàn soá trung taâm. Tuï C10 laø tuï loïc thoâng thaáp vaø noù cuõng loïc ngoõ ra, giaù trò cuûa tuï C10 ñöôïc choïn töông ñoái, vì neáu choïn quaù lôùn thì thôøi gian treã giöõa hai traïng thaùi ñoùng vaø môû seõ lôùn daãn ñeán maïch hoaït ñoäng khoâng chính xaùc, hoaëc choïn quaù nhoû thì maïch hoaït ñoäng khoâng oån ñònh. Choïn F Thoâng thöôøng choïn Tuï C8 vaø C9 laø 2 tuï lieân laïc ta choïn giaù trò laø VI.7. Maïch thu vaø phaùt tieáng noùi Hình 43 : Sô ñoà nguyeân lyù maïch thu & phaùt tieáng noùi Maïch thu vaø phaùt tieáng noùi duøng chip ISD2560 keát hôïp vôùi maïch khueách ñaïi duøng LM386 duøng ñeå khueách ñaïi tín hieäu ngoõ ra cuûa ISD2560. Giaù trò cuûa caùc linh kieän trong maïch naøy ñöôïc nhaø saûn xuaát cung caáp. Nguyeân lyù hoaït ñoäng Khi maïch khoâng hoaït ñoäng chaân PD ñöôïc giöõ ôû möùc cao ñeå ñöa IC vaøo cheá ñoä chuaån ISD2560 coù hai phöông thöùc hoaït ñoäng ñoù laø thu vaø phaùt tieáng noùi ñöôïc ñieàu khieån bôûi MÑKTT: Hoaït ñoäng thu tieáng noùi Ñaàu tieân MÑKTT caáp ñòa chæ ñeå thu ( töø caùc chaân RB7, RB6, RB5, RB4) Chaân P/R ñöôïc taùc ñoäng möùc thaáp Chaân PD ñöôïc taùc ñoäng möùc thaáp Vieäc thu seõ baét ñaàu khi chaân CE xuoáng möùc thaáp. Khi chaân PD hay CE coù möùc cao thì vieäc thu seõ ngöng, luùc naøy ñieåm EOM ñöôïc löu tröõ trong boä nhôù ñeå chæ thò raèng thoâng ñieäp ñaõ keát thuùc Hoaït ñoäng phaùt tieáng noùi Ñaàu tieân MÑKTT caáp ñòa chæ ñeå phaùt ( töø caùc chaân RB7, RB6, RB5, RB4) Chaân P/R ñöôïc taùc ñoäng möùc cao. Chaân PD ñöôïc taùc ñoäng möùc thaáp. Vieäc phaùt seõ baét ñaàu khi chaân CE coù möùc xung thaáp. Chaân EOM ôû möùc cao ñeå chæ thò raèng moät hoaït ñoäng ñang xöû lyù Vieäc phaùt seõ tieáp tuïc cho tôùi khi chaân PD leân möùc cao hoaëc baét gaëp moät ñieåm EOM Khi chaân PD leân möùc cao vieäc phaùt seõ ngöng, khi chaân PD coù möùc thaáp trôû laïi vieäc phaùt seõ baét ñaàu taïi ñòa chæ ñöôïc caáp tröôùc ñoù Khi baét gaëp moät ñieåm EOM ( khi ñoù chaân EOM coù moät xung thaáp vôùi ñoä roäng laø 12,5 msec sau ñoù trôû laïi möùc cao ). Neáu chaân CE tröôùc ñoù ôû möùc thaáp thì noù seõ boû qua ñieåm EOM naøy vaø tieáp tuïc phaùt. Neáu tröôùc ñoù chaân CE ôû möùc cao thì vieäc phaùt seõ ngöng, luùc naøy neáu chaân CE coù möùc xung thaáp trôû laïi thì vieäc phaùt seõ baét ñaàu taïi ñòa chæ tröôùc ñoù hoaëc ta coù theå caáp ñòa chæ môùi roài cho chaân CE coù xung thaáp ñeå phaùt tieáp. VI.8. Maïch Khueách Ñaïi Coâng Suaát AÂm Taàn Maïch söû duïng IC TDA1011 vôùi nguoàn cung caáp laø +12V ñieän trôû loa 8 thì coâng suaát ra laø 2,25W, caùc giaù trò trong maïch ñöôïc cho bôûi nhaø saûn xuaát Hình 44 : Sô ñoà nguyeân lyù maïch KÑCS aâm taàn VI.9. Maïch ñieàu khieån trung taâm duøng PIC16F84A Hình 45 : Sô ñoà nguyeân lyù maïch ñieàu khieån trung taâm CHÖÔNG VII : LÖU ÑOÀ GIAÛI THUAÄT Giaûi thuaät chöông trình chính Khôûi taïo caùc giaù trò ban ñaàu Chuù thích : Y : ñuùng ,coù N : sai, khoâng CT :chöông trình Thôøi gian ghi ñaõ heát ? Coù tin nhaén ? Y N LED ñôn saùng Phím 2 ? LED ñôn saùng N Y Y N main N N Y Y Goïi CT Xu_ly_chuong N Y Tín hieäu chuoâng ? Goïi CT PHAT Phím 1 ? Goïi CT THU Phím 2 ? Giaûi thuaät chöông trình phuïc vuï ngaét TIMER ISR Xoùa côø ngaét bit T0IF tga = tga – 1 tga = 0 ? Löu thanh ghi W Naïp laïi giaù trò cho tga = 61 tgdem = tgdem + 1 Traû laïi giaù trò cho thanh ghi W RETFIE Giaûi thuaät chöông trình xu_ly_chuong Gaùn tgdem = 0 Döøng TIMER dem = dem - 1 dem = 0 ? Khôûi ñoäng TIMER sau 4s thì tgdem taêng leân 1 Tín hieäu chuoâng ? tgdem = 1 ? Keát thuùc CT START Xu_ly_chuong Goïi CT phat_thong_bao Döøng TIMER N N N Y Y Y Gaùn dem = 5 Giaûi thuaät chöông trình phaùt thoâng baùo phat_thong_bao Ñoùng Relay taïo taûi giaû Tín hieäu Busy Tone ? Phaùt lôøi nhaén cuûa chuû nhaø Keát thuùc thoâng baùo ? Goïi CT THU_TIN_NHAN Môû Relay Ngöng thoâng baùo Keát thuùc CT Phat_thong_bao N N Y Y Giaûi thuaät chöông trình THU_TIN_NHAN cnt2 = soá tin nhaén tröôùc ñoù N Y Kieåm tra tröôùc ñoù coù tin nhaén khoâng ? THU_TIN_NHAN cnt2 = 1 Laáy ra soá thôøi gian ñaõ söû duïng thu tröôùc ñoù Goïi CT xuly_tg ñeå laáy ñòa chæ thu tieáp theo Naïp ñòa chæ thu vaøo port B Môû thu tin nhaén tgdem = 0 Khôûi ñoäng TIMER sau 1s tgdem taêng leân 1 Ngöng thu Döøng TIMER Y Y N Phím 1 ? Y Y N N N Goïi CT xuly_tg Tín hieäu Busy Tone ? LED ñôn saùng cnt2 = cnt2 + 1 Keát thuùc CT THU_TIN_NHAN Thôøi gian thu > 2 s ? Thôøi gian thu ñaõ heát ? Giaûi thuaät chöông trình thu THU DELAY 0,4 s Phím1 ? Keát thuùc CT THU N N N Y LED ñôn saùng DELAY 0,2 s Phím1 ? Y Taét LED ñôn Môû thu lôøi nhaén cuûa chuû nhaø tgdem = 0 Khôûi ñoäng Timer sau 1s tgdem taêng leân 1 Phím1 ? Y Thôøi gian thu heát ? Y N cnt2 = 1 Goïi CT xuly_tg Keát thuùc CT THU Löu thôøi gian Thu vaøo boä nhôù EEPROM Ngöng thu Döøng Timer Giaûi thuaät chöông trình phaùt DELAY 0,4 s Phím2 ? Nhaûy ñeán THONGBAO Y N tgdem1 = 0 Laáy ra giaù trò cuûa cnt2 töø boä nhôù EEPROM Laáy ra thôøi gian thu lôøi nhaén töø boä nhôù EEPROM tgkt = cnt2 tgkt = tgkt – 1 tgkt=0 ? Nhaûy ñeán EPHAT Naïp ñòa chæ phaùt vaøo port B Baét ñaàu phaùt DELAY 0,8 s Goïi CT xuly_tg STAR Y N PHAT Döøng Timer tgdem = 0 Khôûi ñoäng Timer sau 1s tgdem taêng leân 1 Phím2 ? Nhaûy ñeán EPHAT Keát thuùc tin nhaén Nhaûy ñeán STAR Y N N Y Phaùt heát ? Phím2 ? EPHAT DELAY 0,4 s Taét LED ñôn Keát thuùc CT PHAT Y N N Y THONGBAO LED ñôn saùng Phaùt laïi lôøi nhaén cuûa chuû nhaø Giaûi thuaät chöông trình xuly_tg xuly_tg tgdem1 = tgdem1 + tgdem tgdem1 > 3? tgdem1 = 3 tgthu = b’10000000’ tgtg = 57 Nhaûy ñeán EXULY tgdem1 > 6? tgdem1 = 6 tgthu = b’01000000’ tgtg = 54 Nhaûy ñeán EXULY tgdem1 > 9? tgdem1 = 9 tgthu = b’11000000’ tgtg = 51 Nhaûy ñeán EXULY tgdem1 > 12? tgdem1 = 12 tgthu = b’00100000’ tgtg = 48 Nhaûy ñeán EXULY tgdem1 > 15? tgdem1 = 15 tgthu = b’10100000’ tgtg = 45 Nhaûy ñeán EXULY N N N N N Y Y Y Y Y tgdem1 = 19 tgthu = b’01100000’ tgtg = 41 Nhaûy ñeán EXULY tgdem1 > 19? tgdem1 = 22 tgthu = b’11100000’ tgtg = 38 Nhaûy ñeán EXULY tgdem1 > 22? tgdem1 = 25 tgthu = b’00010000’ tgtg = 35 Nhaûy ñeán EXULY tgdem1 = 32 tgthu = b’01010000’ tgtg = 28 Nhaûy ñeán EXULY tgdem1 > 28? tgdem1 = 28 tgthu = b’10010000’ tgtg = 32 Nhaûy ñeán EXULY tgdem1 > 25? tgdem1 > 32? N N N N N Y Y Y Y Y tgdem1 > 35? tgdem1 = 35 tgthu = b’11010000’ tgtg = 25 Nhaûy ñeán EXULY tgdem1 = 38 tgthu = b’00110000’ tgtg = 22 Nhaûy ñeán EXULY tgdem1 > 38? tgdem1 > 42? tgdem1 = 42 tgthu = b’10110000’ tgtg = 18 Nhaûy ñeán EXULY tgdem1 > 45? tgdem1 = 45 tgthu = b’01110000’ tgtg = 15 Nhaûy ñeán EXULY tgdem1 > 48? tgdem1 = 48 tgthu = b’11110000’ tgtg = 12 Nhaûy ñeán EXULY N N N N N Y Y Y Y Y Y Keát thuùc CT xuly_tg Phím2 ? Ghi giaù trò cuûa cnt2 vaøo boä nhôù EEPROM N Ghi noäi dung cuûa tgdem1 vaøo boä nhôù EEPROim1 Ghi noäi dung cuûa cnt2 vaøo boä nhôù EEPROM EXULY Keát thuùc CT Xuly_tg Giaûi thuaät chöông trình DELAY DELAY Cnt = 200 Cnt1 = 200 Nop Nop Cnt1 = Cnt1 - 1 Cnt1 = 0 ? Cnt = cnt – 1 Cnt1 = 0 ? Keát thuùc CT DELAY N N Y Y KEÁT LUAÄN Ñeà taøi naøy em ñaõ hoaøn thaønh ñöôïc nhieäm vuï ñeà ra laø giôùi thieäu moät hoï vi ñieàu khieån môùi PIC, khaûo saùt theâm moät vi maïch môùi trong hoï vi ñieàu khieån, ñoù laø PIC 16F84A vaø öùng duïng PIC 16F84A ñeå thieát keá vaø thi coâng maïch ghi aâm ñieän thoaïi. Phaàn cöùng ñaõ ñöôïc kieåm tra vaø chaïy oån ñònh. Maïch töï ñoäng ghi aâm vaø traû lôøi ñieän thoaïi hieän nay treân thò tröôøng Vieät Nam chöa ñöôïc saûn xuaát vaø trong töông lai thieát bò naøy seõ ñöôïc söû duïng roäng raõi. Ñeà taøi naøy em giôùi thieäu moät phöông phaùp ghi aâm ñieän thoaïi söû duïng coâng ngheä soá. Vì maïch thu tieáng noùi duøng kyõ thuaät soá neân vieäc thu vaø phaùt ñöôïc söû lyù nhanh vaø tieän lôïi cho vieäc phaùt laïi, keát noái maïch ñôn giaûng, nhoû goïn . Sau khi tìm hieåu veà PIC16F84A giuùp em naém ñöôïc cô baûn veà hoï vi ñieàu khieån PIC vaø töø ñoù ñi vaøo tieàu hieåu caùc loaïi saûn phaåm khaùc coù nhieàu chöùc naêng hôn cuûa hoï vi ñieàu khieån naøy seõ deã daøng hôn. Ví duï nhö saûn phaåm PIC 16F877A . Loaïi naøy coù 40 chaân vôùi 33 chaân xuaát/nhaäp, 8 keânh ADC, moãi keânh 10 bit, tích hôïp coång song song . . . HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI Thieát bò töï ñoäng ghi aâm vaø traû lôøi ñieän thoaïi naøy coù theå môû roäng vôùi nhieàu chöùc naêng hôn. Ví duï maïch coù theå söû duïng moät vi ñieàu khieån PIC khaùc ñeå taêng caùc chaân I/O, luùc ñoù chæ caàn theâm moät maïch thu phaùt tín hieäu DTMF thì thieát bò treân seõ coù theâm nhieàu chöùc naêng nhö laø : goïi ñieän, ñieàu khieån thieát bò qua maïng ñieän thoaïi, chaën soá ñieän thoaïi goïi ñi, giôùi haïn thôøi gian goïi . . . Ngoaøi ra ñeå taêng thôøi gian thu phaùt coù theå söû duïng baêng töø TAØI LIEÄU THAM KHAÛO truy caäp naêm 2005 truy caäp naêm 2005 PIC microcontrollers Taùc giaû : Nebojsa Matic PIC in Practice Taùc giaû : D.W.Smith Programming and customizing PICmicro Microcontrollers Taùc giaû : Myke Predko Kyõ thuaät Vi Ñieàu Khieån Taùc giaû : Leâ Vaên Doanh Phaïm khaéc Chöông Nhaø Xuaát Baûn khoa Hoïc Vaø Kyõ Thuaät naêm 1998 Kyõ thuaät soá thöïc haønh Taùc giaû : Huyønh Ñaéc Thaéng Nhaø Xuaát Baûn Khoa Hoïc & Kyõ Thuaät ._.

Các file đính kèm theo tài liệu này:

  • docLuanVan.doc
  • pdf4N35.pdf
  • pdfISD2560.pdf
  • pdfLM386.pdf
  • pdfLM567.pdf
  • pdfPIC16F84A.pdf
  • pdfpic-pg2c.pdf
  • pdfTDA1011.pdf
  • pdfTL082.pdf
  • pptPowerPoint.ppt
  • docSOdonl.doc
  • pdfThe_PIC_Microcontroller_Book.pdf