Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 131 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
131
Dung lượng
2,85 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - TRẦN VĂN THƯƠNG NGHIÊN CỨU VI ĐIỀU KHIỂN 8051 VÀ ỨNG DỤNG TRONG GIẢNG DẠY MÔN VI XỬ LÝ TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH LUẬN VĂN THẠC SĨ SƯ PHẠM KỸ THUẬT CHUYÊN NGÀNH: LÝ LUẬN VÀ PHƯƠNG PHÁP DẠY HỌC CHUYÊN SÂU : SƯ PHẠM KỸ THUẬT ĐIỆN TỬ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS PHÍ HỊA BÌNH TS PHẠM NGỌC NAM Hà Nội – 2012 LỜI CẢM ƠN Sau thời gian nghiên cứu làm việc với giúp đỡ bảo tận tình PGS.TS Phí Hịa Bình TS Phạm Ngọc Nam luận văn với đề tài:“Nghiên cứu Vi điều khiển 8051 ứng dụng giảng dạy môn vi xử lý trường Đại học Cơng nghiệp Quảng Ninh ” hồn thành mục tiêu đề Tác giả xin bày tỏ lòng biết ơn sâu sắc tới: Các thầy giáo hướng dẫn PGS.TS Phí Hịa Bình TS Phạm Ngọc Nam Trường Đại học Bách Khoa Hà Nội tận tình dẫn, giúp đỡ để tác giả hoàn thành luận văn Viện Đào Tạo Sau Đại Học, Ban chủ nhiệm Thầy, Cô giáo Khoa Sư Phạm Kỹ Thuật, Khoa Điện Tử Viễn Thông, tập thể thầy cô giáo trường ĐHBK Hà Nội, Ban Giám Hiệu, tập thể giáo viên Khoa Điện - Điện tử Trường ĐH Công Nghiệp Quảng Ninh tạo điều kiện thuận lợi cho việc học tập, nghiên cứu tiến hành luận văn tác giả Toàn thể bạn bè đồng nghệp, gia đình người thân quan tâm, động viên giúp đỡ để tác giả hoàn thành luận văn Mặc dù cố gắng nhiên luận văn khơng tránh khỏi thiếu sót Rất mong đóng góp ý kiến thầy giáo, bạn bè đồng nghiệp để luận văn tác giả hoàn thiện Xin chân thành cám ơn! Hà Nội, ngày 15 tháng 01 năm 2012 Tác giả Trần Văn Thương LỜI CAM ĐOAN Tôi xin cam đoan viết luận văn tìm hiểu, nghiên cứu thân với hướng dẫn bảo tận tình PGS.TS Phí Hịa Bình TS Phạm Ngọc Nam Mọi kết nghiên cứu ý tưởng tác giả khác có trích dẫn nguồn gốc cụ thể Luận văn chưa bảo vệ hội đồng bảo vệ luận văn thạc sỹ chưa công bố phương tiện thơng tin Tơi xin hồn tồn chịu trách nhiệm mà tơi cam đoan Hà Nội, ngày 15 tháng 01 năm 2012 Tác giả Trần Văn Thương MỤC LỤC MỞ ĐẦU 1 LÝ DO CHỌN ĐỀ TÀI 11 1.1 Xuất phát từ định hướng mục tiêu đào tạo 11 1.2 Xuất phát từ nhiệm vụ, đặc điểm đặc trưng môn học 12 1.3 Xuất phát từ thực trạng dạy học môn Vi xử lý Trường Đại học Công nghiệp Quảng Ninh 12 MỤC ĐÍCH, NHIỆM VỤ CỦA ĐỀ TÀI 13 2.1 Mục đích 13 2.2 Nhiệm vụ đề tài 13 GIẢ THIẾT KHOA HỌC 13 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 14 4.1 Đối tượng nghiên cứu 14 4.2 Phạm vi nghiên cứu 14 PHƯƠNG PHÁP NGHIÊN CỨU 14 CẤU TRÚC CỦA LUẬN VĂN 14 CHƯƠNG I: CẤU TRÚC VI ĐIỀU KHIỂN 8051 15 1.1 Cấu trúc vi điều khiển 8051 [8] 15 1.1.1 Giới thiệu chung 15 1.1.2 Sự khác biệt vi xử lý vi điều khiển 16 1.1.3 Sơ đồ khối 16 1.1.4 Sơ đồ chân tín hiệu vi điều khiển 8051/AT89C51 21 1.1.5 Chức thành phần AT89C51 23 1.1.5.1 Chức ghi đặc biệt 23 1.1.5.2 Các ghi điều khiển 27 1.1.6 Bộ nhớ chương trình nhớ liệu nội trú 32 1.1.6.1 Bộ nhớ chương trình nội trú 33 1.1.6.2 Bộ nhớ liệu nội trú 34 1.1.6.3 Bộ nhớ chương trình nhớ liệu ngoại trú 38 1.1.7 Cơ chế ngắt On-chip AT89C51 43 1.1.7.1 Phân loại ngắt On-chip 43 1.1.7.2 Các bước thực ngắt 44 1.1.7.3 Mức ngắt ưu tiên on-chip 45 1.1.7.4 Nguyên lý điều khiển ngắt AT89 45 1.1.7.5 Các ngắt 47 1.1.7.6 Vận hành Single-Step 48 1.1.8 Nguyên lý truyền tin nối tiếp AT89C51 48 1.1.8.1 Phương thức truyền tin nối tiếp(Serial Interface) 48 1.1.8.2 Liên lạc đa xử lý (Multiprocessor Communications) 50 1.1.9.Nguyên lý khởi động On-chip AT89C51 50 1.1.9.1 Mạch dao động 53 1.1.9.2 Chế độ nguồn giảm chế độ nghỉ 54 1.1.9.3 Bảo vệ chương trình 55 CHƯƠNG 2: PHẦN MỀM PROTEUS VSM 56 2.1 Các chức Proteus [9] 56 2.1.1Các ưu điểm 56 2.1.2 Khả ứng dụng 57 2.1.3 Cách mở Proteus window 57 2.1.4 Giao diện Proteus VSM 58 CHƯƠNG 3: ỨNG DỤNG VI ĐIỀU KHIỂN 8051 GIẢNG DẠY MÔN VI XỬ LÝ TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH 75 3.1 VÀI NÉT VỀ ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH 75 3.1.1 Quá trình hình thành phát triển 75 3.1.2 Tổ chức máy Trường 75 3.1.3 Đội ngũ cán bộ, giáo viên, giảng viên, nhân viên 76 3.1.4 Quy mô đào tạo hệ 76 3.1.5 Ngành nghề đào tạo 76 3.1.6 Cơ sở vật chất trang thiết bị phục vụ đào tạo 77 3.1.6.1 Tại sở 77 3.1.6.2 Tại trụ sở 77 3.2 THỰC TRẠNG GIẢNG DẠY MÔN VI XỬ LÝ TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH 78 3.2.1 Chương trình đào tạo 78 3.2.2 Giáo viên 82 3.2.3 Đánh giá kết học tập 83 3.2.4 Đánh giá chương trình 84 3.3 ỨNG DỤNG VI ĐIỀU KHIỂN 8051 GIẢNG DẠY MÔN VI XỬ LÝ TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH 86 3.3.1 Xây dựng chương đào tạo thực hành 86 3.3.2 Hướng dẫn cài đặt, sử dụng phần mền keil C ProLoad V4.2 92 3.3.2.1 Hướng dẫn cài đặt Keil C 92 3.3.2.2 Tạo Project Keil C 94 3.3.2.3 Cài đặt 98 3.3.2.4 Sử dụng 100 3.4 XÂY DỰNG BÀI GIẢNG MÔN HỌC VI XỬ LÝ CỤ THỂ CHO CÁC BÀI THỰC HÀNH CƠ BẢN ỨNG DỤNG VI ĐIỀU KHIỂN 8051 100 KẾT LUẬN VÀ KIẾN NGHỊ 127 Kết luận: 127 Kiến nghị: 128 TÀI LIỆU THAM KHẢO 130 Tiếng Việt 130 Tiếng Anh 130 CÁC KÍ HIỆU ĐƯỢC SỬ DỤNG ADC(Analog - to – Digital Converter): Bộ phận chuyển tín hiệu analog sang tín hiệu digital ALU(Arithmetic Logic Unit) phận thao tác liệu CISC: vi điều khiển có tập lệnh phức tạp CPU (Central processing Unit): khối xử lý trung tâm RISC: vi điều khiển có tập lệnh đơn giản ROM (Read Only Memory) nhớ dùng để lưu chương trình ICP (In – circuit programming): Giao tiếp với thiết bị lập trình bên ngồi EEPROM: lập trình hay xóa I/O: cổng dùng để truyền liệu MOSI: liệu Master Out / Slave In SCK: xung nối tiếp ngõ xuất SPI master ngõ nhập SPI slave SS: chọn slave Operation: định lệnh thao tác cho assembly Operand: đối tượng mà lệnh thao tác Comment: ghi ghi liên quan đến dòng lệnh RCF – Reset cờ nhớ, RSP – Reset Stack Pointer HALT; WFI – chế độ tiêu thụ thấp TRAP – ngắt (phần mềm) RET – Return; IRET - Interrupt: ngắt SIM – Thiết lập Interrupt Mask; RIM – Reset Interrupt Mask DANH MỤC BẢNG BIỂU Bảng 1.1.3 - Các thông số họ VĐK thuộc hãng Intel (MSC 51) 18 Bảng 1.1.3.2 Các thông số họ VĐK thuộc hãng Atmel 21 Bảng 1.1.5.1 - Chức riêng ghi SFR 23 Bảng 1.1.5.1 - 2: Địa chỉ, ý nghĩa giá trị SFR sau Rese 25 Bảng 1.1.5.1 - Chọn băng ghi 28 Bảng 1.1.5.1 -.4 Chọn Mode SCON 31 Bảng 1.1.7.4 - 1Địa véc tơ ngắt 47 Bảng 1.1.9.3 - 1.Các bít khóa bảo vệ loại chip 8051 55 Bảng 1.1.9.3 - Khóa nhớ chương trình họ VĐK AT89C51 55 Bảng 3.2.1 - 1: Bảng kết điều tra giáo viên môn học vi xử lý 82 Biểu đồ 3.2.1 - : Kết vấn giáo viên chuyên nghành công nghệ kỹ thuật Điện tử, Điều khiển TĐH 82 Bảng 3.2.3 - 1: Mẫu khảo sát sinh viên chuẩn bị cho kiểm tra 83 Bảng 3.2.3 - 2: Kết điều tra sinh viên chuẩn bị cho kiểm tra 84 Biểu đồ 3.2.3 - 1: Kết điều tra sinh viên chuẩn bị cho kiểm tra 84 Bảng 3.4-1: Bảng điểm kiểm tra sinh viên thực nghiệm máy tính .103 Biểu đồ 3.4 - 1: Đánh giá kết học tập sinh viên máy tính .104 Bảng 3.4 - 2: Kết hài lòng học sinh 104 Biểu đồ 3.4 - 2: Biểu thị mức độ hiểu sinh viên 105 Bảng 3.4 - 3: Bảng điểm kiểm tra sinh viên ứng dụng kít vi điều khiển 8051 105 Biểu đồ 3.4 - 3: Đánh giá kết học tập sinh viên thực hành ứng dụng kít vi điều khiển 8051 106 Bảng 3.4 - 4: Kết hài lòng sinh viên 106 Biểu đồ 3.4 - 4: Biểu thị mức độ hiểu sinh viên ứng dụng kít vi điều khiển 8051 107 Bảng 3.4 - 5: Bảng điểm kiểm tra sinh viên thực hành máy tính 115 Biểu đồ 3.4 - 5: Đánh giá kết học tập sinh viên thực hành máy tính 115 Bảng 3.4 - 6: Kết hài lòng Sinh viên 116 Biểu đồ 3.4 - 6: Biểu thị mức độ hiểu sinh viên 116 Bảng 3.4 - 7: Bảng điểm kiểm tra sinh viên ứng dụng kít vi điều khiển 8051 117 Biểu đồ 3.4 - 7: Đánh giá kết học tập sinh viên thực hành ứng dụng kít vi điều khiển 8051 117 Bảng 3.4 - 8: Kết hài lòng Sinh viên 118 Biểu đồ 3.4 - 8: Biểu thị mức độ hiểu sinh viên ứng dụng kít vi điều khiển 8051 118 DANH MỤC HÌNH VẼ Hình 1.1.3 - Sơ đồ khối họ VĐK AT89C51 16 Hình 1.1.4 - Bố trí chân họ 8051 21 Hình 1.1.5.1 - Sơ đồ khối AT89C51 24 Hình 1.1.6 - Cấu trúc nhớ AT89C51 33 Hình 1.1.6.2 - Bộ nhớ liệu 34 Hình 1.1.6.2-.2: 128 bytes thấp RAM 37 Hình 1.1.6.2- Các ghi chức đặc biệt (SFR) 38 Hình 1.1.6.3 - Truy cập nhớ chương trình ngồi 39 Hình 1.1.6.3 - Đồ thị thời gian trình nhận lệnh từ ROM ngồi 39 Hình 1.1.6.3 - Truy cập nhớ liệu 40 Hình 1.1.6.3 - Đồ thị thời gian chu kì đọc liệu từ RAM 41 Hình 1.1.6.3 -5 Đồ thị thời gian chu kì ghi liệu từ RAM 41 Hình 1.1.7.1 - Các nguồn ngắt AT89C51 44 Hình 1.1.7.4 - Hệ thống ngắt AT89 46 Hình 1.1.9 - Đặt lại thời gian cho AT89C51 51 Hình 1.1.9 - Khởi động tự động cho AT89C51 52 Hình 1.1.9 - Khởi động bán tự động cho AT89C51 52 Hình 1.1.9.1 - Sử dụng mạch dao động bên ON chip 53 Hình 1.1.9.1 - Cấu hình nhận Clock từ bên 53 Hình 1.1.9.1 - Mạch dao động bên On chip AT89C51 54 Hình 1.1.9.2 - Phần cứng phục vụ chế độ nguồn giảm chế độ nghỉ 54 Hình 2.1.3 - Menu mở chương trình Proteus 58 Hình 2.1.3 - 2Tiêu hình dùng để mở nhanh Proteus VSM Desktop 58 Hình 2.1.4 - Giao diện sau mở Proteus 59 Hình 3.3.2.2 - 1: Khởi tạo dự án 94 Hình 3.3.2.2 - 2: Chọn đường dẫn lưu dự án 95 Hình 3.3.2.2 - 3: Chọn loại vi điều khiển làm việc 95 Câu trả lời Câu hỏi Rất nhiều Nhiều Ít Rất Bạn có thích học khơng? Bạn có học bạn cần có kiến thức không? Bạn sử dụng kiến thức này? Bạn có nghĩ kiến thức hữu ích nâng cao kết học tập bạn không? Bảng 3.4 - 6: Kết hài lòng Sinh viên Câu trả lời Rất nhiều 17% Số lượng Tỷ lệ Nhiều 10 33% Rất 7% Ít 13 50% Biểu đồ 3.4 - 6: Biểu thị mức độ hiểu sinh viên 7% Rất 50% 13 Ít 33% 10 Nhiều 17% Rất nhiều Series1 10 12 14 16 Series2 Từ kết ta thấy sinh viên đạt điểm mức tiếp thu có tăng kết trung bình yếu nằm khoảng 50% - Sinh viên thực hành môn vi xử lý ứng dụng kít vi điều khiển 8051 116 Bảng 3.4 - 7: Bảng điểm kiểm tra sinh viên ứng dụng kít vi điều khiển 8051 Điểm Học sinh thực hành ứng dụng kít vi điều khiển 8051 (30 sinh viên) Số học sinh Tỉ lệ (%) 0 0 6 11 3 0 0 20 20 36.6 10 10 3.3 10 Biểu đồ 3.4 - 7: Đánh giá kết học tập sinh viên thực hành ứng dụng kít vi điều khiển 8051 36.60% 6 20% 20% 11 10% 10% 3 3.30% 0% 0% 0% 0% 10 6 Số học sinh Tỉ lệ (%) 10 12 Đồng thời tác giả lập phiếu điều tra để đánh giá khả hài lòng người học học thực hành môn vi xử lý Câu hỏi: Em cho biết mức độ hài lòng sau học song học Đánh dấu x vào câu trả lời 117 Câu trả lời Câu hỏi Rất nhiều Nhiều Rất Bạn có thích học khơng? Bạn có học bạn cần có kiến thức không? Bạn sử dụng kiến thức này? Bạn có nghĩ kiến thức hữu ích nâng cao kết học tập bạn không? Bảng 3.4 - 8: Kết hài lòng Sinh viên Câu trả lời Số lượng Tỷ lệ Rất nhiều 27% Nhiều Ít Rất 13 43.30% 30.00% 0% Biểu đồ 3.4 - 8: Biểu thị mức độ hiểu sinh viên ứng dụng kít vi điều khiển 8051 0% 30.00% 43.30% 13 27% 8 Số lượng 10 12 14 16 Tỷ lệ Kết điểm kiểm tra mức độ tiếp thu tốt, điểm gỏi đạt 70% Kết khả quan Qua kết kiểm tra phiếu khảo sát húng thú học tập sinh viên lớp cao đẳng chuyên nghiệp triường Đại học Công Nghiệp Quảng Ninh cho thấy rõ cần thiết tính khả thi ứng dụng kít vi điều khiển 8051 vào giảng dạy 118 thực hành môn vi xử lý xây dụng giảng thực hành môn vi xử lý ứng dụng kít vi điều khiển 8051 Nếu tổ chức thực tốt đồng bộ, mua sắm trang thiết bị thực hành ứng dụng kít vi điều khiển 8051 cho mơn học vi xử lý nói riêng số cơng nghệ khác nói chung phục vụ cho đào tạo chuyên nghành điện tử, điều khiển tự động hóa chất lường đào tạo đào tạo nâng cao rõ rệt, ngày đáp ứng nhu cầu nhân lực trình độ ứng dụng cao cho Tỉnh Quảng Ninh nói riêng xã hội nói chung Bài thực hành số Lập trình với ngắt định thời Tạo xung tín hiệu ngắt chân RD0 xung vòng while chân RD7 I Mục đích Học xong học sinh cần nắm nội dung sau: - Hiểu ý nghĩa chế làm việc ngắt định thời 89Cxx - Hiểu đựơc cách đặt thông số cho ghi cờ ngắt, ghi mặt nạ - Xây dựng chương trình ứng dụng sử dụng ngắt định thời II Tóm tắt lí thuyết Ngắt đáp ứng kiện bên bên ngồi nhằm thơng báo cho vi điều khiển biết thiết bị cần phục vụ phương pháp ngắt, có thiết bị cần phục vụ thiết bị báo cho vi điều khiển cách gửi tín hiệu ngắt Khi nhận tín hiệu này, vi điều khiển ngừng công việc thực để chuyển sang phục vụ thiết bị Chương trình với ngắt gọi trình phục vụ ngắt ISR (Interrupt Service Routine) hay gọi quản ngắt (Interrupt handler) Trình tự thực ngắt: Khi ngắt kích hoạt, trình tự thực vi điều khiển sau: Kết thúc lệnh lưu địa lệnh (PC) vào ngăn xếp Lưu lại trạng thái hành tất ngắt vào bên (nghĩa không lưu vào ngăn xếp) Nhảy đến vị trí cố định nhớ gọi bảng vector ngắt, nơi lưu giữ địa trình phục vụ ngắt 119 Nhận địa ISR từ bảng vector ngắt nhảy tới địa bắt đầu thực trình phục vụ ngắt lệnh cuối RETI (trở từ ngắt) Kết thúc trình phục vụ ngắt, vi điều khiển gặp lệnh RETI trở nơi trước bị ngắt Trước hết, byte đỉnh ngăn xếp nạp vào đếm chương trình PC, tiếp theo, vi điều khiển bắt đầu thực lệnh địa Cơ chế ngắt định thời: TF0 TF1 Vector ngắt Timer 000BH Vector ngắt Timer 1 Nhảy 001BH Nhảy Chúng ta biết rằng, cờ định thời TF đặt lên cao định thời đạt giá trị cực đại quay trở (Roll – over) Chúng ta dùng lệnh “ JNB TF, đích” để kiểm tra trạng thái cờ TF Phương pháp có nhược điểm trình kiểm tra cờ TF, vi điều khiển khơng thể làm việc khác Để khắc phục nhược điểm này, người ta dùng phương pháp ngắt Nếu bit ngắt định thời ghi IE phép định thời quay trở 0, cờ TF bật lên vi điều khiển ngừng việc thực nhảy tới bảng vector ngắt để phục vụ ISR Bằng cách đó, vi điều khiển làm cơng việc khác thông báo định thời quay Cờ ngắt định thời TF0 TF1 hình 9.1 Cho phép ngắt cấm ngắt: Khi Reset tất ngắt bị cấm (bị che), có nghĩa khơng có ngắt vi điều khiển đáp ứng chúng kích hoạt Các ngắt phải cho phép phần mềm để vi điều khiển đáp ứng Có ghi gọi cho phép ngắt IE (Interrupt Enable) chịu trách nhiệm việc cho phép (không che) cấm (che) ngắt Thanh ghi IE định địa bit ý nghĩa bít sau: EA ET2 ES ET1 EX1 ET0 EX0 - EA IE.7 Nếu EA = khơng ngắt báo nhận - Nếu EA = nguồn ngắt mở cấm cách bật xoá bit cho phép tương ứng IE.6 Dự phòng cho tương lai.* - ET2 ES ET1 EX1 IE.5 IE.4 IE.3 IE.2 Cho phép cấm ngắt tràn thu Timer (8952) Cho phép cấm ngắt cổng nối tiếp Cho phép cấm ngắt tràn Timer Cho phép cấm ngắt 120 - ET0 IE.1 Cho phép cấm ngắt tràn Timer - EX0 IE.0 Cho phép cấm ngắt Trong phần cuối file có khai báo sau: /* -Interrupt Vectors: Interrupt Address = (Number * 8) + */ #define IE0_VECTOR /* 0x03 External Interrupt */ #define TF0_VECTOR /* 0x0B Timer */ #define IE1_VECTOR /* 0x13 External Interrupt */ #define TF1_VECTOR /* 0x1B Timer */ #define SIO_VECTOR /* 0x23 Serial port */ #define TF2_VECTOR /* 0x2B Timer */ #define EX2_VECTOR /* 0x2B External Interrupt */ Địa ngắt bảng vector ngắt = số thứ tự ngắt +3 Như địa RAM từ 0x03 đến 0x30 dành cho bảng vector ngắt Ví dụ: Nếu dùng ngắt timer0 dùng bank ta khai báo sau: Void inter1 (void) interrupt using 1{…………………………….} 121 Sơ đồ nguyên lý: III Các bước tiến hành Khởi động phần mềm lập trình Keil C - Tạo file ngattime.c thư mục ngattime Soạn thảo chương trình nguồn - Soạn thảo chương trình theo nội dung sau: #include void init(){ EA = 1; // Cho phép ngắt toàn cục ET1 = 1; // Cho phép ngắt định thời TMOD = 0x02; // Dùng timer1 chế độ bít tự nạp lại TH1 = -200; // Nạp giá trị vào ghi TH1 TL1 = 0; TF1=0; TR1 = ; //Khởi động timer1 } void delay_ms(x){ unsigned int time1,time2; for(time1=0;time1