Giáo trình vi xử lý
i
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
Giáo trình vi xử lý
ii
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
Giáo trình vi xử lý
iii
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
Giáo trình vi xử lý
iv
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