CỤC HẢNG HẢI VIỆT NAM TRƯỜNG CAO ĐẲNG HÀNG HẢI I GIÁO TRÌNH MÔ ĐUN:VI ĐIỀU KHIỂN 2 NGHỀ: CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA TRÌNH ĐỘ CAO ĐẲNG Ban hành kèm theo Quyết định số: ngày. của Hiệu trưởng trường Cao đẳng Hàng hải I Hải Phòng 1 TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. 2 LỜI GIỚI THIỆU Giáo trình Mô đun Vi điều khiển 2 là một trong những giáo trình mô đun đào tạo chuyên ngành được biên soạn theo nội dung chương trình khung được Hiệu trưởng trường Cao đẳng Hàng hải ban hành dành cho hệ Cao đẳng nghề công nghệ kỹ thuật điều khiển và tự động hóa.
Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức và kỹ năng chặt chẽ với nhau, logíc. Khi biên soạn, tác giả đã cố gắng cập nhật những kiến thức mới có liên quan đến nội dung chương trình đào tạo và phù hợp với mục tiêu đào tạo, nội dung lý thuyết và thực hành được biên soạn gắn với nhu cầu thực tế trong sản xuất đồng thời có tính thực tiễn cao. Nội dung giáo trình được biên soạn với dung lượng thời gian đào tạo 90 giờ gồm có: Bài 1: Tổng quan về vi điều khiển PIC Bài 2: Vi điều khiển PIC 16F877A Bài 3: Ngôn ngữ lập trình CS1 Bài 4: Thiết kế mạch điều khiển LED đơn Bài 5: Thiết kế mạch điều khiển màn hình LCD16x2 Bài 6: Thiết kế mạch điều khiển động cơ bước Bài 7: Thiết kế mạch điều khiển màn hình led 7 thanh Bài 8: Thiết kế mạch điều khiển đọc dữ liệu từ bàn phím Hexa Bài 9: Thiết kế mạch điều khiển màn hình LED ma trận Bài 10: Thiết kế mạch điều khiển ngắt Bài 11: Thiết kế mạch đọc và kiểm tra nút nhấn Mặc dù đã cố gắng tổ chức biên soạn để đáp ứng được mục tiêu đào tạo nhưng không tránh được những khiếm khuyết. Rất mong nhận được đóng góp ý kiến của các thầy, cô giáo, bạn đọc để người biên soạn sẽ hiệu chỉnh hoàn thiện hơn.
Các ý kiến đóng góp xin gữi về Trường Cao đẳng Hàng hải I số 498 Đà Nẵng, Hải An, Hải Phòng Hải Phòng, ngày tháng năm 201 Tham gia biên soạn Chủ biên : Ths.Nguyễn Thị Ngọc Hà 3 MỤC LỤC TT Nội dung Trang 1 Lời giới thiệu 3 2 Mục lục 4 3 Danh mục bảng, biểu, hình ảnh 5 4 Nội dung 7 Bài 1: Tổng quan về vi điều khiển PIC 9 Bài 2: Vi điều khiển PIC 16F877A 15 Bài 3: Ngôn ngữ lập trình C51 34 Bài 4: Thiết kế mạch điều khiển LED đơn 50 Bài 5: Thiết kế mạch điều khiển màn hình LCD16x2 56 Bài 6: Thiết kế mạch điều khiển động cơ bước 68 Bài 7: Thiết kế mạch điều khiển màn hình led 7 thanh 75 Bài 8: Thiết kế mạch điều khiển đọc dữ liệu từ bàn phím 83 Hexa Bài 9: Thiết kế mạch điều khiển màn hình LED ma trận 89 Bài 10: Thiết kế mạch điều khiển ngắt 100 Bài 11: Thiết kế mạch đọc và kiểm tra nút nhấn 110 5 Tài liệu tham khảo 120 4 Danh mục bảng biểu TT Tên bảng Trang 1 Bảng 5.1 Bảng chức năng các chân của LCD16x2 58 2 Bảng 5.2 Bảng mã lệnh điều khiển LCD16x2 59 3 Bảng 7.1 Bảng mã hiển thị số lên led 7 thanh 77 4 Bảng 7.2 Bảng mã điều khiển led 7 thanh 77 5 Bảng 8.1 Bảng mã điều khiển và mã dữ liệu đầu ra bàn phím 84 Hexa 6 Bảng 9.1 Bảng mã điều khiển quét hàng của led ma trận 91 7 Bảng 9.2 Bảng mã phông chữ hiển thị trên led ma trận 91 8 Bảng 11.1 Bảng mã số liệu của nút nhấn 111 5 Danh mục hình vẽ TT Tên hình vẽ Trang 1 10 Hình 1.1 Kiến trúc Von-Neuman 2 11 Hình 1.2 Kiến trúc Havard 3 12 Hình 1.3 Cơ chế pipelining 4 Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A và các 16 dạng sơ đồ chân 5 18 Hình 2.2 Sơ đồ khối vi điều khiển PIC16F877A.3 Bộ nhớ chương trình 19 7 20 Hình 2.4 Sơ đồ bộ nhớ dữ liệu PIC16F877A 8 25 Hình 2.5 Sơ đồ khối của Timer0 9 26 Hình 2.6 Sơ đồ khối của Timer1 10 27 Hình 2.8 Sơ đồ khối bộ chuyển đổi ADC.9 Các cách lưu kết quả chuyển đổi AD.10 Nguyên lí hoạt động của một bộ so sánh đơn giản.11 Các chế độ hoạt động của bộ comparator.1 Sơ đồ nguyên lý mạch led đơn 50 16 Hình 5.1 Sơ đồ nguyên lý màn hình LCD16x2 57 17 Hình 6.1 Sơ đồ nguyên lý mạch điều khiển động cơ bước.2 Hình ảnh thực tế động cơ bước 69 19 Hình 6.3 Giản đồ xung điều khiển động cơ bước 70 20 Hình 7.1 Sơ đồ nguyên lý màn hình LED 7 thanh.1 Sơ đồ nguyên lý mạch bàn phím Hexa.1 Sơ đồ nguyên lý màn hình LED ma trận.1 Sơ đồ mạch các chân vào ra của AT89S51 101 24 Hình 11.1 Sơ đồ nguyên lý mạch nút nhấn. 110 7 GIÁO TRÌNH MÔ ĐUN Tên mô đun: Vi điều khiển 2 Mã mô đun: MĐ 6510305.31 Vị trí, tính chất, ý nghĩa và vai trò của mô đun: - Vị trí của mô đun: Mô đun được bố trí dạy sau khi học xong môn học mô đun, môn học kỹ thuật cơ sở - Tính chất của mô đun: Là mô đun kỹ thuật, thuộc các mô đun đào tạo nghề bắt buộc. - Ý nghĩa và vai trò của mô đun: Trong các dây chuyền sản xuất, cũng như các thiết bị tự động đơn lẻ và các hệ nhúng hiện nay việc ứng dụng vi điều khiển đặc biệt là các họ vi điều khiển tích hợp nhiều khối ngoại vi trong các lĩnh vực này là rất phổ biến nhằm tăng tính linh hoạt, độ chính xác, giảm giá thành cũng như độ ổn định của hệ thống. Mục tiêu của mô đun: Về kiến thức: - Trình bày được cấu trúc, ứng dụng cả vi điều khiển trong công nghiệp.
- Kiểm tra và viết được các chương trình điều khiển. Về kỹ năng: - Sử dụng được các thiết bị dùng vi điều khiển. - Viết được các chương trình điều khiển - Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế. Năng lực tự chủ và trách nhiệm: - Rèn luyện cho sinh viên thái độ nghiêm túc, cẩn thận, chính xác trong học tập và thực hiện công việc Nội dung của mô đun: 8 BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC MĐ 6510305.01 Giới thiệu Bài này giới thiệu cho người học về vi điều khiển Pic.
Pic là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Divisiont. PIC bắt nguồn từ chữ viết tắt của “Programmable IntelligentComputer” (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650 Mục tiêu - Giúp người học có thể hiểu rõ hơn về vi điều khiển Pic - Biết được kiến trúc và kiến trúc của vi điều khiển Pic. - Định hướng được các thao tác cho người học về các dòng Pic và cách lựa chọn vi điều khiển Pic Nội dung 1.
Pic là gì PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay. Kiến trúc Pic Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman và kiến trúc Havard.1 Kiến trúc Von Neuman Còn gọi là kiến trúc Princeton, cách tổ chức bộ nhớ của kiểu kiến trúc này là cả bộ nhớ Bus dữ liệu. Thời kỳ đầu của kỷ nguyên máy tính, bộ nhớ không có độ tin cậy như hiện nay và hay tạo ra những lỗi hệ thống.
Chính vì vậy mà kiểu kiến trúc này được ưa chuộng, bởi vì nó được dễ dàng thiết kế, nâng cao độ tin cậy của hệ thống và dễ dàng thay thế những vùng nhớ bị lỗi kỹ thuật. Nhờ những lợi thế đó mà trong một thời gian kiểu kiến trúc này đã được thương mại và sản xuất. Tuy nhiên nó cũng có một số nhược điểm: hạn chế băng thông, thực hiện nhiều lần lấy dữ liệu chỉ cho một lệnh, không thể thực hiện song song thao tác này. Chính vì sự phổ biến đầu tiên của kiến trúc Von Neumann mà hầu hết các loại Vi Điều Khiến 9 đều được xây dựng quanh cấu trúc này, mặc dù giá thành bộ nhớ hiện nay đã rẻ hơn rất nhiều và độ tin cậy cũng tăng lên rất nhiều.
Von Neumann Architecture 8-bit Program Bus & Data Memory CPU Hình 1.1: Kiến trúc Von-Neuman 2.2 Kiến trúc Harvard Havard có không gian nhớ dành cho bộ nhớ dữ liệu và bộ nhớ chương trình riêng biệt. Lợi thế và hiệu năng chính của kiểu dữ liệu này là nó có 2 Bus dữ liệu riêng biệt hoạt động đồng thời phục vụ cho bộ nhớ dữ liệu và bộ nhớ chương trình: Trong khi CPU lấy dữ liệu từ bộ nhớ chương trình, thì nó vẫn có thể đọc ghi dữ liệu ở vùng nhớ dữ liệu. Một lợi thế khác của kiến trúc Harvard là độ rộng Bus bộ nhớ chương trình và Bus dữ liệu có thể khác nhau. Không phải tất tất cả các loại Vi điều khiển có kiến trúc Harvard điều có lợi thế này, nhưng PIC thì có.
Do bus có độ rộng khác nhau nên độ rộng Bus bộ nhớ chương trình có thể rộng hơn bộ nhớ dữ liệu. Với PIC-8bit thì Bus dự liệu luôn là 8-bit, tuy nhiên Bus bộ nhớ chương trình có thể rộng hơn, bao nhiêu tùy thuộc và mục đích của loại PIC đó. Với PIC 8-bit thì có 3 loại được phân chia thành loại có độ rộng Bus bộ nhớ chương trình là 12-bit, 14- bit, và 16-bit. Bus bộ nhớ chương trình rộng hơn sẽ đưa dữ liệu từ bộ nhớ chương trình nhiều hơn cũng trong một chu kỳ máy.
10 Harvard Architecture 8-bit Data Bus Memory 14-bit CPU Bus Program Memory Hình 1.2: Kiến trúc bộ nhớ kiểu harvard. Risc và Cisc Như đã trình bày ở trên, kiến trúc Havard là khái niệm mới hơn so với kiến trúc Von- Neuman. Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi của một vi điều khiển.