Tải bản đầy đủ (.pdf) (18 trang)

Tài liệu thiết kế máy chấm bài trắc nghiệm, chương 8 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (160.04 KB, 18 trang )

Chương 8: XÂY DỰNG SƠ ĐỒ KHỐI THƯ VIỆN DRIVER
Thư viện Driver là một trong số những thư viện được viết để
xây dựng phần mềm điều khiển máy chấm điểm trắc nghiệm.
Thư viện này được viết bằng ngôn ngữ lập trình PASCAL, bao
gồm 11 thủ tục con, dùng để điều khiển hoạt động của động cơ
và truy xuất dữ liệu hệ thống.
Thư viện này sử dụng một Unit tên VAR_COM, là thư viện
chứa các hằng, biến toàn cục của chương trình. Cụ thể:
UNIT VAR_COM; {Khai báo tên Unit cần tạo}
INTERFACE {Khai báo chung}
TYPE
File_Name_Type = String[16];
XY_Type = Record
Hor : Word;
Vert : Word;
End;
CONST
L_Horizontal = 600; (*Chiều dài tối đa tín hiệu điều khiển
cần quét*)
L_Scan = 100; (*Chiều dài tối đa tín hiệu điều khiển
quét *)
On = True;
Off = False;
Right = True;
Left = False;
Up = True;
Down = False;
VAR
Sys_Error : Byte;
DataA, DataB : Byte;
DataC, CL, CH : Byte;


Error : Boolean; (*PC3 : tín hieäu loãi Error *)
Page : Boolean; (*PC2 : tín hieäu loãi Page *)
Vert : Boolean; (*PC1 : tín hieäu Veritical *)
Hor : Boolean; (*PC0 : tín hieäu Horizontal*)
V_Count,
H_Count,
Sc_Count : Integer;
Add_Port : Array [0..2] of Word;
(*
Add_Port 0 : Address Port A
Add_Port 1 : Address Port B
Add_Port 2 : Address Port C
*)
DataA_Bit : Array[0..7] of Boolean;
(*
Bit 0 : Clock Vertical
Bit 1 : Up/Down Vertical
Bit 2 : Clock Scan
Bit 3 : Up/Down Scan
Bit 4 : Clock Horizontal
Bit 5 : Up/Down Horizontal
Bit 6 : Motor DC 1st
Bit 7 : Motor DC 2nd
*)
T_DL_CK : Word; (*Thời gian Delay của xung CK*)
T_DL_MDC : Word; (*Thời gian Delay của Motro
DC*)
F_XY, (*File lưu trữ tọa độ XY*)
F_Data, (*File lưu trữ trả lời mẫu*)
F_Sys, (*File lưu trữ trạng thái*)

F_Ans : File; (*File lưu trữ kết quả*)
F_Error : Boolean;
W_Data, (*Chiều rộng dữ liệu*)
L_Data : Byte; (*Chiều dài dữ liệu *)
XY_Name : File_Name_Type; (*Tên mở rộng File tọa độ
XY*)
XY_Count : Word; (*Số cặp tọa độ XY*)
XY_Data : Array [1..500] of XY_Type;(*Mãng dữ liêu,
tối đa 500*)
IMPLEMENTATION {Thi hành}
BEGIN
END. {Kết thúc thư viện}
Các thủ tục ta xây dựng sơ đồ khối trong chương này là:
1. ProceDure ReadC;
2. ProceDure CK;
3. ProceDure MDC(DC1,DC2:Boolean);
4. ProceDure Run_SM(Motor:Byte;Step:Integer);
5. ProceDure SM_Standar(SM_H,SM_SC:Boolean);
6. ProceDure Page_Out;
7. ProceDure Page_In;
8. ProceDure GoXY(H,V:Integer);
9. ProceDure ResetData;
ProceDure ReadB;
10. ProceDure Scan;
Trong sơ đồ khối có các từ viết tắt như:BA
07
(viết tắt của
biến DataA_Bit[0..7]), PA
07
(viết tắt của biến DataA[0..7]).

Thủ tục ReadC
Sta
r
Read
PortC
L
Bit C
0
= 1
Bit C
1
= 1
Bit C
2
= 1
Bit C
3
= 1
Hor=True
Hor=False Vert=False
Page=False Error=False
Page=TrueVert=True Error=True
End
Đ Đ Đ Đ
S S S S
Thủ tục này có chức năng đọc dữ liệu từ Port C vào, tín hiệu
PortC
L
, sau đó làm chuẩn lại tín hiệâu (chỉ lấy 04 bit thấp PC
04

)
bằng cách AND với $0F
H
(15
D
). Sau khi đã làm chuẩn tín hiệu,
tùy giá trò của từng bit (là [0] hay [1]) mà gán trạng trái của báo
của cờ tương ứng (HOR, VERT, PAGE, ERROR) là [True] hay
[False].
Thuû tuïc CK
Star
PA
05
=0
I = 1
I > 5
BA
i
=true
DataA
or(1 shl i)
I + 1
BA
0,2,4
= False
PortA
= DataA
DataA
or $D5
Delay

PortA
= DataA
End
Ñ
S
Ñ
S
Thủ tục này có nhiệm vụ tạo một xung Ck cho mạch
giãi mã điều khiển. Nó sẽ truyền tín hiệu điều khiển đến
mạch điều khiển thông qua Port A- Tùy theo ý nghóa của
từng cờ bit (DataA_Bit
07
, BA
07
) mà Data A được điều chế
tương ứng.
Thủ tục MDC
Star
BA
6
=DC
1
DC
1
=true
BA
7
=DC
2
DC

2
=true
DataA
or $40
DataA
or $80
DataA
and $BF
DataA
and $7F
End
Ck
Đ Đ
S S

×