Giáo trình Vi xử lý, vi điều khiển - Trường ĐHKT Công nghiệp
5. Các học phần học trước
Kỹ thuật điện tử số.
6. Học phần thay thế, học phần tương đương
Vi xử lý – vi điều khiển (trong các chương trình 180 TC và 260 ĐVHT)
7. Mục tiêu của học phần
Sau khi học xong học phần sinh viên phải nắm được cấu trúc phần cứng của
các bộ vi xử lý – vi điều khiển tiêu biểu: x86, 8051; Tổ chức bộ nhớ, tập lệnh, chế
độ địa chỉ và lập trình cho chúng; Biết cách ghép nối với bộ nhớ và thiết bị ngoại vi;
Biết khai thác khả năng ngắt và định thời. Có khả năng thiết kế và xây dựng modul
(bao gồm cả phần cứng và phần mềm) sử dụng vi điều khiển cho bài toán cụ thể.
8. Mô tả vắn tắt nội dung học phần
Tổng quan về các hệ đếm và biểu diễn thông tin trong các hệ vi xử lý – vi
điều khiển. Vi xử lý: Tổng quan về kiến trúc hệ vi xử lý; tổ chức phần cứng của
CPU họ Intel 80x86, các chế độ đánh địa chỉ, tập lệnh, lập trình hợp ngữ (assembly)
cho 80x86 với những bài toán đơn giản; một số vi mạch phụ trợ trong hệ vi xử lý.
Vi điều khiển: Cấu trúc hệ vi điều khiển onchip MCS 8051; lập trình hợp ngữ cho
vi điều khiển; hoạt động định thời, ngắt và truyền thông nối tiếp; giới thiệu một số
họ vi xử lý thông dụng khác. Giới thiệu một số bài toán ứng dụng tiêu biểu.
Tóm tắt nội dung tài liệu: Giáo trình Vi xử lý, vi điều khiển - Trường ĐHKT Công nghiệp
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH BÀI GIẢNG PHÁT CHO SINH VIÊN (LƯU HÀNH NỘI BỘ) Theo chương trình 150 TC thay 180 TC hoặc tương đương Sử dụng cho năm học 2011 – 2012 Tên bài giảng: Vi xử lý – Vi điều khiển Số tín chỉ: 03 BÀI GIẢNG PHÁT CHO SINH VIÊN (LƯU HÀNH NỘI BỘ) Theo chương trình 150 TC thay 180 TC hoặc tương đương Sử dụng cho năm học 2011 – 2012 Tên bài giảng: Vi xử lý – Vi điều khiển Số tín chỉ: 03 Thái Nguyên, ngày 01 tháng 07 năm 2011 Trưởng bộ môn Ths. Nguyễn Tuấn Linh Trưởng khoa Điện Tử PGS. TS. Nguyễn Hữu Công MỤC LỤC CHƯƠNG 1. TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN ...................... 9 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN.....................................10 1.1.1 Tổng quan..............................................................................................................10 1.1.2 Lịch sử phát triển của các bộ xử lý........................................................................11 1.1.3 Vi xử lý và vi điều khiển .......................................................................................12 1.1.4 Ứng dụng của Vi xử lý – vi điều khiển .................................................................13 1.2 Cấu trúc chung của hệ vi xử lý...................................................................................15 1.2.1 Khối xử lý trung tâm (CPU) ..................................................................................16 1.2.2 Hệ thống bus..........................................................................................................17 1.3 Định dạng dữ liệu và biểu diễn thông tin trong hệ vi xử lý – vi điều khiển ...........18 1.3.1 Các hệ đếm ............................................................................................................18 1.3.2 Mã ký tự - Alphanumeric CODE (ASCII, EBCDIC)............................................20 1.3.3 Các phép toán số học trên hệ đếm nhị phân ..........................................................22 CHƯƠNG 2. HỌ VI XỬ LÝ INTEL 80x86....................................................... 23 2.1 Cấu trúc phần cứng của bộ vi xử lý 8086 ..................................................................24 2.1.1 Tổng quan..............................................................................................................24 2.1.2 Cấu trúc bên trong và sự hoạt động.......................................................................24 2.1.3 Mô tả chức năng các chân .....................................................................................31 2.2 Chế độ địa chỉ...............................................................................................................31 2.2.1 Khái niệm chế độ địa chỉ .......................................................................................31 2.2.2 Các chế độ địa chỉ..................................................................................................34 2.3 Tập lệnh Assembly ......................................................................................................37 2.3.1 Giới thiệu chung ....................................................................................................37 2.3.2 Các nhóm lệnh.......................................................................................................38 2.4 Lập trình hợp ngữ (Assembly) cho vi xử lý 80x86....................................................54 2.4.1 Giới thiệu chung về hợp ngữ .................................................................................54 2.4.2 Các bước khi lập trình ...........................................................................................55 2.4.3 Cấu trúc chung của chương trình hợp ngữ ............................................................57 2.4.4 Các cấu trúc điều khiển cơ bản..............................................................................69 2.4.5 Ngắt trong Assembly .............................................................................................72 2.4.6 Các ví dụ................................................................................................................74 2.5 Ghép nối bộ nhớ và thiết bi ngoại vi ..........................................................................80 2.5.1 Ghép nối bộ nhớ ....................................................................................................80 2.5.2 Giải mã địa chỉ.......................................................................................................81 2.5.3 Ghép nối thiết bị ngoại vi ......................................................................................84 2.5.4 Các kiểu giao tiếp vào / ra .....................................................................................84 2.5.5 Giải mã địa chỉ cho thiết bị vào / ra.......................................................................84 2.5.6 Các mạch cổng đơn giản .......................................................................................85 Vi mạch chốt 74LS373:.........................................................................................................85 2.6 Câu hỏi và bài tập........................................................................................................86 CHƯƠNG 3. HỌ VI ĐIỀU KHIỂN 8051........................................................... 89 3.1 Giới thiệu chung ..........................................................................................................90 3.1.1 Ứng dụng của vi điều khiển...................................................................................91 3.1.2 Hoạt động của vi điều khiển. .................................................................................91 3.1.3 Cấu trúc chung của vi điều khiển ..........................................................................92 3.2 Kiến trúc vi điều khiển 8051.......................................................................................97 3.2.1 Chuẩn 8051............................................................................................................97 3.2.2 Chân vi điều khiển 8051........................................................................................99 3.2.3 Cổng vào/ra .........................................................................................................100 3.2.4 Tổ chức bộ nhớ 8051...........................................................................................104 3.2.5 Các thanh ghi chức năng đặc biệt (SFRs - Special Function Registers) ............ 109 3.2.6 Bộ đếm và bộ định thời ....................................................................................... 113 3.2.7 Truyền thông không đồng bộ (UART)................................................................ 113 3.2.8 Ngắt vi điều khiển 8051 ...................................................................................... 114 3.3 Lập trình hợp ngữ cho 8051 ..................................................................................... 114 3.3.1 Các chế độ địa chỉ ............................................................................................... 114 3.3.2 Tập lệnh trong 8051 ............................................................................................ 116 3.3.3 Cấu trúc chung chương trình hợp ngữ cho 8051................................................. 123 3.4 Bộ đếm và bộ định thời ............................................................................................. 126 3.5 Truyền thông nối tiếp................................................................................................ 133 3.6 Xử lý ngắt ................................................................................................................... 140 3.7 Câu hỏi và bài tập cuối chương................................................................................ 147 CHƯƠNG 4. ỨNG DỤNG................................................................................. 151 4.1 Nhấp nháy dãy LED đơn.......................................................................................... 152 4.2 Timer .......................................................................................................................... 155 4.3 Sử dụng Timer T2 ..................................................................................................... 157 4.4 Dùng ngắt ngoài......................................................................................................... 158 4.5 Lập trình ngắt ngoài theo sườn xuống. ................................................................... 159 4.6 Sử dụng LED 7 thanh ............................................................................................... 160 4.6.1 Hiển thị số trên 1 LED 7 thanh ........................................................................... 160 4.6.2 Hiển thị trên nhiều LED 7 thanh ......................................................................... 161 4.7 Thông báo bằng văn bản trên màn hình LCD........................................................ 164 4.8 Nhận dữ liệu qua UART........................................................................................... 169 4.9 Truyền dữ liệu qua UART........................................................................................ 170 4.10 Chương trình con phục vụ truyền thông nối tiếp................................................... 172 4.11 Truyền thông UART cho 8051 bằng phần mềm..................................................... 172 4.12 Ghép nối 8051 với ADC0804, chuyển đổi ADC 8-bit ............................................. 175 4.13 Ghép nối vi điều khiển với bàn phím....................................................................... 177 4.14 Ghép nối vi điều khiển với step motor..................................................................... 179 CHƯƠNG 5. CÁC HỆ VI ĐIỀU KHIỂN TIÊN TIẾN................................... 191 5.1 Atmel AVR................................................................................................................. 192 5.1.1 Lịch sử họ AVR .................................................................................................. 192 5.1.2 Tổng quan về thiết bị........................................................................................... 192 5.1.3 Kiến trúc thiết bị.................................................................................................. 193 5.1.4 Program Memory (Flash) .................................................................................... 193 5.1.5 EEPROM............................................................................................................. 193 5.1.6 Chương trình thực thi .......................................................................................... 194 5.1.7 Tập lệnh............................................................................................................... 194 5.1.8 Tốc độ MCU........................................................................................................ 195 5.1.9 Những đặc tính .................................................................................................... 195 5.2 Vi điều khiển PIC ...................................................................................................... 197 5.3 ARM ........................................................................................................................... 200 Tài liệu tham khảo ................................................................................................ 205 PHỤ LỤC A: Tập lệnh trong 8051....................................................................... 206 PHỤ LỤC B: Chi tiết các thanh ghi chức năng trong 8051 ................................. 210 PHỤ LỤC C: Ngắt ................................................................................................ 216 Danh mục hình ảnh ............................................................................................... 218 Danh mục mã nguồn ............................................................................................. 220 Danh mục bảng ..................................................................................................... 220 Chỉ mục ....................................................................................................... 221 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc CHƯƠNG TRÌNH GIÁO DỤC ĐẠI HỌC NGÀNH ĐÀO TẠO: ĐIỆN – ĐIỆN TỬ, SPKT ĐIỆN – TIN, CƠ ĐIỆN TỬ CHUYÊN NGÀNH: KHỐI NGÀNH ĐIỆN – ĐIỆN TỬ ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN: VI XỬ LÝ – VI ĐIỀU KHIỂN (Học phần bắt buộc) 1. Tên học phần: Vi xử lý – vi điều khiển. 2 . Số tín chỉ: 03; 3(3; 1,5; 6)/12 3. Trình độ cho sinh viên năm thứ: 3 (Điện, Điện tử, SPKT Điện, SPKT Tin) hoặc 4 (Cơ điện tử). 4. Phân bổ thời gian - Lên lớp lý thuyết: 3 (tiết/tuần) x 12 (tuần) = 36 tiết. - Thảo luận: 1,5 (tiết/tuần) x 12 (tuần) = 18 tiết. 5. Các học phần học trước Kỹ thuật điện tử số. 6. Học phần thay thế, học phần tương đương Vi xử lý – vi điều khiển (trong các chương trình 180 TC và 260 ĐVHT) 7. Mục tiêu của học phần Sau khi học xong học phần sinh viên phải nắm được cấu trúc phần cứng của các bộ vi xử lý – vi điều khiển tiêu biểu: x86, 8051; Tổ chức bộ nhớ, tập lệnh, chế độ địa chỉ và lập trình cho chúng; Biết cách ghép nối với bộ nhớ và thiết bị ngoại vi; Biết khai thác khả năng ngắt và định thời. Có khả năng thiết kế và xây dựng modul (bao gồm cả phần cứng và phần mềm) sử dụng vi điều khiển cho bài toán cụ thể. 8. Mô tả vắn tắt nội dung học phần Tổng quan về các hệ đếm và biểu diễn thông tin trong các hệ vi xử lý – vi điều khiển. Vi xử lý: Tổng quan về kiến trúc hệ vi xử lý; tổ chức phần cứng của CPU họ Intel 80x86, các chế độ đánh địa chỉ, tập lệnh, lập trình hợp ngữ (assembly) cho 80x86 với những bài toán đơn giản; một số vi mạch phụ trợ trong hệ vi xử lý. Vi điều khiển: Cấu trúc hệ vi điều khiển onchip MCS 8051; lập trình hợp ngữ cho vi điều khiển; hoạt động định thời, ngắt và truyền thông nối tiếp; giới thiệu một số họ vi xử lý thông dụng khác. Giới thiệu một số bài toán ứng dụng tiêu biểu. 9. Nhiệm vụ của sinh viên 1. Dự lớp ≥ 80 % tổng số thời lượng của học phần. 2. Chuẩn bị thảo luận. 3. Bài tập, Bài tập lớn (dài): Không 10. Tài liệu học tập - Sách, giáo trình chính: [1] Bài giảng “Vi xử lý – vi điều khiển” - Sách tham khảo: [1] Văn Thế Minh, Kỹ thuật vi xử lý, NXB KHKT, 1997. [2] Tống Văn On, Họ vi điều khiển 8051, NXB KH&KT, 2005. [3] Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc và lập trình họ vi điều khiển 8051, NXB KH&KT, 2004. [4] Michael Hordeski, Personal Compute ... ....................................................................................... 186 Hình 4-28. Mạch cảm biến ............................................................................................... 186 Hình 4-29. Khuếch đại và lọc nhiễu................................................................................. 186 Hình 4-30. Bàn phím ........................................................................................................ 186 Hình 4-31.......................................................................................................................... 187 Hình 4-32.......................................................................................................................... 187 Hình 4-33. Hiển thị LCD.................................................................................................. 187 Hình 4-34. Bàn phím ........................................................................................................ 187 Hình 4-35. Khối điều khiển trung tâm.............................................................................. 188 Hình 4-36. Sơ đồ Callgraph.............................................................................................. 188 Hình 5-1 - Atmel AVR ATmega8 PDIP .......................................................................... 192 Hình 5-2 – Các dòng PIC ................................................................................................. 197 220 Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Danh mục mã nguồn Mã nguồn 4-1. Delay......................................................................................................... 153 Mã nguồn 4-2. DelayX...................................................................................................... 153 Mã nguồn 4-3. Nhấp nháy cổng P1................................................................................... 154 Mã nguồn 4-4. Nhấp nháy cổng P1và đảo trạng thái P2.0............................................... 154 Mã nguồn 4-5. Nhấp nháy P1.0........................................................................................ 155 Mã nguồn 4-6. Timer0 tạo xung PWM............................................................................ 155 Mã nguồn 4-7. Timer0 và Timer1 tạo xung PWM dùng ngắt.......................................... 156 Mã nguồn 4-8. Sử dụng Timer 2 ...................................................................................... 158 Mã nguồn 4-9. Lập trình 2 ngắt ngoài.............................................................................. 159 Mã nguồn 4-10. Lập trình ngắt ngoài – bật loa................................................................ 160 Mã nguồn 4-11. Hiển thị LED 7 thanh -1 ........................................................................ 161 Mã nguồn 4-12. Hiển thị LED 7 thanh - 2 ...................................................................... 163 Mã nguồn 4-13. Hiển thị trên nhiều LED 7 thanh ........................................................... 163 Mã nguồn 4-14. Hiển thị LCD ......................................................................................... 169 Mã nguồn 4-15. Nhận dữ liệu nối tiếp ............................................................................. 170 Mã nguồn 4-16. Truyền dữ liệu nối tiếp .......................................................................... 171 Mã nguồn 4-17. Các CTC Truyền-Nhận dữ liệu nối tiếp ................................................ 172 Mã nguồn 4-18. CTC truyền thông nối tiếp bằng phần mềm .......................................... 175 Mã nguồn 4-19. Chuyển đổi ADC (VĐK-ADC0804) ..................................................... 176 Mã nguồn 4-20. Đọc ma trận phím .................................................................................. 179 Mã nguồn 4-21. Điều khiển động cơ bước....................................................................... 180 Mã nguồn 4-22. Chương trình đo nhiệt độ....................................................................... 183 Mã nguồn 4-23. Lập trình cho VĐK tiên tiến .................................................................. 189 Danh mục bảng Bảng 1-1. Giá trị tương ứng giữa các hệ số ........................................................................ 19 Bảng 2-1. Các thanh ghi...................................................................................................... 28 Bảng 2-2.Phối hợp MOD và R/M để tạo ra các chế độ địa chỉ........................................... 33 Bảng 2-3. Các chế độ địa chỉ............................................................................................... 36 Bảng 2-4. Bản đồ bộ nhớ, địa chỉ ngắt của 8086 ................................................................ 60 Bảng 3-1. Chức năng các chân của Port 3........................................................................ 103 Bảng 3-2. Các thanh ghi chức năng đặc biệt ..................................................................... 105 Bảng 3-3. Địa chỉ RAM nội 8051 ..................................................................................... 106 Bảng 3-4. ký hiệu sử dụng mô tả lệnh............................................................................... 117 Bảng 3-5. Các lệnh vận chuyển dữ liệu ............................................................................ 120 Bảng 3-6. Các lệnh thao tác bit và đọc cổng.................................................................... 120 Bảng 3-7. Lệnh đọc cổng .................................................................................................. 121 Bảng 3-8. Đọc chốt trong của cổng ra.............................................................................. 121 Bảng 3-9. Nhảy vô điều kiện............................................................................................. 122 Bảng 3-10. Các toán tử...................................................................................................... 124 Bảng 3-11. Chế độ hoạt động của Timer/Counter ............................................................ 127 Bảng 3-12. Một số giá trị thường dùng trong truyền thông nối tiếp ................................. 139 Bộ môn Kỹ thuật máy tính – Khoa Điện tử 221 Trường ĐH Kỹ thuật Công nghiệp Chỉ mục 74LS245 ...............................................85 74LS373 ...............................................85 ACALL...............................................123 Accumulator .......................................109 ADC......................................................39 ADD .....................................................40 ALU......................................................24 AND .....................................................42 ASCII....................................................21 AT89C51 ..............................................99 BCD......................................................18 biến .......................................................63 BIU .......................................................25 Bộ đếm................................................113 bộ định thời.........................................113 bus.........................................................17 Bus địa chỉ ............................................17 Bus điều khiển ......................................17 Bus dữ liệu............................................17 Các bước khi lập trình ..........................55 Các hệ đếm ...........................................18 CALL............................................52, 122 Cấu trúc ................................................24 cấu trúc điều khiển................................69 chế độ địa chỉ ..................................31, 34 CHẾ ĐỘ ĐỊA CHỈ CHUỖI..................36 CHẾ ĐỘ ĐỊA CHỈ CỔNG ...................37 CHẾ ĐỘ ĐỊA CHỈ GIÁN TIẾP...........35 CHẾ ĐỘ ĐỊA CHỈ THANH GHI ........34 CHẾ ĐỘ ĐỊA CHỈ TRỰC TIẾP ..........35 CHẾ ĐỘ ĐỊA CHỈ TỨC THÌ ..............34 CHẾ ĐỘ ĐỊA CHỈ TƯƠNG ĐỐI ........35 Chương trình con..................................65 CMP......................................................46 cờ ..........................................................29 Cổng vào/ra ........................................100 CPU ................................................16, 94 CU.........................................................24 DB.......................................................123 DEC ......................................................40 Delay...................................................153 Địa chỉ chỉ số ......................................115 Địa chỉ gián tiếp..................................115 Địa chỉ theo thanh ghi.........................114 Địa chỉ trực tiếp ..................................115 Địa chỉ tức thời ...................................114 Địa chỉ vật lý ........................................29 DIV .......................................................40 DPTR..................................................111 EEPROM..............................................93 EQU.................................................... 124 EU................................................... 25, 26 FOR ...................................................... 70 Giải mã địa chỉ ..................................... 84 Gray Code ............................................ 19 hằng ...................................................... 63 Hợp ngữ................................................ 54 I/O Ports ............................................... 94 IF – THEN............................................ 69 IN .......................................................... 38 INC ....................................................... 40 INT ....................................................... 53 IRET ..................................................... 53 JA/JNBE............................................... 47 JAE/JNB/JNC....................................... 47 JB/JC/JNAE ......................................... 48 JBE/JNA............................................... 48 JE/JZ..................................................... 49 JMP....................................................... 49 JNE/JNZ ............................................... 50 Khối xử lý trung tâm ...................... 16, 17 Khung chương trình ............................. 62 kiến trúc của một vi xử lý..................... 15 Kiến trúc vi điều khiển 8051 ................ 97 LCALL ............................................... 123 Lệnh bó................................................. 67 LJMP .................................................. 122 LOOP ................................................... 51 LOOPE/LOOPZ ................................... 51 Macro ................................................... 67 máy móc dân dụng ............................... 14 máy tính cổ điển ................................... 15 MODEL................................................ 58 Một số hàm mẫu................................. 153 MOV..................................................... 38 MUL ..................................................... 41 NEG...................................................... 41 Ngắt ...................................................... 72 Ngắt 8051 ........................................... 114 Nhà thông minh .................................... 14 NOP...................................................... 53 NOT...................................................... 42 OR ........................................................ 42 OUT...................................................... 38 PC:Program Counter ............................ 94 PCON ................................................. 112 phần cứng bộ xử lý ............................... 24 POP....................................................... 39 PROC ................................................... 65 PSW.................................................... 110 222 Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp PUSH.................................................... 39 quảng cáo.............................................. 14 RAM..................................................... 93 RCL ...................................................... 43 RCR...................................................... 43 Registers ............................................... 24 REPEAT............................................... 71 RET ...................................................... 54 ROL...................................................... 44 ROM..................................................... 92 ROR...................................................... 44 rs232 ................................................... 113 SAL ...................................................... 45 sản phẩm công nghiệp .......................... 14 sản phẩm giải trí ................................... 14 SBUF.................................................. 111 SFR............................................... 94, 109 SHL ...................................................... 45 SHR ...................................................... 45 SJMP .................................................. 122 Sơ đồ chân 8086/8088.......................... 31 Sơ đồ khối hệ vi xử lý .......................... 16 STACK................................................. 60 STC ...................................................... 54 SUB...................................................... 41 Tập lệnh Assembly............................... 37 Tên ..................................................... 124 thanh ghi............................................... 27 thanh ghi chỉ số .................................... 28 thanh ghi đoạn...................................... 28 thiết bị tự động ..................................... 13 thiết bị y tế............................................ 14 Timer Mode........................................ 129 Timer Register.................................... 111 TMOD................................................ 127 Tổ chức bộ nhớ 8051 ......................... 104 Toán tử ................................................. 64 từ khóa................................................ 125 UART................................................. 113 ứng dụng của vi điều khiển .................. 13 Ứng dụng của vi điều khiển ................. 91 WHILE................................................. 70 XOR ..................................................... 46
File đính kèm:
- giao_trinh_vi_xu_ly_vi_dieu_khien_truong_dhkt_cong_nghiep.pdf