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ứ
Trang 1LỜ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
Trang 2MỤ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
Trang 31.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
Trang 4Chươ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