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 343 0
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

Đ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

Chương 11: THIẾT KẾ PHẦM MỀM PASCAL Giới thiệu ngôn ngữ PASCAL: 1.Xuất xứ: Pascal ngôn ngữ lập trình cấp cao 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, đặt tân PASCAL để tưởng nhớ đến BLAISE PASCAL, nhà toán học, nhà triết học PHÁP kỷ 17 Người chế tạo kiểu máy tính khí PASCAL coi ngôn ngữ đẹp họ cổ điển, ngôn ngữ mạnh, phổ biến tảng cho môn lập trình khác, có nhiều tính ưu việt Người ta nhận thấy lập trình cách khoa học, logic cho chương trình cụ thể dựa phân tích thuật toán suy diễn toán học IV.3.2.các ưư điểmcủa ngôn ngữ PASCAL: PASCAL thực cách xác cấu trúc liệu phức tạp thuật toán phức tạp PASCAL có tính mềm dẽo tiện lợi việc chia nhỏ vấn đề giải độc lập Có đủ phép toán số học, logic,…Các kiểu liệu PASCAL phong phú, thể nhiều kiểu liệu từ đơn giản đến phức tạp Ngôn ngữ PASCAL trở thành ngôn ngữ thống, ngôn ngữ phổ biến, dùng nhiều trường học lónh vực khác IV.3.3.Turbo pascal: Từ ngôn ngữ PASCAL giáo sư WIRTH sáng tác, hãng phần mền phát triển thêm tạo chương trình dịch ngôn ngữ PASCAL như: - OS PASCAL:Được gọi PASCAL chuẩn - IBM PASCAL : Của hãng Microsoft - TURBO PASCAL : Của hãng BORLAND - Ưu điểm TURBO PASCAL: - Tiện cho việc dịch liên hoàn với việc soạn thảo, sửa -0- chữa - Tốc độ dịch nhanh - Chương trình dịch gọn, đòi hỏi nhớ, có nhiều hàm,nhiều công cụ hỗ trợ - Làm việc thoải mái, có hiệu Tính đối thoại người máy phong phú - Giải hầu hết toán kỹ thuật, thiết kế đồ họa, quản lý, xây dựng phần mềm hệ thống - Dễ dạy học - Luôn cải tiến mở rộng phát triển không ngừng -1- 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 -2- IV.4.1.Lưu đồ đọc chuỗi mã hoá: B MÃ HÓA Begin i:=i+2 i:=1 Kiểm tra kết thúc chuổi A A Nhận dạng End a,e,u,o 6,7,8 St[i+1 B ] Mã hóa 5 Mã hóa Mã hóa i:=i+2 St[i+1] i:=i+1 A A Kiểmtra chuổi Kiểm tra kết thúc chuổi i:=i+1 A End Kiểm tra kết thúc chuổi End -3- End C MÃ HÓA i:=i+2 Kiểm tra kết thúc chuỗi A Y,I End Không dấu D C Mã hóa Không dấu 1-5 Mã hóa Mã hóa i:=i+2 St[i+1] i:=i+1 A A Kiểmtra Chuỗi i:=i+1 Kiểm tra kết thúc chuỗi A End Kiểm tra kết thúc chuỗi End -4- End -5- d MÃ HÓA i:=i+2 Kiểm tra kết thúc A $ End D 1-4 M,N,O,P,C,T,Y,I,U d Mã hóa 1-9 Mã hóa Mã hóa i:=i+2 St[i+1] i:=i+1 A A Kiểm tra kết thúc chuổi Kiểm tra kết thúc chuổi i:=i+1 A End Kiểm tra kết thúc chuổi End -6- End  Lưu đồ gởi liệu máy tính  Begin * Kết thúc chuổi STB = Busy =0 End Gởi liệu STB=0 S ACK=1 Ñ STB=1 Ñ S ACK=0 * -7-  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 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  ; ; -8-  ; 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 ; -9- end; 'C':begin for k:=1 to begin bat_tay1; port[$378]:=chu[17,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to begin bat_tay1; port[$378]:=chu[32,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to begin bat_tay1; port[$378]:=chu[40,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to begin bat_tay1; port[$378]:=chu[45,k]; bat_tay2; end; -77- i:=i+2; end; 'P':begin for k:=1 to begin bat_tay1; port[$378]:=chu[60,k]; bat_tay2; end; i:=i+2; end; 'T':begin for k:=1 to begin bat_tay1; port[$378]:=chu[66,k]; bat_tay2; end; i:=i+2; end; 'U':begin for k:=1 to begin bat_tay1; port[$378]:=chu[75,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to begin bat_tay1; port[$378]:=chu[83,k]; -78- bat_tay2; end; i:=i+2; end; else; i:=i+1; end; '2':case upcase(st[i+1]) of 'A':begin for k:=1 to begin bat_tay1; port[$378]:=chu[12,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to begin bat_tay1; port[$378]:=chu[33,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to begin bat_tay1; port[$378]:=chu[41,k]; bat_tay2; end; i:=i+2; end; 'P':begin for k:=1 to -79- begin bat_tay1; port[$378]:=chu[61,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to begin bat_tay1; port[$378]:=chu[46,k]; bat_tay2; end; i:=i+2 end; 'U':begin for k:=1 to begin bat_tay1; port[$378]:=chu[76,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to begin bat_tay1; port[$378]:=chu[84,k]; bat_tay2; end; i:=i+2; end; else; -80- i:=i+1; end; '3':case upcase(st[i+1]) of 'A':begin for k:=1 to begin bat_tay1; port[$378]:=chu[13,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to begin bat_tay1; port[$378]:=chu[34,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to begin bat_tay1; port[$378]:=chu[42,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to begin bat_tay1; port[$378]:=chu[47,k]; -81- bat_tay2; end; i:=i+2; end; 'U':begin for k:=1 to begin bat_tay1; port[$378]:=chu[77,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to begin bat_tay1; port[$378]:=chu[85,k]; bat_tay2; end; i:=i+2; end; else i:=i+1; end; '4':case upcase(st[i+1]) of 'A':begin for k:=1 to begin bat_tay1; port[$378]:=chu[14,k]; bat_tay2; end; i:=i+2; end; 'I':begin -82- for k:=1 to begin bat_tay1; port[$378]:=chu[35,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to begin bat_tay1; port[$378]:=chu[43,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to begin bat_tay1; port[$378]:=chu[48,k]; bat_tay2; end; i:=i+2; end; 'U':begin for k:=1 to begin bat_tay1; port[$378]:=chu[78,k]; bat_tay2; end; i:=i+2; end; -83- 'Y':begin for k:=1 to begin bat_tay1; port[$378]:=chu[86,k]; bat_tay2; end; i:=i+2; end; else i:=i+1; end; ' ':begin for k:=1 to begin bat_tay1; port[$378]:=chu[98,k]; bat_tay2; end; i:=i+1; end; '.':begin for k:=1 to begin bat_tay1; port[$378]:=chu[99,k]; bat_tay2; end; i:=i+1; end; ':':begin for k:=1 to begin bat_tay1; port[$378]:=chu[103,k]; -84- bat_tay2; end; i:=i+1; end; '-':begin for k:=1 to begin bat_tay1; port[$378]:=chu[100,k]; bat_tay2; end; i:=i+1; end; '?':begin for k:=1 to begin bat_tay1; port[$378]:=chu[101,k]; bat_tay2; end; i:=i+1; end; '!':begin for k:=1 to begin bat_tay1; port[$378]:=chu[102,k]; bat_tay2; end; i:=i+1; end; '/':begin for k:=1 to begin bat_tay1; -85- port[$378]:=chu[104,k]; bat_tay2; end; i:=i+1; end; '\':begin for k:=1 to begin bat_tay1; port[$378]:=chu[105,k]; bat_tay2; end; i:=i+1; end; '"':begin for k:=1 to begin bat_tay1; port[$378]:=chu[106,k]; bat_tay2; end; i:=i+1; end; '~':begin for k:=1 to begin bat_tay1; port[$378]:=chu[107,k]; bat_tay2; end; i:=i+1; end; else halt; end; until (i=length(st)+1) -86- or(keypressed) ; repeat x:=port[$379]and $80; until x=$00; port[$378]:=$55; port[$37A]:=$0B; repeat x:=port[$379]and $80; until x=$80; repeat x:=port[$379] and $C0; until x=$C0; port[$37A]:=$0A; repeat x:=port[$379] and $80; until x=$80; repeat x:=port[$379]and $80; until x=$00; port[$378]:=$00; end; { } PROCEDURE NHAP; begin CLRSCR; test; cua_so; repeat x:=port[$379] and $40; until x=$00; gotoxy(25,2); writeln('********************************'); gotoxy(25,3); writeln('* NHAP CHU HIEN THI QUANG BAO *'); gotoxy(25,4); writeln('*===============*==============*'); -87- gotoxy(25,5); writeln('*NHAP CHU CO DAU THEO FONT VNI *'); gotoxy(25,6); writeln('*===============*==============*'); gotoxy(25,7); writeln('********************************'); gotoxy(25,9); readln(st); xuat(h); repeat x:=port[$379] and $80; until x=$00; gotoxy(25,11); clrscr; gotoxy(25,7); writeln('NHAN FIM KIT Z80 '); gotoxy(25,8); writeln('NHAN FIM CHON TIEP'); end; { } procedure chay_phai; begin clrscr; gotoxy(25,4); writeln('CHUONG TRINH CHAY PHAI XONG'); end; { } procedure chay_trai; begin clrscr; repeat x:= port[$379] and $20; until x=$20; -88- repeat x:=port[$379] and $80; until x=$80; gotoxy(25,4); writeln('CHUONG TRINH CHAY TRAI XONG'); end; { } procedure xem_so_byte_truyen; begin clrscr; gotoxy(25,3); writeln('SO BYTE TRUYEN DUOC:',n:3,'BYTE'); gotoxy(25,4); writeln('DU LIEU DA XONG CHON TIEP'); end; { } procedure thoat; begin clrscr; gotoxy(25,2); writeln('BAN CO CHAC LA THOAT KHONG "

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan