TRÖÔØNG ÑAÏI HOÏC BAÙCH KHOA TP. HOÀ CHÍ MINH KHOA COÂNG NGHEÄ THOÂNG TIN BOÄ MOÂN PHAÀN CÖÙNG ________♣________
LUAÄN VAÊN TOÁT NGHIEÄP ÑEÀ TAØI :
DUØNG MAÙY VI TÍNH THIEÁT KEÁ MAÙY CHAÁM THI TRAÉC NGHIEÄM
GVHD : PHAN ÑÌNH MAÕI SVTH : TOÂ OAI HUØNG TRAÀN NGOÏC TRAÙC LÔÙP : KYÕ SÖ II - 1997 -
LÔØ I CAÛ M TAÏ
Xinchaâ nthaø nhcaû mônthaà y PhanÑìnhMaõ i ñaõtaä ntình höôù ngdaã nvaøgiuù pñôõchuù ng emñeåhoaø nthaø nhbaø i thöïc taä ptoá t nghieä pnaø y. Xinchaâ nthaø nhcaû mônquí thaà y coâtrongkhoaCoâ ngNgheä Thoâ ngTinñaõtaä ntìnhdaïy doã chuù ngem.
2
NOÄI DUNG
λ
TÌM HIEÅU NGUYEÂN LYÙ
λ
ÑÖA RA THIEÁT KEÁÁ MOÂ HÌNH TOÅNG QUAÙT
λ
THIEÁT KEÁ MAÏCH CHI TIEÁT
λ
THI COÂNG HOAØN CHÆNH MAÏCH ÑIEÄN & CÔ
λ
VIEÁT CHÖÔNG TRÌNH CHAÁM THI
3
CHÖÔNG I :
MUÏC ÑÍCH THIEÁT KEÁ MAÙY CHAÁM THI TRAÉC NGHIEÄM
I . MUÏC ÑÍCH : Hieän nay, do soá löôïng sinh vieân, hoïc sinh cuûa caùc tröôøng ñaïi hoïc, cao ñaúng, trung hoïc, . . . moãi naêm moät taêng . Vieäc chaám baøi thi vaøo nhöõng kyø tuyeån sinh, thi hoïc kyø, thi laïi, . . . laø moät coâng vieäc naëng nhoïc cho giaùo vieân . Vì phaûi ñoøi hoûi keát quaû cuûa vieäc chaám thi phaûi ñaùp öùng veà ñoä chính xaùc vaø veà thôøi gian . Nhö vaäy, vôùi caùc yeáu toá : - Soá löôïng baøi thi nhieàu . - Thôøi gian chaám thi khoâng keùo daøi . - Keát quaû chaám thi caàn chính xaùc . töø ñaây, ta thaáy raèng : . Neáu hình thöùc laø thi vieát, thì chaéc raèng khoù maø ñaït ñöôïc caû hai yeâu caàu song song laø thôøi gian vaø söï chính xaùc . . Neáu hình thöùc thi laø traéc nghieäm, thì vôùi caùch chaám thuû coâng tröôùc ñaây cuõng phaûi vaát vaõ veà thôøi gian . . Vaõ laïi hieän nay do söï tieán trieån cuûa maùy vi tính thì haàu heát caùc cô quan, tröôøng hoïc, xí nghieäp, . . . ñeàu söû duïng maùy vi tính trong coâng vieäc quaûn lyù, tính toaùn, thieát keá, . . . Haàu heát caùc tröôøng hoïc, ngöôøi ta ñeàu duøng maùy vi tính ñeå quaûn lyù hoà sô, ñieåm, hoïc baï, . . . cuûa sinh vieân . Do vaäy, vôùi hai hình thöùc chaám thi ôû treân thì coâng vieäc ñoøi hoûi laø phaûi nhaäp ñieåm cuûa töøng thí sinh vaøo maùy . Coâng ñoaïn naày maát thôøi gian vaø coù nhieàu sai soùt trong quaù trình nhaäp ñieåm . Nhö vaäy, neáu ta thieát keá moät maùy chaám thi traéc nghieäm sao cho keát quaû chaám thi ñoù töï ghi vaøo döõ lieäu ñieåm cuûa töøng thí sinh töông öùng thì thaät laø thuù vò - ñaây cuõng laø muïc ñích cuûa vieäc thieát keá . Ñoái vôùi maïch thieát keá naày, giaùo vieân chaám thi coù theå ghi ñieåm treân baøi laøm cuûa thí sinh ñeå löu tröõ nhôø vaøo döõ lieäu ñieåm treân maùy vi tính hoaëc söï theå hieän cuûa LED 7 ñoaïn treân maùy chaám thi . So vôùi vieäc chaám thi tröôùc ñaây thì maùy chaám thi coù nhöõng öu ñieåm sau : - Nhanh . - Keát quaû ñieåm ñöôïc ghi chính xaùc vaøo vi tính . - Raát ít toán coâng . Tuy nhieân, ñeå ñaït ñöôïc caùc ñieàu treân, thí sinh phaûi laøm baøi treân moät maãu giaáy nhaát ñònh vaø phaûi tuaân theo moät soá qui taéc khi laøm baøi . Xeùt cho cuøng, nhöõng yeâu caàu naày khoâng coù gì phieàn toaùi vaø khoù thöïc hieän maø chuùng ta seõ thaáy döôùi ñaây . II . NHÖÕNG YEÂU CAÀU VAØ LÖU YÙ : Sau ñaây laø nhöõng yeâu caàu ñoái vôùi thí sinh : 1. Phaûi ñaùnh daáu caâu traû lôøi treân maãu ñöôïc qui ñònh saün nhö trang sau :
4
Hoï vaø teân :............................................. .............. Soá kyù danh :................................ .........................
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
λ
O O O O O O O O O
O
O O O O O O O O O O
λ
λ
O O O O O O O O O
O
O O O O O O O O O O
λ
λ
O O O O O O O O O
O
O O O O O O O O O O
λ
λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
a
b
c
d
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
a
b
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
c
O O O O O O O O O O O O O O O O O O O O O O O O O
d
O O O O O O O O O O O O O O O O O O O O O O O O O
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
a
b
c
d
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
5
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
a
b
c
d
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O O
λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ
2. Ñieàn hoï vaø teân treân maãu, sau ñoù ghi maõ thí sinh treân 3 haøng ñaàu tieân (goàm saùu daõy oâ) cuûa maãu . Vôùi 6 daõy oâ naày cho pheùp phaân bieät ñöôïc 1.000.000 sinh vieân . Nghóa laø döõ lieäu cuûa moät tröôøng coù theå laø 1 trieäu sinh vieân ñang thi . Caùch ghi maõ thí sinh laø chæ vieäc toâ ñen nhöõng oâ coù soá töông öùng phía treân moãi daõy . Ví duï : Thí sinh coù teân laø Nguyeãn Vaên A, maõ soá laø 012345 . Coù theå ghi nhö sau : Hoï vaø teân : Nguyeãn Vaên A Soá kyù danh : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
Hoaëc coù theå ghi : Hoï vaø teân : Nguyeãn Vaên A Soá kyù danh : 0 1 2 3 4 5 6 7 8 9 7 8 9
0
1
2
3
4
5
6
Nhö vaäy, trong maõ thí sinh soá 0 coù theå toâ ñen hay boû troáng, vaø vieäc toâ soá theo thöù töï töø treân xuoáng vaø töø daõy oâ phía traùi sang phía phaûi, moãi daõy chæ ghi 1 soá maø thoâi töông öùng vôùi caùc kyù soá trong maõ thí sinh töø traùi sang phaûi . Ta coù theå moâ taû caùc vò trí soá trong saùu daõy oâ nhö sau : haøng traêm ngaøn haøng ngaøn haøng chuïc
haøng chuïc ngaøn haøng traêm haøng ñôn vò
Sau khi ñaõ ghi maõ thí sinh xong, thí sinh coù theå choïn caâu traû lôøi laø a, b, c hay d öùng vôùi caâu coù thöù töï ñaõ ghi beân caïnh . Ví duï : Vôùi caâu soá 1, neáu caâu traû lôøi ñöôïc choïn laø b thì ta laøm nhö sau : a b c d 1 3. Thí sinh khi thi phaûi ñem theo buùt chì loaïi 2B, taåy vaø chuoát chì . 6
4. Khi toâ maõ thí sinh hoaëc choïn caâu traû lôøi neân löu yù caùc kieåu toâ nhö sau : Ñuùng
Sai
Sai
Sai
Sai
Caùc hình thöùc sai : -
: Toâ ngoaøi voøng troøn cuûa oâ .
-
: Khoâng neân toâ choïn kieåu naày .
: Khi boû toâ choïn luùc tröôùc khoâng neân ñaùnh treùo maø phaûi taåy . oâ .
-
: Khi toâ khoâng neân chöøa vuøng traéng phía trong
Vieäc toâ ñaäm oâ ñöôïc choïn nhaèm ñaûm baûo cho LED hoàng ngoaïi hoaït ñoäng toát, traùnh tröôøng hôïp sai khi maïch hoaït ñoäng . 5 . Khi caâu traû lôøi bò boû troáng hoaëc coù töø hai ñaùnh daáu choïn trôû leân ( ) seõ khoâng ñöôïc tính ñieåm . Khi moät caâu ñöôïc choïn, neáu ñuùng vôùi ñaùp aùn thì ñieåm cuûa thí sinh taêng leân 1 . Nhö vaäy vôùi soá löôïng laø 100 caâu, ñieåm toái ña cuûa thí sinh laø 100 ñieåm . Vieäc qui ñoåi ra thang ñieåm 10 hay nhöõng hình thöùc cho khaùc cuõng deã daøng thöïc hieän baèng phaàn meàm .
7
CHÖÔNG II
SÔ LÖÔÏC VEÀ LED HOÀNG NGOAÏI LED hoàng ngoaïi coøn ñöôïc goïi laø nguoàn phaùt soùng hoàng ngoaïi (Infrared emitters) . Vaät lieäu duøng ñeå cheá taïo noù laø GaAs . LED hoàng ngoaïi coù hieäu suaát löôïng töû cao hôn so vôùi LED phaùt ra aùnh saùng thaáy ñöôïc . Maët döôùi cuûa dioát ñöôïc cheá taïo sao cho nhö moät göông ñeå phaûn chieáu tia hoàng ngoaïi phaùt ra töø lôùp chuyeån tieáp pn . p n-GaAs Si n-GaAs Trong phoå taàn soá cuûa soùng ñieän töø, soùng hoàng ngoaïi chieám moät khoaûng roäng nhaát . Nhöng cho ñeán nay noù chöa ñöôïc öùng duïng roäng raõi nhö caùc soùng khaùc coù taàn soá thaáp hôn . Töø aùnh saùng ta ñeán hoàng ngoaïi gaàn, hoàng ngoaïi trung bình, hoàng ngoaïi xa vaø hoàng ngoaïi raát xa . Gaàn 1mm 1µm
Soùng hoàng ngoaïi raát xa 500
200
100
Soùng HN xa 50
20
10
TB 5
2
Töø 770 nm . . . 1 mm
I . AÙNH SAÙNG MAËT TRÔØI VAØ TIA HOÀNG NGOAÏI : Tia naèng aám, bao goàm chuû yeáu laø aùnh saùng thaáy ñöôïc, thaønh phaàn hoàng ngoaïi gaàn nhö raát ít, hoàng ngoaïi bò baàu khí quyeãn haáp thu phaàn lôùn . Soùng hoàng ngoaïi coù ñoä daøi (1.2µm; 1.6µm; 2.2µm vaø 4µm) xuyeân suoát baàu khí quyeãn ñeán maët ñaát, trong khi caùc ñoä daøi soùng khaùc , soùng hoàng ngoaïi bò haáp thu gaàn nhö hoaøn toaøn . II . NGUOÀN PHAÙT SOÙNG HOÀNG NGOAÏI : Hoàng ngoaïi gaàn ñöôïc öùng duïng roäng raõi trong coâng ngheä thoâng tin hieän ñaïi, trong söï töï ñoäng hoaù trong coâng nghieäp . Caùc nguoàn soùng nhaân taïo thöôøng chöùa nhieàu soùng hoàng ngoaïi . Soùng hoàng ngoaïi cuõng coù nhöõng ñaëc tính quang hoïc gioáng nhö aùnh saùng ( Söï hoäi tuï qua thaáu kính, tieâu cöï . . .) . AÙnh saùng vaø soùng hoàng ngoaïi khaùc nhau raát roõ qua söï xuyeân suoát vaät chaát . Coù nhöõng vaät maét ta thaáy (phaûn chieáu aùnh saùng thaáy ñöôïc) nhöng vôùi tia hoàng ngoaïi noù laø nhöõng vaät phaûn chieáu raát ít (hay khoâng phaûn chieáu) . Coù nhöõng vaät ta thaáy noù coù maøu xaùm ñuïc nhöng vôùi aùnh saùng hoàng ngoaïi noù trôû neân trong suoát . Ñieàu naày giaûi thích taïi sao LED hoàng ngoaïi coù hieäu suaát cao hôn so vôùi LED phaùt ra aùnh saùng thaáy ñöôïc . Vì raèng vaät lieäu baùn daãn “trong suoát” ñoái vôùi soùng 8
hoàng ngoaïi, tia hoàng ngoaïi khoâng bò yeáu ñi khi noù phaûi vöôït qua caùc lôùp baùn daãn ñeå ñi ra ngoaøi . Ñôøi soáng cuûa LED hoàng ngoaïi daøi ñeán 100.000 giôøi (hôn 11 naêm) . LED hoàng ngoaïi khoâng phaùt saùng neân noù cho lôïi ñieåm trong caùc thieát bò kieåm soaùt vì khoâng gaây söï chuù yù . Trong maïch thieát keá, chuùng ta duøng LED hoàng ngoaïi nhaèm traùnh nhieãu daãu coù aùnh saùng maët trôøi hay aùnh saùng cuûa ñeøn loït qua maùy chaám thi . III . ÑAËC TRÖNG KYÕ THUAÄT CUÛA MOÄT SOÁ LED HOÀNG NGOAÏI :
9
IV . LINH KIEÄN THU SOÙNG HOÀNG NGOAÏI : Ngöôøi ta coù theå duøng quang ñieän trôû, phototransistor, photodioât ñeå thu soùng hoàng ngoaïi gaàn . Ñeå thu soùng hoàng ngoaïi trung bình vaø xa phaùt ra töø cô theå con ngöôøi, vaät noùng ngöôøi ta duøng loaïi detector vôùi vaät lieäu Lithiumtitanat hay taám chaát deõo PVDF (polyvinyl - Lidendifluorid) . Cô theå con ngöôøi phaùt ra tia hoàng ngoaïi vôùi ñoä daøi soùng töø 8 . . . 10 µm . 1 . PHOTODIOÂT : Tuøy theo chöùc naêng vaø caáu truùc, coù theå phaân photodiot ra laøm nhieàu loaïi : 1. Dioât quang pn . 2. Dioât quang pin . 3. Dioât quang loaïi Schockley . Photodioât coù caùc ñaëc tính : - Raát tuyeán tính . - Ít nhieãu . - Daûi taàn soá roäng . - Nheï vaø coù söùc beàn cô hoïc cao . - Coù ñôøi soáng daøi . 2. MOÄT SOÁ PHOTODIOÁT THOÂNG DUÏNG :
10
CHÖÔNG III
CÔ CHEÁ HOAÏT ÑOÄNG CUÛA MAÏCH I. SÔ ÑOÀ KHOÁI :
LED hoàng ngoaïi(1)
(4)
Giaáy thi Chænh Döõ lieäu xung Tín hieäu thaønh döõ lieäu tín Computer Maõ ñkhieån hieäu soá Tín hieäu (2) ñieàu khieån Tín hieäu Ñieàu ñkhieån khieån
- Loa - Moâ tô - Ñeøn
Kieåm soaùt vaø ñieàu khieån (3)
Ñòa chæ
1. Boä phaän ñeøn LED hoàng ngoaïi (1) : Boä phaän ñeøn LED hoàng ngoaïi seõ thay ñoåi möùc ñieän aùp ôû nhöõng oâ coù ñaùnh daáu ñen hoaëc khoâng coù cuûa töøng haøng treân tôø giaáy thi . Möùc ñieän aùp thay ñoåi naày ñöôïc truyeàn veà boä phaän Chænh xung thaønh tín hieäu soá (2) . Tín hieäu truyeàn veà (2) coù 2 loaïi laø döõ lieäu vaø maõ ñieàu khieån . - Döõ lieäu : Bao goàm maõ soá thí sinh döï thi vaø noäi dung baøi thi . - Maõ ñieàu khieån : Bao goàm maõ kieåm tra ñaàu haøng vaø cuoái haøng, maõ phaân bieät haøng naøo laø maõ soá thí sinh haøng naøo laø noäi dung baøi laøm, vaø maõ keát thuùc baøi thi .
11
2. Boä phaän chænh xung thaønh tín hieäu soá (2) : Nhaän tín hieäu töø LED hoàng ngoaïi chænh daïng thaønh tín hieäu soá. Sau ñoù truyeàn moät soá tính hieäu ñieàu khieån nhö: tín hieäu kieåm tra ñaàu haøng vaø cuoái haøng, tính hieäu phaân bieät maõ soá thí sinh veà boä phaän Kieåm soaùt vaø ñieàu khieån (3) . Coøn tín hieäu keát thuùc baøi thi, tín hieäu döõ lieäu ñöôïc ñöa vaøo Maùy vi tính (4) ñeå xöû lyù . 3. Boä phaän kieåm soaùt vaø ñieàu khieån (3) : Boä phaän naày seõ baùo veà loa, moâ tô vaø ñeøn baùo neáu giaáy thi bò leäch haøng (xeùo), khi ñoù döõ lieäu seõ khoâng ñöïôc ñöa veà maùy tính . Hoaëc chaáp nhaän neáu tröôøng hôïp ngöôïc laïi . 4 . Maùy vi tính (4) : Nhaän tín hieäu döõ lieäu vaø moät soá tín hieäu ñieàu khieån cuûa (2) kieåm tra vaø xöû lyù . Sau ñoù xuaát ra tín hieäu ñieàu khieån veà (3) taïi ñòa chæ xaùc ñònh ñeå (3) thöïc hieän caùc chöùc naêng cuûa noù . II . SÔ ÑOÀ TOÅNG QUAÙT VAØ HOAÏT ÑOÄNG CUÛA MAÏCH : 1. Sô ñoà toång quaùt :
12
2. Hoaït ñoäng cuûa maïch : (Xem sô ñoà toång quaùt ) Baøi thi ñöôïc ñöa vaøo maùy, oâ coù toâ ñen cho maïch möùc 1, ngöôïc laïi laø möùc 0 . Neáu meùp giaáy ñöa vaøo maùy chöa naèm ngang seõ laøm cho coång AND 1 coù möùc ra 0, khi ñoù ñeøn ERROR seõ saùng (coù möùc 1 nhôø coång NOT 1 ) vaø laøm IC 555 dao ñoäng ( vôùi chu kyø T = −6 0.693 * 1010 . * (8200 + (2 * 15000)) = 0.265 ≈ 1/4 giaây) phaùt tín hieäu ra loa . Nhö vaäy, khi khoâng coù giaáy hoaëc ñöa giaáy vaøo chöa caân baèng hai meùp thì ñeøn ERROR saùng vaø loa phaùt tieáng keâu . Trong tröôøng hôïp ngöôïc laïi, hai meùp giaáy ñaõ thaúng haøng thì coång AND 1 coù möùc ra laø 1 khi ñoù ñeøn READY saùng . Ñieàu naày seõ laøm cho coång AND 2 coù moät ñöôøng vaøo vôùi möùc laø 1, nhö vaäy neáu ñöôøng vaøo coøn laïi coù möùc laø 1 nöõa thì seõ laøm cho moâ tô quay (ñeå cuoän giaáy leân) nhôø coång OR 1 . Ta xeùt coång vaøo coøn laïi naày : coång naày ñöôïc noái vôùi maõ ñaàu vaø cuoái haøng qua coång ÑAÛO 2 , neáu maõ ñaàu haøng vaø cuoái haøng thaúng haøng thì coång AND 3 coù möùc ra laø 1 . Trong tröôøng hôïp ngöôïc laïi, nghóa laø khi maõ ñaàu haøng vaø cuoâí haøng khoâng thaúng haøng hoaëc khi LED hoàng ngoaïi ôû baát kyø vò trí naøo treân caùc vuøng troáng giöõa caùc haøng vôùi nhau seõ laøm cho coång AND 3 coù möùc ra laø 0, luùc ñoù NOT 2 coù möùc ra laø 1 - ñaây cuõng laø möùc cuûa coång vaøo coøn laïi naày . Nhö vaäy möùc ra cuûa coång AND 2 naày laø 1 seõ laøm cho moâ tô quay ñaåy giaáy leân . Vaäy, sau khi ñöa giaáy vaøo ngay ngaén, thì moâ tô seõ töï ñoäng ñaåy giaáy leân , vaø noù seõ döøng khi gaëp phaûi baát kyø daáu ñaàu haøng vaø cuoái haøng ñaàu tieân . ( luùc ñoù coång VAØ 2 2 coù möùc ra laø 0 vaø haún nhieân laø ta phaûi duøng leänh xuaát OUT PC6, 0 trong chöông trình ñeå laøm cho möùc ra cuûa coång HOAËC 1 chæ phuï thuoäc vaøo möùc ra cuûa coång VAØ 2 maø thoâi) . Toùm laïi : Sau khi ñöa giaáy ngay ngaén thì moâ tô töï ñoäng ñaåy giaáy leân vaø döøng laïi khi gaëp daáu ñaàu vaø cuoái haøng ñaàu tieân ñeå CPU ñoïc döõ lieäu . Trong maïch, ta duøng IC 8255 ñeå giao tieáp vôùi CPU, noù ñöôïc laäp trình ôû MODE 0 vôùi coång A,B vaø C thaáp laø nhaäp vaø C cao laø xuaát . CPU seõ taïo moät voøng laëp kieåm tra xem neáu PC0 coù möùc laø 1 (ngay daáu ñaàu vaø cuoái haøng) thì seõ laáy döõ lieäu töø coång A vaø B . Nhöng ñeå phaân bieät ñöôïc döõ lieäu naøo laø maõ thí sinh , döõ lieäu naøo laø noäi dung baøi thi ta chæ caàn theâm moät daáu hieäu - taïm goïi laø “daáu maõ thí sinh” ôû ñaàu nhöõng haøng daøng rieâng cho vieäc ghi maõ thí sinh (coù 3 haøng) . Khi gaëp daáu maõ thí sinh thì coång AND 4 coù möùc ra laø 1 seõ ñieàu khieån hai IC 74245 laøm cho IC 74245(1) ñöa döõ lieäu töø ñöôøng ra cuûa hai IC 74147 vaøo CPU vaø voâ hieäu hoùa IC 74245(2) . Khi khoâng coøn daáu hieäu maõ thí sinh nöõa (töø haøng thöù 4 trôû ñi) thì döõ lieäu chæ qua IC 74245(2) vaø ñi vaøo CPU maø thoâi . Sau moãi laàn ñoïc döõ lieäu töø coång A vaø B cuûa IC 8255, CPU seõ xuaát ra PC6 möùc 1 ñeå moâ tô ñaåy giaáy hoaït 13
ñoäng . Vaø noù seõ kieåm tra xem vò trí cuûa LED hoàng ngoaïi coù leäch khoûi daáu ñaàu vaø cuoái haøng chöa thoâng qua PC0 . Neáu PC0 = 0 thì CPU seõ xuaát möùc 0 cho PC 6 . Vì raèng neáu khoâng xuaát laïi möùc 0 cho PC6 thì coång HOAËC 1 seõ luoân luoân coù möùc ra laø moät sau khi CPU ñoïc döõ lieäu laàn ñaàu tieân, ñieàu ñoù seõ laøm cho moâ tô quay maõi maø noù seõ khoâng döøng laïi daãu coù gaëp daáu ñaàu vaø cuoái haøng . Toùm laïi : ÔÛ giai ñoaïn naày laø söï döøng laïi cuûa moâ tô khi gaëp daáu ñaàu vaø cuoái haøng ñeå ñoïc döõ lieäu, sau ñoù ñaåy giaáy leân haøng keá . Quaù trình cöù dieãn ra nhö theá cho ñeán khi gaëp daáu keát thuùc baøi thi . Daáu keát thuùc baøi thi seõ laøm cho coång VAØ 5 coù möùc ra laø 1 ñi vaøo PC1 , vaäy neáu PC1 = 1 thì keát quaû ñieåm cuûa baøi thi ñoù seõ ñöôïc ghi vaøo maãu tin hieän thôøi töø boä nhôù . Khi ñoù CPU seõ baét ñaàu cho voøng laëp môùi . Trong quaù trình ñoïc döõ lieäu, neáu coù caâu naøo ñoù cuûa thí sinh ñuùng vôùi ñaùp aùn thì CPU seõ kích cho IC 7490 moät xung aâm qua coång PC7 ñeå laøm taêng giaù trò ñieåm treân maët ñeøn LED 7 ñoaïn . Giaùo vieân chaám thi coù theå khoâng caàn nhìn treân maøn hình maùy vi tính ñeå ghi ñieåm leân baøi thi maø chæ caàn nhìn treân caùc LED naày . Vôùi moãi laàn gaëp daáu maõ thí sinh cuûa baøi môùi thì giaù trò cuûa caùc IC 7490 ñöôïc thieát laëp baèng 0 . 3 . Phaùt thaûo chöông trình cho CPU : a) Chöông trình chaám dieåm : - Ñaàu voøng laëp . - Xuaát PC6 möùc 0 . - Neáu PC0 =1 ñoïc töø coång A vaø B cuûa IC 8255 . - Moãi khi ñoïc xong 1 haøng (2 byte) xuaát ra PC 6 möùc 1 ñeå kích moâ tô quay vaø xeùt xem PC0 coù baèng 0 chöa . Neáu PC0 = 0 (leäch khoûi maõ ñaàu haøng vaø cuoái haøng) thì xuaát laïi PC6 möùc 0 ñeå giao ñieàu khieàn cho maïch cuûa maùy . - Neáu boä ñeäm ñuû 6 byte ñaàu tieân (maõ thí sinh) thì xöû lyù vaø truy tìm maõ trong cô sôû döõ lieäu . Neáu khoâng coù baùo loãi leân maøn hình, neáu coù nhaûy ñeán maãu tin ñoù . - Töø byte thöù 7 trôû ñi laø noäi dung baøi laøm, moãi haøng (2 byte) coù 4 caâu, neáu caâu traû lôøi ñuùng vôùi ñaùp aùn thì kích xung cho PC7 vaø taêng 1 vaøo bieán ñieåm trong boä ñeäm . - Neáu PC1 = 1 thì ghi trò cuûa bieán ñieåm vaøo maãu tin hieän thôøi vaø xuaát PC6 leân möùc 1 ñeå ñaåy moâ tô vaø keát thuùc moät baøi thi. - Trôû laïi ñaàu voøng laëp . b) Chöông trình ñoïc ñaùp aùn :
ñoïc).
- Xuaát PC6 möùc 0 . - Khôûi taïo bieán ñeám = 0 . - Ñaàu voøng laëp (ñeå boû qua phaàn maõ thí sinh - khoâng
- Ñeám >=3 chöa ? Neáu thoaû thì nhaûy ñeán READATA, neáu khoâng thoaû thì laøm caùc leänh keá . - Xeùt xem PC0 = 1 chöa, neáu PC0 = 1 (coù maõ ñaàu haøng vaø cuoái haøng) xuaát PC6 möùc 1 ñeå kích moâ tô quay. - Xeùt PC0 = 0 chöa, neáu PC0 = 0 thì xuaát PC6 möùc 0 . - Ñeám = ñeám +1 . - Cuoái voøng laëp 14
- READATA : Ñoïc döõ lieäu töø coång A vaø B cuûa IC 8255 moãi khi coù PC0 = 1 . Töông töï nhö phaàn chaám ñieåm nhöng khoâng truy tìm caâu naøo ñuùng hay sai maø chæ ñoïc vaøo khi ñuõ soá byte caàn thieát (hay PC1 = 1 - maõ cho bieát cuoái giaáy) sau ñoù ghi leân thaønh taäp tin treân ñiaõ . Phaàn chöông trình naày seõ ñöôïc vieát cuï theå ôû caùc trang sau . III . SÔ ÑOÀ CHI TIEÁT :
15
PHAÀN CHÖÔNG TRÌNH CHINH
Set Talk Off Set Default To C:\Test Set Safe Off Close All Clear All !Lt8255 Do While .T. Clear @0,0 To 24,79 Double Color Gr+ Tua='CHUONG TRINH TEST PHAN CUNG CHAM THI TRAC NGHIEM' @ 3,(80-Len(Tua))/2-2 To 5,(80-Len(Tua))/2+Len(Tua)+2 Double Color R+/B @ 4,(80-Len(Tua))/2 Say Tua Color G+ @ 11,28 To 15,50 Double Color RB/W @ 12,30 Prompt ' 1- NHAP DAP AN ' @ 13,30 Prompt ' 2- CHAM DIEM THI ' @ 14,30 Prompt ' 3- KET THUC ' Menu To C Do Case Case C=1 Do Dapan Case C=2 Do Chamdiem Case C=3 Do Exit EndCase EndDo Set Talk On Return *--------------------------------------------------------Procedure Dapan !Dung i=1 Do While i<=3 !PC0_1 !Dayhang i=i+1 EndDo i=1 Z='' Wait " BAT DAU DOC NOI DUNG BAI THI!" Windows Timeout 1 Do While i<=25 !Doc_da W=Fopen('CauDA.txt') U=Fgets(W) =Fclose(W) ??U Z=Z+U !Dayhang i=i+1 EndDo W=Fcreate('Dapan.txt') =Fwrite(W,Z) =Fclose(W) 16
Wait "DAY PHIM BAT KY DE TIEP TUC !" Window !Day Return *---------------------------------------------------------Procedure Chamdiem Use Diem Index On Masv To Mssv Do While .T. !Dung M_diem=0 i=1 M='' Do While i<=3 !Docma X=Fopen('Masv.Txt') K=Fgets(X) =Fclose(X) M=M+K !Dayhang i=i+1 EndDo @22,1 Say M Ma=Val(M) Seek(Ma) If Found() @16,20 Say " MASV"+Space(8)+"HO"+Space(9)+"TEN" @18,20 Say " "+Str(Masv,6)+' '+Ho+Ten Do Traloi Repl Diem With M_diem @18,20 Say " "+Str(Masv,6)+' '+Ho+Ten+Str(Diem,3) Else Wait "KHONG CO MA SINH VIEN NAY!" Windows EndIf Wait "CHAM DIEM TIEP KHONG ?(Y/N)" To Tiep Windows If Upper(Tiep)='N' Clear Exit EndIf Clear @0,0 To 24,79 Double Color Gr+ Tua='DANG CHAM DIEM TIEP TUC' @ 3,(80-Len(Tua))/2-2 To 5,(80-Len(Tua))/2+Len(Tua)+2 Double Color R+/B @ 4,(80-Len(Tua))/2 Say Tua Color G+ EndDo Return *--------------------------------------------------------Procedure Traloi Cau=1 Y=Fopen('Dapan.Txt') T=Fgets(Y) =Fclose(Y) Do While Cau<=25 !Bailam X=Fopen('Traloi.Txt') 17
D=Fgets(X) =Fclose(X) CauDA=SubStr(T,((Cau-1)*4)+1,4) i=1 Do While i<=Len(D) TL=SubStr(D,i,1) DA=SubStr(CauDA,i,1) If TL=DA !Chodiem M_diem=M_diem+1 EndIf i=i+1 EndDo If Cau=25 Wait " " Timeout 2 EndIf !Dayhang Cau=Cau+1 EndDo !Day Return *--------------------------------------------------------Procedure Exit !Dung Set Talk On Close All Quit Return ----------------------------------------------------------------------------------------------PHAÀN CHÖÔNG TRÌNH BANG ASSEMBLY DOC_DA.ASM: Include Macro.Asm Code Segment Para Public 'Code' Assume CS:Code,DS:Data PC0_1 Proc Lap: Mov DX,PortC In AL,DX AndAL,01 Mov DL,AL Add DL,30h Cmp DL,31h Je Thoat Jmp Lap Thoat: Ret PC0_1 EndP DELAY Proc Mov CX,1000 Dela: Loop Dela DELAY EndP 18
DOC
Proc
Mov DX,PortA In AL,DX Mov BL,AL Mov Xport,'A' Bitthap: Mov Bcao,'0' Mov DL,AL AndDL,0FH Sosanh: Cmp DL,00000001B Je Luu_a Cmp DL,00000010B Je Luu_b Cmp DL,00000100B Je Luu_c Cmp DL,00001000B Je Luu_d Jmp Luu_? Luu_a: Mov DL,'a' Mov [SI],DL Jmp Xetbit Luu_b: Mov DL,'b' Mov [SI],DL Jmp Xetbit Luu_c: Mov DL,'c' Mov [SI],DL Jmp Xetbit Luu_d: Mov DL,'d' Mov [SI],DL Jmp Xetbit Luu_?: Mov DL,'?' Mov [SI],DL Xetbit: Inc SI Cmp Bcao,'1' Je XetportB Mov Bcao,'1' Mov DL,BL Mov CL,4 Shr DL,CL Jmp Sosanh XetportB : Cmp Xport,'B' Je Hetdoc Mov DX,PortB In AL,DX Mov BL,AL Mov Xport,'B' Jmp Bitthap 19
Hetdoc: Ret DOC EndP Main Proc Mov AX,Data Mov DS,AX Mov SI,Offset Buffer Call PC0_1 Mov AX,Data Mov DS,AX Call DELAY Mov AX,Data Mov DS,AX Call DOC Taofile: Create Finame,20h JB Error Mov Handle,AX Write Handle,Buffer,Buflen JB Error Close BX JB Error Exit: Mov AX,4C00h Int 21h Ret Error: Puts ErrMess Jmp Short Exit Main EndP Code EndS Data Segment Public 'Data' Finame DB 'C:\Test\CauDA.txt',0 ErrMess DB 'LOI TAO/GHI FILE !$' Handle DW ? BasAdr Equ 300H PortA Equ BasAdr PortB Equ BasAdr+1 PortC Equ BasAdr+2 Xport DB ? Bcao DB ? Buflen Equ 4 Buffer DB Buflen Dup(?) Data EndS End Main ----------------------------------------------------------------------------------------------DOCMA.ASM: Include Macro.asm Code Segment Para Public 'Code' Assume CS:Code,DS:Data PC0_1 Proc Lap: Mov DX,PortC In AL,DX 20
And AL,01 Mov DL,AL Add DL,30h Cmp DL,31h Je Thoat Jmp Lap Thoat: Ret PC0_1 EndP DELAY Proc Mov CX,1000 Dela: Loop Dela Ret DELAY EndP DOCMA Proc Mov DX,PortA In AL,DX Not AL Mov BL,AL Mov DL,BL AndDL,7FH Mov CL,4 Shr DL,CL Add DL,30h Mov [SI],DL Inc SI Mov DL,BL AndDL,07H Add DL,30h Mov [SI],DL Inc SI Ret DOCMA EndP Main Proc Mov AX,Data Mov DS,AX Mov SI,Offset Buffer Lapdem: Call PC0_1 Mov AX,Data Mov DS,AX Call DELAY Mov AX,Data Mov DS,AX Call DOCMA Create Finame,20h JB Error Mov Handle,AX Write Handle,Buffer,Buflen JB Error Close BX JB Error Exit : Mov AX,4C00h Int 21h 21
Ret Error : Puts Errmess JMP Short Exit Main EndP Code EndS Data Segment Para Public 'Data' Finame DB 'C:\Test\Masv.txt',0 Errmess DB 'File I/O Error !$' Buflen Equ 2 Buffer DB Buflen Dup(?) Handle DW ? BasAdr EQU 300H PortA EQU BasAdr PortC EQU BasAdr+2 Data EndS End Main ----------------------------------------------------------------------------------------------BAILAM.ASM: Include Macro.Asm Code Segment Para Public 'Code' Assume CS:Code,DS:Data PC0_1 Proc Lap: Mov DX,PortC In AL,DX AndAL,01 Mov DL,AL Add DL,30h Cmp DL,31h Je Thoat Jmp Lap Thoat: Ret PC0_1 EndP DELAY Proc Mov CX,1000 Dela: Loop Dela Ret DELAY EndP DOC Proc Mov DX,PortA In AL,DX Mov BL,AL Mov Xport,'A' Bitthap: Mov Bcao,'0' Mov DL,AL AndDL,0FH Sosanh: Cmp DL,00000001B Je Luu_a Cmp DL,00000010B Je Luu_b 22
Cmp DL,00000100B Je Luu_c Cmp DL,00001000B Je Luu_d Jmp Luu_? Luu_a: Mov DL,'a' Mov [SI],DL Jmp Xetbit Luu_b: Mov DL,'b' Mov [SI],DL Jmp Xetbit Luu_c: Mov DL,'c' Mov [SI],DL Jmp Xetbit Luu_d: Mov DL,'d' Mov [SI],DL Jmp Xetbit Luu_?: Mov DL,'?' Mov [SI],DL Xetbit: Inc SI Cmp Bcao,'1' Je XetportB Mov Bcao,'1' Mov DL,BL Mov CL,4 Shr DL,CL Jmp Sosanh XetportB : Cmp Xport,'B' Je Hetdoc Mov DX,PortB In AL,DX Mov BL,AL Mov Xport,'B' Jmp Bitthap Hetdoc: Ret DOC EndP Main Proc Mov AX,Data Mov DS,AX Mov SI,Offset Buffer Doccau: Call PC0_1 Mov AX,Data Mov DS,AX Call DELAY Mov AX,Data Mov DS,AX Call DOC 23
Exit:
Create Finame,20h JB Error Mov Handle,AX Write Handle,Buffer,Buflen JB Error Close BX JB Error
Mov AX,4C00h Int 21h Ret Error: Puts ErrMess Jmp Short Exit Main EndP Code EndS Data Segment Public 'Data' Finame DB 'C:\Test\Traloi.txt',0 ErrMess DB 'LOI TAO/GHI FILE !$' Handle DW ? BasAdr Equ 300H PortA Equ BasAdr PortB Equ BasAdr+1 PortC Equ BasAdr+2 Xport DB ? Bcao DB ? Buflen Equ 4 Buffer DB Buflen Dup(?) Data EndS End Main ----------------------------------------------------------------------------------------------DAYHANG.ASM: Code Segment Para Public 'Code' Assume CS:Code,DS:Data DAY Proc Mov DX,PortC In AL,DX Or AL,01000000B Mov CX,5 Day1: Out DX,AL Loop Day1 DAY EndP PC0_0 Proc Lap: Mov DX,PortC In AL,DX And AL,01 Mov DL,AL Add DL,30h Cmp DL,30h Je Thoat Jmp Lap Thoat: 24
Ret PC0_0 EndP DUNG Proc Mov DX,PortC In AL,DX And AL,10111111B Mov CX,5 Dung1: Out DX,AL Loop Dung1 Ret DUNG EndP Main Proc Mov AX,Data Mov DS,AX Call Day Mov AX,Data Mov DS,AX Call PC0_0 Mov AX,Data Mov DS,AX Call DUNG Mov AX,4C00H Int 21H Ret Main EndP Code EndS Data Segment Para Public 'Data' BasAdr Equ 300H PortC Equ BasAdr+2 Data EndS End Main ----------------------------------------------------------------------------------------------CHODIEM.ASM: Code Segment Assume CS:Code,DS:Data Main Proc Mov DX,PortC In AL,DX And AL,10000000B Cmp AL,80H JE Muc1 In AL,DX Or AL,10000000B Out DX,AL And AL,01111111B Out DX,AL Jmp Exit Muc1: In AL,DX And AL,01111111B Out DX,AL Or AL,10000000B Out DX,AL 25
Exit: Mov Int Ret Main Code Data
AX,4C00h 21h
EndP EndS Segment BasAdr Equ 300H PortC Equ BasAdr+2 Data EndS End Main ----------------------------------------------------------------------------------------------LT8255.ASM: Code Segment Assume CS:Code,DS:Data Main Proc Mov AL,10010011B Mov DX,ContrReg Out DX,AL Mov AX,4C00h Int 21h Ret Main EndP Code EndS Data Segment BasAdr Equ 300H ContrReg Equ BasAdr+3 Data EndS End Main
26
KEÁT LUAÄN Chuùng em xin baùo caùo vôùi Hoäi Ñoàng laø ñeán nay chuùng em ñaõ hoaøn thaønh : - Maïch ñeøn LED hoàng ngoaïi . - Maïch ñieàu khieån - Caùc phaàn cô - Chöông trình test phaàn cöùng - Chöông trình chaám thi traéc nghieäm Nhö vaäy, theo yeâu caàu cuûa ñeà taøi, chuùng em ñaõ hoaøn thaønh xong . Ngoaøi ra, trong quaù trình laøm ñeà taøi, chuùng em gaëp phaûi nhöõng khoù khaên nhö : 1. Veà phaàn cô, phaûi ñaûm baûo töông ñoái chính xaùc khi ñöa giaáy vaøo maùy ñeå chaïy qua daøn ñeøn LED hoàng ngoaïi. Vì soá löôïng caâu baøi laøm hay ñaùp aùn nhieàu (100 caâu vaø maû thí sinh) maø laïi thieát keá treân cuøng moät trang neân caùc LED phaûi saùt nhau . Neáu giaáy bò leäch, döõ lieäu seõ ñoïc sai. Vaõ laïi vieäc thi coâng baèng thuû coâng cuõng khoù ñaùp öùng ñöôïc nhöõng yeâu caàu caàn thieát. 2. Loaïi LED chuùng em söû duïng khoâng ñöôïc oån ñònh veà maët ñieän aùp khi chuùng hoaït ñoäng laâu so vôùi khi chuùng vöøa môùi hoaït ñoäng . Söï tìm kieám loaïi LED khaùc thay theá cuõng laø moät vieäc khoù khaên treân thò tröôøng. Söï khoù khaên theå hieän ôû choã vaät caûn tia hoàng ngoaïi (caâu ñöôïc toâ ñen) khoâng phaûi laø vaät haáp thu (caûn) aùnh saùng hoaøn toaøn, maø chæ laø moät phaàn naøo ñoù. Vì noù ñöôïc toâ baèng buùt chì vaø coøn phuï thuoäc vaøo söï “hoái haû” hay “caån thaän” cuûa thí sinh trong phoøng thi.
27
ÑEÀ XUAÁT YÙ KIEÁN •
Ñoái vôùi ñeà taøi naày, neáu caûi thieän phaàn cô coù khaû naêng chaám thi haøng loaït baøi thi maø khoâng caàn ñöa giaáy töøng tôø rieâng leû - maát thôøi gian .
•
Cuõng coù theå thieát keá maïch theâm phaàn ñieàu khieån töø xa cho moät soá thao taùc tieän duøng nhö : ñieàu khieån moâ tô, ñieàu khieån loa, . . .
28
TAØI LIEÄU THAM KHAÛO
baûn
Teân saùch
Taùc giaû
1. Linh kieän quang ñieän töû Hoïc Kyõ Thuaät
Nhaø xuaát
Döông Minh Trí
Sô ñoà chaân linh kieän baùn daãn Döông Minh Trí Sôû Giaùo Duïc & Ñaøo Taïo 3. Ño löôøng vaø ñieàu khieån Ngoâ Dieân Taäp Hoïc Kyõ Thuaät baèng maùy tính
Khoa
2.
4.
PC/XT-AT Technical Reference
29
Khoa
30