Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
316,5 KB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC TIN HỌC ĐỀ TÀI: HIỆN THỰC CÁC BÀI THỰC HÀNH VI ĐIỀU KHIỂN HỌ 8051 BẰNG HỢP NGỮ TRONG MÔI TRƯỜNG PROTEUS Sinh viên thực hiện: Tôn Thất Đại Hải MSSV: 50300798 Giảng viên hướng dẫn: TS Phạm Tường Hải Phan Đình Thế Duy Tháng 12-2006 Mục lục nội dung *** Mục lục hình *** Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Nội dung đề tài Sử dụng hợp ngữ 8051 môi trường thiết kế mô mạch-proteus để thực tập thực hành vi điều khiển 8051 nhằm mục đích hổ trợ cho người học dễ dàng tiếp xúc với vi điều khiển họ 8051 hợp ngữ 8051 ***************************** SVTH: Tôn Thất Đại Hải Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy Tầm quan trọng Bên cạnh phát triển nhanh chóng lĩnh vực cơng nghệ phần mềm hệ thống nhúng lĩnh vực đầy tiềm cho tương lai Xu hướng đầu tư mạnh từ công ty lớn quốc gia, dự báo phát triển mạnh vài năm tới Vi điều khiển phần dẻo (-firmware-phần mềm nạp vào ROM vi điều khiền) hai phần hệ thống nhúng Với phát triển nhanh chóng cơng nghệ điện tử ngày có nhiều loại vi điều khiển nhiều hãng khác nhau, nhiên 8051 họ vi điều khiển thông dụng dễ dùng Hơn 8051 nói họ vi điều khiển “tiền đề” cho người muốn học vi điều khiển Sử dụng họ vi điều khiển 8051 thành thạo giúp bạn dễ dàng tìm hiểu họ vi điều khiển khác Với nội dung đề tài soạn thảo nhằm phục vụ cho học viên phần cứng máy tính làm quen với họ vi điều khiển 8051 cách nhanh chóng dễ dàng mơi trường thiết kế mô mạch-proteus ***************************** SVTH: Tôn Thất Đại Hải Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Nội dung Các thực hành thực mô với vi điều khiển 89C51 Nội dung đề tài chia thành bốn nhóm thực hành sau: Nhóm 1: Làm quen với port lệnh đơn giản 8051 Bài 1: Sử dụng vi điều khiển họ 8051 thực mô hoạt động công tắt đèn Yêu cầu thực hành: Sử dụng vi điều khiển họ 8051 thực cơng việc cơng tắt đèn Mục đích thực hành này: • Làm quen với cổng vi điều khiển • Sử dụng lệnh hợp ngữ đơn giản • Biết cấu trúc chương trình hợp ngữ đơn giản • Làm quen vơi môi trường Proteus Phương án giải yêu cầu thực hành: • Kết nối phần cứng:(xem hình 1.1a) Hình 1.1a: Mơ hoạt động cơng tắt đèn • o P1.1 vi điều khiển nối với led o P2.1 nối với switch (xem hình 1.1a) o Các cổng cịn lại khơng dùng Hiện thực phầm mềm: o Sử dụng câu lệnh nhảy vị trí để chờ thay đổi từ bít P2.1 SVTH: Tôn Thất Đại Hải Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy o Mỗi lần thay đổi (P2.1 thay đổi từ mức chuyển sang mức hay ngược lại) đảo bít P1.1 làm cho đèn thay đổi trạng thái (tắt hay sáng) o Sơ đồ chương trình: Đúng P2.1= Sai Setb P1.1 Đúng P2.1= Sai Setb P1.1 Hình 1.1b: Sơ đồ khối Cách vận hành thực hành: • Nối switch với với đất (GRN) đèn tắt • Nối switch với nguồn (Vcc) đèn sáng Bài 2: Điều khiển hai đèn chớp nháy liên tục Yêu cầu: Sử dụng ví điều khiển 89C51 để điều khiển hai đèn luân phiên sáng Mục đích thực hành: • Làm quen với cổng vi điều khiển • Làm quen với kỹ thuật delay lệnh nhảy chổ • Biết cách chọn lựa linh kiện cách đặt nhãn Proteus • Biết cách dịch nạp chương trình hợp ngữ 8051 Phương án giải yêu cầu thực hành: • Kết nối phần cứng: (xem hình 1.2a) SVTH: Tôn Thất Đại Hải Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Hình 1.2a: Điều khiển hai đèn chớp nháy liên tục • o P1.0 nối với led o P1.1 nối với led o Các chân lại nối hình 1.2a Hiện thực phần mềm o Tạo khoảng thời gian delay led sáng led tắt Và đổi vai trò hai led sau khoảng thời gian delay o Hiện thực việc delay cách nạp giá trị vào ghi sau giảm giá trị o Sơ đồ chương trình: SVTH: Tôn Thất Đại Hải Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy Mov R1,#0FFh Mov R2,#0FFh DEC R2 R2=0 Sai Đúng R1=0 Sai Đúng CPL P1.0 CPL P1.1 Hình 1.2b: Sơ đồ khối Cách vận hành thực hành: • Hai đèn led va led luân phiên sáng Bài 3: Thực cộng hai trừ hai số nhị phân Yêu cầu: • Sử dụng vi điều khiển 89C51 để thực việc cộng trừ hai số nhị phân • Dữ liệu nhập vào thơng qua cổng vi điều khiển hiển thị led • Dữ liệu xuất hiển thị led Mục đích thực hành: • Sử dụng cổng vi điều khiển • Thành thạo việc nạp dịch chương trình hợp ngữ Phương án giải yêu cầu thực hành: • Kết nối phần cứng: (xem hình 1.3a) SVTH: Tơn Thất Đại Hải Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Đưa trỏ đàu hàng R0 16 DPTR = #string R0 32 R0 = #0 Clear1 (xóa hàng 1) A=R0 Đưa trỏ đầu hàng A,@A+DPTR Clear2 (xóa hàng 2) Đưa trỏ đầu hàng Write_LCD Inc R0 Hình 3.3b: Sơ đồ khối Cách vận hành thực hành • LCD hiển thị dịng chữ chạy từ trái sang phải Bài 9: Mô việc cộng trừ số chữ số Yêu cầu: • Sử dụng vi điều khiển mô việc cộng trừ hai số có hai chữ số • Dữ liệu nhập vào qua hệ thống phím nhấn hiển thị led đoạn • Dữ liệu xuất hiển thị led đoạn Mục đích thực hành: • Sử dụng thành thạo kỹ thuật qt led kỹ thuật qt phím • Kỹ thuật giải mã led đoạn SVTH: Tôn Thất Đại Hải 17 Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy Phương án giải yêu cầu thực hành: • Kết nối phần cứng: (xem hình 3.4a) Hình 3.4a: Mơ việc cộng trừ hai số có hai chữ số • o Cổng P0 nối với ma trận phím để quét phím o Cổng P1 nối với chân liệu led đoạn dùng để xuất liệu led đoạn (sử dụng quét led) o Cổng P2 nối với chân nguồn led đoạn thông qua BJT dùng để chọn led đoạn (sử dụng quét led) o Các chân cịn lại nối hình vẽ 3.4a Hiện thực phần mềm: o Xây dựng hàm con: Int_timer0: hàm ngắt timer0 miligiây ngắt lần Hàm thực việc gọi hàm quét phím, hàm xử lý hàm quét phím Int_timer1: hàm ngắt timer1 miligiây quét lần Quet_led: để xuất liệu led đoạn Process: Hàm xử lý phím bắt Quet_phim: hàm qt phím o Chương trình lệnh nhảy chổ Các hàm ngắt timer nhận biết xử lý tín hiệu nhập vào o Sơ đồ chương trình: SVTH: Tơn Thất Đại Hải 18 Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Init_port Init_other SJMP $ TF0=0 Cài lại đếm TF=0,TR=1 Nhận phím từ ma trận phím Quét phím Xử lý phím nhận (thực việc cộng trừ) Process Qt phím Hình 3.4b: Sơ đồ khối Cách vận hành thực hành: • Ma trận phím đánh số đến 15 từ trái qua phải xuống • Nhấn phím từ đến để nhập hai thơng số cần tính tốn (hai số hiển thị led đoạn, từ led đến 3) • Nút thứ 10: (change)để thay đổi số nhập (ví dụ đạng nhập số thứ nhấn nút chuyển sang nhập số thứ nhất) • Nút 11: (reset) xóa hai số vừa nhập (đưa hai số 0) • Nút 12: (add) thực phép cộng hai số vừa nhập (kết hiển thị led 4,5,6) • Nút 13: (sub) thực phép trừ hai số vừa nhập (kết hiển thị led 4,5,6) SVTH: Tôn Thất Đại Hải 19 Các thực hành vi điều khiển 8051 • • GVHD: Phan Đình Thế Duy Nút 14: (inc) tăng số nhập lên đơn vị(ví dụ nhập số thứ nhấn nút số thứ cộng thêm đơn vị) Nút 15: (dec) giảm số nhập xuống đơn vị(ví dụ nhập số thứ nhấn nút số thứ cộng trừ đơn vị) Nhóm 4: Một vài tốn ứng dụng vi điều khiển họ 8051 Bài 10: Sử dụng vi điều khiển 8051 làm đồng hồ thể thao Yêu cầu: • Sử dụng vi điều khiển làm đồng hồ tính Đếm hiển thị phút giây led đoạn • Thiết bị phải cho phép chỉnh sửa • Thiết bị cho phép tính thể thao (bấm giờ) Đơn vị tính Mục đích thực hành: • Sử dụng ngắt timer vi điều khiển • Sử dụng kỹ thuật quét led quét phím, giải mã led đoạn • Tổng hợp kỹ có từ thực hành trước để thực cơng việc cụ thể • Cho thấy ứng dụng cụ thể vi điều khiển Phương án giải yêu cầu thực hành: • Kết nối phần cứng:(xem hình 4.1a) Hình 4.1a: Đồng hồ thể thao SVTH: Tôn Thất Đại Hải 20 Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải o Cổng P0 nối vào ma trận phím: dùng để quét phím (kiểm tra phím nhấn) o Cổng P1 nối vào chân liệu led đoạn: dùng để xuất liệu led đoạn (dùng quét led) o Cổng P2 nối vào chân nguồn led đoạn: dùng để chọn led (sử dụng quét led) o Các chân khác nối hình vẽ 4.1a • Hiện thực phần mềm: o Xây dựng hàm Init_port: hàm khởi động cổng cho vi điều khiển Init_other: hàm khởi động thơng số cịn lại cho vi điều khiển Int_timer0: hàm ngắt timer (cứ miligiây ngắt lần) để thực việc tính tốn Quet_led: hàm quét led Xuat: hàm bổ trợ cho việc xuất led Đổi kết phút giây dạng thập lục phân thành số BCD đưa vào ghi tạm đê thuận tiện cho việc xuất led Process: Hàm xử lý phím nhận Quet_phim: hàm quét phím o Hàm lệnh nhảy chổ chờ tín hiệu ngắt từ hàm ngắt timer0 o Sơ đồ chương trình: SVTH: Tơn Thất Đại Hải 21 Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy Init_port Init_other SJMP $ TF0=0 Đúng Sai Cài lại đếm TF=0,TR=1 Tính Quet_phim Process Xuat Quet_led Hình 4.1b: Sơ đồ khối Cách vận hành thực hành: • Các nút nhấn (phím) đánh số từ đến 15 từ trái sang phải xuống Tuy nhiên có nút từ đến có tác dụng nút khác không dùng SVTH: Tôn Thất Đại Hải 22 Các thực hành vi điều khiển 8051 • • • • • • • GVHD:TS Phạm Tường Hải Nút 0: cho dừng xuất led (đồng hồ chạy) Trạng thái phép người dùng lựa chọn chế độ thay đổi hay chế độ bấm thể thao Nếu nhấn tiếp nút trở trạng thái bình thường (chạy đồng hồ) Nút 1: Nút có tác dụng nhấn nút (vào trạng thái chọn chế độ đồng hồ) Nếu nhấn nút cho phép vào chế độ bấm (các led trở số 0, trạng thái đồng hồ chạy không hiển thị) Nhấn lần nút khỏi chế độ bấm Nút 4: Nút có tác dụng vào chế độ bấm Nếu nhấn nút cho phép tính (đơn vị sao) Nhấn tiếp ngưng đếm để xem kết Nút 2: Nút có tác dụng vào trạng thái chọn chế độ đồng hồ Lúc nút có tác dụng dừng đồng hồ vào chế độ chỉnh sửa đồng hồ Nhấn thoát khỏi chế độ chỉnh đồng hồ, đồng hồ chạy lại bình thường Nút 3: Nút có tác dụng chế độ chỉnh sửa đồng hồ Lúc nút cho phép thay đổi cách chỉnh sửa (chỉnh giây, chỉnh phút hay chỉnh giờ) Nút 5: Nút có tác dụng chế độ chỉnh sửa đồng hồ Nút có tác dụng tăng giây (phút hay tùy vào loại chỉnh sửa) lên đơn vị Nút 6: Nút có tác dụng chế độ chỉnh sửa đồng hồ Nút có tác dụng giảm giây (phút hay tùy vào loại chỉnh sửa) xuống đơn vị Bài 11: Mô hiệu ứng lighriver led đơn Yêu cầu: • Sử dụng vi điều khiển 89C51 để mơ hiệu ứng lighriver • Thiết bị xây dưng phải cho phép người dùng thiết lập thời gian sáng tưng đèn • Cho phép người dùng thay đổi chế độ sáng Mục đích thực hành: • Tổng hợp kỹ có (quét led, quét phím, sử dụng ngắt,… ) để thực cơng việc cụ thể • Cho thấy ứng dụng vi điều khiển Phương án giải yêu cầu thực hành: • Kết nối phần cứng:(xem hình 4.2a) SVTH: Tôn Thất Đại Hải 23 Các thực hành vi điều khiển 8051 • GVHD: Phan Đình Thế Duy Hình 4.2a: Mơ hiệu ứng lighriver Hiện thực phần mềm: o Xây dựng chương trình con: Init_port: hàm khởi động cổng vi điều khiển Init_other: hàm khởi động thơng số cịn lại vi điều khiển Int_timer0: hàm ngắt timer0 (cứ miligiây ngắt lần), hàm thực việc gọi hàm quét phím, xử lý phím quét led Int_timer1: hàm ngắt timer1 (số đếm nạp vào timer1 chạy 50 miligiây lần gọi) Hàm dùng việc delay tin hiệu Quet_led: hàm quét led Process: hàm xử lý phím nhận Display_led: hàm bổ trợ cho hàm quét led Hàm đưa giá trị ghi dùng cho viêc quét led Cal_delay: hàm chuyển giá trị thập phân thành thập lục phân để dễ dàng tính tốn Display: hàm lựa chọn mode để hiển thị Mod0: hàm thực chế độ Mod1: hàm thực chế độ Mod2: hàm thực chế độ Mod3: hàm thực chế độ Mod4: hàm thực chế độ Mod5: hàm thực chế độ SVTH: Tôn Thất Đại Hải 24 Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Set_delay: hàm thực việc thiết lập thông số delay cho led Giá trị delay nạp vào ghi a trước gọi hàm Quet_phim: hàm quét phím o Chương trình chính: vịng lặp vơ tận mà gọi hàm display o Sơ đồ chương trình: Hàm Main (Hàm chính) Hàm Int_timer (Hàm ngắt timer0) Init_port Cài lại đếm Init_other TF0=0,TR0=1 SJMP $ Quet_phim Process Quet_led Hình 4.2b: Sơ đồ khối Cách vận hành thực hành: • Các nút nhấn (phím) đánh số từ đến 15 từ trái sang phải xuống Tuy nhiên nút 11, nút 12 nút 15 khơng dùng • Nút đến nút số từ đến 9: sử dụng để thiết lập thời gian delay cho led đơn • Nút 10: Chọn kiểu sáng dãy led đơn, có kiểu sáng mơ tả hình vẽ: Mode 0: đèn sáng từ led đến led 7, sau quay ngược trở lại SVTH: Tôn Thất Đại Hải 25 Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy 1 2 3 4 5 6 7 Mode 1: đèn sàng lúc, chạy từ đèn đến đèn 7, sau quay ngược trở lại 1 4 5 6 7 7 Mode 2: đèn sáng lúc, led đến led 7, sau quay ngược trở lại Mode 3: đèn sáng theo sơ đồ (hình vẽ) Trạng thái cuối Sau lặp lại sơ đồ SVTH: Tôn Thất Đại Hải 26 Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Mode 4: đền led sáng theo sơ đồ Mode 5: đèn led đơn sáng theo sơ đồ (hình vẽ) • • Nút 13: Thay đổi đèn thiết lập (ví dụ: thiết lập cho led 0, nhấn nút chuyển sang thiết lập cho đèn led 1) Nút 14: Kết thúc việc thiết lập vào trạng thái chạy lighriver Nhấn tiếp dừng hiệu ứng trở lại trạng thái thiết lập Bài 12: Sử dụng vi điều kiển 8051 để giao tiếp với LCD Trong cho phép người dùng nhập trực tiếp nội dung dòng chữ cần hiển thị, thời gian delay, cách hiển thị Yêu cầu: • Sử dụng 89C51 để giao tiếp với LCD xuất chuổi ký tự • Cho phép người dùng nhập ký tự cần hiển thị vào LCD • Cho phép người dùng điều chỉnh thời gian delay LCD Mục đích thực hành: • Sử dụng vi điều khiển điều khiển LCD • Tổng hợp kỹ có từ tập Phương án giải yêu cầu thực hành: • Kết nối phần cứng:(Xem hình 4.3a) SVTH: Tơn Thất Đại Hải 27 Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy Hình 4.3a: Giao tiếp với LCD o Cổng P0 nối với ma trận phím: dùng để quét phím o Cổng P1 nối với chân liệu LCD (chân đến chân 14, đáng số từ từ trái sang) dùng để đưa liệu LCD o Nối chân số (chân nguồn) LCD với nguồn o Nối hai chân (tương phản) 3(chân đất) với đất o Chân (RS) nối với P3.0, chân (RW) nối với P3.1, chân (EN) nối với P3.2 o Cổng P2 nối với chân liệu led đoạn dùng để xuất số thời gian delay led đoan • Hiện thực phần mềm: o Xây dựng chương trình con: Init_port: khởi động cổng cho vi điều khiển Init_orther: khởi động thông số lại cho vi điều khiển Int_timer0: hàm ngắt timer (cứ 10 miligiây thi ngắt lần) Hàm thực việc gọi hàm quét phím hàm xử lý phím Process: hàm xử lý phím nhận Quet_phim: hàm quét phím Int_LCD: hàm khởi động LCD Write_cmd: hàm ghi câu lệnh điều khiển vào LCD Delay: hàm delay (tạo khoảng thời gian delay để LCD thực lệnh) Write_data: hàm ghi liệu cần hiển thị vào LCD Clear1: hàm xóa dịng LCD Clear2: hàm xóa dịng LCD Write_LCD: hàm ghi ký tự cụ thể vào LCD Set_cursor: hàm thiết lập vị trí trỏ LCD LCD_clear: hàm xóa LCD o Chương trình chính: vịng lặp vơ tận gọi hàm init_LCD write_data o Sơ đồ chương trình: SVTH: Tơn Thất Đại Hải 28 Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Hàm Main (Hàm chính) Hàm Int_timer (Hàm ngắt timer0) Init_port Cài lại đếm Init_other TF0=0,TR0=1 Init_LCD Quet_phim Write_data Process Delay Hình 4.3b: Sơ đồ khối Cách vận hành thực hành: • Các nút nhấn (phím) đánh số từ đến 15 từ trái sang phải xuống • Nút đến 11 tương ứng với ký tự A,B,…,L • Nút 12 (level 1): nhập số delay (được xuất led 7) Nhấn số làm tăng thời gian delay lên lần so với mặc định • Nút 13 (level 2): nhập số delay (được xuất led 7) Nhấn phím làm tăng thời gian delay lên lần so với mặc định • Nút 14 (khoang trong): khoảng trắng • Nút 15 (start/Stop): bắt đầu chạy LCD (với ký tự nhập) ***************************** SVTH: Tôn Thất Đại Hải 29 Các thực hành vi điều khiển 8051 GVHD: Phan Đình Thế Duy Kết luận Sử dụng hợp ngữ 8051 môi trường thiết kế mô – Proteus để thực thực hành đề tài thú vị có nhiều ứng dụng bổ ích từ đề tài Nhìn chung thực hành thực đầy đủ yêu cầu đặc đề tài điều kiện thời gian 15 tuần thực hiên Nó thực tài liệu thực hành bổ ích cho sinh viên phần cứng máy tính muốn làm quen với vi điều khiển Bởi lẽ thực hành phần thiếu kỹ sư phần cứng máy tính Trong điều kiện thời gian khơng cho phép nỗ lực xong không tránh khỏi hạn chế đề tài Đó chương trình có nhiều chổ chưa tối ưu, thiết kế chưa sinh động, dễ dùng Và điểm mà chưa khắc phục Với nhược điểm hướng mở rộng đề tài là: - Đối với 12: Việc hiển thị lên LCD chưa sinh động Có thể mở rộng việc cho nhập nhiều ký tự hơn, cho phép người dùng nhập hiển thị trực tiếp liệu vào LCD (thay phải dừng LCD nhập liệu) - Nội dung giao tiếp với nhớ - Nội dung ngắt nối tiếp - Mở rộng thiết bị giao tiếp với vi điều khiển Sau 15 tuần làm việc tơi hồn tất đề tài, thật đem lại cho tơi nhiều kiến thức bổ ích vi điều khiển họ 8051 lập trình hợp ngữ 8051 Hơn từ việc thực đề tài đem lại cho tơi khơng học kinh nghiệm quý giá, tin thành có từ việc thực đề tài hỗ trợ cho nhiều tương lai Xin chân thành cảm ơn quý thầy cô bạn, đặc biệt thầy Phan Đình Thế Duy giúp tơi hồn thành đề tài ***************************** SVTH: Tơn Thất Đại Hải 30 Các thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải Tài liệu tham khảo Vi điều khiển 8051 – Tống Văn Ơn, Hồng Đức Hải Vi xử lý máy vi tính – Thầy Nguyễn Xuân Minh Vi xử lý - Hồ Trung Mỹ Tập slide cấu trúc máy tính – TS.Phạm Tường Hải Tập tài liệu hướng dẫn sử dụng proteus - Phan Quang Thiện ***************************** SVTH: Tôn Thất Đại Hải 31