Thiết kế giao tiếp máy tính với KIT 8085, chương 6

32 316 0
Thiết kế giao tiếp máy tính với KIT 8085, chương 6

Đ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 6: VIẾT CHƯƠNG TRÌNH VÀ DỊCH SSEMBLER CHO CÁC CHƯƠNG TRÌNH VI XỬ LÝ TẠI SAO PHẢI SỬ DỤNG CHƯƠNG TRÌNH DỊCH ASSEMBLER? Khi học vi xử lý, thì mọi sinh viên đều phải học về số Hex, đổi số giữa các hệ, các số bù,…, các phép toán số học và logic trên các biến. Ngoài ra, còn phải học môt loại ngôn ngữ máy khó nhớ, chỉ được viết bằng các ký tự Hex, để nạp vào Kit. Một cách khác để tạo ra các ký tự khó nhớ này là sử dụng một chương trình dòch Assembler để dòch từ một file có phần mở rộng là “asm” sang một file có phần mở rộng “prn” chứa ngôn ngữ máy. Đây là lý do phải sử dụng một chương trình dòch Assembler. Với mục đích này, người sử dụng không cần thiết phải biết nhiều về ngôn ngữa Assembly mà chỉ cần một số kiến thức nhỏ để gọi chương trình dòch. Đây chính là cách chính để giảm thiểu thời gian trong việc dòch và nhập dữ liệu vào Kit. I. Một số điều cần lưu ý khi sử dụng chương trình dòch Assebler: Để viết một chương trình và nhập vào Kit, thì đầu tiên phải biết yêu cầu của chương trình, viết lưu đồ tổng quát, lưu đồ chi tiết và tiến hành viết chương trình. tất cả các bước trên đều phải sử dụng lại với cách làm mà đề tài này nêu lên. Tuy nhiên, từ bước dòch từ ngôn ngữ gợi nhớ sang mã máy thì có nhiều điểm khác nhau: 1) Khi viết chương trình ở ngôn ngữ gợi nhớ (ngôn ngữ Assembly), cần phải tuân thủ một số qui đònh riêng để có thể dùng một chương trình dòch Assembler. a)Phải dùng từ khóa “Org” ở đầu và “End” ở cuối chương trình, nhớ chữ end không có chấm cuối câu. b)Tất cả các lệnh ở dạng gợi nhớ phải ghi chính xác. c)Ở cuốimột số Hex phải ghi ký tự ‘h’ không kể in hay thường. d)Nếu một số Hex bắt đầu bằng một ký tự Alphabet, thì phải thêm liền ngay trước số hex đó một con sô ‘0’. e)Một nhãn khai báo không được vượt quá 6 ký tự. f) Và một số qui đònh khác. 2) Nhập chương trình vào máy tính: để nhập dể dàng và thuận tiện, có thể sử dụng Norton ở chế độ Edit, và lưu thành một file có phần mở rộng là “asm”. 3) Dùng chương trình dòch Assembler để dòch file trên thành một file mới có phần mở rộng la “prn”, file cũ không thay đổi. 4) Sau đó dùng chương trình download để nạp file vào Kit. Tất cả các yêu cầu trên đều rất dễ nhớ nhờ đi theo một trình tự nhất đònh một các tự nhiên. Norton là một chương trình tiện ích rất phổ biến. Chương trình Download có giao diện đã được tối giản nhất. II. FILE *.PRN, NỘI DUNG, ĐẶC ĐIỂM, VÀ DỮ LIỆU CHÍNH: Chương trình dòch sẽ dòch từ một file x.asm sang môt file x.prn. Xem nội dung một file có phần ở rộng prn trong ví dụ sau: MACRO-80 3.4 01-Dec-80 PAGE 1 Org 0000h 0000' 3E 00 MVI A,00h 0002' 32 A001 STA 0A001h 0005' 3E 80 MVI A,80h 0007' 32 A001 STA 0A001h 000A' 3E 06 MVI A,06h 000C' 32 A000 STA 0A000h 000F' 76 HLT MACRO-80 3.4 01-Dec-80 PAGE S Macros: Symbols: No Fatal error(s) Giả sử dòch file x.asm sau: Thì sẽ được file x.prn sau: Trong đó, nội dung cần nạp vào Kit là: 3E 00 32 A001 Org 0000h MVI A,00h STA 0A001h MVI A,80h STA 0A001h MVI A,06h STA 0A000h HLT END 3E 80 32 A001 3E 06 32 A000 76 Nhưng với thứ tự là: 3E 00 32 01 A0 3E 80 32 01 A0 3E 06 32 00 A0 76 Vấn đề đặt ra là làm thế nào để lọc ra được nội dung chỉ trên theo thứ tự đúng như nội dung nạp vào Kit. Vấn đề này sẽ được giải quyết ở chương kế: Chương trình DownLoad. Chöông VI: CHÖÔNG TRÌNH DOWNLOAD I. ĐÔI NÉT VỀ NGÔN NGỮ C: I.1. Nguồn gốc: C được phát minh và cài đặt đầu tiên bởi Dennis Ritchie chạy trên hệ điều hành Unix, được Martin Richards phát triển trong thập niên 70. C sử dụng chuẩn ANSI được đề nghò lần cuối cùng vào năm 1989. I.2. C là ngôn ngữ bậc trung: Được xem là ngôn ngữ bậc trung vì C tổ hợp những thành phần tốt nhất của các ngôn ngữ bậc cao với sự điều khiển và tính linh hoạt của ngôn ngữ Assembly. C cho phép thao tác trên các bit, các byte và các đòa chỉ – những phần tử cơ bản với các chức năng của máy tính, mã của chương trình C cũng mang tính khả chuyển. I.3. C là ngôn ngữ của lập trình viên: C được các lập trình viên làm việc thật sự tạo ra, thúc đẩy và kiểm tra, để rồi C lại mang về cho họ những gì họ mong muốn: ít hạn chế, ít lời phàn nàn, các cấu trúc khối, các hàm đơn lẻ, và môt tập đóng kín những từ khóa. II. CÁC PHƯƠNG PHÁP LẬP TRÌNH: II.1. Phương pháp lập trình lệnh:  Chương trình là một dãy các lệnh.  Lập trình là xác đònh các lệnh cùng với thứ tự các lệnh đó.  Phương pháp này chỉ có giá trò với chương trình lệnh ( < 100 lệnh). II.2. Phương pháp lập trình thủ tục:  Chương trình là một hệ thống các thủ tục và hàm, mỗi thủ tục hay hàm là một dãy các lệnh.  Lập trình là đi xác đònh những thủ và hàm, và xác đònh các lệnh bên tring thủ tục và hàm đó.  Phương pháp này tiến bộ hơn phương pháp trên. II.3. Phương pháp lập trình đơn thể:  Chương trình là một hệ thông các đơn thể (module).  Mỗi đơn thể là một hệ thống thủ tục, hàm có cùng ý nghóa nào đó. Mỗi thủ tục và hàm là một dãy các lệnh.  Các đơn thể có được lưu trữ và biên dòch phân cách, nên dễ dàng lắp ghép. Tuy nhiên phương pháp này còn thiếu tự nhiên, ngài ra nếu chương trình quá rộng và quá sâu thì không thể quản lý được. II.4. Phương pháp lập trình hướng đối tượng:  Chương trình là một hệ thống các đối tượng, các đối tượng trong thực tế được diễn tả bằng ngôn ngữ tin học.  Lập trình là đi xác đònh những đối tượng cùng những quan hệ của chúng.  Tính tự nhiên của phương pháp này làm nó trở nên sinh động, mỗi đối tượng có thuộc tính và hành động riêng như trong thực tế do đó dễ hình dung, dễ quản lý. Ngoài ra, nhờ dựa trên các đối tượng nên tính tiến hóa và mở rộng rất cao. Trong phần viết chương trình giao diện vi tính, người viết đã chọn phương pháp lập trình hướng đối tương. Nhờ những ưu điểm trên, phương pháp này cho phép bổ sung một cách dễ dàng, tạo điều kiện thuận lợi cho việc bổ sung sau này nếu cần. III. PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯNG TRONG C III.1. Các khái niệm: Thế giới thực Phương pháp lập trình Ngôn ngữ lập trình Đối tượng bất kỳ trong thế giới thực Đối tượng Biến có kiểu lớp (tương tự kiểu cấu trúc) Khái niện chung của một đối tương Lớp đối tượng Kiểu lớp(Class- tương tự kiểu cấu trúc) Thuộc tính được quan tâm của đối tượng Thuộc tính Thành phần dữ liệu của kiểu lớp Khả năng có thể thực hiện của một đối tương Hành động Thủ tục, hàm của kiểu lớp III.2. Phương pháp: III.2.1. Xác đònh các lớp đối tượng, quan hệ qua các lớp này (xây dựng sơ đồ lớp) III.2.2. Thiết kế các lớp (biểu diễn trên máy tính)  Thành phần dữ liệu (thuộc tính).  Thành phần xử lý (hành động). III.2.3. Cài đặt các lớp: Viết hàm main() III.2.4. Thử nghiệm. IV. Thực hiện viết chương trình DownLoad: IV.1. Yêu cầu của giao diện:  Cho phép chọn file sẽ truyền.  Bằng cách gõ vào tên file  Bằng cách click chuột để chọn  Xem trước vùng nhớ cần thiết sẽ sử dụng ở RAM ở Kit 8085  Chọn cổng truyền.  Truyền file có kiểm tra. IV.2. Chọn ngôn ngữ lập trình:  Chọn ngôn ngữ C viết ở môi trường Dos  Lý do: yêu cầu thiết bò (máy tính) không cao, phù hợp kiến thức người viết.  Ưu điểm: C là một công cụ lập tình gọn nhẹ, chạy nhanh, hiệu quả và khép kín. Vì sử dụng C ở môi trường Dos nên không cần phải kiểm soát các driver như nếu viết ở môi trường Windows. Ngôn ngữ C cho phép truy cập trực tiếp các port, dể dàng kiểm soát từng bit dữ liệu.  Khuyết điểm: Vùng nhớ trống ở môi trường Dos chỉ có 640Kbyte, và sau khi khởi động xong (ở màn hình dos) thì chỉ còn lại trên dưới 400Kbyte, không cho phép tạo một giao diện phức tạp. Độ phân giải ở chế độ graph trong Dos không thể so sánh với môi trường Windows. IV.3. Chương trình Download: Danh sách các lớp: Tên lớp Công dụng Button.hp p Tạo các nút nhấn, và chứa các hành động liên quan Disklist.hp p Liệt các ổ đóa trong máy, và chứa các hành động liên quan List.hpp Để vẽ bảng liệt các thư mục và file, và chứa các hành động liên quan Mouse.h Chứa các thao tác về chuột Screen.h Chứa các tham số về giao diện màn hình, và chứa các hành động liên quan Textbox.h pp Vẽ khung nhập liệu (tên file, loại file, ) , và chứa các hành động liên quan Xuat.hpp Chứa các thao tác, hành động liên quan đến truyền file Lưu đồ của hàm main(): Begin InitGraphics() Khởi tạo thành công Mainpro() closegraph() End CT báo lỗi Đóng chế độ đồ họa Thoát InitValues(…) InitScreen() InitMouse(…) S Đ [...]... hiện, tức là lúc đó máy tính đọc 2 ký tự đầu tiên của file tmp và xuất ra port 378 của máy tính  Strobe=[1]: để báo cho kit biết dữ liệu đã được gửi ra port để kit biết mà đọc dữ liệu vào  ACK=[1] và Error=[0]: khi nhậndl xong kit sẽ báo ACK=[1], Error=0 để báo cho máy tính biết Kit sẽ gửi dữ liệu để kiểm tra đúng hay sai  AF=[1]: báo cho Kit biết máy tính sẳn sàng nhận dữ liệu  Máy tính đọc bit Error... Port B: xuất trạng thái Kít trả về máy tính Port C: nhận tín hiệu điều khiển từ thanh ghi điều khiển của máy tính  Sau đó báo cho máy tính biết trạng thái bận Mục đích của công việc này là để đồng bộ thời điểm bắt đầu chương trình nhận dữ liệu với chương trình xuất dữ liệu từ máy tính  Reset biến đếm đòa chỉ đầu và cuối, nơi đặt vùng dữ liệu nhận được từ máy tính  Xuất chử Ready báo cho người... liệu Busy=0 Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bò thực tập vi xử lý 8085 (trang 2)  Khi phím Go được gõ thì quá trình nhận dữ liệu của kit thực sự bắt đầu  Kit báo sẳn sàng chờ máy tính gửi dữ liệu xuống  Đọc strobe cho tới khi bằng 1, để biết dữ liệu đã được gởi ra bus dữ liệu  Xuất Busy=1, ACK=0  Đọc dữ liệu và cho ACK=1 Lúc này kit đã nhận được dữ liệu nhưng... biết máy tính sẳn sàng nhận dữ liệu kiểm tra  Xuất nible cao của dữ liệu kiểm tra (bằng 4 bit cao của port B) và bit Error=0 (bit PB3)  Đọc AF cho tới khi bằng 0, để biết máy tính sẳn sàng nhận4 bit thấp của dữ liệu kiểm tra  Xuất 4 bit thấp và Error bằng 1  Lúc này, máy tính đang nhận và so sánh dữ liệu đã gởi đi Và kết quả so sánh được báo cho kit ở thanh ghi dữ liệu, tức portA của 8255 Kit đọc... trình truyền file hoàn tất Quá trình truyền file phải sử dụng bước này để các quá trình bắt tay giữa máy tínhKit được ổn đònh (thực nghiệm), và việc viết chương trình được rõ ràng hơn  Gọi chương trình xuất file: chương trình này sẽ đọc file có tên là “x.tmp” được tạo từ chương trình cắt file Chương trình này sẽ tuần tự đọc file, nhận tín hiệu bắt tay và gởi dữ liệu cho đến khi hết file  Trong... thái sẳn sàng nhận dữ liệu của kit Chờ người sử dụng gõ phím Go Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bò thực tập vi xử lý 8085 (trang 1): Begin Khởi tạo ngoại vi 8255:  Port A: nhận dữ liệu  Port B: Xuất trạng thái  Port C: nhận tín hiệu điều khiển Báo thiết bò bận Reset biến đếm đòa chỉ đầu và cuối, nơi đặt vùng dữ liệu nhận được từ máy tính gởi xuống “READY” Chờ gõ... Error = [0] để biết Kit đã gửi về dữ liệu để kiểm tra  Thu Nible cao: Nhận dữ liệu để kiểm tra  Cho AF=[0]: đã nhận xong dữ liệu  Đọc Error cho tới khi Error=[1] để biết đã có dữ liệu mới  Thu nible thấp  Kiểm tra dữ liệu: máy tính sẽ phải ghép nối nible cao với nible thấp lại rồi so sánh với dữ liệu vừa xuất ra, nếu 2 dữ liệu giống nhau thì kết quả xuất dữ liệu sẽ là đúng Máy tính sẽ xuất ra số... xuất 00hex ra thanh ghi data và xuất AF=0, strobe =0 để báo kết quả sai  Nếu kết quả sai thì quay lại xuất lạ byte vừa rồi đã xuất  Quay lại từ đầu chương trình xuất dữ liệu cho đến khi hết dữ liệu IV.4 Chương trình nhận dữ liệu ở Kit: Giải thích lưu đồ chương trình nhận dữ liệu:  Chương trình bắt đầu tại begin  Trước tiên phải khởi tạo 8255 với các chế độ qui đònh như sau: Port A: nhận dữ liệu từ... strobe bằng [0] biết kết quả kiểm tra đã sẳn sàng  Đọc port A lấy kết quả kiểm tra  Nếu kết quả kiểm tra là đéng thì thực hiện khâu xử lý dữ liệu (lưu dữ liệu vào nơi cần thiết) và quay lại nhận dữ liệu kế tiếp Nếu kết quả là sai thì bỏ qua khâu xử lý dữ liệu mà quay trở lại nhập lại dữ liệu cũ Quá trình xẩy ra cho đến khi khâu xử lý dữ liệu nhận ra đã nhập đến dữ liệu cuối cùng thì kết thúc khâu xử...  Return: Quay trở về chương trình Gọi chương trình MainPro Cắt file Trong hàm MainPro(), cần quan tâm chương trình con truyền file Gọi chương trình xuất file Thành công Sai Đúng Thông báo hoàn tất công việc Return Thông báo lỗi công việc Hình 15: Lưu đồ chương trình con có nhiệm vụ truyền file Trong phần này, ta quay lại công việc cắt file đã giới thiệu ở mục III của chương V Chương trình con cắt file . trình bắt tay giữa máy tính và Kit được ổn đònh (thực nghiệm), và việc viết chương trình được rõ ràng hơn.  Gọi chương trình xuất file: chương trình này. nạp vào Kit là: 3E 00 32 A001 Org 0000h MVI A,00h STA 0A001h MVI A,80h STA 0A001h MVI A,06h STA 0A000h HLT END 3E 80 32 A001 3E 06 32 A000 76 Nhưng với thứ

Ngày đăng: 07/11/2013, 21:15

Hình ảnh liên quan

Screen.h Chứa các tham số về giao diện màn hình, và chứa - Thiết kế giao tiếp máy tính với KIT 8085, chương 6

creen.h.

Chứa các tham số về giao diện màn hình, và chứa Xem tại trang 10 của tài liệu.
Hình 16: Lưu đồ chương trình con Cắt file - Thiết kế giao tiếp máy tính với KIT 8085, chương 6

Hình 16.

Lưu đồ chương trình con Cắt file Xem tại trang 21 của tài liệu.
Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 1): - Thiết kế giao tiếp máy tính với KIT 8085, chương 6

Hình 18.

Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 1): Xem tại trang 25 của tài liệu.
Hình 19: Lưu đồ chương trình xử lý dữ liệu (trang1). - Thiết kế giao tiếp máy tính với KIT 8085, chương 6

Hình 19.

Lưu đồ chương trình xử lý dữ liệu (trang1) Xem tại trang 29 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan