Thiết kế và thi công máy chấm điểm trắc nghiêm giao tiếp máy vi tính cá nhân

Tài liệu Thiết kế và thi công máy chấm điểm trắc nghiêm giao tiếp máy vi tính cá nhân: ... Ebook Thiết kế và thi công máy chấm điểm trắc nghiêm giao tiếp máy vi tính cá nhân

doc145 trang | Chia sẻ: huyen82 | Lượt xem: 1433 | Lượt tải: 0download
Tóm tắt tài liệu Thiết kế và thi công máy chấm điểm trắc nghiêm giao tiếp máy vi tính cá nhân, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ñaàu tö cho Giaùo duïc chính laø ñaàu tö lôùn nhaát, vöõng chaéc nhaát cho tieàn ñeà phaùt trieån Kinh teá_Xaõ hoäi trong töông lai gaàn cuûa moät quoác gia vôùi voán ñaàu tö thaáp nhaát. Thöïc teá nhieàu nöôùc treân theá giôùi nhö: Trung Quoác, Nhaät Baûn,… ñaõ chöùng minh ñöôïc ñieàu aáy. ÔÛ nöôùc ta, tænh An Giang vôùi söï ñaàu tö cho Giaùo duïc trong khoaûng 10 naêm trôû laïi ñaây, ngaân saùch ñaàu tö cho Giaùo duïc chieám töø 20 ñeán 30% toång thu nhaäp haøng naêm. An Giang ñaõ vaø ñang coù moät moät nguoàn nhaân löïc doài daøo, vôùi taàm kieán thöùc khaù roäng vaø gaàn nhö bao goàm taát caû moïi lónh vöïc khoa hoïc, taïo neàn moùng cô baûn cho vieäc xaây döïng cô sôû haï taàng kinh teá xaõ hoäi, vaø töø ñoù phaùt trieån hôn nöõa nguoàn nhaân löïc trí thöùc naøy ñeå tieán haønh xaây döïng töøng böôùc cô sôû cao taàng veà sau (Soá lieäu laáy töø nguoàn Sôû Giaùo Duïc Tænh An Giang naêm 1998). Qua 10 naêm ñaàu tö cho Giaùo duïc, tröôùc heát, An Giang ñaõ coù moät thaønh phoá, thaønh phoá Long Xuyeân, thaønh laäp vaøo thaùng tö naêm 1999. Tieáp theo laø söï phaùt trieån oà aït cuûa thò xaõ Chaâu Ñoác cuøng vôùi haøng loaït caùc tröôøng lôùp, caùc tröôøng Ñaïi Hoïc daàn ra ñôøi. Ñöôïc bieát, ñaàu naêm 2000, An Giang seõ khaùnh thaønh tröôøng Ñaïi hoïc Tænh An Giang (cuoái thaùng 12 naêm 1999, tröôøng ñaõ ñi vaøo hoaït ñoäng chính thöùc), vôùi quy moâ khoâng thua tröôøng Ñaïi hoïc Tænh Caàn Thô. Vieäc xaây döïng Tröôøng Ñaïi hoïc naøy nhaèm xaây döïng nguoàn nhaân löïc taïi choã cho Tænh An Giang, laø chieán löôïc Giaùo duïc vaø cuõng laø chieán löôïc kinh teá cuûa Tænh. Caùc cuoäc khuûng hoaûng kinh teá khu vöïc thöôøng baét nguoàn töø moät nöôùc naøo ñoù, nhö cuoäc khuûng hoaûng kinh teá khu vöïc Ñoâng Nam AÙ vaøo thaùng 07 naêm 1997 baét nguoàn töø söï maát caân baèng nghieâm troïng caùn caân xuaát nhaäp khaåu Thaùi Lan, sau ñoù aûnh höôûng nhanh sang caùc nöôùc trong khu vöïc nhö Malaysia, Indonesia, Philipin, …; Neàn khoa hoïc_kyõ thuaät_coâng ngheä, vôùi söï phaùt trieån vöôït baäc cuûa mình, caùc nöôùc Myõ, Nhaät daãn ñeán moät Hoàng Koâng vôùi mong muoán xaây döïng moät caûng Silicon gioáng thung luõng Silicon coâng ngheä cao cuûa Myõ, vaø ñieàu naøy ñang ñöôïc thöïc hieän (Thoâng tin Thôøi söï, muïc Khoa hoïc Kyõ thuaät Ñaøi truyeàn hình Thaønh Phoá Hoà Chí Minh, keânh HTV7, phaùt luùc 19 giôø ngaøy 06 thaùng 07 naêm 1999). Trong cuøng moät xaõ hoäi thì söï bieán ñoåi, phaùt trieån cuûa moät nöôùc seõ laøm cho caùc nöôùc caïnh beân run mình chuyeån ñoäng theo. Cuøng naèm trong chu trình aáy, Vieät Nam tröôùc theàm theá kæ XXI, trong coâng cuoäc coâng nghieäp hoùa hieän ñaïi hoùa ñaát nöôùc, muoán chuyeån mình ñeå trôû thaønh con Roàng Chaâu AÙ, caàn phaûi coù moät söï ñaàu tö ñuùng ñaén hôn, nhaém vaøo muïc tieâu laâu daøi cuûa Ñaát nöôùc. Ñeå ñaùp öùng nhu caàu Xaõ hoäi, ngaønh Giaùo duïc coù nhieäm vuï ñaøo taïo ra moät theá heä coâng daân môùi, ñoàng thôøi boài döôõng cho theá heä coâng daân ñang tham gia saûn xuaát moät kieán thöùc saâu, roäng. Hieän nay, ngaønh Giaùo duïc vaø Ñaøo taïo ñaõ coù nhöõng tieán boä khoâng ngöøng trong coâng taùc vaø nhieäm vuï cuûa ngaønh, nhöng quaù trình ñaøo taïo naøo cuõng vaäy, neáu khoâng coù söï kieåm tra ñaàu ra thì toaøn boä quaù trình ñaøo taïo aáy xem nhö khoâng hoaøn thieän. Nguoàn kieán thöùc saâu roäng ñöa ñeán ñaàu tö cho theá heä treû, nhöõng coâng daân môùi, ñaõ khoù nhöng vaán ñeà kieåm tra ôû ñaàu ra laïi caøng khoù hôn. Nhieàu hình thöùc kieåm tra ñaàu ra ñöôïc aùp duïng, töø kieåm tra mieäng, kieåm tra vaán ñaùp, kieåm tra vieát, baøi taäp lôùn, laøm tieåu luaän, laøm luaän vaên,… Trong nhöõng hình thöùc kieåm tra noùi treân, kieåm tra traéc nghieäm, tuy chæ môùi xuaát hieän, coøn môùi ôû nöôùc ta vaø ñang coøn trong giai ñoaïn nghieân cöùu nhöng ñaõ vaø ñang ñöôïc chuù yù ñeán. Do tính chaát phöùc taïp cuûa vieäc vaän duïng moät heä thoáng kieåm tra traéc nghieäm cuõng nhö ñaây laø moät heä thoáng coøn quaù môùi ôû Vieät Nam, caùc coâng cuï thöïc thi chöa coù neân ngöôøi nghieân cöùu tieán haønh tìm hieåu vaø thieát keá moät coâng cuï kieåm tra traéc nghieäm. Ñaây laø moät coâng cuï lao ñoäng, vaán ñeà ñöôïc ñaët ra laø coâng cuï naøy phaûi coù tính khaû thi, deã söû duïng, coù tính cô ñoäng, coù tính keát hôïp, coù tính töï ñoäng vaø coù tính thích nghi (khaû naêng söûa ñoåi, naâng caáp). Sau moät thôøi gian tìm hieåu, ngöôøi nghieân cöùu tieán haønh thöïc hieän ñeà taøi “THIEÁT KEÁ VAØ THI COÂNG MAÙY CHAÁM ÑIEÅM TRAÉC NGHIEÄM GIAO TIEÁP MAÙY VI TÍNH”. ÑAËT VAÁN ÑEÀ: Xaõ hoäi caàn moät nguoàn nhaân löïc môùi vôùi söï boå sung ñaày ñuû caùc kieán thöùc khoa hoïc kyõ thuaät ñaõ taïo tieàn ñeà cho ngaønh Giaùo duïc vaø Ñaøo taïo xaây döïng heä thoáng giaùo duïc tieân tieán, ñaøo taïo ra theá heä treû vôùi taàm kieán thöùc saâu roäng. Chính söï kieåm tra ñaàu ra cuûa quaù trình ñaøo taïo naøy ñaõ khieán cho hình thöùc kieåm tra traéc nghieäm ngaøy caøng phoå bieán roäng raõi vaø hieän nay ñöôïc aùp duïng cho haàu heát caùc moân hoïc. Qua hình thöùc kieåm tra traéc nghieäm löôïng kieán thöùc kieåm tra ñöôïc traûi roäng, khoâng co cuïm, khoâng troïng taâm. Ngöôøi laøm baøi phaûi ñaûm baûo ñöôïc tính chính xaùc, khoâng laàm laãn; tính chaát moài nhöû cuûa moãi löïa choïn cuûa caâu traéc nghieäm chính laø thöû thaùch cho ngöôøi laøm baøi. Traéc nghieäm laø hình thöùc ñöôïc söû duïng roäng raõi trong caùc kyø thi, ñaëc bieät laø moân Ngoaïi vaên. Vôùi soá löôïng baøi thi lôùn, duïng cuï thoâ sô (giaáy ñuïc loã hoaëc phaûi quan saùt) ngöôøi chaám khoâng traùnh khoûi nhöõng nhaàm laãn xaûy ra. Thôøi gian chaám baøi cuõng laø moät vaán ñeà ñoái vôùi ngöôøi chaám vaø laø yeáu toá khaùch quan aûnh höôûng ñeán keát quaû baøi thi. Vaän duïng nhöõng kieán thöùc ñaõ hoïc vaøo thöïc tieãn, taïo moät coâng cuï giuùp giaûi phoùng söùc lao ñoäng cho ngöôøi chaám, nhöõng ngöôøi ñaõ vaát vaû trong lónh vöïc lao ñoäng trí oùc, chính laø mong muoán vaø laø nhaân toá giuùp ngöôøi nghieân cöùu maïnh daïn tieán haønh tìm hieåu vaø thöïc hieän ñeà taøi. TAÀM QUAN TROÏNG CUÛA VAÁN ÑEÀ: Traéc nghieäm ñaõ xuaát hieän töø raát laâu treân theá giôùi, ñeán giöõa theá kyû XIX traéc nghieäm ñöôïc söû duïng roäng raõi trong lónh vöïc taâm lyù hoïc ñeå chæ moät baèng chöùng, moät chöùng tích. Ñaàu thaäp nieân 80 cuûa theá kyû XX, traéc nghieäm ñöôïc nhieàu nöôùc treân theá giôùi chính thöùc ñaët neàn moùng ñeå nghieân cöùu. Cho tôùi nay, ñaõ coù nhieàu thaønh töïu trong vieäc nghieân cöùu caùc hình thöùc traéc nghieäm, nhö taïi Myõ, Nhaät, Anh ñaõ coù caùc boä traéc nghieäm hoaøn chænh, coù tính khoa hoïc cao. Tuy ñaõ xuaát hieän töø raát laâu nhöng taïi Vieät Nam, kieåm tra traéc nghieäm, chæ môùi ñöôïc ñònh hình. Do coøn quaù môùi neân coâng cuï phuïc vuï coøn nhieàu thieáu thoán. Moät coâng cuï ñaùp öùng cho nhu caàu hieän taïi cuûa ngaønh, phuïc vuï cho coâng taùc chaám baøi chính laø tính caáp thieát cuûa vaán ñeà. Maùy coù ñoä tin caäy cao, coù theå aùp duïng vaøo caùc kyø thi quan troïng. YEÂU CAÀU CUÛA ÑEÀ TAØI: Chaám ñieåm baèng coâng cuï maùy moùc, thieát bò töï ñoäng neân vaán ñeà veà tính söû duïng ñöôïc ñaët ra laø: vôùi tính töï ñoäng cao, ñaûm baûo chính xaùc, khoâng coù yeáu toá chuû quan taùc ñoäng luùc chaám, chaám baøi vôùi soá löôïng lôùn, thôøi gian chaám baøi ngaén. Ngaønh Giaùo duïc vôùi nguoàn kinh phí coøn nhieàu haïn cheá neân vaán ñeà veà tính kinh teá cuõng ñöôïc ñaët ra: chi phí saûn xuaát thaáp, söû duïng toái ña khaû naêng cung caáp nguyeân vaät lieäu trong nöôùc, coù khaû naêng saûn xuaát ñoàng loaït, ñöôïc thò tröôøng chaáp nhaän. Laø moät saûn phaåm mang tính khoa hoïc neân vaán ñeà veà tính kyõ thuaät phaûi ñöôïc ñaët leân haøng ñaàu, maùy phaûi ñaûm baûo: laøm vieäc oån ñònh, chính xaùc, tuoåi thoï söû duïng cao, deã laép raùp söûa chöõavaø baûo trì. Thò hieáu cuûa ngöôøi tieâu duøng cuõng laø vaán ñeà khoâng nhoû neân tính myõ thuaät cuûa saûn phaåm caàn phaûi ñaûm baûo: goïn nheï, logic caáu hình. Ngoaøi ra, do khoâng theå ngöøng laïi ôû choã laø moät saûn phaåm, maùy coøn laø moät coâng trình nghieân cöùu neân khaû naêng keá thöøa vaãn phaûi coù, maùy phaûi coù tính deã tìm hieåu. Ngoaøi tính thoûa maõn nhu caàu töùc thôøi, maùy caàn phaûi coù tính töông thích vaø deã daøng naâng caáp ñeå coù theå ñaùp öùng cho nhu caàu môùi trong töông lai. GIÔÙI HAÏN ÑEÀ TAØI: Do söï haïn heïp veà kieán thöùc, kinh nghieäm, thôøi gian vaø kinh phí nghieân cöùu, cuõng nhö phöông tieän nghieân cöùu, ño löôøng neân ñeà taøi döøng laïi ôû möùc ñoä sô khôûi. Tính chính xaùc vaø tính cô ñoäng chöa cao, maùy chæ thöïc hieän ñöôïc caùc chöùc naêng: nhaän ñaùp aùn maãu, chaám baøi, xem ñieåm, truy xuaát, löu tröõ, xoùa, cheøn, phuùc khaûo, xem laïi baøi chaám, keát hôïp döõ lieäu, maõ truy xuaát, ñaëc bieät khoâng cho khaû naêng söûa baøi hay söûa maõ baøi chaám. MUÏC ÑÍCH NGHIEÂN CÖÙU: Ñeà taøi khoâng ngöøng laïi ôû möùc ñoä nghieân cöùu khoa hoïc maø phaûi tìm hieåu saâu hôn ñeå bieán kieán thöùc ñöôïc hoïc trong nhaø tröôøng thaønh coâng trình khoa hoïc khaû thi. Giuùp ngöôøi ngöôøi nghieân cöùu naêng ñoäng trong khoa hoïc, saùng taïo trong tình huoáng khoa hoïc, vaän duïng kieán thöùc vaø khaû naêng saùng taïo thaønh moät theå thoáng nhaát ñeå giaûi quyeát vaán ñeà trong thöïc teá. Ñoù laø muïc ñích chính cuûa ñeà taøi. Tröôùc maét, tìm hieåu nhu caàu xaõ hoäi, ñaët vaán ñeà, tìm höôùng giaûi quyeát, choïn phöông phaùp thöïc hieän, hoïc hoûi kinh nghieäm, thöïc hieän giaûi quyeát vaán ñeà. Trong töông lai, thöïc hieän chuyeân ñeà vôùi kinh nghieäm ñaõ coù, ñaët ra nhu caàu môùi vaø giaûi quyeát. KHAÛO SAÙT TAØI LIEÄU LIEÂN HEÄ: Chaâu Kim Lang- Phöông Phaùp Nghieân Cöùu Khoa Hoïc- Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät Thaønh Phoá Hoà Chí Minh- 1984: Tham khaûo taøi lieäu naøy giuùp cho ngöôøi nghieân cöùu xaùc ñònh ñöôïc höôùng ñi cuûa ñeà taøi, traùnh hieän töôïng ñi loøng voøng, taäp trung vaøo nhöõng ñieåm chính töø ñoù phaùt trieån vaø hoaøn chænh daàn ñeà taøi. Ngoaøi ra, caùch trình baøy vaø thöïc hieän moät ñeà taøi cuõng ñöôïc trình baøy trong cuoán saùch naøy. Hoàng Minh Nhaät- Thieát Keá Vaø Laép Raùp Maùy Tính CPU Z80- Nhaø Xuaát Baûn Giaùo Duïc-1994: tham khaûo caùch hoaït ñoäng cuûa moät heä thoáng hoaøn chænh, naém baét caùch vaän haønh moät heä vi xöû lyù ñeå töø ñoù lieân heä tìm hieåu qua caùc vaän haønh cuûa heä vi xöû lyù töø 80286 ñeán 80486. Traàn Vaên Troïng- Kyõ Thuaät Vi Xöû Lyù- Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät Thaønh Phoá Hoà Chí Minh- 1995: söï phaùt trieån vaø nguyeân lyù vaän haønh cuûa caùc heä thoáng vi xöû lyù. Traàn Ngoïc Sôn (bieân soaïn)-Tra cöùu TRANSISTOR NHAÄT BAÛN- Nhaø xuaát baûn Khoa Hoïc vaø Kyõ Thuaät-Haø Noäi 1991: tra cöùu thoâng soá kyõ thuaät vaø sô ñoà chaân cuûa BJT. Tra cöùu VI Maïch Soá CMOS- Nhaø xuaát baûn Khoa Hoïc vaø Kyõ Thuaät-Haø Noäi 1993: tra cöùu thoâng soá kyõ thuaät vaø sô ñoà chaân cuûa vi maïch soá CMOS. Data book Digital IC (Tra cöùu IC soá)- 1992: tra cöùu thoâng soá kyõ thuaät vaø sô ñoà chaân cuûa vi maïch soá TTL. XAÙC ÑÒNH THUAÄT NGÖÕ: CPU : Central Processing Unit, ñôn vò xöû lyù trung taâm. Maïch löu giöõ,ø xöû lyù vaø ñieàu khieån beân trong maùy tính, bao goàm ñôn vò soá hoïc–logic (ALU), ñôn vò ñieàu khieån vaø boä nhôù sô caáp trong daïng ROM hoaëc RAM. Chæ coù ñôn vò ALU vaø ñôn vò ñieàu khieån ñöôïc chöùa troïn veïn trong chíp goïi laø chíp xöû lyù. ROM : Read Only Memory, boä nhôù chæ ñoïc. Moät phaàn cuûa boä nhôù sô caáp cuûa maùy tính, thöôøng ñöôïc duøng ñeå löu tröõ caùc ñòa chæ leänh heä thoáng. Khoâng bò maát noäi dung khi bò maát ñieän. RAM : Random Access Memory, boä nhôù truy caäp ngaãu nhieân. Boä nhôù sô caáp cuûa maùy tính. Trong ñoù, byte leänh vaø byte döõ lieäu ñöôïc löu tröõ sau cho ñôn vò xöû lyù trung taâm coù theå truy caäp tröïc tieáp vaøo chuùng thoâng qua bus cao toác. Thoâng tin trong RAM bò maát ñi khi bò maát ñieän. BOARD : Circuit board, baûng maïch. Taám Plastic phaúng, treân ñoù coù gaén saün linh kieän ñieän töû. CARD : Card, bìa, baûng. Moät board maïch ñieän töû ñöôïc thieát keá nhaèm thöïc hieän moät chöùc naêng naøo ñoù vaø coù theå caém vaøo moät khe slot cuûa bus môû roäng trong maùy vi tính. BUS : Bus, ñöôøng truyeàn. Laø taäp hôïp caùc ñöôøng daãn coù cuøng chöùc naêng vaø nhieäm vuï. SLOT : Expansion Slot, khe caém môû roäng. Laø ñöôøng döõ lieäu môû roäng cuûa maùy tính, ñöôïc thieát keá ñeå caém vöøa caùc card giao tieáp. PORT : Port, caûng, coång. Laø coång giao tieáp, laø moái noái giöõa caùc ñöôøng truyeàn vôùi nhau. Ñeå ñaûm baûo tính khoa hoïc, tính heä thoáng, tính töôøng minh vaø tính hieäu quaû ñeà taøi ñöôïc thöïc hieän qua caùc giai ñoaïn sau: Tìm hieåu ñeà taøi. Soaïn ñeà cöông. Thu thaäp döõ lieäu. Xöû lyù döõ kieän. Thieát keá maïch. Thi coâng. Caân chænh. Thu hoaïch. Vieát ñeà taøi. I. TÌM HIEÅU ÑEÀ TAØI: Ñeà taøi ñöôïc giaùo vieân höôùng daãn gôïi yù, ngöôøi thöïc hieän tieán haønh tìm hieàu. Nhaän thaáy tính khoa hoïc, tính caáp thieát, tính giaù trò cuøng vôùi söï say meâ vaø phaùt sinh yù töôûng, ñeà taøi ñöôïc choïn vôùi noäi dung: thieáât keá vaø thi coâng maùy chaám ñieåm traéc nghieäm giao tieáp maùy vi tính caù nhaân (Personal Computer, vieát taét laø PC). Ngöôøi thöïc hieän ñaêng kyù ñeà taøi vôùi khoa Ñieän – Ñieän töû vôùi söï ñoàng yù cuûa giaùo vieân höôùng daãn. II. SOAÏN ÑEÀ CÖÔNG: Giai ñoaïn soaïn ñeà cöông nhaèm ñaït ñöôïc caùc muïc ñích: xaùc ñònh nhieäm vuï, phaân tích coâng trình lieân heä, phaân tích taøi lieäu lieân heä, laäp keá hoaïch nghieân cöùu. Xaùc ñònh nhieäm vuï nghieân cöùu: Treân cô sôû tìm hieåu sô boä ñeà taøi, nhieäm vuï ñöôïc ñaët ra nhö sau: Tìm hieåu sô boä veà giao tieáp ngoaïi vi vaø coång giao tieáp. Tìm hieåu boä caûm bieán quang. Thieát keá heä thoáng queùt aûnh. Thieát keá phaàn cöùng vaø phaàn cô khí. Xaây döïng phaàn meàm ñieàu khieån vaø xöû lyù thoâng tin. Phaân tích coâng trình lieân heä: Ñoà aùn toát nghieäp cuûa anh Traàn Ngoïc Vaân vaø anh Leâ Nguyeãn Duy Ñöùc, sinh vieân khoùa 92, nieân khoùa 1992-1997, khoa Ñieän, boä moân Ñieän Khí Hoùa vaø Cung Caáp Ñieän vôùi teân: “THIEÁT KEÁ MAÙY CHAÁM ÑIEÅM TRAÉC NGHIEÄM” giuùp cho ngöôøi nghieân cöùu raát nhieàu kinh nghieäm vaø coù theå laáy ñoù laøm taøi nguyeân nghieân cöùu nhö heä thoáng caûm quang, thieát bò giao tieáp ngoaïi vi PPI 8255A, nhöng nhìn chung, ñeà taøi coøn nhieàu thieáu soùt vaø haïn cheá nhö: khoâng coù tính töï ñoäng cao, chaám moãi laàn chæ moät baøi, tính oån ñònh chöa cao, toác ñoä chaäm, khoâng töôøng minh trong thieát keá, … maùy laø moät heä coâ laäp, khoâng tính cô ñoäng, khoù lieân keát, khoâng giao tieáp, khoù caûi tieán. Maëc duø nghieân cöùu thieát keá moät heä thoáng treân nguyeân lyù vaän haønh hoaøn toaøn khaùc coâng trình nghieân cöùu tröôùc nhöng nhöõng yeáu toá thu ñöôïc trong caùc coâng trình naøy laø nguoàn taøi nguyeân giuùp cho ngöôøi nghieân cöùu caûi tieán vaø khaéc phuïc nhöõng ñieàu chöa hoaøn chænh treân chính coâng trình cuûa mình. Laäp keá hoaïch nghieân cöùu: Ñeà cöông nghieân cöùu chính laø boä khung ñaûm baûo cho coâng vieäc nghieân cöùu ñöôïc tieán haønh theo moät trình töï thoáng nhaát vaø logic. Vieäc thieát laäp ñeà cöông vaø ñeà cöông chi tieát coù theå traùnh ñöôïc hieän töôïng khoâng logic kieán thöùc, baøi laøm khoâng maïch laïc, khoâng heä thoáng, ñoàng thôøi, giuùp töï caân ñoái taøi nguyeân nghieân cöùu. Sau laø daøn yù cuûa ñeà taøi: ÑEÀ CÖÔNG NGHIEÂN CÖÙU PHAÀN A: GIÔÙI THIEÄU LÔØI NOÙI ÑAÀU MUÏC LUÏC PHAÀN B: NOÄI DUNG CHÖÔNG DAÃN NHAÄP CHÖÔNG CÔ SÔÛ LYÙ LUAÄN CHÖÔNG I : KHAÛO SAÙT COÅNG GIAO TIEÁP CHÖÔNG II : GIÔÙI THIEÄU CAÙC BOÄ PHAÄN CAÛM BIEÁN CHÖÔNG III : CAÙC MAÏCH HOÃ TRÔÏ CHÖÔNG IV : THIEÁT KEÁ VAØ THI COÂNG PHAÀN CÖÙNG CHÖÔNG V : XAÂY DÖÏNG PHAÀN MEÀM CHÖÔNG KEÁT LUAÄN PHAÀN C: PHUÏ LUÏC VAØ PHUÏ ÑÍNH Vieäc thieát keá laïi ñöôïc thöïc hieän döïa treân caáu hình cuûa ñeà cöông chi tieát: ÑEÀ CÖÔNG CHI TIEÁT PHAÀN A: GIÔÙI THIEÄU LÔØI NOÙI ÑAÀU Sô löôïc noäi dung nghieân cöùu, toùm taét thaønh quaû ñaït ñöôïc. MUÏC LUÏC Caáu truùc toaøn boä ñeà taøi. PHAÀN B: NOÄI DUNG CHÖÔNG DAÃN NHAÄP Giôùi thieäu sô löôïc hoaøn caûnh lòch söû vaø hoaøn caûnh ra ñôøi cuûa yù töôûng thieát keá. CHÖÔNG CÔ SÔÛ LYÙ LUAÄN Nhöõng cô sôû laøm neàn taûng cho coâng vieäc nghieân cöùu vaø thieát keá. CHÖÔNG I : KHAÛO SAÙT COÅNG GIAO TIEÁP Giôùi thieäu chung veà coång giao tieáp, giao tieáp ngoaïi vi cuûa maùy vi tính, coång maùy in. Khaûo saùt vi maïch PPI 8255A. CHÖÔNG II : GIÔÙI THIEÄU CAÙC BOÄ PHAÄN CAÛM BIEÁN Giôùi thieäu chung Caûm bieán quang: Khaùi nieäm, linh kieän quang ñieän töû, linh kieän caûm bieán quang ñieän, linh kieän caûm bieán quang coâng nghieäp. CHÖÔNG III : CAÙC MAÏCH HOÃ TRÔÏ Caùc maïch baûo veä, maïch khueách ñaïi söû duïng trong ñeà taøi. CHÖÔNG IV : THIEÁT KEÁ VAØ THI COÂNG PHAÀN CÖÙNG Thieát keá vaø thi coâng: maïch giao tieáp ña naêng, maïch queùt vaø maïch ñeäm, maïch coâng suaát phaàn cô, maïch trung taâm. CHÖÔNG V : XAÂY DÖÏNG PHAÀN MEÀM Giôùi thieäu toång quaùt veà laäp trình, phaàn meàm laäp trình PASCAL. Xaây döïng sô ñoà khoái cuûa caùc thuû tuïc chính, vieát hoaøn chænh thuû tuïc ñoïc vaø vieát (nhaän vaø truyeàn döõ lieäu). Giôùi thieäu caùch söû meàm ñieàu khieån. CHÖÔNG KEÁT LUAÄN Toång keát laïi vaán ñeà vaø höôùng phaùt trieån trong töông lai. PHAÀN C: PHUÏ LUÏC VAØ PHUÏ ÑÍNH Taøi lieäu lieân heä, caùc baûng-bieåu thu hoaïch trong quaù trình nghieân cöùu. III. THU THAÄP DÖÕ KIEÄN: Tham khaûo taøi lieäu, khaûo saùt caùc maïch thöïc teá, keát hôïp giöõa lyù thuyeát vôùi maïch ñeå taïo ra maïch thích hôïp cho noäi dung nghieân cöùu. Chuù yù troïng taâm nghieân cöùu. Ghi cheùp laïi thoâng tin quan troïng, sô ñoà maïch, sô ñoà nguyeân lyù. Trong quaù trình thu thaäp döõ kieän, neáu coù gaëp vaán ñeà khoù hieåu, tieán haønh tham khaûo yù kieán cuûa giaùo vieân höôùng daãn. IV. XÖÛ LYÙ DÖÕ KIEÄN: Heä thoáng laïi thoâng tin caäp nhaäp ñöôïc, phaân loaïi theo taàm quan troïng cuûa thoâng tin cuõng nhö moái lieân heä giöõa caùc thoâng tin, chaét loïc thoâng tin. V. THIEÁT KEÁ-THI COÂNG-CAÂN CHÆNH-THU HOAÏCH: Sau khi ñuû cô sôû lyù luaän ta tieán haønh thieát keá caùc maïch döïa treân caùc thoâng tin vaø kieán thöùc coù ñöôïc, chaïy heä thoáng baèng sô ñoà nguyeân lyù, test treân board, nhôø söï kieåm tra cuûa giaùo vieân höôùng daãn tröôùc khi veõ maïch in. Söûa chöõa neáu coù. Thi coâng veõ vaø haøn linh kieän vaøo maïch in, thöû laïi, caân chænh heä soá. Nghieäm thu. Laøm tieáp phaàn khaùc. Thöû keát noái. Toång nghieäm thu. VI. VIEÁT ÑOÀ AÙN: Vieát sô boä caùc chöông treân cô sôû daøn yù chi tieát. Xin yù kieán cuûa giaùo vieân höôùng daãn khi ñaõ hoaøn thaønh sô löôïc. Söûa chöõa. Vieát laïi chính thöùc. Töø nhöõng ngaøy ñaàu cuûa vieäc thieát keá moät saûn phaåm, coâng cuï lao ñoäng hay saûn phaåm tieâu duøng, con ngöôøi luoân tìm moïi caùch ñeå naâng cao khaû naêng söû duïng cuûa saûn phaåm. Coâng vieäc naøy baét nguoàn töø vieäc caûi tieán daàn coâng duïng cuûa saûn phaåm, taïo theâm caùc chöùc naêng phuï, roài ñeán caùc chöùc naêng phuï troäi chuyeån tieáp, chôø moät söï lieân keát hay chuyeån maïch laø baét ñaàu hoaït ñoäng ñeå thay theá hay theâm vaøo moät chöùc naêng naøo ñoù. Söï ña naêng cuûa moät saûn phaåm öùng duïng laø yeáu toá ñoøi hoûi haøng ñaàu cuûa ngöôøi tieâu duøng. Neáu nhaø saûn xuaát, nhaø cheá taïo khoâng phaùt huy heát khaû naêng söû duïng cuûa saûn phaåm thì ngöôøi tieâu duøng seõ töï caûi tieán coâng duïng cuûa saûn phaåm aáy. Ví duï nhö chieác maùy noå Koler vôùi coâng duïng chính laø chaïy maùy taøu xuoàng nhöng qua ngöôøi daân coù theå trôû thaønh maùy quaït luùa, ñoäng cô truyeàn löïc, ñoäng cô maùy suoát luùa, ñoäng cô xe caûi tieán, maùy bôm nöôùc, … Giaù trò söû duïng cuûa moät saûn phaåm taêng laø nieàm vui cuûa ngöôøi thieát keá vaø beân caïnh aáy, moät saûn phaåm coù nhieàu giaù trò söû duïng, giaù trò söû duïng taêng nhieàu trong khi giaù thaønh khoâng taêng laø bao, deã ñöôïc ngöôøi tieâu duøng chaáp nhaän hôn. Moïi saûn phaåm caàn phaûi coù tính ña naêng. Tính ña naêng giuùp saûn phaåm coù tính töï thích nghi vaø do ñoù chu kyø soáng cuûa saûn phaåm keùo daøi hôn, ñieàu naøy coù lôïi cho nhaø saûn xuaát vaø giuùp naâng cao giaù trò xaõ hoäi cuûa saûn phaåm. I. GIÔÙI THIEÄU CHUNG VEÀ COÅNG GIAO TIEÁP: Trong lónh vöïc ñieän töû, chính nhu caàu cuûa ngöôøi tieâu duøng vaø mong muoán cuûa nhaø thieát keá, caùc maïch ñieän khoâng ngöøng ñöôïc caûi tieán ñeå naâng cao khaû naêng söû duïng cuûa moät heä maïch. Coù theå thöïc hieän coâng vieäc naøy baèng nhieàu caùch khaùc nhau nhö taêng taàm hoaït ñoäng, theâm chöùc naêng, chöùc naêng aån (chæ hoaït ñoäng khi coù nhu caàu). Söï phaùt trieån khoâng ngöøng cuûa ngaønh Ñieän-ñieän töû, thoâng tin khieán cho nhöõng saûn phaåm laøm ra khoâng theå ngöøng laïi ôû ñoù, yeâu caàu môùi ñöôïc ñaët ra laø tính töông thích. Maùy naøy coù theå giao tieáp, trao ñoåi, baét tay vôùi maùy khaùc, cuøng loaïi hay khaùc loaïi, moät chieàu hay nhieàu chieàu, ñoàng boä hay baát ñoàng boä, vôùi moät maùy hay nhieàu maùy. Caùc coång giao tieáp ra ñôøi. Port laø töø ñaïi dieän cho caùc coång giao tieáp, caùc coång truyeàn döõ lieäu höõu tuyeán töông töï hay soá, hai (02) daây ñeán n daây daãn. Vôùi xu höôùng aáy, coång giao tieáp khoâng coøn laø nôi truyeàn vaø nhaän thoâng tin giöõa hai (02) maùy, giöõa hai (02) hay nhieàu heä thoáng, maø coøn laø söï keát noái giöõa moät boä phaän vôùi moät heä thoáng hay heä thoáng naøy vôùi moät heä thoáng khaùc taïo neân söï thoáng nhaát, lieân hoaøn, boå sung cho nhau. Ñeå khai thaùc theâm nhöõng tính naêng chöa coù cuûa moät heä thoáng ngöôøi ta thöôøng thoâng qua coång giao tieáp vaø duøng coång naøy ñeå laáy thoâng tin cuûa heä thoáng trung taâm truyeàn qua cho heä thoáng boå sung vaø töø ñaây thoâng tin ñöôïc xöû lyù laàn hai ñeå ñaït ñöôïc yeâu caàu mong muoán. Maùy vi tính ra ñôøi coù theå ñöôïc xem laø coät moác phaùt trieån cuûa khoa hoïc kyõ thuaät, ñaùnh daáu moät kyû nguyeân môùi, kyû nguyeân cuûa coâng ngheä thoâng tin. Thôøi kyø ñaàu, ñeå minh hoïa cho tính ña naêng vaø khaû naêng töông thích cuûa mình, maùy AT thöïc hieän ñöôïc khaù nhieàu chöùc naêng; maùy AT laø baäc cao hôn cuûa chieác maùy tính boû tuùi vaø nôi noù coøn chöùa nhöõng tính naêng cuûa chieác maùy Tivi traéng ñen, vôùi haøng loaït caùc slot AT vaø caùc card maøn hình, card I/O, card IDE caém treân caùc slot naøy taïo cho noù coù theâm nhieàu khaû naêng veà löu tröõ, hieån thò, ñieàu khieån. Maùy XT, 286, 386 ra ñôøi cuõng döïa treân nhöõng tính naêng aáy nhöng ñöôïc naâng leân moät baäc cao hôn veà khaû naêng xöû lyù, chöùc naêng söû duïng, toác ñoä thöïc hieän. Moät heä thoáng coâ laäp khoâng coøn chieám vò trí haøng ñaàu. Söï ra ñôøi cuûa slot PCI laø söï hoaøn chænh laïi cuûa slot ISA veà toác ñoä thöïc hieän, laø söï keá thöøa coù naâng cao khaû naêng öùng duïng cuûa caùc slot tieàn nhieäm nhö AT, XT vaø laø tieàn ñeà cho caùc coång giao tieáp cao toác veà sau. Vôùi caùc maùy ñôøi sau, töø maùy 486 DX2, caùc card I/O, card IDE ñöôïc boå sung vaøo maïch chuû (mainboard) roài daàn daàn ñeán caùc ñôøi maùy 586 maïch aâm thanh (sound card) vaø maïch maøn hình (VGA card) cuõng ñöôïc thieát keá ngay treân maïch chuû (on board) döôùi daïng tích hôïp trong nhöõng IC vi xöû lyù. SÔ ÑOÀ BIEÁN ÑOÅI AÂM THANH TÖØ DAÏNG SOÁ SANG DAÏNG TÖÔNG TÖÏ THOÂNG QUA CARD GIAO TIEÁP CUÛA MAÙY VI TÍNH Program Sound CPU Slot ISA/PCI Card Sound Jack Phone Tín hieäu töôøng minh Tín hieäu nhò phaân Tín hieäu soá Tín hieäu aâm taàn Speaker SÔ ÑOÀ BIEÁN ÑOÅI TÍN HIEÄU HÌNH TÖØ DAÏNG SOÁ SANG DAÏNG TÖÔNG TÖÏ THOÂNG QUA CARD GIAO TIEÁP CUÛA MAÙY VI TÍNH Program Graph CPU Slot ISA/PCI Card VGA Jack VGA Tín hieäu nhò phaân Tín hieäu soá Tín hieäu hình Tín hieäu töôøng minh Monitor Tính ña daïng cuûa hình thöùc truyeàn döõ lieäu ñoøi hoûi caàn phaûi coù moät soá coång truyeàn rieâng, mang tính ñaëc thuø; coång noái tieáp, coång song song ñöôïc öùng duïng ñeå ñieàu khieån (giao tieáp) vôùi caùc thieát bò chuoät (mouse), baøn phím (key board), maùy in (printer) hoaëc giao tieáp I/O. Maùy vi tính thöïc hieän coâng vieäc giao tieáp naøy ra sao vaø döôùi hình thöùc naøo? Ñoù chính laø caâu hoûi ñöôïc ñaët ra. II. TÌM HIEÅU CHUNG VEÀ COÅNG MAÙY IN: Thoâng tin truyeàn trong maùy vi tính döôùi daïng nhò phaân, ñöôïc theå hieän qua hai chæ soá 0 vaø1. Taát caû moïi ngoân ngöõ, laäp trình vaø ñieàu khieån, ñeàu ñöôïc chuyeån veà ngoân ngöõ maùy döôùi daïng soá nhò phaân. Ngöôøi ta goïi vieäc truyeàn döõ lieäu naøy laø truyeàn döõ lieäu döôùi daïng soá (digital), vieäc truyeàn naøy khaùc haún vôùi vieäc truyeàn döõ lieäu döôùi daïng töông töï (analog) nhö tín hieäu aâm thanh, hình aûnh. Truyeàn döõ lieäu kieåu digital, coù boán (04) daïng truyeàn: Truyeàn song song ñoàng boä. Truyeàn song song baát ñoàng boä. Truyeàn noái tieáp ñoàng boä. Truyeàn noái tieáp baát ñoàng boä. Thöïc hieän giao tieáp qua coång maùy in laø hình thöùc truyeàn döõ lieäu döôùi daïng song song baát ñoàng boä. Vieäc truyeàn soá lieäu theo daïng song song baát ñoàng boä naøy cho pheùp truyeàn 08 bit cuøng moät laàn truyeàn, toác ñoä truyeàn tuøy thuoäc vaøo haøm truyeàn. Khuyeát ñieåm chính cuûa hình thöùc truyeàn naøy laø khoaûng caùch truyeàn ngaén, muoán truyeàn xa phaûi coù boä phaän ñeäm döõ lieäu. Vì laø hình thöùc truyeàn baát ñoàng boä neân khoâng ñoøi hoûi phaûi ñoàng boä töø nôi phaùt ñeán nôi thu, töùc laø xung clock (ck) nôi phaùt vaø nôi thu khoâng nhaát thieát phaûi ñoàng boä vôùi nhau. Öu ñieåm cuûa hình thöùc truyeàn baát ñoàng boä laø vaäy, tuy nhieân beân caïnh aáy vaãn toàn taïi nhöõng khoù khaên khaùc, ñoù laø tín hieäu baét tay giöõa nôi truyeàn vaø nôi thu. Coång maùy in giaûi quyeát vaán ñeà nhôø caùc tín hieäu: /STROBE, /ACK, /BUSY. SÔ ÑOÀ TRUYEÀN CUÛA BUS TRUYEÀN COÅNG MAÙY IN COMPUTER PRINTER DATA BUS Sô ñoà chaân cuûa coång maùy in ñöôïc moâ taû nhö sau: SÔ ÑOÀ CHAÂN CUÛA COÅNG MAÙY IN Baûng 01: Chöùc naêng cuûa caùc chaân coång maùy in Chaân Kyù hieäu Vaøo/ra YÙ nghóa Möùc taùc ñoäng 1 STROBE Loái ra Döõ lieäu ñaõ ñöôïc göõi ra Thaáp 2 D0 Loái ra Ñöôøng döõ lieäu, bit thöù 01 Ba traïng thaùi 3 D1 Loái ra Ñöôøng döõ lieäu, bit thöù 02 Ba traïng thaùi 4 D2 Loái ra Ñöôøng döõ lieäu, bit thöù 03 Ba traïng thaùi 5 D3 Loái ra Ñöôøng döõ lieäu, bit thöù 04 Ba traïng thaùi 6 D4 Loái ra Ñöôøng döõ lieäu, bit thöù 05 Ba traïng thaùi 7 D5 Loái ra Ñöôøng döõ lieäu, bit thöù 06 Ba traïng thaùi 8 D6 Loái ra Ñöôøng döõ lieäu, bit thöù 07 Ba traïng thaùi 9 D7 Loái ra Ñöôøng döõ lieäu, bit thöù 08 Ba traïng thaùi 10 ACK Loái vaøo Xaùc nhaän Thaáp 11 BUSY Loái vaøo Maùy in baän Cao 12 PE Loái vaøo Heát giaáy Cao 13 SLCT Loái vaøo Löïa choïn Cao 14 AF Loái ra Töï naïp Cao 15 ERROR Loái vaøo Loãi Cao 16 INIT Loái ra Ñaët laïi maùy in Thaùáp 17 SLCTIN Loái ra Choïn kieåu in Cao 18 GND Noái ñaát 19 GND Noái ñaát 20 GND Noái ñaát 21 GND Noái ñaát 22 GND Noái ñaát 23 GND Noái ñaát 24 GND Noái ñaát 25 GND Noái ñaát Coång maùy in laø moät ñeá noái goàm coù 25 chaân, trong ñoù coù 12 chaân ra, 05 chaân vaøo vaø 08 chaân noái mass. Cuï theå: Chaân 02¸09 : loaïi chaân ra, ñöôøng daãn döõ lieäu, laø daïng ñöôøng daãn moät chieàu, chæ ra. Chaân 01,10¸17 : caùc chaân tín hieäu baét tay giöõa maùy vi tính vaø maùy in. Chaân 18¸25 : caùc chaân mass. Caùc böôùc thöïc hieän quaù trình truyeàn döõ lieäu cuûa maùy vi tính sang maùy in nhö sau: CPU chôø cho ñeán khi ñöôøng tín hieäu BUSY xuoáng thaáp, tín hieäu naøy baùo cho bieát maùy in ñaõ saün saøng nhaän döõ lieäu. CPU xuaát maõ cuûa kyù töï keá tieáp ra coång maùy in. CPU ñöa bit STROBE xuoáng thaáp baùo hieäu cho maùy in bieát döõ lieäu môùi ñaõ ñöôïc ñöa ñeán coång maùy in. Maùy in nhaän döõ lieäu, nhaän döõ lieäu xong, traû bit BUSY veà möùc cao. Maùy in traû bit ACK veà möùc cao. CPU traû bit STROBE veà möùc cao. Maùy in traû ACK xuoáng thaáp. Maùy in thöïc hieän coâng vieäc in. Thöïc hieän in xong, maùy in cho BUSY xuoáng thaáp ñeå cho CPU bieát ñang saün saøng nhaän kyù töï khaùc. Coù theå bieåu dieãn caùc böôùc thöïc hieän cuûa daïng giao tieáp song song baát ñoàng boä qua coång maùy in nhö sau: GIAÛN ÑOÀ THÔØI GIAN Ñaëc ñieåm thuaän lôïi lôùn nhaát ôû hình thöùc truyeàn naøy laø taát caû caùc tín hieäu ñeàu naèm ôû caáp ñieän aùp töø 0V ñeán 5V, coù nghóa laø noù töông thích vôùi haàu heát caùc IC soá, loaïi TTL hay CMOS. Chính söï töông thích naøy giuùp cho vieäc giao tieáp trôû neân ñôn giaûn vaø deã daøng hôn. Tuy nhieân, ôû ñaây caùc ñöôøng tín hieäu döõ lieäu laø daïng tín hieäu moät chieàu neân trong vieäc giao tieáp vôùi caùc hình thöùc trao ñoåi tín hieäu hai (02) chieàu hay tín hieäu lôùn hôn phaïm vi moät byte thì coång maùy in khoâng thích hôïp. Taïo ra moät coång vaøo ra coù phaïm vi trao ñoåi lôùn hôn vaø ña duïng hôn coång maùy in laø nhieäm vuï ñaët ra cho ngöôøi nghieân cöùu. III. KHAÛO SAÙT VI MAÏCH PPI 8255A: Coù raát nhieàu IC daïng IO ñaûm nhieäm coâng vieäc giao tieáp trao ñoåi thoâng tin giöõa caùc heä thoáng nhö 82C37A, 82C42, 82C79, 82C55A, … vôùi phaïm vi söû duïng vaø khaû naêng laäp trình traïng thaùi vaøo ra. IC PPI 82C55A ñöôïc choïn vì thoûa ñöôïc yeâu caàu ñeå thieát keá maïch giao tieáp ña naêng. Tieán haønh khaûo saùt vi maïch ñeå thuaän tieän cho vieäc söû duïng, cuï theå khaûo saùt: caáu truùc phaàn cöùng, caáu truùc thanh ghi ñieàu khieån. 1. Caáu truùc phaàn cöùng PPI 82C55A: PPI 82C55A laø IC ngoaïi vi ñöôïc cheá taïo theo coâng ngheä LSI duøng ñeå giao tieáp song song giöõa caùc heä thoáng vi maïch hay giöõa Microprocessor vaø thieát bò ñieàu khieån (beân trong hay beân ngoaøi), coù 40 chaân, daïng DIL. SÔ ÑOÀ CHAÂN VAØ SÔ ÑOÀ LOGIC PPI 82C55A Teân caùc chaân PPI 82C55A: RESET : Reset input, chaân vaøo, xaùc laäp laïi traïng thaùi ban ñaàu. CS\ : Chip Select, chaân vaøo, choïn traïng thaùi hoaït ñoäng. RD\ : Read input, chaân vaøo, xaùc laäp traïng thaùi ñoïc. WR\ : Write input, chaân vaøo, xaùc laäp traïng thaùi ghi. A0, A1 : Port Address, chaân vaøo, xaùc laäp ñòa chæ. D0¸D7 : Döõ lieäu Bus (Bi – Direction), ba (03) traïng thaùi. PA7 – PA0 : Port A, ba traïng thaùi, coång giao tieáp A. PB7 – PB0 : Port B, ba traïng thaùi, coång giao tieáp B. PC7 – PC0 : Port C, ba traïng thaùi, coång giao tieáp C. PPI 82C55A giao tieáp vôùi caùc vi maïch khaùc thoâng qua 3 Bus: Bus döõ lieäu 8 bit D0¸D7, Bus ñòa chæ A1A2, Bus ñieàu khieån RD\, WR\, CS\, Reset. PPI 82C55A coù 03 Port xuaát nhaäp (I/O) coù teân laø Port A, Port B._., Port, moãi Port 8 bit. Vôùi 03 port döõ lieäu vaø moät thanh ghi ñieàu khieån PPI 82C55A coù theå ñöôïc öùng duïng vaøo nhieàu coâng duïng khaùc, IC queùt maõ baøn phím laø moät trong nhöõng öùng duïng aáy. Port A goàm caùc ñöôøng PA0¸PA7, Port B goàm caùc ñöôøng PB0¸PB7 , Port C goàm caùc ñöôøng PC0¸PC7. Caùc Port naøy coù theå laø caùc Port Input hay Output tuøy thuoäc vaøo leänh ñieàu khieån chöùa trong thanh ghi leänh. Maõ leänh, thoâng tin traïng thaùi vaø döõ lieäu ñeàu ñöôïc truyeàn treân 8 ñöôøng döõ lieäu D0¸D7, coâng vieäc cuûa PPI 82C55A tuøy thuoäc vaøo leänh ñieàu khieån chöùa trong thanh ghi ñieàu khieån. Caùc ñöôøng tín hieäu RD\, WR\ cuûa PPI 82C55A ñöôïc keát noái vôùi caùc ñöôøng tín hieäu ñoïc ghi cuûa heä thoáng vi maïch (hay Microprocessor). Tín hieäu Reset duøng ñeå khi khôûi ñoäng hay khôûi ñoäng laïi PPI 82C55A, khi bò Reset caùc thanh ghi beân trong cuûa PPI 82C55A ñeàu bò xoùa veà traïng thaùi maëc ñònh vaø PPI 82C55A ôû traïng thaùi chôø leänh, saún saøng laøm vieäc. Nhö vaäy, ñieàu tröôùc tieân khi söû duïng vi maïch naøy, neáu chuùng ta khoâng muoán söû duïng caùc giaù trò maëc ñònh, laø phaûi nhaäp leänh vaøo thanh ghi ñieàu khieån moãi khi reset laïi vi maïch. Khi giao tieáp vôùi Microprocessor ngoõ vaøo tín hieäu Reset naøy ñöôïc keát noái vôùi tín hieäu Reset Out cuûa vi xöû lyù. Chaân Reset taùc ñoäng möùc cao. Tín hieäu Chip Select (CS) duøng ñeå ñieàu khieån hoaït ñoäng cuûa PPI 82C55A. Tín hieäu naøy coù theå laøm cho vi maïch hoaït ñoäng bình thöôøng hay ôû traïng thaùi chôø. Trong vieäc keát hôïp Microprocessor vôùi nhieàu IC taïo thaønh moät heä thoáng hoaøn chænh, chaân CS giuùp vi xöû lyù choïn ñuùng IC caàn hoaït ñoäng. Chaân CS taùc ñoäng möùc thaáp. Caùc ñöôøng ñòa chæ A1A0 cuûa PPI 82C55A duøng ñeå löïa choïn caùc Port vaø thanh ghi. A1A0 = 00Bin duøng ñeå choïn Port A, A1A0 = 01Bin duøng ñeå löïa choïn Port B, A1A0 = 10Bin duøng ñeå choïn Port C, A1A0 = 11Bin duøng ñeå choïn thanh ghi ñieàu khieån. Caùc Port I/O cuûa PPI 82C55A chia ra laøm 2 nhoùm: Nhoùm A goàm Port A vaø 4 bit cao cuûa Port C, nhoùm B goàm Port B vaø 4 bit thaáp cuûa Port C. Ñeå söû duïng caùc Port cuûa PPI 82C55A ngöôøi laäp trình phaûi gôûi töø ñieàu khieån vaøo thanh ghi ñieàu khieån ñeå ñònh caáu hình cho caùc Port ñuùng theo yeâu caàu maø ngöôøi laäp trình mong muoán. Khi muoán thöïc hieän chöùc naêng baét tay vôùi caùc heä thoáng khaùc, PPI 82C55A duøng caùc bit PC7, PC6 vaø PC3 cuûa port C ñeå thöïc hieän chöùc naêng giao tieáp. Bit PC7 trôû thaønh bit OBFA (Output Buffer Full, taùc ñoäng möùc thaáp), khi coù döõ lieäu Microprocessor gôûi ra Port A, tín hieäu OBFA seõ yeâu caàu thieát bò beân ngoaøi nhaän döõ lieäu. Bit PC6 trôû thaønh bit ACKA (AcknowLedge Input, taùc ñoäng möùc thaáp), thieát bò nhaän döõ lieäu duøng tín hieäu naøy ñeå baùo cho PPI 82C55A bieát tín hieäu ñaõ ñöôïc nhaän vaø saún saøng nhaän döõ lieäu tieáp theo. Bit PC3 trôû thaønh INTRA (Interrupt Request, taùc ñoäng möùc cao), bit naøy coù möùc logic 1 khi 2 bit OBFA = 1, ACKA = 1 vaø bit INTEA (Interrupt Enable) ôû beân trong PPI 82C55A baèng 1. Tín hieäu INTRA taùc ñoäng ñeán ngoõ vaøo ngaét cuûa heä thoáng trung taâm ñeå baùo thieát bò beân ngoaøi ñaõ nhaän döõ lieäu ôû Port A. Caùc bit coøn laïi cuûa Port C: PC4, PC5 laø caùc bit xuaát hay nhaäp bình thöôøng tuøy thuoäc vaøo bit D3 trong töø ñieàu khieån. CAÁU TRUÙC TÖØ ÑIEÀU KHIEÅN MODE SET FLAG 1 = ACTIVE D7 D6 D5 D4 D3 D2 D1 D0 GROUP B PORT C (LOWER) 1 = INPUT 0 = OUTPUT PORT B 1 = INPUT 0 = OUTPUT MODE SELECTION 0 = MODE 0 1 = MODE 1 GROUP A PORT C (UPPER) 1 = INPUT 0 = OUTPUT PORT A 1 = INPUT 0 = OUTPUT MODE SELECTION 0 = MODE 0 1 = MODE 1 1X = MODE 2 Ñeå thuaän tieän cho vieäc quaûn lyù vieäc xuaát nhaäp vaø cuõng laø ñeå taêng theâm tính linh hoaït coâng vieäc giao tieáp, vi maïch PPI 82C55A phaân chia ra hai caáu hình laøm vieäc khaùc nhau ñoù laø laøm vieäc theo nhoùm A vaø nhoùm B. Tuy nhieân, cuõng coù theå khoâng chuù yù ñeán vieäc phaân chia naøy trong giao tieáp trao ñoåi thoâng thöôøng, khoâng caàn nhieàu tín hieäu giao tieáp. 2. Caáu truùc thanh ghi ñieàu khieån phaàn meàm cuûa PPI 82C55A: Do caùc Port ra cuûa PPI 82C55A ñöôïc chia ra laøm 2 nhoùm A vaø nhoùm B taùch rôøi neân töø ñieàu khieån cuûa PPI 82C55A cuõng ñöôïc chia laøm 2 nhoùm. a. Caùc bit D2D1D0 duøng ñeå caáu hình cho nhoùm B Bit D0 duøng ñeå thieát laäp 4 bit thaáp cuûa Port C, D0 = 0 – Port C thaáp laø Port xuaát döõ lieäu (Output), D0 = 1 – Port C thaáp laø Port nhaäp döõ lieäu (Input). Bit D1 duøng ñeå thieát laäp Port B, D1 = 0 – Port B laø Port xuaát döõ lieäu (Output), D1 = 1 – Port B laø Port nhaäp döõ lieäu (Input). Bit D2 duøng ñeå thieát laäp Mode ñieàu khieån cuûa nhoùm B: + D2 = 0: Nhoùm B hoaït ñoäng ôû Mode 0. + D2 = 1: Nhoùm B hoaït ñoäng ôû Mode 1 b. Caùc bit D6D5D4D3 duøng ñeå caáu hình cho nhoùm A Bit D3 duøng ñeå thieát laäp 4 bit cao cuûa Port C, D3 = 0 – Port C laø Port xuaát döõ lieäu (Output), D3 = 1 – Port C laø Port nhaäp döõ lieäu (Input). Bit D4 duøng ñeå thieát laäp Port A, D4 = 0 – Port A xuaát döõ lieäu (Output), D4=1 – Port A laø Port nhaäp döõ lieäu (Input). Bit D6D5 duøng ñeå thieát laäp Mode ñieàu khieån cuûa nhoùm A: + D6D5 = 00: Nhoùm A hoaït ñoäng ôû Mode 0. + D6D5 = 01: Nhoùm A hoaït ñoäng ôû Mode 1. + D6D5 = 1x: Nhoùm A hoaït ñoäng ôû Mode 2 c. Caùc nhoùm A vaø B ñöôïc caáu hình ôû Mode 0 Töø ñieàu khieån khi 2 nhoùm A vaø B laøm vieäc ôû Mode 0: 1 0 0 X X 0 X X ÔÛ Mode 0 caùc Port A, Port B, Port C thaáp vaø Port C cao laø caùc Port xuaát hoaëc nhaäp döõ lieäu ñoäc laäp. Do coù 4 bit ñeå löïa choïn neân coù 16 töø ñieàu khieån khaùc nhau cho 16 traïng thaùi xuaát hay nhaäp cuûa 4 Port. d. Caùc nhoùm A vaø B ñöôïc caáu hình ôû Mode 1 Töø ñieàu khieån khi 2 nhoùm A vaø B laøm vieäc ôû Mode 1: 1 0 1 X X 1 X X ÔÛ Mode 1 caùc Port A, Port B laøm vieäc xuaát nhaäp coù choát (Strobed I/O). ÔÛ Mode naøy 2 Port A vaø Port B hoaït ñoäng ñoäc laäp vôùi nhau vaø moãi Port coù 1 Port 4 bit ñieàu khieån hay döõ lieäu. Caùc Port 4 bit ñieàu khieån hay döõ lieäu ñöôïc hình thaønh töø 4 bit thaáp vaø 4 bit cao cuûa Port C. Khi PPI 82C55A ñöôïc caáu hình ôû Mode 1, thieát bò giao tieáp PPI 82C55A nhaän döõ lieäu, thieát bò ñoù phaûi taïo ra moät tín hieäu yeâu caàu PPI 82C55A nhaän döõ lieäu, ngöôïc laïi PPI 82C55A muoán gôûi tín hieäu ñeán 1 thieát bò khaùc, PPI 82C55A phaûi taïo ra 1 tín hieäu cho thieát bò ñoù nhaän bieát döõ lieäu ñaõ ñöôïc xuaát ra, tín hieäu yeâu caàu ñoù goïi laø tín hieäu Stobe. e. Nhoùm A laøm vieäc ôû caáu hình Mode 1 Caáu hình Port A ñöôïc laø Port nhaäp döõ lieäu: Caùc ñöôøng tín hieäu cuûa Port C moät phaàn trôû thaønh caùc ñöôøng tín hieäu ñieàu khieån, tín hieäu choát vaø moät phaàn laø ñöôøng döõ lieäu cuûa Port A. Maõ leänh töø ñieàu khieån: 1 0 1 1 X X X X SÔ ÑOÀ LAØM VIEÄC CUÛA NHOÙM A CHÖÙC NAÊNG NHAÄP DÖÕ LIEÄU Bit PC4 trôû thaønh bit STBA (Strobe Input, taùc ñoäng möùc thaáp nhaát), ñöôïc duøng ñeå choát döõ lieäu ôû ngoõ vaøo PA7¸PA0 vaøo maïch choát beân trong. Bit PC5 trôû thaønh bit IBFA (Input Buffer Full, taùc ñoäng möùc cao), duøng ñeå baùo cho thieát bò beân ngoaøi bieát döõ lieäu ñaõ ñöôïc choát vaøo beân trong. Bit PC3 trôû thaønh bit INTRA (interrupt Request, taùc ñoäng möùc cao), bit naøy coù möùc logic 1 khi STBA, IBFA vaø INTEA (Interrupt Enable) ôû beân trong PPI 82C55A baèng 1. Bit INTEA ñöôïc thieát laäp möùc logic 1 hay 0 döôùi söï ñieàu khieån cuûa phaàn meàm duøng caáu truùc bit Set/Reset cuûa PPI 82C55A. Bit INTEA duøng ñeå cho pheùp tín hieäu IBFA xuaát hieän taïi ngoõ ra. Tín hieäu INTRA taùc ñoäng ñeán ngoõ vaøo ngaét cuûa heä thoáng trung taâm ñeå döõ lieäu môùi ñaõ xuaát hieän ôû Port A. Chöông trình phuïc vuï ngaét ñoïc döõ lieäu vaøo vaø xoùa yeâu caàu. Caùc bit coøn laïi cuûa Port C: PC6, PC7 laø caùc bit xuaát hay nhaäp bình thöôøng vaø tuøy thuoäc vaøo bit D3 trong töø ñieàu khieån. Caáu hình Port A ñöôïc laø Port xuaát döõ lieäu: Töông töï caáu hình nhaäp döõ lieäu, caáu hình xuaát döõ lieäu chæ khaùc ôû töø ñieàu khieån: 1 0 1 0 X X X X SÔ ÑOÀ LAØM VIEÄC CUÛA NHOÙM A CHÖÙC NAÊNG XUAÁT DÖÕ LIEÄU Quaù trình thöïc hieän chöùc naêng, vi maïch laøm vieäc theo söï dieàu khieån tröïc tieáp cuûa töø ñieàu khieån. Bit D0 duøng ñeå Set/Reset bit INTEA, khi D0=1 thì INTEA=1 (cho pheùp ngaét), khi D0 = 0 thì INTE = 0 (khoâng cho pheùp ngaét). Ba bit D1¸D3 duøng ñeå choïn 1 bit cuûa Port C, gaùn möùc logic cuûa bit D0 cho bit cuûa Port ñaõ choïn. D7 D6 D5 D4 D3 D2 D1 D0 BIT SET/RESET 1 = SET 0 = RESET 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 Khoâng quan taâm Veà nguyeân lyù, ba (03) bit D4¸D6 laø khoâng caàn quan taâm ñeán, caùc bit naøy duøng ñeå ñieàu khieån cho nhoùm B. Nhöng trong thöïc teá, ñeå traùnh tranh chaáp giöõa hai nhoùm laøm vieäc naøy, Port A vaø Port B thöôøng ñöôïc caáu hình vôùi mode khaùc nhau. (Ví duï nhoùm A hoaït ñoäng ôû Mode 2, nhoùm B laøm vieäc ôû Mode 0.) f. Nhoùm A cuûa PPI 82C55A laøm vieäc ôû Mode 2. SÔ ÑOÀ CUÛA NHOÙM A LAØM VIEÄC ÔÛ MODE 2 Mode 2 laø kieåu hoaït ñoäng Strobed Bi – directional 10, söï khaùc bieät vôùi Mode 1 laø Port coù hai chöùc naêng xuaát vaø nhaäp döõ lieäu. Caùc ñöôøng tín hieäu cuûa Port C trôû thaønh caùc ñöôøng tín hieäu ñieàu khieån hay döõ lieäu cuûa Port A. Port laøm vieäc ôû cheá ñoä nhaäp hay xuaát laø tuøy thuoäc vaøo bit D4 cuûa töø ñieàu khieån. 1 1 X X X X X X Töø ñieàu khieån khi nhoùm A hoaït ñoäng ôû Mode 2: Trong caáu hình naøy bit PC7 trôû thaønh tín hieäu OBFA, PC6 trôû thaønh tín hieäu ACKA, PC5 thaønh tín hieäu IBFA, PC4 thaønh tín hieäu STBA, vaø bit PC3 trôû thaønh tín hieäu INTRA. Khi OBFA=1, INTEA1=1 hoaëc IBFA=1, INTEA2 =1. Caùc bit PC0¸PC2 coøn laïi coù theå laø caùc bit I/O tuøy thuoäc vaøo caùc bit ñieàu khieån cuûa nhoùm B. Chuù yù khi nhoùm A laøm vieäc ôû Mode2, nhoùm B chæ ñöôïc pheùp hoaït ñoäng ôû Mode 0. Caáu hình naøy coøn cho pheùp Set / Reset töøng bit cuûa Port C. Töø ñieàu khieån naøy khaùc vôùi töø ñieàu khieån caáu hình Mode 1 laø bit D7 = 0. g. Nhoùm B laøm vieäc ôû caáu hình mode 1: Trong caáu hình naøy, Port B coù khaû naêng trôû thaønh coång nhaäp hay xuaát döõ lieäu, coâng vieäc naøy tuøy thuoäc vaøo bit ñieàu khieån D1. Caùc ñöôøng cuûa Port C trôû thaønh caùc ñöôøng tín hieäu ñieàu khieån hay ñöôøng döõ lieäu cuûa Port B. Töø ñieàu khieån cuûa mode naøy laø: 1 X X X X 1 X X SÔ ÑOÀ LAØM VIEÄC CUÛA NHOÙM B CHÖÙC NAÊNG NHAÄP DÖÕ LIEÄU Bit PC2 bieán thaønh tín hieäu STBB (taùc duïng möùc thaáp), bit PC1 thaønh bit IBFB (taùc duïng möùc cao) vaø bit PC0 trôû thaønh tín hieäu INTRB (taùc duïng möùc cao). Chöùc naêng cuûa caùc bit ñieàu khieån gioáng nhö nhoùm A hoaït ñoäng ôû Mode 1. SÔ ÑOÀ LAØM VIEÄC CUÛA NHOÙM A CHÖÙC NAÊNG XUAÁT DÖÕ LIEÄU Khi laøm vieäc ôû mode 0, caû hai nhoùm hôïp laïi laøm ba (03) coång xuaát nhaäp rieâng bieät vaø coâng vieäc cuûa caùc Port naøy tuøy thuoäc vaøo thanh ghi leänh ñieàu khieån. 3. ÖÙùng duïng cuûa vi maïch trong thöïc teá vaø hình thöùc giao tieáp cuûa PPI 82C55A ñöôïc söû duïng trong thieát keá: IC giao tieáp IO PPI 82C55A ñöôïc öùng duïng trong nhieàu heä thoáng ñieàu khieån vi maïch; duøng chung Microprocessor, vi maïch PPI 82C55A ñoùng vai troø laø IC giao tieáp giöõa Microprocessor vaø ñoái töôïng ñieàu khieån, ngoaøi ra 82C55A coøn coù khaû naêng môû roäng tín hieäu ñieàu khieån (baèng hai nhoùm traïng thaùi A vaø B). Caùc öùng duïng cuûa vi maïch PPI 82C55A laø tryeàn döõ lieäu, giaûi maõ hieån thò, giaûi maõ baøn phím, giao tieáp ñieàu khieån tuøy theo yeâu caàu. Nhö ñaõ bieát, PPI 82C55A laø moät vi maïch vôùi ba (03) coång giao tieáp vaø moät thanh ghi ñieàu khieån neân khi söû duïng chæ caàn hai (02) ñöôøng ñòa chæ. Do ñoù, coù theå giao tieáp kieåu IO hay kieåu boä nhôù. Veà chöùc naêng cuûa PPI 82C55A khoâng coù gì thay ñoåi trong hai kieåu giao tieáp naøy, chæ thay ñoåi veà ñòa chæ truy xuaát. Kieåu IO, ñòa chæ cuûa Port hay thanh ghi coù ñoä daøi 8 bit, kieåu boä nhôù, ñòa chæ cuûa Port hay thanh ghi seõ coù ñoä daøi 16 bit gioáng nhö boä nhôù neân goïi laø kieåu boä nhôù. Khi thieát keá giao tieáp theo kieåu boä nhôù thì moãi Port hay moãi thanh ghi ñieàu khieån cuûa PPI 82C55A ñöôïc xem laø oâ nhôù. Khi ñoù Microprocessor giao tieáp vôùi vi maïch gioáng nhö boä nhôù vaø 2 leänh IN vaø OUT khoâng coøn taùc duïng. Kieåu boä nhôù chæ ñöôïc söû duïng trong caùc heä thoáng nhoû, ñôn giaûn. Do tính chaát laø moät heä thoáng tuy ña naêng nhöng söû duïng nhöõng kieán thöùc cô baûn neân maïch giao tieáp ñöôïc thieát keá theo kieåu ñôn giaûn nhaát. Maïch thieát keá theo kieåu giao tieáp boä nhôù. Tröôùc heát, caûm bieán laø boä phaän thu nhaän caùc tín hieäu khoâng ñieän nhö aùnh saùng, nhieät ñoä, ñoä aåm, soùng aâm thanh, ñieän töø, … vaø bieán chuùng thaønh caùc ñaïi löôïng coù theå caân, ño, ñeám ñöôïc (noùi chung, laø caùc ñaïi löôïng khaù töôøng minh). Vaäy caûm bieán quang ñieän chính laø boä phaän bieán ñoåi aùnh saùng thaønh ñaïi löôïng ñieän. Khaùi nieäm veà caûm bieán quang ñieän laø vaäy, coøn nguyeân lyù hoaït ñoäng cuûa chuùng laø döïa vaøo ñònh luaät baûo toaøn naêng löôïng vaø ñònh luaät baûo toaøn vaät chaát, vaát chaát khoâng maát ñi maø chæ bieán ñoåi töø daïng naøy sang daïng khaùc. ÔÛ ñaây, naêng löôïng cuõng khoâng maát ñi maø chæ bieán ñoåi töø daïng naøy sang daïng khaùc. Ñoái vôùi caûm bieán quang ñieän, naêng löôïng aùnh saùng (quang naêng) döôùi daïng caùc haït Photon ñöôïc linh kieän caûm bieán quang ñieän haáp thuï vaø chuyeån ñoåi thaønh caùc chuyeån ñoäng coù höôùng cuûa caùc Electron töï do beân trong vaät lieäu laøm neân linh kieän. Tuøy thuoäc vaøo cöôøng ñoä thu nhaän caùc Photon maø söï chuyeån dôøi cuûa caùc Electron laø maïnh hay yeáu, ñieàu naøy cuõng coù nghóa laø doøng phaùt (hay aùp) sinh ôû ñaàu tín hieäu ra laø cao hay thaáp. Treân laø nguyeân lyù hoaït ñoäng chung, döïa vaøo tính chaát rieâng cuûa töøng nguyeân lyù maø ngöôøi ta phaân linh kieän caûm bieán quang thaønh caùc loaïi sau: Caûm bieán ñieän trôû. Caûm bieán Diod. Caûm bieán BJT. Caûm bieán Opto-coupler. … Trong taàm nghieân cöùu cuûa ñeà taøi, linh kieän caûm bieán quang döïa treân caùc böùc xaï chính laø ñònh höôùng chính cho vieäc tìm hieåu vaø nghieân cöùu. Trong nhieàu lónh vöïc khoa hoïc kyõ thuaät, con ngöôøi ñaõ vaø ñang söû duïng caùc böùc xaï thuoäc nhöõng daûi khaùc nhau cuûa phoå ñieän töø, phoå bieán nhaát laø: Böùc xaï thuoäc phoå taàn quang hoïc bao goàm: aùnh saùng thaáy ñöôïc, tia hoàng ngoaïi vaø tia töû ngoaïi. Tia X, tia Y, haït a cuõng nhö haït b. I. CAÁU TAÏO VAØ NGUYEÂN LYÙ LAØM VIEÄC CUÛA MOÄT SOÁ LINH KIEÄN QUANG ÑIEÄN TÖÛ: 1. Quang ñieän trôû: a. Caáu taïo: Quang trôû coù hình daïng beân ngoaøi khoâng gioáng nhö nhöõng ñieän trôû thoâng thöôøng, chuùng coù moät lôùp voû ngoaøi baèng chaát deûo, söù hay kim loaïi nhöng ñaëc ñieåm noåi baät laø coù moät cöûa soå baèng thuûy tinh ñeå aùnh saùng ñi xuyeân qua. Quang ñieän trôû duøng trong coâng nghieäp ñöôïc cheá taïo töø Sulfit chì ñeå möùc chæ thò nhieät ñoäng vaø tình traïng nung noùng ôû nhieät ñoä töông ñoái thaáp (töø 200 ñeán 400oC). Ñaëc tuyeán phoå nhieät cuûa quang ñieän trôû ñöôïc theå hieän nhö hình sau: Hình 01: Ñaëc tuyeán phoå cuûa Sulfitbitmuyt vaø Sulfitcatmi Theo ñöôøng ñaëc tuyeán cuûa Sulfitbitmuyt, Sulfit chì coù taùc duïng maïnh trong khu vöïc böùc xaï hoàng ngoaïi (l = 1,8 ¸ 2,5 mm). Hình 02: Sô ñoà caáu taïo quang trôû b. Nguyeân lyù hoaït ñoäng: Khi chöa ñöôïc chieáu saùng, doøng ñieän qua quang trôû vaø qua maïch nhoû (hay lôùn laø tuøy loaïi), goïi laø doøng ñieän toái. Khi ñöôïc chieáu saùng, ñieän trôû noäi cuûa quang trôû giaûm (hay taêng laø tuøy loaïi) ñaùng keå laøm cho doøng qua taêng theo. Giaù trò cuûa ñieän trôû tuøy thuoäc vaøo cöôøng ñoä aùnh saùng chieáu vaøo qua cöûa soå thuûy tinh. Hieän töôïng naøy tuøy thuoäc vaøo loaïi chaát laøm neân quang trôû ñöôïc söû duïng, ñoä taïp chaát vaø chieàu daøi böôùc soùng. c. ÖÙng duïng: Quang ñieän trôû ñöôïc öùng duïng roäng trong nhieàu lónh vöïc caûm bieán aùnh saùng khaùc nhau tuøy thuoäc vaøonguyeân lyù hoaït ñoäng cuûa chuùng. Cuï theå laø caùc lónh vöïc sau: Phaàn töû phaùt hieän. Ño ñoä aùnh saùng trong quang phoå. Caûm bieán trong heä töï ñoäng hoùa. Baûo veä, chuyeån maïch, baùo ñoäng, … 2. Diod quang: a. Caáu taïo: Diod quang thöôøng ñöôïc caáu taïo töø chaát baùn daãn phoå bieán nhö Gecmani hay Silic. Chuùng cuõng nhö caùc diod khaùc nhöng ñaëc tröng cuûa chuùng chính laø luoân coù moät cöûa soå ñeå aùnh saùng loït vaøo taùc ñoäng leân lôùp tieáp giaùp PN. Diod quang coù theå ñöôïc söû duïng vôùi hai muïc ñích hoaøn toaøn khaùc nhau, pin maët trôøi vaø diod caûm bieán quang. b. Nguyeân lyù hoaït ñoäng: * Pin maët trôøi: Khi ñöôïc chieáu saùng, dieän tích treân moái noái PN ñöôïc taêng cöôøng laøm cho söùc ñieän ñoäng treân hai ñaàu moái noái ñöôïc hình thaønh. Doøng ñieän seõ xuaát hieän khi maïch ngoaøi vaø diod taïo thaønh moät voøng kheùp kín. Giaù trò cuûa ñieän aùp xuaát hieän tuøy thuoäc vaøo chaát baùn daãn laøm neân diod. * Diod caûm bieán quang: Diod ñöôïc phaân cöïc nghòch ñoái vôùi nguoàn cung caáp. Khi khoâng ñöôïc chieáu saùng, diod phaân cöïc nghòch laøm cho maïch gioáng nhö bò hôû, chæ coù löôïng doøng ræ nhoû troâi qua. Khi ñöôïc chieáu saùng, moái noái PN nhö ñöôïc noái taét, doøng coù theå ñoå qua diod. c. ÖÙng duïng: Diod quang ñöôïc duøng trong caùc lónh vöïc sau: Ño aùnh saùng. Caûm bieán quang ño toác ñoä. Ñieàu khieån töï ñoäng trong caùc thieát bò chuyeân veà quang hoïc. Caûm bieán trong heä töï ñoäng hoùa. Baûo veä, chuyeån maïch, baùo ñoäng, … 3. Transistor quang: a. Caáu taïo: BJT quang cuõng gioáng caùc linh kieän quang ñieän khaùc, ñeàu coù cöûa soå thuûy tinh ñeå cho aùnh saùng xuyeân qua. BJT quang ñeå hôû moái noái BC, ba lôùp baùn daãn taïo neân hai lôùp tieáp giaùp. Moät trong nhöõng lôùp ngoaøi coù kích thöôùc nhoû ñeå quang khoâng theå chieáu vaøo giöõa lôùp neàn. Lôùp neàn phaûi ñuû moûng ñeå ñöa ñeå löôïng quang haáp thuï coù theå taùc ñoäng ñeán lôùp tieáp giaùp keà beân. Hình 03: Sô ñoà caáu taïo BJT quang b. Nguyeân lyù hoaït ñoäng: BJT quang khoâng laøm vieäc theo kieåu töï kích, khi coù söï taùc duïng cuûa aùnh saùng moái noái taïo ra doøng ñieän taùc ñoäng ñeán Transistor quang, doøng ñieän naøy gioáng nhö doøng kích vaøo cöïc B cuûa caùc BJT thöôøng. Ñoä nhaïy cuûa BJT quang tuøy thuoäc vaøo moái noái BC vaø ñoä lôïi cuûa maïch. c. ÖÙng duïng: BJT quang vôùi ñieän aùp phaân cöïc töø 3 ñeán 5V (nguoàn aùp thoâng duïng trong nhieàu lónh vöïc thieát keá), ñoä nhaïy tín hieäu lôùn neân ñöôïc söû duïng khaù roäng raûi vaø coù theå thay theá ñöôïc nhieàu linh kieän caûm bieán quang ñieän. Transistor quang ñöôïc öùng duïng roäng raûi trong vieäc ñoùng ngaét maïch, ñieàu khieån töï ñoäng, tín hieäu khuaát, maïch ñeám,… 4. Boä gheùp quang Opto coupler: Hình 04: Sô ñoà caáu taïo boä gheùp quang Opto-coupler a. Caáu taïo: Phaàn töû phaùt quang laø Diod phaùt quang (LED, Light Emitter Diod) coøn phaàn töû caûm bieán quang laø linh kieän caûm bieán quang, thöôøng söû duïng nhaát laø BJT quang. b. Nguyeân lyù hoaït ñoäng: Khi coù tín hieäu phaân cöïc thuaän cho Led, diod phaùt quang naøy seõ phaùt saùng vaø kích thích vaøo moái noái BC cuûa BJT quang (phaàn töû caûm bieán quang) laøm cho BTJ laøm vieäc ôû traïng thaùi daãn (thöôøng laø daãn baûo hoøa). c. ÖÙng duïng: Vôùi öu ñieåm laø taàn soá ñaùp öùng nhanh, toån hao ít ngöôøi ta thöôøng söû duïng boä gheùp quang Opto-coupler vaøo caùc phaïm vi ñoùng ngaét maïch ñieàu khieån. II. CAÙC LOAÏI CAÛM BIEÁN QUANG TRONG COÂNG NGHIEÄP: Vôùi moâi tröôøng laøm vieäc trong hoùa chaát, nhieät ñoä cao,… caùc linh kieän caûm bieán quang phaûi ñaûm baûo ñaït caùc yeáu caàu sau: Coù ñoä beàn cô khí cao, giaûm ñöôïc chaán ñoäng, vaän toác queùt cao, choáng run cô hoïc, … Coù ñoä nhaïy caûm cao, giaûm toái thieåu ñöôïc aûnh höôûng cuûa moâi tröôøng laøm vieäc,… Thích hôïp vôùi nhu caàu vaø ñaùp öùng ñöôïc nhu caàu söû duïng. Caùc haõng saûn xuaát thieát bò töï ñoäng ñaõ ñöa ra thò tröôøng caùc loaïi caûm bieán ñaït ñöôïc caùc yeâu caàu noùi treân. Ñeà taøi öùng duïng caûm bieán quang (Photo Electric Sensors) neân chæ taäp trung tìm hieåu veà loaïi caûm bieán naøy. Veà öùng duïng ngöôøi ta coù theå chia caûm bieán quang ra laøm hai loaïi: Loaïi chuøm tia xuyeân. Loaïi taùn xaï. Tieán haønh phaân tích hai theå loaïi treân ñeå tìm ra giaûi phaùp cho ñeà taøi. 1. Loaïi chuøm tia xuyeân: a. Nguyeân taéc hoaït ñoäng: Boä thu vaø boä phaùt cuøng naèm treân cuøng moät ñöôøng thaúng. Duøng kó thuaät phaùt hieän do che khuaát hay vaät theå laøm cho aùnh saùng coù böôùc soùng ñaõ choïn khoâng theå xuyeân thaáu. Kó thuaät naøy thöôøng ñöôïc söû duïng trong caùc boä phaän ñeám vaø kieåm tra saûn phaåm. Hình 05: Sô ñoà nguyeân lyù hoaït ñoäng cuûa boä thu phaùt loaïi chuøm tia xuyeân b. Caùc thoâng soá ñaùng chuù yù: Hình daïng : hình truï hay khoái chöõ nhaät. Taàm caûm nhaän : toái ña khoaûng 20 meùt. Ñaàu vaøo : 2¸4 ñaàu daây. Ñaàu ra : Rôø le (Relay). Taàn soá chuyeån : 1,5¸200Hz. c. Nhaän xeùt: Vôùi nguyeân lyù hoaït ñoäng nhö treân, coù theå öùng duïng ñeå thieát keá ñaàu ñoïc cho ñeà taøi. Nhìn chung, duø laø khaû thi nhöng maïch raát khoù thöïc hieän, vì lyù do: Linh kieän raát ñaét. Thöïc hieän xuyeân qua moät lôùp giaáy, neáu nhö ñuïc loå thì khoâng khaû thi coøn nhö töï xuyeân vaät chaát (giaáy) thì ñuïng ñeán ñoä daày moûng vaø traéng ñen cuûa giaáy (phaåm chaát giaáy). Raát khoù ñeå caûi tieán ñaàu ñoïc vì ñaàu doø caûm bieán quang trong tröôøng hôïp naøy chæ thích öùng vôùi söï chuyeån ñoäng tònh tieán (trong khaû naêng laø moät sinh vieân, kinh phí thöïc hieän khoâng cao, khoâng theå thöïc hieän) hoaëc coá ñònh. Ñoä tinh tia queùt, theo khaû naêng cho pheùp thöïc hieän, khoâng cao. Keát luaän sau cuøng laø: phöông phaùp naøy khoâng phaûi laø toái öu hoaøn toaøn ñoái vôùi ngöôøi nghieân cöùu. 2. Loaïi phaûn hoài: a. Nguyeân taéc hoaït ñoäng: Moãi vaät chaát ñeàu coù tính chaát haáp thuï (vaät ñen) hay phaûn xaï (göông) naêng löôïng töø ngoaøi taùc ñoäng vaøo. Tuøy theo möùc ñoä phaûn xaï cuûa vaät theå khi nhaän moät chuøm tia tôùi chieáu ñeán maø chuøm tia phaûn xaï coù theå laø maïnh hay yeáu. Caûm bieán quang döïa theo nguyeân taéc phaûn hoài chính laø döïa treân nguyeân taéc phaûn xaï cuûa chuøm tia phaûn xaï. Hình 06: Sô ñoà nguyeân lyù hoaït ñoäng cuûa boä thu phaùt loaïi phaûn hoài b. Caùc thoâng soá tieâu chuaån: Hình daïng : hình truï hay khoái chöõ nhaät. Taàm caûm nhaän : 1,5¸70mm. Ñaàu vaøo : 2 ñaàu daây, 12VDC hay 24VDC. Ñaàu ra : 1 ñaàu daây tín hieäu. Taàn soá chuyeån : 1,5¸200Hz. Theo taøi lieäu cuûa haõng “PEPPERL+FUCHS” veà cöôøng ñoä phaûn xaï tia hoàng ngoaïi treân caùc gam maøu vaø vaät chaát ta coù baûng sau: Vaät chaát Phaûn xaï Töø nguyeân baûn Traéng tieâu chuaån 90% Testcard standard white Xaùm tieâu chuaån 18% Testcard standard grey Giaáy traéng 80% White paper Chöõ in treân baùo 55% News print Goã thoâng saïch 75% Clean pine wood Nuùt baàn 35% Cork Taám baûng goã saïch 20% Wooden pallets clean Boït bia 70% Beer foam Chai nhöïa trong 40% Clear plastic bottes Chai nhöïa naâu trong 60% Transparent brown plastic bottles Nhöïa traéng ñuïc 87% Opaque white plastic Nhöïa ñen 14% Black plastic Ñen tuyeàn 04% Black neoprene Gaùy xoaén ñen 02% Black foam carpet backing Loáp xe hôi 1.5% Automobile tyres Nhoâm nguyeân chaát 140% Aluminium, untreated Theùp boùng laùng 400% Polished stainless steel c.Nhaän xeùt: Vôùi nguyeân lyù hoaït ñoäng nhö treân, raát toát ñeå öùng duïng thieát keá ñaàu ñoïc cho ñeà taøi. Nhìn chung, duø laø khaû thi nhöng maïch raát khoù thöïc hieän, vì lyù do: Linh kieän raát ñaét. Thöïc hieän phaûn hoài treân moät lôùp giaáy coù raát nhieàu tia taùn xaï gaây aûnh höôûng ñeán vuøng laân caän neáu nhö söû duïng nhieàu ñaàu queùt saùt lieàn nhau. Ñoä tinh tia queùt, theo khaû naêng cho pheùp thöïc hieän, khoâng cao. Keát luaän sau cuøng laø: phöông phaùp naøy khoâng phaûi laø toái öu hoaøn toaøn ñoái vôùi ngöôøi nghieân cöùu nhöng mang tính khaû thi hôn neáu thöïc hieän coâng vieäc caûi tieán cuõng nhö tìm vaät töông öùng thay theá. d. Giaûi phaùp: * Maïch phaùt hoàng ngoaïi: Diod phaùt hoàng ngoaïi coù böôùc soùng l = 950nm (daõy phaùt l = 900 ¸ 1020 nm), thôøi gian treå laø 0,5ms, doøng tieâu thuï 20 ¸ 30mA. Khi söû duïng duøng theâm moät ñieän trôû haïn doøng töø 180 ¸ 330W. * Maïch thu hoàng ngoaïi: Maïch thu hoàng ngoaïi coù moät Diod thu loaïi Silic, DIN (Diod Infraronge), ñoä nhaïy l = 900 ¸ 950 nm thích hôïp vôùi maïch phaùt hoàng ngoaïi. Söû duïng tröïc tieáp boä thu hoàng ngoaïi nhaän tín hieäu cuûa boä ñieàu khieån xa cuûa Television SONY, giaù thò tröôøng khoaûng 10.000 ÑVN. Boä thu hoàng ngoaïi naøy hoaït ñoäng oån ñònh ôû möùc aùp +5VDC, coù ba chaân (moät chaân VCC, moät chaân Mass vaø moät chaân tín hieäu). * Nguyeân lyù hoaït ñoäng: Khi heä thoáng laøm vieäc, ñaàu ñoïc luoân ôû traïng thaùi ñoïc. Ñaàu queùt nhaän tín hieäu ñoïc töø maïch trung taâm (noái Mass), ñeøn hoàng ngoaïi chieáu saùng, phaùt ra tín hieäu hoàng ngoaïi. Tuøy theo beà maët cuûa tôø giaáy laø saùng hay toái maø ñoä phaûn xaï tia hoàng ngoaïi maïch hay yeáu. Ñieän aùp ñöôøng tín hieäu cuûa ñaàu ñoïc tuøy thuoäc vaøo cöôøng ñoä chieáu cuûa tia hoàng ngoaïi, ñieän aùp naøy seõ qua boä khueách ñaïi thuaät toaùn (Opamp) ñeå chuyeån ñoåi möùc tín hieäu 0 hay 1. Tín hieäu naøy seõ ñöôïc truyeàn veà slot giao tieáp chôø CPU ñoïc vaøo. * Böôùc caûi tieán so vôùi ñeà taøi tröôùc: Ñaàu queùt ñöôïc khoáng cheá qua moät loã cöïc nhoû ñeå laøm taêng ñoä tinh cho tia queùt. Ñaàu queùt vaø ñaàu ñoïc ñöôïc thieát keá coù theå chuyeån ñoäng tònh tieán treân cuøng moät caàn queùt do moät ñoäng cô böôùc loaïi nhoû ñieàu khieån, laáy trong oå ñóa meàm1,2 MB. Caàn queùt, mang ñaàu ñoïc vaø ñaàu queùt coù theå tröôït tònh tieán treân thanh tröôït doïc theo chieàu ngang cuûa giaáy queùt. Caàn queùt do moät ñoäng cô böôùc loaïi lôùn ñieàu khieån, laáy trong maùy in kim-ñoäng cô keùo ñaàu oå kim. Lôïi ñieåm cuûa nhöõng caûi tieán naøy laø: Ñoä tinh tia queùt cao hôn vaø ñaàu ñoïc_queùt coù theå chuyeån ñoäng tònh tieán: thích hôïp cho xöû lyù aûnh möùc saéc neùt hôn, roâng hôn theo ñuùng yeâu caàu. Caàn queùt di ñoäng ñöôïc: coù theå ñoïc ñöôïc moïi phöông thöùc boá trí vò trí ñaùnh daáu traéc nghieäm. Duøng ít ñaàu ñoïc_queùt hôn. Khuyeát ñieåm cuûa nhöõng caûi tieán naøy laø: Toån hao coâng suaát cao hôn. Tieáng oàn do ñoäng cô sinh ra (raát nhoû). Keát luaän: Ngöôøi thöïc hieän ñeà taøi quyeát ñònh aùp duïng giaûi phaùp vaø nhöõng caûi tieán naøy ñeå thöïc hieän ñeà taøi chính vì tính linh hoaït, tính kinh teá cuõng ñoä tin caäy sau khi ñaõ thöïc nghieäm. Do moãi linh kieän ñöôïc thieát keá bôûi moät nhu caàu nhaát ñònh naøo ñoù, trong moät hay moät soá heä thoáng. Ngoaøi caùc caùc IC chuyeân duøng laø nhaø saûn xuaát thieát keá theo moät chuaån möïc rieâng neân tính oån ñònh cuûa chuùng khaù cao, rieâng caùc IC soá laø ñöôïc thieát keá cho nhu caàu roäng raõi cuûa nhieàu nhaø thieát keá neân khi aùp duïng cho vieäc thieát keá moät maïch coù tính naêng rieâng bieät ñoâi khi xuaát hieän hieän töôïng hoaït ñoäng baát oån. Ñeå giuùp cho heä thoáng hoaït ñoäng oån ñònh maïch caàn coù moät soá maïch hoã trôï cho hoaït ñoäng cuûa maïch. Chính vì nhu caàu aáy maø trong maïch thieát keá caàn söû duïng moät soá maïch coù taùc duïng hoã trôï nhö sau: Maïch Autoreset. Maïch ñeäm vaø coâng suaát phaàn cô. Maïch khueách ñaïi tín hieäu. I. MAÏCH AUTORESET: Ñaây chæ laø moät phaàn nhoû trong heä thoáng coù chöùc naêng taïo moät xung taùc ñoäng vaøo chaân Clear cuûa 74LS192 (Clr, chaân soá 14). Chaân clear cuûa 74LS192 chòu taùc ñoäng ôû möùc cao. Coù nghóa laø khi ta ñöa tín hieäu [1] vaøo chaân mang teân Clear seõ laøm cho 74LS192 quay trôû laïi traïng thaùi ban ñaàu, taùc ñoäng naøy ñöôïc goïi laø Reset boä ñeám. Do chöông trình ñieàu khieån heä thoáng luoân laø 0H, chính thao taùc Reset seõ xaùc laäp traïng thaùi ban ñaàu cuûa caùc IC 74LS192 laø 0H. Nhö vaäy chaân Clear thöôøng ôû traïng thaùi thaáp. Chæ khi naøo caàn Reset laïi 74LS192 taïm thôøi chaân Clear ñöôïc ñöa leân traïng thaùi cao. Trong thieát keá chæ caàn Reset laïi traïng thaùi ban ñaàu khi coù nguoàn cung caáp vaø ñoâi khi caàn neân Reset khi heä thoáng bò söï coá ñieàu khieån neân maïch coøn caàn coù phaàn Reset baèng tay. Maïch naøy chæ ñöôïc öùng duïng cho phaàn Autoreset cuûa maïch Ñieàu khieån ñoäng cô böôùc. 1. Maïch Reset ñôn giaûn: * Khi coâng taéc môû thì chaân Reset noái vôùi Vcc ôû traïng thaùi cao. * Khi ñoùng coâng taéc thì chaân Reset xuoàng thaáp tính naêng reset coù taùc ñoäng. Hình 08: sô ñoà nguyeân lyù cho maïch Reset ñôn giaûn * Khuyeát ñieåm cuûa maïch :traïng thaùi ban ñaàu cuûa maïch chính laø giaù trò cuûa nguoàn cung caáp khi cung caáp tín hieäu Reset seõ mang giaù trò [1] vì vaäy ta khoâng theå xaùc laäp laïi moät traïng thaùi Reset xaùc laäp oån ñònh trong moät khoaûng thôøi gian naøo ñoù. Do ñoù, ta caàn phaûi giöõ cho tín hieäu Reset mang giaù trò [0] thì taùc ñoäng Reset môùi taùc ñoäng ñöôïc. 2. Maïch AutoReset cho heä thoáng: Hình 09: Sô ñoà nguyeân lyù maïch Autoreset Ñeå khaéc phuïc cho nhöôïc ñieåm cuûa maïch treân ta ñöa ra sô ñoà nguyeân lyù AutoReset cho heä thoáng nhö sau : Nhö vaäy ôû maïch AutoReset heä thoáng chuùng ta söû duïng theâm moät tuï ñieän nhaèm keùo daøi thôøi gian ôû möùc cao cuûa traïng thaùi Reset. Khoaûng thôøi gian naøy phuï thuoäc vaøo giaù trò tuï C_RS vaø ñieän trôû R_RS döïa treân phöông trình naïp tuï. Maïch AutoReset naøy hoaït ñoäng nhö sau: Khi ta ñoùng coâng taéc nguoàn (nguoàn aùp cung caáp, Vcc, coù giaù trò laø 05 VDC, töông thích vôùi caùc möùc aùp söû duïng trong maïch ñieàu khieån), ñieän naïp vaøo tuï C neân trong moät khoaûng thôøi gian naøo ñoù chaân mang tín hieäu Reset seõ mang gi._. Byte(St[0]):=i; RTrim:=St; End; {---------------------------------------} Function UpStr(St:String):String; Var i :Byte ; Begin For i:= 1 to Byte(St[0]) do St[i]:=Upcase(St[i]); UpStr:=St; End; {---------------------------------------} Function LoStr(St:String):String; Var i :Byte ; Begin For i:= 1 to Byte(St[0]) do If (St[i]>='A') and (St[i]<='Z')then Inc(St[i],32); LoStr:=St; End; {---------------------------------------} Function Proper(St:String):String; Var i :Byte ; Begin St:= LoStr(LTrim(Rtrim(St))); i:=Pos(#32#32,St); While i0 do Begin Delete(St,i,1); i:=Pos(#32#32,St); End; St[i]:=Upcase(St[i]); For i := 2 to Byte(St[0])-1 do If St[i]=#32 then St[i+1]:=UpCase(St[i+1]); Proper:=St; End; {---------------------------------------} Function GetKey:Word; Var N : Word ;Ch:Char ; Begin N:= Ord(Readkey); If N = 0 then N:= (Word(Ord(Readkey)) Shl 8) + N ; GetKey := N ; End; {---------------------------------------} Function Bin(N:Byte):String; Var Temp,Yst : String ; Begin Temp := ''; Repeat Str(N Mod 2,YSt); Temp := YSt+Temp; N := N div 2 ; Until N = 0 ; While Length(Temp)<8 do Temp := '0'+Temp; Bin := Temp; End; {---------------------------------------} Function Hex(W:Word):String; Var Temp,Yst : String ; X : Byte ; Begin Temp := ''; Repeat X := W mod 16 ; If X < 10 then Str(X,YSt) Else YSt := Chr(55+X); Temp := YSt+Temp; W := W div 16 ; Until W = 0 ; While Length(Temp)<4 do Temp := '0'+Temp; Hex := '$'+Temp; End; {-------------------------------------------} Function Repl(Ch:Char;N:Byte):String; Var Temp : String; Begin Temp := ''; While Length(Temp) < N do Temp:= Temp+Ch; Repl := Temp; End; {-------------------------------------------} Function VIDSEG : Word ; Begin if MEM[$0:$0449] = 7 then VidSeg := $B000 else VidSeg := $B800 ; End; {-------------------------------------------} Function Ofset(Col , Row : Byte ) : Word ; Begin case MEM[$0:$0449] of 0,1 : Ofset := 2*(Col-1) + 80*(Row-1) ; else Ofset := 2*(Col-1) + 160*(Row-1) ; end; End; {-------------------------------------------} Function GetChar(Col,Row:Byte):Word; Begin GetChar := MemW[VidSeg:Ofset(Col,Row)] End; {-------------------------------------------} Procedure WriteChar(x,y,Attr,Len : Byte ; Ch :Char ); Var VSeg,VOfs : Word ; i : Byte ; Begin VSeg := VidSeg ; VOfs := Ofset(x,y) ; For i := 1 to len do Begin MemW[VSeg:VOfs]:=(Attr Shl 8) + Ord(Ch); VOfs := VOfs + 2 ; End; End; {-------------------------------------------} Procedure WriteStr(x,y,Attr :Byte ; St :String ); Var VSeg,VOfs : Word ; i : Byte ; Begin VSeg := VidSeg ; VOfs := Ofset(x,y) ; For i := 1 to length(St) do Begin MemW[VSeg:VOfs]:=(Attr Shl 8)+Ord(St[i]); VOfs := VOfs + 2 ; End; End; {-------------------------------------------} Procedure WriteColo(x,y,Att1,Att2:Byte;St:String); Var i,Att,Col : Byte ; Begin Att := Att2;Col := x ; For i := 1 to Length(St) do Begin If St[i]='~' then if att=att2 then att := att1 else att := att2 else Begin WriteChar(Col,y,Att,1,St[i]); Inc(Col); End; End; End; {-------------------------------------------} Function NSt(N : Longint) : String ; Var Temp : String ; I : Byte ;Am : Boolean ; Begin Am := N < 0 ; If Am then N := - N ; Str(N,Temp); i := Length(Temp); While i >= 4 do Begin Insert(',',Temp,i-2); Dec(i,3); End; If Am then Nst := '-'+Temp Else Nst := Temp ; End; {-------------------------------------------} Procedure WriteInt(x,y,Att,Len:Byte;Int:Longint); Var Temp : String; Begin Temp := NSt(Int); While Length(Temp) < Len do Temp := #32 + Temp; WriteStr(x,y,Att,Temp); end; {-------------------------------------------} Function RSt(R : Real;N : Byte ) : String ; Var Temp : String ; I : Byte ;Am : Boolean ; Begin Am := R < 0 ; If Am then R := - R ; Str(R:N:N,Temp); If N = 0 then i:=Byte(Temp[0]) Else i := Pos('.',Temp)-1; While i >= 4 do Begin Insert(',',Temp,i-2); Dec(i,3); End; If Am then Rst := '-'+Temp Else Rst := Temp ; End; {-------------------------------------------} Procedure WriteReal(x,y,Att,Len,Frac:Byte;R : Real); Var Temp : String; Begin Temp := RSt(R,Frac); While Length(Temp) < Len do Temp := #32 + Temp; WriteStr(x,y,Att,Temp); end; {-------------------------------------------} Procedure ReadInt (x,y,Attr,L : Byte ; Var Lvar ); Var Tempo : String ; Result : Integer ; Lmem : Longint absolute LVar ; OAttr : Byte ; Begin OAttr := TextAttr ; TextAttr := Attr ; Repeat Writechar(x,y,Attr,L,#32); Gotoxy(x,y);Readln(Tempo); Val(Tempo,Lmem,Result); Until (Result = 0 ); WriteInt(x,y,Attr,L,LMem); TextAttr := OAttr ; End; {-------------------------------------------} Procedure ReadWord (x,y,Attr,L : Byte ; Var Lvar ); Var Tempo : String ; Result : Integer ; p,OAttr: Byte ; Wmem : Word absolute LVar ; Begin OAttr := TextAttr ; TextAttr := Attr ; Repeat Writechar(x,y,Attr,L,#32); Gotoxy(x,y);Readln(Tempo); Val(Tempo,Wmem,Result); p := pos('-',tempo) Until (Result = 0 ) and (p = 0); WriteInt(x,y,Attr,L,Wmem); TextAttr := OAttr ; End; {-------------------------------------------} Procedure ReadReal (x,y,Attr,L,N: Byte ; Var Rvar:Real ); Var Tempo : String ; Result : Integer ; OAttr : Byte ; Begin OAttr := TextAttr ; TextAttr := Attr ; Repeat Writechar(x,y,Attr,L,Chr(32)); Gotoxy(x,y);Readln(Tempo); Val(tempo,RVar,Result); Until Result = 0 ; WriteReal(x,y,Attr,L,N,RVar); TexTAttr := OAttr ; End; {-------------------------------------------} Procedure ReadSt (x,y,Attr,L : Byte ; Var St); Var Str : String absolute St ; Thoat : Boolean; Ch: Char ;i,j:Byte; Cot:Byte; Begin i:=1;Thoat:=False; Writechar(x,y,Attr,L,Chr(32)); WriteStr(x,y,Attr,Copy(Str,1,L)); Repeat Cot:=x+i-1; GotoXy(Cot,y); Ch:=ReadKey; Case Ch Of #32..#127:If i<=L then Begin Insert(Ch,Str,i); Inc(i); If i>L Then i:=L; End; #13 :Thoat:=True; #27 :Begin Thoat:=True; Str:=''; End; #8 :Begin Delete(Str,i-1,1); Dec(i); End; #0 :Begin Ch:=Readkey; Case Ch of #71 : i:=1; #75 : If i>1 Then Dec(i); #77 : If i<L Then Begin j:=Byte(Str[0]); While Str[j]=#32 do Dec(j); If i>j then Insert(#32,Str,i); Inc(i); End; #79 : Begin i:=Byte(Str[0])+1; While Str[i-1]=#32 do Dec(i); If i>L then i:=L; End; #83 : Delete(Str,i,1); End; End; End; Writechar(x,y,Attr,L,Chr(32)); WriteStr(x,y,Attr,Copy(Str,1,L)); Until Thoat; Str:=RTrim(Copy(Str,1,L)); End; {-------------------------------------------} Procedure CenterStr( y,StAttr :Byte;St : String); Var x : Integer ; Begin x := ( 80 - Length(St) ) div 2 ; WriteStr(x,y,StAttr,St); End; {-------------------------------------------} Procedure BoxStr (x,y,BAttr,Lane,StAttr:Byte;St:String ); Begin Box(x,y,x+Length(St)+3,y+2,BAttr,Lane,ShadeOff); WriteStr(x+2,y+1,StAttr,St); End; {-------------------------------------------} Procedure SetAttr(x1,y1,x2,y2 , Attr :Byte ); Var VSeg,VOfs : Word ; x,y : Byte ; Begin VSeg := VidSeg ; For y := y1 to y2 do For x:= x1 to x2 do Begin VOfs := Ofset(x,y) ; Mem[VSeg:VOfs+1]:= Attr ; End; End; {-------------------------------------------} Procedure FillFrame(x1,y1,x2,y2,Attr:Byte;Ch:Char ); Var y : byte; Begin For y := y1 to y2 do WriteChar(x1,y,Attr,x2-x1+1,Ch); End; {-------------------------------------------} Procedure Clear(x1,y1,x2,y2,Attr:Byte ); Var y : byte; Begin For y := y1 to y2 do WriteChar(x1,y,Attr,x2-x1+1,#32); End; {-------------------------------------------} Procedure Box(x1,y1,x2,y2,Attr,Lane:Byte;Shade:Boolean); Const Bound : Array[0..4] of String[6] =(#32#32#32#32#32#32 ,#218#196#191#179#217#192, #201#205#187#186#188#200,#213#205#184#179#190#212, #214#196#183#186#189#211); Var Border : String[6]; y : integer; Begin If Lane > 4 then Lane := 0 ; Border := Bound[Lane]; If Shade then SetAttr(x1+ShadeX,y1+ShadeY, x2+ShadeX,y2+ShadeY,ShadeAtt); WriteStr(x1,y1,Attr,Border[1]+Repl(Border[2],x2-x1-1)+ Border[3]); For y := y1 + 1 to y2 -1 do WriteStr(x1,y,Attr,Border[4]+Repl(#32,x2-x1-1)+ Border[4]); WriteStr(x1,y2,Attr,Border[6]+Repl(Border[2],x2-x1-1)+ Border[5]); End; {-------------------------------------------} Procedure Frame(x1,y1,x2,y2,Attr,Lane:Byte); Const Bound : Array[0..4] of String[6] =(#32#32#32#32#32#32 ,#218#196#191#179#217#192, #201#205#187#186#188#200,#213#205#184#179#190#212, #214#196#183#186#189#211); Var Border : String[6]; y : integer; Begin If Lane > 4 then Lane := 0 ; Border := Bound[Lane]; WriteStr(x1,y1,Attr,Border[1]+Repl(Border[2],x2-x1-1)+ Border[3]); For y := y1 + 1 to y2 -1 do Begin WriteStr(x1,y,Attr,Border[4]); WriteStr(x2,y,Attr,Border[4]); End; WriteStr(x1,y2,Attr,Border[6]+Repl(Border[2],x2-x1-1)+ Border[5]); End; {-------------------------------------------} Procedure FillBox(x1,y1,x2,y2,FrAttr,Lane:Byte;Ch:Char; Shade:Boolean); Begin Box(x1,y1,x2,y2,FrAttr,Lane,Shade); FillFrame(x1+1,y1+1,x2-1,y2-1,FrAttr,Ch); End; {-------------------------------------------} Procedure StrBox(x1,y1,x2,y2,FrAttr,Lane : Byte ; St : String; Shade : Boolean); Var x : Integer ; Begin BOX(x1,y1,x2,y2,FrAttr,Lane,Shade); x := x1 + ((x2-x1-Length(St)-2) div 2); WriteStr(x,y1,FrAttr,#32+St+#32); End; {-------------------------------------------} Procedure StrLBox(x1,y1,x2,y2,FrAttr,Lane : Byte ; St : String; Shade : Boolean); Var x : Integer ; Begin BOX(x1,y1,x2,y2,FrAttr,Lane,Shade); WriteStr(x1+3,y1,FrAttr,#32+St+#32); End; {-------------------------------------------} Procedure StrFillBox(x1,y1,x2,y2,FrAttr,Lane : Byte ; Ch:Char ; St : String;Shade : Boolean); Var x : Integer ; Begin FILLBOX(x1,y1,x2,y2,FrAttr,Lane,Ch,Shade); x := x1 + ((x2-x1-Length(St)-2) div 2); WriteStr(x,y1,FrAttr,#32+St+#32); End; {-------------------------------------------} Procedure DrawStr(SRow,Attr:Byte;St:string); Type Charfont = Array[1..8] Of Byte; Var CharTable : Array[0..255] of CharFont Absolute $F000:$FA6E; N,Len,SCol,CCol : Byte; {---------------------------------------} Procedure DrawChar(Entry:Charfont); Var X,Y : Byte; BinSt : String[8]; Begin For Y := 1 to 8 do Begin BinSt := Bin(Entry [Y]); For x := 1 to Length(BinSt) do If BinSt[x]= '1' then WriteStr(CCol+x,SRow+Y,Attr,#176); End End; {------------------------------------------} BEGIN If SRow > 17 then SRow := 17; St := Copy(St,1,10); Len := Length(St); SCol := (40 - 4*len) and $00FF; For N := 1 to Len do Begin CCol := SCol + 8*( N - 1) + 1 ; DrawChar(CharTable[Ord(St[N])]); End; End; {------------------------------------------} Procedure ScrollUp(x1,y1,x2,y2,Att,N:Byte); Var y : Byte ; Begin For y := y1 to y2-n do Move(Ptr(VidSeg,Ofset(x1,y+N))^, Ptr(VidSeg,Ofset(x1,y) )^,2*(x2-x1+1)); Clear(x1,y2-N+1,x2,y2,Att); End; {------------------------------------------} Procedure ScrollDn(x1,y1,x2,y2,Att,N:Byte); Var y : Byte ; Begin For y := y2 Downto y1+n do Move(Ptr(VidSeg,Ofset(x1,y-N))^, Ptr(VidSeg,Ofset(x1,y) )^,2*(x2-x1+1)); Clear(x1,y1,x2,y1+N-1,Att); End; {------------------------------------------} Procedure ScrollLf(x1,y1,x2,y2,Att,N:Byte); Var y : Byte ; Begin For y := y1 to y2 do Move(Ptr(VidSeg,Ofset(x1+N,y))^, Ptr(VidSeg,Ofset(x1,y))^,2*(x2-x1-N+1)); Clear(x2-N,y1,x2,y2,Att); End; {------------------------------------------} Procedure ScrollRt(x1,y1,x2,y2,Att,N:Byte); Var y : Byte ; Begin For y := y1 to y2 do Move(Ptr(VidSeg,Ofset(x1,y))^, Ptr(VidSeg,Ofset(x1+N,y))^,2*(x2-x1-N+1)); Clear(x1,y1,x1+N-1,y2,Att); End; {-----------------------------------------} Procedure ShiftUp(x1,y1,x2,y2,Att:Byte); Var y : Byte ; Begin for y :=y1 to y2 do Begin ScrollUp(x1,y1,x2,y2,Att,1); Delay(ScrollDelay); end; End; {------------------------------------------} Procedure ShiftDn(x1,y1,x2,y2,Att:Byte); Var y : Byte ; Begin for y :=y1 to y2 do Begin ScrollDn(x1,y1,x2,y2,Att,1); Delay(ScrollDelay); end; End; {------------------------------------------} Procedure ShiftLf(x1,y1,x2,y2,Att:Byte); Var x : Byte ; Begin for x :=x1 to x2 do Begin ScrollLf(x1,y1,x2,y2,Att,1); Delay(ScrollDelay); end; End; {------------------------------------------} Procedure ShiftRt(x1,y1,x2,y2,Att:Byte); Var x : Byte ; Begin for x :=x1 to x2 do Begin ScrollRt(x1,y1,x2,y2,Att,1); Delay(ScrollDelay); end; End; {------------------------------------------} Procedure SaveBox(x1,y1,x2,y2:Byte ; Var Bf : ScreenPtr); Var NBytes,BSeg,BOfs : Word ; y : Byte ; Begin NBytes := 2*(x2-x1+1); New(Bf); Bf^.x1 := x1; Bf^.y1:= y1;Bf^.x2 := x2; Bf^.y2:= y2; Bf^.Cx := WhereX ; Bf^.Cy := WhereY ; GetMem(Bf^.Buf,NBytes*(y2-y1+1)); BSeg := Seg(Bf^.Buf^); BOfs := Ofs(Bf^.Buf^); For y := y1 to y2 do Begin Move(Ptr(VidSeg,Ofset(x1,y))^,Ptr(BSeg,BOfs)^, NBytes); Inc(BOfs,NBytes); end; End; {------------------------------------------} Procedure RestoreBox(Var Bf : ScreenPtr); Var NBytes,BSeg,BOfs : Word ; y : Byte ; Begin With Bf^ do Begin NBytes := 2*(x2-x1+1); BSeg := Seg(Buf^); BOfs := Ofs(Buf^); For y := y1 to y2 do Begin Move(Ptr(BSeg,BOfs)^, Ptr(VidSeg,Ofset(x1,y))^,NBytes); Inc(BOfs,NBytes); end; GotoXy(Cx,Cy); {FreeMem(Buf,NBytes*(y2-y1+1));} End; DisPose(Bf); End; {------------------------------------------} Procedure SaveAtt(x1,y1,x2,y2:Byte ; Var Bf : ScreenPtr); Var NBytes,BSeg,BOfs : Word ; y : Byte ; Begin NBytes := (x2-x1+1); New(Bf); Bf^.x1 := x1; Bf^.y1:= y1;Bf^.x2 := x2; Bf^.y2:= y2; GetMem(Bf^.Buf,NBytes*(y2-y1+1)); BSeg := Seg(Bf^.Buf^); BOfs := Ofs(Bf^.Buf^); For y := y1 to y2 do Begin Move(Ptr(VidSeg,Ofset(x1,y)+1)^,Ptr(BSeg,BOfs)^, NBytes); Inc(BOfs,NBytes); end; End; {------------------------------------------} Procedure RestoreAtt(Var Bf : ScreenPtr); Var NBytes,BSeg,BOfs : Word ; x,y : Byte ; Begin With Bf^ do Begin NBytes := (x2-x1+1); BSeg := Seg(Buf^); BOfs := Ofs(Buf^); For y := y1 to y2 do Begin For x := x1 to x2 do Move(Ptr(BSeg,BOfs)^, Ptr(VidSeg,Ofset(x,y)+1)^,1); Inc(BOfs,NBytes); end; End; End; {------------------------------------------} Procedure DeInitBox(Var Bf : ScreenPtr); Begin With Bf^ do FreeMem(Buf,2*(x2-x1+1)*(y2-y1+1)); DisPose(Bf); End; {------------------------------------------} Procedure DeInitAtt(Var Bf : ScreenPtr); Begin With Bf^ do FreeMem(Buf,(x2-x1+1)*(y2-y1+1)); DisPose(Bf); End; {------------------------------------------} Procedure SaveScreen(Var Sc : ScrPtr); Var Mode : Byte Absolute $0:$0449; Screen : ScrPtr; Begin If Mode = 7 then Screen := Ptr($B000,$0000) Else Screen := Ptr($B800,$0000); New(Sc); SC^:=Screen^ End; {------------------------------------------} Procedure ReStoreScreen(Var Sc : ScrPtr); Var Mode : Byte Absolute $0:$0449; Screen : ScrPtr; Begin If Mode = 7 then Screen := Ptr($B000,$0000) Else Screen := Ptr($B800,$0000); Screen^:=Sc^; Dispose(Sc); End; {------------------------------------------} Function GetCurSor : Word ; Var Regs : Registers ; Begin Regs.AH := $03; Regs.BH := 0; Intr($10,Regs); GetCursor := Regs.CX ; End; {------------------------------------------} Procedure SetCurSor (Size : Word ); Var Regs : Registers; Begin Regs.AH := 1; Regs.CX := Size; Intr(16,Regs); End; {------------------------------------------} Procedure CursorOff ; Begin SetCursor($2020); End; {------------------------------------------} Procedure SmallCurSor ; Var Vmode : Byte Absolute $0:$0449; Begin If VMode = 7 then SetCursor($0C0D) else SetCursor($0607); End; {------------------------------------------} Procedure BigCurSor ; Var Vmode : Byte Absolute $0:$0449 ; Begin If VMode = 7 then SetCursor($000D) else SetCursor($0007); End; {------------------------------------------} Function EGAInstalled : Boolean ; { Xaùc nhaän maøn hình EGA,VGA --> True } { CGA,MCGA -> False } Var Regs : Registers ; Begin Regs.AX := $1200; Regs.BX := $0010; Regs.CX := $FFFF; Intr($10,Regs); EGAInstalled := Regs.CX $FFFF; End; {------------------------------------------} Function PS2 : Boolean ; { Xaùc nhaän maøn hình VGA,MCGA --> True } { EGA,CGA --> False } Var Regs : Registers ; Begin Regs.AX := $1A00; Intr($10,Regs); PS2 := ((Regs.AL and $FF) = $1A) and ((Regs.BL and $FF) in [$07,$08,$0B,$0C]); End; {--------------------------------------------------------------} END. Taäp tin nguoàn Thö vieän VIETFONT (VIETFONT.PAS) CONST Font : Array [0..255,0..15] of Byte = ((0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,126,129,129,165,129,129,129,165,153,129,129,126,0,0), (0,0,126,255,255,255,219,255,255,219,231,255,255,126,0,0), (0,0,0,0,108,238,254,254,254,124,124,56,16,0,0,0), (0,0,0,0,16,56,56,124,254,124,56,56,16,0,0,0), (0,0,0,24,60,60,24,231,231,231,24,24,60,0,0,0), (0,0,0,24,24,60,126,126,255,255,102,24,126,0,0,0), (0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,0), (255,255,255,255,255,255,231,195,195,231,255,255,255,255,255,255), (0,0,0,0,0,60,102,66,66,102,60,0,0,0,0,0), (255,255,255,255,255,195,153,189,189,153,195,255,255,255,255,255), (0,0,0,0,30,14,26,50,120,204,204,204,120,0,0,0), (0,0,0,0,60,102,102,102,60,24,126,24,24,0,0,0), (0,0,0,0,63,51,63,48,48,48,112,240,224,0,0,0), (0,0,0,0,127,99,127,99,99,99,103,231,230,192,0,0), (0,0,0,0,24,219,90,60,231,60,90,219,24,0,0,0), (0,0,0,0,128,192,224,248,254,248,224,192,128,0,0,0), (0,0,0,0,2,6,14,62,254,62,14,6,2,0,0,0), (0,0,0,0,24,60,126,24,24,24,126,60,24,0,0,0), (0,0,0,0,102,102,102,102,102,102,0,102,102,0,0,0), (0,0,0,0,127,219,219,219,123,27,27,27,27,0,0,0), (0,0,0,124,198,96,56,108,198,108,56,12,198,124,0,0), (0,0,0,0,0,0,0,0,0,0,254,254,254,0,0,0), (0,0,0,0,24,60,126,24,24,24,126,60,24,126,0,0), (0,0,0,0,24,60,126,24,24,24,24,24,24,0,0,0), (0,0,0,0,24,24,24,24,24,24,126,60,24,0,0,0), (0,0,0,0,0,0,24,12,254,12,24,0,0,0,0,0), (0,0,0,0,0,0,48,96,254,96,48,0,0,0,0,0), (0,0,0,0,0,0,0,192,192,192,254,0,0,0,0,0), (0,0,0,0,0,0,36,102,255,102,36,0,0,0,0,0), (0,0,0,0,0,16,56,56,124,124,254,254,0,0,0,0), (0,0,0,0,0,254,254,124,124,56,56,16,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,24,60,60,60,24,24,0,24,24,0,0,0), (0,0,0,102,102,102,36,0,0,0,0,0,0,0,0,0), (0,0,0,0,108,108,254,108,108,108,254,108,108,0,0,0), (0,0,24,24,124,198,194,192,124,6,134,198,124,24,24,0), (0,0,0,0,0,0,194,198,12,24,48,102,198,0,0,0), (0,0,0,0,56,108,108,56,118,220,204,204,118,0,0,0), (0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0), (0,0,0,0,12,24,48,48,48,48,48,24,12,0,0,0), (0,0,0,0,48,24,12,12,12,12,12,24,48,0,0,0), (0,0,0,0,0,0,102,60,255,60,102,0,0,0,0,0), (0,0,0,0,0,0,24,24,126,24,24,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,24,24,24,48,0,0), (0,0,0,0,0,0,0,0,254,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0), (0,0,0,0,2,6,12,24,48,96,192,128,0,0,0,0), (0,0,0,0,124,198,206,222,246,230,198,198,124,0,0,0), (0,0,0,0,24,56,120,24,24,24,24,24,126,0,0,0), (0,0,0,0,124,198,6,12,24,48,96,198,254,0,0,0), (0,0,0,0,124,198,6,6,60,6,6,198,124,0,0,0), (0,0,0,0,12,28,60,108,204,254,12,12,30,0,0,0), (0,0,0,0,254,192,192,192,252,6,6,198,124,0,0,0), (0,0,0,0,60,96,192,192,252,198,198,198,124,0,0,0), (0,0,0,0,254,198,6,12,24,48,48,48,48,0,0,0), (0,0,0,0,124,198,198,198,124,198,198,198,124,0,0,0), (0,0,0,0,124,198,198,198,126,6,6,12,120,0,0,0), (0,0,0,0,0,24,24,0,0,0,24,24,0,0,0,0), (0,0,0,0,0,24,24,0,0,0,24,24,48,0,0,0), (0,0,0,0,6,12,24,48,96,48,24,12,6,0,0,0), (0,0,0,0,0,0,0,126,0,0,126,0,0,0,0,0), (0,0,0,0,96,48,24,12,6,12,24,48,96,0,0,0), (0,0,0,0,124,198,198,12,24,24,0,24,24,0,0,0), (0,0,0,0,124,198,198,222,222,222,220,192,124,0,0,0), (0,0,0,0,16,56,108,198,198,254,198,198,198,0,0,0), (0,0,0,0,252,102,102,102,124,102,102,102,252,0,0,0), (0,0,0,0,60,102,194,192,192,192,194,102,60,0,0,0), (0,0,0,0,248,108,102,102,102,102,102,108,248,0,0,0), (0,0,0,0,254,102,98,104,120,104,98,102,254,0,0,0), (0,0,0,0,254,102,98,104,120,104,96,96,240,0,0,0), (0,0,0,0,60,102,194,192,192,222,198,102,58,0,0,0), (0,0,0,0,198,198,198,198,254,198,198,198,198,0,0,0), (0,0,0,0,60,24,24,24,24,24,24,24,60,0,0,0), (0,0,0,0,30,12,12,12,12,12,204,204,120,0,0,0), (0,0,0,0,230,102,108,108,120,108,108,102,230,0,0,0), (0,0,0,0,240,96,96,96,96,96,98,102,254,0,0,0), (0,0,0,0,198,238,254,254,214,198,198,198,198,0,0,0), (0,0,0,0,198,230,246,254,222,206,198,198,198,0,0,0), (0,0,0,0,56,108,198,198,198,198,198,108,56,0,0,0), (0,0,0,0,252,102,102,102,124,96,96,96,240,0,0,0), (0,0,0,0,124,198,198,198,198,214,222,124,12,14,0,0), (0,0,0,0,252,102,102,102,124,108,102,102,231,0,0,0), (0,0,0,0,124,198,198,96,56,12,198,198,124,0,0,0), (0,0,0,0,126,126,90,24,24,24,24,24,60,0,0,0), (0,0,0,0,198,198,198,198,198,198,198,198,124,0,0,0), (0,0,0,0,198,198,198,198,198,198,108,56,16,0,0,0), (0,0,0,0,198,198,198,198,214,214,254,124,108,0,0,0), (0,0,0,0,198,198,108,56,56,56,108,198,198,0,0,0), (0,0,0,0,102,102,102,102,60,24,24,24,60,0,0,0), (0,0,0,0,254,198,140,24,48,96,194,198,254,0,0,0), (0,0,0,0,60,48,48,48,48,48,48,48,60,0,0,0), (0,0,0,0,128,192,224,112,56,28,14,6,2,0,0,0), (0,0,0,0,60,12,12,12,12,12,12,12,60,0,0,0), (0,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0), (0,0,48,48,24,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,120,12,124,204,204,118,0,0,0), (0,0,0,0,224,96,96,120,108,102,102,102,124,0,0,0), (0,0,0,0,0,0,0,124,198,192,192,198,124,0,0,0), (0,0,0,0,28,12,12,60,108,204,204,204,118,0,0,0), (0,0,0,0,0,0,0,124,198,254,192,198,124,0,0,0), (0,0,0,0,56,108,100,96,240,96,96,96,240,0,0,0), (0,0,0,0,0,0,0,118,204,204,204,124,12,204,120,0), (0,0,0,0,224,96,96,108,118,102,102,102,230,0,0,0), (0,0,0,0,24,24,0,56,24,24,24,24,60,0,0,0), (0,0,0,0,6,6,0,14,6,6,6,6,102,102,60,0), (0,0,0,0,224,96,96,102,108,120,108,102,230,0,0,0), (0,0,0,0,56,24,24,24,24,24,24,24,60,0,0,0), (0,0,0,0,0,0,0,236,254,214,214,214,198,0,0,0), (0,0,0,0,0,0,0,220,102,102,102,102,102,0,0,0), (0,0,0,0,0,0,0,124,198,198,198,198,124,0,0,0), (0,0,0,0,0,0,0,220,102,102,102,124,96,96,240,0), (0,0,0,0,0,0,0,118,204,204,204,124,12,12,30,0), (0,0,0,0,0,0,0,220,118,102,96,96,240,0,0,0), (0,0,0,0,0,0,0,124,198,112,28,198,124,0,0,0), (0,0,0,0,16,48,48,252,48,48,48,54,28,0,0,0), (0,0,0,0,0,0,0,204,204,204,204,204,118,0,0,0), (0,0,0,0,0,0,0,102,102,102,102,60,24,0,0,0), (0,0,0,0,0,0,0,198,198,214,214,254,108,0,0,0), (0,0,0,0,0,0,0,198,108,56,56,108,198,0,0,0), (0,0,0,0,0,0,0,198,198,198,198,126,6,12,248,0), (0,0,0,0,0,0,0,254,204,24,48,102,254,0,0,0), (0,0,0,0,14,24,24,24,112,24,24,24,14,0,0,0), (0,0,0,0,24,24,24,24,0,24,24,24,24,0,0,0), (0,0,0,0,112,24,24,24,14,24,24,24,112,0,0,0), (0,0,0,0,118,220,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,16,56,108,198,198,254,0,0,0,0), (0,0,0,0,0,0,124,198,192,192,198,124,24,12,248,0), (0,0,0,0,204,204,0,204,204,204,204,204,118,0,0,0), (0,0,0,0,108,108,0,120,12,124,204,204,118,0,0,0), (0,0,48,72,72,48,0,120,12,124,204,204,118,0,0,0), (0,0,0,0,108,108,0,124,198,254,192,198,124,0,0,0), (0,0,0,0,108,108,0,56,24,24,24,24,60,0,0,0), (0,0,0,24,60,102,0,56,24,24,24,24,60,0,0,0), (0,0,0,0,108,222,26,26,126,216,216,218,108,0,0,0), (0,0,0,0,204,204,0,124,198,198,198,198,124,0,0,0), (0,0,0,48,120,204,0,204,204,204,204,204,118,0,0,0), (0,0,0,0,198,198,0,198,198,198,198,126,6,12,120,0), (0,0,24,24,24,124,198,192,192,198,124,24,24,24,0,0), (0,0,0,56,108,100,96,240,96,96,102,230,188,0,0,0), (0,0,0,102,102,102,60,24,126,24,60,24,24,0,0,0), (0,0,0,252,102,102,124,98,102,111,102,102,243,0,0,0), (0,0,0,0,118,220,0,220,102,102,102,102,102,0,0,0), (0,0,0,0,0,0,54,108,216,108,54,0,0,0,0,0), (0,0,0,0,0,0,216,108,54,108,216,0,0,0,0,0), (0,0,0,0,24,24,24,126,24,24,24,0,126,126,0,0), (0,0,0,0,96,48,24,12,24,48,96,0,124,124,0,0), (0,0,0,0,12,24,48,96,48,24,12,0,124,124,0,0), (24,24,24,60,60,126,126,255,24,24,24,24,24,24,24,24), (24,24,24,24,24,24,24,24,255,126,126,60,60,24,24,24), (0,0,0,0,0,64,112,124,255,124,112,64,0,0,0,0), (0,0,0,0,0,2,14,62,255,62,14,2,0,0,0,0), (0,0,108,56,0,56,108,198,198,254,198,198,198,0,0,0), (0,16,56,108,0,56,108,198,198,254,198,198,198,0,0,0), (0,16,56,68,254,102,98,104,120,104,98,102,254,0,0,0), (0,16,56,68,56,108,198,198,198,198,198,108,56,0,0,0), (0,0,3,1,58,108,198,198,198,198,198,108,56,0,0,0), (0,0,3,1,199,198,198,198,198,198,198,198,124,0,0,0), (0,0,0,0,248,108,102,102,254,102,102,108,248,0,0,0), (0,0,0,0,108,56,0,120,12,124,204,204,118,0,0,0), (0,0,0,0,56,108,0,120,12,124,204,204,118,0,0,0), (0,0,0,0,56,108,0,124,198,254,192,198,124,0,0,0), (0,0,0,0,56,108,0,124,198,198,198,198,124,0,0,0), (0,0,0,0,0,3,1,126,198,198,198,198,124,0,0,0), (0,0,0,0,0,3,1,206,204,204,204,204,118,0,0,0), (0,0,0,0,12,62,12,60,108,204,204,204,118,0,0,0), (0,0,192,96,48,0,0,120,12,124,204,204,118,0,0,0), (0,0,56,8,16,0,0,120,12,124,204,204,118,0,0,0), (0,0,0,118,220,0,0,120,12,124,204,204,118,0,0,0), (0,0,6,12,24,0,0,120,12,124,204,204,118,0,0,0), (0,0,0,0,0,0,0,120,12,124,204,204,118,0,48,48), (0,0,96,16,76,56,0,120,12,124,204,204,118,0,0,0), (0,0,7,1,110,56,0,120,12,124,204,204,118,0,0,0), (0,0,118,220,108,56,0,120,12,124,204,204,118,0,0,0), (0,0,12,16,108,56,0,120,12,124,204,204,118,0,0,0), (68,17,68,17,68,17,68,17,68,17,68,17,68,17,68,17), (170,85,170,85,170,85,170,85,170,85,170,85,170,85,170,85), (119,221,119,221,119,221,119,221,119,221,119,221,119,221,119,221), (24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24), (24,24,24,24,24,24,24,24,248,24,24,24,24,24,24,24), (0,0,0,0,108,56,0,120,12,124,204,204,118,0,48,48), (0,0,192,96,56,108,0,120,12,124,204,204,118,0,0,0), (0,0,7,1,58,108,0,120,12,124,204,204,118,0,0,0), (0,0,118,220,56,108,0,120,12,124,204,204,118,0,0,0), (54,54,54,54,54,54,54,246,6,246,54,54,54,54,54,54), (54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54), (0,0,0,0,0,0,0,254,6,246,54,54,54,54,54,54), (54,54,54,54,54,54,54,246,6,254,0,0,0,0,0,0), (0,0,6,12,56,108,0,120,12,124,204,204,118,0,0,0), (0,0,0,0,56,108,0,120,12,124,204,204,118,0,48,48), (0,0,0,0,0,0,0,0,248,24,24,24,24,24,24,24), (24,24,24,24,24,24,24,24,31,0,0,0,0,0,0,0), (24,24,24,24,24,24,24,24,255,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,255,24,24,24,24,24,24,24), (24,24,24,24,24,24,24,24,31,24,24,24,24,24,24,24), (0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0), (24,24,24,24,24,24,24,24,255,24,24,24,24,24,24,24), (0,0,192,96,48,0,0,124,198,254,192,198,124,0,0,0), (0,0,56,8,16,0,0,124,198,254,192,198,124,0,0,0), (54,54,54,54,54,54,54,55,48,63,0,0,0,0,0,0), (0,0,0,0,0,0,0,63,48,55,54,54,54,54,54,54), (54,54,54,54,54,54,54,247,0,255,0,0,0,0,0,0), (0,0,0,0,0,0,0,255,0,247,54,54,54,54,54,54), (54,54,54,54,54,54,54,55,48,55,54,54,54,54,54,54), (0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0), (54,54,54,54,54,54,54,247,0,247,54,54,54,54,54,54), (0,0,0,118,220,0,0,124,198,254,192,198,124,0,0,0), (0,0,6,12,24,0,0,124,198,254,192,198,124,0,0,0), (0,0,0,0,0,0,0,124,198,254,192,198,124,0,24,24), (0,0,192,96,56,108,0,124,198,254,192,198,124,0,0,0), (0,0,7,1,58,108,0,124,198,254,192,198,124,0,0,0), (0,0,118,220,56,108,0,124,198,254,192,198,124,0,0,0), (0,0,6,12,56,108,0,124,198,254,192,198,124,0,0,0), (0,0,0,0,56,108,0,124,198,254,192,198,124,0,24,24), (0,0,192,96,48,0,0,56,24,24,24,24,60,0,0,0), (0,0,56,8,16,0,0,56,24,24,24,24,60,0,0,0), (24,24,24,24,24,24,24,24,248,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,31,24,24,24,24,24,24,24), (255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255), (0,0,0,118,220,0,0,56,24,24,24,24,60,0,0,0), (0,0,6,12,24,0,0,56,24,24,24,24,60,0,0,0), (0,0,0,0,24,24,0,56,24,24,24,24,60,0,24,24), (0,0,192,96,48,0,0,124,198,198,198,198,124,0,0,0), (0,0,0,0,62,96,192,192,254,192,192,96,62,0,0,0), (0,0,56,8,16,0,0,124,198,198,198,198,124,0,0,0), (0,0,118,220,0,0,0,124,198,198,198,198,124,0,0,0), (0,0,6,12,24,0,0,124,198,198,198,198,124,0,0,0), (0,0,0,0,0,0,0,124,198,198,198,198,124,0,24,24), (0,0,192,96,56,108,0,124,198,198,198,198,124,0,0,0), (0,0,7,1,58,108,0,124,198,198,198,198,124,0,0,0), (0,0,118,220,56,108,0,124,198,198,198,198,124,0,0,0), (0,0,6,12,56,108,0,124,198,198,198,198,124,0,0,0), (0,0,0,0,56,108,0,124,198,198,198,198,124,0,24,24), (0,0,192,96,48,3,1,126,198,198,198,198,124,0,0,0), (0,0,56,8,16,3,1,126,198,198,198,198,124,0,0,0), (0,0,118,220,0,3,1,126,198,198,198,198,124,0,0,0), (0,0,6,12,24,3,1,126,198,198,198,198,124,0,0,0), (0,0,0,0,0,3,1,126,198,198,198,198,124,0,24,24), (0,0,192,96,48,0,0,204,204,204,204,204,118,0,0,0), (0,0,0,0,0,254,0,0,254,0,0,254,0,0,0,0), (0,0,56,8,16,0,0,204,204,204,204,204,118,0,0,0), (0,0,118,220,0,0,0,204,204,204,204,204,118,0,0,0), (0,0,6,12,24,0,0,204,204,204,204,204,118,0,0,0), (0,0,0,0,0,0,0,204,204,204,204,204,118,0,48,48), (0,0,192,96,48,3,1,206,204,204,204,204,118,0,0,0), (0,0,56,8,16,3,1,206,204,204,204,204,118,0,0,0), (0,0,118,220,0,3,1,206,204,204,204,204,118,0,0,0), (0,0,6,12,24,3,1,206,204,204,204,204,118,0,0,0), (0,0,0,0,0,3,1,206,204,204,204,204,118,0,48,48), (0,0,192,96,48,0,0,198,198,198,198,126,6,12,248,0), (0,0,56,8,16,0,0,198,198,198,198,126,6,12,248,0), (0,0,0,118,220,0,0,198,198,198,198,126,6,12,248,0), (0,0,6,12,24,0,0,198,198,198,198,126,6,12,248,0), (0,0,0,0,0,0,0,198,198,198,198,126,4,12,251,3), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)); Thö vieän naøy khi kích hoaït seõ chieám moät phaàn boä nhôù vaø naïp Font tieáng Vieät vaøo boä Font chuaån cuûa maùy. Coù nghóa laø ta coù theå söû duïng, hieån thò tieáng Vieät trong chöông trình chính. ._.

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

  • docLUANVAN.DOC
  • docBIA.DOC
  • docCOMMON.DOC