Luận văn Thiết kế và thi công máy chấm công

Tài liệu Luận văn Thiết kế và thi công máy chấm công: LỜI GIỚI THIỆU ˜— –™ Khi xã hội càng phát triển thì con người ngày càng tự hoàn thiện mình hơn; đồng thời cũng có những nhu cầu cao hơn về mọi mặt; trong đó có việc Quản Lý Nhân Sự. Nắm bắt được nhu cầu đó, các nhà khoa học đã nghiên cứu và chế tạo ra Máy Chấm Công, ngày càng tốt hơn và hiệu quả hơn. Vì những tiện lợi nêu trên mà tôi đã nhận đề tài Luận Văn Tốt Nghiệp của mình là : “Thiết Kế và Thi Công Máy Chấm Công”. Một đề tài mới và có rất nhiều ứng dụng thực tiễn cũng như các khía cạnh khoa học hấp dẫn liên quan. Sau nhiều tháng tìm tòi học hỏi, tôi đã thành công. Nội dung Luận Văn gồm có các phần chính như sau : · Phần I : Giới Thiệu về Máy Chấm Công Hiện Đại . Hệ Thống Mã Vạch và Ứng Dụng thực tiễn . · Phần II : Giới Thiệu Khái Quát Về Vi Điều Khiển AT89C51 . · Phần III : Giới Thiệu Cảm Biến Quang : Tia Laser và Hồng ...

doc154 trang | Chia sẻ: hunglv | Lượt xem: 1104 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Thiết kế và thi công máy chấm công, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LÔØI GIÔÙI THIEÄU ˜— –™ Khi xaõ hoäi caøng phaùt trieån thì con ngöôøi ngaøy caøng töï hoaøn thieän mình hôn; ñoàng thôøi cuõng coù nhöõng nhu caàu cao hôn veà moïi maët; trong ñoù coù vieäc Quaûn Lyù Nhaân Söï. Naém baét ñöôïc nhu caàu ñoù, caùc nhaø khoa hoïc ñaõ nghieân cöùu vaø cheá taïo ra Maùy Chaám Coâng, ngaøy caøng toát hôn vaø hieäu quaû hôn. Vì nhöõng tieän lôïi neâu treân maø toâi ñaõ nhaän ñeà taøi Luaän Vaên Toát Nghieäp cuûa mình laø : “Thieát Keá vaø Thi Coâng Maùy Chaám Coâng”. Moät ñeà taøi môùi vaø coù raát nhieàu öùng duïng thöïc tieãn cuõng nhö caùc khía caïnh khoa hoïc haáp daãn lieân quan. Sau nhieàu thaùng tìm toøi hoïc hoûi, toâi ñaõ thaønh coâng. Noäi dung Luaän Vaên goàm coù caùc phaàn chính nhö sau : · Phaàn I : Giôùi Thieäu veà Maùy Chaám Coâng Hieän Ñaïi . Heä Thoáng Maõ Vaïch vaø ÖÙng Duïng thöïc tieãn . · Phaàn II : Giôùi Thieäu Khaùi Quaùt Veà Vi Ñieàu Khieån AT89C51 . · Phaàn III : Giôùi Thieäu Caûm Bieán Quang : Tia Laser vaø Hoàng Ngoaïi Tuyeán . · Phaàn IV : Giôùi Thieäu Caùc Nghi Thöùc Truyeàn Döõ Lieäu . Xoaùy Troïng Taâm Vaøo Chuaån RS 485 vaø RS 232 . · Phaàn V : Sô Ñoà Maïch Nguyeân Lyù Cuûa Maùy Chaám Coâng . Giaûi Thích Sô Löôïc Nguyeân Lyù Laøm Vieäc . · Phaàn VI : Giaûi Thuaät – Löu Ñoà Vaø Chöông Trình Phaàn Meàm . · Phaàn VII : Thi Coâng Laép Raùp – Sô Ñoà Maïch In . Ñeå coù ñöôïc thaønh coâng nhö hoâm nay, toâi xin chaân thaønh caûm ôn söï giuùp ñôõ heát söùc nhieät tình cuûa thaày höôùng daãn : LE QUANG THUAÀN vaø caùc thaày coâ trong Boä Moân cuõng nhö trong Khoa. Beân caïnh ñoù, toâi cuõng xin caûm ôn nhöõng yù kieán ñoùng goùp cuûa caùc baïn ñaõ giuùp ñôõ toâi hoaøn thaønh Ñeà Taøi naøy. Nhöng muoán hoaøn thieän hôn, toâi xin nhaän theâm söï goùp yù cuûa quyù thaày coâ sau khi tham khaûo Ñeà Taøi naøy. Xin Chaân Thaønh Caûm Ôn Raát Nhieàu ! MUÏC LUÏC TRA CÖÙU LÔØI GIÔÙI THIEÄU.....................................................................................Trang 01 MUÏC LUÏC TRA CÖÙU.............................................................................Trang 02 PHAÀN I .........................................................................................Trang 03 ¸ 13 PHAÀN II ........................................................................................Trang 14 ¸ 57 PHAÀN III ......................................................................................Trang 58 ¸ 73 PHAÀN IV .......................................................................................Trang 74 ¸ 97 PHAÀN V ......................................................................................Trang 98 ¸ 104 PHAÀN VI .....................................................................................Trang 105 ¸ 153 PHAÀN VII ...................................................................................Trang 154 ¸ 157 KEÁT LUAÄN........................................................................................... Trang 158 I. LÒCH SÖÛ PHAÙT TRIEÅN : Tröôùc ñaây, ñeå quaûn lyù ngaøy giôø laøm coâng cuûa soá löôïng lôùn coâng nhaân vaø nhaân vieân trong moät coâng ty, con ngöôøi, do nhu caàu thöïc tieãn ñoù, ñaõ nghieân cöùu vaø cheá taïo thaønh coâng nhöõng chieác maùy cô khí ñaàu tieân phuïc vuï cho vieäc tính toaùn thôøi gian coâng vieäc vaø tieàn löông cuûa moãi caù nhaân trong cô quan, nhaø maùy hay xí nghieäp. Nhöõng chieác maùy naøy hoaït ñoäng raát höõu hieäu vaø chính xaùc ngay töø khi noù xuaát hieän. Tuy nhieân, do thôøi gian vaø caáu truùc ñôn giaûn toaøn laø cô khí neân laâu daàn chuùng ñaõ boäc loä nhöõng khuyeát ñieåm caàn phaûi caûi thieän vaø hoaøn chænh hôn ñeå phuïc vuï nhu caàu ngaøy caøng cao cuûa con ngöôøi vaø coù theå hoøa nhaäp ñöôïc vaøo xaõ hoäi cuøng thôøi ñaïi hieän nay : thôøi ñaïi thoâng tin Internet, laøm vieäc vaø quaûn lyù qua maïng, qua heä thoáng Maùy Tính soá. Chính vì leõ ñoù maø Maùy Chaám Coâng theá heä môùi nhaát ñaõ coù theå ñaùp öùng nhöõng yeâu caàu treân vaø coù theå giao tieáp vôùi Maùy Tính , thöïc hieän vieäc quaûn lyù vaø chaám coâng qua maïng ; vaø noù daàn seõ thay theá nhöõng chieác Maùy Chaám Coâng kieåu cô khí sô khai maø theo thôøi gian noù khoâng theå traùnh khoûi khuyeát ñieåm . Ñoù cuõng laø chieác Maùy Chaám Coâng maø Luaän Vaên Toát Nghieäp naøy ñeà caäp ñeán. Töø nhöõng chieác Maùy baám loã leân theû ñeán nhöõng Maùy Chaám Coâng in thôøi ñieåm ñi vaø veà cuûa nhaân vieân khi ñöa theû Chaám Coâng vaøo, Maùy Chaám Coâng do taùc duïng höõu ích cuûa noù trong vieäc quaûn lyù coâng nhaân, soá löôïng ñaõ phaùt trieãn khoâng ngöøng cuøng thôøi ñaïi. Vaø hôn nöõa, söï phaùt trieån toaøn dieän cuûa Khoa Hoïc Kyõ Thuaät cuoái theá kyû XX veà nhieàu lónh vöïc ; trong ñoù maïnh nhaát laø Coâng Ngheä Soá – Vi Xöû Lyù vaø Coâng Ngheä Quang Ñieän Tö û; ñaõ goùp phaàn khoâng nhoû vaøo vieäc hoaøn thieän daàn Maùy Chaám Coâng. Cho ñeán ngaøy nay laø chieác maùy chuùng ta ñang ñeà caäp ñeán : Maùy Chaám Coâng theá heä môùi hieän nay ñaõ coù theå giao tieáp tröïc tieáp vôùi Maùy Vi Tính höõu tuyeán thoâng qua caùc coång vaø caùc chuaån giao tieáp hoaëc voâ tuyeán vieãn thoâng. Daãn ñeán vieäc xuaát hieän caùc theá heä Maùy Chaám Coâng Kyõ Thuaät Soá söû duïng tia Laser hoaëc Hoàng Ngoaïi tuyeán ñoïc caùc theû khoeùt loã hoaëc theû mang vaïch maõ. Beân caïnh ñoù, heä thoáng maõ vaïch cuõng phaùt trieãn khoâng ngöøng vaø ngaøy caøng ñöôïc öùng duïng roäng raõi ; cho neân vieäc öùng duïng theû mang maõ vaïch ñeå chaám coâng laø ñieàu phaùt trieån taát yeáu. II. ÖÙNG DUÏNG THÖÏC TIEÃN : Khi caàn quaûn lyù nhaân söï, theo doõi thôøi gian laøm vieäc cuûa nhaân vieân ñeå ñaùnh giaù naêng löïc laøm vieäc cuõng nhö thaùi ñoä coâng taùc cuûa nhaân vieân, taïi caùc coâng ty; ngöôøi ta thöôøng söû duïng Maùy Chaám Coâng. Nhö treân ñaõ ñeà caäp, Maùy Chaám Coâng treân theá giôùi ñaõ ñöôïc söû duïng roäng raõi töø laâu vaø ôû Vieät Nam chuùng cuõng ñaõ xuaát hieän khaù laâu vôùi muïc ñích ghi laïi thôøi gian ra, vaøo cuûa coâng nhaân trong caùc cô sôû saûn xuaát hay caùc cô quan, xí nghieäp . Chính vì vaäy maø noù ñöôïc goïi laø “Time Record” . Phaùt trieån töø nhöõng chieác maùy ñuïc loã vaø in thôøi gian laøm vieäc (Ra/Vaøo), ñeán nay Maùy Chaám Coâng ñaø coù nhöõng theá heä coù theå giao tieáp vôùi Maùy Vi Tính, laøm cho vieäc quaûn lyù caøng deã daøng, hieäu quaû hôn, tieän lôïi, an toaøn vaø chính xaùc hôn . Ñoù cuõng laø noäi dung cuûa ñeà taøi Luaän Vaên Toát Nghieäp maø toâi nhaän. Ñeå ñaùp öùng ñöôïc nhöõng chöùc naêng thieát yeáu cuûa moät Maùy Chaám Coâng hieän ñaïi, ta phaûi thieát keá döïa treân nhöõng kyõ thuaät môùi, hieän ñaïi. Vì vaäy Maùy Chaám Coâng maø toâi thieát keá coù theå ñoïc ñöôïc maõ vaïch (Barcode), nhaän dieän ñöôïc chuû nhaân cuûa theû maõ vaïch, xöû lyù, tính toaùn thôøi gian vaø giao tieáp vôùi Maùy Tính. Taát caû nhöõng coâng vieäc ñoù ñöôïc thöïc hieän trong moät hoïc kyø cuõng chính laø thôøi gian caàn coù ñeå thieát keá vaø thi coâng moät ñeà taøi Luaän Vaên Toát Nghieäp cuûa moãi sinh vieân. III. GIÔÙI THIEÄU VEÀ MAÕ VAÏCH (BAR CODE) VAØ ÖÙNG DUÏNG : 1. Caùc öùng duïng cuûa heä thoáng maõ vaïch vaø khaû naêng aùp duïng ôû Vieät Nam: * Môû ñaàu : Treân theá giôùi, coâng ngheä maõ vaïch ñaõ ñöôïc aùp duïng hôn 20 naêm qua vaø khoâng ngöøng phaùt trieån; tuy nhieân, ôû Vieät Nam thì coâng ngheä naøy töông ñoái môùi meû. Ñoái vôùi Vieät Nam, vieäc aùp duïng coâng ngheä maõ vaïch laø caáp thieát vôùi 2 lyù do : Nhu caàu xuaát khaåu ñi caùc nöôùc. Nhu caàu trong nöôùc . * Caùc lôïi theá khi söû duïng maõ vaïch : Maõ vaïch ñoái vôùi caùc nöôùc ñang phaùt trieån laø moät vuõ khí caïnh tranh vì noù ñem laïi : Naêng suaát vaø hieäu suaát cao. Ñoä chính xaùc raát cao . Thoâng tin cho laõnh ñaïo kòp thôøi, ñuùng luùc ñeå ñeà ra caùc quyeát ñònh hôïp lyù vaø ñuùng thôøi ñieåm. Phuïc vuï khaùch haøng nhanh choùng, khoâng nhaàm laãn. * Caùc laõnh vöïc aùp duïng: Taïi ñieåm baùn. Kieåm soaùt, kieåm keâ. Tra tìm coâng vieäc trong quaù trình saûn xuaát. Tra tìm taøi lieäu, vaät lieäu. Quaûn lyù ngaøy giôø coâng, baùo thôøi gian vaø söï coù maët. Löu kho. Cuøng vôùi söï phaùt trieån nhanh cuûa maõ vaïch, maõ 2 chieàu ra ñôøi vaø phaùt trieån ñaõ cho pheùp öùng duïng maõ vaïch trong nhieàu laõnh vöïc khaùc nhö : quaûn lyù hoà sô nhaân söï , quaûn lyù vaø trao ñoåi thoâng tin, taøi lieäu nghieân cöùu khoa hoïc . Vaø khoâng naèm ngoaøi nhöõng laõnh vöïc treân, maõ vaïch söû duïng trong Luaän Vaên naøy nhaèm muïc ñích laø quaûn lyù thôøi gian coâng taùc . Caáu truùc cuï theå seõ ñöôïc trình baøy kyõ ôû phaàn sau . * Khaû naêng aùp duïng coâng ngheä maõ soá maõ vaïch ôû Vieät Nam : Do yeâu caàu neàn kinh teá thò tröôøng ngaøy caøng phaùt trieån ôû trong nöôùc vaø quan heä giöõa caùc nöôùc treân theá giôùi ngaøy caøng môû roäng cho neân ñaõ ñeán luùc chuùng ta khoâng theå khoâng aùp duïng coâng ngheä maõ vaïch ôû Vieät Nam. Vieäc aùp duïng maõ vaïch ôû Vieät Nam chuû yeáu phuïc vuï caùc ñoái töôïng sau: Caùc saûn phaåm haøng hoùa xuaát khaåu : caùc saûn phaåm naøy muoán baùn sang caùc nöôùc chaâu AÙ, ASEAN vaø caùc nöôùc khaùc nhö Trung Quoác, Nhaät Baûn, Myõ... thì phaûi coù maõ soá vaät phaåm, neáu khoâng coù thì ta phaûi chaáp nhaän cho nöôùc baïn ghi maõ vaïch cho mình, khoâng nhöõng toán keùm maø coøn phaûi töø boû chuû quyeàn . Caùc saûn phaåm haøng hoùa saûn xuaát ra ñeå baùn ôû caùc sieâu thò trong nöôùc. Caùc cô sôû kinh doanh muoán quaûn lyù moät caùch hieän ñaïi, nhanh choùng, chính xaùc daây chuyeàn saûn xuaát cuûa mình töø luùc nhaäp nguyeân lieäu ñeán thaønh phaåm. Moät soá ngaønh dòch vuï, y teá, vaên hoùa phaåm, giao thoâng. Caùc ngaønh quaûn lyù nhaân söï , an ninh... phuïc vuï vieäc chaám coâng thöôøng nhaät. * Hoaït ñoäng cuûa EAN - VN : ( European Article Numbering – Vieät Nam ) EAN -VN ñöôïc thaønh laäp cuoái naêm 1994, trôû thaønh thaønh vieân chính thöùc cuûa EAN quoác teá vaøo thaùng 5 - 1995, laø toå chöùc ñöôïc giao nhieäm vuï quaûn lyù vaø trieån khai hoaït ñoäng maõ vaïch ôû Vieät Nam. Hoaït ñoäng cuûa EAN -VN laø : Höôùng daãn caáp maõ soá vaät phaåm. Xaây döïng vaø ban haønh boä TCVN veà maõ vaïch vaät phaåm cho Vieät Nam. Ñaøo taïo vaø chuaån bò caùc döï aùn aùp duïng coâng ngheä maõ vaïch vaøo caùc cô sôû saûn xuaát kinh doanh vaø caùc dòch vuï khaùc . Tham gia caùc hoaït ñoäng cuûa EAN quoác teá. 2 . Toå chöùc Maõ Soá Vaät Phaåm Quoác Teá : * Quaù trình thaønh laäp: Naêm 1973, Hieäp hoäi coâng nghieäp taïp hoùa thöïc phaåm Myõ thoáng nhaát thaønh laäp Hieäp Hoäi UCC ( Uniform Code Coucil ) bao goàm heä thoáng caùc nhaø quaûn lyù maõ soá maõ vaïch cuûa caùc cô sôû saûn xuaát, kinh doanh vaø quaûn lyù thoâng tin. Ñaây laø moät toå chöùc phi lôïi nhuaän, coù nhieäm vuï chuû yeáu laø kieåm soaùt maõ soá, cung caáp thoâng tin vaø ñieàu leä cuûa UCC, phoå bieán aùp duïng maõ UPC ( (Universal Product Code ), chuû yeáu ôû Myõ vaø Canada. Naêm 1974, caùc nhaø saûn xuaát vaø cung caáp cuûa 12 nöôùc Chaâu AÂu ñaõ thaønh laäp moät hoäi ñoàng ñaëc bieät ñeå nghieân cöùu khaû naêng aùp duïng heä thoáng maõ soá vaät phaåm tieâu chuaån vaø thoáng nhaát cho Chaâu AÂu, töông töï nhö heä thoáng UPC cuûa Myõ (Universal Product Code ). Keát quaû laø moät heä thoáng maõ soá cuûa Chaâu AÂu ñöôïc thieát laäp treân cô sôû cuûa heä thoáng UPC ñöôïc goïi laø EAN ( European Article Numbering). Thaùng 2 - 1977, Hoäi EAN Chính thöùc ñöôïc thaønh laäp, mang tính chaát moät hoäi Quoác Teá phi lôïi nhuaän cuûa Bæ vaø do Bæ laøm toång thö kyù. Muïc ñích chính cuûa hoäi laø : phaùt trieån tieâu chuaån toaøn caàu vaø ña ngaønh ñeå nhaän ñònh saûn phaåm, dòch vuï vaø ñòa ñieåm, nhaèm cung caáp ngoân ngöõ chung cho thöông maïi quoác teá. Muïc ñích cuûa Hoäi EAN nhanh choùng ñöôïc caùc toå chöùc thaønh vieân uûng hoä vaø ngaøy caøng môû roäng ra ngoaøi phaïm vi Chaâu AÂu tôùi caùc chaâu luïc khaùc. Do ñoù, ñeán naêm 1992, teân cuûa toå chöùc ñöôïc ñoåi thaønh EAN – Quoác Teá coù hôn 80 thaønh vieân ñaïi dieän cho caùc toå chöùc EAN quoác gia. Caùc toå chöùc naøy hoã trôï vaø thoâng tin ñaày ñuû veà maõ soá, maõ vaïch cuûa EAN trong caùc coâng ty, xí nghieäp laø thaønh vieân trong nöôùc mình. * Heä thoáng tieâu chuaån cuûa EAN: Heä thoáng tieâu chuaån EAN veà nhaän bieát quoác teá ñoái vôùi saûn phaåm, dòch vuï vaø ñòa ñieåm cho pheùp caùc nhaø coâng nghieäp vaø kinh doanh trao ñoåi thoâng tin moät caùch chaéc chaén. Caùc tieâu chuaån EAN – Quoác Teá : Tieâu chuaån phaân ñònh haøng hoùa, dòch vuï vaø ñòa ñieåm. Tieâu chuaån maõ boå sung ñeå thoâng tin caùc döõ lieäukhong theå laáy töø Maùy Tính hoaëc truyeàn qua EDI ( Electronic Data Interchange ). Caùc maõ vaïch tieâu chuaån cho pheùp laáy töï ñoäng vaø chính xaùc caùc döõ lieäu phaân ñònh vaø döõ lieäu boå sung. Maãu tieâu chuaån cho giao dòch thöông maïi ñöôïc thoâng tin töø Maùy Tính ñeán Maùy Tính. Caùc tieâu chuaån cuûa EAN – Quoác Teá ñöôïc aùp duïng khoâng nhöõng trong thöông maïi vaø coâng nghieäp ñeå nhaän bieát haøng tieâu duøng, maø coøn trong quaûn lyù caùc saûn phaåm saùch, haøng deät, chaêm soùc söùc khoûe, töï ñoäng hoùa ... . Caùc kyù hieäu maõ vaïch sau ñaõ ñöôïc thieát keá vaø tieâu chuaån hoùa ñeå aùp duïng trong EAN : EAN ( EAN-8, EAN-13 ) ITF – 14. UCC/ EAN – 128. Do yeâu caàu ngaøy caøng taêng cuûa caùc coâng ty thaønh vieân veà phöông phaùp trao ñoåi thoâng tin thöông maïi, EAN laäp neân EAN – COM laø tieâu chuaån trao ñoåi thoâng tin ñieän töû noäi boä ña ngaønh coâng nghieäp. Tieâu chuaån naøy höôùng daãn söû duïng EDI ñeå trao ñoåi soá tieâu chuaån cuûa caùc vaät phaåm, ñôn ñaët haøng, chæ daãn phaân phoái, hoùa ñôn, thoâng tin veà saûn phaåm... vôùi caùc baïn haøng cuûa mình. 3. Maõ soá vaø maõ vaïch cuûa haøng hoùa : * Maõ soá : Maõ soá cuûa haøng hoaù laø moät daõy caùc con soá duøng ñeå phaân ñònh haøng hoùa, aùp duïng trong quaù trình luaân chuyeån haøng hoùa töø ngöôøi saûn xuaát ñeán baùn buoân, löu kho, phaân phoái, baùn leû tôùi ngöôøi tieâu duøng. Gioáng nhö “ theû caên cöôùc’’ giuùp ta phaân bieät ngöôøi naøy vôùi ngöôøi khaùc, maõ soá cuûa haøng hoùa, giuùp ta phaân bieät nhanh choùng vaø chính xaùc caùc loaïi haøng hoùa khaùc nhau. Maõ soá cuûa haøng hoùa coù tính chaát sau : Noù laø con soá duy nhaát ñaëc tröng cho haøng hoùa. Moãi loaïi haøng hoùa ñöôïc ñaïi dieän bôûi moät daõy soá vaø moãi daõy soá chæ töông öùng moät loaïi haøng hoùa. Gioáng nhö maõ soá cuûa maùy ñieän thoaïi : treân toaøn theá giôùi khoâng coù hai maùy ñieän thoaïi coù cuøng maõ soá gioáng nhau, treân toaøn theá giôùi cuõng khoâng coù hai loaïi haøng hoùa coù cuøng moät maõ soá. Baûn thaân maõ soá cuõng chæ laø moät daõy soá ñaïi dieän cho haøng hoùa khoâng lieân quan ñeán ñaëc ñieåm cuûa haøng hoùa. Noù khoâng phaûi laø con soá phaân loaïi hay chaát löôïng cuûa haøng hoùa. Treân maõ soá cuõng khoâng coù giaù caû cuûa haøng hoùa. Hieän nay trong thöông maïi treân theá giôùi aùp duïng chuû yeáu hai heä thoáng maõ soá haøng hoùa: Heä thoáng UPC ( Universal Product Code ) ñöôïc söû duïng töø naêm 1970 vaø hieän nay vaãn ñang söû duïng ôû Myõ vaø Canada . Heä thoáng EAN ( European Article Number ) ñöôïc söû duïng töø naêm 1974 ôû Chaâu AÂu vaø sau ñoù ñöôïc söû duïng ôû haàu heát caùc nöôùc treân theá giôùi. + Maõ soá EAN : Trong heä thoáng maõ soá EAN coù hai loaïi, moät loaïi 13 con soá ( EAN -13 ) vaø loaïi kia söû duïng 8 con soá ( EAN - 8 ). Maõ soá EAN -13 goàm 13 con soá coù caáu taïo nhö sau: Ba con soá ñaàu (keå töø beân traùi) laø maõ soá quoác gia. Boán con soá tieáp theo laø maõ soá nhaø saûn xuaát. Naêm con soá sau nöõa laø maõ soá saûn phaåm. Soá cuoái cuøng laø soá kieåm tra. Ñeå baûo ñaûm tính thoáng nhaát vaø tính duy nhaát cuûa maõ soá, maõ quoác gia phaûi do toå chöùc maõ soá vaät phaåm quoác teá ( EAN – Quoác teá ) caáp cho caùc quoác gia thaønh vieân cuûa toå chöùc naøy. Maõ soá quoác gia cuûa Vieät Nam laø 893. Maõ soá nhaø saûn xuaát do toå chöùc maõ soá vaät phaåm quoác gia caáp cho caùc nhaø saûn xuaát laø thaønh vieân cuûa hoï. ÔÛ Vieät Nam, maõ soá nhaø saûn xuaát do EAN – Vieät Nam cung caáp cho caùc thaønh vieân cuûa mình. Maõ soá saûn phaåm do nhaø saûn xuaát qui ñònh cho haøng hoùa cuûa mình. Nhaø saûn xuaát ñaûm baûo moãi haøng hoùa chæ coù moät maõ soá, khoâng ñöôïc coù baát kyø söï nhaàm laãn naøo. Soá kieåm tra C laø moät con soá ñöôïc tính döïa vaøo 12 con soá ñöùng tröôùc noù, duøng ñeå kieåm tra vieäc coù ghi ñuùng nhöõng con soá noùi treân hay khoâng ? Maõ soá EAN - 8 coù caáu taïonhö sau : Ba soá ñaàu (keå töø beân traùi) laø maõ soá quoác gia. Boán con soá tieáp theo laø maõ soá haøng hoùa. Con soá naøy do toå chöùc maõ soá quoác gia caáp cho saûn phaåm cuûa töøng nhaø saûn xuaát theo ñôn xin söû duïng maõ EAN - 8 cuûa nhaø saûn xuaát. Soá coøn laïi laø soá kieåm tra ñöôïc tính nhö maõ EAN - 13. Vaäy laø maõ EAN – 8 khoâng coù maõ soá cuûa nhaø saûn xuaát vaø chæ coù 4 con soá ñaïi dieän cho saûn phaåm maø thoâi . + Maõ UPC : Maõ soá UPC laø heä thoáng maõ soá aùp duïng ôû Myõ vaø Canada. Trong heä thoáng UPC, aùp duïng roäng raõi nhaát laø maõ soá UPC -A vaø UPC - E. Maõ soá UPC - A söû duïng 12 con soá vaø caáu taïo töông töï EAN - 13 ( Maõ quoác gia – Maõ coâng ty – Maõ saûn phaåm – Soá kieåm tra ) . Maõ soá UPC - E laø maõ soá ruùt goïn, duøng 7 con soá, töông töï EAN - 8 . Maõ UPC laø sôû höõu cuûa toå chöùc UCC. + Caùch tính soá kieåm tra C : Viù duï : Tính soá kieåm tra cho maõ EAN - 13 döôùi ñaây : 893123412345C Böôùc 1 : Tính toång soá caùc chöõ soá haøng leû ( töø phaûi sang ) : 5+3+1+3+1+9 = 22 Böôùc 2 : Laáy keát quaû böôùc 1 nhaân 2 : 22x 3 = 66 Böôùc 3 : Tính toång caùc chöõ soá haøng chaün ( töø phaûi sang ) : 4+2+4+2+3+3= 23 Böôùc 4 : Toång böôùc 3 coäng böôùc 2 : 66+22= 89 Böôùc 5 : Soá kieåm tra laø soá duøng ñeå laøm troøn keát quaû böôùc 4 leân boäi soá cuûa 10 gaàn nhaát ( laøm troøn taêng ) : 89 + C = 90 Vaäy C= 1 EAN - 13 : 893 1234 12345 1 * Maõ vaïch : Maõ vaïch laø moät nhoùm caùc vaïch vaø khoaûng troáng ñaët caïnh maõ soá duøng ñeå theå hieän con soá cuûa maõ soá. Ngöôøi ta chuyeån caùc con soá thaønh caùc vaïch ñen traéng ñeå caùc maùy queùt ( Scaner ) coù theå “ñoïc” ñöôïc caùc con soá naøy. Coù nhieàu loaïi maõ vaïch, loaïi theå hieän maõ soá EAN goïi laø maõ vaïch EAN, loaïi theå hieän maõ UPC goïi laø maõ vaïch UPC. Trong maõ vaïch EAN, moãi con soá ñöôïc theå hieän baèng hai vaïch vaø hai khoaûng troáng, theo 3 kieåu ( phöông aùn ) khaùc nhau ( A, B, C ). Moãi vaïch hoaëc khoaûng troáng coù chieàu roäng töø 1 ñeán 4 modun, moãi modun coù chieàu roäng laø 0,33 mm. Maõ vaïch EAN -13 coù caáu taïo nhö sau : Keå töø beân traùi laø khu vöïc ñeå troáng ( quiet zone ) khoâng ghi kyù hieäu naøo caû; roài tôùi kyù hieäu baét ñaàu; tieáp theo laø kyù hieäu daõy soá beân traùi; kyù hieäu phaân caùch; kyù hieäu daõy soá beân phaûi; kyù hieäu soá kieåm tra; kyù hieäu keát thuùc; vaø sau ñoù laø khu vöïc ñeå troáng beân phaûi. Toaøn boä khu vöïc maõ vaïch EAN -13 tieâu chuaån coù kích thöôùc chieàu daøi laø 37,29 mm vaø chieàu cao laø 26,26 mm. Maõ vaïch EAN - 8 cuõng coù caáu taïo töông töï nhöng kích thöôùc chieàu daøi chæ laø 26,73mmvaø chieàu cao cuõng chæ laø 21,84mm . Maõ vaïch UPC coù cuøng nguyeân taéc caáu taïo nhö maõ EAN. Tuy nhieân; ñieàu khaùc bieät laø trong maõ vaïch UPC, con soá ñaàu tieân vaø con soá cuoái cuøng ñöôïc ñaët beân caïnh khu vöïc maõ vaïch ( trong khi maõ vaïch EAN, taát caû caùc con soá ñöôïc ñaët döôùi khu vöïc maõ vaïch ) . 4. Ñoïc maõ vaïch : Ñeå ñoïc maõ vaïch, ngöôøi ta söû duïng moät maùy queùt, trong maùy queùt coù moät nguoàn saùng Laser, moät boä phaän caûm bieán quang ñieän ( Caûm Quang Photo-Diode ), moät boä giaõi maõ. Maùy queùt ñöôïc noái vôùi Maùy Tính baèng ñöôøng daây daãn hoaëc boä phaän truyeàn tín hieäu voâ tuyeán. Nguyeân taéc hoaït ñoäng nhö sau : nguoàn saùng Laser phaùt chuøm tia saùng queùt leân khu vöïc maõ vaïch ( khoaûng 25 ñeán 50 laàn trong moät giaây ) , boä caûm bieán quang ñieän nhaän aùnh saùng phaûn xaï vaø chuyeån noù thaønh doøng ñieän coù cöôøng ñoä bieán ñoåi theo aùnh saùng phaûn xaï ñoù, tín hieäu ñöôïc ñöa ñeán boä phaän giaûi maõ vaø chuyeån veà Maùy Tính. Veà hình daùng, maùy queùt coù theå coù daïng nhö moät caùi buùt, coù loaïi coù hình daïng nhö moät caùi hoäp ñaët coá ñònh treân baøn, coù loaïi maùy queùt caàm tay. Maùy queùt thöôøng söû duïng tia saùng laser phaùt tia saùng maøu ñoû, hoaëc phaùt tia saùng hoàng ngoaïi. Haàu heát caùc nöôùc treân theá giôùi ñaõ aùp duïng maõ vaïch EAN trong vieäc thu thaäp thoâng tin taïi ñieåm baùn haøng vaø söû duïng thoâng tin hieäu quaû trong kinh doanh. Vì vaäy, neáu haøng hoùa cuûa ta khoâng coù maõ vaïch EAN seõ khoâng coù theå baùn treân thò tröôøng Chaâu AÂu, Baéc Myõ va øcuõng raát khoù baùn treân thò tröôøng ASEAN. 5. Caùc loaïi maõ vaïch khaùc : Hai loaïi maõ vaïch EAN vaø UPC ñöôïc duøng chuû yeáu trong thöông maïi vì chuùng coù nhöõng ñaëc ñieåm sau ñaây : Chuùng chæ maõ hoùa ñöôïc caùc kyù töï soá töø 0 ñeán 9. Chuùng coù chieàu daøi giôùi haïn, töùc laø chæ maõ hoùa baèng moät soá löôïng nhaát ñònh caùc con soá, ví duï 8 con soá ( EAN - 8 ) hoaëc 13 con soá ( EAN -13). Hieän nay ngöôøi ta coøn aùp duïng nhieàu loaïi maõ vaïch khaùc nhö Code 3.9, Code 2.5, Code 128, maõ hai chieàu v.v ... . Tuy nhieân, trong giôùi haïn ñeà taøi, ta khoâng ñeà caäp ñeán . III. CAÁU TRUÙC MAÕ VAÏCH SÖÛ DUÏNG TRONG LUAÄN VAÊN : E 8 7 6 5 4 3 2 1 B 8 bits maõ Maõ keát thuùc Maõ baét ñaàu Hình 1.1 Sô ñoà caáu truùc Maõ Vaïch Nhö treân ñaõ giôùi thieäu, maõ vaïch thöïc teá söû duïng coù caáu taïo raát phöùc taïp neân ñoøi hoûi ta phaûi coù ñaàu ñoïc toát : maét Laser laø moät ñaàu ñoïc raát thích hôïp . Tuy nhieân do thôøi gian thi coâng haïn heïp cuõng nhö ñieàu khieän thi coâng chuû yeáu laø thuû coâng neân khoù coù theå caân chænh chính xaùc . Vieäc thu thaäp tín hieäu vaø xöû lyù vì vaäy maø cuõng gaëp khoù khaên neân buoäc loøng phaûi duøng Hoàng Ngoaïi thay theá . Chi tieát veà 2 loaïi aùnh saùng naøy (Laser vaø Hoàng Ngoaïi) : öu vaø nhöôïc cuûa moãi loaïi xin ñöôïc trình baøy kyõ ôû Phaàn III . Xem hình treân (Hình 1.1), ta nhaän thaáy caáu truùc cuûa maõ vaïch söû duïng trong luaän vaên goàm coù 3 phaàn chính : 3 vaïch maõ baét ñaàu , 3 vaïch maõ keát thuùc vaø 8 vaïch maõ chính naèm giöõa. 8 vaïch maõ naøy chöùa ID cuûa theû, moãi theû seõ mang moät ID khaùc nhau . Vôùi 8bits , ta seõ coù toång coäng 28 = 128 theû rieâng bieät khaùc nhau. Ñoä daøy cuûa moãi vaïch maõ ñeàu nhau 2 mm . Maõ baét ñaàu laø toå hôïp 3 vaïch : Traéng – Ñen – Ñen; maõ keát thuùc laø toå hôïp 3 vaïch : Traéng – Ñen – Traéng . AÙnh saùng Hoàng Ngoaïi khi gaëp vaïch traéng seõ phaûn xaï coøn gaëp vaïch ñen seõ khoâng phaûn xaï, töông öùng ta seõ coù vaïch traéng laø möùc logic 1 vaø vaïch ñen laø möùc logic 0. Trong traïng thaùi nghó ( khoâng coù theû ñöa vaøo ) , thì seõ khoâng coù aùnh saùng Hoàng Ngoaïi phaûn xaï . Khi phaùt hieän vaïch traéng thì coù nghóa laø coù theû ñöa vaøo, Vi Ñieàu Khieån seõ ñoïc maõ nhö chöông trình ñaõ ñöôïc naïp. Neáu ñoïc ñöôïc lieân tieáp 3 vaïch maõ : Traéng – Ñen – Ñen; coù nghóa laø ñaõ ñoïc ñuùng chieàu theû hoaëc seõ baùo loãi khi ñoïc ñöôïc lieân tieáp 3 vaïch maõ keát thuùc : Traéng – Ñen – Traéng . Vì vaäy , ta thaáy chöùc naêng chuû yeáu cuûa vaïch maõ Traéng ñaàu tieân laø nhaän dieän theû ; töùc laø nhaän bieát söï coù theû trong khe hay khoâng ; ñoàng thôøi cuõng laø vaïch maõ baùo baét ñaàu moät chu kyø laøm vieäc : ñoïc maõ vaïch, sau ñoù baùo loãi hay truyeàn döõ kieän veà Maùy Tính cuûa Vi Ñieàu Khieån AT89C51 . Vaø toå hôïp 2 vaïch maõ tieáp theo : Ñen – Traéng hay Ñen – Ñen seõ coù taùc duïng xaùc ñònh chieàu keùo cuûa theû coù ñuùng nhö qui ñònh hay khoâng . Treân ñaây chæ laø sô löôïc caáu truùc cuõng nhö caùch thöùc vaän haønh vaø coâng duïng cuï theå cuûa töøng vaïch maõ . Tuy nhieân , noùi veà nguyeân taéc laøm vieäc cuûa heä thoáng maõ vaïch treân coøn raát nhieàu vaán ñeà nöõa . Vì vaäy ñeå naém roõ hôn nöõa , xin quyù ñoïc giaû xem theâm Phaàn giaûi thích nguyeân lyù laøm vieäc cuûa maïch phaàn cöùng seõ ñöôïc trình baøy sau . I. GIÔÙI THIEÄU CAÁU TRUÙC PHAÀN CÖÙNG HOÏ MSC-51 (AT89C51): -Ñaëc ñieåm vaø chöùc naêng hoaït ñoäng cuûa caùc IC hoï MSC-51 hoaøn toaøn töông töï nhö nhau. ÔÛ ñaây giôùi thieäu IC AT89C51 laø moät hoï IC vi ñieàu khieån do haõng Atmel saûn xuaát. Caùc ñaëc ñieåm cuûa AT89C51 ñöôïc toùm taét nhö sau : 2 KB EEPROM (Flash ROM) beân trong. 128 Byte RAM noäi. 4 Port xuaát /nhaäp I/O 8 bit. Giao tieáp noái tieáp baát ñoàng boä . Coù theå môû roäng 64 KB vuøng nhôù Maõ ngoaøi (ROM ngoaøi) thoâng qua 16bit ñòa chæ vaø chaân tín hieäu PSEN. Coù theå môû roäng 64 KB vuøng nhôù Döõ Lieäu ngoaøi (RAM ngoaøi) thoâng qua 16bit ñòa chæ vaø 2 chaân tín hieäu RD vaø WR. Xöû lí Boolean (hoaït ñoäng treân bit ñôn). 210 vò trí nhôù coù theå ñònh vò bit. 4 ms cho hoaït ñoäng nhaân hoaëc chia. Sô ñoà khoái cuûa AT89C51: OTHER REGISTER 128 byte RAM 128 byte RAM 8051\8052 ROM 4K: 8031 4K: 8051 EPROM 4K: AT89C51 EEPROM INTERRUPT CONTROL SERIAL PORT TIMER 0 TIMER 1 TIME 2 (8952) CPU OSCILATOR BUS CONTROL I/O PORT SERIAL PORT EA\ RST ALE\ PSEN\ P0 P1 P2 P3 Address\Data TXD RXD TIMER 2 TIMER1 TIMER1 INT1\ INT0\ Hình 2.1 Sô ñoà khoái Vi Ñieàu Khieån AT89C51 II. KHAÛO SAÙT SÔ ÑOÀ CHAÂN AT89C51, CHÖÙC NAÊNG TÖØNG CHAÂN: 1.Sô ñoà chaân AT89C51: Hình 2.2 Soù ñoà chaân IC AT89C51 2. Chöùc naêng caùc chaân cuûa AT89C51: - AT89C51 coù taát caû 40 chaân. Trong ñoù coù 24 chaân coù taùc duïng keùp (coù nghóa 1 chaân coù 2 chöùc naêng), moãi chaân ngoaøi vieäc coù theå hoaït ñoäng nhö moät ñöôøng xuaát nhaäp ra, noù coøn coù theå hoaït ñoäng nhö ñöôøng ñieàu khieån hoaëc laø thaønh phaàn cuûa caùc bus döõ lieäu vaø bus ñòa chæ. a.Caùc Port: * Port 0 : - Port 0 laø port coù 2 chöùc naêng, taäp trung ôû caùc chaân 32 ¸ 39 cuûa AT89C51. Trong caùc thieát keá vi moâ (côõ nhoû) khoâng duøng boä nhôù môû roäng, noù coù chöùc naêng nhö caùc ñöôøng I/O. Ñoái vôùi caùc thieát keá vó moâ (côõ lôùn) coù boä nhôù môû roäng, noù ñöôïc keát hôïp giöõa bus ñòa chæ vaø bus döõ lieäu. Port 0 mang 8 bits (1 Byte) ñòa chæ thaáp . * Port 1: - Port 1 laø 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,... cho ñeán P1.7 . Coù theå duøng cho giao tieáp vôùi caùc thieát bò ngoaøi neáu caàn. Port 1 khoâng coù chöùc naêng khaùc, vì vaäy chuùng chæ ñöôïc duøng cho giao tieáp vôùi caùc thieát bò beân ngoaøi. * Port 2: - Port 2 laø 1 port coù taùc 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 ñòa chæ ñoái vôùi caùc thieát bò duøng boä nhôù môû roäng. * Port 3: - Port 3 laø port coù taùc 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ính ñaëc bieät cuûa AT89C51 nhö ôû baûng sau: Bit Teân Chöùc naêng chuyeån ñoåi P3.0 RXT Ngoõ vaøo döõ lieäu noái tieáp. P3.1 TXD Ngoõ xuaát döõ lieäu noái tieáp. P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 INT0\ INT1\ T0 T1 WR\ RD\ Ngoõ vaøo ngaét cöùng thöù 0. Ngoõ vaøo ngaét cöùng thöù 1. Ngoõ vaøo cuûa TIMER/COUNTER thöù 0. Ngoõ vaøo cuûa TIMER/COUNTER thöù 1. Tín hieäu ghi döõ lieäu leân boä nhôù ngoaøi. Tín hieäu ñoïc boä nhôù döõ lieäu ngoaøi. Baûng 2.1 Caùc chöùc naêng ñieàu khieån ôû Port 3 b.Caùc ngoõ tín hieäu ñieàu khieån : * Ngoõ tín hieäu PSEN (Program store enable) : - PSEN laø tín hieäu ngoõ ra ôû chaân 29 coù taùc duïng cho pheùp ñoïc boä nhôù chöông trình môû roäng thöôøng ñöôïc noùi ñeán chaân OE (Output Enable) cuûa EPROM, cho pheùp ñoïc caùc byte maõ leänh. - PSEN ôû möùc thaáp trong thôøi gian Microcontroller AT89C51 laáy leänh. Caùc maõ leänh cuûa chöông trình ñöôïc ñoïc töø EPROM qua bus döõ lieäu vaø ñöôïc choát vaøo thanh ghi leänh beân trong AT89C51 ñeå giaûi maõ leänh. Khi AT89C51 thi haønh chöông trình trong ROM noäi PSEN seõ ôû möùc logic 1; nghóa laø khoâng tích cöïc nöõa. * Ngoõ tín hieäu ñieàu khieån ALE (Address Latch Enable ) : - Khi AT89C51 truy xuaát boä nhôù beân ngoaøi, Port 0 coù chöùc naêng laø Byte ñòa chæ thaáp vaø Byte döõ lieäu. Do ño,ù phaûi taùch caùc ñöôøng döõ lieäu vaø ñòa chæ ra rieâng bieät. Tín hieäu ra ALE ôû chaân thöù 30 duøng laøm tín hieäu ñieàu khieån ñeå giaûi ña hôïp caùc ñöôøng ñòa chæ vaø döõ lieäu khi keát noái chuùng vôùi IC choát (TTL 74573,74373,v.v…...). - Tín hieäu ra ôû chaân ALE laø moät xung trong khoaûng thôøi gian Port 0 ñoùng vai troø laø ñòa chæ thaáp neân choát ñòa chæ hoaøn toaøn töï ñoäng. - 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øm tín hieäu Clock cho caùc phaàn khaùc cuûa heä thoáng. Chaân ALE ñöôïc duøng laøm ngoõ vaøo xung laäp trình cho Flash ROM trong AT89C51. * Ngoõ tín hieäu EA(External Access): - Tín hieäu vaøo EA ôû chaân 31 thöôøng ñöôïc maéc leân möùc 1 hoaëc möùc 0. Neáu ôû möùc 1, AT89C51 thi haønh chöông trình töø ROM noäi. Neáu ôû möùc 0, AT89C51 seõ thi haønh chöông trình töø boä nhôù môû roäng. Chaân EA ñöôïc laáy laøm chaân caáp nguoàn 12 V khi laäp trình cho Flash ROM trong AT89C51. * Ngoõ tín hieäu RST (Reset) : - Ngoõ vaøo RST ôû chaân 9 laø ngoõ vaøo Reset cuûa AT89C51. Khi ngoõ vaøo tín hieäu naøy ñöa leân cao ít nhaát laø 2 chu kyø maùy, caùc thanh ghi beân trong ñöôïc naïp nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng. Khi caáp ñieän maïch töï ñoäng Reset vôùi heä thoáng tuï vaø ñieän trôû maéc theâm beân ngoaøi. * Caùc ngoõ vaøo boä dao ñoäng X1, X2: - Boä dao ñoäng ñöôïc tích hôïp beân trong AT89C51, khi söû duïng ngöôøi thieát keá chæ caàn keát noái theâm thaïch anh vaø caùc tuï nhö hình veõ trong sô ñoà treân (Hình 2.2) . Taàn soá thaïch anh thöôøng söû duïng cho AT89C51 laø 12Mhz. Tuy nhieân, thaïch anh 11.059Mhz laïi ñöôïc duøng nhieàu trong truyeàn thoâng noái tieáp baát ñoàng boä vì tính oån ñònh vaø ít sai soá ñoái vôùi caùc toác ñoä truyeàn (Baudrate) chuaån : 1200 bps, 2400 bps, 9600 bps, v.v... . Trong tröôøng hôïp caùc IC (thieát bò) khaùc trong Kit caàn phaûi coù xung Clock thì coù theå laáy tröïc tieáp töø chaân X2 roài cho qua boä Ñeám (Counter : 4bit, 8bit,…) ñeå chia taàn thích hôïp laø coù theå söû duïng ñöôïc ngay cho IC ñoù. * Chaân 40 (Vcc) ñöôïc noái leân nguoàn 5V vaø chaân 20 thì noái Mass. III. CAÁU TRUÙC BEÂN TRONG VI ÑIEÀU KHIEÅN: 1. Toå chöùc boä nhôù: DATA Memory Enable via RD & WR CODE Memory Enable via PSEN FFFF FFFF FF 00 On - Chip 0000 0000 Memory External Memory Hình 2.3 Caáu truùc boä nhôù trong vaø ngoaøi - Boä nhôù trong AT89C51 bao goàm ROM vaø RAM. RAM trong AT89C51 bao goàm nhieàu thaønh 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. - AT89C51 coù boä nhôù theo caáu truùc Harvard: coù nhöõng vuøng boä nhôù rieâng bieät cho chöông trình vaø döõ lieäu. Chöông trình vaø döõ lieäu coù theå chöùa beân trong AT89C51 nhöng AT89C51 vaãn coù theå keát noái vôùi 64KB boä nhôù Chöông Trình vaø 64KB Döõ Lieäu. Hai ñaëc tính caàn chuù yù la ø: u Caùc thanh ghi vaø caùc Port xuaát nhaäp ñaõ ñöôïc ñònh vò (xaùc ñònh) trong boä nhôù vaø coù theå truy xuaát tröïc tieáp gioáng nhö caùc ñòa chæ boä nhôù khaùc. u Ngaên xeáp beân trong RAM noäi nhoû hôn so vôùi RAM ngoaïi nhö trong caùc boä Microcontroller khaùc. RAM beân trong AT89C51 ñöôïc phaân chia nhö sau: u Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1FH. u RAM ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH. u RAM ña duïng töø 30H ñeán 7FH. u Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH. Ñòa chæ byte Ñòa chæ byte Ñòa chæ bit Ñòa chæ bit 7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B RAM ña duïng E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW 30 B8 - - - BC BB BA B9 B8 IP 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 99 khoâng ñöôïc ñòa chæ hoaù bit SBUF 27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 8D khoâng ñöôïc ñòa chæ hoaù bit TH1 22 17 16 15 14 13 12 11 10 8C khoâng ñöôïc ñòa chæ hoaù bit TH0 21 0F 0E 0D 0C 0B 0A 09 08 8B khoâng ñöôïc ñòa chæ hoaù bit TL1 20 07 06 05 04 03 02 01 00 8A khoâng ñöôïc ñòa chæ hoaù bit TL0 1F Bank 3 89 khoâng ñöôïc ñòa chæ hoaù bit TMOD 18 88 8F 8E 8D 8C 8B 8A 89 88 TCON 17 Bank 2 87 khoâng ñöôïc ñòa chæ hoaù bit PCON 10 0F Bank 1 83 khoâng ñöôïc ñòa chæ hoaù bit DPH 08 82 khoâng ñöôïc ñòa chæ hoaù bit DPL 07 Bank thanh ghi 0 81 khoâng ñöôïc ñòa chæ hoaù bit SP 00 (maëc ñònh cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0 RAM NOÄI CAÙC THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT Baûng 2.2 Toùm taét caùc vuøng nhôù AT89C51. RAM ña duïng: - Maëc duø treân hình veõ cho thaáy chæ coù 80 byte RAM ña duïng chieám caùc ñòa chæ töø 30H ñeán 7FH, nhöng 32 byte döôùi töø 00H ñeán 1FH cuõng coù theå duøng vôùi muïc ñích töông töï (duø raèng caùc ñòa chæ naøy ñaõ coù muïc ñích khaùc ) . - Moïi ñòa chæ trong vuøng RAM ña duïng ñeàu coù theå truy xuaát töï do duøng kieåu ñòa chæ tröïc tieáp hoaëc giaùn tieáp. RAM coù theå truy xuaát töøng bit: - AT89C51 chöùa 210 bit ñöôïc ñòa chæ hoùa, trong ñoù coù 128 bit coù chöùa caùc Byte coù chöùa caùc ñòa chæ töø 20H ñeán 2FH vaø caùc bit coøn laïi chöùa trong nhoùm thanh ghi coù chöùc naêng ñaëc bieät. - YÙ töôûng truy xuaát töøng bit baèng phaàn meàm laø caùc ñaëc tính maïnh cuûa caùc Microcontroller ( Vi Ñieàu Khieån ) maø caùc Vi Xöû Lyù khoâng coù ñöôïc. Caùc bit coù theå ñöôïc Ñaët, Xoùa, And, Or, . . . , vôùi 1 leänh ñôn. Ña soá caùc Microcontroller ñoøi hoûi moät chuoãi leänh ñoïc – söûa – ghi ñeå ñaït ñöôïc muïc ñích töông töï. Ngoaøi ra caùc Port cuõng coù theå truy xuaát ñöôïc töøng bit. - 128 bits truy xuaát töøng bit naøy cuõng coù theå truy xuaát nhö caùc byte hoaëc nhö caùc bits, phuï thuoäc vaøo leänh ñöôïc duøng. Caùc bank thanh ghi: - 32 byte thaáp cuûa boä nhôù noäi ñöôïc daønh cho caùc Bank thanh ghi, töø Bank 0 ñeán Bank 3. Boä leänh AT89C51 hoå trôï 8 thanh ghi coù teân laø R0 ñeán R7 vaø theo maëc ñònh sau khi reset heä thoáng, caùc thanh ghi naøy coù caùc ñòa chæ töø 00H ñeán 07H, töùc Bank 0. - Caùc leänh duøng caùc thanh ghi R0 ñeán R7 seõ ngaén hôn vaø nhanh hôn so vôùi caùc leänh coù chöùc naêng töông öùng duøng kieåu ñòa chæ tröïc tieáp. Caùc döõ lieäu ñöôïc duøng thöôøng xuyeân ñöôïc khuyeân duøng moät trong caùc thanh ghi naøy. - Do coù 4 bank thanh ghi neân taïi moät thôøi ñieåm chæ coù moät bank thanh ghi ñöôïc truy xuaát maø ñaïi dieän laø caùc thanh ghi R0 ñeán R7. Ñeå chuyeån ñoåi vieäc truy xuaát caùc bank thanh ghi ta phaûi thay ñoåi caùc bits choïn bank trong thanh ghi töø traïng thaùi chöông trình (PSW – Program Status Word). 2. Caùc thanh ghi coù chöùc naêng ñaëc bieät: - Caùc thanh ghi noäi cuûa AT89C51 ñöôïc truy xuaát ngaàm ñònh bôûi boä leänh. - Caùc thanh ghi trong AT89C51 ñöôï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 boä ñeám chöông trình vaø thanh ghi leänh vì caùc thanh ghi naøy hieám khi bò taùc ñoäng tröïc tieáp). Cuõng nhö R0 ñeán R7, AT89C51 coù 21 thanh ghi coù chöùc naêng ñaëc bieät (SFR: Special Function Register) ôû vuøng treân cuûa RAM noäi töø ñòa chæ 80H ñeán FFH. Chuù yù: taát caû 128 ñòa chæ töø 80H ñeán FFH khoâng ñöôïc ñònh nghóa, chæ coù 21 thanh ghi coù chöùc naêng ñaëc bieät ñöôïc ñònh nghóa saün caùc ñòa chæ. - Ngoaïi tröø thanh ghi A coù theå ñöôïc truy xuaát ngaàm nhö ñaõ noùi, ña soá caùc thanh ghi coù chöùc naêng ñaëc bieät SFR ñeàu coù theå ñöôïc ñòa chæ hoùa töøng bit hoaëc byte. Thanh ghi töø traïng thaùi chöông trình (PSW: Program Status Word): Töø traïng thaùi chöông trình ôû ñòa chæ D0H ñöôïc toùm taét nhö sau: BIT Kyù Hieäu Ñòa Chæ Moâ Taû PSW.7 CY D7H Cary Flag PSW.6 AC D6H Auxiliary Cary Flag PSW.5 F0 D5H Flag 0 PSW4 RS1 D4H Register Bank Select 1 PSW.3 RS0 D3H Register Bank Select 0 00=Bank 0 ; address 00H¸07H 01=Bank 1 ; address 08H¸0FH 10=Bank 2 ; address 10H¸17H 11=Bank 3 ; address 18H¸1FH PSW.2 OV D2H Overlow Flag PSW.1 - D1H Reserved PSW.0 P DOH Even Parity Flag Baûng 2.3 Thanh Ghi PSW Chöùc naêng töøng bit cuûa PSW: Côø Carry CY (Carry Flag): Côø nhôù coù taùc duïng keùp. Thoâng thöôøng noù ñöôïc duøng cho caùc leänh toaùn hoïc : C=1 neáu pheùp toaùn coäng coù söï traøn hoaëc pheùp tröø coù möôïn vaø ngöôïc laïi C= 0 neáu pheùp toaùn coäng khoâng traøn vaø pheùp tröø khoâng coù möôïn. Côø Carry phuï AC (Auxiliary Carry Flag): - Khi coäng nhöõng giaù trò BCD (Binary Code Decimal), côø nhôù phuï AC ñöôïc Set neáu keát quaû 4 bit thaáp naèm trong phaïm vi ñieàu khieån 0AH¸ 0FH. Ngöôïc laïi, ta seõ coù AC= 0. Côø 0 (Flag 0): - Côø 0 (F0) laø 1 bit côø ña duïng duøng cho caùc öùng duïng cuûa ngöôøi duøng. Nhöõng bit choïn bank thanh ghi truy xuaát: - RS1 vaø RS0 quyeát ñònh daõy thanh ghi tích cöïc. Chuùng ñöôïc xoùa sau khi reset heä thoáng vaø ñöôïc thay ñoåi bôûi phaàn meàm khi caàn thieát. - Tuøy theo RS1, RS0 = 00, 01, 10, 11 seõ ñöôïc choïn Bank tích cöïc töông öùng laø Bank 0, Bank1, Bank2, Bank3. RS1 RS0 BANK 0 0 0 0 1 1 1 0 2 1 1 3 Baûng 2.4 Set Bank thanh ghi Côø traøn OV (Over Flag) : - Côø traøn ñöôïc Set sau moät hoaït ñoäng coäng hoaëc tröø neáu coù söï traøn toaùn hoïc. 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 quaû coù naèm trong taàm xaùc ñònh khoâng. Khi caùc soá khoâng coù daáu ñöôïc coäng bit OV ñöôïc boû qua. Caùc keát quaû lôùn hôn + 127 hoaëc nhoû hôn – 128 thì bit OV = 1. Bit Parity (P): - Bit töï ñoäng ñöôïc Set hay Clear ôû moãi chu kyø maùy ñeå laäp Parity chaún vôùi thanh ghi A. Söï ñeám caùc bit 1 trong thanh ghi A coäng vôùi bit Parity luoân luoân chaün. Ví duï A chöùa 10101101B thì bit P set leân moät ñeå toång soá bit 1 trong A vaø P taïo thaønh soá chaün. - Bit Parity thöôøng ñöôïc duøng trong söï keát hôïp vôùi nhöõng thuû tuïc cuûa Port noái tieáp ñeå taïo ra bit Parity tröôùc khi phaùt ñi hoaëc kieåm tra bit Parity sau khi thu. Thanh ghi B: - Thanh ghi B ôû ñòa chæ 0F0H ñöôïc duøng cuøng vôùi thanh ghi A cho caùc pheùp toaùn nhaân chia. Leänh MUL AB Ü seõ nhaän nhöõng giaù trò khoâng daáu 8 bit trong hai thanh ghi A vaø B, roài traû veà keát quaû 16 bit trong A (Byte cao) vaø B (Byte thaáp). Leänh DIV AB Ü laáy A chia B, keát quaû nguyeân ñaët vaøo A, soá dö ñaët vaøo B. - Thanh ghi B coù theå ñöôïc duøng nhö moät thanh ghi ñeäm trung gian ña muïc ñích. Noù laø nhöõng bit ñònh vò thoâng qua nhöõng ñòa chæ töø 0F0H ¸ 0F7H. Con troû Ngaên xeáp SP (Stack Pointer) : - Con troû ngaên xeáp 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 ngaên xeáp. Caùc leänh treân ngaên xeáp bao goàm caùc leänh caát döõ lieäu vaøo ngaên xeáp (PUSH) vaø laáy döõ lieäu ra khoûi ngaên xeáp (POP). Leänh caát döõ lieäu vaøo ngaên xeáp seõ laøm taêng SP leân 1 tröôùc khi ghi döõ lieäu vaø döõ lieäu seõ ñöôïc laáy ra khoûi ngaên xeáp tröôùc khi laøm giaûm SP ñi 1 ngay khi leänh laáy döõ lieäu ñöôïc thöïc thi. Ngaên xeáp cuûa IC hoï MSC – 51 ñöôïc giöõ trong RAM noäi vaø giôùi haïn caùc ñòa chæ coù theå truy xuaát baèng ñòa chæ giaùn tieáp laø 128 Byte ñaàu cuûa AT89C51. - Ñeå khôûi ñoäng SP vôùi ngaên xeáp baét ñaàu taïi ñòa chæ 60H, caùc leänh sau ñaây ñöôïc duøng: MOV SP , #5F - Vôùi leänh treân thì ngaên xeáp cuûa AT89C51 chæ coù 32 Byte vì ñòa chæ cao nhaát cuûa RAM treân chip laø 7FH. Sôû dó giaù trò 5FH ñöôïc naïp vaøo SP vì SP taêng leân 60H tröôùc khi caát Byte döõ lieäu. - Khi Reset AT89C51, SP seõ mang giaù trò maëc ñònh laø 07H vaø döõ lieäu ñaàu tieân seõ ñöôïc caát vaøo oâ nhôù ngaên xeáp coù ñòa chæ 08H. Neáu phaàn meàm öùng duïng khoâng khôûi ñoäng SP moät giaù trò môùi thì bank thanh ghi1 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 tröõ taïm thôøi vaø laáy laïi döõ lieäu, hoaëc truy xuaát ngaàm baèng leänh goïi chöông trình con ( ACALL, LCALL) vaø leänh trôû veà RET ñeå löu tröõ giaù trò cuûa boä ñeám chöông trình khi baét ñaàu thöïc hieän chöông trình con vaø laáy laïi khi keát thuùc chöông trình con … Con troû döõ lieäu DPTR (Data Pointer): - 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 MOV @DPTR, A - Leänh ñaàu tieân duøng ñeå naïp 55H vaøo thanh ghi A. Leänh thöù hai duøng ñeå naïp ñòa chæ cuûa oâ nhôù caàn löu giaù trò 55H vaøo con troû döõ lieäu DPTR. Leänh thöù ba seõ di chuyeån noäi dung thanh ghi A (laø 55H) vaøo oâ nhôù RAM beân ngoaøi coù ñòa chæ chöùa trong DPTR (laø 1000H). Caùc thanh ghi Port (Port Register): - Caùc Port cuûa AT89C51 bao goàm Port0 ôû ñòa chæ 80H, Port1 ôû ñòa chæ 90H, Port2 ôû ñòa chæ 0A0H, vaø Port3 ôû ñòa chæ 0B0H. Taát caû caùc Port naøy ñeàu coù theå truy xuaát töøng bit neân raát thuaän tieän trong khaû naêng giao tieáp I/O. Caùc thanh ghi Timer (Timer Register): - AT89C51 coù chöùa hai boä ñònh thôøi/boä ñeám 16 bit ñöôïc duøng cho vieäc ñònh thôøi hoaëc ñeám söï kieän. Timer 0 ôû ñòa chæ 8AH ( TLO : Byte thaáp ) vaø 8CH (THO : Byte cao). Timer 1 ôû ñòa chæ 8BH (TL1: byte thaáp) vaø 8DH (TH1: byte cao). Vieäc khôûi ñoäng 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 (Serial Port Register) : - AT89C51 chöùa moät Port noái tieáp 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 giao tieáp noái tieáp vôùi caùc IC khaùc. Moät thanh ghi ñeäm döõ lieäu noái tieáp (SBUF) ôû ñòa chæ 99H seõ giöõ caû hai döõ lieäu truyeàn vaø döõ lieäu nhaäp. Khi truyeàn döõ lieäu, ta ghi leân SBUF vaø 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 thoâng 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 (Interrupt Register): - AT89C51 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 vaøo thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ 0A8H. Xaùc ñònh möùc öu tieân ngaét baèng thanh ghi IP . Caû hai ñeàu ñöôïc ñòa chæ hoùa töøng bit. Thanh ghi ñieàu khieån nguoàn PCON (Power Control Register): - Thanh ghi PCON khoâng coù bit ñònh vò. Noù ôû ñòa chæ 87H chöùa nhieàu bit ñieàu khieån. Thanh ghi PCON ñöôïc toùm taét nhö sau: Bit 7 (SMOD) : 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, 3 cuûa Port noái tieáp. Bit 6, 5, 4 : Khoâng coù ñòa chæ. Bit 3 (GF1) : Bit côø ña naêng 1. Bit 2 (GF0) : Bit côø ña naêng 2 . Bit 1 (PD) : Set ñeå khôûi ñoäng Mode Power Down vaø maát taùc duïng khi Reset heä thoáng . Bit 0 (IDL) : Set ñeå khôûi ñoäng Mode Idle vaø chæ thoaùt khi coù ngaét hoaëc Reset heä thoáng . Caùc bit ñieàu khieån Power Down vaø Idle coù taùc duïng chính trong taát caû caùc IC hoï MSC-51 nhöng chæ ñöôïc thi haønh trong söï bieân dòch cuûa CMOS. 3. Boä nhôù ngoaøi (external memory) : - AT89C51 coù khaû naêng môû roäng boä nhôù leân ñeán 64K Byte boä nhôù chöông trình ngoaøi vaø 64K Byte boä nhôù döõ lieäu ngoaøi. Do ñoù coù theå duøng theâm RAM vaø ROM neáu caàn. - Khi duøng boä nhôù ngoaøi, Port0 khoâng coøn chöùc naêng I/O nöõa. Noù ñöôïc keát hôïp 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 cuûa bus ñòa chæ khi baét ñaàu moãi chu kyø boä nhôù. Port2 ñöôïc choïn laø Byte cao cuûa bus ñòa chæ. Truy xuaát boä nhôù maõ ngoaøi (Accessing External Code Memory) : - Boä nhôù chöông trình beân ngoaøi laø boä nhôù ROM ñöôïc cho pheùp cuûa tín hieäu PSEN. Söï keát noái phaàn cöùng cuûa boä nhôù EPROM nhö sau: Port 0 EA ALE Port 2 PSEN 89C51 D0 ¸ D7 A0 ¸ A7 A8 ¸ A15 OE 74HC373 D Q G EPROM Hình 2.4 Truy xuaát boä nhôù chöông trình ngoaøi (ROM) - Trong moät chu kyø maùy tieâu bieåu, tín hieäu ALE tích cöïc 2 laàn. Laàn thöù nhaát cho pheùp 74HC373 môû coång choát ñòa chæ byte thaáp, khi ALE xuoáng 0 thì Byte thaáp vaø Byte cao cuûa boä ñeám chöông trình ñeàu coù nhöng ROM chöa xuaát vì PSEN chöa tích cöïc, khi tín hieäu leân moät trôû laïi thì Port 0 ñaõ coù döõ lieäu laø Opcode. ALE tích cöïc laàn thöù hai ñöôïc giaûi thích töông töï vaø Byte 2 ñöôïc ñoïc töø boä nhôù chöông trình. Neáu leänh ñang hieän haønh laø leänh 1 byte thì CPU chæ ñoïc Opcode, coøn byte thöù hai boû ñi. Truy xuaát boä nhôù döõ lieäu ngoaøi (Accessing External Data Memory): - Boä nhôù döõ lieäu ngoaøi laø moät boä nhôù RAM ñöôïc ñoïc hoaëc ghi khi ñöôïc cho pheùp cuûa tín hieäu RD vaø WR. Hai tín hieäu naøy naèm ôû chaân P3.7 (RD) vaø P3.6 (WR). Leänh MOVX ñöôïc duøng ñeå truy xuaát boä nhôù döõ lieäu ngoaøi thoâng qua moät boä ñeäm döõ lieäu 16 bit (DPTR), R0 hoaëc R1ñöôïc duøng nhö laø moät thanh ghi troû ñòa chæ neáu ta caàn xöû lyù moät chuoãi döõ lieäu lieân tuïc. - Caùc RAM coù theå giao tieáp vôùi AT89C51 töông töï caùch thöùc nhö EPROM ngoaïi tröø chaân RD cuûa AT89C51 noái vôùi chaân OE (Output Enable) cuûa RAM vaø chaân WR cuûa AT89C51 noái vôùi chaân WR cuûa RAM. Söï noái caùc bus ñòa chæ vaø döõ lieäu töông töï nhö caùch noái cuûa ROM. Port 0 EA\ ALE Port 2 RD WR 89C51 D0 ¸ D7 A0 ¸ A7 A8 ¸ A15 OE WR 74HC373 D Q G RAM Hình 2.5 Truy xuaát boä nhôù döõ lieäu ngoaøi (RAM) Söï giaûi maõ ñòa chæ (Address Decoding): CS CS D0 - D7 OE EPROM A0 ¸ A12 8K Bytes CS C B A G1 G2A G2B 0 1 2 3 4 5 6 7 CS CS OE D0 - D7 WR RAM A0 ¸ A12 8K Bytes CS PSEN RD WR Address Bus (A0 ¸ A15) Data Bus (D0 ¸ D7) Select other ROM/RAM 74HC138 Hình 2.6 Giaûi maõ ñòa chæ (Address Decoding) - Söï giaûi maõ ñòa chæ laø moät yeâu caàu taát yeáu ñeå choïn ROM, RAM … Söï giaûi maõ ñòa chæ ñoái vôùi AT89C51 laø ñeå choïn caùc vuøng nhôù ngoaøi. Neáu caùc IC ROM hoaëc RAM 8K ñöôïc duøng thì caùc bus ñòa chæ phaûi ñöôïc giaûi maõ ñeå choïn caùc IC nhôù naèm trong phaïm vi giôùi haïn 8K: 0000H¸1FFFH, 2000H¸3FFFH, v.v... . - Moät caùch cuï theå, IC giaûi maõ 74HC138 ñöôïc duøng vôùi nhöõng ngoõ ra cuûa noù ñöôïc noái vôùi nhöõng ngoõ vaøo choïn Chip CS (Chip Select) treân nhöõng IC nhôù ROM, RAM … Hình 2.4 cho pheùp keát noái nhieàu ROM vaø RAM. Söï ñeø leân nhau cuûa caùc vuøng nhôù döõ lieäu ngoaøi: - Vì boä nhôù chöông trình laø ROM, neân naûy sinh moät vaán ñeà baát tieän khi phaùt trieån phaàn meàm cho vi ñieàu khieån. Moät nhöôïc ñieåm chung cuûa AT89C51 laø caùc vuøng nhôù döõ lieäu ngoaøi naèm ñeø leân nhau, vì tín hieäu PSEN ñöôïc duøng ñeå ñoïc boä nhôù maõ ngoaøi vaø tín hieäu RD ñöôïc duøng ñeå ñoïc boä nhôù döõ lieäu, neân moät boä nhôù RAM coù theå chöùa caû chöông trình vaø döõ lieäu baèng caùch noái ñöôøng OE cuûa RAMù ñeán ngoõ ra moät coång AND coù hai ngoõ vaøo PSEN vaø RD. Sô ñoà maïch nhö hình sau cho pheùp cho pheùp moät IC RAM coù hai chöùc naêng vöøa laø boä nhôù chöông trình vöøa laø boä nhôù döõ lieäu: RAM WR OE WR RD PSEN Hình 2.7 Xeáp choàng caùc vuøng nhôù (Overlapping the External Code and Data Space) - Vaäy moät chöông trình coù theå ñöôïc taûi vaøo RAM baèng caùch xem noù nhö boä nhôù döõ lieäu vaø thi haønh chöông trình baèng caùch xem noù nhö boä nhôù chöông trình. Hoaït ñoäng Reset : - AT89C51 coù ngoõ vaøo reset RST taùc ñoäng ôû möùc cao trong khoaûng thôøi gian 2 chu kyø xung maùy, sau ñoù xuoáng möùc thaáp ñeå AT89C51 baét ñaàu laøm vieäc. RST coù theå kích baèng tay baèng moät phím nhaán thöôøng hôû, sô ñoà maïch reset nhö sau : RST 10 mF 8.2 KW 100W + 5 V Reset Hình 2.8 Reset baèng tay (Manual Reset) Traïng thaùi cuûa taát caû caùc thanh ghi trong AT89C51 sau khi Reset heä thoáng ñöôïc toùm taét nhö sau: Thanh ghi Noäi dung Ñeám chöông trình PC Thanh ghi tích luõy A Thanh ghi B Thanh ghi thaùi PSW SP DPRT Port 0 ñeán port 3 IP IE Caùc thanh ghi ñònh thôøi SCON SBUF PCON (MHOS) PCON (CMOS) 0000H 00H 00H 00H 07H 0000H FFH XXX0 0000 B 0X0X 0000 B 00H 00H 00H 0XXX XXXXH 0XXX 0000 B Thanh ghi quan troïng nhaát laø thanh ghi boä ñeám chöông trình PC ñöôïc Reset taïi ñòa chæ 0000H. Khi ngoõ vaøo RST xuoáng möùc thaáp, chöông trình luoân baét ñaàu taïi ñòa chæ 0000H cuûa boä nhôù chöông trình. Noäi dung cuûa RAM treân chip khoâng bò thay ñoåi bôûi taùc ñoäng cuûa ngoõ vaøo reset. IV. HOAÏT ÑOÄNG TIMER CUÛA AT89C51: 1. Giôùi Thieäu : Boä ñònh thôøi cuûa Timer laø moät chuoãi caùc Flip Flop ñöôïc chia laøm 2, noù nhaän tín hieäu vaøo laø moät nguoàn xung clock, xung clock ñöôïc ñöa vaøo Flip Flop thöù nhaát vaø ngoõ ra cuûa Flip Flop thöù nhaát laø xung clock cho Flip Flop thöù hai, nghóa laø noù chia taàn soá clock naøy cho 2 vaø cöù tieáp tuïc. Vì moãi taàng keá tieáp chia cho 2, neân Timer n taàng phaûi chia taàn soá clock ngoõ vaøo cho 2n. Ngoõ ra cuûa taàng cuoái cuõng laø clock cuûa Flip Flop traøn Timer hoaëc côø maø noù kieåm tra bôûi phaàn meàm hoaëc sinh ra ngaét. Giaù trò nhò phaân trong caùc Flip Flop cuûa boä Timer coù theå ñöôïc nghó nhö ñeám xung clock hoaëc caùc söï kieän quan troïng. Ví duï Timer 16 bit coù theå ñeám ñeán töø FFFFH sang 0000H. Hoaït ñoäng cuûa Timer ñôn giaûn 3 bit ñöôïc minh hoïa nhö sau : D Q Q0 D Q Q1 D Q Q2 D Q Q3 Flag FF Clock Q0 (LSB) Q1 Q2 (MSB) Count Flag LSB MSB Flag Timer Flip Flops. 0 1 2 3 4 5 6 7 Trong hình treân moãi taàng laø moät FF loaïi D phuû ñònh taùc ñoäng caïnh xuoáng ñöôïc hoaït ñoäng ôû mode chia cho 2 (ngoõ ra Q ñöôïc noái vaøo D). FF côø laø moät boä choát ñôn giaûn loaïi D ñöôïc set bôûi taàng cuoái cuøng trong Timer. Trong bieåu ñoà thôøi gian, taàng ñaàu ñoåi traïng thaùi ôû ½ taàn soá clock, taàng thöù hai ñoåi traïng thaùi ôû taàn soá ¼ taàn soá clock . . . Soá ñeám ñöôïc bieát ôû daïng thaäp phaân vaø ñöôïc kieåm tra laïi deã daøng bôûi vieäc kieåm tra caùc taàng cuûa 3 FF. Ví duï soá ñeám “4” xuaát hieän khi Q2=1, Q1=0, Q0=0 (410=1002). Caùc Timer ñöôïc öùng duïng thöïc teá cho caùc hoaït ñoäng ñònh höôùng. AT89C51 coù 2 boä Timer 16 bit, moãi Timer coù 4 mode hoaït ñoäng. Caùc Timer duøng ñeå ñeám giôø, ñeám caùc söï kieän caàn thieát vaø taïo ra toác ñoä Baud gaén lieàn vôùi hoaït ñoäng Port noái tieáp. Moãi söï ñònh thôøi laø moät Timer 16 bit; do ñoù, taàng cuoái cuøng laø taàng thöù 16 seõ chia cho taàn soá clock vaøo khoaûng 216 = 65.536. Trong caùc öùng duïng ñònh thôøi, 1 Timer ñöôïc laäp trình ñeå traøn ôû moät khoaûng thôøi gian ñeàu ñaën vaø ñöôïc Set côø traøn Timer. Côø ñöôïc duøng ñoàng boä vôùi chöông trình ñeå thöïc hieän moät hoaït ñoäng nhö vieäc ñöa tôùi 1 taàng caùc ngoõ vaøo hoaëc gôûi döõ lieäu ñeán ngoõ ra. Caùc öùng duïng khaùc coù söû duïng vieäc ghi giôø ñeàu ñeàu cuûa Timer ñeå ño thôøi gian ñaõ troâi qua hai traïng thaùi (ví duï ño ñoä roäng xung). Vieäc ñeám moät söï kieän ñöôïc duøng ñeå xaùc ñònh soá laàn xuaát hieän cuûa söï kieän ñoù, töùc thôøi gian troâi qua giöõa caùc söï kieän. Caùc Timer cuûa AT89C51 ñöôïc truy xuaát bôûi vieäc duøng 6 thanh ghi chöùc naêng ñaëc bieät nhö sau : Timer SFR Chöùc Naêng Ñòa Chæ Byte Coù Ñònh Vò Bit TCON Control 88H YES TMOD Mode 89H NO TL0 Timer 0 low-byte 8AH NO TL1 Timer 1 low-byte 8BH NO TH0 Timer 0 high-byte 8CH NO TH1 Timer 1 high-byte 8DH NO Baûng 2.5 Caùc thanh ghi chöùc naêng Timer 2. Caùc Thanh Ghi Ñieàu Khieån Timer : 2.1. Thanh ghi ñieàu khieån cheá ñoä timer TMOD (Timer mode register) : - Thanh ghi mode goàm hai nhoùm 4 bit laø : 4 bit thaáp ñaët Mode hoaït ñoäng cho Timer 0 vaø 4 bit cao ñaët Mode hoaït ñoäng cho Timer 1. 8 bit cuûa thanh ghi TMOD ñöôïc toùm taét nhö sau: Bit Teân Timer Moâ Taû Hoaït Ñoäng 7 GATE 1 Khi GATE = 1, Timer chæ laøm vieäc khi INT1=1 6 C/T 1 Bit cho ñeám söï kieän hay ghi giôø C/T = 1 : Ñeám söï kieän C/T = 0 : Ghi giôø ñeàu ñaën 5 M1 1 Bit choïn mode cuûa Timer 1 4 M0 1 Bit choïn mode cuûa Timer 1 3 GATE 0 Bit coång cuûa Timer 0 2 C/T 0 Bit choïn Counter/Timer cuûa Timer 0 1 M1 0 Bit choïn mode cuûa Timer 0 0 M0 0 Bit choïn mode cuûa Timer 0 Hai bit M0 vaø M1 cuûa TMOD ñeå choïn Mode cho Timer 0 hoaëc Timer 1 nhö sau : M1 M0 Cheá Ñoä Moâ taû Hoaït Ñoäng 0 0 0 Mode Timer 13 bit (mode 8048) 0 1 1 Mode Timer 16 bit 1 0 2 Mode töï ñoäng naïp 8 bit 1 1 3 Mode Timer taùch ra : Timer 0 : TL0 laø Timer 8 bit ñöôïc ñieàu khieån bôûi caùc bit cuûa Timer 0. TH0 töông töï nhöng ñöôïc ñieàu khieån bôûi caùc bit cuûa mode Timer 1. Timer 1 : Ñöôïc ngöøng laïi. - TMOD khoâng coù bit ñònh vò, noù thöôøng ñöôïc Load moät laàn bôûi phaàn meàm ôû ñaàu chöông trình ñeå khôûi ñoäng Mode Timer. Sau ñoù söï ñònh giôø coù theå döøng laïi, ñöôïc khôûi ñoäng laïi nhö theá bôûi söï truy xuaát caùc thanh ghi chöùc naêng ñaëc bieät cuûa Timer khaùc. 2.2. Thanh ghi ñieàu khieån timer TCON (timer control register): - Thanh ghi ñieàu khieån bao goàm caùc bit traïng thaùi vaø caùc bit ñieàu khieån bôûi Timer 0 vaø Timer 1. Thanh ghi TCON coù bit ñònh vò. Hoaït ñoäng cuûa töøng bit ñöôïc toùm taét nhö sau : Bit Kyù Hieäu Ñòa Chæ Bit Moâ Taû Hoaït Ñoäng TCON.7 TF1 8FH Côø traøn Timer 1 ñöôïc set bôûi phaàn cöùng ôû söï traøn, ñöôïc xoùa bôûi phaàn meàm hoaëc bôûi phaàn cöùng khi caùc vectô xöû lí ñeán thuû tuïc phuïc vuï ngaét ISR TCON.6 TR1 8EH Bit ñieàu khieån chaïy Timer 1 ñöôïc set hoaëc xoùa bôûi phaàn meàm ñeå chaïy hoaëc ngöng chaïy Timer. TCON.5 TF0 8DH Côø traøn Timer 0(hoaït ñoäng töông töï TF1) TCON.4 TR0 8CH Bit ñieàu khieån chaïy Timer 0 (gioáng TR1) TCON.3 IE1 8BH Côø kieåu ngaét 1 ngoaøi. Khi caïnh xuoáng xuaát hieän treân INT1 thì IE1 ñöôïc xoùa bôûi phaàn meàm hoaëc phaàn cöùng khi CPU ñònh höôùng ñeán thuû tuïc phuïc vuï ngaét ngoaøi. TCON.2 IT1 8AH Côø kieåu ngaét 1 ngoaøi ñöôïc set hoaëc xoùa baèng phaán meàm bôûi caïnh kích hoaït bôûi söï ngaét ngoaøi. TCON.1 IE0 89H Côø caïnh ngaét 0 ngoaøi TCON IT0 88H Côø kieåu ngaét 0 ngoaøi. Baûng 2.6 Caùc bits cuûa thanh ghi TCON 2.3. Caùc nguoàn xung nhòp cho timer (clock sources): - Coù hai nguoàn xung clock coù theå ñeám giôø laø söï ñònh giôø beân trong vaø söï ñeám söï kieän beân ngoaøi. Bit C/T trong TMOD cho pheùp choïn 1 trong 2 khi Timer ñöôïc khôûi ñoäng. Crystal On Chip Oscillator ¸12 C/T T0 or T1 pin Timer Clock 0 = Up (Internal Timing) 1 = Down (Event Counting) Hình 2.9 Nguoàn taïo xung nhòp . ¨ Ñònh khoaûng thôøi gian (Interval Timing): - Neáu bit C/T = 0 thì hoaït ñoäng cuûa Timer lieân tuïc ñöôïc choïn vaøo boä Timer ñöôïc ghi giôø töø dao ñoäng treân Chip. Moät boä chia 12 ñöôïc theâm vaøo ñeå giaûm taàn soá clock ñeán 1 giaù trò phuø hôïp vôùi caùc öùng duïng. Caùc thanh ghi TLx vaø THx taêng ôû toác ñoä 1/12 laàn taàn soá dao ñoäng treân Chip. Neáu duøng thaïch anh 12MHz thì seõ ñöa ñeán toác ñoä clock 1MHz. - Caùc söï traøn Timer sinh ra sau moät con soá coá ñònh cuûa nhöõng xung clock, noù phuï thuoäc vaøo giaù trò khôûi taïo ñöôïc Load vaøo caùc thanh ghi THx vaø TLx. ¨ Coâng Taùc ñeám caùc söï kieän (Event Counting) : - Neáu bit C/T = 1 thì boä Timer ñöôïc ghi giôø töø nguoàn beân ngoaøi trong nhieàu öùng duïng, nguoàn beân ngoaøi naøy cung caáp 1 söï ñònh giôø vôùi 1 xung treân söï xaûy ra cuûa söï kieän. Söï ñònh giôø laø söï ñeám söï kieän. Con soá söï kieän ñöôïc xaùc ñònh trong phaàn meàm bôûi vieäc ñoïc caùc thanh ghi Timer : TLx/THx, bôûi vì giaù trò 16 bit trong caùc thanh naøy taêng leân cho moãi söï kieän. - Nguoàn xung clock beân ngoaøi ñöa vaøo chaân P3.4 laø ngoõ nhaäp cuûa xung clock bôûi Timer 0 (T0) vaø P3.5 laø ngoõ nhaäp cuûa xung clock bôûi Timer 1 (T1). - Trong caùc öùng duïng ñeám, caùc thanh ghi Timer ñöôïc taêng trong ñaùp öùng cuûa söï chuyeån traïng thaùi töø 1 sang 0 ôû ngoõ nhaäp Tx. Ngoõ nhaäp beân ngoaøi ñöôïc thöû trong suoát S5P2 cuûa moïi chu kyø maùy. Do ñoù khi ngoõ nhaäp ñöa tôùi möùc cao trong moät chu kyø vaø möùc thaáp trong moät chu kyø keá tieáp thì boä ñeám taêng leân moät. Giaù trò môùi xuaát hieän trong caùc thanh ghi Timer trong suoát S5P1 cuûa chu kyø theo sau moät söï chuyeån ñoåi. Bôûi vì noù chieám 2 chu kyø maùy (2ms) ñeå nhaän ra söï chuyeån ñoåi töø 1 sang 0, neân taàn soá beân ngoaøi lôùn nhaát laø 500KHz neáu dao ñoäng thaïch anh 12 MHz. 2.4. Vieäc baét ñaàu, keát thuùc vaø ñieàu khieån caùc timer (Starting, Stopping and Controlling the Timer) : - Bit TRx trong thanh ghi coù bit ñònh vò TCON ñöôïc ñieàu khieån bôûi phaàn meàm ñeå baét ñaàu hoaëc keát thuùc caùc Timer. Ñeå baéêt ñaàu caùc Timer ta Set bit TRx vaø ñeå keát thuùc Timer ta Clear TRx. Ví duï Timer 0 ñöôïc baét ñaàu bôûi leänh SETB TR0 vaø ñöôïc keát thuùc bôûi leänh CLR TR0 (bit Gate= 0). Bit TRx bò xoùa sau söï Reset heä thoáng. Do ñoù maëc ñònh, caùc Timer bò caám sau khi Reset heä thoáng. - Theâm phöông phaùp nöõa ñeå ñieàu khieån caùc Timer laø duøng bit GATE trong thanh ghi TMOD vaø ngoõ nhaäp beân ngoaøi INTx. Ñieàu naøy ñöôïc duøng ñeå ño caùc ñoä roäng xung. Giaû söû xung ñöa vaøo chaân INT0 ta khôûi ñoäng Timer 0 cho mode 1 laø mode Timer 16 bit vôùi TL0/TH0 = 0000H, GATE = 1, TR0 = 1. Nhö vaäy khi INT0 = 1 thì Timer “ñöôïc môû coång” vaø ghi giôø vôùi toác ñoä cuûa taàn soá 1MHz. Khi INT0 xuoáng thaáp thì Timer “ñoùng coång” vaø khoaûng thôøi gian cuûa xung tính baèng ms laø söï ñeám ñöôïc trong thanh ghi TL0/TH 0. INTO (P3.2) On Chip Oscillator ¸ 12 TL0 TH0 TF C/T TR0 GATE 12 MHz T0 (P3.4) TF1 0 : (leân) 1 : (xuoáng) Hình 2.10 Timer-0 Hoaït Ñoäng ÔÛ Cheá Ñoä 1. 2.5. Khôûi ñoäng vaø truy xuaát caùc thanh ghi timer: - Caùc Timer ñöôïc khôûi ñoäng 1 laàn ôû ñaàu chöông trình ñeå ñaët Mode hoaït ñoäng cho chuùng. Sau ñoù trong chöông trình caùc Timer ñöôïc baét ñaàu, ñöôïc xoùa, caùc thanh ghi Timer ñöôïc ñoïc vaø caäp nhaät… theo yeâu caàu cuûa töøng öùng duïng cuï theå. - Mode Timer TMOD laø thanh ghi ñaàu tieân ñöôïc khôûi gaùn, bôûi vì thoâng u ñoù ta coù theå ñaët Mode hoaït ñoäng cho caùc Timer. Ví duï khôûi ñoäng cho Timer 1 hoaït ñoäng ôû Mode 1 (Mode Timer 16bit) vaø ñöôïc ghi giôø baèng dao ñoäng treân Chip ta duøng leänh : MOV TMOD, # 00001000B. Trong leänh naøy M1 = 0, M0 = 1 ñeå vaøo Mode 1 vaø C/T = 0, GATE = 0 ñeå cho pheùp ghi giôø beân trong ñoàng thôøi xoùa caùc bit Mode cuûa Timer 0. Sau leänh treân Timer vaãn chöa ñeám giôø, noù chæ baét ñaàu ñeám giôø khi Set bit ñieààu khieåân chaïy TR1 cuûa noù. - Neáu ta khoâng khôûi gaùn giaù trò ñaàu cho caùc thanh ghi TLx/THx thì Timer seõ baét ñaàu ñeám töø 0000H leân vaø khi töø FFFFH sang 0000H, noù seõ baét ñaàu traøn, TFx=1, roài tieáp tuïc ñeám töø 0000H leân tieáp . . . - Neáu ta khôûi gaùn giaù trò ñaàu cho TLx/THx, thì Timer seõ baét ñaàu ñeám töø giaù trò khôûi gaùn ñoù leân nhöng khi traøn töø FFFFH sang 0000H vaø laïi tieáp tuïc ñeám töø 0000H leân. - Chuù yù raèng côø traøn TFx töï ñoäng ñöôïc Set bôûi phaàn cöùng sau moãi söï traøn vaø seõ ñöôïc xoùa bôûi phaàn meàm. Chính vì vaäy ta coù theå laäp trình chôø sau moãi laàn traøn ta seõ xoùa côø TFx vaø quay voøng laëp khôûi gaùn cho TLx/THx ñeå Timer luoân luoân baét ñaàu ñeám töø giaù trò khôûi gaùn leân theo yù ta mong muoán. - Ñaëc bieät nhöõng söï khôûi gaùn nhoû hôn 256 ms, ta seõ goïi Mode Timer töï ñoäng naïp 8 bit (Mode 2). Sau khi khôûi gaùn giaù trò ñaàu vaøo THx, ta Set bit TRx thì Timer seõ baét ñaàu ñeám giaù trò khôûi gaùn vaø khi traøn töø FFH sang 00H trong TLx, côø TFx töï ñoäng ñöôïc Set; ñoàng thôøi giaù trò khôûi gaùn maø ta ñaõ gaùn cho Thx ñöôïc naïp töï ñoäng vaøo TLx vaø Timer laïi ñöôïc ñeám töø giaù trò khôûi gaùn naøy leân. Noùi caùch khaùc, sau moãi traøn ta khoâng caàn khôûi gaùn laïi cho caùc thanh ghi Timer maø chuùng vaãn ñeám ñöôïc laïi töø giaù trò ban ñaàu. 3. Caùc Cheá Ñoä Timer vaø Côø Traøn (Timer Modes & Overflow): - AT89C51 coù 2ø Timer laø Timer 0 vaø timer 1. Ta duøng kyù hieäu TLx vaø THx ñeå chæ 2 thanh ghi Byte thaáp vaø Byte cao cuûa Timer 0 hoaëc Timer 1. 3.1. Mode Timer 13 bit (MODE 0) : TLx (5 bit) THx (8 bit) TFx Timer Clock Xung nhòp Timer Côø Baùo Traøn - Mode 0 laø mode Timer 13 bit, trong ñoù Byte cao cuûa Timer (THx) ñöôïc ñaët thaáp vaø 5 bit troïng soá thaáp nhaát cuûa Byte thaáp Timer (TLx) ñaët cao ñeå hôïp thaønh Timer 13 bit. 3 bit cao cuûa TLx khoâng duøng. 3.2. Mode Timer 16 bit (MODE 1) : TLx (8 bit) THx (8 bit) TFx Xung Nhòp Timer Côø Baùo Traøn - Mode 1 laø Mode Timer 16 bit, töông töï nhö Mode 0 ngoaïi tröø Timer naøy hoaït ñoäng nhö moät Timer ñaày ñuû 16 bit, xung clock ñöôïc duøng vôùi söï keát hôïp caùc thanh ghi cao vaø thaáp (TLx, THx). Khi xung clock ñöôïc nhaän vaøo, boä ñeám Timer taêng leân 0000H, 0001H, 0002H, …, vaø moät söï traøn seõ xuaát hieän khi coù söï chuyeån treân boä ñeám Timer töø FFFH sang 0000H vaø seõ Set côø traøn Timer, sau ñoù Timer ñeám tieáp. - Côø traøn laø bit TFx trong thanh ghi TCON maø noù seõ ñöôïc ñoïc hoaëc ghi bôûi phaàn meàm. - Bit coù troïng soá lôùn nhaát (MSB) cuûa giaù trò trong thanh ghi Timer laø bit 7 cuûa THx vaø bit coù troïng soá thaáp nhaát (LSB) laø bit 0 cuûa TLx. Bit LSB ñoåi traïng thaùi ôû taàn soá clock vaøo ñöôïc chia 216 = 65.536 . - Caùc thanh ghi Timer TLx vaø THx coù theå ñöôïc ñoïc hoaëc ghi taïi baát kyø thôøi ñieåm naøo bôûi phaàn meàm. 3.3. Mode töï ñoäng naïp 8 bit (MODE 2) : Xung Nhòp Timer TL x (8 bit) TFx TH x (8 bit) Reload Côø Baùo Traøn - Mode 2 laø Mode töï ñoäng naïp 8 bit, Byte thaáp TLx cuûa Timer hoaït ñoäng nhö moät Timer 8 bit trong khi Byte cao THx cuûa Timer giöõ giaù trò Reload. Khi boä ñeám traøn töø FFH sang 00H, khoâng chæ côø traøn ñöôïc Set maø giaù trò trong THx cuõng ñöôïc naïp vaøo TLx : Boä ñeám ñöôïc tieáp tuïc töø giaù trò naøy leân ñeán söï chuyeån traïng thaùi töø FFH sang 00H keá tieáp vaø cöù theá tieáp tuïc. Mode naøy thì phuø hôïp bôûi vì caùc söï traøn xuaát hieän cuï theå maø moãi luùc nghæ thanh ghi TMOD vaø THx ñöôïc khôûi ñoäng. 3.4 Mode Timer taùch ra (MODE 3) : TL1 (8 bit) TH1 (8 bit) TL1 (8 bit) TH0 (8 bit) TF0 Xung Nhòp Timer ( Nguoàn xung ngoaøi) Xung Nhòp Timer Côø Baùo Traøn TF1 1/12 Fosc - Mode 3 laø mode Timer taùch ra vaø laø söï khaùc bieät cho moãi Timer. - Timer 0 ôû mode 3 ñöôïc chia laø 2 timer 8 bit. TL0 vaø TH0 hoaït ñoäng nhö nhöõng Timer rieâng leû vôùi söï traøn seõ set caùc bit TL0 vaø TF1 töông öùng. - Timer 1 bò döøng laïi ôû mode 3, nhöng coù theå ñöôïc khôûi ñoäng bôûi vieäc ngaét noù vaøo moät trong caùc mode khaùc. Chæ coù nhöôïc ñieåm laø côø traøn TF1 cuûa Timer 1 khoâng bò aûnh höôûng bôûi caùc söï traøn cuûa Timer 1 bôûi vì TF1 ñöôïc noái vôùi TH0. - Mode 3 cung caáp 1 Timer ngoaïi 8 bit laø Timer thöù ba cuûa AT89C51. Khi vaøo Timer 0 ôû mode 3, Timer coù theå hoaït ñoäng hoaëc taét bôûi söï ngaét noù ra ngoaøi vaø vaøo trong mode cuûa chính noù hoaëc coù theå ñöôïc duøng bôûi Port noái tieáp nhö laø moät maùy phaùt toác ñoä Baud, hoaëc noù coù theå duøng trong höôùng naøo ñoù maø khoâng söû duïng Interrupt. V. HOAÏT ÑOÄNG PORT NOÁI TIEÁP : 1. Giôùi thieäu: AT89C51 coù moät Port noái tieáp trong chip coù theå hoaït ñoäng ôû nhieàu cheá ñoä treân moät daõy taàn soá roäng. Chöùc naêng chuû yeáu 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. 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 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) ôû ñiaï chæ 99H nhaän döõ lieäu ñeå thu hoaëc phaùt. Thanh ghi ñieàu khieån Port noái tieáp (SCON) ôû ñiaï chæ 98H laø thanh ghi coù ñòa chæ hoùa töøng 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å laäp trình ñeå taïo ngaét. 2. Caùc thanh ghi vaø caùc cheá ñoä hoaït ñoäng cuûa port noái tieáp: 2.1. Thanh ghi ñieàu khieån port noái tieáp: Toùm taét thanh ghi cheá ñoä Port noái tieáp : SM0 SM1 Cheá ñoä Moâ taû Toác ñoä baud 0 0 1 1 0 1 0 1 0 1 2 3 Thanh ghi dòch UART 8 bit UART 9 bit UART 9 bit Coá ñònh (Fosc /12 ) Thay ñoåi ( ñaët baèng timer ) Coá ñònh (Fosc /12 hoaëc Fosc/64 ) Thay ñoåi ( ñaët baèng timer ) Baûng 2.7 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ø côø ngaét phaùt (TP=1) ñeå boä phaùt saún saøng hoaït ñoäng. 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ä hoaït ñoäng cuûa Port noái tieáp : Bit Kyù hieäu Ñòa chæ Bit Moâ taû SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0 SM0 SM1 SM3 REN TB8 RB8 TI RI 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H Bit 0 cuûa cheá ñoä port noái tieáp Bit 1 cuûa cheá ñoä port noái tieáp Bit 2 cuûa cheá ñoä port noái tieáp . Cho pheùp truyeàn thoâng 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 Cho pheùp boä thu phaûi ñöôïc ñaët leân 1 ñeå thu caùc kyù töï Bit 8 phaùt, bit thöù 9 ñöôïc phaùt trong cheá ñoä 2 vaø 3, ñöôïc ñaët vaø xoùa baèng phaàn meàm. B it 8 thu, bit thöù 9 thu ñöôïc Côø ngaét phaùt. Ñaët leân 1 khi keát thuùc phaùt kyù töï, ñöôïc xoùa baèng phaàn meàm 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.8 Toùm taét caùc bits cuûa thanh ghi SCON 2.2. Cheá ñoä 0 (Thanh ghi dòch ñôn 8 bit): Moät chu kyø maùy S1 S2 S3 S4 S5 S6 OSC P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 (TXD) Data Out RXD Shift Clock S6P1 S3P1 Shift Clock Data Out Bit Data Hôïp Leä ALE WRITE to SBUF Phoùng to ALE Hình 2.11 Giaûn ñoà thôøi gian Port noái tieáp phaùt ôû cheá ñoä 0 Cheá ñoä 0 ñöôïc choïn baèng caùc thanh ghi caùc bit 0 vaøo SM1 vaø SM2 cuûa SCON, ñöa Port noái tieáp vaøo cheá ñoä thanh ghi dòch 8bit. Döõ lieäu noái tieáp vaøo vaø ra qua RXD; vaø TXD xuaát xung nhòp dòch, 8 bit ñöôïc phaùt hoaëc thu vôùi bit ñaàu tieân laø LSB. Toác ñoä baud coá ñònh ôû 1/12 taàn soá dao ñoäng treân chip. Vieäc phaùt ñi ñöôïc khôûi ñoäng baèng baát cöù leänh naøo ghi döõ lieäu vaøo SBUF. Döõ lieäu dòch ra ngoaøi treân ñöôøng RXD (P3.0) vôùi caùc xung nhòp ñöôïc göûi ra ñöôøng TXD(P3.1). Moãi bit phaùt ñi hôïp leä (treân RXD) trong moät chu kyø maùy, tín hieäu xung nhaäp xuoáng thaáp ôû S3P1 vaø trôû veà cao ôû S6P1. Vieäc thu ñöôïc khôûi ñoäng khi cho pheùp boä thu (REN) laø 1 vaø bit ngaét thu (RI) laø 0. Quy taéc toång quaùt laø ñaët REN khi baét ñaàu chöông trình ñeå khôûi ñoäng Port noái tieáp, roài xoaù RI ñeå baét ñaàu nhaän döõ lieäu. Khi RI bò xoaù, caùc xung nhòp ñöôïc ñöa ra ñöôøng TXD, baét ñaàu chu kyø maùy keá tieáp vaø döõ lieäu theo xung nhòp ôû ñöôøng RXD. Laáy xung nhòp cho döõ lieäu vaøo port noái tieáp xaûy ra ôû caïnh ñöôøng cuûa TXD. Moät chu kyø maùy Döõ Lieäu Nhaäp (RXD) Clock Dòch (TXD) D0 D1 D2 D3 D4 D5 D6 D7 Hình 2. 12 Giaûn ñoà thôøi gian thu noái tieáp ôû cheá ñoä 0 2.3. Cheá ñoä 1 (UART 8 bit vôùi toác ñoä baud thay ñoåi ñöôïc): ÔÛ cheá ñoä 1, Port noái tieáp cuûa AT89C51 laøm vieäc nhö moät UART 8 bit vôùi toác ñoä baud thay ñoåi ñöôïc. Moät UART (Boä thu phaùt ñoàng boä vaïn naêng) laø moät duïng cuï thu phaùt döõ lieäu noái tieáp vôùi moãi kyù töï döõ lieäu ñi tröôùc laø bit start ôû möùc thaáp vaø theo sau bit stop ôû möùc cao. Ñoâi khi xen theâm bit kieåm tra chaün leû giöõa bit döõ lieäu cuoái cuøng vaø bit stop. Hoaït ñoäng chuû yeáu cuûa UART laø chuyeån ñoåi song song sang noái tieáp vôùi döõ lieäu nhaäp. ÔÛ cheá ñoä 1, 10 bit ñöôïc phaùt treân TXD hoaëc thu treân RXD. Nhöõng bit ñoù laø : 1 bit start (luoân luoân laø 0), 8 bit döõ lieäu (LSB ñaàu tieân) vaø 1 bit stop (luoân luoân laø 1). Vôùi hoaït ñoäng thu, bit stop ñöôïc ñöa vaøo RB8 trong SCON. Trong AT89C51 cheá ñoä baud ñöôïc ñaët baèng toác ñoä baùo traøn cuûa timer 1. Taïo xung nhòp vaø ñoàng boä hoùa caùc thanh ghi dòch cuûa port noái tieáp trong caùc cheá ñoä 1,2 vaø 3 ñöôïc thieát laäp baèng boä ñeám 4 bit chia cho 16, ngoõ ra laø xung nhòp toác ñoä baud. Ngoõ vaøo cuûa boä ñeám naøy ñöôïc choïn qua phaàn meàm . Toác ñoä baud ¸ 16 Xung nhòp toác ñoä baud Thanh ghi dòch port noái tieáp Hình 2.13 xung nhòp Port noái tieáp 2.4. 9 bit vôùi toác ñoä baud coá ñònh (cheá ñoä 2): Khi SM1=1 vaø SM0=0, coång noái tieáp laøm vieäc ôû cheá ñoä 2, nhö moät UART 9bit coù toác ñoä baud coá ñònh, 11 bit seõ ñöôïc phaùt hoaëc thu:1bit start, 8 bit data, 1 bit data thöù 9 coù theå ñöôïc laäp trình vaø 1 bit stop. Khi phaùt bit thöù 9 laø baát cöù gì ñaõ ñöôïc ñöa vaøo TB8 trong SCON (coù theå laø bit Parity) .Khi thu bit thöù 9 thu ñöôïc seõ ôû trong RB8. Toác ñoä baud ôû cheá ñoä 2 laø 1/32 hoaëc 1/16 taàn soá dao ñoäng treân chip. 2.5. UART 9 bit vôùi toác ñoä baud thay ñoåi ñöôïc (cheá ñoä 3): Cheá ñoä naøy gioáng nhö ôû cheá ñoä 2 ngoaïi tröø toác ñoä baud coù theå laäp trình ñöôïc vaø ñöôïc cung caáp bôûi Timer.Thaät ra caùc cheá ñoä 1, 2, 3 raát gioáng nhau. Caùi khaùc bieät laø ôû toác ñoä baud (coá ñònh trong cheá ñoä 2, thay ñoåi trong cheá ñoä 1 vaø 3) vaø ôû soá bit data (8 bit trong cheá ñoä 1,9 trong cheá ñoä 2 vaø 3). 2.6. 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 1baè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 ; ñaët REN leân 1 Hoaëc leänh MOV SCON,#XXX1XXXXB ; ñaët REN leân 1 hoaëc xoaù caùc bit khaùc treân SCON khi caàn (caùc X phaûi laø 0 hoaëc 1 ñeå ñaët 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 ôû RB8. 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 ñ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 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õ nhaän xeùt ôû chöông tröôùc, bit P trong töø traïng thaùi chöông trình (PSW) ñöôïc ñaët leân 1 hoaëc bò xoaù 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 trong truyeàn thoâng noái tieáp duøng AT89C51/8051. Caû hai bit ñöôïc ñaët leân 1 baèng phaàn cöùng, nhöng phaûi ñöôïc xoaù baèng phaàn meàm. 2.7. 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 nhöng cuõng coù theå söû duïng nguoàn xung nhòp khaùc. ¸ 12 ¸ 64 ¸ 32 b. Cheá ñoä 2 Dao ñoäng Xung nhòp treân chip toác ñoä baud a. Cheá ñoä 0 Xung nhòp toác ñoä baud SMOD=0 Dao ñoäng treân chip SMOD=1 SMOD=0 ¸ 32 ¸ 16 Xung nhòp toác ñoä baud Dao ñoäng SMOD=1 treân chip c. Cheá ñoä 1 vaø 3 Hinh 2.14 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ä 2 laø taàn soá boä dao ñoäng chia cho 64, toác ñoä baud cuõng bò 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 1 laøm gaáp ñoâi toác ñoä baud trong caùc 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 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 (hoaëc 16 neáu SMOD =1 ) tröôùc khi cung caáp toác ñoä xung nhòp cho port noái tieáp. 3. Toå chöùc ngaét trong AT89C51: Vi Ñieàu Khieån coù 5 nguoàn ngaét : 2 nguoàn ngaét ngoaøi,2 ngaét timer vaø 1 ngaét Port noái tieáp, taát caû caùc nguoàn ngaét bò caám sau khi reset heä thoáng vaø cho pheùp bôûi phaàn meàm 3.1.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 thoâng qua thanh ghi chöùc naêng ñaëc bieät coù caùc bit ñöôïc ñòa chæ hoùa IE (Interrupt Enable) taïi ñòa chæ 0A8H. BIT Kyù Hieäu Ñòa Chæ Bit Moâ Taû IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA EA ET2 ES ET1 EX1 ET0 EX0 AFH AEH ADH ACH ABH AAH A9H A8H Global Enable/Disable Undefined Enable Timer 2 Interrupt (8052) Enable Serial Port Interrupt Enable Timer 1 Interrupt Enable External 1 Interrupt Enable Timer 0 Interrupt Enable External 0 Interrupt Baûng 2.9 Caáu truùc thanh ghi IE 3.2. Vector Ngaét : Khi ngaét ñöôïc chaáp nhaän giaù trò ñöôïc ñöa vaøo PC goïi laø vector ngaét : Nguoàn Ngaét Côø Ngaét Ñòa Chæ Vector Ngaét System Reset External 0 Timer 0 External 1 Timer 1 Serial Port Timer 2 RST IE0 TF0 IE1 TF1 RI OR TI TF2 OR EXF2 0000 H 0003 H 000B H 0013 H 001B H 0023 H 002B H Baûng 2.10 Caùc nguoàn ngaét vaø vector ngaét töông öùng 3.3. Ngaét Port noái Tieáp : Ngaét Port noái tieáp xaûy ra khi caû 2 côø ngaét truyeàn (TI) hoaëc côø ngaét nhaän (RI) ñöôïc ñaët. Ngaét truyeàn xaûy ra khi bit cuoái cuøng trong SBUF truyeàn xong töùc laø luùc naøy thanh ghi SBUF roãng .Ngaét nhaän xaûy ra khi SBUF ñaõ hoaøn thaønh vieäc nhaän vaø ñang ñôïi ñeå ñoïc töùc laø luùc naøy thanh ghi SBUF ñaày. Caû hai côø ngaét naøy ñöôïc ñaêt bôûi phaàn cöùng vaø xoùa baèng phaàn meàm. VI. TOÙM TAÉT TAÄP LEÄNH CUÛA AT89C51 : - Caùc chöông trình ñöôïc caáu taïo töø nhieàu leänh, chuùng ñöôïc xaây döïng logic, söï noái tieáp cuûa caùc leänh ñöôïc nghó ra moät caùch hieäu quaû vaø nhanh, keát quaû cuûa chöông trình khaû quan. - Taäp leänh hoï MSC-51 ñöôïc söï kieåm tra cuûa caùc mode ñònh vò vaø caùc leänh cuûa chuùng coù caùc Opcode 8 bit. Ñieàu naøy cung caáp khaû naêng 28= 256 leänh ñöôïc thi haønh vaø moät leänh khoâng ñöôïc ñònh nghóa. Vaøi leänh coù 1 hoaëc 2 byte bôûi döõ lieäu hoaëc ñòa chæ theâm vaøo Opcode. Trong toaøn boä caùc leänh coù 139 leänh 1 byte, 92 leänh 2 byte vaø 24 leänh 3 byte. 1. Caùc cheá ñoä ñònh vò ñòa chæ (addressing mode): - Caùc mode ñònh vò laø moät boä phaän thoáng nhaát cuûa taäp leänh. Chuùng cho pheùp ñònh roõ nguoàn hoaëc nôi gôûi tôùi cuûa döõ lieäu ôû caùc ñöôøng khaùc nhau tuøy thuoäc vaøo traïng thaùi cuûa ngöôøi laäp trình. AT89C51 coù 8 mode ñònh vò ñöôïc duøng nhö sau : Thanh ghi. Tröïc tieáp. Giaùn tieáp. Töùc thôøi. Töông ñoái. Tuyeät ñoái. Daøi. Ñònh vò. 1.1 Söï ñònh vò thanh ghi (Register Addressing): - Coù 4 daõy thanh ghi 32 byte ñaàu tieân cuûa RAM döõ lieäu treân Chip ñòa chæ 00H ¸ 1FH, nhöng taïi moät thôøi ñieåm chæ coù moät daõy hoaït ñoäng caùc bit PSW3, PSW4 cuûa töø traïng thaùi chöông trình seõ quyeát ñònh daõy naøo hoaït ñoäng. - Caùc leänh ñeå ñònh vò thanh ghi ñöôïc ghi maät maõ baèng caùch duøng bit troïng soá thaáp nhaát cuûa Opcode leänh ñeå chæ moät thanh ghi trong vuøng ñòa chæ theo logic naøy. - Nhö vaäy 1 maõ chöùc naêng vaø ñòa chæ hoaït ñoäng coù theå ñöôïc keát hôïp ñeå taïo thaønh moät leänh ngaén 1 byte nhö sau: Opcode n n n Ñònh Vò Ñòa Chæ Thanh Ghi - Moät vaøi leänh duøng cuï theå cho 1 thanh ghi naøo ñoù nhö thanh ghi A, DPTR … maõ Opcode töï noù cho bieát thanh ghi vì caùc bit ñòa chæ khoâng caàn bieát ñeán. 1.2 Söï ñònh ñòa chæ tröïc tieáp (Direct Addressing): - Söï ñònh ñòa chæ tröïc tieáp coù theå truy xuaát baát kyø giaù trò naøo treân Chip hoaëc thanh ghi phaàn cöùng treân Chip. Moät byte ñòa chæ tröïc tieáp ñöôïc ñöa vaøo Opcode ñeå ñònh roõ vò trí ñöôïc duøng nhö sau: Opcode Direct Addressing - Tuøy thuoäc caùc bit baäc cao cuûa ñòa chæ tröïc tieáp maø moät trong 2 vuøng nhôù ñöôïc choïn. Khi bit 7 = 0, thì ñòa chæ tröïc tieáp ôû trong khoaûng 0¸127 (00H¸7FH) vaø 128 vò trí nhôù thaáp cuûa RAM treân Chip ñöôïc choïn. - Taát caû caùc Port I/O, caùc thanh ghi chöùc naêng ñaëc bieät, thanh ghi ñieàu khieån hoaëc thanh ghi traïng thaùi bao giôø cuõng ñöôïc quy ñònh caùc ñòa chæ trong khoaûng 128¸255 (80¸FFH). Khi byte ñòa chæ tröïc tieáp naèm trong giôùi haïn naøy (öùng vôùi bit 7 = 1) thì thanh ghi chöùc naêng ñaëc bieät ñöôïc truy xuaát. Ví duï Port 0 vaø Port 1 ñöôïc quy ñònh ñòa chæ tröïc tieáp laø 80H vaø 90H, P0, P1 laø daïng thöùc ruùt goïn thuaät nhôù cuûa Port, thì söï bieán thieân cho pheùp thay theá vaø hieåu daïng thöùc ruùt goïn thuaät nhôù cuûa chuùng. Chaún haïn leänh: MOV P1, A Ü söï bieân dòch seõ xaùc ñònh ñòa chæ tröïc tieáp cuûa Port 1 laø 90H ñaët vaøo hai byte cuûa leänh (byte 1 cuûa port 0). 1.3 Söï ñònh vò ñòa chæ giaùn tieáp (Indirect Addressing): - Söï ñònh ñòa chæ giaùn tieáp ñöôïc töôïng tröng bôûi kyù hieäu @ ñöôïc ñaët tröôùc R0, R1 hay DPTR. R0 vaø R1 coù theå hoaït ñoäng nhö moät thanh ghi con troû maø noäi dung cuûa noù cho bieát moät ñòa chæ trong RAM noäi ôû nôi maø döõ lieäu ñöôïc ghi hoaëc ñöôïc ñoïc. Bit coù troïng soá nhoû nhaát cuûa Opcode leänh seõ xaùc ñònh R0 hay R1 ñöôïc duøng con troû Pointer. i Opcode 1.4. Söï ñònh ñòa chæ töùc thôøi (Immediate Addressing): - Söï ñònh ñòa chæ töùc thôøi ñöôïc töôïng tröng bôûi kyù hieäu # ñöôïc ñöùng tröôùc moät haèng soá, 1 bieán kyù hieäu hoaëc moät bieåu thöùc soá hoïc ñöôïc söû duïng bôûi caùc haèng, caùc kyù hieäu, caùc hoaït ñoäng do ngöôøi ñieàu khieån. Trình bieân dòch tính toaùn giaù trò vaø thay theá döõ lieäu töùc thôøi. Byte leänh theâm voâ chöùa trò soá döõ lieäu töùc thôøi nhö sau: Opcode Immediate Data 1.5 Söï ñònh ñòa chæ töông ñoái: - Söï ñònh ñòa chæ töông ñoái chæ söû duïng vôùi nhöõng leänh nhaûy naøo ñoù. Moät ñòa chæ töông ñoái (hoaëc Offset) laø moät giaù trò 8 bit maø noù ñöôïc coäng vaøo boä ñeám chöông trình PC ñeå taïo thaønh ñòa chæ moät leänh tieáp theo ñöôïc thöïc thi. Phaïm vi cuûa söï nhaûy naèm trong khoaûng -128 ¸ 127. Offset töông ñoái ñöôïc gaén vaøo leänh nhö moät byte theâm vaøo nhö sau: Opcode Relative Offset - Nhöõng nôi nhaûy ñeán thöôøng ñöôïc chæ roõ bôûi caùc nhaõn vaø trình bieân dòch xaùc ñònh Offset Relative cho phuø hôïp. - Söï ñònh vò töông ñoái ñem laïi thuaän lôïi cho vieäc cung caáp maõ vò trí ñoäc laäp, nhöng baát lôïi laø chæ nhaûy ngaén trong phaïm vi -128¸127 byte. 1.6 Söï ñònh ñòa chæ tuyeät ñoái (Absolute Addressing): - Söï ñònh ñòa chæ tuyeät ñoái ñöôïc duøng vôùi caùc leänh ACALL vaø AJMP. Caùc leänh 2 byte cho pheùp phaân chia trong trang 2K ñang löu haønh cuûa boä nhôù maõ cuûa vieäc cung caáp 11 bit thaáp ñeå xaùc ñònh ñòa chæ trong trang 2K (A0¸A10 goàm A10¸A8 trong Opcode vaø A7¸A0 trong byte)vaø 5 bit cao ñeå choïn trang 2K (5 bit cao ñang löu haønh trong boä ñeám chöông trình laø 5 bit Opcode). A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Xaùc Ñònh Trang Maõ Xaùc Ñònh Ñòa Chæ Trong Trang Maõ A10 – A8 Maõ Leänh Offset töông ñoái Ñònh Vò Ñòa Chæ Tuyeät Ñoái - Söï ñònh vò tuyeät ñoái ñem laïi thuaän lôïi cho caùc leänh ngaén (2 byte), nhöng baát lôïi trong vieäc giôùi haïn phaïm vi nôi gôûi ñeán vaø cung caáp maõ coù vò trí ñoäc laäp. 1.7 Söï ñònh vò daøi (Long Addressing) : - Söï ñònh vò daøi ñöôïc duøng vôùi leänh LCALL vaø LJMP. Caùc leänh 3 byte naøy bao goàm moät ñòa chæ nôi gôûi tôùi 16 bit ñaày ñuû laø 2 byte vaø 3 byte cuûa leänh. Opcode Addr 15 ¸ Addr 8 Addr 7 ¸ Addr 0 - Öu ñieåm cuûa söï ñònh daøi laø vuøng nhôù maõ 64K coù theå ñöôïc duøng heát, nhöôïc ñieåm laø caùc leänh ñoù daøi 3 byte vaø vò trí leä thuoäc. Söï phuï thuoäc vaøo vò trí seõ baát lôïi bôûi chöông trình khoâng theå thöïc thi taïi ñòa chæ khaùc. 1.8 Söï ñònh ñòa chæ coù chæ soá (Index Addressing): - Söï ñònh ñòa chæ phuï luïc duøng moät thanh ghi cô baûn (cuõng nhö boä ñeám chöông trình hoaëc boä ñeám döõ lieäu) vaø Offset (thanh ghi A) trong söï hình thaønh 1 ñòa chæ lieân quan bôûi leänh JMP hoaëc MOVC. - Caùc baûng cuûa leänh nhaûy hoaëc caùc baûng tra ñöôïc taïo neân moät caùch deã daøng baèng caùch duøng ñòa chæ phuï luïc. 2. Caùc kieåu leänh (Instruction Types): AT89C51 chia ra 5 nhoùm leänh chính : Caùc leänh soá hoïc. Leänh logic. Dòch chuyeån döõ lieäu. Lyù luaän. Reõ nhaùnh chöông trình. 2.1 Caùc leänh soá hoïc (Arithmetic Instrustion): ADD A, ADD A, Rn : (A) (A) + (Rn) ADD A, direct : (A) (A) + (direct) ADD A, @ Ri : (A) (A) + ((Ri)) ADD A, # data : (A) (A) + # data ADDC A, Rn : (A) (A) + (C) + (Rn) ADDC A, direct : (A) (A) + (C) + (direct) ADDC A, @ Ri : (A) (A) + (C) + ((Ri)) ADDC A, # data : (A) (A) + (C) + # data SUBB A, SUBB A, Rn : (A) (A) - (C) - (Rn) SUBB A, direct : (A) (A) - (C) - (direct) SUBB A, @ Ri : (A) (A) - (C) - ((Ri)) SUBB A, # data : (A) (A) - (C) - # data INC INC A : (A) (A) + 1 INC direct : (direct) (direct) + 1 INC Ri : ((Ri)) ((Ri)) + 1 INC Rn : (Rn) (Rn) + 1 INC DPTR : (DPTR) (DPTR) + 1 DEC DEC A : (A) (A) - 1 DEC direct : (direct) (direct) - 1 DEC @Ri : ((Ri)) ((Ri)) - 1 DEC Rn : (Rn) (Rn) - 1 MULL AB : (A) LOW [(A) x (B)];coù aûnh höôûng côø OV : (B) HIGH [(A) x (B)];côø Cary ñöôïc xoùa. DIV AB : (A) Integer Result of [(A)/(B)]; côø OV : (B) Remainder of [(A)/(B)]; côø Carry xoùa DA A :Ñieàu chænh thanh ghi A thaønh soá BCD ñuùng trong pheùp coäng BCD (thöôøng DA A ñi keøm vôùi ADD hoaëc ADDC) Neáu [(A3-A0)>9] vaø [(AC)=1] (A3A0) (A3A0) + 6. Neáu [(A7-A4)>9] vaø [(C)=1] (A7A4) (A7A4) + 6. 2.2 Caùc hoaït ñoäng logic (Logic Operation): Taát caû caùc leänh logic söû duïng thanh ghi A nhö laø moät trong nhöõng toaùn haïng thöïc thi moät chu kyø maùy, ngoaøi A ra maát 2 chu kyø maùy. Nhöõng hoaït ñoäng logic coù theå ñöôïc thöïc hieän treân baát kyø byte naøo trong vò trí nhôù döõ lieäu noäi maø khoâng qua thanh ghi A. Caùc hoaït ñoäng logic ñöôïc toùm taét nhö sau: ANL ANL A, Rn : (A) (A) AND (Rn). ANL A, direct : (A) (A) AND (direct). ANL A,@ Ri : (A) (A) AND ((Ri)). ANL A, # data : (A) (A) AND (# data). ANL direct, A : (direct) (direct) AND (A). ANL direct, # data : (direct) (direct) AND # data. ORL ORL A, Rn : (A) (A) OR (Rn). ORL A, direct : (A) (A) OR (direct). ORL A,@ Ri : (A) (A) OR ((Ri)). ORL A, # data : (A) (A) OR # data. ORL direct, A : (direct) (direct) OR (A). ORL direct, # data : (direct) (direct) OR # data. XRL XRL A, Rn : (A) (A) (Rn). XRL A, direct : (A) (A) (direct). XRL A,@ Ri : (A) (A) ((Ri)). XRL A, # data : (A) (A) # data. XRL direct, A : (direct) (direct) (A). XRL direct, # data : (direct) (direct) # data. CLR A : (A) 0 CLR C : (C) 0 CLR Bit : (Bit) 0 RL A : Quay voøng thanh ghi A qua traùi 1 bit (An + 1) (An); n = 06 (A0) (A7) RLC A : Quay voøng thanh ghi A qua traùi 1 bit coù côø Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) RR A : Quay voøng thanh ghi A qua phaûi 1 bit (An + 1) (An); n = 06 (A0) (A7) RRC A : Quay voøng thanh ghi A qua phaûi 1 bit coù côø Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) SWAP A : Ñoåi choå 4 bit thaáp vaø 4 bit cao cuûa A cho nhau (A3A0)(A7A4). 2.3 Caùc leänh reõ nhaùnh: Coù nhieàu leänh ñeå ñieàu khieån leân chöông trình bao goàm vieäc goïi hoaëc traû laïi töø chöông trình con hoaëc chia nhaùnh coù ñieàu kieän hay khoâng coù ñieàu kieän. Taát caû caùc leänh reõ nhaùnh ñeàu khoâng aûnh höôûng ñeán côø. Ta coù theå ñònh nhaûn caàn nhaûy tôùi maø khoâng caàn roõ ñòa chæ, trình bieân dòch seõ ñaët ñòa chæ nôi caàn nhaûy tôùi vaøo ñuùng khaåu leänh ñaõ ñöa ra. Sau ñaây laø söï toùm taét töøng hoaït ñoäng cuûa leänh nhaûy. JC rel : Nhaûy ñeán “rel” neáu côø Carry C = 1. JNC rel : Nhaûy ñeán “rel” neáu côø Carry C = 0. JB bit, rel : Nhaûy ñeán “rel” neáu (bit) = 1. JNB bit, rel : Nhaûy ñeán “rel” neáu (bit) = 0. JBC bit, rel : Nhaûy ñeán “rel” neáu bit = 1 vaø xoùa bit. ACALL addr11 : Leänh goïi tuyeät ñoái trong page 2K. (PC) (PC) + 2 (SP) (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC10PC0) page Address. LCALL addr16 : Leänh goïi daøi chöông trình con trong 64K. (PC) (PC) + 3 (SP) (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC) Addr15Addr0. RET : Keát thuùc chöông trình con trôû veà chöông trình chính. (PC15PC8) (SP) (SP) (SP) - 1 PC7PC0) ((SP)) (SP) (SP) -1. RETI : Keát thuùc thuû tuïc phuïc vuï ngaét quay veà chöông trình chính hoaït ñoäng töông töï nhö RET. AJMP Addr11 : Nhaûy tuyeät ñoái khoâng ñieàu kieän trong 2K. (PC) (PC) + 2 (PC10PC0) page Address. LJMP Addr16 : Nhaûy daøi khoâng ñieàu kieän trong 64K Hoaït ñoäng töông töï leänh LCALL. SJMP rel :Nhaûy ngaén khoâng ñieàu kieän trong (-128127) byte (PC) (PC) + 2 (PC) (PC) + byte 2 JMP @ A + DPTR:Nhaûy khoâng ñieàu kieän ñeán ñòa chæ (A) + (DPTR) (PC) (A) + (DPTR) JZ rel : Nhaûy ñeán A = 0. Thöïc haønh leänh keá neáu A 0. (PC) (PC) + 2 (A) = 0 (PC) (PC) + byte 2 JNZ rel : Nhaûy ñeán A 0. Thöïc haønh leänh keá neáu A = 0. (PC) (PC) + 2 (A) 0 (PC) (PC) + byte 2 CJNE A, direct, rel : So saùnh vaø nhaûy ñeán A direct (PC) (PC) + 3 (A) (direct) (PC) (PC) + Relative Address. (A) < (direct) C = 1 (A) > (direct) C = 0 (A) = (direct). Thöïc haønh leänh keá tieáp CJNE A, # data, rel : Töông töï leänh CJNE A, direct, rel. CJNE Rn, # data, rel : Töông töï leänh CJNE A, direct, rel. CJNE @ Ri, # data, rel : Töông töï leänh CJNE A, direct, rel. DJNZ Rn, rel : Giaûm Rn vaø nhaûy neáu Rn 0. (PC) (PC) + 2 (Rn) (Rn) -1 (Rn) 0 (PC) (PC) + byte 2. DJNZ direct, rel : Töông töï leänh DJNZ Rn, rel. 2.4 Caùc leänh dòch chuyeån döõ lieäu: Caùc leänh dòch chuyeån döõ lieäu trong nhöõng vuøng nhôù noäi thöïc thi 1 hoaëc 2 chu kyø maùy. Maãu leänh MOV , cho pheùp di chuyeån döõ lieäu baát kyø 2 vuøng nhôù naøo cuûa RAM noäi hoaëc caùc vuøng nhôù cuûa caùc thanh ghi chöùc naêng ñaëc bieät maø khoâng thoâng qua thanh ghi A. Vuøng Ngaên xeáp cuûa AT89C51 chæ chöùa 128 byte RAM noäi, neáu con troû Ngaên xeáp SP ñöôïc taêng quaù ñòa chæ 7FH thì caùc byte ñöôïc PUSH vaøo seõ maát ñi vaø caùc byte POP ra thì khoâng bieát roõ. Caùc leänh dòch chuyeån boä nhôù noäi vaø boä nhôù ngoaïi duøng söï ñònh vò giaùn tieáp. Ñòa chæ giaùn tieáp coù theå duøng ñòa chæ 1 byte (@ Ri) hoaëc ñòa chæ 2 byte (@ DPTR). Taát caû caùc leänh dòch chuyeån hoaït ñoäng treân toaøn boä nhôù ngoaøi thöïc thi trong 2 chu kyø maùy vaø duøng thanh ghi A laøm toaùn haïng DESTINATION. Vieäc ñoïc vaø ghi RAM ngoaøi (RD vaø WR) chæ tích cöïc trong suoát quaù trình thöïc thi cuûa leänh MOVX, coøn bình thöôøng RD vaø WR khoâng tích cöïc (möùc 1). Taát caû caùc leänh dòch chuyeån ñeàu khoâng aûnh höôûng ñeán côø. Hoaït ñoäng cuûa töøng leänh ñöôïc toùm taét nhö sau: MOV A,Rn : (A) (Rn) MOV A, direct : (A) (direct) MOV A, @ Ri : (A) ((Ri)) MOV A, # data : (A) # data MOV Rn, A : (Rn) (A) MOV Rn, direct : (Rn) (direct) MOV Rn, # data : (Rn) # data MOV direct, A : (direct) (A) MOV direct, Rn : (direct) (Rn) MOV direct, direct : (direct) (direct) MOV direct, @ Ri : (direct) ((Ri)) MOV direct, # data : (direct) data MOV @ Ri, A : ((Ri)) (A) MOV @ Ri, direct : ((Ri)) (direct) MOV @ Ri, # data : ((Ri)) # data MOV DPTR, # data16 : (DPTR) # data16 MOV A, @ A + DPTR : (A) (A) + (DPTR) MOV @ A + PC : (PC) (PC) + 1 (A) (A) + (PC) MOVX A, @ Ri : (A) ((Ri)) MOVX A, @ DPTR : (A) ((DPTR)) MOVX @ Ri, A : ((Ri)) (A) MOVX @ DPTR, A : ((DPTR)) (A) PUSH direct : Caát döõ lieäu vaøo Ngaên xeáp (SP) (SP) + 1 (SP) (Drirect) POP direct : Laáy töø Ngaên xeáp ra direct (direct) ((SP)) (SP) (SP) - 1 XCH A, Rn : Ñoåi choå noäi dung cuûa A vôùi Rn (A) (Rn) XCH A, direct : (A) (direct) XCH A, @ Ri : (A) ((Ri)) XCHD A, @ Ri : Ñoåi choå 4 bit thaáp cuûa (A) vôùi ((Ri)) (A3A0) ((Ri3Ri0)) 2.5 Caùc leänh luaän lyù (Boolean Instruction): AT89C51 chöùa moät boä xöû lí luaän lyù ñaày ñuû cho caùc hoaït ñoäng bit ñôn, ñaây laø moät ñieåm maïnh cuûa hoï vi ñieàu khieån MSC-51 maø caùc hoï vi ñieàu khieån khaùc khoâng coù. RAM noäi chöùa 128 bit ñôn vò vaø caùc vuøng nhôù caùc thanh ghi chöùc naêng ñaëc bieät caáp leân ñeán 128 ñôn vò khaùc. Taát caû caùc ñöôøng Port laø bit ñònh vò, moãi ñöôøng coù theå ñöôïc xöû lí nhö Port ñôn vò rieâng bieät. Caùch truy xuaát caùc bit naøy khoâng chæ caùc leänh reõ nhaùnh khoâng, maø laø moät danh muïc ñaày ñuû caùc leänh MOVE, SET, CLEAR, COMPLEMENT, OR, AND. Toaøn boä söï truy xuaát cuûa bit duøng söï ñònh vò tröïc tieáp vôùi nhöõng ñòa chæ töø 00H - 7FH trong 128 vuøng nhôù thaáp vaø 80H - FFH ôû caùc vuøng thanh ghi chöùc naêng ñaëc bieät. Bit Carry C trong thanh ghi PSW\ cuûa töø traïng thaùi chöông trình vaø ñöôïc duøng nhö moät söï tích luõy ñôn cuûa boä xöû lí luaän lyù. Bit Carry cuõng laø bit ñònh vò vaø coù ñòa chæ tröïc tieáp vì noù naèm trong PSW. Hai leänh CLR C vaø CLR CY ñeàu coù cuøng taùc duïng laø xoùa bit côø Carry nhöng leänh naøy maát 1 byte coøn leänh sau maát 2 byte. Hoaït ñoäng cuûa caùc leänh luaän lyù ñöôïc toùm taét nhö sau: CLR C : Xoùa côø Carry xuoáng 0. Coù aûnh höôûng côø Carry. CLR BIT : Xoùa bit xuoáng 0. Khoâng aûnh höôûng côø Carry SETB C : Set côø Carry leân 1. Coù aûnh höôûng côø Carry. SETB BIT : Set bit leân 1. Khoâng aûnh höôûng côø Carry. CPL C : Ñaûo bit côø Carry. Coù aûnh höôûng côø Carry. CPL BIT : Ñaûo bit. Khoâng aûnh höôûng côø Carry. ANL C, BIT : (C) (C) AND (BIT) : Coù aûnh höôûng côø Carry. ANL C, /BIT: (C) (C) AND NOT (BIT):Khoâng aûnh höôûng côø Carry. ORL C, BIT : (C) (C) OR (BIT) : Taùc ñoäng côø Carry. ORL C, /BIT : (C) (C) OR NOT (BIT) : Taùc ñoäng côø Carry. MOV C, BIT : (C) (BIT) : Côø Carry bò taùc ñoäng. MOV BIT, C : (BIT) (C) : Khoâng aûnh höôûng côø Carry. 2.6 Caùc leänh xen vaøo (Miscellamous Intstruction): NOP : Khoâng hoaït ñoäng gì caû, chæ toán 1 byte vaø 1 chu kyø maùy. Ta duøng ñeå delay nhöõng khoaûng thôøi gian nhoû. PHAÀN III: CAÛM BIEÁN QUANG : TIA LASER VAØ HOÀNG NGOAÏI TUYEÁN I. DIODE PHAÙT QUANG : Haàu heát nhöõng nguyeân toá duøng ñeå cheá taïo Diode phaùt quang ñeàu laø nhöõng nguyeân toá ôû nhoùm III vaø IV cuûa baûng phaân loaïi tuaàn hoaøn. Ñoù laø GaAs, GaP vaø loaïi hoãn hôïp “Ternarius” vôùi 3 nguyeân toá GaAsP. Hieän nay ngöôøi ta thöôøng söû duïng chuû yeáu hai loaïi LED trong caùc heä thoáng thoâng tin caùp sôïi quang laø S-LED, LED phaùt xaï maët ( Surface Light Emiting Diode ) vaø E-LED, LED phaùt xaï caïnh ( Edge Light Emiting Diode ) . Caû hai loaïi naøy ñeàu duøng caáu truùc dò theå keùp ñeå “ giam “ haït ña soá vaø aùnh saùng vaøo moät lôùp hoaït tính . Baûng 3-1 giuùp ta so saùnh caùc tính chaát chuû yeáu cuûa hai loaïi LED treân . Loaïi LED Taàn soá ñieàu cheá lôùn nhaát ( MHz ) Coâng suaát ra ( mW) Coâng suaát phoái gheùp vôùi sôïi quang ( m W ) Phaùt xaï maët (S-LED) 60 < 4 < 0,2 Phaùt xaï caïnh (E-LED) 200 < 7 < 1, 0 Baûng 3.1. So saùnh E-LED vaø S-LED . Töø baûng treân ta thaáy E-LED, LED phaùt xaï caïnh öu vieät hôn loaïi S-LED, LED phaùt xaï maët veà hieäu suaát phoái gheùp vaø taàn soá ñieàu cheá . Vì vaäy, S-LED chæ ñöôïc söû duïng trong tuyeán thoâng tin coù cöï ly ngaén vaø coù toác ñoä thaáp . Ngöôïc laïi, E-LED thöôøng ñöôïc söû duïng ôû cöï ly trung bình ( ñoái vôùi tuyeán cöï li xa ngöôøi ta söû duïng Laser ) . AÙnh saùng böùc xaï cuûa LED traûi ra trong moät vuøng phoå roäng hôn raát nhieàu so vôùi Laser , do vaäy chuùng chæ coù theå phoái gheùp aùnh saùng coù hieäu quaû vaøo sôïi quang ña mode coù khaåu ñoä soá (NA) lôùn . Döôùi ñaây chuùng ta seõ khaûo saùt töøng loaïi LED treân. II. LED PHAÙT XAÏ MAËT : Hình 3.1 cho ta caáu truùc ñieån hình cuûa moät LED phaùt xaï maët . Diode dò theå keùp ñöôïc hình thaønh treân neàn cuûa moät chaát baùn daãn loaïi N , ôû phía treân cuûa diode coù khoeùt saâu moät loã troøn . Trong caáu truùc ñaëc bieät naøy , aùnh saùng ñöôïc taïo ra ôû vuøng hoaït ñi xuyeân qua chaát neàn vaø ñi vaøo loõi sôïi quang ñaët trong loã . Sôïi quang ñöôïc gaén baèng nhöïa epoxy . Ñaùy cuûa khoái LED laø boä phaän haï nhieät baèng vaøng , tieáp xuùc vôùi diode bôûi moät khoái troøn nhoû , phaàn coøn laïi ñöôïc caùch ñieän vôùi diode . Phaàn haï nhieät naøy taïo thaønh lôùp tieáp xuùc , nhôø ñoù doøng ñieän chaûy qua loã cuûa lôùp caùch ñieän . Doøng ñieän xuyeân qua lôùp baùn daãn loaïi P , hình thaønh moät vuøng hoaït tính saïn troøn kích thöôùc nhoû , vôùi maät ñoä doøng ñieän côõ 2000 A/cm2 . Vì vaäy , taïo neân moät chuøm saùng taäp trung coù cöôøng ñoä cöïc maïnh . Hình 3.1 Tieát dieän ngang cuûa LED phaùt xaï maët (S-LED). Chæ soá chieát suaát thay ñoåi qua caùc tieáp giaùp dò theå laøm cho moät phaàn aùnh saùng phaùt xaï quay veà vuøng hoaït tính , phaàn aùnh saùng naøy coù theå ñöôïc haáp thuï hoaëc ñöa ra sôïi quang , vì theá löôïng aùnh saùng thöïc teá gheùp vôùi sôïi quang ít hôn so vôùi löôïng aùnh saùng maø LED phaùt ra . Maëc daàu ñaõ coù moät vi thaáu kính ñaët trong gieáng taïi ñænh cuûa LED seõ laøm taêng hieäu suaát gheùp . Hieäu suaát gheùp coøn phuï thuoäc vaøo sai soá laép ñaët thaáu kính vaø sai leäch chænh taâm cuûa sôïi quang . Trong thöïc teá coâng xuaát phaùt xaï coù theå ñaït gaáp 2 hoïaêc 3 laàn nhôø moät LED töông ñöông goàm hai LED gheùp ñoái ñænh . III. LED PHAÙT XAÏ CAÏNH : Ñeå giaûm maát maùt do haáp thuï trong lôùp hoaït tính vaø laøm cho chuøm tia ñònh höôùng hôn, ta coù theå laáy aùnh saùng ra töø caïnh cuûa LED. Loaïi LED naøy ñöôïc goïi laø LED phaùt xaï caïnh (E-LED), caáu truùc ñieån hình cuûa chuùng bieåu dieãn treân hình 3.2 . Lôùp hoaït tính ñöôïc xaùc ñònh bôûi giôùi haïn cuûa ñöôøng keû heïp ôû lôùp tieáp xuùc phía treân. Nhôø coù tieáp giaùp dò theå maø aùnh saùng ñöôïc “ giam “ trong vuøng hoaït tính ñieàu ñoù laøm cho hieäu suaát, coâng suaát vaø tính ñònh höôùng cuûa nguoàn saùng ñöôïc taêng cao. Ngöôøi ta phuû moät lôùp phaûn xaï taïi ñaàu cuoái cuûa diode ñeå laøm taêng coâng suaát ra. Hình 3.2 Caáu truùc cuûa LED phaùt xaï caïnh N-n-P LED tieáp giaùp soïc . IV. ÑAËC TÍNH PHOÅ : Söï phaùt xaï aùnh saùng do dòch chuyeån ngaãu nhieân cuûa caùc ñieän töï qua daûi caám goïi laø phaùt xaï töï phaùt. Trong thöïc teá, daøi daãn vaø daûi hoùa trò coù raát nhieàu möùc naêng löôïng khaùc nhau. Do söï taùi hôïp cuûa caùc haït coù möùc naêng löôïng khaùc nhau neân naêng löôïng phaùt xaï phaùt ra cuõng naèm trong moät phaïm vi khaù roäng. Maät ñoä phaân boá ñieän töû cöïc ñaïi ôû möùcc naêng löôïng saép xæ Eg + kT/2 vaø cuûa loã troáng laø ôû naêng löôïng xaép xæ Eg +kT, do ñoù hieäu naêng löôïng coù giaù trò trung bình laø Eg +kT vaø ñoää leäch dEg naèm giöõa kT vaø 2kT. Maëc duø ñoä leäch thöïc teá coøn phuï thuoäc vaøo taïp chaát pha vaøo, nhöng söï xaáp xæ treân laø chaáp nhaän ñöôïc. b) Hình 3.3 a) Böùc xaï photon töø caùc möùc naêng löôïng cuûa daûi daãn xuoáng daûi hoùa trò; b) Ñaëc tính phoå. Naêng luôïng taùi hôïp traûi roäng trong moät daûi nhaát ñònh neân caùc böôùc soùng phaùt xaï khoâng phaûi laø moät giaù trò nhaát ñònh maø traûi roäng ra coù daïng hình chuoâng nhö hình 3.3 b ). Beà roäng phoå ôû möùc nöûa coâng suaát goïi laø ñoä roäng vaïch phoå cuûa nguoàn. Nhö ta ñaõ bieát ñoä roäng vaïch phoå lôùn seõ daãn tôùi taùn saéc vaät lieäu trong sôïi quang lôùn. Ñoái vôùi haàu heát caùc LED ñoä roäng vaïch phoå côõ 30nm vaø neáu chuyeån sang mieàn taàn soá thì ñoä roäng taàn laø 1,3 x 10 Hz, LED chæ laø nguoàn quang coù chaát löôïng thaáp trong thoâng tin quang, do ñoù chuùng chæ ñöôïc duøng trong caùc tuyeán coù dung löôïng thaáp, ñieàu cheá cöôøng ñoä vaø cöï ly ngaén. V. LASER BAÙN DAÃN : 1. Nguoàn Goác - Lòch Söû Phaùt Trieån : Laser laø chöõ vieát taét cuûa cuïm töø Light Amplification by Stimulated Emission of Radiation ( Khueách ñaïi aùnh saùng baèng phaùt xaï kích thích ) . Laser laø moät trong nhöõng phaùt minh khoa hoïc quan troïng nhaát theá kyû XX . Töø phaùt minh ra lyù thuyeát böùc xaï kích thích cuûa Einstein naêm 1917, ñeán quan saùt ñöôïc baèng thöïc nghieäm böùc xaï kích thích cuûa Fabricant, giaùo sö cuûa tröôøng Ñaïi Hoïc naêng löôïng Moskva naêm 1940; taát caû laø cô sôû ñeå nhaø Vaät Lyù hoïc ngöôøi Myõ Townes phaùt minh ra maùy khueách ñaïi ñieän töø baèng böùc xaï kích thích; khôûi ñaàu cho caùc phaùt minh khoa hoïc veà Laser sau naøy . Thaùng 02 naêm 1960, Maiman ñaõ cheá taïo thaønh coâng Laser Rubi, Laser ñaàu tieân treân theá giôùi . Thaùng 06 naêm ñoù, Javan laïi thaønh coâng trong vieäc cheá taïo ra Laser khí He – Ne . Vaø sau ñoù laø moät loaïi Laser ra ñôøi nhö : Laâser raén, Laser loûng, vaø sau cuøng laø Laser baùn daãn . Laser ñaõ ñöôïc öùng duïng raát roäng raõi trong haàu heát caùc ngaønh khoa hoïc, coâng ngheä vaø y teá. Tuy nhieân, öùng duïng quan troïng nhaát cuûa Laser phaûi keå ñeán laø thoâng tin caùp sôïi quang vaø laøm nguoàn phaùt : boä phaän quan troïng nhaát trong caùc ñaàu ñoïc coù söû duïng tia Laser . 2. Tia Laser : Laser laø moät caáu truùc quang hoïc duøng ñeå saûn xuaát vaø khueách ñaïi aùnh saùng ñôn saéc coù tính lieân keát veà pha töø böùc xaï töï caûm cuûa aùnh saùng . Thöïc teá , ta thöôøng gaëp 4 loaïi Laser : + Laser traïng thaùi raén ( Solid State Laser ) . + Laser loûng ( Liquid Laser ) . + Laser khí ( Gas Laser ) . + Laser baùn daãn ( Semi – Conductor Laser ) . Laser baùn daãn laø moät Laser traïng thaùi raén . Laser traïng thaùi raén ñöôïc chia laøm 2 loaïi : loaïi tinh theå vaø khoâng tinh theå . Laser baùn daãn phaùt ra aùnh saùng ñôn saéc , ñoàng boä vaø coù ñoä song song cao . Tuy nhieân , Laser baùn daãn coù kích thöôùc raát nhoû , chieàu daøi Laser chæ tính baèng 0.1mm vaø deã daøng ñieàu bieán aùnh saùng phaùt ra baèng caùch ñieàu bieán thieân aùp nuoâi Diode Laser . Chính vì nhöõng ñaëc tính quan troïng treân maø Laser baùn daãn ñaõ trôû thaønh moät loaïi nguoàn saùng khoâng theå thieáu trong thoâng tin baèng sôïi quang . Nguyeân lyù hoaït ñoäng cuûa Laser noùi chung vaø Laser baùn daãn noùi rieâng ñeàu döïa treân cô sôû quaù trình phaùt xaï kích thích ( cöôõng böùc ) trong moâi tröôøng ñaûo maät ñoä , moâi tröôøng hoaït chaát . Khoâng gioáng nhö caùc loa

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

  • docLV3.DOC