kĩ thuật vi điều khiển

34 158 0
kĩ thuật vi điều khiển

Đ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

GV LÊ TIẾN DŨNG Bộ môn Tự ñộng hóa – Khoa ðiện Trường ðại học Bách khoa – ðại học ðà Nẵng Email: ltdung@udn.vn CHƯƠNG LẬP TRÌNH HỢP NGỮ GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 NỘI DUNG CHƯƠNG MỞ ðẦU TRÌNH DỊCH HỢP NGỮ KHUÔN DẠNG CỦA TRÌNH DỊCH HỢP NGỮ CẤU TRÚC CHƯƠNG TRÌNH GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 MỞ ðẦU Hợp ngữ (Assembly Language programming) ngôn ngữ máy tính có vị trí ngôn ngữ máy ngôn ngữ cấp cao Các ngôn ngữ cấp cao ñiển Pascal, C sử dụng từ phát biểu dễ hiểu ñối với người Ngôn ngữ máy ngôn ngữ dạng số nhị phân máy tính Một chương trình viết ngôn ngữ máy chuỗi byte nhị phân biểu diễn lệnh mà máy tính thực thi ñược GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 MỞ ðẦU Hợp ngữ thay mã nhị phân ngôn ngữ máy mã gợi nhớ giúp ta dễ nhớ dễ lập trình Một chương trình viết hợp ngữ ñược thực thi trực tiếp máy tính Sau viết xong, chương trình phải trải qua trình dịch thành ngôn ngữ máy Trình dịch hợp ngữ (assembler) cần thiết ñể dịch mã gợi nhớ lệnh thành mã nhị phân ngôn ngữ máy GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 MỞ ðẦU Hơn yêu cầu trình liên kết (linker) ñể kết hợp phần chương trình tập tin riêng rẽ thiết lập ñịa nhớ nơi mà chương trình ñược thực thi CÁC ðỊNH NGHĨA: - Một chương trình viết hợp ngữ chương trình ñược viết dạng ký hiệu, mã gợi nhớ… ñó phát biểu tương ứng với lệnh ngôn ngữ máy GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 MỞ ðẦU - Trình dịch hợp ngữ (assembler) chương trình dùng ñể dịch chương trình hợp ngữ thành chương trình ngôn ngữ máy - Một segment ñơn vị nhớ chương trình nhớ liệu - Một module chứa nhiều segment Một module ñược gán tên người sử dụng GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 TRÌNH DỊCH HỢP NGỮ Có nhiều trình dịch hợp ngữ chương trình hỗ trợ khác cho phép ta dễ dàng phát triển ứng dụng chip vi ñiều khiển 8051 Phần mềm Keil µsion3 phần mềm phép soạn thảo, lập trình cho chip 8051 hãng khác Chương trình hỗ trợ biên dịch từ hợp ngữ, C sang mã máy, cho phép liên kết nhiều file chương trình với nhau, hỗ trợ mô phỏng, gỡ rối … GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 KHUÔN DẠNG CỦA CHƯƠNG TRÌNH HỢP NGỮ Các chương trình hợp ngữ chứa: - Các lệnh vi xử lý, vi ñiều khiển - Các dẫn trình dịch hợp ngữ - Các ñiều khiển trình dịch hợp ngữ - Các thích GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 KHUÔN DẠNG CỦA CHƯƠNG TRÌNH HỢP NGỮ Các lệnh: Các mã gợi nhớ Các dẫn trình dịch hợp ngữ: Là lệnh trình dịch hợp ngữ dùng ñể ñịnh nghĩa cấu trúc chương trình, ký hiệu, liệu, số v.v (như ORG) Các ñiều khiển trình dịch hợp ngữ: Thiết lập chế ñộ trình dịch hợp ngữ luồng dịch trực tiếp (như $TITLE) Các thích: Giúp cho chương trình dễ ñọc cách ñưa giải thích mục ñích hoạt ñộng chuỗi lệnh 10 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CẤU TRÚC CHƯƠNG TRÌNH Lập trình có cấu trúc (Structured programming) kỹ thuật dùng ñể tổ chức viết chương trình cho giảm ñược ñộ phức tạp, cải thiện tính rõ ràng chương trình ñồng thời dễ dàng gỡ rối, sửa chữa thay ñổi Khả phương pháp lập trình có cấu trúc ñược ñánh giá cách khảo sát phát biểu sau: chương trình ñều ñược viết sử dụng cấu trúc: “Các phát biểu”,”Các vòng lặp” “Các lựa chọn” 20 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CẤU TRÚC CHƯƠNG TRÌNH “Các phát biểu”,”Các vòng lặp” “Các lựa chọn” tạo thành tập ñầy ñủ cấu trúc chương trình ñều ñược thực cách sử dụng cấu trúc ðiều khiển chương trình ñược chuyển qua cấu trúc ñến cấu trúc khác mà rẽ nhánh không ñiều kiện Mỗi cấu trúc có ñiểm nhập ñiểm thoát Một cách ñiển hình, chương trình có cấu trúc chứa trật tự có thứ bậc chương trình con, chương trình có ñiểm nhập ñiểm thoát 21 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CẤU TRÚC CHƯƠNG TRÌNH Có phương pháp ñể tạo chương trình hợp ngữ: - Lưu ñồ (flowchart) - Giả mã (pseudo code) - Hợp ngữ (assembly language) Cả phương pháp lưu ñồ giả mã ñều công cụ trực quan giúp ta dễ dàng trình bày hiểu tập cách có hệ thống Cả cho phép tập ñược mô tả dạng “ñiều phải thực hiện” “thực cách nào” 22 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CẤU TRÚC CHƯƠNG TRÌNH Thông thường lời giải ñược biểu diễn dạng lưu ñồ giả mã dạng thuật ngữ ñộc lập với máy, không cần khảo sát rắc rối khó hiểu tập lệnh máy Có thể ta không sử dụng phương pháp: giả mã lưu ñồ Việc lựa chọn phương pháp cho thích hợp tùy thuộc vào cá nhân người lập trình Các ký hiệu thường dùng cho việc lập lưu ñồ ñược trình bày sau: 23 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CẤU TRÚC CHƯƠNG TRÌNH s : Khối ñiều kiện : Khối xuất/nhập ñ : ñường ñi CT : Khối kết thúc bắt ñầu CT : Khối kết nối qua trang : Hộp xử lý, thao tác : Xử lý tiền ñịnh nghĩa (chương trình con) 24 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 ƯU VÀ KHUYẾT ðIỂM CỦA LẬP TRÌNH CÓ CẤU TRÚC ƯU ðIỂM: - Dễ dàng vạch chuỗi hoạt ñộng, thuận tiện cho việc gỡ rối - Có số hữu hạn cấu trúc kèm theo thuật ngữ ñã ñược chuẩn hóa - Các cấu trúc giúp cho việc xây dựng chương trình ñược dễ dàng - Tập cấu trúc ñầy ñủ, nghĩa chương trình ñều ñược viết cách sử dụng ba cấu trúc - Làm tăng suất người lập trình – Chương trình ñược viết nhanh 25 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 ƯU VÀ KHUYẾT ðIỂM CỦA LẬP TRÌNH CÓ CẤU TRÚC NHƯỢC ðIỂM: - Chỉ có vài ngôn ngữ cấp cao Pascal, C… chấp nhận trực tiếp cấu trúc, ngôn ngữ cấp cao khác yêu cầu thêm giai ñoạn dịch - Các chương trình có cấu trúc thực thi chậm ñòi hỏi nhiều nhớ so với CT tương ñương cấu trúc - Một số vấn ñề gặp khó khăn giải ta sử dụng cấu trúc ñể lập trình - Các cấu trúc lồng vào có khó khăn ñi kèm 26 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 BA CẤU TRÚC Mọi vấn ñề lập trình ñều ñược thực cách dùng cấu trúc: - Các phát biểu (Statement) - Các vòng lặp (Loop) - Sự lựa chọn (Choice) Tính ñầy ñủ cấu trúc dường không hứa hẹn lắm, nhiên thêm vào lồng (cấu trúc cấu trúc), ta dễ dàng chứng tỏ tập lập trình ñều ñược thực với cấu trúc 27 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 BA CẤU TRÚC 4.1 Các phát biểu Các phát biểu cung cấp cho ta chế ñể thực ñiều ñó Các khả bao gồm việc gán giá trị cho biến, gọi chương trình … Bất nơi mà phát biểu ñơn ñược sử dụng, ta ñều sử dụng nhóm phát biểu hay khối phát biểu (statement block) 28 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 BA CẤU TRÚC 4.2 Cấu trúc vòng lặp Cấu trúc thứ vòng lặp, cấu trúc ñược dùng ñể lặp lại việc thực thao tác Cộng chuỗi số tìm kiếm giá trị danh sách thí dụ tập lập trình ñòi hỏi phải có vòng lặp Thuật ngữ lặp lại (iteration) ñược dùng ngữ cảnh Mặc dù có vài dạng vòng lặp ta cần hai dạng: WHILE/ DO REPEAT/ UNTIL 29 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 4.2 Cấu trúc vòng lặp Cấu trúc While/Do ðiểm nhập ðiều kiện? sai ñúng Kết thúc Phát biểu Quy luật chung: Các thao tác khối phát biểu phải ảnh hưởng ñến biến biểu thức ñiều kiện, không lỗi dạng vòng lặp vô tận ñược tạo 30 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 4.2 Cấu trúc vòng lặp Cấu trúc REPEAT/UNTIL ðiểm nhập Phát biểu ðiều kiện? sai ñúng Kết thúc Quy luật chung: Các thao tác khối phát biểu phải ảnh hưởng ñến biến biểu thức ñiều kiện, không lỗi dạng vòng lặp vô tận ñược tạo 31 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 4.2 Cấu trúc vòng lặp Cấu trúc IF/THEN/ELSE (cấu trúc lựa chọn) ðiểm nhập ñúng ðiều kiện? sai Phát biểu Phát biểu Kết thúc 32 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 4.2 Cấu trúc vòng lặp Cấu trúc CASE (cấu trúc lựa chọn) ðiểm nhập BT1? ñ Phát biểu s BT2? ñ Phát biểu s BT3? s ñ Phát biểu BTn? s ñ Phát biểu n Phát biểu lỗi (Fault statement) Kết thúc 33 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 THANK YOU ! SEE YOU IN NEXT CHAPTER 34 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 [...]... chuỗi các hoạt ñộng, do vậy thuận tiện cho vi c gỡ rối - Có một số hữu hạn các cấu trúc kèm theo thuật ngữ ñã ñược chuẩn hóa - Các cấu trúc giúp cho vi c xây dựng các chương trình con ñược dễ dàng - Tập các cấu trúc là ñầy ñủ, nghĩa là mọi chương trình ñều có thể ñược vi t bằng cách sử dụng ba cấu trúc - Làm tăng năng suất của người lập trình – Chương trình ñược vi t nhanh hơn 25 GV Lê Tiến Dũng Automation... giải có thể ñược biểu diễn dưới dạng các lưu ñồ hoặc giả mã ở dạng các thuật ngữ ñộc lập với máy, không cần khảo sát những rắc rối khó hiểu của tập lệnh máy Có thể ta không sử dụng cả 2 phương pháp: giả mã và lưu ñồ Vi c lựa chọn phương pháp nào cho thích hợp tùy thuộc vào cá nhân của người lập trình Các ký hiệu thường dùng nhất cho vi c lập lưu ñồ ñược trình bày như sau: 23 GV Lê Tiến Dũng Automation... trình có cấu trúc (Structured programming) là kỹ thuật dùng ñể tổ chức và vi t chương trình sao cho giảm ñược ñộ phức tạp, cải thiện tính rõ ràng của chương trình ñồng thời dễ dàng gỡ rối, sửa chữa cũng như thay ñổi Khả năng của phương pháp lập trình có cấu trúc có thể ñược ñánh giá bằng cách khảo sát phát biểu sau: mọi chương trình ñều có thể ñược vi t chỉ sử dụng 3 cấu trúc: “Các phát biểu”,”Các... bao gồm vi c gán giá trị cho một biến, hoặc gọi một chương trình con … Bất cứ nơi nào mà một phát biểu ñơn ñược sử dụng, ta ñều có thể sử dụng một nhóm các phát biểu hay khối phát biểu (statement block) 28 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 BA CẤU TRÚC 4.2 Cấu trúc vòng lặp Cấu trúc cơ bản thứ 2 là vòng lặp, cấu trúc này ñược dùng ñể lặp lại vi c thực... 2007 4 CẤU TRÚC CHƯƠNG TRÌNH “Các phát biểu”,”Các vòng lặp” và “Các lựa chọn” tạo thành một tập ñầy ñủ các cấu trúc và mọi chương trình ñều có thể ñược thực hiện bằng cách chỉ sử dụng 3 cấu trúc này ðiều khiển chương trình ñược chuyển qua một cấu trúc ñến cấu trúc khác mà không có các rẽ nhánh không ñiều kiện Mỗi một cấu trúc có một ñiểm nhập và một ñiểm thoát Một cách ñiển hình, một chương trình có cấu...3 KHUÔN DẠNG CỦA CHƯƠNG TRÌNH HỢP NGỮ Các dòng chứa các lệnh và các chỉ dẫn phải ñược vi t theo các quy luật mà trình dịch hợp ngữ hiểu ñược Mỗi một dòng ñược chia thành các trường cách biệt nhau bởi khoảng trắng hoặc Tab Khuôn dạng tổng quát của mỗi một dòng như sau: [Nhãn:] Mã gợi nhớ... 2 là vòng lặp, cấu trúc này ñược dùng ñể lặp lại vi c thực hiện một thao tác Cộng một chuỗi số hoặc tìm kiếm một giá trị trong danh sách là 2 thí dụ của các bài tập lập trình ñòi hỏi phải có vòng lặp Thuật ngữ lặp lại (iteration) cũng ñược dùng trong ngữ cảnh này Mặc dù có vài dạng vòng lặp nhưng ta chỉ cần hai dạng: WHILE/ DO và REPEAT/ UNTIL 29 GV Lê Tiến Dũng Automation Department, Faculty of Electrical

Ngày đăng: 30/10/2015, 18:19

Từ khóa liên quan

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

Tài liệu liên quan