Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 225 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
225
Dung lượng
12,45 MB
Nội dung
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 tương đương Sử dụng cho năm học 2011 – 2012 Tên 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 tương đương Sử dụng cho năm học 2011 – 2012 Tên giảng: Vi xử lý – Vi điều khiển Số tín chỉ: 03 Trưởng môn Ths Nguyễn Tuấn Linh Thái Nguyên, ngày 01 tháng 07 năm 2011 Trưởng khoa Điện Tử PGS TS Nguyễn Hữu Công MỤC LỤC CHƯƠNG TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1.1 Tổng quan 1.1.2 Lịch sử phát triển xử lý 1.1.3 Vi xử lý vi điều khiển 1.1.4 Ứng dụng Vi xử lý – vi điều khiển 1.2 Cấu trúc chung hệ vi xử lý 1.2.1 Khối xử lý trung tâm (CPU) 1.2.2 Hệ thống bus 1.3 Định dạng liệu biểu diễn thông tin hệ vi xử lý – vi điều khiển 1.3.1 Các hệ đếm 1.3.2 Mã ký tự - Alphanumeric CODE (ASCII, EBCDIC) 1.3.3 Các phép toán số học hệ đếm nhị phân 10 10 11 12 13 15 16 17 18 18 20 22 CHƯƠNG HỌ VI XỬ LÝ INTEL 80x86 23 2.1 Cấu trúc phần cứng vi xử lý 8086 2.1.1 Tổng quan 2.1.2 Cấu trúc bên hoạt động 2.1.3 Mô tả chức chân 2.2 Chế độ địa 2.2.1 Khái niệm chế độ địa 2.2.2 Các chế độ địa 2.3 Tập lệnh Assembly 2.3.1 Giới thiệu chung 2.3.2 Các nhóm lệnh 2.4 Lập trình hợp ngữ (Assembly) cho vi xử lý 80x86 2.4.1 Giới thiệu chung hợp ngữ 2.4.2 Các bước lập trình 2.4.3 Cấu trúc chung chương trình hợp ngữ 2.4.4 Các cấu trúc điều khiển 2.4.5 Ngắt Assembly 2.4.6 Các ví dụ 2.5 Ghép nối nhớ thiết bi ngoại vi 2.5.1 Ghép nối nhớ 2.5.2 Giải mã địa 2.5.3 Ghép nối thiết bị ngoại vi 2.5.4 Các kiểu giao tiếp vào / 2.5.5 Giải mã địa cho thiết bị vào / 2.5.6 Các mạch cổng đơn giản Vi mạch chốt 74LS373: 2.6 Câu hỏi tập 24 24 24 31 31 31 34 37 37 38 54 54 55 57 69 72 74 80 80 81 84 84 84 85 85 86 CHƯƠNG HỌ VI ĐIỀU KHIỂN 8051 89 3.1 Giới thiệu chung 90 3.1.1 Ứng dụng vi điều khiển 91 3.1.2 Hoạt động vi điều khiển 91 3.1.3 Cấu trúc chung 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 nhớ 8051 104 3.2.5 Các ghi chức đặc biệt (SFRs - Special Function Registers) 109 3.2.6 Bộ đếm định thời 113 3.2.7 Truyền thông không đồng (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 114 3.3.2 Tập lệnh 8051 116 3.3.3 Cấu trúc chung chương trình hợp ngữ cho 8051 123 3.4 Bộ đếm đị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 tập cuối chương 147 CHƯƠNG Ứ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 158 4.5 Lập trình ngắt ngồi theo sườn xuống .159 4.6 Sử dụng LED 160 4.6.1 Hiển thị số LED 160 4.6.2 Hiển thị nhiều LED 161 4.7 Thông báo văn hình LCD 164 4.8 Nhận liệu qua UART .169 4.9 Truyền liệu qua UART 170 4.10 Chương trình phục vụ truyền thông nối tiếp 172 4.11 Truyền thông UART cho 8051 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 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 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 8051 .206 PHỤ LỤC B: Chi tiết ghi chức 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 CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc KỸ THUẬT CƠNG NGHIỆP 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) Tên học phần: Vi xử lý – vi điều khiển Số tín chỉ: 03; 3(3; 1,5; 6)/12 s희희t희희u희희v희w희 еx희ࠢ 104희희희희희희희희희 희희희희희⠗희╄희희희희⌂ᐝ 희희희희희희희희희희희희희희 희희희희희희희희희희ᮤ희 희희희희희희희희희희희희희희 희희희희희희희희희희희희 ĂÂÊ ÔƠƯĐă âêôơ đ àảã áạ Trỡnh cho sinh viên năm thứ: (Điện, Điện tử, SPKT Điện, SPKT Tin) (Cơ điện tử) s희희t희희u희희v희w희е x희ࠢ105희희희희희희희희희희희희 Ă ÂÊÔƠƯ Đăâêô ơđ ảãáạ Phõn b thi gian - Lờn lp lý thuyt: (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 Các học phần học trước Kỹ thuật điện tử số Học phần thay thế, học phần tương đương Vi xử lý – vi điều khiển (trong chương trình 180 TC 260 ĐVHT) Mục tiêu học phần Sau học xong học phần sinh viên phải nắm cấu trúc phần cứng vi xử lý – vi điều khiển tiêu biểu: x86, 8051; Tổ chức nhớ, tập lệnh, chế độ địa lập trình cho chúng; Biết cách ghép nối với nhớ thiết bị ngoại vi; Biết khai thác khả ngắt định thời Có khả thiết kế xây dựng modul (bao gồm phần cứng phần mềm) sử dụng vi điều khiển cho tốn cụ thể Mơ tả vắn tắt nội dung học phần Tổng quan hệ đếm biểu diễn thông tin hệ vi xử lý – vi điều khiển Vi xử lý: Tổng quan kiến trúc hệ vi xử lý; tổ chức phần cứng CPU họ Intel 80x86, chế độ đánh địa chỉ, tập lệnh, lập trình hợp ngữ (assembly) cho 80x86 với toán đơn giản; số vi mạch phụ trợ 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 điều khiển; hoạt động định thời, ngắt truyền thông nối tiếp; giới thiệu số họ vi xử lý thông dụng khác Giới thiệu số toán ứng dụng tiêu biểu Nhiệm vụ sinh viên Dự lớp 80 % tổng số thời lượng học phần Chuẩn bị thảo luận Bài tập, Bài tập lớn (dài): Không Tài liệu học tập Sách, giáo trình chính: Bài giảng “Vi xử lý – vi điều khiển” - Sách tham khảo: Văn Thế Minh, Kỹ thuật vi xử lý, NXB KHKT, 1997 I Tống Văn On, Họ vi điều khiển 8051, NXB KH&KT, 2005 II Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc lập trình họ vi điều khiển 8051, NXB KH&KT, 2004 III Michael Hordeski, Personal Computer Interfaces, Mc Graw Hill, 1995 IV http://picat.dieukhien.net Tiêu chuẩn đánh giá sinh viên thang điểm 11.1 Các học phần lý thuyết Tiêu chuẩn đánh giá 0.0 Chuyên cần; 0.1 Thảo luận, tập; 0.2 Bài tập lớn (dài); 0.3 Kiểm tra học phần; 0.4 Thi kết thúc học phần; 0.5 Khác Thang điểm Điểm đánh giá phận chấm theo thang điểm 10 với trọng số sau: + Kiểm tra học phần: 20 % + Điểm thi kết thúc học phần: 80 % Nội dung chi tiết học phần lịch trình giảng dạy Người biên soạn: ThS Nguyễn Tuấn Anh ThS Nguyễn Tuấn Linh ThS Nguyễn Văn Huy Th.S Tăng Cẩm Nhung Th.S Phùng Thị Thu Hiền ThS Nguyễn Tiến Duy Hình Nội dung Tài liệu học tập, tham khảo Chương I: Tổng quan vi xử lý – vi điều khiển 1.1 Giới thiệu chung vi xử lý – vi điều khiển 1.1.1 Tổng quan 1.1.2 Lịch sử phát triển xử lý 1.1.3 Vi xử lý vi điều khiển 1.2 Cấu trúc chung hệ vi xử lý 1.2.1 Khối xử lý trung tâm (CPU) 1.2.2 Bộ nhớ (Memory) 1.2.3 Khối phối ghép vào/ra (I/O) 1.2.4 Hệ thống bus 1.3 Định dạng liệu biểu diễn thông tin hệ vi xử lý – vi điều khiển 1.3.1 Các hệ đếm 1.3.2 Biểu diễn số ký tự 1.3.3 Các phép toán số học hệ đếm nhị phân [1] - [4] Giảng Chương II: Họ vi xử lý Intel 80x86 2.1 Cấu trúc phần cứng vi xử lý 8086 2.1.1 Tổng quan 2.1.2 Cấu trúc bên hoạt động 2.1.3 Các chế độ địa [1] - [4] Giảng [1] - [4] Giảng [1] - [4] Giảng Tuần thứ 2.2 Tập lệnh 2.2.1 Giới thiệu chung 2.2.2 Các nhóm lệnh 2.3 Biểu đồ thời gian ghi/đọc 2.4 Lập trình hợp ngữ (Assembly) cho vi xử lý 80x86 2.4.1 Giới thiệu chung hợp ngữ 2.4.2 Cấu trúc chương trình hợp ngữ thức học 2.4.3 2.4.4 2.4.5 Các cấu trúc điều khiển Các bước lập trình Các tập ví dụ Thảo luận Chương III: Hệ vi điều khiển onchip MCS 8051 3.1 Giới thiệu chung vi điều khiển 3.1.1 Giới thiệu chung 3.1.2 Khái niệm vi điều khiển 3.1.3 Cấu trúc chung vi điều khiển 3.2 Kiến trúc vi điều khiển 8051 [1] - [4] Giảng Kiến trúc vi điều khiển 8051 (tiếp) Kiểm tra kỳ 3.3 Tập lệnh 8051 lập trình hợp ngữ cho 8051 3.3.1 Tập lệnh 8051 3.3.2 Thành phần ngôn ngữ assembly [1] - [4] Giảng 3.4 Kiến trúc vi điều khiển 8051 Thảo luận [1] - [4] Giảng [1] - [4] Thảo 12 13 Kiến trúc vi điều khiển 8051 (tiếp) Chương IV: Ứng dụng luận [1] - [4] Giảng [1] - [4] Thảo 14 15 Thảo luận Chương V: Các hệ VĐK tiên tiến Thảo luận luận [1] - [4] Giảng [1] - [4] Thảo 10 11 [1] - [4] Giảng luận Bài giảng Vi xử lý - Vi điều khiển Chương Tổng quan vi xử lý – vi điều khiển CHƯƠNG TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN Mục tiêu: Giúp sinh viên hiểu lịch sử đời hệ vi xử lý – vi điều khiển; khái niệm, cấu tạo nguyên lý hệ vi xử lý – vi điều khiển; ôn lại kiến thức hệ thống số đếm Tóm tắt chương: Chương chia làm phần: Giới thiệu chung vi xử lý – vi điều khiển Tổng quan Lịch sử phát triển xử lý Vi xử lý vi điều khiển Cấu trúc chung hệ vi xử lý Khối xử lý trung tâm (CPU) Bộ nhớ (Memory) Khối phối ghép vào/ra (I/O) Hệ thống bus Định dạng liệu biểu diễn thông tin hệ vi xử lý – vi điều khiển Các hệ đếm Biểu diễn số ký tự Các phép tốn số học hệ đếm nhị phân Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Bài giảng Vi xử lý - Vi điều khiển Cú pháp STT Mã lệnh 12 13 14 MOV JC JNC Phụ lục Số byte Mô tả Toán hạng Số chu kỳ C = 2 2 Bit, nhảy đến nhãn bit= bit= Bit,C Bit = C nhảy đến nhãn 15 JB Bit, nhảy đến nhãn 16 JNB Bit, nhảy đến nhãn bit= Bit, nhảy đến nhãn bit = 17 JBC sau xóa ln bit Các lệnh điều khiển chương trình Cú pháp STT Mã lệnh Mơ tả Tốn hạng Số byte Số chu kỳ 3 1 2 2 ACALL LCALL gọi chương trình (nằm phạm vi 2k mem) gọi chương trình (trong RET RETI AJMP pham vi 64k mem) trở từ chương trình trở từ chương trình phục vụ ngắt nhảy đến nhãn (trong phạm LJMP vi 2k mem) nhảy đến nhãn (trong phạm SJMP JMP @A+DPTR vi 64 mem) nhảy đến nhãn nhảy đến địa = 2 2 2 3 10 11 JZ JNZ CJNE A,direct, 12 CJNE A,#data, A+DPTR nhảy đến nhãn A = nhảy đến nhãn A #0 So sánh nhảy đến nhãn A # direct So sánh nhảy đến nhãn Rn,#data, A#data So sánh nhảy đến 13 208 Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Bài giảng Vi xử lý - Vi điều khiển Cú pháp STT Mã lệnh Toán hạng 14 @Ri,#data, 15 DJNZ Rn, 16 DJNZ direct, 17 NOP Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Phụ lục Mô tả nhãn Rn#data So sánh nhảy đến nhãn byte có địa = Ri có nội dung khác với data Giảm Rn nhảy đến nhãn chưa giảm Giảm direct nhảy đến nhãn chưa giảm Không làm Số byte Số chu kỳ 2 1 209 Bài giảng Vi xử lý - Vi điều khiển Phụ lục PHỤ LỤC B: Chi tiết ghi chức 8051 Bản tóm tắt chức ghi Thanh ghi IE: IE: Interrupt Enable, cho phép ngắt: ghi cho phép/cấm ngắt hoạt động EA -ET2 ES ET1 Thanh ghi TCON: TCON Register - TCON (S:88h) EX1 ET0 EX0 TCON: Timer/Counter Control Register: ghi điều khiển đếm/bộ định thời TF1 TR1 TF0 TR0 IE1 Thanh ghi TMOD: TMOD Register - TMOD (S: 89h) IT1 IE0 IT0 TMOD: Timer/Counter and Modes: ghi đặt chế độ cho Timer/Counter GATE1 C/T1# M11 M01 GATE0 C/T0# M10 M00 Thanh ghi T2CON: T2CON Register - T2CON (S:C8h) Thanh ghi điều khiển Timer/Counter TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2# CP/RL2# Thanh ghi T2MOD: T2MOD Register - T2MOD (S:C9h) Thanh ghi điều khiển Timer/Counter Thanh ghi SCON - - - - T2OE DCEN SCON: Serial Controller: ghi cấu hình truyền thông nối tiếp FE/SM0 SM1 SM2 REN TB8 Thanh ghi PCON: PCON Register PCON - Power Control Register (87h): Thanh ghi điều khiển nguồn SMOD1 SMOD0 POF GF1 GF0 210 RB8 TI PD RI IDL Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Bài giảng Vi xử lý - Vi điều khiển Diễn giải ý nghĩa ghi: Thanh ghi phục vụ lập trình ngắt: Thanh ghi IE: Interrupt Enable: Cho phép ngắt: EA -ET2 ES Phụ lục ET1 EX1 ET0 EX0 Nếu lập bít =1 cho phép ngắt, đặt cấm ngắt EA: Enable All : cho phép ngắt tất cả, phải đặt bít 1, ngắt khác phép hoạt động Muốn ngắt hoạt động cho phép ngắt theo bit ET2: Enable Timer 2: cho phép Timer hoạt động ES: Enable Serial: Cho phép ngắt nối tiếp ET1: Enable Timer 1: cho phép Timer hoạt động EX1: Enable eXternal: cho phép ngắt ET0: Enable Timer 0: cho phép Timer hoạt động EX0: Enable eXternal: cho phép ngắt Thanh ghi TCON: TCON Register - TCON (S:88h) Timer/Counter Control Register TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Bit thứ Ký hiệu Ý nghĩa TF1 Cờ tràn Timer Được xóa phần cứng vi xử lý nhảy đến chương trình ngắt Lập phần cứng Timer / Counter tràn TR1 Bit điều khiển chạy Timer Xóa để cấm chạy timer/counter Lập để chạy timer/counter TF0 Cờ tràn Timer Xóa phần cứng chạy chương trình ngắt Lập phần cứng ghi timer/counter tràn TR0 Bit điều khiển chạy Timer Xóa để cấm chạy timer/counter Lập để chạy timer/counter IE1 Cờ cạnh ngắt Xóa phần cứng ngắt vi xử lý, đặt ngắt cạnh (sườn) Lập phần cứng ngắt phát chân INT1 IT1 Bit điều khiển loại ngắt Xóa: Ngắt theo mức thấp cho ngắt ngồi (INT1) Lập : Ngắt theo cạnh xuống (sườn xuống) cho ngắt (INT1) IE0 Cờ cạnh ngắt Xóa phần cứng ngắt vi xử lý, đặt ngắt cạnh (sườn) Lập phần cứng ngắt phát chân INT0 IT0 Bit điều khiển loại ngắt ngồi Xóa: Ngắt theo mức thấp cho ngắt (INT0) Lập : Ngắt theo cạnh xuống (sườn xuống) cho ngắt (INT0) Giá trị sau reset = 0000 0000b Mode: chế độ Timer : Bộ định thời, Counter: Bộ đếm Thanh ghi TMOD: TMOD Register - TMOD (S: 89h) Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp 211 Bài giảng Phụ lục Vi xử lý - Vi điều khiển TMOD - Timer/Counter and Modes GATE1 C/T1# M11 M01 GATE0 C/T0# M10 M00 Bit thứ Ký hiệu Ý nghĩa GATE1 Bit điều khiển cổng Timer Xóa phép timer bit TR1 lập Lập phép timer chân INT1# mức bit TR1 lập C/T1# Bit lựa chọn Counter/Timer Xóa: Timer hoạt động: Bộ định thời, đếm tăng theo xung nhịp hệ thống Lập: Counter hoạt động: Bộ đếm, đếm tăng theo sườn xuống chân T1 M11 M01 Các bit chọn chế độ cho Timer M11 M01 Chế độ hoạt động 0 Mode 8-bit Timer/Counter (TH1) với 5-bit(TL1) Mode 16-bit Timer/Counter Mode 8-bit Timer/Counter (TL1) tự nạp lại giá trị từ TH1 Mode Timer/Counter tràn Timer dừng GATE0 C/T0# M10 Bit điều khiển cổng Timer Xóa phép timer bit TR0 lập Lập phép timer chân INT0# mức bit TR0 lập Bit lựa chọn Counter/Timer Xóa: Timer hoạt động: Bộ định thời, đếm tăng theo xung nhịp hệ thống Lập: Counter hoạt động: Bộ đếm, đếm tăng theo sườn xuống chân T0 Các bit chọn chế độ cho Timer M10 M00 Chế độ hoạt động 0 Mode 8-bit Timer/Counter (TH0) với 5-bit(TL0) Mode 16-bit Timer/Counter Mode 1 Mode M00 8-bit Timer/Counter (TL0) tự nạp lại giá trị từ TH0 Timer/Counter tràn TL0 Timer/Counter bit TH0 Timer 8bit sử dụng Timer bit TR0 TF0 Giá trị sau reset = 0000 0000b Khi Timer Mode 3, Timer bật tắt cách chuyển khỏi vào Mode 3, dùng để tạo tốc độ Baud (đọc bơ-u-d) cho cổng truyền thông nối tiếp, thực tế, số ứng dụng không dùng ngắt 212 Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Bài giảng Vi xử lý - Vi điều khiển Phụ lục Thanh ghi T2CON: T2CON Register - T2CON (S:C8h) Thanh ghi điều khiển Timer Bit thứ TF2 EXF2 Ký hiệu Ý nghĩa TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2# CP/RL2# Cờ tràn Timer TF2 không lập RCLK=1 TCLK=1 Phải xóa phần mềm Lập phần cứng Timer tràn Cờ ngắt Timer Lập có cạnh xuống chân T2EX, EXEN2=1 Nếu ngắt Timer hoạt động, mức bit này, chương trình gọi ngắt Phải xóa phần mềm RCLK Bit clock nhận Xóa để sử dụng cờ tràn Timer làm xung clock nhận cho truyền thông nối tiếp Mode Lập để sử dụng cờ tràn Timer làm xung clock nhận cho truyền thông nối tiếp Mode TCLK Bit clock truyền Xóa để sử dụng cờ tràn Timer làm xung clock phát cho truyền thông nối tiếp Mode Lập để sử dụng cờ tràn Timer làm xung clock phát cho truyền thông nối tiếp Mode 3 EXEN2 TR2 C/T2# CP/RL2# Bit cho phép ngắt ngồi Timer Xóa để bỏ qua kiện chân T2EX cho hoạt động Timer Lập xảy ngắt ngồi chân T2EX có sườn xuống, Timer không sử dụngcho truyền thông nối tiếp Bit điều khiển chạy Timer Xóa : cấm Timer chạy Lập: chạy Timer Bit lựa chọn Timer/Counter Xóa: Timer (nguồn xung hệ thống: Fosc) Lập: Counter (đầu vào từ chân T2) Bit capture/Reload Timer Nếu RCLK=1 TCLK=1, CP/RL2# bị bỏ qua Timer chạy chế độ tự nạp lại tràn Xóa: để tự nạp lại Timer tràn có sườn xuống chân T2EX EXEN2=1 Lập để bắt giữ (capture) có cạnh xuống chân T2EX EXEN2=1 Giá trị sau reset = 0000 0000b Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp 213 Bài giảng Vi xử lý - Vi điều khiển Phụ lục Thanh ghi T2MOD: T2MOD Register - T2MOD (S:C9h) Thanh ghi chọn chế độ cho Timer Bit thứ Ký hiệu - T2OE DCEN - - - - - T2OE DCEN Ý nghĩa Dự trữ Dự trữ Dự trữ Dự trữ Dự trữ Dự trữ Bit cho phép xuất Timer Xóa để lập trình P1.0/T2 đầu vào clock cổng I/O Lập để lập trình P1.0/T2 đầu clock Bit cho phép đếm lùi Xóa: cấm Timer đếm tăng/giảm Lập: cho phép Timer đếm tăng/giảm Giá trị sau reset = xxxx xx00b Thanh ghi SCON FE/SM0 Bit thứ Ký hiệu FE SM0 SM1 SM2 REN TB8 214 SM2 REN TB8 RB8 TI RI Ý nghĩa FE: Framing Error bit: bit báo truyền thơng lỗi (SMOD0=1) Xóa để reset trạng thái lỗi, khơng xóa bit STOP Lập phần cứng phát lỗi bit STOP không SMOD0 phải lập phép truy cập đến bit FE Chế độ truyền thông nối tiếp SM0 SM1 Mode Ý nghĩa 0 Thanh ghi dịch 1 8-bit UART 9-bit UART SM1 39-bit UART Tốc độ Baud FCPU PERIPH/6 Có thể thay đổi FCPU PERIPH/32 /16 Có thể thay đổi Bit Mode cổng nối tiếp / Bit cho phép truyền thơng đa vi xử lý Xóa để cấm chức truyền thông đa vi xử lý Lập phép chế độ truyền thông đa vi xử lý Mode 3, chí Mode Bit phải xóa dùng Mode Bit cho phép nhận ( Reception Enable bit) Xóa: cấm nhận nối tiếp Lập: cho phép nhận nối tiếp Phát bit / bit thứ để truyền thông Mode Xóa: truyền bit logic bit thứ Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Bài giảng Phụ lục Vi xử lý - Vi điều khiển RB8 TI RI Lập: truyền bit logic bit thứ Nhận bit / nhận bit thứ mode Xóa phần cứng bit thứ nhận logic Lập phần cứng bit thứ nhận logic Trong mode1, SM2=0, RB8 bit STOP nhận Trong mode RB8 không sử dụng Cờ ngắt truyền Xóa để chấp nhận ngắt Lập phần cứng thời gian cuối bit thứ mode bắt đầu bit STOP mode khác Cờ ngắt nhận Xóa để chấp nhận ngắt Lập phần cứng thời gian cuối bit thứ mode Xem hình để biết thêm mode khác Giá trị sau reset = 0000 0000b Thanh ghi PCON: PCON Register PCON - Power Control Register (87h) SMOD1 SMOD0 - POF GF1 Bit thứ Ký hiệu Ý nghĩa SMOD1 Chế độ cổng nối tiếp, bit cho USART GF0 PD IDL Lập để lựa chọn tốc độ Baud gấp đôi mode 1,2 SMOD0 POF GF1 GF0 PD IDL Chế độ cổng nối tiếp, bit cho USART Xóa để lựa chọn bit SM0 ghi SCON Lập để lựa chọn bit FE ghi SCON Dự trữ Cờ tắt nguồn: Power Off Flag Xóa để nhận biết kiểu reset lần Lập phần cứng VCC tăng từ lên điện áp bình thường đặt phần mềm Cờ mục đích chung, lập, xóa tùy lập trình viên Cờ mục đích chung, lập, xóa tùy lập trình viên Bit chế độ nguồn giảm Xóa phần cứng xảy reset Lập để vào chế độ nguồn giảm Bit chế độ IDL Xóa phần cứng xảy ngắt reset Lập để vào chế độ nghỉ (IDLE) Giá trị sau reset = 00X1 0000b Không thể định địa bit Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp 215 Bài giảng Vi xử lý - Vi điều khiển Phụ lục PHỤ LỤC C: Ngắt INT 21h / AH=1 - read character from standard input, with echo, result is stored in AL if there is no character in the keyboard buffer, the function waits until any key is pressed example: mov ah, int 21h INT 21h / AH=2 - write character to standard output entry: DL = character to write, after execution AL = DL example: mov ah, mov dl, 'a' int 21h INT 21h / AH=5 - output character to printer entry: DL = character to print, after execution AL = DL example: mov ah, mov dl, 'a' int 21h INT 21h / AH=6 - direct console input or output parameters for output: DL = 254 (ascii code) parameters for input: DL = 255 for output returns: AL = DL for input returns: ZF set if no character available and AL = 00h, ZF clear if character available AL = character read; buffer is cleared example: mov ah, mov dl, 'a' int 21h ; output character mov ah, mov dl, 255 int 21h ; get character from keyboard buffer (if any) or set ZF=1 216 Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp Bài giảng Vi xử lý - Vi điều khiển Phụ lục INT 21h / AH=7 - character input without echo to AL if there is no character in the keyboard buffer, the function waits until any key is pressed example: mov ah, int 21h INT 21h / AH=9 - output of a string at DS:DX String must be terminated by '$' example: org 100h mov dx, offset msg mov ah, int 21h ret msg db "hello world $" INT 21h / AH=0Ah - input of a string to DS:DX fist byte is buffer size, second byte is number of chars actually read this function does not add '$' in the end of string to print using INT 21h / AH=9 you must set dollar character at the end of it and start printing from address DS:DX + example: org 100h mov dx, offset buffer mov ah, 0ah int 21h jmp print buffer db 10,?, 10 dup(' ') print: xor bx, bx mov bl, buffer[1] mov buffer[bx+2], '$' mov dx, offset buffer + mov ah, int 21h ret the function does not allow to enter more characters than the specified buffer size see also int21.asm in c:\emu8086\examples Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Cơng nghiệp 217 Danh mục hình ảnh Hình 1-2 Lịch sử phát triển VXL Hình 1-3 Sơ đồ khối máy tính cổ điển Hình 1-4 Sơ đồ khối hệ vi xử lý Hình 1-5 Khối xử lý trung tâm Hình 1-6.LED cách mã hóa Hình 1-7 Bảng mã ASCII Hình 1-8 Bảng mã ASCII có ký tự phần mở rộng Hình 2-1.Tổng quan phần cứng xử lý Hình 2-2.Sự hoạt động CPU Hình 2-3.Sơ đồ khối bên 8086 Hình 2-4 Sơ đồ chân 8086/8088 Hình 2-5 Emu8086 - Môi trường soạn thảo Hình 2-6 Emu8086 - Giá trị cờ hình hiển thị Hình 2-7 Emu8086 - Màn hình Debug chương trình Hình 2-8 Giao tiếp bus Hình 2-9 Quan hệ giải mã địa nhớ Hình 2-10 Mắc nối tầng nhiều 74LS138 Hình 2-11 Ghép nối VXL với nhớ Hình 2-12 Định thời ghi nhớ Hình 2-13 Định thời đọc nhớ Hình 2-14 Giải mã cho cổng Hình 2-15 Vi mạch 74LS245 Hình 2-16 Vi mạch chốt 74LS373 Hình 3-1 Cấu trúc chung họ VĐK Hình 3-2 Giao tiếp nhớ Hình 3-3 Vào với thiết bị ngoại vi Hình 3-4 ghép nối dao động Hình 3-5 Bộ định thời/đếm Hình 3-6 Truyền nhận nối tiếp Hình 3-7.Kiến trúc vi điều khiển 8051 Hình 3-8 Sơ đồ chân VĐK AT89C51 Hình 3-9 Cổng vào/ra Hình 3-10 Xuất mức Hình 3-11 Trở treo nội chân Hình 3-12 xuất mức Hình 3-13 – Sơ đồ kết nối thạch anh Hình 3-14 Các vùng nhớ AT89C51 Hình 3-15 Thực thi nhớ chương trình ngồi Hình 3-16 - Ghép nối RS232 với 8051 Hình 3-17 Các ghi Timer Hình 3-18 Các ghi Timer Hình 3-19 Timer TMOD Hình 3-20 Timer – Mode Hình 3-21 Timer – Mode Hình 3-22 Timer – Mode Hình 3-23 Timer – Mode Hình 3-24 Truyền thơng Hình 3-25 Ghép nối RS232 với 8051 Hình 3-26 Truyền thông nối tiếp – Mode Hình 3-27 Giản đồ thời gian truyền nối tiếp – Mode 218 11 15 16 17 18 20 21 24 25 26 31 56 56 57 81 81 82 82 83 83 84 85 85 92 93 95 95 96 96 97 99 100 101 101 101 104 104 108 113 126 127 127 130 130 130 131 133 135 136 137 Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Cơng nghiệp Hình 3-28 Giản đồ thời gian nhận nối tiếp – Mode 137 Hình 3-29 Truyền nhận nối tiếp – Mode 137 Hình 3-30 Giản đồ thời gian truyền nối tiếp – Mode 137 Hình 3-31 Giản đồ thời gian nhận nối tiếp – Mode 138 Hình 3-32 Giản đồ thời gian truyền nối tiếp – Mode 138 Hình 3-33 Giản đồ thời gian nhận nối tiếp – Mode 138 Hình 3-34 Các tín hiệu điều khiển ngắt 142 Hình 3-35 Bảng vector ngắt ví dụ 143 Hình 4-1 Mạch nhấp nháy LED đơn 152 Hình 4-2 Mạch nhấp nháy LED đơn mô 152 Hình 4-3 Thuật tốn: Nhấp nháy P1 154 Hình 4-4 Thuật tốn: Nhấp nháy P1-Macro 154 Hình 4-5 Thuật toán: Nhấp nháy P1.0 155 Hình 4-6 Thuật tốn: TIMER0 155 Hình 4-7 Thuật tốn: Ngắt Timer Timer1 156 Hình 4-8 Sử dụng Timer 157 Hình 4-9 Lập trình ngắt ngồi 158 Hình 4-10 Lập trình ngắt ngồi – bật loa 159 Hình 4-11 Hiển thị LED 160 Hình 4-12.Sơ đồ chân LED 162 Hình 4-13 Sơ đồ hiển thị LCD thực 164 Hình 4-14 Sơ đồ hiển thị LCD mô 164 Hình 4-15 Ghép nối VĐK với máy tính 169 Hình 4-16 Nhận liệu nối tiếp – mơ 170 Hình 4-17 Truyền liệu nối tiếp – mơ 171 Hình 4-18 Sơ đồ chân ADC0804 175 Hình 4-19 Giản đồ thời gian đọc ADC 175 Hình 4-20 Mạch ngun lý mơ chuyển đổi ADC0804 176 Hình 4-21.Cách ghép nối bàn phím mơ phỏng- phím đơn ghép lại 177 Hình 4-22.Cách ghép nối bàn phím mơ – dùng module bàn phím 177 Hình 4-23 Cấu tạo động bước 179 Hình 4-24 Sơ đồ khối tổng thể toàn hệ thống 184 Hình 4-25 Sơ đồ tương tác hệ thống cảnh báo áp suất 185 Hình 4-26 186 Hình 4-27 186 Hình 4-28 Mạch cảm biến 186 Hình 4-29 Khuếch đại 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 Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp 219 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 Timer1 tạo xung PWM dùng ngắt 156 Mã nguồn 4-8 Sử dụng Timer 158 Mã nguồn 4-9 Lập trình ngắt ngồi 159 Mã nguồn 4-10 Lập trình ngắt ngồi – bật loa 160 Mã nguồn 4-11 Hiển thị LED -1 161 Mã nguồn 4-12 Hiển thị LED - .163 Mã nguồn 4-13 Hiển thị nhiều LED 163 Mã nguồn 4-14 Hiển thị LCD 169 Mã nguồn 4-15 Nhận liệu nối tiếp .170 Mã nguồn 4-16 Truyền liệu nối tiếp 171 Mã nguồn 4-17 Các CTC Truyền-Nhận liệu nối tiếp 172 Mã nguồn 4-18 CTC truyền thông nối tiếp 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 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 hệ số .19 Bảng 2-1 Các ghi .28 Bảng 2-2.Phối hợp MOD R/M để tạo chế độ địa 33 Bảng 2-3 Các chế độ địa .36 Bảng 2-4 Bản đồ nhớ, địa ngắt 8086 .60 Bảng 3-1 Chức chân Port 103 Bảng 3-2 Các ghi chức đặc biệt 105 Bảng 3-3 Địa 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 liệu 120 Bảng 3-6 Các lệnh thao tác bit đọc cổng 120 Bảng 3-7 Lệnh đọc cổng 121 Bảng 3-8 Đọc chốt cổng 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 Timer/Counter 127 Bảng 3-12 Một số giá trị thường dùng truyền thông nối tiếp 139 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 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 định thời 113 bus 17 Bus địa 17 Bus điều khiển 17 Bus liệu 17 Các bước 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 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 65 CMP 46 cờ 29 Cổng vào/ra 100 CPU 16, 94 CU 24 DB 123 DEC 40 Delay 153 Địa chỉ số 115 Địa gián tiếp 115 Địa theo ghi 114 Địa trực tiếp 115 Địa tức thời 114 Địa vật lý 29 DIV 40 DPTR 111 EEPROM 93 Bộ môn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp EQU 124 EU 25, 26 FOR 70 Giải mã địa 84 Gray Code 19 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 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 xử lý 24 POP 39 PROC 65 PSW 110 221 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 222 STACK 60 STC 54 SUB 41 Tập lệnh Assembly 37 Tên 124 ghi 27 ghi số 28 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 nhớ 8051 104 Toán tử 64 từ khóa 125 UART 113 ứng dụng vi điều khiển 13 Ứng dụng vi điều khiển 91 WHILE 70 XOR 46 Bộ mơn Kỹ thuật máy tính – Khoa Điện tử Trường ĐH Kỹ thuật Công nghiệp ... tương đương Sử dụng cho năm học 2011 – 2012 Tên giảng: Vi xử lý – Vi điều khiển Số tín chỉ: 03 Trưởng mơn Ths Nguyễn Tuấn Linh Thái Nguyên, ngày 01 tháng 07 năm 2011 Trưởng khoa Điện Tử PGS TS... Chương Tổng quan vi xử lý – vi điều khiển 1.1.2 Lịch sử phát triển xử lý Hình 1-2 Lịch sử phát triển VXL 5888 Thế hệ (1971 - 1973): vi xử lý bit, đại diện 4004, 4040, 8080 (Intel) hay IPM-16 (National