Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
1,98 MB
Nội dung
UBND TỈNH BÌNH ĐỊNH TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ QUY NHƠN GIÁO TRÌNH MƠ ĐUN: LẮP RÁP, LẬP TRÌNH VI XỬ LÝ NGHỀ: ĐIỆN TỬ CƠNG NGHIỆP TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: 99/QĐ-CĐKTCNQN ngày 14 tháng năm 2018 Hiệu trưởng Trường Cao đẳng Kỹ thuật Cơng nghệ Quy Nhơn Bình Định, năm 2018 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Để thực biên soạn giáo trình đào tạo nghề Điện tử cơng nghiệp trình độ Cao Đẳng, giáo trình Lắp ráp, lập trình vi xử lý giáo trình mơ đun đào tạo chun ngành biên soạn theo nội dung chương trình khung Bộ Lao động Thương binh Xã hội Tổng cục Dạy Nghề phê duyệt Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức kỹ chặt chẽ với nhau, logíc Khi biên soạn, nhóm biên soạn cố gắng cập nhật kiến thức có liên quan đến nội dung chương trình đào tạo phù hợp với mục tiêu đào tạo, nội dung lý thuyết thực hành biên soạn gắn với nhu cầu thực tế sản xuất đồng thời có tính thực tiển cao Trong trình sử dụng giáo trình, tuỳ theo yêu cầu khoa học công nghệ phát triển điều chỉnh thời gian bổ sung kiên thức cho phù hợp Trong giáo trình, chúng tơi có đề nội dung thực tập để người học cố áp dụng kiến thức phù hợp với kỹ Tuy nhiên, tùy theo điều kiện sở vật chất trang thiết bị, trường có thề sử dụng cho phù hợp Mặc dù cố gắng tổ chức biên soạn để đáp ứng mục tiêu đào tạo không tránh khiếm khuyết Rất mong nhận đóng góp ý kiến thầy, giáo, bạn đọc để nhóm biên soạn hiệu chỉnh hoàn thiện Các ý kiến đóng góp xin gửi Trường Cao Đẳng Kỹ thuật công nghệ Quy Nhơn, 172 An Dương Vương, TP Quy Nhơn Tham gia biên soạn Lê Tấn Hòa MỤC LỤC Trang LỜI GIỚI THIỆU BÀI 1: NHẬP MÔN VI ĐIỀU KHIỂN PIC 1.1 Giới thiệu vi điều khiển PIC 18F4550 .5 1.2 Tạo project phần mềm lập trình PIC C complier (CCS) 1.3 Lập trình ứng dụng đơn giản 10 BÀI 2: ĐIỀU KHIỂN HIỂN THỊ SỬ DỤNG VI ĐIỀU KHIỂN PIC 17 2.1 Lập trình điểu khiển hiển thị Led đơn sáng tắt 17 2.2 Lập trình điểu khiển hiển thị Led đơn sáng tắt luân phiên 18 2.3 Lập trình điểu khiển hiển thị Led đơn 19 2.4 Lập trình điểu khiển hiển thị số Led đoạn .21 2.5 Lập trình điều khiển hiển thị số led đoạn: 24 2.6 Lập trình điều khiển hiển thị ký tự Led ma trận 8x8 .25 2.7 Lập trình điều khiển hiển thị ký tự hình LCD 1602 29 BÀI 3: SỬ DỤNG BỘ ĐỊNH THỜI TIMER 33 3.1 Cài đặt chế độ cho định thời 33 3.2 Lập trình ứng dụng sử dụng định thời 36 BÀI 4: SỬ DỤNG NGẮT 41 4.1 Lập trình điều khiển hoạt động ngắt timer: 41 4.2 Lập trình ứng dụng sử dụng ngắt 45 4.3 Lập trình hiển thị số lượng sản phẩm đếm sử dụng ngắt ngồi 47 4.4 Lập trình hệ thống đo tốc độ quay động sử dụng ngắt INT2 ngắt timer 50 BÀI 5: ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM, ADC 53 5.1 Lập trình điều chế độ rộng xung 53 5.2 Lập trình đọc giá trị nhiệt độ từ cảm biến nhiệt LM35 56 BÀI 6: LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ TỪ MÁY TÍNH 60 6.1 Lý thuyết liên quan: 60 6.2 Trình tự thực 60 6.3 Thực hành: 60 6.4 Câu hỏi ôn tập: 61 GIÁO TRÌNH MƠN ĐUN Tên mơ đun: Lắp ráp, lập trình vi xử lý Mã mơ đun: MĐ 21 Vị trí, tính chất, ý nghĩa vai trị mơ đun: - Vị trí: Mơ đun bố trí dạy sau học xong mơn Lắp ráp, sửa chữa mạch xung - số; - Tính chất: mô – đun trang bị kiến thức kỹ lập trình ứng dụng sử dụng vi điều khiển PIC Mục tiêu mô đun: - Kiến thức: + Trình bày kiến thức vi điều khiển PIC + Trình bày ứng dụng khối chức vi điều khiển PIC - Kỹ năng: + Lập trình điều khiển ứng dụng đơn giản sử dụng vi điều khiển PIC - Năng lực tự chủ trách nhiệm: + Rèn luyện cho người học thái độ nghiêm túc, cẩn thận, xác học tập thực công việc Nội dung mô đun: Thời gian(giờ) Số Tên mô đun TT TS LT TH KT Bài 1: Nhập môn vi điều khiển PIC Bài 2: Điều khiển hiển thị sử dụng vi điều khiển PIC Bài 3: Sử dụng định thời Timer Bài 4: Sử dụng ngắt 24 15 Bài 5: Điều chế độ rộng xung PWM, ADC 12 90 30 58 Bài 6: Lập trình điều khiển thiết bị từ máy tính Tổng cộng 30 10 19 12 1 BÀI 1: NHẬP MÔN VI ĐIỀU KHIỂN PIC Mã bài: MĐ21-01 Thời gian: 06 (LT: 01, TH: 03, Tự học:02) Mục tiêu thực hiện: - Mô tả cấu trúc họ vi điều khiển PIC - Trình bày cấu trúc chương trình viết CCS PIC 1.1 Giới thiệu vi điều khiển PIC 18F4550 PIC họ vi điều khiển RISC sản xuất công ty Microchip Technology PIC bắt nguồn từ chữ viết tắt “Programmable Intelligent Computer”(Máy tính khả trình thơng minh) Ngày nhiều dịng PIC xuất xưởng với hàng loạt module ngoại vi tích hợp sẵn(như USART, PWM, ADC…), với nhớ chương trình từ 512 Word đến 32K Word Hiện có nhiều dịng PIC có nhiều khác biệt phần cứng, điểm qua vài nét sau: - 8/16 bit CPU, xây dựng theo kiến truc Harvard có sửa đổi - Flash ROM tuỳ chọn từ 256 byte đến 256 Kbyte - Các cổng Xuất/ Nhập(I/O)(mức logic thường từ 0V đến 5.5V, ứng với logic logic 1) - 8/16 bit Timer - Các chuẩn giao tiếp nối tiếp đồng bộ/ khung đồng USART - Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit - Bộ so sánh điện áp(Voltage Comparator) - Các module Capture/ Compare/ PWM - LCD - MSSP Peripheral dựng cho giao tiếp I2C, SPI - Bộ nhớ nội EPROM – ghi/xố tới triệu lần - Module Điều khiển động cơ, đọc encoder - Hỗ trợ giao tiếp USB, CAN, LIN, IrDA - Một số dịng có tích hợp RF(PIC16f639, RFPIC) - KEELOQ mờ hoá giải mờ - DSP tính xử lý tín hiệu số(dsPIC) Đặc điểm thực thi tốc độ cao RISC CPU họ vi diều khiển PIC16F87XA - Chỉ gồm 35 lệnh đơn - Tất lệnh chu kỳ ngoại trừ chương trình chu kỳ - Tốc độ hoạt động : + DC-20MHz ngõ vào xung clock + DC-200ns chu kỳ lệnh - Độ rộng nhớ chương trình Flash 8K x 14word, nhớ liệu(RAM) 368 x 8bytes, nhớ liệu EPROM(RAM) 256x8 bytes Những đặc tính ngoại vi: - Timer0: 8-bit định thời/đếm với 8-bit PreScaler - Timer1: 16-bit định thời/đếm với PreScaler, tăng lên suốt chế độ Sleep qua thạch anh/ xung clock bên - Timer2: 8-bit định thời/đếm với 8-bit, PreScaler postscaler - Hai module Capture, Compare, PWM + Capture có độ rộng 16 bit, độ phân giải 12.5ns + Compare có độ rộng 16 bit, độ phân giải 200ns + Độ phân giải lớn PWM 10bit - Có 13 ngõ I/O điều khiển trực tiếp - Dòng vào dòng lớn : + 25mA dòng vào cho chân + 20mA dòng cho chân Các dòng PIC cách lựa chọn vi điều khiển PIC: - PIC 12xxxx: độ dài lệnh 12 bit - PIC 16xxxx: độ dài lệnh 14 bit - PIC 18xxxx: độ dài lệnh 16 bit - C: PIC có nhớ EPROM(chỉ có 16C84 EEPROM) - F: PIC có nhớ FLASH - LF: PIC có nhớ FLASH hoạt động mức điện áp thấp - LV: tương tự LF, ký hiệu cũ Bên cạnh có số ký hiệu xxFxxxx nhớ EEPROM, có thêm chữ A cuối nhớ FLASH(ví dụ 16F877 có nhớ EEPROM, cịn 16F877A có nhớ FLASH) Hình 1.1.a Vi điều khiền 18F4550 dạng PDIP 40 chân Hình 1.1.b Vi điều khiền 18F4550 dạng TQFP 44 chân Hình 1.1.a Vi điều khiền 18F4550 dạng QFN 44 chân 1.2 Tạo project phần mềm lập trình PIC C complier (CCS) 1.2.1 Lý thuyết liên quan - Giới thiệu phần mềm CCS CCS trình biên dịch lập trình ngơn ngữ C cho Vi điều khiển PIC hãng Microchip Chương trình tích hợp trình biên dich riêng biết cho dịng PIC khác nhau: ‐ PCB cho dòng PIC 12‐bit opcodes ‐ PCM cho dòng PIC 14‐bit opcodes ‐ PCH cho dịng PIC 16 18‐bit Tất trình biên dịch tích hợp lại vào chương trình bao gồm cả trình soạn thảo biên dịch CCS Giống nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh vi điều khiển PIC sử dụng PIC dự án Các chương trình điều khiển thực nhanh chóng đạt hiệu cao thơng qua việc sử dụng ngơn ngữ lạp trình cấp cao – Ngơn ngữ C 1.2.2 Trình tự thực hiện: + Bước 1: Khởi động chương trình làm việc PIC C Compiler Từ giao diện chương trình chọn Project ‐> New ‐> PIC Wizard + Bước 2: Tạo thư mục mới, vào thư mục lưu tên files cần tạo + Bước 3: Thiết lập thuộc tính Project Trên cửa sổ New Project hiện Sổ bao gồm nhiều Tab, Tab mô tả vài tính PIC Ta chọn tính sử dụng Tab tương ứng Các mục chọn đề cập đến tính PIC, tùy theo loại mà có Tab tương ứng Đối với dự án khác nhau, sử dụng tính ta chọn mục Tab General Tab General cho phép ta lựa chọn loại PIC mà ta sử dụng số lựa chọn khác chọn tần số thạch anh dao động, thiết lập bit CONFIG nhằm thiết lập chế độ hoạt động cho PIC Device: Liệt kê danh sách loại PIC 12F, 16F, 18F… Ta chọn tên Vi điều khiển PIC mà ta sử dụng dự án Lấy ví dụ chọn PIC16F877A Oscilator Frequency: Tần số thạch sử dụng, chọn 20 MHz(tùy loại) Fuses: Thiết lập bit Config như: Chế độ dao động(HS, RC, Internal), chế độ bảo vệ Code, Brownout detected… Chọn kiểu trỏ RAM 16‐bit hay 8‐bit Tab Communications Tab Communications liệt kê giao tiếp nối tiếp mà PIC hỗ trợ, thường RS232 I2C, với lựa chọn để thiết lập chế độ hoạt động cho loại giao tiếp Giao tiếp RS232: Mỗi Vi điều khiển PIC hỗ trợ cổng truyền thông RS232 chuẩn Tab cho phép ta lựa chọn chân Rx, Tx, tốc độ Baud, Data bit, Bit Parity… Giao tiếp I2C: Để sử dụng I2C ta tích vào nút chọn Use I2C, ta có lựa chọn: Chân SDA, SCL, Tốc độ truyền(Fast ‐ Slow), chế độ Master hay Slave, địa cho Salve Tab SPI and LCD Tab liệt kê cho người dùng lựa chọn giao tiếp nối tiếp SPI, chuẩn giao tiếp tốc độ cao mà PIC hỗ trợ phần cứng Tab Timer Liệt kê bộ đếm/định thời mà PIC dịng Mid‐range có: Timer0, timer1, timer2, WDT… Tab Analog Liệt kê lựa chọn cho chuyển đổi tương tự/số(ADC) PIC Tùy vào IC cụ thể mà có lựa chọn khác nhau, bao gồm: ‐ Lựa chọn cổng vào tương tự ‐ Chọn chân điện áp lấy mẫu(Vref) ‐ Chọn độ phân giải: 8‐bit = ~ 255 hay 10‐bit = 0~1023 ‐ Nguồn xung đồng hồ cho ADC(trong hay ngồi), từ mà ta có tốc độ lấy mẫu, thường ta chọn làinternal 2‐6 us ‐ Khi không sử dụng ADC ta chọn none Tab Other Tab cho phép ta thiết lập thông số cho bộ Capture/ Comparator / PWM Tab Interrupts Tab Driver case :output_high(PIN_E2) ;output_low(PIN_C0) ; output_low(PIN_C1) ; output_high(PIN_A4);delay_ms(1);break; } } // -//Chuong trinh chinh void main() { enable_interrupts(INT_EXT0); // khai báo ngắt enable_interrupts(GLOBAL); // khai báo ngắt toàn cục ext_int_edge( 2, L_TO_H); // ngắt xung sườn lên so=0; while(true) { led_A0(); chon_ma(dv); led_A1(); chon_ma(chuc); } } - Bước 3: Kiểm tra nạp chương trình qua PICKIT2 - Bước 4: Vận hành, quan sát chỉnh sửa 4.3.3 Thực hành: Người học thực viết chương trình hiển thị theo yêu cầu kỹ thuật trên, nạp vào vi điều khiển PIC 18F4550 Thiết bị thực hành: - Máy vi tính; - Mạch nạp PIC KIT - Môn đun thực hành PIC Traning KIT 4.3.4 Câu hỏi ôn tập: Câu 1: Viết câu lệnh khai báo ngắt tồn cục? 4.4 Lập trình hệ thống đo tốc độ quay động sử dụng ngắt INT2 ngắt timer 4.4.1 Lý thuyết liên quan: - Sơ đồ kết nối 51 Kết nối mô đun LCD1602 Kết nối mơ đun Motor DC 4.4.2 Trình tự thực - Bước 1: Kết nối mô đun LCD1602 mô đun Motor DC với KIT thực hành PIC 18F4550 - Bước 2: Viết chương trình #define ENCO_A PIN_B2 unsigned int16 var; unsigned int nghin,tram,chuc,dv; unsigned int16 so,so_vong; CHUONG TRINH NGAT #int_EXT2 void EXT2_isr(void) { so++; tram = (so_vong%1000)/100; so_vong = so/360; chuc = nghin = so_vong/1000; ((so_vong%1000)%100)/10; 52 dv = ((so_vong%1000)%100)%10; } // -CHUONG TRINH CON void led_A0() void led_A2() { output_low(PIN_E0);//E0=0 { output_low(PIN_E0);//E0=0 output_low(PIN_E1);//E1=0 output_high(PIN_E1);//E1=1 } } void led_A1() void led_A3() { output_high(PIN_E0);//E0=1 { output_high(PIN_E0);//E0=1 output_low(PIN_E1);//E1=0 output_high(PIN_E1);//E1=1 } } void chon_ma(int16 maled) { switch(maled) { case :output_low (PIN_E2) ;output_low (PIN_C0) ; output_low (PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_high(PIN_E2) ;output_low (PIN_C0) ; output_low (PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_low (PIN_E2) ;output_high(PIN_C0) ; output_low (PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_high(PIN_E2) ;output_high(PIN_C0) ; output_low (PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_low (PIN_E2) ;output_low (PIN_C0) ; output_high(PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_high(PIN_E2) ;output_low (PIN_C0) ; output_high(PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_low (PIN_E2) ;output_high(PIN_C0) ; output_high(PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_high(PIN_E2) ;output_high(PIN_C0) ; output_high(PIN_C1) ; output_low (PIN_A4);delay_ms(1);break; case :output_low (PIN_E2) ;output_low (PIN_C0) ; output_low (PIN_C1) ; output_high(PIN_A4);delay_ms(1);break; case :output_high(PIN_E2) ;output_low (PIN_C0) ; output_low (PIN_C1) ; output_high(PIN_A4);delay_ms(1);break; } } Void main() { enable_interrupts(INT_EXT2); enable_interrupts(GLOBAL); ext_int_edge( 2, L_TO_H); var=20; OUTPUT_A(0X00); OUTPUT_B(0X00); OUTPUT_C(0X00); OUTPUT_LOW(DIR); setup_timer_2(T2_DIV_BY_1,49,1); 53 setup_ccp1(CCP_PWM); set_pwm1_duty(var); so=0; so_vong=0; while(1) { led_A0(); chon_ma(dv); led_A1(); chon_ma(chuc); led_A2(); chon_ma(tram); led_A3(); chon_ma(nghin); } } - Bước 3: Kiểm tra nạp chương trình qua PICKIT2 - Bước 4: Vận hành, quan sát chỉnh sửa 4.4.3 Thực hành: Người học thực viết chương trình hiển thị theo yêu cầu kỹ thuật trên, nạp vào vi điều khiển PIC 18F4550 Thiết bị thực hành: - Máy vi tính; - Mạch nạp PIC KIT - Môn đun thực hành PIC Traning KIT 4.4.4 Câu hỏi ôn tập: Câu 1: Vẽ sơ đồ nguyên lý mạch cầu H sử dụng Mosfet điều khiển chiều quay tốc độ động điện chiều? 54 BÀI 5: ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM, ADC Mã bài: MĐ21-05 Thời gian: 12 (LT: 02, TH: 06, Tự học: 04) Mục tiêu bài: - Cài đặt chế độ hoạt động điều chế độ rộng xung - Lắp ráp, lập trình điều khiển tốc độ động chiều - Đọc giá trị ADC từ mô đun ADC - Rèn luyện tính tỉ mĩ, xác, an tồn vệ sinh cơng nghiệp Nội dung chính: 5.1 Lập trình điều chế độ rộng xung 5.1.1 Lý thuyết liên quan: - Kỹ thuật điều chế độ rộng xung PWM(Pulse-Width Modulation) gọi chức “điều chế độ rộng xung” ứng dụng nhiều lĩnh vực điện tử, điều khiển Chức thực chất thay đổi giá trị trung bình điện áp(dòng điện, ) cách điều chỉnh độ rộng xung kích mức cao chu kỳ Chức thường ứng dụng việc điều chỉnh điện áp đầu ra, điều chỉnh tốc độ động DC Bộ điều chế độ rộng xung tạo xung hình chữ nhật chân RC1/CCP2 RC2/CCP1- giá trị xung chân ngược nhau(bù nhau) Thực chức modun CCP gồm chức năng: Comparation, Capture, PWM Nguyên lý tạo xung sau: Khi Thanh ghi đếm định thời Timer đạt giá trị giá trị ghi PR2, đầu xung RC2/CCP1 set lên mức cao TMR2 reset 0, sau đếm lên, TMR2 đạt giá trị độ rộng xung, chân RC2/CCP1 reset TMR2 tiếp tục đếm lên giá trị PR2 chu trình lặp lại lúc đầu Xung chân RC1/CC21 bù xung chân RC2/CCP1 - Cài đặt mô đun điều chế độ rộng xung: Chu kỳ xung: Để xác định chu kỳ xung cần phân tích sau: Như tìm hiểu cách làm việc timer: sau chu kì lệnh giá trị TMR2 tăng lên đơn vị 55 Nếu dùng chia tần số, giả sử 1: N sau N chu kì lệnh giá trị TMR2 tăng lên đơn vị Mỗi chu kì lệnh gồm chu kì xung Chu kì xung khoảng thời gian từ lúc TMR2=0 TMR2=PR2 Suy ra, để tăng PR2 đơn vị, chu kì xung bằng: Ở đây, Tosc chu kì xung vi điều khiển hay chu kì thạch anh N tỉ lệ chia tần số Ví dụ: với thạch anh Fosc = 4Mhz, N=4, ta có chu kì xung tối đa đạt PR2=255(PR2 ghi bit) T=(255+1)*4*(1/4Mhz)*4=1024µs Tức tần số xung là: F=1/T=976Hz= 1KHz Độ rộng xung: Độ rộng xung giá trị 10 bit : bit cao ghi vào ghi CCPR1L, bit thấp ghi vào bit ghi CCP1CON: Độ rộng xung PWM xác định theo cơng thức: PWM Duty Cycle=(CCPR1L:CCP1CON)*Tosc*N Trong đó, CCPR1L ghi bit, CCP1CON bit ghi điều khiển CCP1CON N tỉ lệ chia tần số Tính tốn thơng số điều chế độ rộng xung Gồm bước: - Cài đăt modun CCP chức PWM: setup_CCP1(CCP_PWM) - Cài đặt Timer 2: setup_timer_2(mode, period, 1) Trong đó: + mode là: T2_DISABLED, T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16, nghĩa tắt Timer2 định tỉ lệ chia tần số + Period giá trị ghi PR2 để xác định chu kì xung - Cài đặt độ rộng xung: set_pwm1_duty(value); Trong đó: + value giá trị CCPR1L:CCP1CON + độ rộng xung tính theo cơng thức: PWM Duty Cycle= value*Tosc*N 5.1.2 Trình tự thực Yêu cầu kỹ thuật: Viết chương trình điều khiển tốc độ động điện chiều chạy 50% tốc độ lớn - Bước 1: Kết nối mơ đun Motor DC với KIT thực hành PIC 18F4550 56 Kết nối mô đun Motor DC - Bước 2: Xây dựng lưu đồ thuật toán theo yêu cầu kỹ thuật; - Bước 3: Viết chương trình dựa lưu đồ thuật tốn; #include #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=20000000) // #define DIR PIN_A5 #define PWM PIN_C2 #define ENCO_A PIN_B2 unsigned int16 var; // -CHUONG TRINH CHINH void main( ) { var=50; output_low(DIR); setup_ccp1(CCP_PWM); 57 set_pwm1_duty(var) while(1) { } } - Bước 4: Kiểm tra nạp chương trình qua PICKIT2; - Bước 5: Vận hành, quan sát chỉnh sửa 5.1.3 Thực hành: Người học thực viết chương trình hiển thị theo yêu cầu kỹ thuật trên, nạp vào vi điều khiển PIC 18F4550 Thiết bị thực hành: - Máy vi tính; - Mạch nạp PIC KIT - Môn đun thực hành PIC Traning KIT 5.1.4 Câu hỏi ôn tập: Câu 1: Có mơ đun thực việc điều chế độ rộng xung PIC 18F4550? Liệt kê tên chân IC tương ứng? 5.2 Lập trình đọc giá trị nhiệt độ từ cảm biến nhiệt LM35 5.2.1 Lý thuyết liên quan: - Cài đặt mô đun ADC: Vi điều khiển PIC có nhiều chân phục vụ xử lý ADC với nhiều cách thức khác Để dùng ADC, phải có khai báo #DEVICE cho biết dùng ADC bit(tuỳ chip hỗ trợ, thường hay 10 bit hoặc hơn) Cấu hình ADC: + Thơng dụng dùng ADC sử dụng biến trở, điều chỉnh nút vặn, qua thu 1 điện áp nhỏ điện áp tham chiếu(Vref – áp lớn nhất), đưa vào chân biến đổi ADC, kết cho 1 giá trị số ADC bit( 0-255) hay ADC 10 bit(0-1023) Thường áp Vref lấy Vdd(5V) + Trên PIC có ngõ AVdd AVss(PIC18), thường bạn ln nối AVdd tới Vdd, AVss tới Vss để đảm bảo họat động cho lập trình qua ICD Các hàm sau phục vụ ADC: - Setup_ADC( mode): + Dùng xác định cách thức hoạt động biến đổi ADC Tham số mode tùy thuộc file thiết bị *.h có tên tương ứng tên chip bạn dùng, nằm thư mục DEVICES CCS. Muốn biết có tham số dùng cho chip đó, mở file tương ứng đọc, tìm tới chỗ các định nghĩa cho chức ADC dùng cho chip tương ứng với hàm + Sau giá trị mode của 18F4550: ADC_OFF: tắt hoạt động ADC( tiết kiệm điện, dành chân cho hoạt động khác) ADC_CLOCK_INTERNAL: thời gian lấy mẫu xung clock IC (mất 2-6 us) thường là chung cho chip 58 ADC_CLOCK_DIV_2: thời gian lấy mẫu xung clock/2 (mất 0.4 us thạch anh 20MHz) ADC_CLOCK_DIV_8: thời gian lấy mẫu xung clock (1,6 us) ADC_CLOCK_DIV_32: thời gian lấy mẫu xung clock/32(6,4 us) - Setup_ADC_ports( value): + Xác định chân lấy tín hiệu analog điện chuẩn sử dụng Tùy thuộc bố trí chân chip, số chân và chân dùng cho ADC và số chức năng ADC chip mà value có giá trị khác Xem file tương ứng thư mục DEVICES để biết số chức tương ứng chip Lưu ý : Vref : áp chuẩn, Vdd : áp nguồn + Sau giá trị cho value( dùng giá trị) của 18F4550: ALL_ANALOGS: dùng tất chân sau làm analog: A0, A1, A2, A3, A5,E0, E1, E2(Vref=Vdd) NO_ANALOG: khơng dùng analog, chân chân I/O AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF: A0, A1, A2, A5, E0, E1, E2, VRefh=A3 AN0_AN1_AN2_AN3_AN4: A0, A1, A2, A3, A5, AN0_AN1_AN3: A0, A1, A3, Vref = Vdd AN0_AN1_VSS_VREF: A0, A1, VRefh = A3 AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF: A0, A1, A5, E0, E1, E2, VRefh=A3, VRefl=A2 AN0_AN1_AN2_AN3_AN4_AN5: A0 A1 A2 A3 A5 E0 AN0_AN1_AN2_AN4_AN5_VSS_VREF: A0 A1 A2 A5 E0 VRefh=A3 AN0_AN1_AN4_AN5_VREF_VREF : A0 A1 A5 E0 VRefh=A3 VRefl=A2 AN0_AN1_AN4_VREF_VREF: A0 A1 A5 VRefh=A3 VRefl=A2 AN0_AN1_VREF_VREF: A0 A1 VRefh=A3 VRefl=A2 AN0: A0 AN0_VREF_VREF: A0 VRefh=A3 VRefl=A2 Ví dụ: setup_adc_ports(AN0_AN1_AN3) ; // A0, A1, A3 nhận analog, áp nguồn +5V cấp cho IC điện áp chuẩn - Set_ADC_channel(channel): + Chọn chân để đọc vào giá trị analog lệnh Read_ADC() Giá trị channel tuỳ số chân chức năng ADC chip.Với 16F877, channel có giá trị từ 0 -7: 0-chân A0, 1-chân A1, 2-chân A2, 3-chân A3, 4-chân A5, 5-chân E0, 6-chân E1, 7-chân E2 +Hàm không trả trị Nên delay 10 us sau hàm dùng hàm read_ADC() để bảo đảm kết Hàm hoạt động với A /D phần cứng chip - Read_ADC( mode): 59 + Dùng đọc giá trị ADC từ ghi(/ cặp ghi) chứa kết biến đổi ADC Lưu ý hàm này sẽ hỏi vòng cờ cờ báo hoàn thành biến đổi ADC( vài us) xong hàm + Nếu giá trị ADC bit khai báo thị #DEVICE, giá trị trả hàm bit, ngược lại 16 bit khai báo #DEVICE sử dụng ADC 10 bit trở lên + Khi dùng hàm này, lấy ADC từ chân bạn chọn hàm Set_ADC_channel() trước đó. Nghĩa lần đọc kênh Muốn đổi sang đọc chân nào, dùng hàm set_ADC_channel() lấy chân Nếu khơng có đổi chân, dùng read_ADC() bao nhiêu lần + mode có thể có khơng, gồm có : ADC_START_AND_READ: giá trị mặc định ADC_START_ONLY: bắt đầu chuyển đổi trả ADC_READ_ONLY : đọc kết chuyển đổi lần cuối #DEVCE 8 bit 10 bit 11 bit 16 bit ADC=8 0-255 0-255 00-255 00-255 ADC=10 x 0-1023 x x ADC=11 x x 0-2047 x ADC=16 0-65280 0-65472 0-65504 0-65535 + 16F877 hỗ trợ ADC 10 bit. Ví dụ: setup_adc( ADC_CLOCK_INTERNAL ); setup_adc_ports( ALL_ANALOG); set_adc_channel(1); while( input(PIN_B0)) { delay_ms( 5000); value = read_adc(); printf("A/D value = %2x\n\r", value); } read_adc(ADC_START_ONLY); sleep(); value=read_adc(ADC_READ_ONLY); 5.2.2 Trình tự thực - Bước 1: Kết nối mô đun LCD1602 mô đun cảm biến nhiệt độ với KIT thực hành PIC 18F4550 60 Kết nối mô đun LCD1602 Kết nối mô đun cảm biến nhiệt - Bước 2: Xây dựng lưu đồ thuật toán theo yêu cầu kỹ thuật - Bước 3: Viết chương trình dựa lưu đồ thuật toán - Bước 4: Kiểm tra nạp chương trình qua PICKIT2 - Bước 5: Vận hành, quan sát chỉnh sửa 5.2.3 Thực hành: Người học thực viết chương trình hiển thị theo yêu cầu kỹ thuật trên, nạp vào vi điều khiển PIC 18F4550 Thiết bị thực hành: - Máy vi tính; - Mạch nạp PIC KIT - Môn đun thực hành PIC Traning KIT 5.2.4 Câu hỏi ôn tập: Câu 1: Vẽ dạng đóng gói ghi nhãn chân cảm biến nhiệt LM35 61 62 BÀI 6: LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ TỪ MÁY TÍNH Mã bài: MĐ21-06 Thời gian: 06 (LT: 01, TH: 03, Tự học: 02) Mục tiêu bài: - Trình bày chuẩn truyền thông nối tiếp - Lắp ráp mạch giao tiếp USART - Lập trình ứng dụng giao tiếp qua chuẩn USART - Rèn luyện tính tỉ mĩ, xác, an tồn vệ sinh cơng nghiệp Nội dung bài: 6.1 Lý thuyết liên quan: - Các chuẩn truyền thông nối tiếp (USART) USART viết tắt Universal Synchronous/Asynchronous Receiver/Transmitter Thường mạch tích hợp sử dụng việc truyền dẫn liệu nối tiếp máy tính thiết bị ngoại vi. - Lắp ráp cài đặt chuẩn truyền USART Các thông số truyền nhận UART: - Baund rate (tốc độ baund ): Khoảng thời gian dành cho bit truyền Phải cài đặt giống gửi nhận - Frame (khung truyền ): Khung truyền quy định số bit lần truyền - Start bit : bit truyền Frame Báo hiệu cho thiết bị nhận có gói liệu sắp đc truyền đến Bit bắt buộc - Data : liệu cần truyền Bit có trọng số nhỏ LSB truyền trước sau đến bit MSB - Parity bit : kiểm tra liệu truyền có không - Stop bit : bit báo cho thiết bị bit gửi xong Thiết bị nhận tiến hành kiểm tra khung truyền nhằm đảm bảo tính đắn liệu Bit bắt buộc 6.2 Trình tự thực - Bước 1: Kết nối KIT thực hành với PC thông qua cáp USB-COM - Bước 2: Viết chương trình - Bước Kiểm tra nạp chương trình qua PICKIT2 - Bước 4: Vận hành, quan sát chỉnh sửa 6.3 Thực hành: 63 Người học thực viết chương trình hiển thị theo yêu cầu kỹ thuật trên, nạp vào vi điều khiển PIC 18F4550 Thiết bị thực hành: - Máy vi tính; - Mạch nạp PIC KIT - Mơn đun thực hành PIC Traning KIT 6.4 Câu hỏi ôn tập: Câu 1: Vẽ dạng đóng gói ghi nhãn chân IC MAX232? 64 Tài liệu tham khảo [1] Giáo Trình Vi Điều Khiển PIC Lý Thuyết Thực Hành, Trương Ngọc Anh, NXB Thanh Niên, Năm 2018 [2] Vi Điều Khiển Ứng Dụng Giáo Trình Thực Hành PIC, Nguyễn Đình Phú, NXB Thanh Niên, Năm 2018 [3] Trang web https://www.microchip.com/wwwproducts/en/PIC18F4550 65