Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
1,03 MB
Nội dung
HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS BÀI 1: NHẬP MÔN VI ĐIỀU KHIỂN PIC I PHẦN LÝ THUYẾT Giới thiệu vi điều khiển PIC 1.1 Giới thiệu vi điều khiển c om Bộ vi điều khiển viết tắt Micro-controller mạch tích hợp chip lập trình được, dùng để điều khiển hoạt động hệ thống Theo tập lệnh người lập trình, vi điêu khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian ng tiến hành đóng mở cấu co Trong thiết bị điện điện tử, vi điều khiển điều khiển hoạt động ti vi, máy giặt, đầu đọc lase, lò vi ba, điện thoại …Trong hệ thống sản xuất tự động, vi an điều khiển sử dụng robot, hệ thống đo lường giám sát Các hệ thống thơng th minh vai trò vi điều khiển ngày quan trọng Hiện thị trường có Microchip Technology ng nhiều họ vi điều khiển như: 6811 Motorola, 8051 Intel, Z8 Zilog, PIC du o 1.2 Giới thiệu vi điều khiển PIC PIC bắt nguồn từ chữ viết tắt “Programmable Intelligent Computer” ( Máy cu u tính khả trình thơng minh) sản phẩm hãng General Instrument đặt cho dòng sản phẩm họ PIC 1650 Lúc Pic dùng để giao tiếp với thiết bị ngoại vi cho máy chủ 16 bit CP1600, người ta gọi PIC với tên “ Peripheral Interface Controller” ( điều khiển giao tiếp ngoại vi) Năm 1985 General Instrument bán phận vi điện tử họ, chủ sở hữu (Microchip Technology) huỷ bỏ hầu hết dự án – lúc lỗi thời Tuy nhiên PIC bổ sung EEPROM để tạo thành điều khiển vào khả trình Ngày có nhiều dịng PIC sản xuất với hàng loạt modul ngoại vi tích hợp sẵn ( :USART, PWM, ADC…) với nhớ chương trình từ 512 word đến 32k word CÔNG TY TNHH CÔNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS PIC sử dụng tập lệnh RISC, với dòng PIC low-end (độ dài mã lệnh 12 Bit ví dụ PIC12Cxxx) mid-range (độ dài mã lệnh 14 bit , ví dụ PIC16Fxxx), tập lệnh bao gồm khoảng 35 lệnh, 70 lệnh dịng PIC high-end( có độ dài mã lệnh 16bit PIC18Fxxxx) Tập lệnh bao gồm lệnh tính tốn ghi, số, vị trí nhớ, có lệnh điều kiện, nhảy/ gọi hàm, lệnh quay trở về, có chức phần cứng khác ngắt sleep( chế độ hoạt động tiết kiệm điện ) Microchip cung cấp mơi trường lập trình MPLAB0, bao gồm phần mềm c om mơ trình dịch ASM Hiện có nhiều dịng PIC có nhiều khác biệt phần cứng, ng điểm qua vài nét sau : 8/16/24/32 bit CPU, xây dựng theo kiến trúc Harvard Flash Rom tuỳ chọn 256 byte đến 256 kbybe Bộ nhớ nội EEPROM - ghi/ xoá lên tới hàng triệu lần Các cổng xuất/nhập (mức lôgic thường từ 0v đến 5v, ứng với mức logic 1, th an co 8/16 bit timer Modun giao tiếp ngoại vi nối tiếp không đồng bộ: USART Modun giao tiếp ngoại vi song song (kiểu máy in) Bộ chuyển đổi ADC 10 bit nội gồm kênh đầu vào Module ngoại vi MSSP dùng cho giao tiếp I2C, SPI u du o ng cu dòng khoảng vài chục mA) Modul CCP có chức o Comparator (so sánh) o Capture o PWM: dùng điều khiển động Một số dòng vi điều khiển PIC hỗ trợ thêm: Hỗ trợ điều khiển động pha, pha Hỗ trợ giao tiếp USB Hỗ trợ điều khiển Ethernet Hỗ trợ giao tiếp CAN CÔNG TY TNHH CÔNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS Hỗ trợ giao tiếp LIN Hỗ trợ giao tiếp IRDA DSP tính xử lý tín hiệu số 1.3 Các thành phần mạch ứng dụng vi điều khiển PIC: 1.4 Các khái niệm bản: c om Cổng xuất nhập I/O: Cổng A gồm chân: RA0, RA1 RA5 Cổng B gồm chân: RB0, RB1, RB7 Cổng C gồm chân: RC0, RC1, RC7 Cổng D gồm chân: RD0, RD1, RD7 Cổng E gồm chân: RE0, RE1, RE2 an co ng Trong vi điều khiển PIC16F877A có cổng: th Mỗi cổng thực chất quản lý ghi PORTA, PORTB, PORTC, PORTD, cu u du o ng PORTE nằm nhớ RAM vi điều khiển Xem hình sau: CƠNG TY TNHH CƠNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt cu u du o ng th an co ng c om HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS Bộ nhớ RAM vi điều khiển PIC 16F877A gồm bank nhớ Nhìn vào bank nhớ ta thấy ghi đặt tên ghi đa mục đích (General Purpose Register) Các ghi đặt tên ghi đặc biệt dùng để điều khiển, quản lý thể trạng thái khối chức vi điều khiển ví dụ PORTA CƠNG TY TNHH CÔNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS đại diện cho chân cổng A, PORTB đại diện cho chân cổng B v.v Các ghi có địa xác định khơng dùng cho mục đích khác Các ghi đa mục đích dùng để đặt biến chương trình ứng dụng vi điều khiển Nhìn vào đồ nhớ RAM, ta thấy biến đặt từ địa 20F đến 7Fh bank nhớ 0, A0h-EFh, 120h-16Fh, 1A0h-1EFh Trở lại vấn đề cổng, tới ta đưa nhận xét: Thanh ghi PORTA phản ánh trạng thái chân cổng A, nghĩa muốn tín hiệu đầu c om chân cổng A ta việc đưa giá trị vào bit tương ứng ghi PORTA Cũng đọc giá trị ghi PORTA ta biết trạng thái chân cổng A ng Ví dụ: Muốn RA0 mức logic (mức 5V), RA1 mức logic (mức 0V), RA2 mức logic 1, co RA3 mức logic 0, RA4 mức logic 1, RA5 mức logic 1, ta việc gán giá trị X X 1 RA4 RA0 RA3 RA2 RA1 du o X: không quan tâm ng th RA5 an 000110101 cho ghi PORTA Tương tự với PORTB,PORT C,PORTD,PORTE Tính đa chức chân vi điều khiển: cu u Nhìn vào sơ đồ chân vi điều khiển, ta thấy số chân vi điều khiển có tên gồm nhiều phần với dấu gạch chéo Ví dụ: RA0/AN0, RC7/RX/DT, RC6/TX/CK Đây tính đa chức chân vi điều khiển hay gọi dồn kênh Ý nghĩa là: Bình thường khơng cài đặt tấc chân cổng A, B, C, D, E chân vào số I/O Nếu chương trình ta có cài đặt chức RS232, ADC PWM v.v chân tương ứng với chức hoạt động theo chức Khi chân khơng dùng làm chân vào số bình thường CƠNG TY TNHH CÔNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS Ví dụ: bình thường chân RA0/ANO chân vào số RA0, chức ADC với kênh vào tín hiệu analog kênh cài đặt chân RA0 /AN0 chân vào ADC, tức hoạt động theo chức AN0 Tương tự vậy, cài đặt giao tiếp với thiết bị ngoại vi theo chuẩn RS232, chân vào số RC7/RX/DT hoạt động đầu vào liệu RS232 tức chức RX Cài đặt vào/ra cho chân vào số cổng: c om chân Các chân vào/ra số vi điều khiển PIC phải cài đặt chân vào chân hoạt động chức Việc chân cổng X (X=A,B, E) qui định ng đầu hay đầu vào phụ thuộc vào bit tương ứng ghi TRISX (X=A,B, E) hay co Ví dụ: Muốn chân thấp (bit thấp) cổng B (RB0-RB3) chân vào, chân cao (bit 0 1 1 th an cao) cổng B (RB4-RB7) chân giá trị bit ghi TRISB là: ng Gợi ý dễ nhớ là: du o Để chân RB.m (m=0-7) đầu ra, tức Output giá trị TRISB.m Là đầu vào, tức Input giá trị TRISB.m Tương tự chân cổng lại cu u Ngơn ngữ lập trình cho vi điều khiển PIC- CCS: 2.1 Các ngơn ngữ lập trình cho vi điều khiển PIC: Ngơn ngữ lập trình cho vi điều khiển PIC có loại: - Ngơn ngữ lập trình cấp thấp- Hợp ngữ: có phần mềm MPLAB - Ngơn ngữ lập trình bậc cao: có nhiều loại, phát triển theo ngôn ngữ C, như: CCS, HTPIC, PIC BASIC v.v Ưu điểm hợp ngữ giúp người học lập trình hiểu rõ cấu trúc bên vi điều khiển PIC, tối ưu hóa nhớ chương trình Tuy nhiên, nhìn chung phương pháp tiếp cận hợp ngữ khó khả phát triển ứng dụng hạn chế, CÔNG TY TNHH CÔNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS thời gian Vì vậy, khóa học tập trung vào sử dụng ngôn ngữ bậc cao mà cụ thể CCS để nghiên cứu phát triển ứng dụng PIC Ưu điểm CCS là: - Kế thừa tấc đặc điểm ngôn ngữ C- ngôn ngữ bản, quen thuộc mà sinh viên đào tạo - Xây dựng sẵn hàm phục vụ cho việc sử dụng dễ dàng khối chức đặc biệt Vi điều khiển PIC khối ADC, PWM, RS232, SPI Có khả kết hợp với ngơn ngữ hợp ngữ, tạo mềm dẻo phát triển ứng c om - dụng Khả phát triển, nâng cấp ứng dụng dễ dàng - Ngày cập nhật với nhiều tính ưu việt hiệu ng - 2.2 Cơ ngơn ngữ lập trình CCS: co 2.2.1 Ví dụ chương trình viết ngơn ngữ CCS: an // Đây thích chương trình //Bắt đầu thị tiền xử lý chương trình th #include // cho file định nghĩa thiết bị 16f877a.h vào chương trình ng #fuses HS,NOLVP,NOWDT// Cấu hình cho vi điều khiển PIC du o #use delay (clock=4000000) // dùng thạch anh tần số 4MHz // Khai báo biến byte const MAP[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; cu u //=========================================== //=========================================== // Bắt đầu chương trình hiển thị void display(int n) { char b; // khai báo biến b b=((MAP[n/10]) ^ 0x00); if ((n/10)==(0)) b=0xff; output_b(b); // sử dụng hàm xuất giá trị cổng B output_low(PIN_A4);// sử dụng hàm đưa giá trị chân RA4 xuống mức thấp CÔNG TY TNHH CÔNG NGHỆ CAO ATECKO CuuDuongThanCong.com www.atecko.com.vn https://fb.com/tailieudientucntt HƯỚNG DẪN LẬP TRÌNH VI ĐIỀU KHIỂN PIC VỚI PHẦN MỀM CCS delay_ms(2);// Sử dụng hàm tạo trễ ms output_high(PIN_A4); // sử dụng hàm đưa giá trị chân RA4 lên mức cao output_b((MAP[n%10]) ^ 0x00); output_low(PIN_A5); delay_ms(2); output_high(PIN_A5); } c om // Kết thúc chương trình hiển thị //============================================ // Bắt đầu chương trình ng // Đây nơi vi điều khiển bắt đầu chạy lệnh //============================================ co void main() an { int i,count; th count=0; ng while(TRUE) du o { for (i=0;i>n: dịch trái n bit ng -