1. Trang chủ
  2. » Giáo Dục - Đào Tạo

VI xử lý TRONG điều KHIỂN

233 160 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 233
Dung lượng 3,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặc tính Có những đặc điểm chung của họ vi điều khiển MCS – 51: • 4kByte bộ nhớ FLASH ROM bên trong dùng để lưu chương trình điều khiển... Chức năng các chân khác của vi điều khiển • C

Trang 1

VI XỬ LÝ TRONG ĐIỀU

KHIỂN

Trang 2

PHẦN I:

• Chương I: Tổng quan

• Chương II: Vi điều khiển AT89C51

• Chương III:Ngôn ngữ lập trình

• Chương IV: PORT xuất nhập

• Chương V:TIMER – COUNTER

• Chương VI: Hàm Ngắt

PHẦN II:

Chuyên đề 1: Vi điều khiển AT89C51 và các thiết bị hiển thị

(LED 7 đoạn, LED ma trận, LCD)

Chuyên đề 2: Giao tiếp VĐK AT89C51 với nút nhấn, bàn phím Chuyên đề 3: Giao tiếp ADC, DC - VĐK

Chuyên đề 4: Giao tiếp VĐK – VĐK, VĐK – PC

Trang 3

1 Tống Văn On, Hoàng Đức Hải – Họ vi điều

khiển 8051, NXB Lao Động – Xã Hội 2001

2 Nguyễn Tăng Cường, Lập trình cho họ vi điều

khiển 8051, NXB Khoa học kỹ thuật

3 Đỗ Xuân Tiến, “Kỹ thuật VXL & lập trình

ASSEMBLY cho hệ VXL”, NXB

KH&KT-2001

Trang 4

NHỮNG KHÁI NIỆM CƠ BẢN

Trang 5

NỘI DUNG CHƯƠNG I

1.1 Các hệ thống số cơ bản

1.2.Nhắc lại một số kiến thức cơ bản về kỹ thuật số 1.3 Vi xử lý và Vi điều khiển

Trang 7

b Chuyển đổi giữa các hệ thống số:

- Từ thập phân sang nhị phân:

Phương pháp : Thực hiện phép chia số thập phân

cho 2

Trang 8

b Chuyển đổi giữa các hệ thống số:

- Từ thập phân sang nhị phân:

Trọng số của bit:

Vị trí bit: 7 6 5 4 3 2 1 0

Trang 9

b Chuyển đổi giữa các hệ thống số:

- Từ nhị phân sang thập phân:

Phương pháp :

Trang 10

b Chuyển đổi giữa các hệ thống số:

- Từ thập lục phân sang nhị phân:

Phương pháp :

Một số thập lục phân là một số gồm 4 bit

Trang 11

b Chuyển đổi giữa các hệ thống số:

- Từ thập lục phân sang nhị phân:

Ví dụ: A5h  1010 0101

FA  ???

53B  ???

Trang 12

- Từ nhị phân sang thập lục phân:

Ví dụ:

Trang 13

Chuyển đổi giữa thập phân và thập lục phân:

Trang 15

d Một số phép toán cơ bản

• Cộng nhị phân

Ví dụ

Trang 16

d Một số phép toán cơ bản

• Trừ nhị phân:

Máy tính không thực hiện được trực tiếp phép trừ Để

thực hiện phép trừ, máy tính thực hiện phép cộng

giữa số bị trừ với số bù 2 của số trừ

Trang 17

Ví dụ 1:Tìm số bù 2 của số 10011101

Ví dụ 2: Thực hiện phép trừ 100 – 25 = ???

Trang 18

Ví dụ 2: Thực hiện phép trừ 100 – 25 = ???

Trang 20

Nếu 1byte biểu diễn một số không dấu thì giá trị của

nó thay đổi từ 0 255

Nếu 1 byte biểu diễn một số có dấu thì giá trị của nó thay đổi từ -128 +127

Trang 21

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

a Mức logic:

Trang 22

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

b Các cổng logic cơ bản và bảng chân lý

Trang 23

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

b Các cổng logic cơ bản và bảng chân lý

Trang 24

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

b Các cổng logic cơ bản và bảng chân lý

Trang 25

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

c Bộ cộng nửa – Bộ cộng đủ

Bộ cộng nửa

Trang 26

Bộ cộng đủ

Trang 27

1.3 Vi xử lý và vi điều khiển

1.3.1 Một số nét khái quát về vi xử lý

a Khái niệm

• Vi xử lý là một IC số chuyên về xử lý dữ liệu, tính toán

dữ liệu và điều khiển theo chương trình Bản thân vi xử lý không có bộ nhớ ROM,RAM

• Hệ thống vi xử lý gồm có vi xử lý, bộ nhớ và các thiết bị

ngoại vi xuất nhập

Trang 28

b Cấu trúc của một hệ vi xử lý:

Trang 31

• ROM:

- Bộ nhớ chỉ đọc được mà không thay đổi được

- Không bị mất khi mất điện

- Chương trình được nạp bởi nhà sản xuất

Trang 32

• BUS dữ liệu

• BUS Địa chỉ

Trang 33

• BUS điều khiển

Trang 34

• CPU:

Trang 36

c Tập lệnh của vi xử lý:

• Lệnh của vi xử lý là một số nhị phân, khi vi xử lý đọc một lệnh thì từ dữ liệu của vi xử lý sẽ yêu cầu vi xử lý thực hiện một công việc đơn giản nào đó hầu hết là

chuyển dữ liệu và xử lý dữ liệu

• Độ dài của một lệnh phụ thuộc độ dài của từ dữ liệu

Vi xử lý 8 bit độ dài lệnh là 8bit,…

Trang 37

c Tập lệnh của vi xử lý:

Một số mã lệnh của 8051:

1110 0101 direct address: chuyển dữ liệu từ ô nhớ của

bộ nhớ trong vào thanh chứa

1111 0101 direct address: chuyển dữ liệu từ thanh

chứa vào ô nhớ của bộ nhớ bên trong

0011 0101 direct address: cộng có nhớ nội dung thanh

chứa với nội dung ô nhớ

Trang 38

c Tập lệnh của vi xử lý:

Một số mã lệnh của 8051:

Trang 39

1.3.2 Vi điều khiển:

Vi điều khiển có chứa ROM,RAM bên trong nó Ngoài ra còn có thể tích hợp thêm một số khối chức năng như Timer – Counter, ADC, UART, … giúp cho vi điều

khiển có thể ứng dụng cho những hệ thống nhỏ

Một số họ vi điều khiển:

Trang 40

1.3.2 Vi điều khiển:

Trang 41

HẾT CHƯƠNG I

Trang 42

VI ĐIỀU KHIỂN AT89C51

Trang 43

2.1 Đặc tính – Cấu trúc – Chức năng các PORT

2.1.1 Đặc tính

Có những đặc điểm chung của họ vi điều khiển MCS – 51:

• 4kByte bộ nhớ FLASH ROM bên trong dùng để lưu chương trình điều khiển Độ bền: 1000 chu kỳ viết/ xóa

• 128 bytes RAM nội

• Có 32 đường xuất nhập 8 bit

• Có 2 Timer/Counter 16 bit

• Có 6 nguồn ngắt

Trang 44

2.1.3 Sơ đồ cấu trúc của vi điều khiển AT89C51

Trang 45

2.1.3 Các chân của vi điều khiển

Trang 46

a Các PORT của vi điều khiển

Sơ đồ chân của AT89C51

Port 2

Có 2 chức năng:

-Khi chỉ dùng bộ nhớ bên trong: P2 làm đường xuất nhập -Khi dùng bộ nhớ bên ngoài: P2 làm bus địa chỉ và dữ liệu cao (AD15 – AD8)

Port 3

nhiều chức

năng

(Xem bảng 2.1)

Trang 47

Chức năng các chân của PORT 3:

• PORT 3 có thể giữ vai trò Port xuất nhập thông thường

• Các chức năng khác:

Bảng 2.1 Chức năng các chân của PORT 3

Trang 48

b Chức năng các chân khác của vi điều khiển

• Chân RST(Chân 9):

- Reset vi điều khiển khi điện áp ở mức cao

- Quá trình Reset chỉ thực hiện được khi điện áp mức cao được duy trì trong hai chu kỳ máy

- Sơ đồ nối chân Reset:

Trang 49

b Chức năng các chân khác của vi điều khiển

• Chân XTAL1 và XTAL2 : được dùng để tạo tần số làm

việc cho vi điều khiển

Có 2 phương pháp tạo tần số làm việc cho vi điều khiển:

Phương pháp 1: Dùng bộ tạo dao động tích hợp bên trong vi

điều khiển  Cần nối thêm dao động thạch anh hoặc bộ

Trang 50

b Chức năng các chân khác của vi điều khiển

• Chân XTAL1 và XTAL2 : được dùng để tạo tần số làm

việc cho vi điều khiển

Có 2 phương pháp tạo tần số làm việc cho vi điều khiển:

Phương pháp 2: Dùng bộ tạo dao động bên ngoài

Tín hiệu dao động được

đưa vào chân XTAL1

Chân XTAL2 không sử

dụng

Trang 51

b Chức năng các chân khác của vi điều khiển

• Chân Vcc (40) đƣợc nối lên nguồn 5V và chân GND (20)

nối mass

• Chân :

- Chức năng là tín hiệu ngõ ra cho phép đọc bộ nhớ chương

trình mở rộng thường nối với chân của bộ nhớ EPROM bên ngoài cho phép đọc mã lệnh

- Tích cực ở mức thấp

- Chỉ dùng khi có sử dụng thêm bộ nhớ bên ngoài, nếu không

có giao tiếp với bộ nhớ ngoài thì bỏ trống

PSEN

OE

Trang 52

b Chức năng các chân khác của vi điều khiển

• Chân : Xác định chương trình được vi điều khiển thực

thi Cụ thể:

- Khi được nối với mức logic 1(+5V): vi điều khiển thực thi

chương trình trong bộ nhớ nội

- Khi được nối với mức logic 0 (0V) : Vi điều khiển thực thi chương trình trong bộ nhớ ngoại

• ALE/PROG (Address Latch Enable/Program):

- Chốt byte thấp của Bus địa chỉ khi thực hiện truy xuất vào

bộ nhớ ngoài

- Cấp xung clock cho các phần cứng khác của hệ thống( =1/6 xung của dao động thạch anh)

- Nhận xung từ bên ngoài trong chế độ lập trình song song

lưu vào bộ nhớ Flash ROM

EA

Trang 54

Mỗi bộ nhớ giao tiếp với CPU qua một bus độc lập

- Ƣu điểm: Giao tiếp nhanh, có thể thay đổi số bit của từng bộ

nhớ mà không ảnh hưởng lẫn nhau

- Nhƣợc: Kiến trúc phức tạp

14-bit bus Program memory

Trang 55

2.2.1.2 Tổ chức bộ nhớ của AT89C51

a Tổ chức bộ nhớ

• AT89C51 có bộ nhớ nội bên trong (Internal memory) và

có thể giao tiếp với bộ nhớ bên ngoài nếu bộ nhớ bên

trong không đủ khả năng lưu giữ chương trình

• Bộ nhớ nội của AT89C51có kiến trúc kiểu Harvard gồm:

- Một bộ nhớ chương trình (Flash Rom): có dung lượng

4Kbyte cho phép xóa và lập trình lại bằng xung điện

- Một bộ nhớ dữ liệu (RAM) có dung lượng 128 byte

Trang 56

2.2.1.2 Tổ chức bộ nhớ của AT89C51

b Bộ nhớ RAM nội

Gồm 128 byte được chia thành 3 vùng:

• Các bank thanh ghi có địa chỉ từ

00H đến 1FH

• RAM truy xuất từng bit có địa chỉ

từ 20H đến 2FH

• RAM đa dụng từ 30H đến 7FH

Trang 57

Vùng nhớ các bank thanh ghi:

Có 32 byte có địa chỉ từ 00h đến 1Fh

- Được chia thành 4 bank:

Register bank 0  register Bank 3

- Mỗi bank thanh ghi gồm 8 thanh ghi:

Ký hiệu từ R0  R7

Câu hỏi:

1 Chức năng của vùng nhớ này là gì?

2 Truy xuất các thanh ghi nhƣ thế nào?

Trang 58

1 Chức năng của vùng nhớ này là gì?

Nếu trong hệ thống có nhiều chương trình

và mỗi chương trình phải sử dụng các thanh

ghi để xử lý dữ liệu thì mỗi một bank có thể

được sử dụng để lưu trữ dữ liệu của một

chương trình nào đó  dữ liệu của chương

trình này không bị mất đi khi dữ liệu chương

trình khác đang được xử lý

Trang 59

2 Truy xuất đến các thanh ghi ở mỗi bank nhƣ thế nào?

- Cách 1: Truy xuất qua địa chỉ của mỗi thanh ghi

 Truy xuất được ngay cả khi bank đã được chọn hoặc

Trang 60

Vùng nhớ đƣợc định địa chỉ từng bit

Gồm 16byte bộ nhớ tương ứng với 128 bit

- Các byte ô nhớ có địa chỉ từ 20H 2FH

- Các bit ô nhớ được định địa chỉ từ 0078

- Cho phép truy xuất từng bit và truy xuất

từng byte

 Dùng lưu trữ những dữ liệu phải xử lý bit

Trang 61

Vùng nhớ đƣợc định địa chỉ từng bit

Gồm 16byte bộ nhớ tương ứng với 128 bit

- Các byte ô nhớ có địa chỉ từ 20H 2FH

- Các bit ô nhớ được định địa chỉ từ 0078

- Cho phép truy xuất từng bit và truy xuất

từng byte

 Dùng lưu trữ những dữ liệu phải xử lý bit

Trang 62

Vùng RAM đa dụng cho phép truy xuất trực tiếp, gián

tiếp

- Gồm 80 byte có địa chỉ từ 30H đến 7FH

- Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất

tự do dùng kiểu định địa chỉ trực tiếp hoặc gián tiếp

Trang 63

c Các thanh ghi có chức năng đặc biệt

(Special Function Registers - SFR)

Các thanh ghi chức năng đặc biệt được định địa chỉ từ 80h

đến FFh bao gồm:

Trang 64

c Các thanh ghi có chức năng đặc biệt

(Special Function Registers - SFR)

Các thanh ghi chức năng đặc biệt được định địa chỉ từ 80h

đến FFh bao gồm:

Trang 65

c Các thanh ghi có chức năng đặc biệt

Trang 66

c Các thanh ghi có chức năng đặc biệt

Thanh ghi A(hay ACC): ở địa chỉ E0 cùng với ALU

thực hiện tất cả các lệnh số học và logic chỉ có hiệu lực đối với thanh ghi A

Thanh ghi B: ở địa chỉ F0h cùng với thanh ghi A thực

hiện các phép toán nhân/chia

MUL AB: nhân 2 số 8 bit không dấu được lưu trong hai

thanh ghi A, B và trả về kết quả 16bit trong đó 8bit byte cao được lưu trong A và 8 bit byte thấp được lưu trong B DIV AB: lấy giá trị trong A chia cho giá trị lưu trong B

kết quả: thương lưu trong A và số dư lưu trong B

Trang 67

c Các thanh ghi có chức năng đặc biệt

Thanh ghi P0, P1, P2, P3: tương ứng là Port 0 ở địa chỉ

80h, Port1 ở địa chỉ 90h, Port 2 ở địa chỉ A0, Port3 ở địa chỉ B0

Các thanh ghi trên cho phép truy xuất từng bit

 Không phải nhớ địa chỉ của từng bit

 Truy xuất bằng tên đã được phần mềm qui định

Ví dụ P0.0

Trang 68

c Các thanh ghi có chức năng đặc biệt

Thanh ghi trạng thái chương trình:

- C: cờ Carry được sử dụng cho các lệnh toán học

C = 1: nếu phép cộng có tràn hoặc phép trừ có mượn

C = 0: nếu phép cộng không tràn hoặc phép trừ không có

mượn

- AC (cờ Carry phụ ) được dùng khi cộng những giá trị

BCD: AC=1 nếu 4 bit thấp lớn hơn 09H, ngược lại AC

=0

- Cờ tràn OV: OV =1 khi phép cộng hoặc trừ cho kết quả

ngoài vùng giá trị cho phép

Trang 69

c Các thanh ghi có chức năng đặc biệt

Thanh ghi DPH (địa chỉ 83) và DPL (địa chỉ 82):

Hai thanh ghi này kết hợp lại tạo thành một thanh ghi 16 bit có

tên là DPTR (Data Pointer) – con trỏ dữ liệu

Chức năng: lưu giữ địa chỉ 16 bit khi truy xuất dữ liệu của bộ

nhớ bên ngoài

Thanh ghi PCON (Power Control): Điều khiển công

suất khi vi điều khiển làm việc hay ở chế độ chờ

Trang 71

NGÔN NGỮ LẬP TRÌNH

Trang 72

3.1 Giới thiệu

- Chương trình

Là một tập hợp các chỉ thị được sắp xếp theo một trật tự nhất định trước nhằm hướng dẫn máy tính thực hiện các thao tác, hành động cần thiết để đáp ứng một mục tiêu đã định trước của con người như truy xuất dữ liệu, tìm kiếm, giải bài toán,…

Trang 73

• Ngôn ngữ máy (machine language)

• Hợp ngữ

• Ngôn ngữ cấp cao

Trang 74

Ngôn ngữ máy (machine language) hay mã máy là

một loại ngôn ngữ lập trình trong đó mọi chỉ thị

đều đƣợc biểu diễn bằng các con số nhị phân 0 và

Trang 75

Ngôn ngữ máy (machine language) của AT89C51

là một tập các số nhị phân 8 bit gồm 256 byte từ

Trang 76

Chu kỳ thực hiện lệnh của vi xử lý:

Trang 77

KHÁI NIỆM

Hợp ngữ ( assemly language) là một ngôn ngữ lập

trình cấp thấp trong đó sử dụng các ký hiệu gợi nhớ để biểu diễn mã lệnh của máy thay cho mã

máy dạng số

Trang 78

TRÌNH HỢP DỊCH

Một tiện ích dùng để dịch một chương trình viết bằng hợp ngữ sang ngôn ngữ máy được gọi là trình hợp

dịch

Trang 79

KHÁI NIỆM

Ngôn ngữ cấp cao là một ngôn ngữ lập trình gần gũi với ngôn ngữ tự nhiên của con người bao gồm các danh từ, động từ, ký hiệu toán học và các thao tác lý luận Các yếu tố này có thể liên kết phối hợp tạo

thành hình thức câu Các câu này được gọi là mệnh

đề của chương trình

Trang 80

TRÌNH BIÊN DỊCH VÀ THÔNG DỊCH

Nhiệm vụ:

Dịch một chương trình được viết bằng ngôn ngữ cấp cao sang ngôn ngữ máy trước khi chương trình được thi hành

Trang 81

• CPU đòi hỏi một số chu kỳ xung đồng hồ nhất định để thực hiện xong một lệnh

• Bộ dao động xác định số chu kỳ xung đồng hồ trong mỗi giây

Ví dụ: tần số dao động 12MHz  12 triệu

xung đồng hồ trong một giây

 Chu kỳ máy là số chu kỳ xung đồng hồ cần

thiết để thực hiện xong một chu kỳ lệnh

Trang 82

• 8051 đòi hỏi 12 chu kỳ xung đồng hồ để thực hiện xong một chu kỳ lệnh

Tần số chu kỳ máy = tần số dao động/12

Thời gian thực hiện một chu kỳ lệnh của

8051:

1/Tần số chu kỳ máy = 12/ Tần số dao động

Trang 83

Ví dụ

Tính chu kỳ máy và thời gian chu kỳ lệnh của

AT89C51 khi dao động:

a) 12Mhz

b) 11.0592MHz

c) 16Mhz

d) 20Mhz

Trang 84

của vi điều khiển AT89C51

Trang 85

OP CODE OP CODE OP CODE

ADDRESS

Thành phần 1

Thành phần 2

Cho biết công việc vi xử lý cần thực hiện

Cho biết thông tin địa chỉ hay vị trí các dữ liệu vi xử lý cần thực hiện

Lệnh 1 từ Địa chỉ ngầm định

Lệnh 2 từ Địa chỉ ngầm định

Lệnh 3 từ Địa chỉ ngầm định

Từ 1

Từ 2

Từ 2

Trang 86

Các kiểu định địa chỉ cho phép định rõ nơi lấy

dữ liệu hoặc nơi nhận dữ liệu tùy thuộc vào

cách thức sử dụng của người lập trình

Kiểu định địa chỉ dùng thanh ghi

Khi cần xử lý dữ liệu được lưu trong một

thanh ghi chỉ cần gọi tên thanh ghi đó trong câu lệnh Mã lệnh chỉ có 1byte

Ví dụ: Mov A, R1

Trang 87

Kiểu định địa chỉ trực tiếp:

Trong câu lệnh địa chỉ của ô nhớ có chứa dữ liệu

cần xử lý được chỉ rõ

Độ dài 2byte: 1byte mã lệnh, 1byte địa chỉ ô nhớ

Ví dụ: Mov A,05H

Trang 88

Kiểu định địa chỉ gián tiếp:

Địa chỉ của ô nhớ cần lấy dữ liệu được lưu trong

một ô nhớ trung gian:

- Địa chỉ các ô nhớ trong RAM nội được lưu

trong thanh ghi R0,R1

- Địa chỉ ô nhớ ngoài được lưu trong thanh ghi

DPTR

- Khi truy xuất dùng kí hiệu @ trước các ô nhớ

trung gian

Ví dụ: Mov A, @R1

Trang 89

Kiểu định địa chỉ tức thời:

Dùng để nạp giá trị cho một thanh ghi hay một ô

nhớ

Dùng kí hiệu # trước hằng số cần nạp

Ví dụ: Mov A,#30H

Trang 90

Kiểu định địa chỉ tương đối:

- Chỉ sử dụng cho các lệnh nhảy

- Nơi nhảy đến bằng địa chỉ lưu trong thanh

ghi PC + giá trị lệch tương đối

- Giá trị lệch tương đối có giá trị từ -128127

- Nơi nhảy đến được xác định bằng nhãn và

trình biên dịch tính toán giá trị lệch tương đối

Trang 93

• Lệnh chuyển dữ liệu từ một thanh ghi vào

thanh ghi A:

- Cú pháp: MOV A,Rn

- Mã lệnh: 1110 1n2n1n0

- Thời gian thực hiện: 1 chu kỳ

- Chức năng: copy nội dung thanh ghi Rn vào

thanh ghi A

- Có 8 lệnh tương ứng với 8 thanh ghi R0R7

Ví dụ: Mov A,R0 ↔ 1110 1111

Ngày đăng: 22/11/2017, 22:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w