Tải bản đầy đủ (.pdf) (124 trang)

Lập trình hợp ngữ và điều khiển thiết bị

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 (6.76 MB, 124 trang )

Môn học:
Lập trình hợp ngữ và điều khiển thiết bị
GV: Phạm Văn Thuận
Bộ môn Kỹ thuật Máy tính
Viện CNTT & TT
email:

1


Mục tiêu môn học
§ Sau khi kết thúc môn học này, sinh viên có thể
• Trình bày cấu trúc phần cứng và kiến trúc tập
lệnh của vi họ điều khiển 8051
• Lập trình hợp ngữ sử dụng tập lệnh của vi điều
khiển 8051 để điều khiển các thiết bị ngoại vi
• Sử dụng phần mềm Proteus để mô phỏng hoạt
động của vi điều khiển và các thiết bị ngoại vi

2

Lập trình hợp ngữ và điều khiển thiết bị


§ Tài liệu tham khảo chính:
1. Nguyễn Tăng Cường – Cấu trúc và lập trình họ
vi điều khiển 8051
2. Michael J.Paul – Embedded C
3. Diễn đàn: dientuvietnam.net

3



Lập trình hợp ngữ và điều khiển thiết bị


Nội dung môn học
Chương 1. Cấu trúc vi điều khiển 8051
Chương 2. Lập trình hợp ngữ vi điều khiển
8051
Chương 3. Lập trình vi điều khiển 8051 điều
khiển thiết bị (sử dụng C)

4

Lập trình hợp ngữ và điều khiển thiết bị


1. Cấu trúc vi điều khiển 8051
1.1. Tổng quan về vi điều khiển
1.2. Kiến trúc vi điều khiển 8051

5

Lập trình hợp ngữ và điều khiển thiết bị


1.1. Tổng quan vi điều khiển
§Vi điều khiển <> Vi xử lý
Vi điều khiển: Computer On Chip (bao
gồm cả CPU,
Bộ nhớ, cổng vào ra)


6

Lập trình hợp ngữ và điều khiển thiết bị


Tổng quan về vi điều khiển
§ Một số dòng vi điều khiển phổ biến hiện nay






8051 (AT89C51, AT89S51, AT89S52)
AVR (ATMEGA8, ATMEGA16)
PIC (PIC16F877A, PIC18F4550, PIC18F2550)
ARM (ARM7, ARM9)


7

Lập trình hợp ngữ và điều khiển thiết bị


Lập trình vi điều khiển
§ Lập trình vào ra các cổng (trên từng cổng hoặc
từng chân của cổng)
§ Lập trình sử dụng ngắt
§ Lập trình với các môđun ngoại vi: UART, SPI,

I2C…
§ …

8

Lập trình hợp ngữ và điều khiển thiết bị


1.2. 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
vCó 4 cổng vào ra, mỗi cổng
rộng 8 bit: P0, P1, P2, P3
vNhó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

9

Lập trình hợp ngữ và điều khiển thiết bị


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

10


Lập trình hợp ngữ và điều khiển thiết bị


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

11

Lập trình hợp ngữ và điều khiển thiết bị


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





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)

12

Lập trình hợp ngữ và điều khiển thiết bị



2. Lập trình hợp ngữ vi điều khiển 8051
2.1. Cơ bản về lập trình hợp ngữ
2.2. Tập lệnh vi điều khiển 8051
2.3. Mở đầu về lập trình hợp ngữ
2.4. Các cấu trúc lập trình với hợp ngữ
2.5. Các lệnh logic, lệnh dịch, lệnh quay
2.6. Cổng vào/ra và lập trình
2.7. Lập trình xử lý ngắt

13

Lập trình hợp ngữ và điều khiển thiết bị


2.1. Cơ bản về 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.
14


Lập trình hợp ngữ và điều khiển thiết bị


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
Lập trình hợp ngữ và điều khiển thiết bị

15


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)
16

Lập trình hợp ngữ và điều khiển thiết bị


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

17

Lập trình hợp ngữ và điều khiển thiết bị


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

18

Lập trình hợp ngữ và điều khiển thiết bị


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 được chuyển vào thanh ghi A

19

Lập trình hợp ngữ và điều khiển thiết bị


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ó
;địa chỉ được chỉ ra trong thanh
;ghi R0 vào thanh ghi A

20

Lập trình hợp ngữ và điều khiển thiết bị


2.2. 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

21

Lập trình hợp ngữ và điều khiển thiết bị


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
22

Lập trình hợp ngữ và điều khiển thiết bị


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
PUSH

Đích = nguồn (Thao tác bộ nhớ
ngoài)
Đẩ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)
23

Lập trình hợp ngữ và điều khiển thiết bị


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
24

Lập trình hợp ngữ và điều khiển thiết bị


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)
25

Lập trình hợp ngữ và điều khiển thiết bị


×