-
0
-
Chương 11: THIẾT KẾ PHẦM MỀM PASCAL
Giới thiệu ngôn ngữ PASCAL:
1.Xuất xứ:
Pascal là một ngôn ngữ lập trình cấp cao do giáo sư NIKLAUS
WIRTH ở trường đại học kỹ thuật ZURICH Thụy Só sáng tạo vào
năm 1970, và đặt tân là PASCAL để tưởng nhớ đến BLAISE
PASCAL, nhà toán học, nhà triết học PHÁP ở thế kỷ 17. Người
đã chế tạo ra kiểu máy tính cơ khí.
PASCAL được coi là một ngôn ngữ đẹp nhất trong họ cổ điển,
là một trong những ngôn ngữ mạnh, phổ biến nhất là nền tảng
cho các môn lập trình khác, có nhiều tính ưu việt.
Người ta đã nhận thấy rằng có thể lập trình một cách khoa
học, logic cho một chương trình cụ thể nào đó dựa trên phân tích
các thuật toán và suy diễn toán học.
IV.3.2.các ưư điểmcủa ngôn ngữ PASCAL:
PASCAL có thể thực hiện một cách chính xác các cấu trúc
dữ liệu phức tạp và các thuật toán phức tạp.
PASCAL có tính mềm dẽo và tiện lợi trong việc chia nhỏ
vấn đề ra giải quyết độc lập. Có đủ các phép toán số học,
logic,…Các kiểu dữ liệu trong PASCAL phong phú, thể hiện được
nhiều kiểu dữ liệu từ đơn giản đến phức tạp.
Ngôn ngữ PASCAL trở thành ngôn ngữ chính thống, ngôn
ngữ phổ biến, được dùng nhiều trong trường học và các lónh vực
khác.
IV.3.3.Turbo pascal:
Từ ngôn ngữ PASCAL do giáo sư WIRTH sáng tác, các hãng
phần mền đã phát triển thêm và tạo ra các chương trình dòch
ngôn ngữ PASCAL như:
- OS PASCAL:Được gọi là PASCAL chuẩn.
- IBM PASCAL : Của hãng Microsoft.
- TURBO PASCAL : Của hãng BORLAND.
- Ưu điểm của TURBO PASCAL:
- Tiện cho việc dòch liên hoàn với việc soạn thảo, sửa
-
1
-
chữa .
- Tốc độ dòch nhanh.
- Chương trình dòch gọn, đòi hỏi ít bộ nhớ, có nhiều
hàm,nhiều công cụ hỗ trợ.
- Làm việc thoải mái, có hiệu quả. Tính đối thoại người và
máy phong phú.
- Giải quyết hầu hết các bài toán trong kỹ thuật, thiết kế
đồ họa, quản lý, xây dựng các phần mềm hệ thống.
- Dễ dạy và học.
- Luôn cải tiến mở rộng và phát triển không ngừng.
-
2
-
IV.4.Lưu đổ tổng quát mạch quang báo giao tiếp với máy tính:
Begin
NHẬP CHUỖI
ĐỌC CHUỖI
MÃ HOÁ
XUẤT DỮ LIỆU
KIT NHẬN DỮ
LIỆU
KIT THI HÀNH
CHƯƠNG TRÌNH
QUANG BÁO
End
-
3
-
IV.4.1.Lưu đồ đọc chuỗi và mã hoá:
5
5
St[i+1
]
Begin
i:=1
Nhận dạng
Mã hó
a
i:=i+2
Kiểmtra
chuổi
End
.
St[i+1]
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
MÃ HÓA
i:=i+2
Kiểm tra
kết thúc
chuổi
End
1
2
3
4
a,e,u,o
6,7,8
A
A
St[i+1
]
Begin
i:=1
Nhận dạng
Mã hóa
i:=i+2
Kiểmtra
chuổi
End
.
St[i+1]
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
MÃ HÓA
i:=i+2
Kiểm tra
kết thúc
chuổi
End
1
2
3
4
a,e,u,o
6,7,8
A
A
A
B
A
B
St[i+1
]
Begin
i:=1
Nhận dạng
Mã hóa
i:=i+2
Kiểmtra
chuổi
End
.
St[i+1]
Mã
hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
MÃ HÓA
i:=i+2
Kiểm tra
kết thúc
chuổi
End
1
2
3
4
a,e,u,o
6,7,8
A
A
A
-
4
-
Không
dấu
Kiểmtra
Chuỗi
Kiểm tra
kết thúc
chuỗi
C
D
1
Mã hóa
i:=i+2
End.
St[i+1]
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuỗi
End
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuỗi
End
MÃ HÓA
i:=i+2
End
Không dấu
A
C
A
A
A
9
Y,I
1
-
5
-
5
-
-
6
-
Kiểm
tra kết
thúc
d
D
2
Mã hóa
i:=i+2
End
.
St[i+1]
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
Mã hóa
i:=i+1
Kiểm tra
kết thúc
chuổi
End
MÃ HÓA
i:=i+2
End
1
-
4
A
d
A
A
A
M,N,O,P,C,T,Y,I,U
$
1
-
9
Kiểm tra kết
thúc chuổi
-
7
-
Lưu đồ gởi dữ liệu của máy tính
Begin
STB = 1
Busy =0
Gởi dữ liệu
STB=0
ACK=1
S
STB=1
Đ
ACK=0
S
Đ
*
*
Kết thúc
chuổi
End
-
8
-
.Z80
; ;
; RESET MAY VA DUA RA DAU NHAC ;
; ;
ORG 0000H
LD A,8BH
LD (KEY_IO),A ; KHOI TAO 8255 I PORT
A RA PORT C VAO
LD A,81H
LD (DIS_IO),A ; KHOI TAO 8255 II CA 3
PORT RA
; ;
; HIEN THI DAU NHAC CUA HE THONG ;
; ;
RESET: LD HL,SYS_SP
LD SP,HL
LD A,01
LD (ROLPAS),A
LD A,00H
LD (KEYFLG),A
CALL RS164
LD B,03H
LD IX,DISBUF
LD A,38H
LP11: LD (IX),A
INC IX
DJNZ LP11
LD A,7CH
LD (IX),A
INC IX
LD A,38H
LD (IX),A
INC IX
LD A,10H
LD (IX),A
LD A,3EH
;
;
-
9
-
; D7,D6,D5(6),D4(5),D3(4),D2(3),D1(DEN
2),D0(DEN 1) ;
;
;
CALL CLRSCR
LD IX,FUNSEL
LD (MNPTR),IX
LD HL,DISBUF
LD (DISPTR),HL
MIT: LD A,(VAO)
CP 00H
JR Z,PUT
CP 01H
JR Z,PUT
CP 03H
JP NDL
CP 09H
JP Z,PHAI
CP 0AH
JP Z,TRAI
JR MIT
; ;
; CHUONG TRINH RESET IC 74164 ;
; ;
RS164: LD B,81
LPRS: LD A,00H
LD (CKOUT),A ; CANH XUONG XUNG CK
LD (DATAOUT),A
CALL DLPUT
LD A,01H ; CANH LEN XUNG CK
LD (CKOUT),A
DJNZ LPRS
RET
; ;
; CHUONG TRINH HIEN THI DU LIEU;
; RA MA TRAN LED. CHUONG TRINH ;
; NAY CO THE THUC HIEN DOC LAP ;
; VUNG NHO DEM CHO DEN TU ;
; DISBUF DEN DISBUF + 80 ;
-
10
-
; ;
PUT: LD A,00H
LD (CKOUT),A ; CANH XUONG XUNG CK
LD A,02H ; DU LIEU DE DICH VAO IC
74164
LD (CKOUT),A
LD A,03H ; CANH LEN XUNG CK
LD (CKOUT),A
LD D,80 ; SO COT BANG QUANG BAO LA
80
LD HL,(DISPTR)
MUX: LD A,(HL)
LD (DATAOUT),A
CALL DLPUT
PUSH DE
PUSH HL
LD A,00H
LD (KEY_OUT),A
LD A,(KEY_IN)
AND 01FH
CP 01FH
JR Z,LP002
LD D,A
LD A,00H
LD (DATAOUT),A
LD A,D
CALL GET
LP002: LD HL,LP_1
PUSH HL
LD A,00
LD (DATAOUT),A
LD IX,(MNPTR) ; GOI CHUONG TRINH XU
LY PHIM
JP (IX)
LP_1: POP HL
POP DE
DEC D
JR Z,PUT
INC HL
-
11
-
LD A,00H
LD (CKOUT),A ; CANH XUONG XUNG CK
CALL DLPUT0
LD A,01H
LD (CKOUT),A ; CANH LEN XUNG CK
JR MUX
; ;
; CHUONG TRINH LAY MA PHIM AN ;
; ;
GET: LD A,(KEY_IN)
AND 1FH
CP 1FH
JR Z,DIDDLE
LD B,00H ; B CHUA THU TU HANG CUA
PHIM BI NHAN
LPROW: SRA A
JR NC,ROWCOD
INC B
JR LPROW
ROWCOD: SLA B
SLA B
SLA B
LD A,B
AND 38H
LD IX,KEY
LD(IX),A ;CHUA MA HANG VAO O NHO
KEY
LD A,07FH ;DO TIM COT CUA PHIM BI
NHAN
LPCOL: LD D,A
LD (KEY_OUT),A
LD A,(KEY_IN)
AND 1FH
CP 1FH
JR NZ,COLFD
LD A,D
RRCA
JR NC,DIDDLE
JR LPCOL
-
12
-
COLFD: LD B,00H
LD A,D
COLCOD: RRCA
JR NC,ROWCOL
INC B
JR COLCOD
ROWCOL: LD A,B
AND 07H
LD B,A
LD A,(KEY)
OR B
LD D,A ; D CHUA MA HANG - COT CUA
PHIM NHAN
LPFD: LD A,(KEY_IN) ; CHO BUONG PHIM
MOI XU LY
AND 01FH
CP 01FH
JR NZ,LPFD
CALL DLKP ; CHONG DOI LUC NHA PHIM
LD A,D
LD IX,KEYTBL
PUSH BC
LD B,00H
LD C,A
ADD IX,BC
LD A,(IX)
LD (KEY),A ; KEY CHUA MA HECXA CUA
PHIM BI NHAN
LD A,01H ; SET CO BAO CO PHIM BANG
01
LD (KEYFLG),A
POP BC
DIDDLE: RET
; ;
; BANG TRA MA LED ;
; ;
KEYTBL: DEFB 22H
DEFB 25H
DEFB 21H
-
13
-
DEFB 26H
DEFB 0AH
DEFB 0BH
DEFB 0CH
DEFB 0DH
DEFB 13H
DEFB 15H
DEFB 14H
DEFB 12H
DEFB 11H
DEFB 10H
DEFB 0FH
DEFB 0EH
DEFB 16H
DEFB 17H
DEFB 18H
DEFB 00H
DEFB 01H
DEFB 02H
DEFB 03H
DEFB 23H
DEFB 1CH
DEFB 1BH
DEFB 1AH
DEFB 19H
DEFB 04H
DEFB 05H
DEFB 06H
DEFB 81H
DEFB 1DH
DEFB 1EH
DEFB 1FH
DEFB 20H
DEFB 07H
DEFB 08H
DEFB 09H
DEFB 80H
; ;
; THI HANH CHUC NANG CUA PHIM ;
-
14
-
; ;
FUNSEL: LD A,(KEYFLG) ; BAO CO PHIM BI
NHAN
CP 01H
JR Z,KEYNOW
RET
KEYNOW: CALL RDKEY
LD D,A
AND 80H
CP 80H
JR Z,FUNKEY
LD A,D
AND 30H
CP 00H
JR NZ,DIDDLE
LD A,D
CALL ROLL4
CALL DISCOD
LD A,30H
JP CLRSCR
FUNKEY: LD A,D
CP 81H
JP Z,GO
CP 80H
JP Z,MEM
; ;
; CHUONG TRINH ROLL4 ;
; ;
ROLL4: PUSH BC
PUSH HL
LD HL,HEXBUF+1
LD B,A
LD A,(ROLPAS) ; KIEM TRA CO
ROLPAS
CP 01H
JR NZ,R4TPAS ; LAN DAU TIEN
KHONG ROLL
LD A,00H
LD (ROLPAS),A
-
15
-
DEC HL
LD (HL),A
INC HL
LD (HL),B
JR R4OUT
R4TPAS: LD A,B
RLD
DEC HL
RLD
R4OUT: POP HL
POP BC
RET
; ;
; CHUONG TRINH ROLL2 ;
; ;
ROLL2: PUSH BC
LD B,A
LD A,(ROLPAS)
CP 01H
JR NZ,LPP2
LD A,00H
LD (ROLPAS),A
LD A,B
LD (HL),A
JR R2OUT
LPP2: LD A,B
RLD
R2OUT: POP BC
RET
; ;
; GIAI MA SO HEX RA MA TRAN CHU ;
; ;
DISCOD: PUSH BC
PUSH IX
PUSH HL
PUSH IY
LD B,03 ; DOI 3 BYTE SO HECXA
LD IX,HEXBUF+2
LP01: LD L,(IX)
-
16
-
LD H,L
SRL H
SRL H
SRL H
SRL H
LD A,L
AND 0FH
LD L,A
PUSH HL ; H CHUA NIPPLE CAO L CHUA
NIPPLE THAP
DEC IX
DEC B
JR NZ,LP01
LD IY,DISBUF
LD B,03
LP02: POP HL
CALL SUBDIS
LD H,L
CALL SUBDIS
DJNZ LP02
POP IY
POP HL
POP IX
POP BC
RET
SUBDIS: LD A,H
LD IX,DISTBL
CALL ADDAX
PUSH BC
LD B,06
LP1_0: LD A,(IX)
LD (IY),A
INC IY
INC IX
DJNZ LP1_0
POP BC
RET
; ;
; BANG TRA MA TRAN CHU ;
-
17
-
; ;
DISTBL: DEFB 38H ;CHU 0
DEFB 44H
DEFB 44H
DEFB 44H
DEFB 38H
DEFB 00H
DEFB 40H ;SO 1
DEFB 48H
DEFB 7CH
DEFB 40H
DEFB 40H
DEFB 00H
DEFB 48H ;SO 2
DEFB 64H
DEFB 54H
DEFB 4CH
DEFB 40H
DEFB 00H
DEFB 44H ;SO 3
DEFB 44H
DEFB 54H
DEFB 54H
DEFB 28H
DEFB 00H
DEFB 20H ;SO 4
DEFB 30H
DEFB 28H
DEFB 24H
DEFB 7CH
DEFB 00H
DEFB 5CH ;SO 5
DEFB 54H
DEFB 54H
DEFB 54H
DEFB 74H
DEFB 00H
DEFB 7CH ;SO 6
DEFB 54H
-
18
-
DEFB 54H
DEFB 54H
DEFB 74H
DEFB 00H
DEFB 04H ;SO 7
DEFB 44H
DEFB 24H
DEFB 14H
DEFB 0CH
DEFB 00H
DEFB 7CH ;SO 8
DEFB 54H
DEFB 54H
DEFB 54H
DEFB 7CH
DEFB 00H
DEFB 5CH ;SO 9
DEFB 54H
DEFB 54H
DEFB 54H
DEFB 7CH
DEFB 00H
DEFB 70H ;CHU A
DEFB 28H
DEFB 24H
DEFB 28H
DEFB 70H
DEFB 00H
DEFB 7CH ;CHU B
DEFB 54H
DEFB 54H
DEFB 54H
DEFB 6CH
DEFB 00H
DEFB 38H ;CHU C
DEFB 44H
DEFB 44H
DEFB 44H
DEFB 28H
-
19
-
DEFB 00H
DEFB 7CH ;CHU D
DEFB 44H
DEFB 44H
DEFB 44H
DEFB 38H
DEFB 00H
DEFB 7CH ;CHU E
DEFB 54H
DEFB 54H
DEFB 54H
DEFB 44H
DEFB 00H
DEFB 7CH ;CHU F
DEFB 14H
DEFB 14H
DEFB 14H
DEFB 04H
DEFB 00H
; ;
; CHUONG TRINH TANG IX AX6 LAN ;
; ;
ADDAX: PUSH BC
LD C,A
LP0_2: CP 00H
JR Z,FINISH
LD B,06H
LP0_1: INC IX
DJNZ LP0_1
DEC A
JR LP0_2
FINISH: LD A,C
POP BC
RET
; ;
; CHUONG TRINH XOA DEN ;
; CHUONG TRINH NAY KHI GOI PHAI ;
; DAT VAO THANH GHI A GIA TRI ;
; TUONG UNG VOI DEN CAN XOA ;
-
20
-
; ;
CLRSCR: PUSH IX
PUSH DE
PUSH BC
LD D,06 ; XOA NHIEU NHAT LA 6 DEN
LD IX,DISBUF
SCF ; SET CO CARRY BANG 1
CCF ; DAT CO CARRY BANG 0
CLR01: LD B,06 ; MOT KY TU CO 6 COT
SRA A
JR NC,CLR02
LD E,00H
CLR03: LD (IX),E
INC IX
DJNZ CLR03
DEC D
JR NZ,CLR01
JR CLR05
CLR02: INC IX
DJNZ CLR02
DEC D
JR NZ,CLR01
CLR05: LD B,46
CLR04: LD (IX),E
INC IX
DJNZ CLR04
POP BC
POP DE
POP IX
RET
; ;
; CHUONG TRINH DOC PHIM ;
; ;
RDKEY: LD A,00
LD (KEYFLG),A
LD A,(KEY)
RET
; ;
; CAC CHUONG TRINH DELAY ;
-
21
-
; ;
DLKP: PUSH HL
LD HL,160FH
JR LPDL
DLPUT:PUSH HL
LD HL,0FH ;08H
JR LPDL
DLPUT0: PUSH HL
LD HL,01H ;03H
LPDL: DEC HL
LD A,H
CP 00H
JR NZ,LPDL
LD A,L
CP 00H
JR NZ,LPDL
POP HL
RET
; ;
; THAY DOI NOI DUNG O NHO ;
; XU LY PHIM MEM, LAN 1 LAY NOI ;
; DUNG O NHO, LAN 2 GIAM DIA CHI ;
; NHAN PHIM GO TANG DIA CHI ;
; ;
MEM: LD IX,MEMCH
LD (MNPTR),IX
LD IX,HEXBUF
LD H,(IX)
LD L,(IX+1)
JR NEWMEM
MEMCH: LD A,(KEYFLG)
CP 01H
JR Z,MEMNOW
RET
MEMNOW: CALL RDKEY
LD D,A
LD IX,HEXBUF
LD H,(IX)
LD L,(IX+1)
-
22
-
AND 80H
CP 80H
JR NZ,NUM
LD A,D
CP 80H
JR NZ,NXM1
DEC HL
JR NEWMEM
NXM1: LD A,D
CP 81H
JR NZ,MEMOUT
INC HL
JR NEWMEM
NUM: LD A,D
CALL ROLL2
JR MEMOUT
NEWMEM: LD A,01
LD (ROLPAS),A
MEMOUT: LD A,(HL)
LD (IX+2),A
LD (IX),H
LD (IX+1),L
JP DISCOD
; ;
; THI HANH CHUONG TRINH UNG DUNG ;
; ;
GO: LD IX,HEXBUF
LD H,(IX)
LD L,(IX+1)
PUSH HL
RET
ORG 0400H
; ;
; NHAP CHUOI CAN QUANG BAO ;
; CHUOI NAY CHUA TAI DIA CHI 2000H ;
; ;
CALL RS164
LD A,01
LD (ROLQB),A
-
23
-
LD (CH_FLG),A
LD A,0FFH
CALL CLRSCR
LD B,03H
LD IX,DISBUF+79
LD A,38H
LP011: LD (IX),A
DEC IX
DJNZ LP011
LD A,7CH
LD (IX),A
DEC IX
LD A,38H
LD (IX),A
DEC IX
LD A,10H
LD (IX),A
LD A,55H
LD (2000H),A
LD (2001H),A
LD HL,2002H
LD (ADISBUF),HL
PUTQB: LD A,00H
LD (CKOUT),A ; CANH XUONG XUNG CK
LD A,02H ; DU LIEU DE DICH VAO IC
74164
LD (CKOUT),A
LD A,03H ; CANH LEN XUNG CK
LD (CKOUT),A
LD D,80 ; SO COT BANG QUANG BAO LA
80
LD HL,(DISPTR)
MUXQB: LD A,(HL)
LD (DATAOUT),A
CALL DLPUT
PUSH DE
PUSH HL
LD A,00H
LD (DATAOUT),A ; TAT DEN DO PHIM
-
24
-
LD (KEY_OUT),A
LD A,(KEY_IN)
AND 01FH
CP 01FH
JR Z,LPQB002
CALL GET0
LPQB002:LD HL,LPQB_1
PUSH HL
LD IX,CH_QB ; GOI CHUONG TRINH XU LY
PHIM
JP (IX)
LPQB_1: POP HL
POP DE
DEC D
JR Z,PUTQB
INC HL
LD A,00H
LD (CKOUT),A ; CANH XUONG XUNG CK
CALL DLPUT0
LD A,01H
LD (CKOUT),A ; CANH LEN XUNG CK
JR MUXQB
;
;
; CHUONG TRINH LAY MA PHIM AN QUANG
BAO ;
;
;
GET0: LD A,(KEY_IN)
AND 1FH
CP 1FH
JR Z,NOKEY
LD B,00H ; B CHUA THU TU HANG CUA
PHIM BI NHAN
LPW0: SRA A
JR NC,RWD0
INC B
JR LPW0
RWD0: SLA B