TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN PHẦN CỨNG
________♣________
LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI :
DÙNG MÁY VI TÍNH THIẾT KẾ MÁY
CHẤM THI TRẮC NGHIỆM
GVHD : PHAN ĐÌNH MÃI
SVTH : TÔ OAI HÙNG
TRẦN NGỌC TRÁC
LỚP : KỸ SƯ II
- 1997 -
LỜI CẢM TA
Ï
Xin chân thành cảm ơn thầy
Phan Đình Mãi đã tận tình
hướng dẫn và giúp đỡ chúng
em để hoàn thành bài thực
tập tốt nghiệp này .
Xin chân thành cảm ơn q
thầy cô trong khoa Công Nghệ
Thông Tin đã tận tình dạy dỗ
chúng em .
2
NỘI DUNG
l TÌM HIỂU NGUYÊN LÝ
liệu điểm trên máy vi tính hoặc sự thể hiện của LED 7 đoạn trên máy chấm thi .
So với việc chấm thi trước đây thì máy chấm thi có những ưu điểm sau :
- Nhanh .
- Kết quả điểm được ghi chính xác vào vi tính .
- Rất ít tốn công .
Tuy nhiên, để đạt được các điều trên, thí sinh phải làm bài trên một mẫu giấy nhất đònh và phải
tuân theo một số qui tắc khi làm bài . Xét cho cùng, những yêu cầu nầy không có gì phiền toái và khó
thực hiện mà chúng ta sẽ thấy dưới đây .
II . NHỮNG YÊU CẦU VÀ LƯU Ý :
Sau đây là những yêu cầu đối với thí sinh :
1. Phải đánh dấu câu trả lời trên mẫu được qui đònh sẵ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
l
O O O O O O O O O O O O O O O O O O O O
l
l
O O O O O O O O O O O O O O O O O O O O
l
l
O O O O O O O O O O O O O O O O O O O O
l
a b c d a b c d a b c d a b c d
l
1
O O O O
29
O O O O
54
O O O O
79
O O O O
l
l
5
O O O O
30
O O O O
55
O O O O
80
O O O O
l
l
6
O O O O
31
O O O O
56
O O O O
81
O O O O
l
l
7
O O O O
35
O O O O
60
O O O O
85
O O O O
l
l
11
O O O O
36
O O O O
61
O O O O
86
O O O O
l
l
12
O O O O
37
O O O O
62
O O O O
87
O O O O
l
l
13
O O O O
41
O O O O
66
O O O O
91
O O O O
l
l
17
O O O O
42
O O O O
67
O O O O
92
O O O O
l
l
18
O O O O
43
O O O O
68
O O O O
93
O O O O
l
l
19
O O O O
47
O O O O
72
O O O O
97
O O O O
l
l
23
O O O O
48
O O O O
73
O O O O
98
O O O O
l
l
24
O O O O
49
O O O O
74
O O O O
99
O O O O
l
l
25
O O O O
hàng chục hàng đơn vò
Sau khi đã ghi mã thí sinh xong, thí sinh có thể chọn câu trả lời là a, b, c hay d ứng
với câu có thứ tự đã ghi bên cạnh .
Ví dụ : Với câu số 1, nếu câu trả lời được chọn là b thì ta làm như sau :
a b c d
1
6
3. Thí sinh khi thi phải đem theo bút chì loại 2B, tẩy và chuốt chì .
4. Khi tô mã thí sinh hoặc chọn câu trả lời nên lưu ý các kiểu tô như sau :
Đúng Sai Sai Sai Sai
Các hình thức sai :
- : Tô ngoài vòng tròn của ô .
- : Không nên tô chọn kiểu nầy .
- : Khi bỏ tô chọn lúc trước không nên đánh tréo mà phải tẩy .
- : Khi tô không nên chừa vùng trắng phía trong ô .
Việc tô đậm ô được chọn nhằm đảm bảo cho LED hồng ngoại hoạt động tốt, tránh
trường hợp sai khi mạch hoạt động .
5 . Khi câu trả lời bò bỏ trống hoặc có từ hai đánh dấu chọn trở lên ( ) sẽ
không được tính điểm .
Khi một câu được chọn, nếu đúng với đáp án thì điểm của thí sinh tăng lên 1 . Như
vậy với số lượng là 100 câu, điểm tối đa của thí sinh là 100 điểm . Việc qui đổi ra thang
điểm 10 hay những hình thức cho khác cũng dễ dàng thực hiện bằng phần mềm .
7
CHƯƠNG II
SƠ LƯC VỀ LED HỒNG NGOẠI
LED hồng ngoại còn được gọi là nguồn phát sóng hồng ngoại (Infrared
emitters) . Vật liệu dùng để chế tạo nó là GaAs . LED hồng ngoại có hiệu suất lượng tử
cao hơn so với LED phát ra ánh sáng thấy được . Mặt dưới của diốt được chế tạo sao
cho như một gương để phản chiếu tia hồng ngoại phát ra từ lớp chuyển tiếp pn .
gây sự chú ý . Trong mạch thiết kế, chúng ta dùng LED hồng ngoại nhằm tránh nhiễu
dẫu có ánh sáng mặt trời hay ánh sáng của đèn lọt qua máy chấm thi .
8
III . ĐẶC TRƯNG KỸ THUẬT CỦA MỘT SỐ LED HỒNG NGOẠI :
9
IV . LINH KIỆN THU SÓNG HỒNG NGOẠI :
Người ta có thể dùng quang điện trở, phototransistor, photodiôt để thu sóng
hồng ngoại gần . Để thu sóng hồng ngoại trung bình và xa phát ra từ cơ thể con người,
vật nóng người ta dùng loại detector với vật liệu Lithiumtitanat hay tấm chất dẽo PVDF
(polyvinyl - Lidendifluorid) . Cơ thể con người phát ra tia hồng ngoại với độ dài sóng từ
8 . . . 10 µm .
1 . PHOTODIÔT :
Tùy theo chức năng và cấu trúc, có thể phân photodiot ra làm nhiều loại :
1. Diôt quang pn .
2. Diôt quang pin .
3. Diôt quang loại Schockley .
Photodiôt có các đặc tính :
- Rất tuyến tính .
- Ít nhiễu .
- Dải tần số rộng .
- Nhẹ và có sức bền cơ học cao .
- Có đời sống dài .
2. MỘT SỐ PHOTODIỐT THÔNG DỤNG :
10
CHƯƠNG III
CƠ CHẾ HOẠT ĐỘNG CỦA MẠCH
I. SƠ ĐỒ KHỐI :
1. Bộ phận đèn LED hồng ngoại (1) :
Bộ phận đèn LED hồng ngoại sẽ thay đổi mức điện áp ở những ô
có đánh dấu đen hoặc không có của từng hàng trên tờ giấy thi . Mức điện áp thay đổi nầy
Bộ phận nầy sẽ báo về loa, mô tơ và đèn báo nếu giấy thi bò lệch hàng
(xéo), khi đó dữ liệu sẽ không đựơc đưa về máy tính . Hoặc chấp nhận nếu trường hợp
ngược lại .
4 . Máy vi tính (4) :
Nhận tín hiệu dữ liệu và một số tín hiệu điều khiển của (2) kiểm tra và xử
lý . Sau đó xuất ra tín hiệu điều khiển về (3) tại đòa chỉ xác đònh để (3) thực hiện các chức
năng của nó .
II . SƠ ĐỒ TỔNG QUÁT VÀ HOẠT ĐỘNG CỦA MẠCH :
1. Sơ đồ tổng quát :
12
2. Hoạt động của mạch : (Xem sơ đồ tổng quát )
Bài thi được đưa vào máy, ô có tô đen cho mạch mức 1, ngược lại
là mức 0 . Nếu mép giấy đưa vào máy chưa nằm ngang sẽ làm cho cổng AND
1 có mức ra 0, khi đó đèn ERROR sẽ sáng (có mức 1 nhờ cổng NOT 1 ) và
làm IC 555 dao động ( với chu kỳ T =
0 693 1010 8200 2 15000
6
. * . * ( ( * ))
−
+
=
0.265 ≈ 1/4 giây) phát tín hiệu ra loa . Như vậy, khi không có giấy hoặc đưa
giấy vào chưa cân bằng hai mép thì đèn ERROR sáng và loa phát tiếng kêu .
Trong trường hợp ngược lại, hai mép giấy đã thẳng hàng thì cổng AND 1
có mức ra là 1 khi đó đèn READY sáng . Điều nầy sẽ làm cho cổng AND 2
có một đường vào với mức là 1, như vậy nếu đường vào còn lại có mức là 1 nữa
thì sẽ làm cho mô tơ quay (để cuộn giấy lên) nhờ cổng OR 1 . Ta xét cổng vào
còn lại nầy : cổng nầy được nối với mã đầu và cuối hàng qua cổng ĐẢO 2
, nếu mã đầu hàng và cuối hàng thẳng hàng thì cổng AND 3 có mức ra là 1 .
Trong trường hợp ngược lại, nghóa là khi mã đầu hàng và cuôí hàng không
0
. Nếu PC
0
=
0 thì CPU sẽ xuất mức 0 cho PC
6
. Vì rằng nếu không xuất lại mức 0 cho PC
6
thì
cổng HOẶC 1 sẽ luôn luôn có mức ra là một sau khi CPU đọc dữ liệu lần đầu
tiên, điều đó sẽ làm cho mô tơ quay mãi mà nó sẽ không dừng lại dẫu có gặp
dấu đầu và cuối hàng .
Tóm lại : Ở giai đoạn nầy là sự dừng lại của mô tơ khi gặp dấu đầu và cuối hàng
để đọc dữ liệu, sau đó đẩy giấy lên hàng kế . Quá trình cứ diễn ra như thế cho đến khi
gặp dấu kết thúc bài thi .
13
Dấu kết thúc bài thi sẽ làm cho cổng VÀ 5 có mức ra là 1 đi vào PC
1
, vậy
nếu PC
1
= 1 thì kết quả điểm của bài thi đó sẽ được ghi vào mẫu tin hiện thời từ bộ nhớ .
Khi đó CPU sẽ bắt đầu cho vòng lặp mới .
Trong quá trình đọc dữ liệu, nếu có câu nào đó của thí sinh đúng với đáp án thì
CPU sẽ kích cho IC 7490 một xung âm qua cổng PC
7
để làm tăng giá trò điểm trên mặt
đèn LED 7 đoạn . Giáo viên chấm thi có thể không cần nhìn trên màn hình máy vi tính để
ghi điểm lên bài thi mà chỉ cần nhìn trên các LED nầy . Với mỗi lần gặp dấu mã thí sinh
của bài mới thì giá trò của các IC 7490 được thiết lặp bằng 0 .
lên mức 1 để đẩy mô tơ và kết thúc một bài thi.
- Trở lại đầu vòng lặp .
b) Chương trình đọc đáp án :
- Xuất PC
6
mức 0 .
- Khởi tạo biến đếm = 0 .
- Đầu vòng lặp (để bỏ qua phần mã thí sinh - không đọc).
- Đếm >=3 chưa ? Nếu thoả thì nhảy đến READATA, nếu không thoả thì
làm các lệnh kế .
- Xét xem PC
0
= 1 chưa, nếu PC
0
= 1 (có mã đầu hàng và cuối hàng) xuất
PC
6
mức 1 để kích mô tơ quay.
- Xét PC
0
= 0 chưa, nếu PC
0
= 0 thì xuất PC
6
mức 0 .
- Đếm = đếm +1 .
- Cuối vòng lặp
- READATA : Đọc dữ liệu từ cổng A và B của IC 8255 mỗi khi có PC
0
= 1 .
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
16
!Dayhang
i=i+1
@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'
17
@ 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')
PHAÀN CHÖÔNG TRÌNH BANG ASSEMBLY
DOC_DA.ASM:
18
Include Macro.Asm
Code Segment Para Public 'Code'
Assume CS:Code,DS:Data
PC0_1 Proc
Lap:
Mov DX,PortC
In AL,DX
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
DELAY EndP
DOC Proc
Mov DX,PortA
In AL,DX
Mov BL,AL
Mov Xport,'A'
Bitthap:
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
Call PC0_1
Mov AX,Data
Mov DS,AX
Call DELAY
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
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
21
Ret
DELAY EndP
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
Ret
Error : Puts Errmess
JMP Short Exit
Main EndP
Code EndS
Data Segment Para Public 'Data'
22
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
Sosanh:
Cmp DL,00000001B
Je Luu_a
Cmp DL,00000010B
23
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
Mov DS,AX
Call DOC
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\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(?)