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
138 trang |
Chia sẻ: huyen82 | Lượt xem: 1543 | Lượt tải: 1
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
._.