Tài liệu Khảo sát và ứng dụng vi điều khiển – Thiết kế - Thi công mạch khống chế nhiệt độ phòng: ... Ebook Khảo sát và ứng dụng vi điều khiển – Thiết kế - Thi công mạch khống chế nhiệt độ phòng
94 trang |
Chia sẻ: huyen82 | Lượt xem: 1427 | Lượt tải: 0
Tóm tắt tài liệu Khảo sát và ứng dụng vi điều khiển – Thiết kế - Thi công mạch khống chế nhiệt độ phòng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BOÄ GIAÙO DUÏC VAØ ÑAØO TAÏO
ÑAÏI HOÏC QUOÁC GIA THAØNH PHOÁ HOÀ CHÍ MINH
TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT
KHOA ÑIEÄN –ÑIEÄN TÖÛ
BOÄ MOÂN ÑIEÄN TÖÛ
LUAÄN VAÊN TOÁT NGHIEÄP
ÑEÀ TAØI :
KHAÛO SAÙT VAØ ÖÙNG DUÏNG VI ÑIEÀU KHIEÅN- THIEÁT KEÁ-THI COÂNG MAÏCH KHOÁNG CHEÁ NHIEÄT ÑOÄ PHOØNG
SVTH :NGUYEÃN HOAØNG VUÕ
NGUYEÃN THANH VUÕ
GVHD:LEÂ THANH ÑAÏO
TP.HOÀ CHÍ MINH 3-2000
LÔØI CAÛM TAÏ
Chuùng em xin chaân thaønh caûm ôn Thaày Leâ Thanh Ñaïo ñaõ taän tình höôùng daãn vaø giuùp ñô chuùng em trong suoátthôøigian thöïc hieän luaän vaên .
Xin caûm ôn quùi thaày coâKhoa Ñieän vaø caùc baïn sinh vieân cuøng khoùa ñaõ ñoùng goùp nhöõng yù kieán quùi baùo ñeå taäp luaänvaênnaøyhoaøn thaønh ñuùng thôøi gian.
Nhoùm sinh vieân thöïc
hieän.
LÔØI NOÙI ÑAÀU
Trong nhieàu lónh vöïc saûn xuaát coâng nghieäp hieän nay, nhaát laø ngaønh coâng nghieäp luyeän kim, cheà bieán thöïc phaãm… vaán ñeà ño vaø khoáng cheá nhieät ñoä ñaëc bieät ñöôïc chuù troïng ñeán vì noù laø moät yeáu toá quyeát ñònh chaát löôïng saûn phaãm. Naém ñöôïc taàm quan troïng cuûa vaán ñeà treân nhoùm thöïc hieän tieán haønh nghieân cöùu vaø thieát keá moät heä thoáng ño vaø khoáng cheá nhieät ñoä töï ñoäng, vôùi mong muoán laø giaûi quyeát nhöõng yeâu caàu treân, vaø laáy ñoù laøm ñeà taøi toát nghieäp cho mình.
Nhöõng kieán thöùc naêng löïc ñaït ñöôïc trong quaù trình hoïc taäp ôû tröôøng seõ ñöôïc ñaùnh giaù qua ñôït baûo veä luaän vaên cuoái khoùa. Vì vaäy chuùng em coá gaéng taän duïng taát caû nhöõng kieán thöùc ñaõ hoïc ôû tröôøng cuøng vôùi söï tìm toài nghieân cöùu, ñeå coù theå hoaøn thaønh toát luaän vaên naøy. Nhöõng saûn phaãm nhöõng keát quaû ñaït ñöôïc ngaøy hoâm nay tuy khoâng coù vì lôùn lao. Nhöng ñoù laø nhöõng thaønh quaû cuûa naêm hoïc taäp. Laø thaønh coâng ñaàu tieân cuûa chuùng em tröôùc khi ra tröôøng .
Maët duø chuùng em raát coá gaéng ñeå hoaøn thaønh taäp luaän vaên naøy ñuùng thôøi haïn, neân khoâng traùnh khoûi nhöõng thieáu soùt mong quí thaày coâ thoâng caûm. Chuùng em mong ñöôïc ñoùn nhaän nhöõng yù kieán ñoùng goùp. Cuoái cuøng xin chaân thaønh caûm ôn quí thaày coâ vaø caùc baïn sinh vieân.
Nhoùm sinh vieân thöïc hieän
NGUYEÃN HOAØNG VUÕ
NGUYEÃN THANH VUÕ
NHAÄN XEÙT CUÛA GIAÙO VIEÂN HÖÔÙNG DAÃN
NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN
BOÄ GIAÙO DUÏC VAØ ÑAØO TAÏO COÄNG HOØA XAÕ HOÄI CHUÛ NGHÓA VIEÄT NAM
ÑAÏI HOÏC QUOÁC GIA TP.HCM ÑOÄC LAÄP_ TÖÏ DO _HAÏNH PHUÙC
TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT
KHOA ÑIEÄN _ÑIEÄN TÖÛ
NHIEÄM VUÏ LUAÄN VAÊN TOÁT NGHIEÄP
Hoï vaø teân sinh vieân thöïc hieän : Nguyeãn Hoaøng Vuõ__Nguyeãn Thanh Vuõ
Lôùp : 95 KÑÑ
Ngaønh : ñieän _ñieän töû
1.Teân ñeà taøi : KHAÛO SAÙT VAØ ÖÙNG DUÏNG VI ÑIEÀU KHIEÅN_THIEÁT KEÁ_THI COÂNG MAÏCH KHOÁNG CHEÁ NHIEÄT ÑOÄ PHOØNG.
2. Caùc soá lieäu ban ñaàu :
3.Noäi dung caùc phaàn thuyeát minh vaø tính toaùn :
4.Caùc baûn veõ :
5.Giaùo vieân höôùng daãn : LEÂ THANH ÑAÏO
6. Ngaøy giao nhieäm vuï :
7.Ngaøy hoaøn thaønh nhieäm vuï :
Thoâng qua boä moân.
Ngaøy___thaùng___naêm___
Giaùo vieân höôùng daãn Chuû nhieäm boä moân
MUÏC LUÏC
Trang
A_PHAÀN GIÔÙI THIEÄU
TRANG TÖÏA
NHIEÄM VUÏ CUÛA LUAÄN VAÊN
BAÛNG NHAÄN XEÙT CUÛA GIAÙO VIEÂN HÖÔÙNG DAÃN
BAÛNG NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN
LÔØI NOÙI ÑAÀU
LÔØI CAÛM ÔN
B_PHAÀN NOÄI DUNG 1
Chöông 1: DAÃN NHAÄP 1
I.ÑAËT VAÁN ÑEÀ 1
II.GIÔÙI THIEÄU ÑEÀ TAØI 1
III.MUÏC ÑÍCH NGHIEÂN CÖÙU 1
Chöông 2: GIÔÙI THIEÄU CHUNG VEÀ VI ÑIEÀU KHIEÅN 3
I.GIÔÙI THIEÄU 3
II.LÒCH SÖÛ PHAÙT TRIEÅN CUÛA VI ÑIEÀU KHIEÅN 3
III.KHAÛO SAÙT BOÄ VI ÑIEÀU KHIEÅN 8051/8031 4
Chöông 3: KHAÛO SAÙT IC GIAO TIEÁP NGOAÏI VI 8255A 38
I.CAÁU TRUÙC PHAÀN CÖÙNG 38
II.CAÁU TRUÙC PHAÀN MEÀM 40
III.GIAO TIEÁP GIÖÕA VI XÖÛ LYÙ VÔÙI 8255A 42
Chöông 4: KHAÛO SAÙT BOÄ NHÔÙ BAÙN DAÃN 43
I.BOÄ NHÔÙ CHÆ ÑOÏC (ROM : READ ONLY MEMORY) 43
II.BOÄ NHÔÙ RAM (RANDOM ACCESS MEMORY) 46
Chöông 5: ÑO NHIEÄT ÑOÄ 48
I.HEÄ THOÁNG ÑO LÖÔØNG 48
II.CAÙC PHÖÔNG PHAÙP ÑO NHIEÄT ÑOÄ 49
Chöông 6: CHUYEÅN ÑOÅI TÖÔNG TÖÏ SANG SOÁ 51
I.KHAÙI NIEÄM CHUNG 51
II. NGUYEÂN TAÉC THÖÏC HIEÄN CHUYEÅN ÑOÅI AD 51
III.CAÙC PHÖÔNG PHAÙP CHUYEÅN ÑOÅI ADC 52
Chöông 7: THIEÁT KEÁ VAØ THI COÂNG 56
I.NHIEÄM VUÏ THIEÁT KEÁ 56
II.SÔ ÑOÀ KHOÁI VAØ CHÖÙC NAÊNG TÖØNG KHOÁI 56
III.THIEÁT KEÁ VAØ PHAÂN TÍCH NGUYEÂN LÍ HOAÏT ÑOÄNG TÖØNG KHOÁI 56
IV.SÔ ÑOÀ NGUYEÂN LÍ VAØ GIAÛI THUAÄT CHÖÔNG TRÌNH 71
V.THI COÂNG 89
CHÖÔNG KEÁT LUAÄN 83
C_PHUÏ LUÏC – TAØI LIEÄU THAM KHAÛO 85
I.PHUÏ LUÏC 85
II.TAØI LIEÄU THAM KHAÛO
Chöông 1:DAÃN NHAÄP
I.ÑAËT VAÁN ÑEÀ :
Ngaøy nay vôùi söï phaùt trieån cuûa coâng nghieäp vi ñieän töû, kyõ thuaät soá caùc heä thoáng ñieàu khieån daàn daàn ñöôïc töï ñoäng hoùa. Vôùi nhöõng kyõ thuaät tieân tieán nhö vi xöû lí, vi maïch soá … ñöïôc öùng duïng vaøo lænh vöïc ñieàu khieån, thì caùc heä thoáng ñieàu khieån cô khí thoâ sô, vôùi toác ñoä xöû lí chaäm chaïp ít chính xaùc ñöôïc thay theá baèng caùc heä thoáng ñieàu khieån töï ñoäng vôùi caùc leänh chöông trình ñaõ ñöôïc thieát laäp tröôùc.
Trong quaù trình saûn xuaát ôû caùc nhaø maùy, xí nghieäp hieän nay, vieäc ño vaø khoáng cheá nhieät ñoä töï ñoäng laø moät yeâu caàu heát söùc caàn thieát vaø quan troïng. Vì neáu naém baét ñöôïc nhieät ñoä laøm vieäc cuaû caùc heä thoáng. Daây chuyeàn saûn xuaát … giuùp ta bieát ñöôïc tình traïng laøm vieäc cuûa c aùc yeâu caàu. Vaø coù nhöõng xöû lyù kòp thôøi traùnh ñöôïc nhöõng hö hoûng vaø söï coá coù theå xaûy ra.
Ñeå ñaùp öùng ñöôïc yeâu caàu ño vaø khoáng cheá nhieät ñoä töï ñoäng, thì coù nhieàu phöông phaùp ñeå thöïc hieän, nghieân cöûu khaûo saùt vi ñieàu khieån 8051 nhoùm thöïc hieän nhaän thaáy raèng: öùng duïng vi ñieàu khieån 8051 vaøo vieäc ño vaø khoáng cheá nhieät ñoä töï ñoäng laø phöông phaùp toái öu nhaát. Ñoàng ñöôïc söï ñoàng yù cuûa khoa Ñieän Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät. Nhoùm chuùng em tieán haønh thöïc hieän ñeà taøi “Khaûo saùt vaø öùng duïng vi ñieàu khieån thieát keá thi coâng maïch khoáng cheá nhieät ñoä phoøng” .
II.GIÔÙI HAÏN ÑEÀ TAØI :
Vôùi thôøi gian gaàn möôøi tuaàn thöïc hieän ñeà taøi, cuõng nhö trình ñoä chuyeân moân coù haïn, chuùng em ñaõ coá gaéng heát söùc ñeå hoaøn thaønh taäp luaän vaên naøy, nhöng chæ giaûi quyeát ñöôïc nhöõng vaán ñeà sau :
Thieát keá maïch ño nhieät ñoä trong daûi töø 00C – 1000C hieån thò soá .
Khoáng cheá nhieät ñoä ôû möùc 200C .
Vieát chöông trình (phaàn meàm) ñeå ñaùp öùng caùc yeâu caàu treân .
Do thôøi gian quaù haïn heïp neân chuùng em chæ thieát keá moät ñaàu ño vaø chæ khoáng cheá ôû moät möùc nhieät ñoä 200C .
III.MUÏC ÑÍCH NGHIEÂN CÖÙU :
Muïc ñích tröôùc heát khi thöïc hieän ñeà taøi naøy laø ñeå hoaøn taát chöông trình moân hoïc ñeå ñuû ñieàu kieän ra tröôøng .
Cuï theå khi nghieân cöùu thöïc hieän ñeà taøi laø chuùng em muoán phaùt huy nhöõng thaønh quaû öùng duïng cuûa vi ñieàu khieån nhaèm taïo ra nhöõng saûn phaåm, nhöõng thieát bò tieân tieán hôn, vaø ñaït hieäu quaû saûn xuaát cao hôn.
Maët khaùc taäp luaän vaên naøy cuõng coù theå laøm taøi lieäu tham khaûo cho nhöõng sinh vieân khoùa sau. Giuùp hoï hieåu roõ hôn veà nhöõng öùng duïng cuûa vi ñieàu khieån .
Ngoøai ra quaù trình nghieân cöùu thöïc hieän ñeà taøi laø moät cô hoäi ñeå chuùng em töï kieåm tra laïi nhöõng kieán thöùc ñaõ ñöôïc hoïc ôû tröôøng, ñoàng thôøi phaùt huy tính saùng taïo, khaû naêng giaûi quyeát moät vaán ñeà theo yeâu caàu ñaët ra. Vaø ñaây cuõng laø dòp ñeå chuùng em töï khaúng ñònh mình tröôùc khi ra tröôøng ñeå tham gia vaøo caùc hoaït ñoäng saûn xuaát cuûa xaõ hoäi.
Chöông 2
GIÔÙI THIEÄU CHUNG VEÀ BOÄ VI ÑIEÀU KHIEÅN
I.GIÔÙI THIEÄU :
Boä vi ñieàu khieån vieát taét laø Micro-controller, laø maïch tích hôïp treân moät chip coù theå laäp trình ñöôïc, duøng ñeå ñieàu khieån hoaït ñoäng cuûa moät heä thoáng. Theo caùc taäp leänh cuûa ngöôøi laäp trình, boä vi ñieàu khieån tieán haønh ñoïc, löu tröõ thoâng tin, xöû lyù thoâng tin, ño thôøi gian vaø tieán haønh ñoùng môû moät cô caáu naøo ñoù.
Trong caùc thieáh bò ñieän vaø ñieän vaø ñieän töû daân duïng, caùc boä vi ñieàu khieån, ñieàu khieån hoaït ñoäng cuûa TV, maùy giaët, ñaàu ñoïc laser, ñieän thoïai, loø vi-ba … Trong heä thoáng saûn xuaát töï ñoäng, boä vi ñieàu khieån ñöôïc söû duïng trong Robot, daây chuyeàn töï ñoäng. Caùc heä thoáng caøng “thoâng minh” thì vai troø cuûa heä vi ñieàu khieån caøng quan troïng.
II.LÒCH SÖÛ PHAÙT TRIEÅN CUÛA C AÙC BOÄ VI ÑIEÀU KHIEÅN :
Boä vi ñieàu khieån thöïc ra, laø moät loaïi vi xöû lí trong taäp hôïp caùc boä vi xöû lyù noùi chung. Boä vi ñieàu khieån ñöôïc phaùt trieån töø boä vi xöû lí, töø nhöõng naêm 70 do söï phaùt trieån vaø hoaøn thieän veà coâng ngheä vi ñieän töû döïa treân kyõ thuaät MOS (Metal-Oxide-Semiconductor) , möùc ñoä tích hôïp cuûa caùc linh kieän baùn daãn trong moät chip ngaøy caøng cao.
Naêm 1971 xuaát hieän boä vi xöû lí 4 bit loaïi TMS1000 do coâng ty texas Instruments vöøa laø nôi phaùt minh vöøa laø nhaø saûn xuaát. Nhìn toång theå thì boä vi xöû lí chæ coù chöùa treân moät chip nhöõng chöùc naêng caàn thieát ñeå xöû lí chöông trình theo moät trình töï, coøn taát caû boä phaän phuï trôï khaùc caàn thieát nhö : boä nhôù döõ lieäu , boä nhôù chöông trình , boä chueån ñoåi AID, khoái ñieàu khieån, khoái hieån thò, ñieàu khieån maùy in, hoái ñoàng hoà vaø lòch laø nhöõng linh kieän naèm ôû beân ngoaøi ñöôïc noái vaøo boä vi xöû lí.
Maõi ñeán naêm 1976 coâng ty INTEL (Interlligen-Elictronics). Môùi cho ra ñôøi boä vi ñieàu khieån ñôn chip ñaàu tieân treân theá giôùi vôùi teân goïi 8048. Beân caïnh boä xöû lí trung taâm 8048 coøn chöùa boä nhôù döõ lieäu, boä nhôù chöông trình, boä ñeám vaø phaùt thôøi gian caùc coång vaøo vaø ra Digital treân moät chip.
Caùc coâng ty khaùc cuõng laàn löôïc cho ra ñôøi caùc boä vi ñieàu khieån 8bit töông töï nhö 8048 vaø hình thaønh hoï vi ñieàu khieån MCS-48 (Microcontroller-sustem-48).
Ñeán naêm 1980 coâng ty INTEL cho ra ñôøi theá heä thöù hai cuûa boä vi ñieàu khieån ñôn chip vôùi teân goïi 8051. Vaø sau ñoù haøng loaït caùc vi ñieàu khieån cuøng loaïi vôùi 8051 ra ñôøi vaø hình thaønh hoï vi ñieàu khieån MCS-51 .
Ñeán nay hoï vi ñieàu khieån 8 bit MCS51 ñaõ coù ñeán 250 thaønh vieân vaø haàu heát caùc coâng ty haøng daãn haøng ñaàu theá giôùi cheá taïo. Ñöùng ñaàu laø coâng ty INTEL vaø raát nhieàu coâng ty khaùc nhö : AMD, SIEMENS, PHILIPS, DALLAS, OKI …
Ngoaøi ra coøn coù caùc coâng ty khaùc cuõng coù nhöõng hoï vi ñieàu khieån rieâng nhö:
Hoï 68HCOS cuûa coâng ty Motorola
Hoï ST62 cuûa coâng ty SGS-THOMSON
Hoï H8 cuûa coâng ty Hitachi
Hoï pic cuaû coâng ty Microchip
III.KHAÛO SAÙT BOÄ VI ÑIEÀU KHIEÅN 8051 VAØ 8031:
IC vi ñieàu khieån 8051/8031 thuoäc hoï MCS51 coù caùc ñaët ñieåm sau :
4kbyte ROM (ñöôïc laäp trình bôûi nhaø saûn xuaát chæ coù ôû 8051)
128 buùyt RAM
4port I10 8bit
Hai boä ñònh thôøi 16bit
Giao tieáp noái tieáp
64KB khoâng gian boä nhôù chöông trình môû roäng
64 KB khoâng gian boä nhôù döõ lieäu môû roäng
moät boä xöû lí luaän lí (thao taùc treân caùc bit ñôn)
210 bit ñöôïc ñòa chæ hoùa
boä nhaân / chia 4ms
1.CAÁU TRUÙC BEÂN TRONG CUÛA 8051 / 8031 :
TXD* RXD*
T1*
T2*
P0 P1 P2 P3
INT\*1
INT\*0
TIMER2
TIMER1
PORT noái tieàp
EA\ RST PSEN ALE
Caùc ùthanh ghi khaùc
128 byte Ram
Rom
4K-8051
OK-8031
Timer1
Timer2
Ñieàu khieån ngaét
Ñieàu khieån bus
CPU
Port noái tieáp
Caùc port I\O
Taïo dao ñoäng
Hình 2.1 : Sô Ñoà Khoái 8051 / 8031
Phaàn chính cuûa vi ñieàu khieån 8051 / 8031 laø boä xöû lí trung taâm (CPU: central processing unit ) bao goàm :
Thanh ghi tích luõy A
Thanh ghi tích luõy phuï B, duøng cho pheùp nhaân vaø pheùp chia
Ñôn vò logic hoïc (ALU : Arithmetic Logical Unit )
Töø traïng thaùi chöông trình (PSW : Prorgam Status Word)
Boán baêng thanh ghi
Con troû ngaên xeáp
Ngoaøi ra coøn coù boä nhôù chöông trình, boä giaûi maõ leänh, boä ñieàu khieån thôøi gian vaø logic.
Ñôn vò xöû lí trung taâm nhaän tröïc tieáp xung töø boä giao ñoäng, ngoaøi ra coøn coù khaû naêng ñöa moät tín hieäu giöõ nhòp töø beân ngoaøi.
Chöông trình ñang chaïy coù theå cho döøng laïi nhôø moät khoái ñieàu khieån ngaét ôû beân trong. Caùc nguoàn ngaét coù theå laø : caùc bieán coá ôû beân ngoaøi , söï traøn boä ñeám ñònh thôøi hoaëc cuõng coù theå laø giao dieän noái tieáp.
Hai boä ñònh thôøi 16 bit hoaït ñoäng nhö moät boä ñeám.
Caùc coång (port0, port1, port2, port3 ). Söû duïng vaøo muïc ñích ñieàu khieån.
Ôû coång 3 coù theâm caùc ñöôøng daãn ñieàu khieån duøng ñeå trao ñoåi vôùi moät boä nhôù beân ngoaøi, hoaëc ñeå ñaàu noái giao dieän noái tieáp, cuõng nhö caùc ñöôøng ngaét daãn beân ngoaøi.
Giao dieän noái tieáp coù chöùa moät boä truyeàn vaø moät boä nhaän khoâng ñoàng boä, laøm vieäc ñoäc laäp vôùi nhau. Toác ñoä truyeàn qu oång noái tieáp coù theå ñaët trong vaûy roäng vaø ñöôïc aán ñònh baèng moät boä ñònh thôøi.
Trong vi ñieàu khieån 8051 / 8031 coù hai thaønh phaàn quan troïng khaùc ñoù laø boä nhôù vaø caùc thanh ghi :
Boä nhôù goàm coù boä nhôù Ram vaø boä nhôù Rom (chæ coù ôû 8031) duøng ñeå löu tröõ döõ lieäu vaø maõ leänh.
Caùc thanh ghi söû duïng ñeå löu tröõ thoâng tin trong quaù trình xöû lí. Khi CPU laøm vieäc noù laøm thay ñoåi noäi dung cuû aùc thanh ghi.
2.CHÖÙC NAÊNG CAÙC CHAÂN VI ÑIEÀU KHIEÅN :
18
19
12MHz
40
29
30
31
9
17
16
15
14
13
12
11
10
RD\WR\
T1
T0
INT1
INT0
TXD
RXD
A15
A14
A13
A12
A11
A10
A9
A8
28
27
26
25
24
23
22
21
8
7
6
5
4
3
2
1
32
33
34
35
36
37
38
39
Po.7
Po.6
Po.5
Po.4
Po.3
Po.2
Po.1
Po.0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
PSEN\
ALE
EA\
RET
Vcc
20
Vss
30p
30p
XTAL1
XTAL2
Hình 2.2 : Sô Ñoà Chaân 8051
a.port0 : laø port coù 2 chöùc naêng ôû treân chaân töø 32 ñeán 39 trong caùc thieát keá côõ nhoû
( khoâng duøng boä nhôù môû roäng ) coù hai chöùc naêng nhö caùc ñöôøng IO. Ñoái vôùi caùc thieát keá côõ lôùn ( vôùi boä nhôù môû roäng ) noù ñöôïc keát hôïp keânh giöõ a caùc bus )
b.port1 : port1 laø moät port I/O treân caùc chaân 1-8. Caùc chaân ñöôïc kyù hieäu P1.0, P1.1, P1.2 … coù theå duøng cho caùc thieát bò ngoaøi neáu caàn. Port1 khoâng coù chöùc naêng khaùc, vì vaäy chuùng ta chæ ñöôïc duøng trong giao tieáp vôùi caùc thieát bò ngoaøi.
c.port2 : port2 laø moät port coâng duïng keùp treân caùc chaân 21 – 28 ñöôïc duøng nhö caùc ñöôøng xuaát nhaäp hoaëc laø byte cao cuûa bus ñòa chæ ñoái vôùi caùc thieát keá duøng boä nhôù môû roäng.
d.Port3 : port3 laø moät port coâng duïng keùp treân caùc chaân 10 – 17. Caùc chaân cuûa port naøy coù nhieàu chöùc naêng, caùc coâng duïng chuyeån ñoåi coù lieân heä vôùi caùc ñaëc tín ñaëc bieät cuûa 8051 / 8031 nhö ôû baûng sau :
Bit Teân Chöùc naêng chuyeån ñoåi
P3.0 RXD Döõ lieäu nhaän cho port noái tieáp
P3.1 TXD Döõ lieäu phaùt cho port noái tieáp
P3.2 INTO Ngaét 0 beân ngoaøi
P3.3 INT1 Ngaét 1 beân ngoaøi
P3.4 TO Ngoõ vaøo cuûa timer/counter 0
P3.5 T1 Ngoõ vaøo cuûa timer/counter 1
P3.6 WR Xung ghi boä nhôù döõ lieäu ngoaøi
P3.7 RD Xung ñoïc boä nhôù döõ lieäu ngoaøi
Baûng 2.1 : Chöùc naêng cuûa caùc chaân treân port3
e.PSEN (Program Store Enable ) : 8051 / 8031 coù 4 tín hieäu ñieàu khieån
PSEN laø tín hieäu ra treân chaân 29. Noù laø tín hieäu ñieàu khieån ñeå cho pheùp boä nhôù chöông trình môû roäng vaø thöôøng ñöôïc noái ñeán chaân OE (Output Enable) cuûa moät EPROM ñeå cho pheùp ñoïc caùc bytes maõ leänh.
PSEN seõ ôû möùc thaáp trong thôøi gian laáy leänh. Caùc maõ nhò phaân cuûa chöông trình ñöôïc ñoïc töø EPROM qua bus vaø ñöôïc choát vaøo thanh ghi leänh cuûa 8051 ñeå giaûi maõ leänh. Khi thi haønh chöông trình trong ROM noäi (8051) PSEN seõ ôû möùc thuï ñoäng (möùc cao).
f.ALE (Address Latch Enable ) :
tín hieäu ra ALE treân chaân 30 töông hôïp vôùi caùc thieát bò laøm vieäc vôùi caùc xöû lí 8585, 8088, 8086, 8051 duøng ALE moät caùch töông töï cho laøm vieäc giaûi caùc keânh caùc bus ñòa chæ vaø döõ lieäu khi port 0 ñöôïc duøng trong cheá ñoä chuyeån ñoåi cuûa noù : vöøa laø bus döõ lieäu vöøa laø buùyt thaáp cuûa ñòa chæ, ALE laø tín hieäu ñeå choát ñòa chæ vaøo moät thanh ghi beân ngoaøi trong nöõa ñaàu cuûa chu kyø boä nhôù. Sau ñoù, caùc ñöôøng port 0 duøng ñeå xuaát hoaëc nhaäp döõ lieäu trong nöõa sau chu kyø cuûa boä nhôù.
Caùc xung tín hieäu ALE coù toác ñoä baèng 1/6 laàn taàn soá dao ñoäng treân chip vaø coù theå ñöôïc duøng laø nguoàn xung nhòp cho caùc heä thoáng. Neáu xung treân 8051 laø 12MHz thì ALE coù taàn soá 2MHz. Chæ ngoaïi tröø khi thi haønh leänh MOVX, moät xung ALE seõ bò maát. Chaân naøy cuõng ñöôïc laøm ngoõ vaøo cho xung laäp trình cho EPROM trong 8051.
g.EA (External Access) :
Tín hieäu vaøo EA treân chaân 31 thöôøng ñöôïc maéc leân möùc cao (+5V) hoaëc möùc thaáp (GND). Neáu ôû möùc cao, 8051 thi haønh chöông trình töø ROM noäi trong khoaûng ñòa chæ thaáp (4K). Neáu ôû möùc thaáp, chöông trình chæ ñöôïc thi haønh töø boä nhôù môû roäng. Khi duøng 8031, EA luoân ñöôïc noái möùc thaáp vì khoâng coù boä nhôù chöông trình treân chip. Neáu EA ñöôïc noái möùc thaáp boä nhôù beân trong chöông trình 8051 seõ bò caám vaø chöông trình thi haønh töø EPROM môû roäng. Ngöôøi ta coøn duøng chaân EA laøm chaân caáp ñieän aùp 21V khi laäp trình cho EPROM trong 8051.
h.SRT (Reset) :
Ngoõ vaøo RST treân chaân 9 laø ngoõ reset cuûa 8051. Khi tín hieäu naøy ñöôïc ñöa leân muùc cao (trong ít nhaát 2 chu kyø maùy ), caùc thanh ghi trong 8051 ñöôïc taûi nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng.
i.Caùc ngoõ vaøo boä dao ñoäng treân chip :
Nhö ñaõ thaáy trong caùc hình treân , 8051 coù moät boä dao ñoäng treân chip. Noù thöôøng ñöôïc noái vôùi thaïch anh giöõa hai chaân 18 vaø 19. Caùc tuï giöõa cuõng caàn thieát nhö ñaõ veõ. Taàn soá thaïch anh thoâng thöôøng laø 12MHz.
j.Caùc chaân nguoàn :
8051 vaän haønh vôùi nguoàn ñôn +5V. Vcc ñöôïc noái vaøo chaân 40 vaø Vss (GND) ñöôïc noái vaøo chaân 20.
3.Toå chöùc boä nhôù :
8051 / 8031 coù boä nhôù theo caáu truùc Harvard : coù nhöõng vuøng cho boä nhôù rieâng bieät cho chöông trình döõ lieäu. Nhö ñaõ noùi ôû treân, caû chöông trình vaø döõ lieäu coù theå ôû beân trong 8051, duø vaäy chuùng coù theå ñöôïc mô ûroäng baèèng caùc thaønh phaàn ngoaøi leân ñeán toái ña 64 Kbytes boä nhôù chöông trình vaø 64 Kbytes boä nhôù döõ lieäu.
Boä nhôù beân trong bao goàm ROM (8051) vaø RAM treân chip, RAM treân chip bao goàm nhieàu phaàn : phaàn löu tröõ ña duïng, phaàn löu tröõ ñòa chæ hoùa töøng bit, caùc bank thanh ghi vaø caùc thanh ghi chöùc naêng ñaëc bieät.
FFFF FFFF
Boä nhôù Boä nhôù
chöông döõ lieäu
trình
FF
ñöôïc choïn ñöôïc choïn
qua PSEN qua WR
Vaø RD
00 0000 0000
Hình 2.3 : Toùm taét caùc vuøng boä nhôù cuûa 8031 / 8051
Hai ñaëc tính caàn löu yù laø :
Caùc thanh ghi vaø caùc port xuaát nhaäp ñaõ ñöôïc xeáp trong boä nhôù vaø coù theå ñöôïc truy xuaát tröïc tieáp nhö caùc ñòa chæ boä nhôù khaùc.
Ngaên xeáp baân trong RAM noäi nhoû hôn so vôùi RAM ngoaøi nhö trong caùc boä vi xöû lí khaùc.
Chi tieát veà boä nhôù RAM treân chip :
Nhö ta ñaõ thaáy treân hình sau, RAM beân 8051/ 8031 ñöôïc phaân chia giöõa caùc bank thanh ghi (00H – 1FH), RAM ñòa chæ hoùa töøng bit (20H – 2FH), RAM ña duïng (30H – 7FH) vaø caùc thanh ghi chöùc naêng ñaëc bieät (80H – FFH).
RAM ña duïng.
Ñòa chæ byte Ñòa chæ bit
7F
30
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
18
17
10
0F
08
07
00
RAM ña duïng
7F
7E
7D
7C
7B
7A
79
78
77
76
75
74
73
72
71
70
6F
6E
6D
6C
6B
6A
69
68
67
66
65
64
63
62
61
60
5F
5E
5D
5C
5B
5A
59
58
57
56
55
54
53
52
51
50
4F
4E
4D
4C
4B
4A
49
48
47
46
45
44
43
42
41
40
3F
3E
3D
3C
3B
3A
39
38
37
36
35
34
33
32
31
30
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
1E
1D
1C
1B
1A
19
18
17
16
15
14
13
12
11
10
0F
0E
0D
0C
0B
0A
09
08
07
06
05
04
03
02
01
00
BANK 3
BANK 2
BANK 1
Default register
Bank for RO¸R7
Baûng toùm taét baûn baûn ñoà vuøng nhôù treân chip data 8051
Ñòa chæ byte Ñòa chæ bit
FF
F0
E0
D0
B8
B0
A8
A0
99
98
90
8D
8C
8B
8A
89
F7
F6
F5
F4
F3
F2
F1
F0
B
E7
E6
E5
E4
E3
E2
E1
E0
ACC
D7
D6
D5
D4
D3
D2
D1
D0
PSW
-
-
-
BC
BB
BA
B9
B8
IP
B7
B6
B5
B4
B3
B2
B1
B0
P3
AF
-
-
AC
AB
AA
A9
A8
IE
A7
A6
A5
A4
A3
A2
A1
A0
P2
SBUF
Not bit addressable
9F
9E
9D
9C
9B
9A
99
98
SCON
97
96
95
94
93
92
91
90
P1
TH1
TH0
TL1
TL0
TMOD
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
88
87
83
82
81
80
8F
8E
8D
8C
8B
8A
89
88
TCON
Not bit addressable
PCON
DPH
DPL
SP
Not bit addressable
Not bit addressable
Not bit addressable
87
86
85
84
83
82
81
80
PO
Toùm taét boä nhôù döõ lieäu treân chip
Moïi ñòa chæ trong vuøng RAM ña duïng ñeàu coù theå ñöôïc truy xuaát töï do duøng caùch ñaùnh ñòa chæ tröïc tieáp hoaëc giaùn tieáp. Ví duï, ñeå ñoïc noäi dung ôû ñòa chæ 5FH cuûa RAM noäi vaøo thanh ghi tích luõy leänh sau seõ ñöôïc duøng :
MOV A, 5FH
Leänh naøy di chuyeån moät buùyt döõ lieäu duøng caùch ñaùnh ñòa chæ tröïc tieáp ñeå xaùc ñònh “ñòa chæ nguoàn” (5FH). Ñích nhaän döõ lieäu ñöôïc ngaàm xaùc ñònh trong maõ leänh laø thanh ghi tích luõy A.
RAM beân trong cuõng coù theå ñöôïc truy xuaát duøng caùch ñaùnh ñòa chæ giaùn tieáp qua RO hay R1. Ví duï, sau khi thi haønh cuøng nhieäm vuï nhö leänh ñôn ôû treân :
MOV R0, #5FH
MOV A, @R0
Leänh ñaàu duøng ñò hæ töùc thôøi ñeå di chuyeån giaù trò 5FH vaøo thanh ghi R0 vaø leänh thöù hai duøng ñòa tröïc tieáp ñeå di chuyeån döõ lieäu “ñöôïc troû bôûi R0” vaøo thanh ghi tích luõy.
b.RAM ñòa chæ hoùa töøng bit :
8051 / 8031 chöùa 210 bit
ñöôïc ñòa chæ hoùa, trong ñoù 128 bit laø ôû caùc ñòa chæ byte 20H ñeán 2FH, vaø phaàn coøn laïi trong caùc thanh ghi chöùc naêng ñaëc bieät .
Y töôûng truy xuaát töøng bit rieâng reõ baèng meàm laø moät ñaëc tín tieän lôïi cuûa vi ñieàu khieån noùi chung. Caùc bit coù theå ñöôïc ñaët, xoùa, AND,OR …vôùi moät leänh ñôn. Ña soá caùc chi xöû lí ñoøi hoûi moät chuoåi leänh ñoïc – söõa – ghi ñeå ñaït ñöôïc hieäu quaû töông töï. Hôn nöõa, caùc port I/0 cuõng ñöôïc ñòa chæ töøng bit laøm ñôïn giaûn phaàn meàm xuaát nhaäp töøng bit.
Coù 128 bit ñöôïc ñòa chæ hoùa ña duïng ôû caùc byte 20H ñeán 2FH. Caùc ñòa chæ naøy ñöôïc truy xuaát nhö caùc byte hoaëc caùc bit phuï thuoäc vaøo leänh ñöôïc duøng . ví duï, ñeå ñaët bit 67H, ta duøng leänh sau :
SETB 67H
Chuù yù raèng “ñòa chæ bit 67H” laø bit coù troïng soá lôùn nhaát (MSB) ôû “ñòa chæ byte 2CH” leänh treân seõ khoâng taùc ñoäng ñeán caùc bit khaùc cuûa ñòa chæ naøy.
c.Caùc bank thanh ghi :
32 byte thaáp nhaát cuûa boä nhôù noäi laø daønh cho caùc bank thanh ghi. Boä leänh cuûa 8051 / 8031 hoå trôï 8 thanh ghi (RO ñeán R7) vaø theo maëc ñònh (sau khi Reset heä thoáng) caùc thanh ghi naøy ôû caùc ñòa chæ 00H-07H. Leänh sau ñaây seõ ñoïc noäi dung ôû ñòa chæ 05H vaøo thanh ghi tích luõy.
MOV A,R5
Ñaây laø leänh moät byte duøng ñòa chæ thanh ghi. Taát nhieân, thao taùc töông töï coù theå ñöôïc thi haønh baèng leänh 2 byte duøng ñòa chæ tröïc tieáp naèm trong byte thöù hai:
MOV A,05H
Caùc leänh duøng caùc thanh ghi R0 ñeán R7 thì seõ ngaén hôn vaø nhanh hôn caùc leänh töông öùng nhöng duøng ñòa chæ tröïc tieáp. Caùc giaù trò döõ lieäu ñöôïc duøng thöôøng xuyeân neân duøng moät trong caùc thanh ghi naøy.
Bank thanh ghi tích cöïc coù theå chuyeån ñoåi baèng caùch thay ñoåi caùc bit choïn bank thanh ghi trong töø traïng thaùi chöông trình (PSW). Giaû söû raèng bank thanh ghi 3 ñöôïc tích cöïc, leänh sau seõ ghi noäi dung cuûa thanh ghi tích luõy vaøo ñòa chæ 18H:
MOV R0,A
Yù töôûng duøng “caùc bank thanh ghi” cho pheùp “chuyeån höôùng” chöông trình nhanh vaø hieäu quûa (töøng phaàn rieâng reõ cuûa phaàn meàm seõ coù moät boä thanh ghi rieâng khoâng phuï thuoäc vaøo caùc phaàn khaùc).
4./ Caùc thanh ghi chöùc naêng ñaëc bieät:
Caùc thanh ghi noäi cuûa 8051/8031 ñöôïc truy xuaát ngaàm ñònh bôûi boä leänh. Ví duï leänh “INC A” seõ taêng noäi dung cuûa thanh ghi tích luõy A leân 1. Taùc ñoäng naøy ñöôïc ngaàm ñònh trong maõ leänh.
Caùc thanh ghi trong 8051/8031 ñöôïc ñònh daïng nhö moät phaàn cuûa RAM treân chip. Vì vaäy moãi thanh ghi seõ coù moät ñòa chæ (ngoaïi tröø thanh ghi tröïc tieáp, seõ khoâng coù lôïi khi ñaët chuùng vaøo trong RAM treân chip). Ñoù laø lyù do ñeå 8051/0831 coù nhieàu thanh ghi. Cuõng nhö R0 ñeán R7, coù 21 thanh ghi chöùc naêng ñaëc bieät (SFR: Special Funtion Rgister) ôû vuøng treân cuûa RAM noäi, töø ñòa chæ 80H ñeán FFH. Chuù yù raèng haàu heát 128 ñòa chæ töø 80H ñeán FFH khoâng ñöôïc ñònh nghóa. Chæ coù 21 ñòa chæ SFR laø ñöôïc ñònh nghóa.
Ngoaïi tröø tích luõy (A) coù theå ñöôïc truy xuaát ngaàm nhö ñaõ noùi, ña soá caùc SFR ñöôïc truy xuaát duøng ñòa chæ tröïc tieáp. chuù yù raèng moät vaøi SFR coù theå ñöôïc ñòa chæ hoùa bit hoaëc byte. Ngöôøi thieát keá phaûi thaän troïng khi truy xuaát bit vaø byte. Ví duï leänh sau:
SETB 0E0H
Seõ Set bit 0 trong thanh ghi tích luõy, caùc bit khaùc khoâng thay ñoåi. Ta thaáy raèng E0H ñoàng thôøi laø ñòa chæ byte cuûa thanh ghi tích luõy vaø laø ñòa chæ bit coù troïng soá nhoû nhaát trong thanh ghi tích luõy. Vì leänh SETB chæ taùc ñoäng treân bit, neân chæ coù ñòa chæ bit laø coù hieäu quaû.
Töø traïng thaùi chöông trình:
Töø traïng thaùi chöông trình (PSW: Program Status Word) ôû ñòa chæ D0H chöùa caùc bit traïng thaùi nhö baûng toùm taét sau:
Bit
Kyù hieäu
Ñòa chæ
Yù nghóa
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
CY
AC
F0
RS1
RS0
OV
P
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
Côø nhôù
Côø nhôù phuï
Côø 0
Bit 1 choïn bank thanh ghi
Bit choïn bank thanh ghi.
00=bank 0; ñòa chæ 00H-07H
01=bank 1: ñòa chæ 08H-0FH
10=bank 2:ñòa chæ 10H-17H
11=bank 3:ñòa chæ 18H-1FH
Côø traøn
Döï tröõ
Côø Parity chaün.
Baûng 21: Töø traïng thaùi chöông trình
Côø nhôù (CY) coù coâng duïng keùp. Thoâng thöôøng noù ñöôïc duøng cho caùc leänh toaùn hoïc: noù seõ ñöôïc set neáu coù moät soá nhôù sinh ra bôûi pheùp coäng hoaëc coù moät soá möôïn pheùp tröø . Ví duï, neáu thanh ghi tích luõy chöùa FFH, thì leänh sau:
ADD A,#1
Seõ traû veà thanh ghi tích luõy keát quûa 00H vaø set côø nhôù trong PSW.
Côø nhôù cuõng coù theå xem nhö moät thanh ghi 1 bit cho caùc leänh luaän lyù thi haønh treân bit. Ví duï, leänh seõ AND bit 25H vôùi côø nhôù vaø ñaët keát quûa trôû vaøo côø nhôù:
ANL C,25H
Côø nhôù phuï:
Khi coäng caùc soá BCD, côø nhôù phuï (AC) ñöôïc set neáu keát quûa cuûa 4 bit thaáp trong khoaûng 0AH ñeán 0FH. Neáu caùc giaù trò coäng ñöôïc laø soá BCD, thì sau leänh coäng caàn coù DA A( hieäu chænh thaäp phaân thanh ghi tích luõy) ñeå mang keát quûa lôùn hôn 9 trôû veà taâm töø 0¸9.
Côø 0
Côø 0 (F0)laø moät bit côø ña duïng daønh caùc öùng duïng cuûa ngöôøi duøng.
Caùc bit choïn bank thanh ghi
Caùc bit choïn bank thanh ghi (RSO vaø RS1) xaùc ñònh bank thanh ghi ñöôïc tích cöïc. Chuùng ñöôïc xoùa sau khi reset heä thoáng vaø ñöôïc thay ñoåi baèng phaàn meàm neáu caàn. Ví duï, ba leänh sau cho pheùp bank thanh ghi 3 vaø di chuyeån noäi dung cuûa thanh ghi R7 (ñòa chæ byte IFH) ñeán thanh ghi tích luõy:
SETB RS1
SETB RSO
MOV A,R7
Khi chöông trình ñöôïc hôïp dòch caùc ñòa chæ bit ñuùng ñöôïc thay theá cho caùc kyù hieäu “RS1” vaø “RS0”. Vaäy leänh SETB RS1 seõ gioáng nhö leänh SETB 0D4H.
Côø Traøn
Côø traøn (OV) ñöôïc set moät leänh coäng hoaëc tröø neáu coù moät pheùp toaùn bò traøn. Khi caùc soá coù daáu ñöôïc coäng hoaëc tröø vôùi nhau, phaàn meàm coù theå kieåm tra bit naøy ñeå xaùc ñònh xem keát quûa cuûa noù coù naèm trong taàm xaùc ñònh khoâng. Khi caùc soá khoâng daáu ñöôïc coäng, bit OV coù theå ñöôïc boû qua. Caùc keát quûa lôùn hôn +127 hoaëc nhoû hôn –128 seõ set bit OV.
Thanh ghi B:
Thanh ghi B ôû ñòa chæ F0H ñöôïc duøng cuøng vôùi thanh ghi tích luõy A cho caùc pheùp toaùn nhaân vaø chia. Leänh MUL AB seõ nhaân caùc giaù trò khoâng daáu 8 bit trong A vaø B roài traû veà keát quûa 16 bit trong A (byte thaáp) vaø B (byte cao). Leänh DIV AB seõ chia A cho B roài traû veà keát quûa nguyeân trong A vaø phaàn dö trong B. Thanh ghi B cuõng coù theå ñöôïc xem nhö thanh ghi ñeäm ña duïng. Noù ñöôïc ñòa chæ hoùa ttöøng bit baèng caùc ñòa chæ bit FOH ñeán F7H.
Con troû ngaên xeáp:
Con troû ngaên xeáp (SP) laø moät thanh ghi 8 bit ôû ñòa chæ 81H. Noù chöùa ñòa chæ cuûa byte döõ lieäu hieän haønh treân ñænh cuûa ngaên xeáp. Caùc leänh treân ngaên xeáp bao goàm caùc thao taùc caát döõ lieäu vaøo ngaên xeáp vaø laáy döõ lieäu ra khoûi ngaên xeáp. Leänh caát döõ lieäu vaøo ngaên xeáp seõ laøm taêng SP tröôùc khi ghi döõ lieäu, vaø leänh laáy döõ lieäu ra khoûi ngaên xeáp seõ doïc döõ lieäu vaø laøm giaûm SP. Ngaên xeáp cuûa 8051/8031 ñöôïc giöõ trong RAM noäi vaø ñöôïc giôùi haïn caùc ñòa chæ coù theå truy xuaát baèng ñòa chæ giaùn tieáp. chuùng laø 128 byte ñaàu cuûa 8051/8031.
Ñeå khôûi ñoäng laïi SP vôùi ngaên xeáp baét ñaàu taïi 60H, caùc leänh sau ñaây ñöôïc duøng:
MOV SP,#%FH
Treân 8051/8031 ngaên xeáp bò giôùi haïn 32 byte vì ñòa chæ cao nhaát cuûa RAM treân chip laø 7FH. Sôû dó cuøng giaù trò 5FH vì SP seõ taêng leân 60H tröôùc khi caát byte döõ leäu ñaàu tieân.
Ngöôøi thieát keá coù theå choïn khoâng phaûi khôûi ñoäng laïi con troû ngaên xeáp maø ñeå noù laáy giaù trò maëc ñònh khi reset heä thoáng. Giaù trò maêc ñònh ñoù laø 07H vaø keát quûa laø ngaên ñaàu tieân ñeå caát döõ lieäu coù ñòa chæ 08H. Neáu phaàn meàm öùng duïng khoâng khôûi ñoäng laïi SP , bank thanh ghi 1 (coù theå caû 2 vaø 3) seõ khoâng duøng ñöôïc vì vuøng RAM naøy ñaõ ñöôïc duøng laøm ngaên xeáp.
Ngaên xeáp ñöôïc truy xuaát tröïc tieáp baèng caùc leänh PUSH vaø POP ñeå löu giöõ taïm thôøi vaø laáy laïi döõ lieäu hoaëc ñöôïc truy xuaát ngaàm baèng caùc leänh goïi chöông trình con (ACALL, LACALL) vaø caùc leänh trôû veà (RET,RETI) ñeå caát vaø laáy laïi boä ñeám chöông trình.
Con troû döõ lieäu:
Con troû döõ lieäu (DPTR) ñöôïc duøng ñeå truy xuaát boä nhôù ngoaøi laø moät thanh ghi 16 bit ôû ñòa chæ 82H(DPL: byte thaáp) vaø 83H (DPH:byte cao). Ba leänh sau seõ ghi 55H vaøo RAM ngoaøi ôû ñòa chæ 1000H:
MOV A,#55H
MOV DPTR,#1000H
MOVX @DPTR,A
Leänh ñaàu tieân duøng ñòa chæ töùc thôøi ñeå taûi döõ lieäu 55H vaøo thanh ghi tích luõy, leänh thöù hai cuõng duøng ñòa chæ töùc thôøi, laàn naøy ñeå taûi döõ lieäu 16 bit 1000H vaøo con troû döõ lieäu. Leänh thöù ba duøng ñòa chæ giaùn tieáp ñeå di chuyeån döõ lieäu trong A (55H) ñeán RAM ._.ngoaøi ôû ñòa chæ ñöôïc chöùa trong DPTR (1000H)
Caùc thanh ghi port xuaát nhaäp:
Caùc port cuûa 8051/8031 bao goàm Port 0 ôû ñòa chæ 80H, Port 1 ôû ñòa chæ 90 H, Port 2 ôû ñòa chæ A0H vaø Port 3 ôû ñòa chæ B0H. Taát caû caùc Port ñeàu ñöôïc ñòa chæ hoùa töøng bit. Ñieàu ñoù cung caáp moät khaû naêng giao tieáp thuaän lôïi.
Caùc thanh ghi timer:
8051/8031 chöùa 2 boä ñònh thôøi ñeám 16 bit ñöôïc duøng trong vieäc ñònh thôøi hoaëc ñeám söï kieän. Timer 0 ôû ñòa chæ 8AH (TL0:byte thaáp) vaø 8CH (TH0:byte cao).Timer 1 ôû ñòa chæ 8BH (TL1:byte thaáp) vaø 8DH (TH1: byte cao). vieäc vaän haønh timer ñöôïc set bôûi thanh ghi Timer Mode (TMOD) ôû ñòa chæ 89H vaø thanh ghi ñieàu khieån timer (TCON) ôû ñòa chæ 88H. Chæ coù TCON ñöôïc ñòa chæ hoùa töøng bit.
Caùc thanh ghi port noái tieáp:
8051/8031 chöùc moät port noái tieáp treân chip daønh cho vieäc trao ñoåi thoâng tin vôùi caùc thieát bò noái tieáp nhö maùy tính, modem hoaëc cho vieäc giao tieáp vôùi caùc IC khaùc coù giao tieáp noái tieáp (coù boä chuyeån ñoåi A/D, caùc thanh ghi dòch..). Moät thanh ghi goïi laø boä ñeäm döõ lieäu noái tieáp (SBUF) ôû ñòa chæ 99H sseõ giöõ caû hai giöõ lieäu truyeàn vaø nhaän. Khi truyeàn döõ lieäu thì ghi leân SBUf, khi nhaän döõ lieäu thì ñoïc SBUF. Caùc mode vaän haønh khaùc nhau ñöôïc laäp trình qua thanh ghi ñieàu khieån port noái tieáp (SCON) (ñöôïc ñòa chæ hoùa töøng bit) ôû ñòa chæ 98H.
Caùc thanh ghi ngaét:
8051/8031 coù caáu truùc 5 nguoàn ngaét, 2 möùc öu tieân. Caùc ngaét bò caám sau khi reset heä thoáng vaø seõ ñöôïc cho pheùp baèng vieäc ghi thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ 8AH. Caû hai thanh ghi ñöôïc ñòa chæ hoùa töøng bit.
Caùc thanh ghi ñieàu khieån coâng suaát:
Thanh ghi ñieàu khieån coâng suaát (PCON) ôû ñòa chæ 87H chöùa nhieàu bit ñieàu khieån. Chuùng ñöôïc toùm taét trong baûng sau:
Bit
Kyù hieäu
Yù nghóa
6
5
4
3
2
1
0
SMOD
GF1
GF0
PD
IDL
Bit gaáp ñoâi toác ñoä baud, neáu ñöôïc set thì toác ñoä baud seõ taêng gaáp ñoâi trong caùc mode 1,2 vaø 3 cuûa port noái tieáp
Khoâng ñònh nghóa
Khoâng ñònh nghóa
Khoâng ñònh nghóa
Bit côø ña duïng 1
Bit côø ña duïng 0
Giaûm coâng suaát, ñöôïc set ñeå kích hoaït mode giaûm coâng suaát, chæ thoaù khi reset
Mode chôø, set ñeå kích hoaït mode chôø, chæ thoaùt khi coù ngaét hoaëc reset heä thoáng.
Baûng 2.2 :Thanh ghi ñieàu khieån coâng suaát (PCON)
5/. Boä nhôù ngoaøi.
8051/8031 coù khaû naêng môû roäng boä nhôù ñeán 64K boä nhôù chöông trình vaø 64K boä nhôù döõ lieäu beân ngoaøi. Do ñoù coù theå duøng theâm ROM vaø RAM neáu caàn.
Khi duøng boä nhôù ngoaøi, port 0 khoâng coøn laø moät port I/O thuaàn tuùy nöõa. Noù ñöôïc hôïp keânh giöõa bus ñòa chæ (A0-A7) vaø bus döõ lieäu (D0-D7) vôùi tín hieäu ALE ñeå choát byte thaáp cuûa ñòa chæ khi baét ñaàu moãi chu kyø boä nhôù. Port 2 thoâng thöôøng ñöôïc duøng cho byte cao cuûa bus ñòa chæ.
Trong nöûa ñaàu cuûa moãi chu kyø boä nhôù, byte thaáp cuûa ñòa chæ ñöôïc caáp trong port 0 vaø ñöôïc choát baèng xung ALE. Moät IC choát 74HC373 (hoaëc töông ñöông) seõ giöõ byte ñòa chæ thaáp trong phaàn coøn laïi cuûa chu kyø boä nhôù. Trong nöûa sau cuûa chu kyø boä nhôù port 0 ñöôïc duøng nhö bus döõ lieäu vaø ñöôïc ñoïc hoaëc ghi tuøy theo leänh.
a/ Truy xuaát boä nhôù chöông trình ngoaøi:
Boä nhôù chöông trình ngoaøi laø moä IC ROM ñöôïc pheùp bôûi tín hieäu PSEn. Hình sau moâ taû caùch noái moät EPROM vaøo 8051/8031:
Port 0
EA
8051
ALE
Port 2
PSEN
D0-D7
A0-A7
EPROM
A8-A15
OE
D Q
74HC373
G
Hình 2.5 Giao tieáp giöõa 8051/8031 vaø EPROM
Moät chu kyø maùy cuûa 8051/8031 coù 12 chu kyø xung nhòp. Neáu boä dao ñoäng treân chip ñöôïc laùi bôûi moät thaïch anh 12MHz thì chu kyø maùy keùo daøi 1ms. Trong moät chu kyø maùy seõ coù 2 xung ALE vaø 2 byte ñöôïc ñoïc töø boä nhôù chöông trình (neáu leänh hieän haønh laø moät byte thì byte thöù hai seõ ñöôïc loaïi boû). Giaûn ñoà thôøi gian cuûa moät laàn laáy leänh ñöôïc veõ ôû hình sau:
Hình 2.6: Giaûn ñoà thôøi gian ñoïc boä nhôù chöông trình ngoaøi.
b/ Truy xuaát boä nhôù döõ lieäu ngoaøi:
Port 0
8051
EA
ALE
Port 2
RD
WR
D0-D7
RAM
A0-A7
A8-A15
OE
WE
74HC373
O D
G
Hình 2.7: Giao tieáp giöõa 8051/8031 vaø RAM
Boä nhôù döõ lieäu ngoaøi laø moät boä nhôù RAM ñöôïc cho pheùp ghi/ñoïc baèng caùc tín heäu WR vaø RD (caùc chaân P3.6 vaø P3.7 thay ñoåi chöùc naêng). chæ coù moät caùch truy xuaát boä nhôù döõ lieäu ngoaøi laø vôùi leänh MOVX duøng con troû döõ lieäu (DPTR) 16 bit hoaëc R0 vaø R1 xem nhö thanh ghi ñòa chæ.
Keát noái bus ñòa chæ vaø bus döõ lieäu giöõa RAM vaø 8051/8031 cuõng gioáng EPROM vaø do ñoù cuõng coù theå leân ñeán 64 byte boä nhôù RAM. Ngoaøi ra, chaân RD cuûa 8051/8031 ñöôïc noái tôùi chaân cho pheùp xuaát (OE) cuûa RAM vaø chaân WR ñöôïc noái tôùi chaân ghi (WR) cuûa RAM.
Giaûn ñoà thôøi gian cho leänh ñoïc boä nhôù döõ lieäu ngoaøi ñöôïc veõ treân hình sau ñoái vôùi leänh MOVX A, @DPTR:
Hình 2.8: Giaûn ñoà thôøi gian cuûa leänh MOVX
Giaûn ñoà thôøi gian cho leänh ghi (MOVX @DPTR, A) cuõng töông töï chæ khaùc ñöôøng WR seõ thay vaøo ñöôøng RD vaø döõ lieäu ñöôïc xuaát ra treân port 0 (RD vaãn giöõ möùc cao).
6/. Leänh reset.
8051/8031 ñöôïc reset baèng caùch giöõ chaân RST ôû möùc cao ít nhaát trong 2 chu kyø maùy vaø traû noù veà muùc thaáp. RST coù theå ñöôïc kích khi caáp ñieän duøng moät maïch R-C.
Hình 2.9: Maïch reset heä thoáng.
Traïng thaùi cuûa taát caû caùc thanh ghi cuûa 8051/8031 sau khi reset heä thoáng ñöôïc toùm taét trong baûng sau:
Thanh ghi
Noäi dung
Ñeám chöông trình
Tích luõy
B
PSW
SP
DPTR
Port 0-3
IP
IE
Caùc thanh ghi ñònh thôøi
SCON
SBUF
PCON(HMOS)
PCON(CMOS)
0000H
00H
00H
00H
07H
0000H
FFH
XXX00000B
0XX00000B
00H
00H
00H
0XXXXXXB
0XXX0000B
Baûng 2.3: Traïng thaùi caùc thanh ghi sau khi reset
Quan troïng nhaát trong caùc thanh ghi treân laø thanh ghi ñeám chöông trình, noù ñöôïc ñaët laïi 0000H. Khi RST trôû laïi möùc thaáp, vieäc thi haønh chöông trình luoân baét ñaàu ôû ñòa chæ ñaàu tieân trong boä nhôù trong chöông trình: ñòa chæ 0000H. Noäi dung cuûa RAM treân chip khoâng bò thay ñoåi bôûi leänh reset.
7. Hoaït ñoäng cuûa boä ñònh thôøi (timer)
7.1 Giôùi thieäu.
Moät ñònh nghóa ñôn giaûn cuûa timer laø moät chuoãi caùc flip-flop chia ñoâi taàn soá noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp. Ngoõ ra cuûa taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa timer (flip-flop côø). Giaù trò nhò phaân trong caùc flip-flop cuûa timer coù theå xem nhö soá ñeám soá xung nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng timer. Ví duï timer 16 bit seõ ñeám leân töø 0000H ñeán FFFFH. Côø baùo traøn seõ leân 1 khi soá ñeám traøn töø FFFFH ñeán 0000H.
8051/8031 coù 2 timer 16 bit, moãi timer coù boán caùch laøm vieäc. Ngöôøi ta söû duïng caùc timer ñeå : a) ñònh khoaûng thôøi gian, b) ñeám söï kieän hoaëc c) taïo toác ñoä baud cho port noái tieáp trong 8051/8031.
Trong caùc öùng duïng ñònh khoaûng thôøi gian, ngöôøi ta laäp trình timer ôû moät khoaûng ñeàu ñaën vaø ñaët côø traøn timer. Côø ñöôïc duøng ñeå ñoàng boä hoùa chöông trình ñeå thöïc hieän moät taùc ñoäng nhö kieåm tra traïng thaùi cuûa caùc cöûa ngoõ vaøo hoaëc göûi caùc söï kieän ra caùc ngoõ ra. Caùc öùng duïng khaùc coù theå söû duïng vieäc taïo xung nhòp ñeàu ñaën cuûa timer ñeå ño thôøi gian troâi qua giöõa hai söï kieän (ví duï : ño ñoä roäng xung).
Ñeám söï kieän duøng ñeå xaùc ñònh soá laàn xaåy ra cuûa moät söï kieän. Moät “söï kieän” laø baát cöù taùc ñoäng ngoaøi naøo coù theå cung caáp moät chuyeån traïng thaùi treân moät chaân cuûa 8051/8031. Caùc timer cuõng coù theå cung caáp xung nhòp toác ñoä baud cho port noái tieáp trong 8051/8031.
Truy xuaát timer cuûa 8051/8031 duøng 6 thanh ghi chöùc naêng ñaëc bieät cho trong baûng sau:
SFR
MUÏC ÑÍCH
ÑÒA CHÆ
Ñòa chæ hoùa töøng bit
TCON
TMOD
TL0
TL1
TH0
TH1
Ñieàu khieån timer
Cheá ñoä timer
Byte thaáp cuûa timer 0
Byte thaáp cuûa timer 1
Byte cao cuûa timer 0
Byte cao cuûa timer 1
88H
89H
8AH
8BH
8CH
8DH
Coù
Khoâng
Khoâng
Khoâng
Khoâng
Khoâng
Baûng 2.4: Thanh ghi chöùc naêng ñaëc bieät duøng timer.
7.2 Thanh ghi cheá ñoä timer (TMOD)
Thanh ghi TMOD chöùa hai nhoùm 4 bit duøng ñeå ñaët cheá ñoä laøm vieäc cho timer 0 vaø timer 1.
Bit Teân Timer Moâ taû
7 GATE 1 Bit (Môû) coång, khi leân 1 timer chæ chaïy khi INT1 ôû möùc cao.
6 C/T 1 Bit choïn cheá ñoä counter/timer
1=boä ñeám söï kieän
0=boä ñònh khoaûng thôøi gian
5 M1 1 Bit 1 cuûa cheá ñoä(mode)
4 M0 1 Bit 0 cuûa cheá ñoä
00: cheá ñoä 0 : timer 13 bit
01: cheá ñoä 1 : timer 16 bit
10: cheá ñoä 2 : töï ñoäng naïp laïi 8255A bit
11: cheá ñoä 3 : taùch timer
3 GATE 0 Bit (môû) coång
2 C/T 0 Bit choïn counter/timer
1 M1 0 Bit 1 cuûa cheá ñoä
0 M0 0 Bit 0 cuûa cheá ñoä
Baûng 2.5: Toùm taét thanh ghi TMOD
7.3 Thanh ghi ñieàu khieån timer (TCON)
Thanh ghi TCON chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån cho timer 0 vaø timer 1.
Bit Kyù hieäu Ñòa chæ Moâ taû
TCON.7 TF1 8FH Côø baùo traøn timer 1. Ñaët bôûi phaàn
cöùng khi traøn, ñöôïc xoùa bôûi phaàn
meàm hoaëc phaàn cöùng khi boä xöû lyù
chæ ñeán chöông trình phuïc vuï ngaét.
TCON.6 TR1 8EH Bit ñieàu khieån timer 1 chaïy. Ñaët/xoùa
baèng phaàn meàm cho timer chaïy/ngöng.
TCON.5 TF0 8DH Côø baùo traøn timer 0
TCON.4 TR0 8CH Bit ñieàu khieån timer 0 chaïy
TCON.3 IE1 8BH Côø caïnh ngaét 1 beân ngoaøi, ñaëc bôûi
TCON.2 IT1 8AH Côø kieåu ngaét moät beân ngoaøi.
phaàn cöùng khi phaùt hieän moät caïnh
xuoáng ôû INT1, xoùa baèng phaàn meàm
hoaëc phaàn cöùng khi CPU chæ ñeán
chöông trình phuïc vuï ngaét.
Ñaët/xoùa baèng phaàn meàm ñeà ngaét
ngoaøi tích cöïc caïnh xuoáng/möùc thaáp
TCON.1 IE0 89H Côø caïnh ngaét 0 beân ngoaøi
TCON.0 IT0 88H Côø kieåu ngaét 0 beân ngoaøi
Baûng 2.6: Toùm taét thanh ghi TCON
7. 4 Caùc cheá ñoä timer.
Cheá ñoä 0, cheá ñoä timer 13 bit.
Ñeå töông thích vôùi 8048 (coù tröùôùc 8051)
Ba bit cao cuûa TLX (TL0 vaø/hoaêc TL1) khoâng duøng
TFx
TLx THx
(5 bit) (8 bit)
Xung nhòp
timer
Côø baùo traøn
Cheá ñoä 1- cheá ñoä timer 16 bit.
Hoaït ñoäng nhö timer 16 bit ñaày ñuû.
Côø baùo traøn laø bit TFx trong TCON coù theå ñoïc hoaëc ghi baèng phaàm meàm.
MSB cuûa giaù trò trong caùc thanh ghi timer laø bit 7 cuûa THx vaø LBS laø bit 0 cuûa TLx. Caùc thanh ghi timer (Tlx/THx) coù theå ñöôïc ñoïc hoaëc ghi baát cöù luùc naøo baèng phaàm meàm.
TLx THx
(5 bit) (8 bit)
TFx
Xung nhòp
timer
Côø baùo traøn
Cheá ñoä 0- cheá ñoä töï ñoäng naïp laïi 8 bit.
TLx hoaït ñoäng nhö moät timer 8 bit, trong khi ñoù THx vaãn giöõ nguyeân giaù trò ñöôïc naïp. Khi soá ñeám traøn töù FFH ñeán 00H, khoâng nhöõng côø timer ñöôïc set maø giaù trò trong THx ñoàng thôøi ñöôïc naïp vaøo TLx. Vieäc ñeám tieáp tuïc töø giaù trò naøy leân ñeán FFH xuoáng 00H vaø naïp laïi... cheá ñoä naøy raát thoâng duïng vì söï traøn timer xaûy ra trong nhöõng khoaûng thôøi gian nhaát ñònh vaø tuaàn hoaøn moät khi ñaõ khôûi ñoäng TMOD vaø THx.
TLx
(8 bit)
TFx
THx
(8 bit)
Xung nhòp
timer
Côû baùo traøn
Naïp laïi
Cheá ñoä 3- cheá ñoä taùch timer
Timer 0 taùch thaønh hai timer 8 bit (TL0 vaø TH0), TL0 coù côø baùo traøn laø TF0 vaø TH0 coù côø baùo traøn laø TF1.
Timer 1 ngöng ôû cheá ñoä 3, nhöng coù theå ñöôïc khôûi ñoäng baèng caùch chuyeån sang cheá ñoä khaùc. Giôùi haïn duy nhaát laø côø baùo traøn TF1 khoâng coøn bò taùc ñoäng khi timer 1 bò traøn vì noù ñaõ ñöôïc noái tôùi TH0.
Khi timer 0 ôû cheá ñoä 3, coù theå cho timer 1 chaïy vaø ngöng baèng caùch chuyeån noù ra ngoaøi vaø vaøo cheá ñoä 3. Noù vaãn coù theå ñöôïc söû duïng bôûi port noái tieáp nhö boä taïo toác ñoä baund hoaëc noù coù theå ñöôïc söû duïng baèng baát cöù caùch naøo khoâng caàn ngaét (vì noù khoâng coøn ñöôïc noái vôùi TF1).
TL1 TH1
TL0
TF0
TH0
TF1
Xung nhòp
Timer
Xung nhòp
Timer
Côø baùo traøn
I/12 Fosc
Côø baùo traøn
Nguoàn taïo xung nhòp.
Coù hai nguoàn taïo xung nhòp coù theå coù, ñöôï choïn baèng caùch ghi vaøo bit C/T (counter/timer) trong TMOD khi khôûi ñoäng timer. Moät nguoàn taïo xung nhòp duøng cho ñònh khoaûng thôøi gian, caùi khaùc cho ñeám söï kieän.
On chip
Osillator
¸12
Crytal
Timer
Clock
T0 or T1
pin
0=Up (Internal Timing)
1=Down (Event Counting)
Nguoàn xung taïo nhòp
Ñònh khoaûng thôøi gian (interval timing)
Neáu C/T =0 hoaï t ñoäng timer lieân tuïc ñöôïc choïn vaø timer ñöôïc duøng cho vieäc ñònh khoaûng thôøi gian. Luùc ñoù, timer laáy xung nhòp töø boä dao ñoäng treân chip. Boä chia 12 ñöôïc theâm vaøo ñeå giaûm taàn soá xung nhòp ñeán giaù trò thích hôïp cho phaàn lôùn caùc öùng duïng. Nhö vaäy thaïch anh 12 MHz seõ cho toác ñoä xung nhòp timer 1 MHz. Boùa traøn timer xaûy ra sau moät soá (coá ñòng) xung nhòp, phuï thuoäc vaøo giaù trò ban ñaàu ñöôïc naïp vaøo caùc thanh ghi timer TLx/THx.
Ñeám söï kieän (Event counting)
Neáu C/T=1, timer laáy xung nhòp töø nguoàn beân ngoaøi. Trong haàu heát caùc öùng duïng nguoàn beân ngoaøi naøy cung caáp cho timer moät xung kh xaûy ra moät “söï kieän “, timer duøng ñeám söï kieän ñöôïc xaùc ñònh baèng phaàn meàm baèng caùch ñoïc caùc thanh ghi TLx/THx vì giaù trò 16 bit trong caùc thanh ghi naøy taêng theâm 1 cho moãi söï kieän.
Nguoàn xung nhòp ngoaøi coù töø thay ñoåi chuù7c naêng cuûa caùc chaân port 3. Bit 4 cuûa port 3 (P3.4) duøng laøm ngoõ vaøo taïo xung nhòp beân trong timer 0 vaø ñöôïc goïi laø “T0”. Vaø p3.5 hay “T1” laø ngoõ vaøo taïo xung nhòp cho timer 1.
Baét ñaàu döøng vaø ñieàu khieån caùc timer.
Phöông phaùp môùi ñôn giaûn nhaát ñeå baét ñaàu (cho chaïy) vaø döøng caùc timer laø duøng caùc bit ñieàu khieån chaïy :TRx trong TCON, TRx bò xoùa sau khi reset heä thoáng. Nhö vaäy, caùc timer theo maëc nhieân laø bò caám (bò döøng). TRx ñöôïc ñaët leân 1 baèng phaàn meàm ñeå cho caùc timer chaïy.
TRx
Xung nhòp
Timer Caùc thanh ghi timer
0=leân : timer döøng
1=xuoáng : timer chaïy
Cho chaïy vaø döøng timer
Vì TRx ôû trong thanh ghi TCON coù ñòa chæ bit, neân deã daøng cho vieäc ñieàu khieån caùc timer trong chöông trình. Ví duï : cho timer 0 chaïy baèng leänh : SETB TR0 vaø döøng baèng leänh SETB TR0
Trình bieân dòch seõ thöïc hieän vieäc chuyeån ñoåi kyù hieäu caàn thieát töø “TR0” sang ñòa chæ bit ñuùng. SETB TR0 chính xaùc gioáng nhö SETB 8CH.
Khôûi ñoäng vaø truy xuaát caùc thanh ghi timer.
Thoâng thöôøng caùc thanh ghi ñöôïc khôûi ñoäng moät laàn ôû ñaàu chöông trình ñeå ñaët cheá ñoä laøm vieäc cho ñuùng. Sau ñoù trong thaân chöông trình caùc timer ñöôïc cho chaïy, döøng , caùc bit côø ñöôïc kieåm tra vaø xoùa, caùc thanh ghi timer ñöôïc ñoïc vaø caïp nhaät... theo ñoøi hoûi cuûa caùc öùng duïng.
TMOD laø thanh ghi thöù nhaát ñöôïc khôûi ñoäng vì noù ñaët cheá ñoä hoaït ñoäng. Ví duï caùc leänh sau khi khôûi ñoäng timer 1 nhö timer 16 bit (cheá ñoä 1) coù xung nhòp töø boä dao ñoäng treân chíp cho vieäc ñòng khoaûng thôøi gian.
MOV TMOD,#00010000B
Leänh naøyy seõ ñaët M1=0 vaû M0=1 cho cheá ñoä 1, C/T=0 vaø GATE=0 cho xung nhòp noäi vaø xoùa caùc bit cheá ñoä timer 0. Dó nhieân timer thaät söï khoâng baét ñaàu ñònh thôøi cho ñeán khi bit ñieàu khieån chaïyy TR1 ñöôïc ñaët leân 1.
Neáu caàn soá ñeám ban ñaàu, caùc thanh ghi timer TL1/TH1 cuõng phaûi ñöôïc khôûi ñoäng. Nhôù laïi laø caùc timer ñeám leân vaø ñaët côø baùo traøn khi coù söï truyeån tieáp.
FFFFH sang 0000H.
- Ñoïc timer ñang chaïy.
Trong moät soá öùng duïng caàn ñoïc giaù trò trong caùc thanh ghi timer ñang chaïy. Vì phaûi ñoïc 2 thanh ghi timer “sai pha” coù theå xaåy ra neáu byte thaáp traøn vaøo byte cao giöõa hai laàn ñoïc. Giaù trò coù theå ñoïc ñöôïc khoâng ñuùng. Giaûi phaùp laø ñoïc byte cao tröôùc, keá ñoù ñoïc byte thaáp roài ñoïc byte cao laïi moät laàn nöõa. Neáu byte cao ñaõ thay ñoåi thì laäp laïi caùc hoaït ñoäng ñoïc.
7.8 Caùc khoaûng ngaén vaø caùc khoaûng daøi.
Daõy caùc khoaûng thôøi gian coù theå ñònh thôøi laø bao nhieâu ? vaán ñeà naøy ñöôïc khaûo saùt vôùi 8051/8031 hoaït ñoäng vôùi taàn soá 12MHz. nhö vaäy xung nhòp cuûa caùc timer coù taàn soá laù 1 MHz.
Khoaûng thôøi gian ngaén nhaát coù theå coù bò giôùi haïn khoâng chæ bôûi taàn soá xung nhòp cuûa timer maø coøn bôûi phaàn meàm. Do aûnh höôûng cuûa thôøi khoaûng thöïc hieän moät leänh. Leäng ngaén nhaát 8051/8031 laø moät chu kyø maùy hay 1ms. Sau ñaây laø baûng toùm taét caùc kyõ thuaät ñeå taïo nhöõng khoaûng thôøi gian coù chieàu daøi khaùc nhau (vôùi giaû söû xung nhòp cho 8051/8031 coù taàn soá 12 MHz)
Khoaûng thôøi gian toái ña Kyõ thuaät
»10 - Baèng phaàn meàm
- Timer 8 bit vôùi töï ñoäng naïp laïi
65535 - Timer 16 bit
Khoâng giôùi haïn - Timer 16 bit coäng vôùi caùc voøng
laäp phaàn meàm
Caùc kyõ thuaät ñeå laäp trình caùc khoaûng thôøi gian (FOSC=12 MHz)
8. Hoaït ñoäng port noái tieáp.
8.1. Giôùi thieäu.
8051/8031 coù moät port noái tieáp trong chip coù theå hoaït ñoäng ôû nhieàu cheá ñoä khaùc treân moät daõy taàn soá roäng. Chöùc naêng chuû yeáu cuûa moät port noái tieáp laø thöïc hieän chuyeån ñoåi song song sang noái tieáp vôùi döõ lieäu xuaát vaø chuyeån ñoài noái tieáp sang song song vôùi döõ lieäu nhaäp.
Truy xuaát phaàn cöùng ñeán port noái tieáp qua caùc chaân TXD vaø RXD. Caùc chaân naøy coù caùc chöùc naêng khaùc vôùi hai bit cuûa port 3. P3 ôû chaân 11 (TXD) vaø P3.0 ôû chaân 10 (RXD).
Port noái tieáp cho hoaït ñoäng song coâng (full duplex : thu vaø phaùt ñoàng thôøi) vaø ñeäm luùc thu (receiver buffering) cho pheùp moät kyù töï seõ ñöôïc thu vaø ñöôïc giöõ trong khi kyù töï thöù hai ñöôïc nhaän. Neáu CPU ñoïc kyù töï thöù nhaát tröôùc khi kyù töï thöù hai ñöôïc thu ñaày ñuû thì döõ lieäu seõ khoâng bò maát.
Hai thanh ghi chöùc naêng ñaëc bieät cho pheùp phaàn meàm truy xuaát ñeán port noái tieáp laø : SBUF vaø SCON. Boä ñeám port noái tieáp (SBUF) ôû ñaïi chæ 99H thaät söû laø hai boä ñeám. Vieát vaøo SBUF ñeå truy xuaát döõ lieäu thu ñöôïc. Ñaây laø hai thanh ghi rieâng bieät thanh ghi chæ ghi ñeå phaùt vaø thanh ghi ñeå thu.
TXD (P3.1) RXD (P3.0)
SUBF
(Chæ ghi)
Thanh ghi dòch
SBUF
(chæ ñoïc)
BUS noäi 8051/8031
SBUF
(chæ ñoïc)
CLK
Q D
CLK
Xung nhòp toác
Ñoä baud (thu)
Xung nhòp toác
Ñoä baud (thu)
Hình 2.9: Sô ñoà port noái tieáp.
Thanh ghi ñieàu khieån port noái tieáp (SCON) ôû ñòa chæ 98H laø thanh ghi coù ñòa chæ bit chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån. Caùc bit ñieàu khieån ñaët cheá ñoä hoaït ñoäng cho port noái tieáp, vaø caùc bit traïng thaùi baùo caùo keát thuùc vieäc phaùt hoaëc thu kyù töï. Caùc bit traïng thaùi coù theå ñöôïc kieåm tra baèng phaàn meàm hoaëc coù theå ñöôïc laäp trình ñeå taïo ngaét.
Taàn soá laøm vieäc cuûa port noái tieáp coøn goïi laø toác ñoä baund coù theå coá ñònh (laáy töø boä giao ñoäng cuûa chip). Neáu söû duïng toác ñoä baud thay ñoåi, timer 1 seõ cung caáp xung nhòp toác ñoä baud vaø phaûi ñöôïc laäp trình.
8.2 Thanh ghi ñieàu khieån port noái tieáp.
Cheá ñoä hoaït ñoäng cuûa port noái tieáp ñöôïc ñaët baèng caùch ghi vaøo thanh ghi cheá ñoä port noái tieáp (SCON) ôû ñòa chæ 98H. Sau ñaây caùc baûng toùm taét thanh ghi SCON vaø caùc cheá ñoä cuûa port noái tieáp :
Bit Kyù hieäu Ñòa chæ Moâ taû
SCON.7 SM0 9FH Bit 0 cuûa cheá ñoä port noái tieáp
SCON.6 SM1 9EH Bit 1 cuûa cheá ñoä port noái tieáp
SCON.5 SM2 9DH Bit 2 cuûa cheá ñoä 2 noái tieáp.
cho pheùp trueàn thoâng ñaõ xöû lyù
trong caùc cheá ñoä 2 vaø 3 ;RI seõ
khoâng bò taùc ñoäng neáu bit thöù
9 thu ñöôïc laø 0
SCON.4 REN 9CH Cho pheùp boä thu phaûi ñaët leân
1 ñeå thu (nhaän) caùc kyù töï
SCON.3 TB8 9BH Bit 8 phaùt, bit thöù 9 ñöôïc phaùt
caùc cheá ñoä 2 vaø 3; ñöôïc ñaët
vaø xoùa baèng phaàn meàm
SCON.2 RB8 9AH Bit 8 thu, bit thöù 9 thu ñöôïc
SCON.1 TI 99H Côø ngaét phaùt. Ñaët leân 1 khi
keát thuùc phaùt kyù töï; ñöôïc xoùa
phaàn meàm
SCON.0 RI 98H Côø ngaét thu. Ñaët leân 1 khi
Keát thuùc thu kyù töï; ñöôïc xoùa
Baèng phaàn meàm
Baûng 2.7:Toùm taét thanh ghi cheá ñoä port noái tieáp SCON.
SM0 SM1 Cheá ñoä Moâ taû Toác ñoä baud
0 0 0 Thanh ghi dòch Coá ñònh (Fosc/12)
0 1 1 UART 8 bit Thay ñoåi (ñaët baèng timer)
1 0 2 UART 9 bit Coá ñònh (Fosc/12 hoaëc Fosc/64)
1 1 3 UART 9 bit Thay ñoåi (ñaët baèng timer)
Baûng 2.8: Caùc cheá ñoä port noái tieáp.
Tröôùc khi söû duïng port noái tieáp, phaûi khôûi ñoäng SCON cho ñuùng cheá ñoä. Ví duï ,leänh sau:
MOV SCON,#01010010B
Khôûi ñoäng port noái tieáp cho cheá ñoä 1 (SM0/SM1=0/1), cho pheùp boä thu (REN=1) vaø ñaët côø ngaét phaùt (TP=1) ñeå chæ boä phaùt saün saøng hoaït ñoäng.
8.3 Khôûi ñoäng vaø truy xuaát caùc thanh ghi coång noái tieáp.
Cho pheùp thu:
Bit cho pheùp boä thu (REN = Receiver Enable) trong SCON phaûi ñöôïc ñaët leân 1 baèng phaàn meàm ñeå cho pheùp thu caùc kyù töï. Thoâng thöôøng thöïc hieän vieäc naøy ôû ñaàu chöông trình khi khôûi ñoäng coång noái tieáp, timer...Coù theå thöïc hieän vieäc naøy theo hai caùch. Leänh :
SETB REN
Seõ ñaët REN leân 1, hoaëc leänh :
MOV SCON,#xxx1xxxxB
Seõ ñaët REN 1 vaø ñaëc hoaëc xoùa ñi caùc bit khaùc treân SCON khi caàn (caùc x phaûi laø 0 hoaëc 2 ñeå ñaëc cheá ñoä laøm vieäc).
Bit döõ lieäu thöù 9:
Bit döõ lieäu thöù 9 caàn phaùt trong caùc cheá ñoä 2 vaø 3, phaûi ñöôïc naïp vaøo trong TB8 baèng phaàn meàm. Bit döõ lieäu thöù 9 thu ñöôïc ñaët ôû RBS. Phaàn meàm coù theå caàn hoaëc khoâng caàn bit döõ lieäu thöù 9, phuï thuoäc vaøo caùc ñaëc tính kyõ thuaät cuûa thieát bò noái tieáp söû duïng (bit döõ lieäu thöù 9 cuõng ñoùng vai moät troø quan troïng trong truyeàn thoâng ña xöû lyù).
Theâm 1 bit parity:
Thöôøng söû duïng bit döõ lieäu thöù 9 ñeå theâm parity vaøo kyù töï. Nhö ñaõ xeùt ôû caùc chöông tröôùc, pit P trong töø traïng thaùi chöông trình (PSW) ñöôïc ñaët leân 1 hoaëc bò xoùa bôûi chu kyø maùy ñeå thieát laäp kieåm tra chaün vôùi 8 bit trong thanh tích luõy.
Caùc côø ngaét:
Hai côø ngaét thu vaø phaùt (RI vaø TI) trong SCON ñoùng moät vai troø quan troïng truyeàn thoâng noái tieáp duøng 8051/8031. Caû hai bit ñöôïc ñaët leân 1 baèng phaàn cöùng, nhöng phaûi ñöôïc xoùa baèng phaàn meàm.
8.4 . Toác ñoä baud port noái tieáp.
Nhö ñaõ noùi, toác ñoä baud coá ñònh ôû caùc cheá ñoä 0 vaø 2. Trong cheá ñoä 0 noù luoân luoân laø taàn soá dao ñoäng treân chip ñöôïc chia cho 12 . Thoâng thöôøng thaïch anh aán ñònh taàn soá dao ñoäng treân chip cuûa 8051/8031 nhöng cuõng coù theå söû duïng nguoàn xung nhòp khaùc. Giaû söû vôùi taàn soá dao ñoäng danh ñònh laø 12 MHz, tìm toác ñoä baud cheá ñoä 0 laø 1 MHz.
¸12
¸64
¸32
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
a. Cheá ñoä 0
SMOD=0
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
SMOD=1
b. Cheá ñoä 2
¸16
¸32
¸16
SMOD=0
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
SMOD=1
c. Cheá ñoä 1 vaø 3.
Hình 2.10. Caùc nguoàn taïo xung nhòp cho port noái tieáp.
Maëc nhieân, sau khi reset heä thoáng, toác ñoä baud cheá ñoä laø 2 taàn soá boä dao ñoäng chia cho 64. Toác ñoä baud cuõng aûnh höôûng bôûi 1 bit trong thanh ghi ñieàu khieån nguoàn cung caáp (PCON). Bit 7 cuûa PCON laø bit SMOD. Ñaët bit sMOD leân moät laøm gaáp ñoâi toác ñoä baud trong cheá ñoä 1,2 vaø 3. Trong cheá ñoä 2, toác ñoä baud coù theå bò gaáp ñoâi töø giaù trò maëc nhieân cuûa 1/64 taàn soá dao ñoäng (SMOD=0) ñeán 1/32 taàn soá dao ñoäng (SMOD=1)
Vì PCON khoâng ñöôïc ñònh ñòa chæ theo bit, neân ñeå ñaët bit SMOD leân 1 caàn phaûi theo caùc leänh sau:
MOV A,PCON laáy giaù trò hieän thôøi cuûa PCON
SETB ACC.7 ñaët bit 7 (SMOD) leân 1
MOV PCON,A ghi giaù trò ngöôïc veà PCON
Caùc toác ñoä baud trong caùc cheá ñoä 1 vaø 3 ñöôïc xaùc ñònh baèng toác ñoä traøn cuûa timer 1. Vì timer hoaït ñoäng ôû taàn soá töông ñoái cao, traøn timer ñöôïc chia theâm cho 32 (hay 16 neáu SMOD=1) tröôùc khi cung caáp xung nhòp toác ñoä baud cho port noái tieáp.
9. Hoaït ñoäng ngaét.
Ngaét laø hoaït ñoäng ngöøng taïm thôøi moät chöông trình naøy ñeå tji haønh moät chöông trình khaùc. Caùc ngaét coù moät vai troø quan troïng trong thieát keá vaø khaû naêng thöïc thi cuûa vi ñieàu khieån. Chuùng cho pheùp heä thoán ñaùp öùng khoâng cuøng luùc tôùi moät coâng vieäc vaø giaûi quyeát moät coâng vieäc ñoù trong khi moät chöông trình khaùc ñang thöïc thi.
Moät heä thoáng ñöôïc ñieàu khieån baèng ngaét cho aûo giaùc laø laøm nhieàu vieäc ñoàng thôøi. Dó nhieân CPU moãi laàn khoâng theå thöïc thi moät chöông trình ñeå thöïc thi moät chöông trình khaùc, roài quay veà chöông trình ñaàu. khi coù yeâu caàu ngaét. Chöông trình giaûi quyeát ngaét ñöôïc goïi laû chöông trình phuïc vuï ngaét (ISR : Interrupt Sevice Reutine).
9.1 Toå chöùc ngaét.
Ôû 8051 coù 5 nguoàn ngaét:
2 ngaét ngoaøi
2 ngaét töø timer.
1 ngaét port noái tieáp.
Taát caû caùc ngaét seõ khoâng ñöôïc ñaët sau khi reset heä thoáng vaø cho pheùp ngaét rieâng reõ bôûi phaàn meàm.
Cho pheùp vaø khoâng cho pheùp ngaét.
Moãi nguoàn ngaét ñöôïc cho pheùp hoaëc khoâng cho pheùp töøng ngaét moät qua thanh ghi chöùc naêng ñaët bieät coá ñònh ñòa chæ bit IE (Interrupt Enable : cho pheùp ngaét) ôû ñòa chæ A8H. Cuõng nhö caùc bit cho pheùp moãi nguoàn ngaét, coù moät bit cho pheùp hoaëc caám toaøn boä ñöôïc xoùa ñeå caám taát caû caùc ngaét hoaëc ñöôïc ñaët leân 1 ñeå cho pheùp taát caû caùc ngaét.
Bit
Kyù hieäu
Ñòa chæ bit
Moâ taû (1=cho pheùp,0=caám)
IE.7
IE.6
IE.5
IE.4
IE.3
IE.2
IE.1
IE.0
EA
EA
ET5
E5
ET1
EX1
ET0
EX0
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H
Cho pheùp hoaëc caám toaøn boä
Khoâng ñöôïc ñònh nghóa
Cho pheùp ngaét töø timer 2 (8052)
Cho pheùp ngaét Port noái tieáp
Cho pheùp ngaét töø timer 1
Cho pheùp ngaét ngoaøi 1
Cho pheùp ngaét töø timer 0
Cho pheùp ngaét ngoaøi 0
Toùm taét thanh ghi IE.
Öu tieân ngaét.
Moãi nguoàn ngaét ñuôïc laäp trình rieâng vaøo moät trong hai möùc öu tieân qua thanh ghi chöùc naêng ñaëc bieät ñöôïc ñòa chæ bit Ip (Interrupt priority : öu tieân ngaét) ôû ñòa chæ B8H.
Bit
Kyù hieäu
Ñòa chæ bit
Moâ taû (1=möùc cao hôn,0=möùc thaáp)
IP.7
IP.6
IP.5
IP.4
IP.3
IP.2
IP.1
IP.0
PT2
PS
PT1
PX1
PT0
PX0
BDH
BCH
BBH
BAH
B9H
B8H
Khoâng ñöôïc ñònh nghóa
Khoâng ñöôïc ñònh nghóa
Öu tieân cho ngaét töø timer 2 (8052)
Öu tieân cho ngaét Port noái tieáp
Öu tieân cho ngaét töø timer 1
Öu tieân cho ngaét ngoaøi
Öu tieân cho ngaét töø timer 0
Öu tieân cho ngaét ngoaøi 0
Toùm taét thanh ghi IP.
Caùc ngaét öu tieân ñöôïc xoùa sau khi reset heä thoáng ñeå ñaë ttaát caû caùc ngaét ôû möùc öu tieân thaáp hôn.
9.2 Xöû lyù ngaét.
Khi coù moät ngaén xaåy ra vaø ñöôïc CPU chaáp nhaän, chöông trình chính bò ngaét quaõng. Nhöõng hoaït ñoäng sau xaåy ra:
Thi haønh hoaøn chænh leänh ñang hieän haønh.
Caùc DC vaøo ngaét xeáp.
Traïng thaùi ngaét hieän haønh ñöôïc caát beân trong.
Caùc ngaét ñöôïc chaën taïi möùc cuûa ngaét.
Nap vaøp DC ñòa chæ Vector cuûa ISR.
ISR thöïc thi.
ISR thöïc thi vaø ñaùp öùng ngaét. ISR hoaøn taát baèng leänh RET1. Ñieàu naøy laøm laáy laïi giaù trò cuõ cuûa PC töø ngaên xeáp vaø laáy laïi traïng thaùi ngaét cuõ. Chöông trình laïi tieáp tuïc thi haønh taïi nôi maø noù döøng.
Caùc Vector ngaét.
Khi chaáp nhaän ngaét, giaù trò ñöôïc naïp vaøo PC ñöôïc goïi laø Vector ngaét. Noù laø ñòa chæ baét ñaàu cuûa ISR cho nguoàn taïo ngaét. Caùc Vector ngaét ñöôïc cho ôû baûng sau:
Ngaét
Côø
Ñòa chæ Vector
Reset heä thoáng
Beân ngoaøi 0
Timer 0
Beân ngoaøi 1
Timer 1
Port noái tieáp
RST
IE0
TF0
IE1
TF1
TI hoaëc RI
0000H
0003H
000BH
0013H
001BH
0023H
Caùc Vector ngaét.
Vector reset heä thoáng (RST ôû ñòa chæ 0000H) noù gioáng nhö moät ngaét. Noù ngaét chöông trình chính vaø taûi vaøo PC moät giaù trò môùi.
Khi chæ ñeán moät ngaét “côø gaây ngaét töï ñoäng bò xoùa bôûi phaàn cöùng, tröø ra R1, T1 cho caùc ngaét coång noái tieáp. Vì coù hai nguoàn coù theå coù cho ngaét naøy, khoâng thöïc teá ñeå CPU xoùa côø ngaét naøy. Caùc bit phaûi ñöôïc kieåm tra trong ISR ñeå xaùc ñònh nguoàn ngaét vaø côø taïo ngaét seõ ñöôïc xoùa baèng phaàn meàm.
9.3 Caùc ngaét cuûa 8051.
Caùc ngaét timer.
Caùc ngaét timer coù ñòa chæ Vector ngaét laø 000BH (timer 0) vaø 001BH (timer 1). Ngaét timer xaåy ra khi caùc thanh ghi timer (TLx ITHx) traøn vaø set côø baùo traøn (TFx) leân 1. Caùc côø timer (TFx) khoâng bò xoùa baèng phaàn meàm. Khi cho pheùp caùc ngaét, TFx töï ñoäng bò xoùa baèng phaàn cöùng khi CPU chuyeån ñeán ngaét.
Caùc ngaét coång noái tieáp.
Ngaét coång noái tieáp xaåy ra khi hoaëc côø phaùt (TI) hoaëc côø ngaét thu (KI) ñöôïc ñaët leân 1. Ngaét phaùt xaåy ra khi moät kyù töï ñaõ ñöôïc nhaän xong vaø ñang ñôïi trong SBUP ñeå ñöôïc ñoïc.
Caùc ngaét coång noái tieáp khaùc vôùi caùc ngaét timer. Côø gaây ra ngaét coång noái tieáp khoâng bò xoùa baèng phaàn cöùng khi CPU chuyeån tôùi ngaét. Do coù hai nguoàn ngaét coång noái tieáp Ti vaø RI. Nguoàn ngaét phaûi ñöôïc xaùc ñònh trong ISR vaø côø taïo ngaét seõ ñöôïc xoùa baèng phaàn meàm. Caùc ngaét timer côø ngaét côø ngaét ñöôïc xoùa baèng phaàn cöùng khi CPU höôùng tôùi ISR.
Caùc ngaét ngoaøi.
Caùc ngaét ngoaøi xaåy ra khi coù moät möùc thaáp hoaëc caïnh xuoáng treân chaân INT0 hoaëc INT1 cuûa vi ñieàu khieån. Ñaây laø chöùc naêng chuyeån ñoåi cuûa caùc bit Port 3.(Port 3.2 vaø Port 3.3).
Caùc côø taïo ngaét naøy laø caùc bit IE0 vaù IE1 trong TCON. Khi quyeàn ñieàu khieån ñaõ chuyeån ñeán ISR, côø taïo ra ngaét chæ ñöôïc xoùa neáu ngaét ñöôïc tích cöïc baèng caïnh xuoáng. Neáu ngaét ñöôïc tích cöïc theo möùc, thì nguoàn yeâu caàu ngaét beân ngoaøi seõ ñieàu khieån möùc cuûa côø thay cho phaàn cöùng.
Söï löïa choïn ngaét tích cöïc möùc thaáp hay tích cöïc caïnh xuoáng ñöôïc laäp trình qua caùc bit IT0 vaø IT1 trong TCON. Neáu IT1 = 0, ngaét ngoaøi 1 ñöôïc taùc ñoäng baèng muùc thaáp ôû chaân IT1. Neáu IT1 = 1 ngaét ngoaøi 1 seõ ñöôïc taùc ñoäng baèng caïnh xuoáng. trong cheá ñoä naøy, neáu caùc maãu lieân tieáp treân chaân INT1 chæ möùc cao trong moät chu kyø vaø chæ möùc thaáp trong chu kyø keá, côø yeâu caàu ngaét IE1 trong TCON ñöôïc ñaët leân 1, roài bit IEÙ yeâu caàu ngaét.
Neáu ngaét ngoaøi ñöôïc taùc ñoäng baèng caïnh xuoáng thì nguoàn beân ngoaøi phaûi giöõ chaân taùc ñoäng ôû möùc cao ._.5oC, IR = 1mA thì Vo = 2,98 (V), ta coù:
400mA < < 5mA
Töø (1) vaø (2): choïn R = 2,2 kW
choïn bieán trôû chænh offset VR = 15 kW.
Thieát keá maïch khueách ñaïi:
Ñaây laø maïch trung gian giöõa boä caûm bieán vaø maïch ADC. Vôùi maïch naøy thì ñaàu vaøo laø caûm bieán cô Vo = 2,73 V + 0,01ToC. Khoaûng bieán thieân ñieän aùp trong daûi nhieät ñoä töø 0oC – 100oC laø 1 volt. Trong khi ñoù, yeâu caàu maïch duøng boä chuyeån ñoåi tín hieäu töông töï sang soá ADC 0809 coù möùc ñieän aùp töø 0V – 5V.
Ta söû duïng maïch khueách ñaïi ñeå khueách ñaïi ñieän aùp vôùi thieát keá nhö sau:
R3
+5V
R1
R5
D1
Caûm bieán
V2
VR1
V1
IF
ADC
-
+
Vo
VR2
Vcc
R4
R2
Hình 7.1 Sô ñoà maïch khueách ñaïi.
Theo hình 7.1 thì V- vaø V+ ñöôïc tính:
V+ =
V- =
Theo tính chaát cuûa Op-Amp.
V+ = V-
Suy ra :
V1 : ñieän aùp ngoõ vaøo ñaûo cuûa Op-Amp vaø V1 = 2,73 volt.
V2 : tín hieäu ra cuûa caûm bieán vaø V2 = 2,73 + 0,01ToC.
V0 : ñieän aùp ngoõ ra cuûa Op-Amp vaø V0 = K.(V2 – V1)
K : heä soá khueách ñaïi.
Ta xeùt ôû nhieät ñoä TC = 0oC thì V2 = V1; V0 = 0 volt.
(3) Þ
Ñeå ñôn giaûn choïn R2 = R3 ; R4 = R5
Nhö vaäy:
V0 =
Choïn heä soá khueách ñaïi K = R5 / R3 = 5.
Maët khaùc: doøng cuûa Op-Amp I0 < 20mA
Neân: doøng hoài tieáp IF << 20mA.
IF = << 20mA.
R3 + R5 >>
Maø V0max = 5V
V1 = 2,73V
Suy ra R3 + R5 >>
6R3 >>
R3 >> 18,40W
Choïn R3 = 1 kW; R5 = 5 kW; VR1 = 15 kW
Vz = 3V; Iz = 20 mA.
Suy ra: R1 = = 100 W
VR2 laø bieán trôû chænh offset.
Choïn VR2 = 10 kW.
2. Thieát keá boä chuyeån ñoåi ADC:
2.1 Giôùi thieäu ADC 0809:
Boä ADC 0809 laø moät thieát bò CMOS tích hôïp vôùi moät boä chuyeån ñoåi töø töông töï sang soá 8 bit, boä choïn 8 keânh vaø moät boâ logic ñieàu khieån töông thích. Boä chuyeån ñoåi AD 8 bit naøy duøng phöông phaùp chuyeån ñoåi xaáp xæ tieáp. Boä choïn keânh coù theå truy xuaát baát keành naøo trong caùc ngoõ vaøo töông töï moät caùnh ñoäc laäp.
Thieát bò naøy loaïi tröø khaû naêng caàn thieát ñieàu chænh ñieåm 0 beân ngoaøi vaø khaû naêng ñieàu chænh tæ soá laøm troøn ADC 0809 deã daøng giao tieáp vôùi caùc boä vi xöû lyù.
* Sô ñoà chaân ADC 0809:
ADC0809
28 15
1 14
IN2 IN1 IN0 A B C ALE 2-1 2-2 2-3 2-4 2-8 REF 2-6
START
IN3 IN4 IN5 IN6 IN7
EOC 2-5 OE CLK VCC REF GND 2-7
* YÙ nghóa caùc chaân:
. IN0 ñeán IN7 : 8 ngoõ vaøo töông töï.
. A, B, C : giaûi maõ choïn moät trong 8 ngoõ vaøo
. Z-1 ñeán Z-8 : ngoõ ra song song 8 bit
. ALE : cho pheùp choát ñòa chæ
. START : xung baét ñaàu chuyeån ñoåi
. CLK : xung ñoàng hoà
. REF (+) : ñieän theá tham chieáu (+)
. REF (-) : ñieän theá tham chieáu (-)
. VCC : nguoàn cung caáp
* Caùc ñaëc ñieåm cuûaADC 0809:
. Ñoä phaân giaûi 8 bit
. Toång sai soá chöa chænh ñònh ± ½ LSB; ± 1 LSB
. Thôøi gian chuyeån ñoåi: 100ms ôû taàn soá 640 kHz
. Nguoàn cung caáp + 5V
. Ñieän aùp ngoõ vaøo 0 – 5V
. Taàn soá xung clock 10kHz – 1280 kHz
. Nhieät ñoä hoaït ñoäng - 40oC ñeán 85oC
. Deã daøng giao tieáp vôùi vi xöû lyù hoaëc duøng rieâng
. Khoâng caàn ñieàu chænh zero hoaëc ñaày thang
* Nguyeân lyù hoaït ñoäng:
ADC 0809 coù 8 ngoõ vaøo töông töï, 8 ngoõ ra 8 bit coù theå choïn 1 trong 8 ngoõ vaøo töông töï ñeå chuyeån ñoåi sang soá 8 bit.
Caùc ngoõ vaøo ñöôïc choïn baèng caùch giaûi maõ. Choïn 1 trong 8 ngoõ vaøo töông töï ñöôïc thöïc hieän nhôø 3 chaân ADDA , ADDB , ADDC nhö baûng traïng thaùi sau:
A
B
C
Ngoõ vaøo ñöôïc choïn
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
Sau khi kích xung start thì boä chuyeån ñoåi baét ñaàu hoaït ñoäng ôû caïnh xuoáng cuûa xung start, ngoõ ra EOC seõ xuoáng möùc thaáp sau khoaûng 8 xung clock (tính töø caïnh xuoáng cuûa xung start). Luùc naøy bit cô troïng soá lôùn nhaát (MSB) ñöôïc ñaët leân möùc 1, taát caû caùc bit coøn laïi ôû möùc 0, ñoàng thôøi taïo ra ñieän theá coù giaù trò Vref/2, ñieän theá naøy ñöôïc so saùnh vôùi ñieän theá vaøo in.
+ Neáu Vin > Vref/2 thì bit MSB vaãn ôû möùc 1.
+ Neáu Vin < Vref/2 thì bit MSB vaãn ôû möùc 0.
Töông töï nhö vaäy bit keá tieáp MSB ñöôïc ñaët leân 1 vaø taïo ra ñieän theá coù giaù trò Vref/4 vaø cuõng so saùnh vôùi ñieän aùp ngoõ vaøo Vin. Quaù trình cöù tieáp tuïc nhö vaäy cho ñeán khi xaùc ñònh ñöôïc bit cuoái cuøng. Khi ñoù chaân EOC leân möùc 1 baùo cho bieát ñaõ keát thuùc chuyeån ñoåi.
Trong suoát quaù trình chuyeån ñoåi chaân OE ñöôïc ñaët ôû möùc 1, muoán ñoïc döõ lieäu ra chaân OE xuoáng möùc 0.
Trong suoát quaù trình chuyeån ñoåi neáu coù 1 xung start taùc ñoäng thì ADC seõ ngöng chuyeån ñoåi.
Maõ ra N cho moät ngoõ vaøo tuøy yù laø moät soá nguyeân.
Trong ñoù Vin : ñieän aùp ngoõ vaøo heä so saùnh.
Vref(+): ñieän aùp taïi chaân REF(+).
Vref(-): ñieän aùp taïi chaân REF(-).
Neáu choïn Vref(-) = 0 thì N = 256.
Vref(+) = Vcc = 5V thì ñaày thang laø 256.
Giaù trò böôùc nhoû nhaát
1 LSB = = 0,0196 V/byte
Vaäy vôùi 256 böôùc Vin = 5V.
Aùp vaøo lôùn nhaát cuûa ADC 0809 laø 5V.
Bieåu ñoà thôøi gian cuûa ADC 0809.
Hình 7.2.1 Bieåu ñoà thôøi gian cuûa ADC 0809
2.2 Maïch taïo xung clock cho ADC 0809:
Söû duïng maïch dao ñoäng duøng caùc coång not ñeå taïo dao ñoäng cho ADC nhö sau:
Vcc
560P
10K
IK
IK
Taàn soá dao ñoäng cuûa maïch laø f =
Taàn soá dao ñoäng chuaån laø 600 kHz
Suy ra 640 =
Vôùi R töø 100W ñeán vaøi kW choïn R =1 kW Þ C = 500 PF.
Sô ñoà keát noái maïch nhö sau:
Vref _
GND
Vcc
560P
10K
IK
IK
Vcc
·
PC5
PC4
PC2
PC1
PC0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
OE
ALE
Start
C
B
A
D7
D6
D5
D4
D3
D2
D1
D0
8255
8255
0809
Vcc
Vref +
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
Hình 7.2.2 Sô ñoà keát noái maïch chuyeån ñoåi ADC 0809.
Ñeå thöïc hieän caùc vieäc chuyeån ñoåi nhaän döõ lieäu töø ADC ta thöïc hieän caùc böôùc sau:
Khôûi taïo 8255.
Choïn ngoõ vaøo töông töï, ví duï nhö choïn Ino baèng caùch göûi giaù trò 0000 = 00H ra 4 bit thaáp cuûa portc.
Choát ñòa chæ ñoàng thôøi kích xung clock baèng caùch göûi giaù trò 0001 = 01H ra 4 bit cao cuûa portc.
Trì hoaõn trong khoaûng thôøi gian 200ms ñeå ADC thöïc hieän xong hoaøn toaøn vieäc chuyeån ñoåi.
Nhaän döõ lieäu töø ADC vaøo port töông öùng.
3. Thieát Keá Boä Nhôù:
3.1 Giaûi ña hôïp caùc ñöôøng PA0 – PA7 cuûa 8051:
Khi söû duïng boä nhôù ngoaøi, port0 khoâng coøn laø moät port I/0 thuaàn tuùy. Noù ñöôïc keát hôïp giöõa bus ñòa chæ A7 = A0 vaø bus döõ lieäu D7 = D0 vôùi tín hieäu ALE ñeå choát byte thaát cuûa bus ñòa chæ khi baét ñaàu moãi chu kyø boä nhôù. Port2 ñöôïc duøng cho byte cao cuûa bus ñòa chæ. Do ñoù caàn phaûi giaûi ña hôïp caùc ñöôøng naøy rôøi nhau.
Hình 7.3.1 Sô ñoà keát noái giöõa 8051 vôùi IC choát 74LS373
Tín hieäu ngoõ vaøo E cuûa IC 74LS373 laø tín hieäu choát khi E ôû möùc logic 1: döõ lieäu ñeán ngoõ vaøo D ñöôïc ñöa ñeán ngoõ ra Q neáu tín hieäu ngoõ vaøo thay ñoåi thì tín hieäu ngoõ ra thay ñoåi. Khi E ôû möùc logic 0 döõ lieäu ngoõ vaøo khoâng ñöôïc ñöa ñeán ngoõ ra,döõ lieäu xuaát hieän ôû ngoõ ra Q chính laø döõ lieäu tröôùc ñoù cuûa D. Taïi thôøi ñieåm naøy döõ lieäu ngoõ vaøo D thay ñoåi cuõng khoâng aûnh höôûng ñeán döõ lieäu ngoõ ra. Do ñoù tín hieäu ALE ñöôïc laáy laøm tín hieäu choát ñöa ñeán ngoõ vaøo choát E cuûa IC choát 74LS373.
3.2 Keát noái toång quaùt Micsocontroller vôùi boä nhôù:
Boä nhôù coù moät vai troø quan troïng trong maùy tính duøng ñeå löu tröõ döõ lieäu, laø nôi ñeå Misocontroller xöû lyù döõ lieäu.
Boä nhôù cuûa maùy tính bao goàm caùc boä nhôù ROM, RAM, chuùng keát noái vôùi nhau thoâng qua caùc bus: bus ñòa chæ (Address bus), bus döõ lieäu (Databus), bus ñieàu khieån (Control bus).
Microcon-troller
Memory IC
Memory IC
Control bus
Add bus
Data bus
Hình 7.3.2 Sô ñoà keát noái toång quaùt giöõa vi ñieàu khieån vôùi boä nhôù
Hoaït ñoäng cuûa Micsocontroller ghi döõ lieäu vaøo boä nhôù vaø ñoïc döõ lieäu ra töø boä nhôù.
+ Hoaït ñoäng ghi döõ lieäu:
Vi ñieàu khieån taïo ñòa chæ cuûa oâ nhôù caàn löu tröõ döõ lieäu, ñaët ñòa chæ naøy leân bus ñòa chæ.
Vi ñieàu khieån ñaët döõ lieäu leân bus döõ lieäu.
Vi ñieàu khieån taùc ñoäng ñeán tín hieäu ñieàu khieån ghi ôû bus ñieàu khieån.
IC nhôù seõ giaûi maõ ñòa chæ naøy ñeå xaùc ñònh oâ nhôù naøo seõ löu tröõ döõ lieäu naøy.
Döõ lieäu treân bus seõ ñöôïc truyeàn vaøo oâ nhôù ñaõ ñöôïc löïa choïn.
+ Hoaït ñoäng ñoïc döõ lieäu:
Vi ñieàu khieån seõ taïo ra moät ñòa chæ cuûa oâ nhôù caàn ñoïc döõ lieäu ñaët ñòa chæ naøy leân bus ñòa chæ.
Vi ñieàu khieån taùc ñoäng ñeán tín hieäu ñieàu khieån ñoïc ôû bus ñieàu khieån.
IC nhôù seõ giaûi maõ ñòa chæ naøy ñeå xaùc ñònh oâ nhôù naøo ñöôïc löïa choïn leân bus döõ lieäu ñeå truyeàn vaøo vi ñieàu khieån.
3.3 Trình töï thieát keá boä nhôù:
8051 coù khaû naêng môû roäng boä nhôù ñeán 64 kbyte boä nhôù chöông trình vaø 64 kbyte boä nhôù döõ lieäu beân ngoaøi. Tuy nhieân ñeå phuø hôïp vôùi nhu caàu thieát keá vaø thi coâng ñoøi hoûi ñôn giaûn. Vi maïch ñöôïc söû duïng laø EPROM 2764 vaø Ram 6264 caùc coång vaøo ra duøng 8255 cuõng ñöôïc xem laø vuøng nhôù khi ôû cheá ñoä giao tieáp vaøo ra cuõng töông töï nhö ROM vaø RAM, coù 16 kbyte töø kbyte ñaàu tieân ñeán kbyte 16, vaø 16 kbyte vuøng nhôù daønh cho 2 IC 8255 nhö ñaõ trình baøy ôû treân. Coøn phaàn coøn laïi seõ boû troáng.
3.3.1 Thieát keá boä nhôù chöông trình:
Do EPROM trong yeâu caàu söû duïng coù dung löôïng laø 8 kbyte, neân IC naøy coù 13 ñöôøng ñòa chæ A12 - A0. Ñòa chæ cuûa oâ nhôù ñaàu tieân laø 00004 vaø ñòa chæ cuûa oâ nhôù cuoái laø 1 FFFH. Nhö vaäy neáu gaén EPROM vaøo vuøng nhôù cuûa vi ñieàu khieån thì noù seõ chieám moät vuøng nhôù baét ñaàu töø 00004 - 1 FFFH. Ta coù baûng ñoà nhôù nhö sau:
IC
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
hex
ROM
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0000
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1FFF
3.3.2 Thieát keá boä nhôù döõ lieäu:
Töông töï nhö ROM, RAM cuõng coù dung löôïng 8 kbyte do phaûi thieát keá tieáp theo boä nhôù ROM neân RAM. Coù ñòa chæ ñaàu laø 2000H vaø ñòa chæ cuoái laø 3 FFF. Ta coù baûn ñoà nhôù cuûa RAM nhö sau:
IC
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
hex
RAM
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
2000
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3FFF
Baûng ñoà nhôù toaøn maïch:
IC
A15
A14
A13
A12
A11
A10
A9
A7
A6
A5
A4
A3
A2
A1
A0
hex
ROM
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0000
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1FFF
RAM
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
2000
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
3FFF
8255
(I)
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
4000
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5FFF
8255
(II)
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
6000
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7FFF
Moãi boä nhôù ñeàu coù 8 kbyte ñeå vi ñieàu khieån ttruy xuaát heát 8 kbyte naøy thì ñoøi hoûi phaûi keát noái 13 ñöôøng ñòa chæ töø A12 ñeán A0 cuûa vi ñieàu khieån vôùi 13 ñöôøng ñòa chæ A12 - A0 cuûa boä nhôù. 8 ñöôøng döõ lieäu D7 - D0 cuûa vi ñieàu khieån keát noái vôùi 8 ñöôøng döõ lieäu D7 - D0 cuûa boä nhôù. Ñöôøng tín hieäu ñieàu khieån RDà ñöôïc keát noái vôùi ngoõ vaøo OE cuûa EPROM vaø RAM, ñöôøng WR\ñöôïc keát noáiôùi ngoõ vaøo WR\ cuûa RAM. Ñeán ñaây vi ñieàu khieån chæ giao tieáp vôùi boä nhôù thoâng qua 3 bus: bus ñòa chæ, bus döõ lieäu vaø bus ñieàu khieån. Neáu döïng laïi ôû ñaây thì khi vi ñieàu khieån taïo ra moät ñòa chæ ñeå truy xuaát moät oâ nhôù thì caû ROM, vaø RAM ñeàu nhaän ñòa chæ vì cuøng göûi döõ lieäu ra bus döõ lieäu, khi ñoù döõ lieäu vi ñieàu khieån nhaän vaøo khoâng bieát laø cuûa oâ nhôù naøo. Ñeå vi ñieàu khieån nhaän ñuùng döõ lieäu cuûa oâ nhôù caàn truy xuaát thì phaûi thieát keá theâm phaàn giaûi maõ ñòa chæ.
3.3.3 Thieát keá maïch giaûi maõ ñòa chæ:
Moãi maïch keát noái vôùi Micsocontroller caàn phaûi ñöôïc vi ñieàu khieån qui chieáu tôùi moät caùch chính xaùc. Khi thöïc hieän caùc thao taùc ghi ñoïc thì ñieàu ñoù coù nghóa laø moãi maïch nhôù phaûi ñöôïc gaùn cho moät vuøng rieâng bieät coù ñòa chæ chính xaùc naèm trong khoâng gian ñòa chæ toång theå cuûa boä nhôù. Vieäc gaùn ñòa chæ cuï theå cho maïch nhôù ñöôïc thöïc hieän nhôø moät xung choïn voû laáy töø maïch giaûi maõ ñòa chæ vuøng nhôù.
Veà nguyeân taéc moät maïch giaûi maõ ñòa chæ thöôøng coù caáu taïo nhö sau:
Maïch giaûi maõ ñòa chæ
Tín hieäu ñòa chæ
CSn\
CS2\
CS1\
Tín hieäu ñieàu khieån
Hình 7.3.3.3a. Maïch giaûi maõ ñòa chæ toång quaùt
Ñaàu vaøo cuûa maïch giaûi maõ laø caùc tín hieäu ñòa chæ vaø tín hieäu ñieàu khieån. Caùc tín hieäu ñòa chæ goàm coù caùc bit ñòa chæ coù quan heä nhaát ñònh vôùi caùc tín hieäu choïn voû ôû ñaàu ra.
Döïa theo nguyeân taéc giaûi maõ nhö treân, ta thaáy trong baûng ñoà nhôù coù 3 bit ñòa chæ A15 A14 A13 coù caùc traïng thaùi töông ñöông vôùi caùc vuøng nhôù cuûa moãi IC nhôù. IC nhôù thöù nhaát töông ñöông vôùi 0002, IC nhôù thöù hai coù traïng thaùi 0012 …
Töøng traïng thaùi cuûa 3 bit ñòa chæ A15 A14 A13 seõ cho pheùp töøng boä nhôù truy xuaát. Khi boä nhôù naøy ñöôïc pheùp truy xuaát thì boä nhôù khaùc K0 ñöôïc pheùp.
Moãi boä nhôù coù 1 ngoõ vaøo cho pheùp CS\, khi ngoõ vaøo CS\ ôû möùc 0 thì boä nhôù ñoù ñöôïc pheùp, khi ngoõ vaøo CS\ ôû möùc 1 thì boä nhôù ñoù k0 ñöôïc pheùp. Caùc ngoõ vaøo ñòa chæ vaø döõ lieäu ôû traïng thaùi toång trôû cao. Do ñoù phaûi duøng IC giaûi maõ 3 ñöôøng sang 8 ñöôøng ñeå coù theå ñieàu khieån ñöôïc 8 ngoõ vaøo CS\.
Sô ñoà maïch giaûi maõ 3 ñöôøng sang 8 ñöôøng duøng IC 74LS138.
Ñöa ñeán ngoõ vaøo CS\cuûa EFROM
Ñöa ñeán ngoõ vaøo CS\cuûa RAM
Ñöa ñeán ngoõ vaøo CS\cuûa 8255 (I)
Ñöa ñeán ngoõ vaøo CS\cuûa 8255 (II)
A13
A14
A15
O0\
O1\
O2\
O3\
O4\
O5\
O6\
O7\
A
BC
74LS138
Sô ñoà maïch keát noái giöõa boä nhôù vôùi Microcontroller.
Hình 7.3.3.3.b. Sô ñoà keát noái giöõa boä nhôù vôùi Microcontroller
4. Thieát Keá Boä Giao Tieáp:
4.1 Thieát keá baøn phím:
4.1.1 Nguyeân lyù chung:
Baøn phím laø moät thieát bò ngoaïi vi raát thoâng duïng trong caùc heä thoáng vi xöû lyù, duøng ñeå giao tieáp giöõa ngöôøi vaø maùy, ngöôøi söû duïng coù theå goõ chöông trình vaøo maùy qua caùc phím.
Giao tieáp baøn phím söû duïng vi maïch giao tieáp song song 8255A ôû vuøng oâ nhôù töø 4000 ñeán 8 FFF. Baøn phím khoâng phaûi laø moät linh kieän ñieän töû maø noù laø caùc coâng taéc nhaán, do ñoù baøn phím ñoøi hoûi coù caáu truùc vöõng vaøng, cuõng nhö khaû naêng chòu löïc toát.
Nguyeân taéc laøm vieäc cuûa baøn phím:
Caùc coâng taéc ñöôïc toå chöùc thaønh moät ma traän giöõa nhieàu haøng nhieàu coät. Caùc ñöôøng cuûa coät ñöôïc noái vôùi moät coång ra cuûa IC giao tieáp. Caùc ñöôøng cuûa haøng ñöôïc noái vôùi coång thöù 2 vaø qua moät ñieän trôû noái leân möùc logic 1 (Vcc). Duøng moät phaàn meàm tieán haønh queùt leân caùc phím, khi aán moät phím thì coù moät haøng moät coät ngaén maïch vaø phím naøy ñöôïc chuyeån ñoåi thaønh maõ töông öùng thoâng qua phaàn meàm.
Öu ñieåm cuûa loaïi baøn phím naøy laø maïch ñôn giaûn, ñoä linh hoaït cao. Tuy nhieân ñoä ñaùp öùng khoâng cao.
Hình 7.4.a Sô ñoà maïch keát noái baøn phím
Ngoaøi ra heä giao tieáp baøn phím cuõng coù theå thieát keá theo nguyeân taéc khaùc laø: caùc coâng taéc ñöôïc noái chung moät ñaàu ñöa leân möùc logic 1 qua moät ñieän trôû, caùc ñaàu coøn laïi ñöa qua maïch giaûi maõ nhò phaân. Khi moät coâng taéc ñöôïc nhaán ngoõ ra cuûa maïch giaûi maõ seõ xuaát hieän moät soá nhò phaân töông öùng. Döõ lieäu naøy seõ ñöôïc göûi ra bus data cuûa vi xöû lyù thoâng qua port I/0. Vi xöû lyù seõ xöû lyù vaø thi haønh coâng vieäc töông öùng.
Nguyeân taéc naøy tuy ñôn giaûn, ñoä tin caäy cao nhöng caáu truùc phöùc taïp.
Do trong maïch naøy chæ söû duïng coù 3 phím ñeå ñieàu khieån chöông trình neân khoâng duøng ma traän queùt phím maø chæ söû duïng nguyeân taéc naøy.
Hình 7.4.b Sô ñoà toå chöùc baøn phím
4.1.2 Caáu taïo vaø hoaït ñoäng cuûa baøn phím heä thoáng:
Giao tieáp baøn phím duøng vi maïch giao tieáp 8255A ta söû duïng port B laøm giao tieáp baøn phím.
ÔÛ traïng thaùi bình thöôøng (khoâng aán phím) giaù trò cuûa port C 8255A laø 00H, khi coù moät phím naøo ñöôïc aán thì giaù trò cuûa bit töông öùng leân möùc cao vaø giaù trò cuûa port C ñoïc vaøo khaùc 00H vaø vi xöû lyù seõ thöïc hieän chöông trình töông öùng vôùi phím ñaõ aán.
Hình 7.4.c Maïch baøn phím cho heä thoáng
4.2 Thieát keá maïch hieån thò:
Trong heä thoáng vi xöû lyù, boä hieån thò ñoùng vai troø raát quan troïng: duøng ñeå giao tieáp vôùi maùy tính vaø ngöôøi söû duïng, cho pheùp ngöôøi söû duïng quan saùt, caûm nhaän quaù trình laøm vieäc cuûa heä thoáng.
ÔÛ ñaây boä hieån thò chæ coù chöùc naêng laø hieån thò nhieät ñoä ngoaøi ra khoâng coù chöùc naêng khaùc. ..eå ñôn giaûn ñöôïc phaàn cöùng thì chæ cho pheùp nhieät ñoä hieån thò töø 00C – 990C töø port 1 cuûa vi ñieàu khieån. Boä hieån thò haèng Led 7 ñoaïn laø loaïi ñöôïc söû duïng phoå bieán.
Hình 7.4.d . a: Boä hieån thò Led 7 ñoaïn, b: Loaïi anode chung, c: Loaïi Cathod chung.
Hình 7.4.e Sô ñoà nguyeân lyù maïch hieån thò Led 7 ñoaïn
4.3 Thieát keá maïch giao tieáp coâng suaát:
Maïch giao tieáp coâng suaát coù nhieäm vuï nhaän tín hieäu ñieàu khieån töø heä thoáng xuaát ra port ñieàu khieån thoâng qua 8255A ñeå ñoùng môû taûi coâng suaát.
ÔÛ ñaây port A, port B vaø port C cuûa 8255A seõ xuaát ra caùc tín hieäu ñieàu khieån ñeå ñoùng ngaét taûi.
Maïch coâng suaát coù raát nhieàu daïng nhöng ñeå coù söï caùch ly tuyeät ñoái veà phöông dieän ñieän giöõa ngoõ vaøo vaø ngoõ ra, nhoùm ñaõ söû duïng loaïi optotriac.Loaïi naøy söû duïng ñöôïc nguoàn xoay chieàu coâng xuaát lôùn, coù ñoä caùch ly cao. Maïch goàm 1 diode phaùt quang (Led) moät triac quang. Khi coù doøng ñieän chaïy qua moâi tröôøng taùc duïng leân triac quang laøm triac thoâng maïch.
Hình 7.4.f Sô ñoà keát noái maïch giao tieáp coâng suaát
Ñaëc tính cuûa OPTO.
Aùp vaøo 4 – 39 VDC
Aùp ra 230 VAC
Doøng ra 10 A
Neáu nhö taûi coù coâng suaát 500W thì doøng taûi laø I = nhoû hôn 10A.
Vôùi ñieàu kieän naøy maïch seõ hoaït ñoäng toát.
Hoaït ñoäng cuûa maïch khi caùc bit ôû port A, port B cuûa 8255A xuaát tín hieäu ôû möùc thaáp, seõ phaân cöïc thuaän cho transitor laøm Led phaùt saùng, seõ taùc ñoäng laøm triac daãn, seõ kích ñöa doøng qua caáp cho taûi. Ngöôïc laïi khi caùc bit ôû port A, port B ôû möùc cao laøm phaân cöïc nghòch transitor, led taét, triac ngöng daãn do ñoù taûi hôû maïch.
IV. Sô ñoà nguyeân lyù vaø thuaät giaûi chöông trình:
Sô ñoà nguyeân lyù:
Thuaät giaûi chöông trình:
Giôùi thieäu:
Heä thoáng vi xöû lyù hieän nay ñöôïc söû duïng roäng raõi trong moïi lónh vöïc. Tuy nhieân ñeå moät heä thoáng hoaït ñoäng ñöôïc thì heä thoáng ñoù phaûi coù chöông trình cuï theå cho noù hoaït ñoäng. Thaät vaäy trong phaàn öùng duïng naøy cuõng caàn phaûi coù moät chöông trình ñeå hoaït. Chöông trình ñöôïc trình baøy nhö sau.
Löu ñoà giaûi thuaät cho chöông trình:
Löu ñoà giaûi thuaät cho chöông trình chính:
N
Y
Y
N
N
Y
Y
N
START
Khôûi taïo 8255
Goïi chöông trình aán phím
Kieåm tra phím aán
Phím”0”
END
Goïi chöông trình phím 1
Goïi chöông trình phím 0
Phím”1”
Löu ñoà giaûi thuaät cho chöông trình kieåm tra phím aán:
Y
N
N
Y
END
Sosaùnh(portB)vôùi#01h
Start
Thöïc hieän chöông trình phím “1”
Sosaùnh(portB)vôùi#02h
Thöïc hieän chöông trình phím “0”
Löu ñoà giaûi thuaät cho chöông trình aán phím “0”:
Y
Delay
200ms
Start
Xuaát #00h ra
port c1( I )
Ñoïc noäi dung töø
port A1 (I )
Giaûi maõ hieån thò
END
N
Xuaát #10h ra
port c1( I )
Xuaát #00h ra
port c1( I )
Xuaát #20h ra
port c1( I )
Löu ñoà giaûi thuaät chöông trình aán phím “1”:
Start
Xuaát 00h ra portC1 (I)
Xuaát 10h ra portC1 (I)
(A)=
(A)<
Y
N
(A) so saùnh #14h
Delay 200ms
Xuaát 00h ra portC1 (I)
Xuaát 20h ra portC1 (I)
Ñoïc (protC1)I vaøo A
Xuaát 00h ra portB (II)
Xuaát 00h ra portA (II)
Goïi chuông trình hieån thò
END
(A)>
Chöông trình ño vaø khoáng cheá nhieät ñoä phoøng:
; Chöông trình khôûi taïo 8255
X2: MOV DPTR, # 4003 H
MOV A , # 92 H
MOV X @ DPTR, A
MOV DPTR, # 6003 H
MOV A, # 89 H
MOV X @ DPTR, A
; Chöông trình kieåm tra phím aán
MOV RO , # 01 H
MOV DPTR, # 4001 H
MOV X A, @ DPTR
ANL A, RO
JMZ X1
MOV RO , # 02 H
MOV DPTR, # 4001 H
MOV X A, @ DPTR
ANL A, RO
JZ X2
; Chöông trình khi aán phím “1”
X3: MOV A, #4002H
MOV A,#00H
MOVX @DPTR,A
MOV X @DPTR, # 4002 H
MOV A, # 10 H
MOV X @ DPTR, A
MOV DPTR, # 4002 H
MOV A, # 00 H
MOV X @ DPTR, A
LCALL Dlay 0.2 giaây
MOV DPTR, # 4002 H
MOV A, # 20 H
MOV X @ DPTR, A
MOV DPTR, # 4000 H
MOV X A, @ DPTR
CJNE A, # 14H , HOT
MOV DPTR, # 00D0 H
MOV A,@ A + DPTR
MOV 90 H , A
LCa delay 1-1
MOV 90 H, # 00 H
LCa delay 1-1
LJMP X3
HOT: JC COOL
MOV DPTR, # 6000 H
MOV A, # 00 H
MOV X @ DPTR, A
LJMP X3
COOL:MOV DPTR, # 6001 H
MOV A, # 00 H
MOV X @ DPTR, A
LJMP X3
; Chöông trình khi aán phím “0”
X1: MOV DPTR, # 4002 H
MOV A,# 00 H
MOV X @ DPTR,A
MOV DPTR, # 4002 H
MOV A, # 10 H
MOV X @ DPTR, A
MOV DPTR, # 4002 H
MOV A, # 00 H
MOV X @ DPTR, A
LCALL delay 0.2 giaây
MOV DPTR, # 4002 H
MOV A, # 20 H
MOV X @ DPTR, A
MOV DPTR, # 4000 H
MOV X A, @ DPTR
MOV DPTR, # 00D0 H
MOV C A, @ A + DPTR
MOV 90 H, A
LJMP X1
; Chöông trình delay 0.2 giaây
push 00H
push 82H
push 83H
MOV R7, # OC8
Y1: DJNZ R7, Y1
pop 83H
pop 82H
pop 00H
RET
; Chöông trình delay 1-1
push 00H
push 82H
push 83H
MOV R7, # 10H
Y4: MOV R6, # OFF h
Y3: MOV R5, # OFF h
Y2: DJNZ R5, Y2
DJNZ R6, Y3
DJNZ R7, Y4
pop 83H
pop 82H
pop 00H
RET.
Chöông trình hieån thò cho EPROM töø 0oC – 99oC xem phuï luïc 2
Giaûi thích chöông trình:
Trong chöông trình naøy söû duïng 2 IC 8255A.
Vôùi 8255 thöù nhaát coù ñòa chæ töø 4000, trong ñoù port A nhaän döõ lieäu töø 8 ñöôøng data cuûa ADC.
PB0, PB1: laøm caùc phím aán ñieàu khieån.
PC0, PC1, PC2, PC4, PC5: duøng laøm tín hieäu ñieàu khieån cho ADC.
Vôùi 8255 thöù hai coù ñòa chæ töø 6000 duøng ñeå xuaát tín hieäu ñieàu khieån thieát bò ñoùng ngaét.
Ñaàu tieân khôûi taïo 8255 baèng caùch gôûi giaù trò 92H ra thanh ghi ñieàu khieån cuûa 8255I. Coù ñòa chæ 4003H vaø göûi giaù trò 89H ra thanh ghi ñieàu khieån cuûa 8255II coù ñòa chæ 6003H, thoâng qua thanh ghi A.
Sau ñoù, kieåm tra chöông trình aán phím. Naïp giaù 01H vaøo thaønh ghi R0, ñoïc noäi dung töø PB cuûa 8255I ghi A AND vôùi noäi dung trong thanh ghi R0.
Neáu pheùp AND = 1 thì bt Zero = 0 vaø chöông thöïc hieän taïi X1 töùc laø phím “o” bò taùc ñoäng.
Neáu pheùp AND = 0 thì bit Zero = 1 vaø chöông trình seõ thöïc hieän tieáp theo, laø naïp giaù trò 02H vaøo R0 ñoàng thôøi ñoïc noäi dung töø PB vaøo thanh ghi A, duøng pheùp AND, AND noäi dung trong A vôùi noäi dung trong R0, töông töï:
Neáu pheùp AND = 0 thì chöông trình quay laïi töø ñaàu.
Neáu pheùp AND = 1 thì bit Zero = 0 töùc laø phím “1” bò taùc ñoäng vaø chöông trình thöïc hieän taïi X3.
Khi phím “1” bò taùc ñoäng vaø chöông trình thöïc hieän taïi X3.
Ñaàu tieân, naïp giaù trò 00H vaøo thanh ghi A vaø chuyeån noäi dung trong thanh ghi A ra ñòa chæ 4002 cuûa port C ñeå choïn ngoõ vaøo töông töï laø INO. Keá tieáp naïp giaù trò 10H vaøo A, chuyeån noäi dung trong A ra ñòa chæ 4002 cuûa port C, ñeå ñöa chaân Start cuûa ADC leân möùc 1. Naïp 00H vaøo A vaø ñöa noäi dung trong A ra ñòa chæ 4002 ñeå ñöa Start xuoáng möùc 0 taïo thaønh moät xung Clock. Sau ñoù goïi chöông trình delay 200ms ñeå boä ADC thöïc hieän chuyeån ñoåi.
Naïp giaù trò 20H vaøo A, chuyeån noäi dung chöùa trong A ra ñòa chæ 4002 ñeå Pc5 cuûa 8255I leân möùc 1 vaø ñoïc döõ lieäu töø PA coù ñòa chæ 4000 vaøo thanh ghi A. So saùnh noäi dung trong A vôùi giaù trò 14H:
Neáu baèng nhau thì naïp giaù trò 00D0H vaøo DPTR, sau ñoù laáy noäi dung cuûa oâ nhôù coù ñòa chæ chöùa trong A coäng vôùi trong DPTR chuyeån vaøo A. Laáy noäi dung trong A chuyeån ra port 1 cuûa vi ñieàu khieån ñeå hieån thò.
Neáu noäi dung trong A lôùn hôn thì nhaûy ñeán nhaõn HOT vaø naïp giaù trò 00H vaøo A, sau ñoù chuyeån noäi dung chöùa trong ra port A cuûa 8255II coù ñòa chæ laø 6000H ñeå ñieàu khieån thieát bò ñoùng maïch.
Neáu noäi dung trong A nhoû hôn thì nhaûy ñeán nhaõn COOL vaø naïp giaù trò 00H vaøo A, sau ñoù chuyeån noäi dung trong A ra port B cuûa 8255II coù ñòa chæ 6001H ñeå ñieàu khieån thieát bò ñoùng maïch.
Khi phím “0” bò taùc ñoäng vaø chöông trình thöïc hieän taïi X1:
Naïp giaù trò 4002H vaøo DPTR, vaø 00H vaøo thanh ghi A, sau ñoù chuyeån noäi dung trong A, vaøo oâ nhôù coù ñòa chæ chöùa trong DPTR ñeå choïn ngoõ vaøo töông töï INO. Naïp giaù trò 10H vaøo A, chuyeån noäi dung trong vaøo oâ nhôù coù ñòa chæ chöùa trong DPTR, ñeå choát ñòa chæ ngoõ vaøo vaø ñöa chaân Start leân 1. Naïp giaù trò 00H vaøo A.
Chuyeån noäi dung trong A vaøo oâ nhôù coù ñòa chæ chöùa trong DPTR, ñeå ñöa chaân START xuoáng möùc 0 vaø goïi chöông trình delay 200 ms ñeå thöïc hieän chuyeån ñoåi.
Sau khi chuyeån ñoåi xong, naïp giaù trò 20H vaøo thanh ghi A, chuyeån noäi dung trong vaøo oâ nhôù coù ñòa chæ chöùa trong DPTR, ñeå cho pheùp ADC xuaát döõ lieäu ra ñöôøng döõ lieäu. Naïp giaù trò 4000H vaøo DPTR, sau ñoù laáy noäi dung cuûa oâ nhôù coù ñòa chæ chöùa trong DPTR chuyeån vaøo thanh ghi A (töùc ñoïc döõ lieäu töø ADC vaøo A). Naïp giaù trò 00D0H vaøo DPTR, laáy noäi dung oâ nhôù coù ñòa chæ chöùa trong A + DPTR chuyeån vaøo A, ñoàng thôøi laáy noäi dung trong A chuyeån ra post 1 cuûa vi ñieàu khieån coù ñòa chæ laø 90H. Sau ñoù quay laïi nhaõn X1.
V. THI COÂNG:
Sau khi ñaõ tính toaùn thieát keá treân cô sôû lyù thuyeát, nhoùm chuùng em tieán haønh thi coâng heä thoáng. Coâng vieäc thi coâng ñöôïc thöïc hieän qua caùc böôùc sau:
Thieát keá maïch in:
Vì caáu truùc cuûa maïch khaù phöùc taïp, nhieàu ñöôøng keát noái, neân chuùng söû duïng maïch in hai lôùp ñeå thi coâng. Ñeå thieát keá maïch in ñaõ duøng phaàn meàm veõ maïch chuyeân duøng EAGLE ñeå thieát keá.
Chuaån bò:
Trong thôøi gian chôø gia coâng maïch in giaûi quyeát caùc vaán ñeà sau:
Laäp baûng lieät keâ vaø mua linh kieän.
Thieát keá hoäp ñöïng mach ñieàu khieån
Laép thöû moät soá maïch treân testboard ñeå kieåm tra moät soá linh kieän trong heä thoáng.
Vieát vaø naïp chöông trình ñieàu khieån vaøo EBROM.
Laép raùp linh kieän vaø kieåm tra.
Ñeå ñaûm baûo khoâng gaëp söï coá khi laép raùp toaøn boä linh kieän leân maïch in, nhoùm choïn phöông phaùp laép vaø kieåm tra töøng boä phaän, sau khi boä phaän ñoù hoaït ñoäng toát roài môùi tieán haønh laép raùp boä phaän keá tieáp.
Sô ñoà maïch in:
Sô ñoà maïch in
5. Sô ñoà boá trí linh kieän
CHÖÔNG KEÁT LUAÄN
Sau gaàn möôøi tuaàn thöïc hieän vôùi nhieàu coá gaéng vaø noå löïc cuûa baûn thaân cuøng vôùi söï taän tình höôùng daãn cuûa thaày Leâ Thanh Ñaïo, taäp luaän vaên naøy ñaõ hoøan thaønh ñuùng thôøi gian qui ñònh theo yeâu caàu ñaët ra laø thieát keá moät maïch ño vaø khoáng cheá nhieät ñoä phoøng duøng vi ñieàu khieån.
Ñeå thöïc hieän ñöôïc yeâu caàu treân chuùng em ñaõ nghieân cöùu, tìm hieåu nhöõng vaán ñeá veà vi ñieàu khieån, vi xöû lí, caùc phöông phaùp ño nhieät ñoä, caùc phöông phaùp chuyeån ñoåi töø töông töï sang soà vaø caùc vaán ñeà khaùc coù lieân quan ñeán ñeà taøi.
Noäi dung chính cuûa ñeà taøi naøy bao goàm nhöõng phaàn chính sau:
*Phaàn kieán thöùc.
-Khaûo saùt boä vi ñieàu khieån 8051/8031.
-Khaûo saùt IC giai tieáp ngoaïi vi 8255A.
-Khaûo saùt caùc boä nhôù thoâng duïng .
-Caùc phöông phaùp chuyeån ñoåi töø töông töï sang soá.
-Heä thoáng ño nhieät ñoä vaø caùc phöông phaùp ño nhieät ñoä.
*Phaàn thieát keá thi coâng .
-Xaây döïng sô ñoà khoái toaøn maïch .
-Xaây döng löu ñoà giaûi thuaät .
-Vieát chöông trình.
-Thi coâng laép raùp vaø kieåm tra.
Treân ñaây laø nhöõng noäi dung maø nhoùm ñaõ thöïc hieän ñöôïc trong taäp luaän vaên naøy.
Theo nhaän ñònh chuû quan cuûa nhoùm thöïc hieân thì taäp luaän vaên naøy ñaõ trình baøy töông ñoái ñaày ñuû caùc noäi dung, nhöõng kieán thöùc lieân quan, giaûi quyeát ñöôcï nhöõng yeâu caøu ñaët ra.
Tuy nhieân do thôøi gian cuõng nhö trình ñoä chuyeân moân coù haïn vaãn coøn nhieàu thieáu soùt . ÔÛ ñaây chæ giaûi quyeát ñöôïc caùc yeâu caàøu laø : ño nhieät ñoä töø 0oc ñeán 99oc vaø chæ khoáng cheá ñöôïc ôû moät möùc nhieät ñoäï coá ñònh, ñaây laø moät maët haïn cheá cuûa ñeà taøi naøy.
Ñeå ñeà taøi naøy theâm phong phuù vaø taêng hieäu quaû söû duïng thì caàn ñaùp öùng ñöôïc nhöõng yeâu caàu sau:
-Khoáng cheá ñöôïc ôû nhieàu möùc nhieät ñoä khaùc nhau.
-Coù theå ñieàuá chænh ñöôïc ôû nhieàu möùc nhieät ñoä caàùn khoáng cheá.
-Coù theå giao tieáp vôí maùy tính ñeå ñieàu khieån khoáng cheá nhieät ñoä.
Ñoù laø nhuõng yeâu caàu maø nhoùm chöa coù ñieàu kieän thöïc hieän,
Mong raèng ñeà taøi naøy seõ ñöôïc caùc baïn sinh vieân khoaù sau tieáp tuïc thöïc hieän nhöõng yeâu caàu treân vaø khaéc phuïc ñöôïc nhöõng haïn cheá cuûa ñeà taøi naøy, ñeå taïo ra moät saûn phaåm coù chaát löôïng cao phuïc vuï cho saûn xuaát vaø ñôøi soáng xaõ hoäi.
Sau cuøng moät laàn nöõa chuùng em xin chaân thaønh caûm ôn thaày Leâ Thanh Ñaïo cuøng quùi thaày coâ khoa ñieän ñaõ taän tình höôùùùøng daãn vaø daãn daét chuùng em trong suoát nhöõng naêm hoïc vöøa qua.
Xin chaân thaønh caûm ôn caùc baïn sinh vieân ñaõ ñoùng goùp nhöõng yù kieán quí baùo ñeå ñeà taøi naøy hoaøn thaønh toát ñeïp.
TAØI LIEÄU THAM KHAÛO
1.Kyõ thuaät vi ñieàu khieån-Leâ vaên Doanh -Phaïm Khaéc Chöông-NXB khoa hoïc kyõ thuaät.
2. Ño löôøng vaø ñieøu khieån baèng maùy tính –Ngoâ Dieân Taäp-NXB khoa hoïc kyõ thuaät
3.Giaùo trình vi maïch soá-Nguyeãn Höõu Phöông-Tröôøng ÑH KH Töï Nhieân TP HCM
4.The 8051 Microcontroller –University of Guelph-I.SCOTT MACKENZIE.
5.Digital Systems Principles andApplications-RONALD J. TOCCI.
6. Microcomputer for engineer and Scientists-Glenn A. Gibson,Ya Cheng Liu.
7.Electronics Course III :Modules In Micro –Electronics-Deutsche Gesellschaft-fur Technische-Zusammenarbeit(GTZ)Gmbh.
8. The TTL Data book:for Design Engineer,Texas Instrumebts.
._.
Các file đính kèm theo tài liệu này:
- DO53.DOC