Chương 1: KIẾN TRÚC HỆ VI XỬ LÝ (VXL). 1.1. Đơn vị xử lý trung tâm (CPU). 6 1.2. Quá trình tìm nạp lệnh và thực thi lệnh của CPU. 7 1.3. Bộ nhớ trung tâm của hệ VXL. 8 1.3.1. Bộ nhớ chỉ đọc. 8 1.3.2. Bộ nhớ truy cập ngẫu nhiên. 9 1.4. Các thiết bị xuất/nhập. 9 1.5. Cấu trúc kênh chung của hệ VXL. 9
Chương 2. BỘ VI ĐIỀU KHIỂN AT89C51 (80C51). 2.1. Giới thiệu chung 2.2. Sự khác nhau giữa bộ VXL và bộ Vi điều khiển (VĐK). 11 2.3. Sơ đồ khối. 13 2.4. Sơ đồ chân tín hiệu của 80C51/AT89C51. 15 2.5. Chức năng các thành phần của AT89C51. 17 2.5.1. Các thanh ghi chức năng đặc biệt. 17 2.5.1.1. Thanh ghi ACC. 19 2.5.1.2. Thanh ghi B. 19 2.5.1.3. Thanh ghi SP. 19 2.5.1.4. Thanh ghi DPTR . 20 2.5.1.5. Các cổng vào/ ra dữ liệu (Ports 0 to 3). 20 2.5.1.6. Thanh ghi SBUF . 20 2.5.1.7. Các Thanh ghi Timer. 20 2.5.1.8. Các thanh ghi điều khiển. 20 2.5.1.9. Thanh ghi PSW. 20 2.5.1.10. Thanh ghi PCON. 21 2.5.1.11. Thanh ghi IE. 22 2.5.1.12. Thanh ghi IP. 22 2.5.1.13. Thanh ghi TCON. 23 2.5.1.14. Thanh ghi TMOD. 23 2.5.1.15. Thanh ghi SCON. 24
2.5.2. Khối tạo thời gian và bộ đếm (Timer/Counter). 25 2.5.3. Bộ nhớ chương trình và bộ nhớ dữ liệu nội trú. 28 2.5.3.1. Bộ nhớ chương trình nội trú. 29 2.5.3.2. Bộ nhớ dữ liệu nội trú. 30 2.5.3.2.1. Vùng nhớ 128 Byte thấp. 30 2.5.3.2.2. Vùng nhớ dành cho SFR. 31 2.5.3.2.3. Các lệnh truy cập bộ nhớ dữ liệu nội trú. 31 2.5.4. Bộ nhớ chương trình và bộ nhớ dữ liệu ngoại trú. 34 2.5.4.1. Bộ nhớ chương trình ngoại trú. 34 2.5.4.2. Bộ nhớ dữ liệu ngoại trú. 35 2.5.5. Cơ chế ngắt trong On-chip AT89C51. 38 2.5.5.1. Phân loại ngắt trong On-chip. 38 2.5.5.2. Các bước thực hiện ngắt. 39 2.5.5.3. Mức ngắt ưu tiên trong on-chip. 40 2.5.5.4. Nguyên lý điều khiển ngắt của AT89. 40 2.5.5.4.1.Các ngắt ngoài. 42 2.5.5.4.2. Vận hành Single-Step. 42 2.5.6. Nguyên lý truyền tin nối tiếp của AT89C51. 43 2.5.6.1. Phương thức truyền tin nối tiếp. 43 2.5.6.2. Liên lạc đa xử lý . 44 2.5.6.3. Các tốc độ Baud. 45 2.5.6.4. Sử dụng Timer 1 để tạo ra các tốc độ Baud . 45 2.5.6.5. Hoạt động của chế độ 0. 46 2.5.6.6. Hoạt động của chế độ 1. 48 2.5.6.7. Hoạt động của chế độ 2 và 3. 50 2.5.7. Nguyên lý khởi động của On-chip AT89C51. 54 2.5.8. Mạch dao động. 57 2.5.9. Chế độ nguồn giảm và chế độ nghỉ. 58 2.5.11. Bảo vệ chương trình. 59
Chương 3: TẬP LỆNH CỦA HỌ VĐK AT89/80C51. 3.1. Nhóm lệnh di chuyển dữ liệu. 61 3.1.1. Lệnh MOV dạng Byte. 61 3.1.2. Lệnh MOV dạng Bit. 62 3.1.3. Lệnh MOV dạng Word. 62 3.1.4. Lệnh chuyển byte mã lệnh. 63 3.1.5. Lệnh chuyển dữ liệu ra ngoài. 63 3.1.6. Lệnh chuyển số liệu vào ngăn xếp. 64 3.1.7. Lệnh chuyển số liệu ra khỏi ngăn xếp . 64 3.1.8. Hoán chuyển dữ liệu. 64 3.1.9. Hoán chuyển 4 bit thấp. 64 3.2. Nhóm lệnh tính toán số học. 65 3.2.1. Lệnh thực hiện phép cộng. 65 3.2.2. Lệnh cộng có nhớ. 65 3.2.3. Lệnh trừ có mượn. 66 3.2.4. Lệnh tăng lên 1 đơn vị. 66 3.2.5. Lệnh giảm 1 đơn vị. 67 3.2.6. Lệnh tăng con trỏ dữ liệu . 67 3.2.7. Lệnh thực hiện phép nhân. 68 3.2.8. Lệnh thực hiện phép chia . 68 3.2.9. Hiệu chỉnh số thập phân. 68 3.3. Nhóm lệnh tính toán logic. 69 3.3.1. Lệnh AND cho các biến 1 byte. 69 3.3.2. Lệnh AND cho các biến 1 bit. 69 3.3.3. Lệnh OR cho các biến 1 byte. 70 3.3.4. Lệnh OR cho các biến 1 bit. 70 3.3.5. Lệnh X-OR cho các biến 1 byte. 71 3.3.6. Lệnh dịch trái thanh ghi A. 71 3.3.7. Lệnh dịch trái thanh ghi A cùng với cờ nhớ. 71 3.3.8. Lệnh dịch phải thanh ghi A. 72 3.3.9. Lệnh dịch phảii thanh ghi A cùng với cờ nhớ. 72 3.3.10. Lệnh tráo đổi nội dung hai nửa byte của A. 72 3.4. Nhóm lệnh rẽ nhánh chương trình. 73 3.4.1. Lệnh gọi tuyệt đối . 73 3.4.2. Lệnh gọi dài. 73 3.4.3. Lệnh quay trở lại từ chương trình con. 74 3.4.4. Lệnh quay trở lại từ ngắt. 74 3.4.5. Lệnh nhảy gián tiếp. 75 3.4.6. Lệnh nhảy nếu 1 bit được thiết lập. 75 3.4.7. Lệnh nhảy nếu 1 bit không được thiết lập. 75 3.4.8. Lệnh nhảy nếu 1 bit được thiết lập và xoá bit đó. 76 3.4.9. Lệnh nhảy nếu cờ nhớ được thiết lập. 76 3.4.10. Lệnh nhảy nếu cờ nhớ không được thiết lập. 77 3.4.11. Lệnh nhảy nếu thanh ghi A bằng 0. 77 3.4.12. Lệnh nhảy nếu thanh ghi A khác 0. 77 3.4.13. Lệnh nhảy khi so sánh 2 toán hạng. 78 3.4.14. Lệnh giảm và nhảy. 79 3.4.15. Lệnh tạm ngừng hoạt động. 79 3.5. Nhóm lệnh điều khiển biến logic. 80 3.5.1. Lệnh xoá bit. 80 3.5.2. Lệnh xoá thanh ghi tích luỹ. 80 3.5.3. Lệnh thiết lập bit. 80 3.5.4. Lệnh lấy bù của bit. 81 3.5.5. Lệnh lấy bù của thanh ghi tích luỹ. 81
Phụ lục A : TRA CỨU NHANH TẬP LỆNH Bảng 1. Các lệnh toán học của bộ VĐK họ ATMEL. 82 Bảng 2. Các lệnh chuyển đổi dữ liệu để truy cập vùng nhớ dữ liệu trong. 82 Bảng 3. Các lệnh số học. 83 Bảng 4. Các lệnh đại số. 84 Bảng 5. Các lệnh chuyển đổi dữ liệu để truy cập RAM ngoài. 84 Bảng 6. Các lệnh chuyển Byte mã lệnh. 85 Bảng 7. Các lệnh nhảy không điều kiện trong Flash Microcontrollers. 85 Bảng 8. Các lệnh nhảy có điều kiện. 85
Phụ lục B : CÁC HỆ THỐNG SỐ 1. Bảng chuyển đổi hệ thập phân/nhị phân 86 2. Bảng mã thập lục phân 87 3. Hệ thống số có dấu 88
TÀI LIỆU THAM KHẢO.………………………………………………… 89
Giáo trình vi điều khiển-Đại Học Sư phạm kỹ thuật Hưng Yên