Giáo trình Vi điều khiển – ThS. Phạm Hùng Kim Khánh.pdf (vi điều khiển) | Tải miễn phí

Giáo trình Vi điều khiển – ThS. Phạm Hùng Kim Khánh

pdf

Số trang Giáo trình Vi điều khiển - ThS. Phạm Hùng Kim Khánh
194
Cỡ tệp Giáo trình Vi điều khiển - ThS. Phạm Hùng Kim Khánh


2 MB
Lượt tải Giáo trình Vi điều khiển - ThS. Phạm Hùng Kim Khánh
4
Lượt đọc Giáo trình Vi điều khiển - ThS. Phạm Hùng Kim Khánh
51
Đánh giá Giáo trình Vi điều khiển - ThS. Phạm Hùng Kim Khánh

4.1 (
4 lượt)

1942 MB

Nhấn vào bên dưới để tải tài liệu

Đang xem trước 10 trên tổng 194 trang, để tải xuống xem vừa đủ hãy nhấn vào bên trên

Chủ đề liên quan

Tài liệu tương tự

Nội dung

BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ
THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
— oOo —

GIÁO TRÌNH

VI ĐIỀU KHIỂN
Tác giả: ThS. PHẠM HÙNG KIM KHÁNH

03/2008

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình vi xử lý

LỜI NÓI ĐẦU

Giáo trình Vi điều khiển được biên soạn nhằm cung cấp cho sinh viên kiến thức
về họ vi điều khiển MCS-51, cách thức lập trình điều khiển, nạp chương trình
và thiết kế phần cứng điều khiển thiết bị.
Giáo trình được sử dụng cho khóa học 45 tiết dành cho sinh viên hệ đại học
Khoa Điện Điện tử trường Đại học Kỹ thuật Công nghệ TPHCM.
Bố cục giáo trình gồm 4 chương dựa theo đề cương môn học Kỹ thuật Vi điều
khiển dành cho sinh viên ngành Điện Tử Viễn Thông:
Chương 1. Tổng quan về họ vi điều khiển MCS-51
Chương 2. Lập trình hợp ngữ
Chương 3. Các hoạt động của họ vi điều khiển MCS-51
Chương 4. Các ứng dụng
Phụ lục 1: Tóm tắt tập lệnh
Phụ lục 2: Mô tả tập lệnh
PHẠM HÙNG KIM KHÁNH

i

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình vi xử lý

MỤC LỤC
Chương 1: Tổng quan về họ MCS-51 ……………………………………………………………….. 1
1. Giới thiệu ……………………………………………………………………………………………………… 1
2. Vi điều khiển AT89C51 …………………………………………………………………………………. 1
2.1. Sơ đồ ……………………………………………………………………………………………….. 2
2.2. Định thì chu kỳ máy ………………………………………………………………………….. 6
2.3. Tổ chức bộ nhớ …………………………………………………………………………………. 8
2.4. Các thanh ghi chức năng đặc biệt (SFR – Special Function Registers) …… 17
2.5. Cấu trúc port …………………………………………………………………………………… 21
2.6. Hoạt động Reset ……………………………………………………………………………… 22
2.7. Các vấn đề khác ………………………………………………………………………………. 23
Bài tập chương 1 ……………………………………………………………………………………………… 34
Chương 2: Lập trình hợp ngữ ………………………………………………………………………… 35
1. Các phương pháp định địa chỉ ……………………………………………………………………….. 35
2. Các vấn đề liên quan khi lập trình hợp ngữ ……………………………………………………… 36
2.1. Cú pháp lệnh …………………………………………………………………………………… 36
2.2. Khai báo dữ liệu ……………………………………………………………………………… 37
2.3. Các toán tử ……………………………………………………………………………………… 38
2.4. Cấu trúc chương trình ………………………………………………………………………. 39
3. Tập lệnh ……………………………………………………………………………………………………… 41
3.1. Nhóm lệnh chuyển dữ liệu ……………………………………………………………….. 41
3.2. Nhóm lệnh xử lý bit…………………………………………………………………………. 46
3.3. Nhóm lệnh chuyển điều khiển …………………………………………………………… 47
3.4. Nhóm lệnh logic ……………………………………………………………………………… 51
3.5. Nhóm lệnh số học ……………………………………………………………………………. 53
Bài tập chương 2 ……………………………………………………………………………………………… 56
Chương 3: Các hoạt động ………………………………………………………………………………. 57
1. Hoạt động định thời (Timer / Counter) …………………………………………………………… 57
1.1. Giới thiệu ……………………………………………………………………………………….. 57
1.2. Hoạt động Timer / Counter ………………………………………………………………. 57
1.3. Các thanh ghi điều khiển hoạt động …………………………………………………… 58
1.3.1. Thanh ghi điều khiển timer (Timer/Counter Control Register)…… 58
1.3.2. Thanh ghi chế độ timer (TMOD – Timer/Counter Mode) …………. 59
ii

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình vi xử lý

1.4. Các chế độ hoạt động ………………………………………………………………………. 59
1.4.1. Chế độ 0 ……………………………………………………………………………… 60
1.4.2. Chế độ 1 ……………………………………………………………………………… 60
1.4.3. Chế độ 2 ……………………………………………………………………………… 61
1.4.4. Chế độ 3 ……………………………………………………………………………… 61
1.5. Timer 2 ………………………………………………………………………………………….. 62
1.5.1. Các thanh ghi điều khiển Timer 2 ………………………………………….. 62
1.5.2. Chế độ capture …………………………………………………………………….. 64
1.5.3. Chế độ tự động nạp lại ………………………………………………………….. 64
1.5.4. Chế độ tạo xung clock ………………………………………………………….. 65
1.5.5. Chế độ tạo tốc độ baud …………………………………………………………. 66
1.6. Các ví dụ ………………………………………………………………………………………… 67
2. Cổng nối tiếp (Serial port) …………………………………………………………………………….. 71
2.1. Các thanh ghi điều khiển hoạt động …………………………………………………… 72
2.1.1. Thanh ghi SCON (Serial port controller) ………………………………… 72
2.1.2. Thanh ghi BDRCON (Baud Rate Control Register) …………………. 73
2.2. Tạo tốc độ baud ………………………………………………………………………………. 73
2.2.1. Tạo tốc độ baud bằng Timer 1 ……………………………………………….. 74
2.2.2. Tạo tốc độ baud bằng Timer 2 ……………………………………………….. 76
2.2.3. Bộ tạo tốc độ baud nội (Internal Baud Rate Generator) …………….. 77
2.3. Truyền thông đa xử lý ……………………………………………………………………… 77
2.4. Nhận dạng địa chỉ tự động ……………………………………………………………….. 78
2.5. Kiểm tra lỗi khung …………………………………………………………………………… 79
2.6. Các ví dụ ………………………………………………………………………………………… 79
3. Ngắt (Interrupt) ……………………………………………………………………………………………. 81
3.1. Các thanh ghi điều khiển hoạt động …………………………………………………… 82
3.1.1. Thanh ghi IE (Interrupt Enable) …………………………………………….. 82
3.1.2. Thanh ghi IP (Interrupt Priority) ……………………………………………. 82
3.1.3. Thanh ghi TCON (Timer/Counter Control) …………………………….. 83
3.2. Xử lý ngắt ………………………………………………………………………………………. 84
3.3. Ngắt do bộ định thời ………………………………………………………………………… 86
3.4. Ngắt do cổng nối tiếp ………………………………………………………………………. 89
3.5. Ngắt ngoài ……………………………………………………………………………………… 91
Bài tập chương 3 ……………………………………………………………………………………………… 94
iii

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình vi xử lý

Chương 4: Các ứng dụng dựa trên họ vi điều khiển MCS-51…………………………… 95
1. Điều khiển Led đơn ……………………………………………………………………………………… 95
2. Điều khiển Led 7 đoạn …………………………………………………………………………………. 98
2.1. Cấu trúc và bảng mã hiển thị dữ liệu trên Led 7 đoạn ………………………….. 98
2.2. Các phương pháp hiển thị dữ liệu ……………………………………………………. 100
2.2.1. Phương pháp quét ………………………………………………………………. 100
2.2.2. Phương pháp chốt ………………………………………………………………. 104
3. Điều khiển ma trận Led ………………………………………………………………………………. 107
4. Điều khiển động cơ bước…………………………………………………………………………….. 112
5. Điều khiển LCD (Liquid Crystal Display) …………………………………………………….. 115
6. Giao tiếp với PPI8255 ………………………………………………………………………………… 129
Bài tập chương 4 ……………………………………………………………………………………………. 135
Phụ lục 1: Soạn thảo và nạp chương trình …………………………………………………….. 136
Phụ lục 2: Mô phỏng bằng Proteus ……………………………………………………………….. 181
Phụ lục 3: Tóm tắt tập lệnh ………………………………………………………………………….. 191
Phụ lục 4: Mô tả tập lệnh ……………………………………………………………………………… 195

iv

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình Vi điều khiển

Tổng quan về vi điều khiển MCS-51

Chương 1: TỔNG

QUAN VỀ VI ĐIỀU
KHIỂN MCS-51

Chương này giới thiệu tổng quan về họ vi điều khiển MCS-51(chủ yếu trên
AT89C51): cấu trúc phần cứng, sơ đồ chân, các thanh ghi, đặc tính lập trình và các
đặc tính về điện.

1. Giới thiệu
Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC
thiết kế cho các ứng dụng hướng điều khiển. Các IC này chính là một hệ thống vi xử
lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ, các mạch
giao tiếp, điều khiển ngắt.
MCS-51 là họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set
Computer), có độ dài và thời gian thực thi của các lệnh khác nhau. Tập lệnh cung cấp
cho MCS-51 có các lệnh dùng cho điều khiển xuất / nhập tác động đến từng bit.
MCS-51 bao gồm nhiều vi điều khiển khác nhau, bộ vi điều khiển đầu tiên là
8051 có 4KB ROM, 128 byte RAM và 8031, không có ROM nội, phải sử dụng bộ
nhớ ngoài. Sau này, các nhà sản xuất khác như Siemens, Fujitsu, … cũng được cấp
phép làm nhà cung cấp thứ hai.
MCS-51 bao gồm nhiều phiên bản khác nhau, mỗi phiên bản sau tăng thêm
một số thanh ghi điều khiển hoạt động của MCS-51.

2. Vi điều khiển AT89C51
AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS
có các đặc tính như sau:

4 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả
năng tới 1000 chu kỳ ghi xoá
Tần số hoạt động từ: 0Hz đến 24 MHz
3 mức khóa bộ nhớ lập trình
128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bit.
2 bộ Timer/counter 16 Bit.
6 nguồn ngắt.
Giao tiếp nối tiếp điều khiển bằng phần cứng.
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoài.
Cho phép xử lý bit.
210 vị trí nhớ có thể định vị bit.
4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia.

Phạm Hùng Kim Khánh

Trang 1

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình Vi điều khiển

Tổng quan về vi điều khiển MCS-51

Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down).

Ngoải ra, một số IC khác của họ MCS-51 có thêm bộ định thời thứ 3 và 256
byte RAM nội.

2.1.

Sơ đồ

VCC

P0.0 – P0.7

P2.0 – P2.7

PORT 0 DRIVERS

PORT 2 DRIVERS

PORT O
LATCH

PORT 2
LATCH

RAM ADDR
REGISTER

VSS

RAM

ROM

PROGRAM
ADDR REGISTER
STACK
POINTER

ACC
PCON

SCON TMOD

T2CON* TH0
TMP2

TMP1

B
REGISTER

TL1

TH2*

RCAP2L* SBUF
ALU

TL0

TH1

TL2*

RCAP2H*

IE

IP

IINTERRUPT SERIAL PORT AND
TIMER BLOCKS

EA

TIMING AND
CONTROL

RST

INSTRUCTION
REGISTER

PSW
PSEN
ALE

BUFFER

TCON

PC
INCREAMENTER

PROGRAM
COUNTER

DPTR

PORT 1 LATCH

PORT 3 LATCH

PORT 1
DRIVER

PORT 3
DRIVER

OSC

XTAL 1

XTAL 2

P1.0 – P1.7

P3.0 – P3.7

Note: * for Timer 2 only

Hình 1.1 – Sơ đồ khối của AT89C51
Phạm Hùng Kim Khánh

Trang 2

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình Vi điều khiển

Tổng quan về vi điều khiển MCS-51

AT89C51 gồm có 40 chân, mô tả như sau:

1
2
3
4
5
6
7
8
19
18

P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
XTAL1
XTAL2
EA/VPP
RST

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15

P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
ALE/PROG
PSEN

21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
30
29

20

31
9

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

GND

39
38
37
36
35
34
33
32

VCC

40

AT89C51

Hình 1.2 – Sơ đồ chân của AT89C51
™ Port 0:
Port 0 là port có 2 chức năng ở các chân 32 – 39 của AT89C51:

Chức năng IO (xuất / nhập): dùng cho các thiết kế nhỏ. Tuy nhiên, khi dùng
chức năng này thì Port 0 phải dùng thêm các điện trở kéo lên (pull-up), giá trị
của điện trở phụ thuộc vào thành phần kết nối với Port.
Khi dùng làm ngõ ra, Port 0 có thể kéo được 8 ngõ TTL.
Khi dùng làm ngõ vào, Port 0 phải được set mức logic 1 trước đó.

Chức năng địa chỉ / dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi hỏi phải sử
dụng bộ nhớ ngoài thì Port 0 vừa là bus dữ liệu (8 bit) vừa là bus địa chỉ (8 bit
thấp).

Ngoài ra khi lập trình cho AT89C51, Port 0 còn dùng để nhận mã khi lập trình
và xuất mà khi kiểm tra (quá trình kiểm tra đòi hỏi phải có điện trở kéo lên).

Phạm Hùng Kim Khánh

Trang 3

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình Vi điều khiển

Tổng quan về vi điều khiển MCS-51

™ Port 1:
Port1 (chân 1 – 8) chỉ có một chức năng là IO, không dùng cho mục đích khác
(chỉ trong 8032/8052/8952 thì dùng thêm P1.0 và P1.1 cho bộ định thời thứ 3). Tại
Port 1 đã có điện trở kéo lên nên không cần thêm điện trở ngoài.
Port 1 có khả năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa chỉ thấp
trong quá trình lập trình hay kiểm tra.
Khi dùng làm ngõ vào, Port 1 phải được set mức logic 1 trước đó.
™ Port 2:
Port 2 (chân 21 – 28) là port có 2 chức năng:

Chức năng IO (xuất / nhập): có khả năng kéo được 4 ngõ TTL.

Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài có địa chỉ
16 bit. Khi đó, Port 2 không được dùng cho mục đích IO.
Khi dùng làm ngõ vào, Port 2 phải được set mức logic 1 trước đó.
Khi lập trình, Port 2 dùng làm 8 bit địa chỉ cao hay một số tín hiệu điều khiển.

™ Port 3:
Port 3 (chân 10 – 17) là port có 2 chức năng:

Chức năng IO: có khả năng kéo được 4 ngõ TTL.
Khi dùng làm ngõ vào, Port 3 phải được set mức logic 1 trước đó.

Chức năng khác: mô tả như bảng 1.1
Bảng 1.1: Chức năng các chân của Port 3
Bit Tên
P3.0 RxD
P3.1 TxD

Chức năng
Ngõ vào port nối tiếp
Ngõ ra port nối tiếp

P3.2 INT0 Ngắt ngoài 0
P3.3 INT1

Ngắt ngoài 1

P3.4 T0
P3.5 T1

Ngõ vào của bộ định thời 0
Ngõ vào của bộ định thời 1

P3.6 WR

Tín hiệu điều khiển ghi dữ liệu lên bộ nhớ ngoài.

P3.7 RD

Tín hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoài.

Phạm Hùng Kim Khánh

Trang 4

Sưu tầm bởi: www.daihoc.com.vn

Giáo trình Vi điều khiển

Tổng quan về vi điều khiển MCS-51

™ Nguồn:
Chân 40: VCC = 5V ± 20%
Chân 20: GND
™ PSEN (Program Store Enable):

PSEN (chân 29) cho phép đọc bộ nhớ chương trình mở rộng đối với các ứng
dụng sử dụng ROM ngoài, thường được nối đến chân OC (Output Control) của
ROM để đọc các byte mã lệnh. PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy
lệnh.Trong quá trình này, PSEN sẽ tích cực 2 lần trong 1 chu kỳ máy.
Mã lệnh của chương trình được đọc từ ROM thông qua bus dữ liệu (Port0) và
bus địa chỉ (Port0 + Port2).
Khi 8951 thi hành chương trình trong ROM nội, PSEN sẽ ở mức logic 1.
™ ALE/ PROG (Address Latch Enable / Program):
ALE/ PROG (chân 30) cho phép tách các đường địa chỉ và dữ liệu tại Port 0
khi truy xuất bộ nhớ ngoài. ALE thường nối với chân Clock của IC chốt (74373,
74573).
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có
thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Xung này có thể
cấm bằng cách set bit 0 của SFR tại địa chỉ 8Eh lên 1. Khi đó, ALE chỉ có tác dụng
khi dùng lệnh MOVX hay MOVC. Ngoài ra, chân này còn được dùng làm ngõ vào
xung lập trình cho ROM nội ( PROG ).
™ EA /VPP (External Access) :
EA (chân 31) dùng để cho phép thực thi chương trình từ ROM ngoài. Khi nối
chân 31 với Vcc, AT89C51 sẽ thực thi chương trình từ ROM nội (tối đa 8KB), ngược
lại thì thực thi từ ROM ngoài (tối đa 64KB).

Ngoài ra, chân EA được lấy làm chân cấp nguồn 12V khi lập trình cho ROM.
™ RST (Reset):
RST (chân 9) cho phép reset AT89C51 khi ngõ vào tín hiệu đưa lên mức 1
trong ít nhất là 2 chu kỳ máy.
™ X1,X2:
Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối thêm thạch
anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch anh thường sử dụng cho
AT89C51 là 12Mhz.
Phạm Hùng Kim Khánh

Trang 5

Sưu tầm bởi: www.daihoc.com.vn

Source: https://dvn.com.vn
Category: Phụ Kiện

Alternate Text Gọi ngay