Giáo Trình Vi Điều khiển ứng dụng

209 161 1
Giáo Trình Vi Điều khiển ứng dụng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ LAO ĐỘNG THƯƠNG BINH – XÃ HỘI TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VĨNH LONG KHOA ĐIỆN – ĐIỆN TỬ  GIÁO TRÌNH : VI ĐIỀU KHIỂNỨNG DỤNG ( Mã học phần : DT1212 ) Vĩnh Long, tháng năm 2017 Lời giới thiệu Giáo trình biên soạn để đào tạo ngành công nghệ kỹ thuật điện – điện tử công nghệ tự động hóa trình độ Đại học Nội dung giáo trình phù hợp với chương trình chi tiết học phần Vi điều khiển ứng dụng trường Đại học Sư phạm Kỹ thuật Vĩnh long phê duyệt Nội dung biên soạn ngắn gọn, dễ hiểu cập nhật kiến thức cách logic gắn kết chặt chẽ với có mức độ khó tăng dần theo nội dung Khi thực biên soạn giáo trình này, nhóm tác giả cố gắng trình bày chi tiết kiến thức cập nhật kiến thức phù hợp với mục tiêu đào tạo chương trình học phần Vi điều khiển ứng dụng Ngồi ra, nhóm biên soạn trình bày thêm phần mềm hỗ trợ có tính thực tiễn cao mơ thực thi bo KIT, bo điều khiển thực tế sản xuất sống Tuy nhiên, giáo trình cần cập nhật thêm kiến thức cho phù hợp với ngành đào tạo để khắc phục thiếu sót khuyết điểm Do đó, nhóm tác giả mong muốn đóng góp ý kiến Q Thầy Cơ bạn đọc để nhóm biên soạn hiệu chỉnh giáo trình ngày hồn thiện Các ý kiến đóng góp xin gửi địa mail: thienmn@vlute.edu.vn Hoặc Khoa Điện – Điện tử ; Trường Đại học Sư phạm Kỹ thuật Vĩnh Long Vĩnh long, ngày 01 tháng năm 2017 Nhóm biên soạn: ThS Mai Nhật Thiên ( Chủ biên) ThS Lương Hoài Thương ThS Đặng Thành Tựu Giáo trình Vi điều khiển Ứng dụng Mục lục Nội dung Lời giới thiệu Mục lục CHƯƠNG HỌ VI ĐIỀU KHIỂN MCS – 51 1.1 Tóm tắt phần cứng 1.1.1 Tổng quát 1.1.2 Sơ đồ chân 1.1.3 Cấu trúc port xuất nhập 13 1.1.4 Tổ chức nhớ 13 1.1.5 Các ghi có chức đặc biệt 17 1.1.6 Bộ nhớ 22 1.1.7 Hoạt động Reset 23 1.1.8 Các vi điều khiển ùng họ MCS – 51 24 1.2 Tóm tắt tập lệnh hợp ngữ 24 1.2.1 Mở đầu 24 1.2.2 Các kiểu định địa 25 1.2.3 Các nhóm lệnh 28 1.3 Hoạt động định thời 57 1.3.1 Tổng quát 57 1.3.2 Các ghi điều khiển Timer 58 1.3.3 Các chế độ hoạt động 60 1.4 Hoạt động port nối tiếp 66 1.4.1 Tổng quát 66 1.4.2 Các ghi điều khiển port nối tiếp 67 1.4.3 Các chế độ hoạt động 67 1.5 Hoạt động ngắt 76 1.5.1 Tổng quát 76 ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng 1.5.2 Các ghi điều khiển ngắt 77 1.5.3 Các hoạt động ngắt 77 Bài tập chương 84 CHƯƠNG LẬP TRÌNH ỨNG DỤNG 85 2.1 Phần mềm hỗ trợ: 85 2.1.1 Phần mềm lập trình ASM C 85 2.1.2 Phần mềm mô phần cứng: 101 2.2 Lập trình điều khiển led đơn 110 2.3 Lập trình điều khiển led đoạn 115 2.3.1 Giới thiệu LED đoạn 115 2.3.2 Mã LED: 115 2.3.3 Lập trình điều khiển LED đoạn: 116 2.3.4 Lập trình điều khiển LED đoạn phương pháp quét: 118 2.4 Lập trình giao tiếp phím ấn 121 2.5 Lập trình Timer/Counter 123 2.6 Lập trình ngắt 123 2.6.1 Ngắt ngoài: 124 2.6.2 Ngắt Timer: 128 2.6.3 Truyền liệu cổng COM: 131 2.7 Lập trình điều khiển hệ thống 136 2.7.1 Lập trình điều khiển động không đồng pha quay chiều 136 2.7.2 Lập trình khởi động – tam giác cho động không đồng pha 138 2.7.3 Lập trình điều khiển Động bước 139 2.7.4 Lập trình điều khiển Đèn giao thơng số 146 2.7.5 Lập trình điều khiển phân loại đếm sản phẩm 150 2.7.6 Lập trình đo lường điều khiển nhiệt độ 155 Bài tập chương 162 CHƯƠNG VI ĐIỀU KHIỂN ARDUINO 163 3.1 Giới thiệu Arduino 163 ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng 3.2 Phần cứng Arduino 164 3.2.1 Board Arduino Uno 164 3.2.2 Board Arduino Mega 2560 167 3.3 Phần mềm lập trình Arduino 167 3.3.1 Cài đặt phần mềm Arduino 167 3.3.2 Hướng dẫn sử dụng phần mềm IDE 171 3.3.3 Một số lệnh Arduino: 172 3.4 Lập trình ứng dụng với Arduino 181 3.4.1 Lập trình giao tiếp với Led đơn 181 3.4.2 Lập trình giao tiếp với Led đoạn 190 3.4.3 Lập trình giao tiếp với Led ma trận 199 3.4.4 Lập trình giám sát điều khiển nhiệt độ 203 Bài tập chương 207 Tài liệu tham khảo 208 ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng CHƯƠNG HỌ VI ĐIỀU KHIỂN MCS – 51 1.1 Tóm tắt phần cứng 1.1.1 Tổng quát Vi điều khiển( microcontroller) IC tích hợp nhớ kích cỡ nhỏ, thiết bị ngoại vi với vi xử lý ( microprocessor) Sự khác biệt vi xử lý vi điều khiển hư sau: + Hệ thống điều khiển dùng vi xử lý yêu cầu người thiết kế phải hiểu rõ cấu trúc thành phần vi xử lý, nhớ, thiết bị ngoại vi cách giao tiếp, thiết kế mạch in; đồng thời vi xử lý thường xử lý liệu ( data ) theo dạng byte, word , doubleword quardword + Vi điều khiểnlà IC tích hợp yếu tố trên; đồng thời việc sử dụng vi điều khiển không bắt buộc người sử dụng nắm vững cấu trúc hệ thống vi xử lý Ngồi ra, lĩnh vực cơng nghiệp, vi điều khiểnrất tiện ích chúng xử lý liệu theo dạng byte, word dạng bit - Ngày nay, nhiều hãng chế tạo loại vi điều khiển như: + Họ vi điều khiển ATMEL: 8051, Atmel AT91, At90,… + Họ vi điều khiểnFreescale Semiconductor: 68HC05, 68HC16, MPC 860, + Họ vi điều khiển Microchip: PIC10F, PIC12F, PIC16F, PIC18F, PIC32MX,… + Họ vi điều khiển sTMicroelectronics: ST62, ST7,STM8, STM32 ( Cortex – Mx), Giáo trình này, tác giả chọn họ MCS – 51 hãng ATMEL để trình bày + Họ 80C31 khơng có nhớ bên ( chưa tích hợp được) + Họ 80C51 tích hợp kbyte nhớ PROM ( lập trình lần khơng thể xóa để lập trình lại được) + Họ 87C51 tích hợp kbyte nhớ EPROM ( cho phép lập trình nhiều lần xóa để lập trình lại tia cực tím) + Họ 89C51 tích hợp kbyte nhớ EEPROM, có timer ( nhớ cho phép lập trình nhiều lần điện cách tiện lợi nhanh chóng) + Ngồi ra, họ MCS-52 tích hợp kbyte nhớ EEPROM, có timer ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng - Ứng dụng: vi điều khiển sử dụng nhiều hệ thống điều khiển công nghiệp, dây chuyền sản xuất, máy giặt, máy điều hòa nhiệt độ, … Các vi điều khiển họ MCS – 51 có đặc trưng sau:  Có kbyte nhớ FlashRom bên  Có 128 byte RAM nội  Có port xuất / nhập ( bit)  Có khả giao tiếp truyền liệu nối tiếp  Có thể giao tiếp với 64 kbyte nhớ bên để lưu chương trình điều khiển lưu liệu  Có 210 bit ( truy xuất bit theo lệnh xử lý bit) - Sơ đồ cấu trúc bên học MCS – 51 Hình 1 Sơ đồ cấu trúc bên ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng - Khối ALU (Arithmetical Logical Unit ): có ngõ vào nhận liệu từ ghi tạm thời TMP ( Temporarily Register) 1ngõ cho phép ALU gởi liệu xử lý lên bus liệu ( data bus) Khối ALU thực phép toán như: Add, Subtract, Multiple, Complement, Increment, Decrement, Shift right, Shift left, And logic, - Thanh ghi ACC ( Accumulator): phép toán logic xảy ALU ACC Kết phép toán thường đặt ghi ACC ( hay ghi A) Thanh ghi a thường đơn vị đo vi điều khiển Giả sử : vi điều khiển89C51 có ghi A với độ dài bit - Thanh ghi đếm chương trình (Program Counter): ghi có chức quản lý lệnh đăng thực lệnh thực Thanh ghi PC có chiều dài liệu lớn chiều dài từ liệu vi điều khiển + Giả sử rằng: vi điều khiển bit giao tiếp với 65536 nhớ ghi PC phải có chiều dải 16 bit để truy xuất từ ô nhớ thứ đến ô nhớ thứ 65535 + Thanh ghi PC nạp giá trị trước vi điều khiển thực thi chương trình Giá trị địa ô nhớ chứa lệnh chương trình - Thanh ghi trạng thái ( Status Register): ghi gọi ghi cờ Flag Register dùng để lưu trữ kết số lệnh kiểm tra Các lệnh xảy khối ALU thường ảnh hưởng đến ghi trạng thái Thanh ghi trạng thái chứa bit sau: Z N C I IF O P + Cờ Zero: bit Z = kết phép toán 0; ngược lại bit Z = + Cờ Negative (cờ số âm): bit N = bit MSB ghi có giá trị 1; ngược lại N = + Cờ Carry/ Borrow (cờ nhớ / mượn): bit Carry thực phép cộng: kết tràn bit C = 1; ngược lại bit C = Bit B thực phép trừ: số bị trừ lớn số trừ bit B = 0; ngươc lại bit B = ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng + Intermediate Carry (cờ tràn phụ): giống bit C có tác dụng phép cộng hay trừ bit thấp + Interrupt Flag( cờ ngắt): bit IF có giá trị người lập trình muốn cho phép ngắt, ngược lại khơng cho phép ngắt + Overflow ( cờ tràn số có dấu): bit O = bit tràn phép cộng với bit dấu liệu + Cờ Parity ( cờ chẳn lẻ): bit P = kết phép toán số lẻ; ngược lại kết phép tốn số chẵn bit P = - Thanh ghi trỏ ngăn xếp ( Stack Pointer Register): chiều dài liệu ghi SP chiều dài liệu ghi PC Chức ghi SP dùng quản lý nhớ ngăn xếp muốn lưu trữ tạm thời liệu vào ngăn xếp Thanh ghi SP tự động đến ô nhớ Thông thường, vi điều khiển thực lệnh cất liệu vào nhớ ngăn xếp ghi SP giảm Cho nên ghi SP thường chọn địa cuối nhớ Người lập trình thường phải thiết lập nhớ cho ghi SP Tổ chức ngăn xếp theo nguyên tắc LIFO_Last In First Out ( vào sau trước) - Thanh ghi địa nhớ ( Address Register): Thanh ghi địa nhớ có chiều dài với ghi PC Ngõ ghi địa đặt lên đường Bus 16 bit Nội dung ghi địa giống với nội dung ghi PC vi điều khiển truy xuất nhớ để nhận lệnh, lệnh giải mã ghi PC tăng lên để nhận lệnh kế tiếp, nội dung ghi địa nhớ không tăng chu lệnh - Thanh ghi lệnh ( Instruction Register): Thanh ghi dùng để chứa mã lệnh vi điều khiển thực Một chu kỳ lệnh gồm có nhận lệnh từ nhớ thực thi lệnh Chiều dài từ liệu ghi lệnh tùy thuộc vào vi điều khiển Thanh ghi lệnh vi điều khiển sử dụng, người lập trình khơng sử dụng ghi - Thanh ghi chứa liệu tạm thời ( Temporary Data Register): ghi TEMP dùng để ALU thực phép toán xử lý liệu Do ALU xử lý liệu nên liệu đưa vào đưa xử lý xong, ghi ALU không lưu trữ liệu - Khối giải mã lệnh ( Instruction Decoder): khối nhận lệnh từ ghi lệnh, sau giải mã gởi tín hiệu đến khối điều khiển lập luận ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng - Khối điều khiển lập luận ( Control logic): khối nhận lệnh điều khiển từ khối giải mã lệnh, sau thực yêu cầu lệnh Các tín hiệu điều khiển khối bao gồm tín hiệu điều khiển nhớ, điều khiển thiết bị ngoại vi, tín hiệu độc / ghi,… - Đường Bus liệu ( Data Bus): dùng kết nối ghi bên khối ALU với Bus liệu bus liệu chiều Vi điều khiển ày dùng bus liệu để điều khiển hoạt động: độc nhớ, ghi nhớ, độc - ghi nhập/ xuất - Đường Bus địa chỉ( Address Bus): đường liệu chiều mà vi điều khiển dùng để xác định địa ô nhớ thiết bị ngoại vi trước thực thi việc truy xuất liệu 1.1.2 Sơ đồ chân Vi điều khiển89C51 dạng PDIP có tất 40 chân hình 1.2 Hình Sơ đồ chân IC 89C51 dạng PDIP dạng TQFP - Chức chân 89C51:  Port 0: Port port có chức với số thứ tự chân 32÷39 + Trong hệ thống điều khiển đơn giản sử dụng nhớ bên không dùng nhớ mở rộng bên ngồi port dùng làm đường điều khiển IO (Input – Output) ĐHSPKT Vĩnh Long Trang Giáo trình Vi điều khiển Ứng dụng void loop() { for(int i=0;i

Ngày đăng: 12/12/2018, 18:58

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan