Tải bản đầy đủ (.ppt) (26 trang)

3 2 VI điều KHIỂN họ 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (280.91 KB, 26 trang )

3.2. Vi điều khiển họ 8051
• Kiến trúc vi điều khiển 8051
• Lập trình firmware cho vi điều khiển 8051

1


3.2.1. Kiến trúc vi điều khiển 8051
Do hãng Intel thiết kế năm
1981
Gồm 40 chân
Có 4 cổng vào ra, mỗi
cổng rộng 8 bit: P0, P1, P2,
P3
Nhóm chân nguồn, dao
động và điều khiển
Ngoại vi: UART
6 nguồn ngắt (2 ngắt ngoài)
2 bộ Timer/Counter
4KB Flash, 128 Byte Ram
Tần số xung nhịp tối đa: 24
MHz

2


Đóng vỏ vi điều khiển 8051

3



Kiến trúc vi điều khiển 8051

4


Các thanh ghi của 8051
• Các thanh ghi dùng để lưu tạm thời dữ liệu hoặc địa chỉ
• Các thanh ghi này chủ yếu là thanh ghi 8 bit
• Các thanh ghi thường được sử dụng





5

Thanh ghi A : thanh ghi tích lũy
Thanh ghi R0->R7
Thanh ghi con trỏ dữ liệu DPTR (16 bit)
Thanh ghi bộ đếm chương trình PC (16bit)


3.2.2. Lập trình vi điều khiển 8051
• Giới thiệu về lập trình hợp ngữ
• Lập trình C

6


Giới thiệu lập trình hợp ngữ

• Ngôn ngữ máy:
• Chỉ được biểu diễn bằng số nhị phân.
• Bộ vi xử lý chỉ hiểu được các chương trình mã máy.
• Con người rất khó khăn để tạo lập hay đọc hiểu chương trình ngôn ngữ máy.
• Hợp ngữ (Assembly Language):
• Là ngôn ngữ lập trình bậc thấp (gần ngôn ngữ máy nhất).
• Được xây dựng trên cơ sở ký hiệu tập lệnh của bộ vi xử lý tương ứng.
• Phụ thuộc hoàn toàn vào bộ vi xử lý cụ thể.
• Ngôn ngữ lập trình bậc cao:
• Gần với ngôn ngữ tự nhiên hơn.
• Được xây dựng độc lập với cấu trúc của máy tính.
7


Tập lệnh
• Mỗi bộ xử lý/ vi điều khiển có một tập lệnh xác định (mang
tính kế thừa trong cùng một dòng họ).
• Tập lệnh thường có hàng chục đến hàng trăm lệnh.
• Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý/ vi điều khiển
hiểu được để thực hiện một thao tác xác định.
• Các lệnh được mô tả bằng các kí hiệu gợi nhớ → các lệnh
hợp ngữ.
• Ví dụ: Lệnh ADD A, #3Ah
0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0
3Ah
8


Khuôn dạng của một lệnh máy
Mã thao tác


Tham chiếu toán hạng

• Mã thao tác (Operation Code - Opcode): mã hóa cho thao
tác mà CPU phải thực hiện.
• Tham chiếu toán hạng: mã hóa cho toán hạng hoặc nơi
chứa toán hạng mà thao tác sẽ tác động.
• Toán hạng nguồn (Source Operand): dữ liệu vào của thao tác
(CPU sẽ đọc)
• Toán hạng đích (Destination Operand): dữ liệu ra của thao tác
(CPU sẽ ghi)

9


Các chế độ địa chỉ
• Chế độ địa chỉ tức thời
• Toán hạng nguồn là hằng số
• Trước dữ liệu tức thời cần có dấu #
• Ví dụ:
• MOV A, #25 ; Nạp giá trị 25 và thanh ghi A

10


Các chế độ địa chỉ
• Chế độ định địa chỉ thanh ghi






Sử dụng thanh ghi để lưu trữ dữ liệu cần thao tác
Thanh ghi nguồn và đích phải phù hợp về kích thước
Không được chuyển dữ liệu giữa các thanh ghi R0->R7
Ví dụ:
• MOV A, R0 ; Chuyển dữ liệu trong R0 vào A

11


Các chế độ địa chỉ
• Chế độ địa chỉ trực tiếp
• Toán hạng (nguồn hoặc đích) là địa chỉ của ô nhớ
• Trước địa chỉ ô nhớ không có dấu #
• Ví dụ:
• MOV A, 35h ;Dữ liệu trong ô nhớ có địa chỉ
; 35h

12

được chuyển vào thanh ghi A


Các chế độ địa chỉ
• Chế độ định địa chỉ gián tiếp thanh ghi
• Địa chỉ ô nhớ chứa dữ liệu được chứa trong thanh ghi R0 hoặc R1
• Trước thanh ghi R0 hoặc R1 phải chèn thêm ký tự “@” để biểu thị cho
chế độ địa chỉ này
• Ví dụ:

• MOV A,@R0 ;chuyển dữ liệu trong ô nhớ có
trong thanh
;ghi R0 vào thanh ghi A

13

;địa chỉ được chỉ ra


Tập lệnh vi điều khiển 8051
• Lệnh số học
• Lệnh truyền dữ liệu
• Lệnh logic
• Xử lý bit
• Lệnh rẽ nhánh

14


Tập lệnh vi điều khiển 8051
Lệnh số học
Lệnh

Giải thích

ADD đích, nguồn

Đích = đích + nguồn

ADDC đích, nguồn


Đích = đích + nguồn + cờ nhớ

SUBB đích, nguồn

Đích = đích – nguồn

INC nguồn

Đích = đích + 1

DEC nguồn

Đích = đích - 1

MUL AB

A*B

DIV AB

A/B
15


Tập lệnh vi điều khiển 8051
Lệnh truyền dữ liệu
Lệnh

Giải thích


MOV đích, nguồn

Đích = nguồn (Bộ nhớ trong)

MOVX đích, nguồn

Đích = nguồn (Thao tác bộ nhớ
ngoài)

PUSH

Đẩy dữ liệu vào đỉnh ngăn xếp

POP

Lấy dữ liệu từ đỉnh ngăn xếp

XCH

Tráo đổi dữ liệu

XCHD

Tráo đổi dữ liệu ( 4 bit thấp)
16


Tập lệnh vi điều khiển 8051
Lệnh logic

Lệnh

Giải thích

ANL

Lệnh “AND”

ORL

Lệnh “OR”

XRL

Lệnh “XOR”

CLR

Xóa bit

RL, RLC

Lệnh quay trái

RR, RRC

Lệnh quay phải
17



Tập lệnh vi điều khiển 8051
Lệnh rẽ nhánh
Lệnh

Giải thích

ACALL

Gọi chương trình con, địa chỉ 11 bit

LCALL

Gọi chương trình con, địa chỉ 16 bit

RET

Trở về từ chương trình con

JMP

Lệnh nhảy không điều kiện

JZ, JNZ, JB, JNB…

Lệnh nhảy có điều kiện (kiểm tra
bit)

18



Cú pháp của hợp ngữ
• Một chương trình hợp ngữ bao gồm một chuỗi các dòng lệnh hợp
ngữ
• Một lệnh hợp ngữ có một từ gợi nhớ (ADD, SUBB, MOV…) và tùy vào
từng lệnh mà sau đó không, một hay hai toán hạng
• Lệnh hợp ngữ gồm có 4 thành phần
[nhãn:] [từ gợi nhớ] [các toán hạng] [;chú giải]
Ví dụ:
bat_dau: MOV A,#25
;Khởi gán A=25
19


Dữ liệu của chương trình
• Hợp ngữ cho phép biểu diễn dưới dạng:





Số nhị phân: 1011b, 1011B, ...
Số thập phân: 35, 35d, 35D, ...
Số Hexa: 4Ah, 0ABCDh, 0FFFFH, ...
Kí tự: "A", 'HELLO', "Bach Khoa", ...

• Tất cả các kiểu dữ liệu trên sau đó đều được trình dịch Assembler dịch
ra mã nhị phân.
• Mỗi kí tự được dịch thành mã ASCII tương ứng
• Chương trình không phân biệt 'A' với 41h hay 65
20



Kiểu dữ liệu

• Chỉ có một kiểu dữ liệu là kiểu dữ liệu 8 bit
(Kiểu byte)
• Để định nghĩa một dữ liệu kiểu byte, cần sử dụng chỉ dẫn

DB

21


Các chỉ dẫn
• ORG: Báo địa chỉ bắt đầu
• EQU: dùng để định nghĩa hằng số
• VD: COUNT EQU 25

• END: báo kết thúc file mã nguồn

22


Một số lệnh cơ bản
• Lệnh ADD: cộng
• Cú pháp:
ADD
A,nguồn ;cộng toán hạng
;nguồn vào thanh ghi A


• Lệnh MOV: chuyển dữ liệu
• Cú pháp
MOV đích, gốc

23

;chuyển dữ liệu từ toán hạng
;gốc vào toán hạng đích


Dịch và chạy chương trình

24


Ví dụ sử dụng lệnh ADD, MOV
ORG 000
MOV R5, #25h
MOV R7, #34h
MOV A,
#0
ADD A,
R5
ADD A,
R7
HERE: SJMP HERE
END

;Dia chi bat dau cua chuong trinh
;Nap 25h vao R5

;Nap 34h vao R7
;Nap 0 vao thanh ghi A
;A=A+R5
;A=A+R7 (A=25h+34h)
;O lai trong vong lap

Sử dụng các lệnh ADD, MOV

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×