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