1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Introduction to CCSC MPLAB example

71 86 0

Đ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

Nội dung

TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ GIỚI THIỆU CCS-C – MPLAB - MẠCH VÍ DỤ A/CÁC LOẠI MẠCH NẠP I/ FD-ICP: a/ Phần Cứng: b/ Chương trình nạp: WinPicProg Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Main Window Hardware setting: Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ II/ PIG-PG1, PIG-PG2, PIG-PG3 a/PIG-PG1 Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Chương Trình Nạp WinPicProg b/ PIG-PIG2: Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Chương Trình Nạp WinPicProg C/ PIG-PG3: Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Chương Trình Nạp ICPROG : 12Cxx, 16Cxxx, 16Fxx, 16F87x, 18Fxxx, 16F7x, 24Cxx, 93Cxx, 90Sxxx, 59Cxx, 89Cx051, 89S53, 250x0, PIC, AVR , 80C51 etc Main window: Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Hardware settings: Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Compare buffers: Smartcard wizard: Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ Options Bài giảng Vi Điều Khiển  2011 Page TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ B/ TÌM HIỂU COMPILER CCS-C VÀ CHƯƠNG TRÌNH MPLAB I/CCS_C: 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 đólà:PCB cho dòng PIC 12bit opcodes, PCM cho dòng PIC 14bit opcodes PCH cho dòng PIC 16 bit 18bit CCS giúp cho người sử dụng viết 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 a/ Cài đặt CCS-C: việc cài đặt CCS-C hồn tồn dể dàng, chạy file setup.Chọn vị trí cài đặt (mặc định C:\program\PICC)…Cài đặt kết thúc b/ Sử dụng CCS-C Tạo project CCS-C: Tab Project chọn PIC Wizard Bài giảng Vi Điều Khiển  2011 Page 10 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ //ket thuc chuong trinh chinh }} II/ Điều khiển led đoạn đếm từ 0000 đến 9999 a Sơ đồ mạch: Mạch hiển thị số thứ tự từ 0000 đến 9999 led đoạn, loại anod chung, chân a,b,c,d,e,f,g led nối với PORTB PIC16F877A, chân RD7, RD6, RD5, RD4 nới với led tương ứng led1 (đơn vị), led2 (hàng chục), led3 (hàng trăm), led4 (hàng nghìn), chân tích cực mức Mạch sử dụng thạch anh tần số 20MHz, sử dụng thêm transitor PNP chọn led Mạch gồm led báo nguồn, mạch reset, mạch dao dộng mạch kết nối led Bài giảng Vi Điều Khiển  2011 Page 57 OSC2 14 12 31 RE0/RD*/AN5 RE1/WR*/AN6 RE2/CS*/AN7 10 VDD VDD R Vcc 11 32 R4 R C D E 10 Vcc D4 Vcc DOT C D E G F A B G F A B C D E 10 Vcc R10 R11 Q6 R D3 Vcc DOT C D E G F A B G F A B C D E 10 Vcc D2 Vcc DOT C D E G F A B R9 Q5 OSC2/CLKOUT VSS VSS R8 OSC1/CLKIN G F A B C D E 10 LED4 LED3 LED2 LED1 Vcc G F A B Vcc 19 20 21 22 27 28 29 30 D1 RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 A B C D E F G 33 34 35 36 37 38 39 40 Q7 Q8 LED1 13 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD LED2 OSC1 RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS*/C2OUT 15 16 17 18 23 24 25 26 MCLR*/VPP LED3 LED4 DOT C D E PVN1 RESET G F A B Module hướng dẫn sử dụng Compiler & Các ví dụ TS Võ Tường Quân R R5 R R R6 R R7 R PIC16F877A Vcc R2 D1 C1 OSC1 R3 Vcc 1K + 1K LED R1 D2 22p Vcc RESET Y1 C2 10K LED SW1 20MHz OSC2 + 22p b Chương trình: #include //khai bao header file, tuong ung chip su dung #use delay (clock=20M) //su dung xung clock tan so 20MHz #fuses hs,nowdt,noput,nolvp //khai bao cau hinh cho PIC unsigned char led7[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //cac gia tri hien thi tren led doan tuong ung la {0,1,2,3,4,5,6,7,8,9} int16 i, a, dem; //khai bao bien 16Bit int8 donvi, chuc, tram, nghin; Bài giảng Vi Điều Khiển  2011 //khai bao bien 8Bit Page 58 TS Võ Tường Quân void hex_bcd() Module hướng dẫn sử dụng Compiler & Các ví dụ //chuong trinh chuyen ma BCD de lay gia tri hien thi led {nghin=a/1000; //lay gia tri hang nghin a=a%1000; //lay gia tri so du sau chia cho hang nghin tram=a/100; //lay gia tri hang tram a=a%100; //lay gia tri so du sau chia cho hang tram chuc=a/10; //lay gia tri hang chuc donvi=a%10; //lay gia tri hang don vi } //ket thuc chuong trinh void hienthi() //chuong trinh hien thi gia tri led {i=0; //khoi tao gia tri vong lap tao thoi gian hien thi led while(i RC0 //RW -> RC1 //E -> RC2 //LCD DATA -> PORTB //KEYPAD -> PORTD Bài giảng Vi Điều Khiển  2011 Page 62 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ //************************************************************ #include #use delay (clock=20M) //su dung xung clock tan so 20MHz #fuses hs,nowdt,noput,nolvp #byte portB=0X06 // dinh ten portB cho PORTB cua chip #byte portC=0X07 // dinh ten portC cho PORTC cua chip #byte portD=0X08 // dinh ten portD cho PORTD cua chip #define RS pin_c0 // dinh ten RS la chan RC0 cua chip #define RW pin_c1 // dinh ten RW la chan RC1 cua chip #define E pin_c2 // dinh ten E la chan RC2 cua chip unsigned char DIG[]={'K','I','E','M',' ','T','R','A',' ','P','H','I','M','4','x','4','#'}; //khai bao chuoi ky tu int a=0; //khai bao bien su dung /////////////////////////////////////////////////////////////////////////////////////////////////// void truyenlenh() //chuong trinh cho phep ghi vao ghi tren LCD { output_low(RS); //bat che truyen lenh vào ghi output_low(RW); //bat bus ghi du lieu output_high(E); //bat dau cho du lieu qua delay_ms(5); //cho thoi gian truyen du lieu output_low(E); //tat du lieu va da san sang ghi du lieu delay_ms(5); //cho thoi gian dong du lieu } Bài giảng Vi Điều Khiển  2011 Page 63 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ ////////////////////////////////////////// //chuong trinh ghi du lieu vao RAM va hien thi len LCD void du_lieu() { output_high(RS); //bat che doc du lieu can hien thi output_low(RW); //bat bus ghi du lieu vao RAM output_high(E); //bat dau cho du lieu qua delay_ms(5); //cho thoi gian truyen du lieu output_low(E); //tat du lieu va da san sang ghi du lieu delay_ms(5); //cho thoi gian dong du lieu } /////////////////////////////////////////// void main() //chuong trinh chinh { output_b(0x38); //che giao tiep bit, hien thi 2x16, font 5x8 truyenlenh(); //truyen du lieu vao ghi output_b(0x0E); //bat den hien thi,bat tro truyenlenh(); //truyen du lieu vao ghi output_b(0x80); //bat che dia chi DDRAM truyenlenh(); //truyen du lieu vao ghi //****************************** while(DIG[a]!='#') //vong lap hien thi chuoi ky tu 'KIEM TRA PHIM4x4 va kiem tra het chuoi { Bài giảng Vi Điều Khiển  2011 Page 64 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ portB=DIG[a]; //chuyen ky tu hien thi portB du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(5); a++; //hien thi ky tu tiep theo } //hien thi xong chuoi ky tu output_b(0xC0); //hien thi dong truyenlenh(); //truyen du lieu vao ghi delay_ms(5); output_d(0xff); //set cac chan PORTD len muc //****************************** while(true) //vong lap kiem tra phim nhan { // -portd = 0B11111110; //gan chan RD0.0 ve muc 0, kiem tra hang delay_ms(1); if(input(pin_d4)==0) //chan D0-D4 = (nhan phim 0) { portB = 0x30; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d4)==0); //cho den nha nut nhan } Bài giảng Vi Điều Khiển  2011 Page 65 TS Võ Tường Quân if(input(pin_d5)==0) Module hướng dẫn sử dụng Compiler & Các ví dụ //chan D0-D5 = (nhan phim 1) { portB = 0x31; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d5)==0); //cho den nha nut nhan } if(input(pin_d6)==0) //chan D0-D6 = (nhan phim 2) { portB = 0x32; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d6)==0); //cho den nha nut nhan } if(input(pin_d7)==0) //chan D0-D7 = (nhan phim 3) { portB = 0x33; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d7)==0); //cho den nha nut nhan } // -Bài giảng Vi Điều Khiển  2011 Page 66 TS Võ Tường Quân portd = 0B11111101; Module hướng dẫn sử dụng Compiler & Các ví dụ //gan chan RD0.0 ve muc 0, kiem tra hang delay_ms(1); if(input(pin_d4)==0) //chan D1-D4 = (nhan phim 4) { portB = 0x34; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d4)==0); //cho den nha nut nhan } if(input(pin_d5)==0) //chan D1-D5 = (nhan phim 5) { OUTPUT_B(0X35); //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d5)==0); //cho den nha nut nhan } if(input(pin_d6)==0) //chan D1-D6 = (nhan phim 6) { portB = 0x36; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d6)==0); //cho den nha nut nhan Bài giảng Vi Điều Khiển  2011 Page 67 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ } if(input(pin_d7)==0) //chan D1-D7 = (nhan phim 7) { portB = 0x37; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d7)==0); //cho den nha nut nhan } // -portd = 0B11111011; //gan chan RD0.0 ve muc 0, kiem tra hang delay_ms(1); //han che nhieu phim if(input(pin_d4)==0) //chan D2-D4 = (nhan phim 8) { portB = 0x38; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d4)==0); //cho den nha nut nhan } if(input(pin_d5)==0) //chan D2-D5 = (nhan phim 9) { portB = 0x39; //hien thi LCD du_lieu(); //cho phep truyen du lieu va hien thi LCD Bài giảng Vi Điều Khiển  2011 Page 68 TS Võ Tường Quân delay_ms(1); Module hướng dẫn sử dụng Compiler & Các ví dụ //han che nhieu phim while(input(pin_d5)==0); //cho den nha nut nhan } if(input(pin_d6)==0) //chan D2-D6 = (nhan phim A) { portB = 'A'; //hien thi LCD A du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d6)==0); //cho den nha nut nhan } if(input(pin_d7)==0) //chan D2-D7 = (nhan phim B) { portB = 'B'; //hien thi LCD B du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d7)==0); //cho den nha nut nhan } // -portd = 0B11110111; //gan chan RD0.0 ve muc 0, kiem tra hang delay_ms(1); //han che nhieu phim if(input(pin_d4)==0) //chan D3-D4 = (nhan phim C) { Bài giảng Vi Điều Khiển  2011 Page 69 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ portB = 'C'; //hien thi LCD C du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d4)==0); //cho den nha nut nhan } if(input(pin_d5)==0) //chan D3-D5 = (nhan phim D) { portB = 'D'; //hien thi LCD D du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d5)==0); //cho den nha nut nhan } if(input(pin_d6)==0) //chan D3-D6 = (nhan phim E) { output_b('E'); //hien thi LCD E du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d6)==0); //cho den nha nut nhan } if(input(pin_d7)==0) //chan D3-D7 = (nhan phim F) { portB = 'F'; //hien thi LCD F Bài giảng Vi Điều Khiển  2011 Page 70 TS Võ Tường Quân Module hướng dẫn sử dụng Compiler & Các ví dụ du_lieu(); //cho phep truyen du lieu va hien thi LCD delay_ms(1); //han che nhieu phim while(input(pin_d7)==0); //cho den nha nut nhan }}} //ket thuc chuong trinh Bài giảng Vi Điều Khiển  2011 Page 71 ... Quân Module hướng dẫn sử dụng Compiler & Các ví dụ II/ MPLAB: 1/ Cài đặt: chạy setup.exe … 2/ Tạo Project MPLAB Bước 1: Khời động chương trình MPLAB Bước 2: Tạo Project công cụ Project Wizard, click... việc sử dụng ngơn ngữ lạp trình cấp cao – Ngôn ngữ C a/ Cài đặt CCS-C: việc cài đặt CCS-C hoàn to n dể dàng, chạy file setup.Chọn vị trí cài đặt (mặc định C:programPICC)…Cài đặt kết thúc b/... Timers, PCH Timers, Analog, Other, Interrupts, Drivers, I/O Pins, High/Low Voltage, Intr Oscillator Config, Header Files, CAN BUS, LCD options, MOD BUS, BOOT LOADER General: chứa đựng thôn tin

Ngày đăng: 06/11/2017, 21:10

TỪ KHÓA LIÊN QUAN