Các nhóm lệnh 8051
•Nhãm lÖnh chuyÓn d÷ liÖu
•Nhãm lÖnh sè häc
•Nhãm lÖnh logic
•Nhãm lÖnh xö lý bit
•Nhãm lÖnh rÏ nh¸nh
1 Electrical Engineering
Nhóm lệnh chuyển dữ liệu
1
2 Electrical Engineering
Truyền dữ liệu với RAM ngoài
3 Electrical Engineering
Lệnh số học
2
4 Electrical Engineering
Lệnh xử lý lôgic
5 Electrical Engineering
Lệnh xử lý lôgic (tiếp)
3
6 Electrical Engineering
Các lệnh nhảy không điều kiện
7 Electrical Engineering
Lệnh nhảy có điều kiện
4
8 Electrical Engineering
Lệnh nhảy với cờ
9 Electrical Engineering
Lệnh làm việc với bit
5
10 Electrical Engineering
Lệnh làm việc với bit (tiếp)
11 Electrical Engineering
Lệnh làm việc với bảng dữ liệu
MOVC, nghÜa lµ move constant
6
12 Electrical Engineering
Ví dụ bảng tìm kiếm
look_up:
MOV A, Index CALL look_up ............... inc A movc A, @A + PC ret DB data1, data2, ...
TABLE:
13 Electrical Engineering
Lập trình có cấu trúc
• Lập trình tuần tự (sequential programming) • Lập trình cấu trúc • Lập trình hướng đối tượng
7
14 Electrical Engineering
Các đặc trưng lập trình cấu trúc
• Dữ liệu + giải thuật = chương trình • Chương trình
– Chương trình con – Có 3 loại cú pháp cơ bản
• Lệnh gán • Lệnh if .... then • Lệnh do while
15 Electrical Engineering
Phát biểu While/do
các lệnh chương trình
do
các lệnh chương trình
• while [condition] Do • • • •
while (...)
8
16 Electrical Engineering
Ví dụ tính tổng
• Tính tổng dãy số • Chiều dài của dãy số chứa trong thanh ghi
R7
• Địa chỉ bắt đầu dãy số trong thanh ghi R0
17 Electrical Engineering
Ví dụ
• [sum] = 0 • WHILE (length > 0) Do – [sum = sum + @pointer] – [pointer = pointer + 1] – [length = length – 1]
• End
9
18 Electrical Engineering
Phát biểu case
case [ expression] of
0: do0 1: do1 ..... n: don default: do_default
End_case
19 Electrical Engineering
Ví dụ case
• Yêu cầu, chương trình thực đơn, người sự dụng nhập vào giá trị 0, 1, 2, và chương trình sẽ nhập giá trị tương ứng
10
20 Electrical Engineering
Ví dụ case (tiếp)
Act0:
Call InChar CJNE A, #’0’, Skip1 ................. JMP Exit Skip1: CJNE A, # ’1’, Skip2 .................. Act1: JMP Exit
....................................... Exit:
DoN
21 Electrical Engineering
Các định nghĩa phụ
• Dấu ; dùng để chú thích
– Mov @R0, A; Lưu giá trị vào vùng đệm
• ORG
– Org 100h, điểm xuất phát chương trình
• Equ
– ESC Equ 27h, lệnh gán giá trị
11
22 Electrical Engineering
Các định nghĩa phụ
table:DB 0,1,2,4 message: DB, ‘Login:’, 0
• DB (define byte) • • • DW (define word)
– temp: DW ‘A’, 1342H,
• DS (define storage)
– Length – Buffer:
EQU 25H DS
Length
23 Electrical Engineering
Chương trình mẫu
• Chuyển đổi ký tự sang số Hex
– ASCII – Hex • Bài tập về nhà – Hex -> ASCII
12
24 Electrical Engineering