1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu Thiết kế mạch quang báo kết hợp KIT VXL và máy tính, chương 11 pdf

92 344 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 11: Thiết kế phần mềm Pascal
Trường học Trường Đại học Kỹ thuật Zurich
Chuyên ngành Kỹ thuật Điện Tử & Máy Tính
Thể loại Tài liệu hướng dẫn
Năm xuất bản N/A
Thành phố Zurich
Định dạng
Số trang 92
Dung lượng 393,64 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 11: THIẾT KẾ PHẦM MỀM PASCALGiớ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

Trang 1

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

- Ư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

Trang 2

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

Trang 3

IV.4.Lưu đổ tổng quát mạch quang báo giao tiếp với máy tính:

KIT THI HÀNH CHƯƠNG TRÌNH QUANG BÁO

End

Trang 4

IV.4.1.Lưu đồ đọc chuỗi và mã hoá:

Kiểmtra chuổi

End

Mã hóa

i:=i+1

Kiểm tra kết thúc chuổi

3 4

a,e,u,o 6,7,8

Kiểmtra chuổi

End

Mã hóa

i:=i+1

Kiểm tra kết thúc chuổi

3 4

a,e,u,o 6,7,8

A

A

A B

Kiểmtra chuổi

End

Mã hóa

i:=i+1

Kiểm tra kết thúc chuổi

3 4

a,e,u,o 6,7,8

A

A A

Trang 5

Khoâng

daáu

Kieåmtra Chuoãi

Kieåm tra keát thuùc chuoãi

Y,I

1-5

Trang 8

Lưu đồ gởi dữ liệu của máy tính

Trang 10

 ; D7,D6,D5(6),D4(5),D3(4),D2(3),D1(DEN 2),D0(DEN 1) ;

Trang 11

 ; -;

Trang 15

KEYNOW: CALL RDKEY

LD D,AAND 80H

CP 80H

JR Z,FUNKEY

LD A,DAND 30H

CP 00H

JR NZ,DIDDLE

LD A,DCALL ROLL4CALL DISCOD

LD A,30H

JP CLRSCRFUNKEY: LD A,D

Trang 17

LD H,LSRL HSRL HSRL HSRL H

LD A,LAND 0FH

LD L,A

NIPPLE THAP

DEC IXDEC B

LD IX,DISTBLCALL ADDAXPUSH BC

LD B,06LP1_0: LD A,(IX)

LD (IY),AINC IYINC IXDJNZ LP1_0POP BC

RET

; -;

Trang 20

; CHUONG TRINH XOA DEN ;

; CHUONG TRINH NAY KHI GOI PHAI ;

; DAT VAO THANH GHI A GIA TRI ;

; TUONG UNG VOI DEN CAN XOA ;

Trang 21

; -;CLRSCR: PUSH IX

PUSH DE

PUSH BC

LD IX,DISBUF

Trang 22

; 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 ;

Trang 23

; NHAP CHUOI CAN QUANG BAO ;

; CHUOI NAY CHUA TAI DIA CHI 2000H ;

; -;CALL RS164

LD A,01

LD (ROLQB),A

Trang 24

LD (CH_FLG),A

LD A,0FFHCALL CLRSCR

LD B,03H

LD IX,DISBUF+79

LD A,38HLP011: LD (IX),A

DEC IXDJNZ LP011

LD A,7CH

LD (IX),ADEC IX

LD A,38H

LD (IX),ADEC IX

LD (DATAOUT),ACALL DLPUT

PUSH DEPUSH HL

LD A,00H

LD (DATAOUT),A ; TAT DEN DO PHIM

Trang 25

LD (KEY_OUT),A

LD A,(KEY_IN)AND 01FH

CP 01FH

JR Z,LPQB002CALL GET0LPQB002:LD HL,LPQB_1

JR Z,PUTQBINC HL

; -; CHUONG TRINH LAY MA PHIM AN QUANG BAO ;

-;

JR LPW0 RWD0: SLA B

Trang 26

SLA BSLA B

LD A,BAND 38H

CP 1FH

JR NZ,CLFD0

LD A,DRRCA

JR NC,NOKEY

JR LPC0CLFD0: LD B,00H

LD A,DCLCD0: RRCA

JR NC,RWCL0INC B

JR CLCD0RWCL0: LD A,B

Trang 27

LD (KEY),A ; KEY CHUA MA CUA PHIM BI NHAN

01

LD (KEYFLG),ANOKEY: RET

KEYQB: CALL RDKEY

PUSH BCCALL ADDAXCALL ROLL80

LD HL,(ADISBUF)

LD B,06HLOOP2: LD A,(IX)

LD (IY),A

LD (HL),AINC IXINC HL

Trang 28

INC IYDJNZ LOOP2

;

; -; CHUONG TRINH ROLL DU LIEU QUA 80 COT

;

;

Trang 29

LD (IX),AINC IXDJNZ LOOP80

LD (ROLQB),APOP IX

POP BCRET

; -;

; BANG TRA MA TRAN CHU HOA ;

; -;DTBLH:DEFB 08H ;DAU CHAM HOI

Trang 35

; BANG TRA MA TRAN CHU CO DAU ;

-;

Trang 36

DEFB 00H ;PHIM XOA KY TUDEFB 20H

Trang 42

ORG 0800H

; -;

; CHUONG TRINH QUANG BAO ;

; CHO CHU CHAY XUOI TU TRAI QUA PHAI ;

Trang 43

LD (IX),ADEC IY

LD (ADATA),IYRET

LD A,00H

LD (VAO),ARET

ORG 0A00H

; -;

; CHUONG TRINH QUANG BAO ;

; CHO CHU CHAY XUOI TU PHAI QUA TRAI ;

; -;

LD A,0FFHCALL CLRSCR

Trang 44

LD A,(ZEROPAS)

CP 01

JP Z,TZERODATACALL DATAT

RETDATAT: LD IX,DISBUF+79

LD (ADATA),IYRET

TZERODATA: LD A,(ZEROTIME)

INC A

CP 81

JR Z,TDATARESET

Trang 45

LD (ZEROTIME),A

LD A,00

LD (IX),ARET

LD A,00H

LD (VAO),ARET

;

; -; CHUONG TRINH ROLL DU LIEU QUA 80 COT

;

; CHUONG TRINH NAY DUNG CHO QUANG BAO

;

;

PUSH IX

LD B,160

LD IX,DISBUFLQBP80: LD A,(IX+78)

LD (IX+79),ADEC IX

DJNZ LQBP80POP IX

POP BCRET

;

; -; CHUONG TRINH ROLL DU LIEU QUA 80 COT

;

; CHUONG TRINH NAY DUNG CHO QUANG BAO

Trang 46

;

PUSH IX

LD B,80

LD IX,DISBUFLQBT80: LD A,(IX+1)

LD (IX),AINC IXDJNZ LQBT80POP IX

POP BCRETORG 0C00H

LD (SECOND),A

CP 60H

Trang 47

JP NZ,RETCK

LD A,00H

LD (SECOND),A

LD A,(MINUTE)CALL TANG

RETDH: RET

LD B,AAND 0FH

CP 0AH

JP NZ,NO

LD A,BADD A,06H

Trang 49

DATAIN EQU 6001HDATAOUT EQU 8000HKEY_IN EQU 6002HKEY_OUT EQU 6000HDIS_IO EQU 8003HCKOUT EQU 8001HSYS_SP EQU 3C02HMNPTR EQU 3CF2HZEROPAS EQU 3CF9HZEROTIME EQU 3CFCHKEY EQU 3D00HDISBUF EQU 3E00HHEXBUF EQU 3FD0HADISBUF EQU 3FDFHROLPAS EQU 3FE2H DATAAD EQU 3FE5H

KEYFLG EQU 3FEBHCH_FLG EQU 3FEEHDISPTR EQU 3FF1HDELAYMEM EQU 3FF4H

HOUR EQU 3FFAHMINUTE EQU 3FFCHSECOND EQU 3FFEHDELAYVAL EQU 0309HVAO EQU 8002H

; -;

; -;END

Trang 50

($38,$44,$44,$44,$28,$00), {C} {16}

($3A,$45,$44,$44,$28,$00),

{1C} {17}

Trang 51

($7c,$44,$44,$44,$38,$00), {D} {18}

($7C,$54,$54,$44,$38,$00),

{D9} {19}

($7c,$54,$54,$54,$44,$00), {E} {20}

($38,$44,$54,$54,$30,$00), {G} {24}

($7c,$10,$10,$10,$7c,$00), {H} {25}

($44,$44,$7c,$44,$44,$00), {I} {26}

($7c,$10,$28,$44,$00,$00), {K}

Trang 52

($7c,$40,$40,$40,$40,$00), {L} {38}

($7c,$04,$18,$04,$7c,$00), {M} {39}

Trang 53

($7c,$14,$34,$54,$5C,$00), {R} {63}

($08,$54,$54,$54,$20,$00), {S} {64}

($04,$04,$7c,$04,$04,$00), {T} {65}

($06,$05,$7C,$04,$04,$00),

{1T} {66}

($3c,$40,$40,$40,$3c,$00), {U} {67}

Trang 54

($7C,$20,$10,$20,$7C,$00), {W} {80}

($44,$28,$10,$28,$44,$00), {X} {81}

($04,$08,$70,$08,$04,$00), {Y} {82}

($38,$44,$44,$44,$38,$00), {0} {88}

($50,$48,$7C,$40,$40,$00), {1} {89}

($48,$64,$54,$4C,$00,$00), {2} {90}

($44,$44,$54,$54,$28,$00), {3} {91}

($20,$30,$28,$24,$7C,$00), {4} {92}

($5C,$54,$54,$54,$74,$00), {5} {93}

($7C,$54,$54,$54,$74,$00), {6} {94}

($04,$44,$24,$14,$0C,$00), {7} {95}

Trang 55

($7C,$54,$54,$54,$7C,$00), {8} {96}

($5C,$54,$54,$54,$7C,$00), {9} {97}

($00,$00,$00,$00,$00,$00), { } {98}

($40,$00,$00,$00,$00,$00), {.} {99}

($00,$10,$10,$10,$00,$00), {-} {100}

($08,$04,$54,$0C,$00,$00), {?} {101}

($00,$00,$5C,$00,$00,$00), {!} {102}

($00,$00,$28,$00,$00,$00), {:} {103}

($02,$01,$00,$00,$00,$00), {/} {104}

($01,$02,$00,$00,$00,$00), {\} {105}

($01,$03,$00,$00,$00,$00), {'} {106}

($02,$01,$02,$01,$00,$00), {~} {107}

Trang 59

'4':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[92,k];

bat_tay2; end;

i:=i+2;

end;

'5':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[93,k];

bat_tay2; end;

i:=i+2;

end;

'6':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[94,k];

bat_tay2; end;

i:=i+2;

end;

'7':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[95,k];

bat_tay2; end;

i:=i+2;

Trang 60

begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[2,k];

bat_tay2; end;

i:=i+2;

end;

'2':begin

for k:=1 to 6 do begin

Trang 62

bat_tay1;

port[$378]:=chu[10,k];

bat_tay2; end;

bat_tay1;

port[$378]:=chu[9,k];

Trang 69

end;

'O':case upcase(st[i+1]) of '1':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[50,k];

bat_tay2; end;

i:=i+2;

end;

'2':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[51,k];

bat_tay2; end;

i:=i+2;

end;

'3':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[52,k];

bat_tay2; end;

i:=i+2;

end;

'4':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[53,k];

bat_tay2;

Trang 70

bat_tay1;

port[$378]:=chu[54,k];

bat_tay2; end;

i:=i+2;

end;

'6': case upcase(st[i+2]) of '5':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[56,k];

bat_tay2; end;

bat_tay1;

port[$378]:=chu[55,k];

bat_tay2; end;

i:=i+2;

end;

end;

'7': case upcase(st[i+2]) of '5':begin

for k:=1 to 6 do

Trang 71

begin

bat_tay1;

port[$378]:=chu[58,k];

bat_tay2; end;

bat_tay1;

port[$378]:=chu[57,k];

bat_tay2; end;

Trang 72

bat_tay1;

port[$378]:=chu[62,k];

bat_tay2; end;

i:=i+1;

end;

'R':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[63,k];

bat_tay2; end;

i:=i+1;

end;

'S':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[64,k];

bat_tay2; end;

i:=i+1;

end;

'T':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[65,k];

Trang 73

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[68,k];

bat_tay2; end;

i:=i+2;

end;

'2':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[69,k];

bat_tay2; end;

i:=i+2;

end;

'3':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[70,k];

bat_tay2; end;

i:=i+2;

end;

'4':begin

for k:=1 to 6 do begin

bat_tay1;

Trang 74

port[$378]:=chu[71,k];

bat_tay2; end;

i:=i+2;

end;

'5':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[72,k];

bat_tay2; end;

i:=i+2;

end;

'7': case upcase(st[i+2]) of '5':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[74,k];

bat_tay2; end;

Trang 75

else

begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[67,k];

bat_tay2; end;

bat_tay1;

port[$378]:=chu[79,k];

bat_tay2; end;

i:=i+1;

end;

'W':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[80,k];

bat_tay2; end;

i:=i+1;

end;

'X':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[81,k];

bat_tay2;

Trang 76

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[108,k];

bat_tay2; end;

i:=i+2;

end;

'2':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[109,k];

bat_tay2; end;

i:=i+2;

end;

'3':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[110,k];

bat_tay2; end;

i:=i+2;

end;

'4':begin

for k:=1 to 6 do begin

bat_tay1;

Trang 77

port[$378]:=chu[111,k];

bat_tay2; end;

bat_tay1;

port[$378]:=chu[82,k];

bat_tay2; end;

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[11,k];

bat_tay2; end;

i:=i+2;

Trang 78

end;

'C':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[17,k];

bat_tay2; end;

i:=i+2;

end;

'I':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[32,k];

bat_tay2; end;

i:=i+2;

end;

'M':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[40,k];

bat_tay2; end;

i:=i+2;

end;

'N':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[45,k];

bat_tay2; end;

Trang 79

i:=i+2;

end;

'P':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[60,k];

bat_tay2; end;

i:=i+2;

end;

'T':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[66,k];

bat_tay2; end;

i:=i+2;

end;

'U':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[75,k];

bat_tay2; end;

i:=i+2;

end;

'Y':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[83,k];

bat_tay2;

Trang 80

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[12,k];

bat_tay2; end;

i:=i+2;

end;

'I':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[33,k];

bat_tay2; end;

i:=i+2;

end;

'M':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[41,k];

bat_tay2; end;

i:=i+2;

end;

'P':begin

for k:=1 to 6 do

Trang 81

begin

bat_tay1;

port[$378]:=chu[61,k];

bat_tay2; end;

i:=i+2;

end;

'N':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[46,k];

bat_tay2; end;

i:=i+2

end;

'U':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[76,k];

bat_tay2; end;

i:=i+2;

end;

'Y':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[84,k];

bat_tay2; end;

i:=i+2;

end;

else;

Trang 82

i:=i+1;

end;

'3':case upcase(st[i+1]) of 'A':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[13,k];

bat_tay2; end;

i:=i+2;

end;

'I':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[34,k];

bat_tay2; end;

i:=i+2;

end;

'M':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[42,k];

bat_tay2; end;

i:=i+2;

end;

'N':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[47,k];

Trang 83

bat_tay2; end;

i:=i+2;

end;

'U':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[77,k];

bat_tay2; end;

i:=i+2;

end;

'Y':begin

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[85,k];

bat_tay2; end;

for k:=1 to 6 do begin

bat_tay1;

port[$378]:=chu[14,k];

bat_tay2; end;

i:=i+2;

end;

'I':begin

Ngày đăng: 26/01/2014, 16:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w