Bài giảng Vi xử lý - Chương 3: Lập trình 8051
lượt xem 5
download
Bài giảng Vi xử lý - Chương 3: Lập trình 8051. Chương này cung cấp cho sinh viên những nội dung gồm: các khái niệm cơ bản về lập trình cho vi xử lý và vi điều khiển; các kiểu định địa chỉ; tập lệnh; các kỹ thuật lập trình;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Vi xử lý - Chương 3: Lập trình 8051
- Đại Học Giao Thông Vận Tải Tp.HCM Khoa Điện – Điện Tử Viễn Thông Học phần: Vi Xử Lý Chương 3: Lập trình 8051 Giảng viên: TS. NGUYỄN HỮU CHÂN THÀNH
- Chương 3 bao gồm 4 nội dung: 1. Các khái niệm cơ bản về lập trình cho VXL và VĐK 2. Các kiểu định địa chỉ. 3. Tập lệnh. 4. Các kỹ thuật lập trình.
- I. Các khái niệm cơ bản về lập trình cho VXL và VĐK
- 1. Chương trình Tất cả các họ vi xử lý khác nhau có thể thực hiện được mọi công việc mà ta có thể thấy trong cuộc sống, từ điều khiển các quá trình phức tạp, truyền thông, trò chơi điện tử… Một câu hỏi đặt ra là: vậy thì cái gì đặc trưng cho bộ vi xử lý để nó có thể thực hiện chức năng riêng biệt của vi xử lý. Đó chính là phần mềm (software), hay chương trình. 4
- 1. Chương trình - Chương trình (program) là chuỗi các câu lệnh hay phát biểu được viết trong một dạng đặc thù (ngôn ngữ lập trình). Các lệnh này khi được thực hiện bởi vi xử lý sẽ thực hiện những thao tác nhất định với kết quả đoán trước được. - Có nhiều loại ngôn ngữ lập trình: + Ngôn ngữ máy (machine language) Mã nhị phân Mã bát phân hoặc thập lục phân + Hợp ngữ (assembly language) [cần có assembler – trình dịch hợp ngữ] Mã kí hiệu + Ngôn ngữ cấp cao [cần có compiler – trình biên dịch] Pascal, Fortran, Basic, C, C++, … 5
- 2. Lưu đồ chương trình -Bước đầu tiên của việc lập trình là xác định rõ ràng mục đích của chương trình và trình tự cần thiết để đạt mục đích đó. Một trong những công cụ quan trọng trong việc phát triển chương trình là lưu đồ chương trình. - Lưu đồ chương trình là biểu diễn bằng hình ảnh thứ tự các thao tác cần làm để giải quyết một vấn để cụ thể. Lưu đồ chương trình không phụ thuộc ngôn ngữ lập trình hoặc loại vi xử lý cụ thể nào. Lưu đồ chương trình chỉ phụ thuộc vào công việc mà người lập trình muốn hoàn thành. 6
- 2. Lưu đồ chương trình - Các khối cơ bản dùng trong lưu đồ chương trình: 7
- 2. Lưu đồ chương trình -Rất nhiều người lập trình khi mới bắt đầu với việc lập trình thường không thích sử dụng lưu đồ chương trình vì nghĩ rằng việc vẽ lưu đồ là tốn thời gian. Điều này chỉ đúng với các chương trình ngắn và đơn giản, nhưng trường hợp chương trình dài hơn thì nếu không có lưu đồ sẽ rất dễ bị rối rắm. Lưu đồ chương trình giúp sắp xếp các ý tưởng và lời giải của từng vấn đề riêng biệt. Sau khi hoàn thành lưu đồ, ta có thể trao đổi với người khác về ý tưởng của mình. Có lưu đồ chương trình thì dù sau một thời gian dài ta vẫn có thể quay lại với chương trình của mình một cách dễ dàng mà không bị “lạc” trong các dòng lệnh vốn rất chi tiết của chương trình hợp ngữ. 8
- 3. Khuôn dạng của một chương trình hợp ngữ Một chương trình hợp ngữ có thể bao gồm: - Các lệnh (instruction) của vi xử lý/vi điều khiển - Các chỉ dẫn (directive) của trình dịch hợp ngữ - Các điều khiển (control) của trình dịch hợp ngữ - Các chú thích (comment) Các lệnh là các mã gợi nhớ quen thuộc và sẽ được dịch ra mã máy tương ứng với vi xử lý/vi điều khiển. Các chỉ dẫn của trình dịch hợp ngữ là các lệnh của trình dịch hợp ngữ dùng để định nghĩa cấu trúc chương trình, các ký hiệu, dữ liệu, các hằng số… Các điều khiển của trình dịch hợp ngữ thiết lập các chế độ trình dịch hợp ngữ và các luồng hợp dịch trực tiếp. Các chú thích giúp cho chương trình dễ đọc bằng cách đưa ra các giải thích về mục đích và hoạt động của các chuỗi lệnh. 9
- 3. Khuôn dạng của một 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 qui luật mà trình dịch hợp ngữ hiểu được. Mỗi dòng được chia thành các trường cách biệt nhau bởi khoảng trắng hay khoảng tab. Khuôn dạng tổng quát của mỗi dòng như sau: Tên (Nhãn) Mã gợi nhớ Các toán hạng Chú thích trong đó chỉ có trường mã gợi nhớ là bắt buộc. Với trình dịch hợp ngữ ASM51, trường mã gợi nhớ không cần ở trên cùng một dòng với trường nhãn. Tuy nhiên, trường toán hạng phải ở trên cùng một dòng với trường mã gợi nhớ. Có thể viết các dòng này bằng chữ hoa hay chữ thường và chúng sẽ được coi là tương đương vì trình dịch hợp ngữ không phân biệt kiểu chữ. 10
- 3. Khuôn dạng của một chương trình hợp ngữ a. Trường tên Trường này có thể chứa các nhãn, tên biến, hay tên chương trình con (thủ tục). Các tên và nhãn này sẽ được trình dịch hợp ngữ gán bằng các địa chỉ cụ thể của lệnh (hoặc dữ liệu) theo sau. Tên và nhãn có thể có độ dài từ 1 đến 31 ký tự, không chứa khoảng trắng, phải bắt đầu bằng ký tự chữ, dấu ‘?’ hay dấu ‘_’ và tiếp theo phải là các ký tự chữ, các ký số, dấu ‘?’ hay dấu ‘_’. Các tên và nhãn không được trùng với các từ khóa (các mã gợi nhớ, các chỉ dẫn, các toán tử hay các ký hiệu định nghĩa trước). Nói chung, ta cứ đặt các tên bình thường và có ý nghĩa là sẽ ít bị lỗi. Một nhãn được kết thúc bằng dấu ‘:’. 11
- 3. Khuôn dạng của một chương trình hợp ngữ b. Trường mã gợi nhớ Trường này chứa mã gợi nhớ (mnemonic) cho biết chức năng của lệnh (ví dụ như ADD, MOV, DIV, MUL, INC…) hay chỉ dẫn của trình dịch hợp ngữ (ví dụ như ORG, END, EQU, DB…). Các chỉ dẫn không được dịch ra mã máy. 12
- 3. Khuôn dạng của một chương trình hợp ngữ c. Trường toán hạng (operand) Trường này chứa địa chỉ hay dữ liệu mà lệnh sẽ sử dụng. Tùy theo từng loại lệnh mà có thể có 0, 1, 2 hay 3 toán hạng. Các toán hạng cách nhau bởi dấu phẩy. 13
- 3. Khuôn dạng của một chương trình hợp ngữ d. Trường chú thích (comment) Các chú thích để làm rõ chương trình được đặt trong trường chú thích ở cuối dòng lệnh. Điều này giúp cho người đọc chương trình dễ hiểu các thao tác của chương trình hơn. Các chú thích cần phải được bắt đầu bằng dấu ‘;’. Các chú thích có thể chiếm nhiều dòng riêng và cũng phải bắt đầu bằng dấu chấm ‘;’. 14
- 3. Khuôn dạng của một chương trình hợp ngữ Khi ta viết chương trình bằng kí tự của bảng chữ cái, ta gọi đây là dạng mnemonic (mã gợi nhớ). Vi xử lý/vi điều khiển không hiểu được các chữ cái này. Chúng đòi hỏi các lệnh phải được viết dưới dạng đặc biệt gọi là object code (mã đối tượng, mã lệnh). Mnemonic được dùng trong chương trình gốc dưới dạng source code (mã nguồn) do người lập trình viết bằng hợp ngữ hoặc (ngôn ngữ lập trình khác). Còn object code là ngôn ngữ chỉ bao gồm các số 1 và 0, đây là ngôn ngữ mà vi xử lý/vi điều khiển sẽ làm việc được. Vi xử lý/vi điều khiển đọc object code từ bộ nhớ dưới dạng các byte và biên dịch các dữ liệu thành lệnh cần thực thi. 15
- 3. Khuôn dạng của một chương trình hợp ngữ Một số chỉ dẫn của trình dịch hợp ngữ thường dùng: ORG Dạng: ORG bieuthuc Chỉ dẫn ORG thay đổi nội dung bộ đếm chương trình theo giá trị của bieuthuc để thiết lập nơi bắt đầu mới của chương trình cho các phát biểu theo sau nó. END Dạng: END END là phát biểu cuối cùng của chương trình nguồn. Nhãn không được sử dụng trên dòng này. 16
- 3. Khuôn dạng của một chương trình hợp ngữ Một số chỉ dẫn của trình dịch hợp ngữ thường dùng: EQU Dạng: kyhieu EQU bieuthuc Chỉ dẫn EQU gán giá trị của bieuthuc cho kyhieu. Kyhieu phải là tên hợp lệ. DB Dạng: nhan: DB bieuthuc{, bieuthuc][…] Chỉ dẫn DB thường được dùng để định nghĩa các giá trị byte tương ứng với các bieuthuc trong bộ nhớ chương trình bắt đầu từ địa chỉ tương ứng với nhan. 17
- 4. Biên dịch chương trình -Chương trình phải được chuyển sang thành dạng object code trước khi vi xử lý/vi điều khiển có thể thực hiện chương trình. Quá trình chuyển từ chương trình dạng source code sang object code gọi là biên dịch/hợp dịch (assembling). - Sau đó ta nạp object code này vào bộ nhớ vi xử lý/vi điều khiển và vi xử lý/vi điều khiển chạy chương trình. 18
- 4. Biên dịch chương trình -Việc chuyển đổi mnemonic sang object code thường thực hiện bằng máy tính. Trước hết ta dùng một chương trình gọi là editor để viết và lưu mã nguồn vào bộ nhớ. Ta có thể sử dụng editor quen thuộc của Window như Notepad hoặc trong môi trường DOS ta sử dụng lệnh edit trong Norton Commandor. Sau đó ta cho chạy chương trình biên dịch gọi là assembler, chương trình này sẽ lấy mã lệnh trong bộ nhớ và biên dịch sang tập tin dưới dạng object code. Cuối cùng, ta dùng một chương khác để nạp object code từ bộ nhớ của máy tính vào bộ nhớ của vi xử lý/vi điều khiển. 19
- 5. Nạp chương trình vào bộ nhớ -Khi vi xử lý/vi điều khiển được cấp nguồn điện lần đầu hay được khởi động lại bằng cách kích hoạt vào chân RST thì vi xử lý/vi điều khiển thực hiện một số lệnh bên trong. Một trong các lệnh đó là xuất một địa chỉ đặc biệt lên bus địa chỉ và đọc opcode đầu tiên tại địa chỉ đó. Đối với Z80, 8080, 8085 và họ MCS-51 thì đó là địa chỉ 0000H. Do đó, opcode đầu tiên của chương trình cần thực hiện phải được đặt ở vị trí 0000H trong bộ nhớ chương trình và khi viết chương trình nên sử dụng chỉ dẫn ORG 0000H ở dòng đầu tiên của chương trình chính để báo cho trình dịch hợp ngữ biết chương trình được bắt đầu ở địa chỉ 0000H. 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng vi xử lý - Chương 2
20 p | 622 | 373
-
Bài giảng vi xử lý - Chương 7
10 p | 438 | 227
-
Giáo trình vi xử lý LỜI NÓI ĐẦU
4 p | 513 | 169
-
Giáo trình vi xử lý - Giao tiếp với các thiết bị dơn giản
18 p | 395 | 167
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 1 - ThS. Phan Đình Duy
20 p | 90 | 12
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 0 - ThS. Phan Đình Duy
11 p | 102 | 8
-
Bài giảng vi xử lý: Chương 3 (3.5) - Hồ Trung Mỹ
18 p | 127 | 6
-
Bài giảng Vi xử lý - Chương 0: Giới thiệu học phần
4 p | 17 | 6
-
Bài giảng Vi xử lý - Chương 4: Các chức năng họ 8051
99 p | 14 | 5
-
Bài giảng Vi xử lý - Chương 2: Phần cứng 8051
91 p | 12 | 5
-
Bài giảng Vi xử lý - Chương 1: Giới thiệu Vi xử lý
104 p | 10 | 5
-
Bài giảng Vi xử lý - Chương 5: Giao tiếp
166 p | 9 | 4
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 2 - GV. Đỗ Văn Cần
83 p | 8 | 4
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 1 - GV. Đỗ Văn Cần
19 p | 17 | 3
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 3 - GV. Đỗ Văn Cần
45 p | 4 | 2
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 4 và 5 - GV. Đỗ Văn Cần
37 p | 8 | 2
-
Bài giảng Vi xử lý - Vi điều khiển: Chương 6 - GV. Đỗ Văn Cần
50 p | 7 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn