Thứ Tư, 28 tháng 11, 2018

Bài 2. PIC 18F450 Với Mplabx IDE


Giới thiệu

Có nhiều môi trường phát triển khác nhau có sẵn cho bộ điều khiển PIC18f4550.
Chúng tôi có thể sử dụng các IDE sau để phát triển:
  • MPLABX IDE
  • MikroC
Trình biên dịch C cho PIC 18f4550
  • XC8
  • Hi-Tech
  • C18
Sau khi phát triển mã, để tải bộ nhớ flash, chúng tôi có thể sử dụng bộ công cụ này
  • PIC kit1
  • PIC kit2
  • PIC kit3
  • ICD
Ở đây chúng tôi sẽ phát triển một dự án nhấp nháy LED đơn giản bằng cách sử dụng MPLABX IDE với trình biên dịch XC8 và flash chip PIC18f4550 bằng cách sử dụng PIC kit2.
MPLABX IDE là một môi trường phát triển tích hợp được phát triển bởi Microchip.
Nó được sử dụng để phát triển một mã cho vi điều khiển PIC.
Hãy bắt đầu với MPLABX IDE.
1. Tải xuống trình biên dịch XC8 và Cài đặt nó.
2. Tải xuống MPLABX IDE và cài đặt nó.
3. Có rất nhiều lập trình phần cứng có sẵn cho PIC như PicKit2, PicKit3, USBPicProg.
  • Tại đây PickKit2 được sử dụng để tải chương trình về thiết bị.
4. Bây giờ mở MPLABX IDE.
5. Bây giờ, tạo một dự án mới cho đèn LED nhấp nháy.
  • Chọn Tệp -> Dự án mới
6. Sau khi chọn dự án mới, cửa sổ sau sẽ bật lên.
  • Chọn Microchip Embedded -> Chọn Standalone và nhấn để tiếp theo.
7. Chọn thiết bị và gia đình của họ
  • Ở đây PIC18 gia đình được sử dụng và thiết bị PIC18F4550. Sau khi chọn nhấp vào tiếp theo.
8. Cửa sổ để chọn công cụ sẽ bật lên sau khi nhấp vào tiếp theo 
  • Công cụ tải xuống chương trình PicKit2 này được sử dụng. Sau đó bấm vào Next.
9. Bây giờ chọn Compiler. Ở đây XC8 được sử dụng và nhấn Next.
10. Đặt tên cho một Project ví dụ như LED_Blinking_demo cũng thiết lập Path cho Project Folder và kích Finish.
Bây giờ dự án của chúng ta được hiển thị trong cửa sổ Project.

  • Tệp nguồn chứa Mã chính và các tệp hỗ trợ khác cho tiêu đề (tùy chọn). 
  • Bây giờ trong PIC18f4550, chúng ta cần cấu hình một số thanh ghi hoặc các bit như WDT, MCLRE ', FOSC, v.v.
  • Chúng ta có thể viết các cấu hình này trong mã C của chúng ta như sau:
              #pragma config FOSC = INTOSC_EC
              #pragma config WDT = TẮT
              #pragma config MCLRE = TẮT
  • Nhưng PIC18F4550 có nhiều cấu hình đăng ký để chúng được thiết lập mặc định và trình biên dịch tạo ra cảnh báo cho các thanh ghi này. Vì vậy, để cấu hình các thanh ghi này, MPLABX cung cấp một cách đơn giản như sau:
11. Vào Window -> PIC Memory Views -> Chọn bit cấu hình
Sau đó cửa sổ Popup như sau:
  • Cấu hình các bit theo yêu cầu và bấm vào nút "Tạo mã nguồn để đầu ra" được đưa ra ở phía dưới cùng.
  • Sao chép mã nguồn đã tạo và dán nó vào một tệp tiêu đề.
12. Để làm điều này 1 Tạo Header file
  • Nhấp chuột phải vào Tiêu đề trong dự án -> Chọn mới -> Chọn Tệp tiêu đề C
  • Tên Header File và nhấn vào Finish
  • Bây giờ chúng ta phải viết mã chính cho đèn LED nhấp nháy.
13. Tạo tập tin chính để phát triển mã.
  • Nhấp chuột phải vào Source in project -> Chọn new -> Chọn C Main File
  • Để viết mã trong Assembly, chọn ASM file.
  • Đặt tên cho tệp C và nhấp vào kết thúc.
14. Bây giờ viết một mã ứng dụng đơn giản.
  • Chương trình C đơn giản cho đèn LED nhấp nháy.

Chương trình


#include "Configurations_Header_File.h" /*Header file for Configuration Bits*/
#include <pic18f4550.h> /*Header file PIC18f4550 definitions*/

void MSdelay(unsigned int);

void main()
{
OSCCON=0x72; /* Use internal oscillator of 8MHz Frequency */
TRISB=0x00; /* Set direction of PORTB as OUTPUT to which LED is connected */
while(1)
{
LATB = 0xFF; /* Turn ON LED for 500 ms */
MSdelay (500);
LATB = 0x00; /* Turn OFF LED for 500 ms */
MSdelay (500);
}
}
void MSdelay(unsigned int val)
{
unsigned int i,j;
for(i=0;i<val;i++)
for(j=0;j<165;j++); /*This count Provide delay of 1 ms for 8MHz Frequency */
}

15. Bây giờ xây dựng dự án.
  • Có một cái búa như hình dạng, bấm vào nó để xây dựng một dự án.
  • Sau khi xây dựng một dự án, cửa sổ xuất hiện xuất hiện cho phép các lỗi và cảnh báo nếu có cách nào khác đưa ra thông báo Xây dựng thành công.
  • Sau đây là tạo ra Hex File mà cần phải tải trong thiết bị PIC.
 Sau khi tải lên chương trình trên, kết nối LED với vi điều khiển PIC, nó sẽ bắt đầu nhấp nháy như hình dưới đây.
LED nhấp nháy




Code mô phỏng

Bài 1. Giới Thiệu Vi Điều Khiển PIC

Giới thiệu

  • Vi điều khiển PIC được sản xuất bởi Microchip. Chúng có sẵn trong 8-bit, 16-bit và 32-bit.
  • Bộ vi điều khiển PIC 8 bit có nhiều gia đình khác nhau như sau

  Tính năng, đặc điểm
Đường cơ sở
Hạng trung
Tăng cường tầm trung
Nâng cao PIC18
  Các gia đình
  PIC10, PIC12, PIC16
 PIC10, PIC12
 PIC12Fxxx, PIC16Fxxx
 PIC 18
 Bộ nhớ chương trình
  Tối đa 3 KB
 Tối đa 14 KB
 Tối đa 28 KB
 Tối đa 128 KB
Bộ nhớ dữ liệu
Tối đa 138 byte
Tối đa 368 byte
  Tối đa 1-5 KB
 Tối đa 4 KB
Hiệu suất
5 MIPS
5 MIPS
8 MIPS
  16 MIPS
Tính năng, đặc điểm
  • ADC 8 bit
  • Bộ dao động nội bộ
  • So sánh
  Bổ sung vào đường cơ sở
  • I2C / SPI
  • PWM
  • UART
  • ADC 10 bit
     Bổ sung vào tầm trung
  • Nhiều thông tin ngoại vi
  • Hiệu suất cao
  • PWM với không gian thời gian độc lập
  • CÓ THỂ
  • USB
  • ETHERNET
  • LIN
  • Máy phát đồng hồ PLL

  • Hầu hết các gia đình là pin tương thích nhưng chức năng được giao là khác nhau cho các gia đình khác nhau.
  • Ví dụ, PIC16F877A có chân I2C (SDA và SCL) ghép kênh với PORTC trong khi trong PIC18F4550 chúng được ghép kênh với PORTB nhưng cả hai họ đều tương thích với pin.
  • Trong tên gia đình có hậu tố được sử dụng ở giữa mà nói -
               PIC18FXXX - 'F' ngụ ý Bộ nhớ Chương trình Flash
               PIC16CXXX - 'C' ngụ ý bộ nhớ chương trình EPROM
               PIC18LFXXX - 'LF' ngụ ý hoạt động điện áp thấp
  • Nó thay đổi từ gia đình này sang gia đình khác.
  • Bất cứ khi nào một phần mới được thiết kế để thay thế một phần cũ hơn, một phiên bản mới của phần này thu được bằng cách thêm bảng chữ cái phụ ở cuối như 16F877 và 16F877A.
Phần sau sẽ bao gồm phần giới thiệu chi tiết của PIC18 vì nó được ưu tiên hơn cho phát triển.
Hãy bắt đầu với thiết bị PIC18F4550 trong họ PIC18.
PIC18F4550 là vi điều khiển kiến ​​trúc RISC 8 bit. Thông số kỹ thuật của nó là
  • Bộ hẹn giờ: Một bộ hẹn giờ 8 bit và 16 bit, tức là Timer0-Timer3.
  • USART : 1 USART được cải tiến trong xây dựng.
  • ADC : ADC 13 kênh 13 bit.
  • Mô-đun chụp, So sánh và mô-đun PWM (CCP) và mô-đun CCP nâng cao.
  • USB: USB V2.0 hỗ trợ tốc độ truyền 1.5Mb / s đến 12Mb / s.
  • Cổng nối tiếp đồng bộ chính (MSSP) có giao thức I2C và SPI.
  • 256 byte EEPROM, 32Kbyte bộ nhớ Flash và SRAM nội bộ 2KB.
  • PORTS : A, B, C, D và E.
  • Cổng song song truyền trực tuyến để truyền trực tuyến qua USB.
  • Ba ngắt ngoài.
  • Dao động :
  1. Bốn chế độ Crystal, bao gồm PLL chính xác cao cho USB
  2. Hai chế độ Đồng hồ bên ngoài, tối đa 48 MHz
  3. Bộ dao động nội bộ có tần số lựa chọn 8 người dùng từ 32 KHz-8 MHz
  4. Dao động phụ sử dụng Timer1 @ 32 kHz
  • LIN hỗ trợ xe buýt.

Sơ đồ pin


Nó có 5 Cổng và mỗi Cổng có 3 Đăng ký sau:
  1. TRIS - Được sử dụng làm thanh ghi hướng dữ liệu (đầu ra 0 và đầu vào 1).
  2. LAT - Đăng ký đầu ra dữ liệu.
  3. PORT - Được sử dụng để đọc các mức trên chân đầu vào.
  • PORTB và PORTD có pull-up nội bộ yếu.
  • Cũng trên Power On Reset (POR), Port Pins được ghép kênh với các chân ADC hoạt động như các chân ADC (mặc định).
  • Để truy cập các chân GPIO này trước tiên hãy thay đổi chế độ ADC mặc định thành các chân số bằng cách sử dụng đăng ký PBADEN.

Bên trong PIC18F4550

Bộ hẹn giờ
  • Nó có sẵn module Timer có thể được sử dụng cho nhiều ứng dụng như tạo ra độ trễ chính xác, đếm xung, đo xung.
  • Timer0, Timer2 và Timer3 là Timer 16 bit trong khi Timer1 là Timer 8 bit.
  • Để sử dụng các mô-đun hẹn giờ này, họ có các thanh ghi điều khiển và trạng thái riêng.
  • Để sử dụng Bộ đếm thời gian làm bộ đếm hoặc để đếm sự kiện, chúng tôi cần kết nối xung ngoài với RA4 cho Timer0 và tới RC0 cho Timer1. Những tín hiệu này không có gì khác ngoài T1CKI và T3CKI tương ứng.
ADC
  • Nó có bộ ADC 13 kênh 13 bit. Các kênh được đặt tên là AN0, AN1, AN2… .AN12.
  • Nó được sử dụng để đọc tín hiệu tương tự từ các cảm biến như Nhiệt độ, Độ ẩm, gia tốc kế và chuyển đổi chúng thành kỹ thuật số để xử lý.
UART
  • Nó cũng có Universal Receiver không đồng bộ Transmitter (UART) được sử dụng để giao tiếp giữa hai thiết bị serially. Đối với truyền thông đường dài, thường là giao thức nối tiếp được ưu tiên.
  • Hầu hết các mô-đun điện tử như GSM, GPS, Bluetooth, Wi-Fi đều sử dụng giao tiếp UART với các Tốc độ Baud khác nhau chẳng hạn như 9600,115200 vv
  • Để thực hiện giao tiếp này, Ghim Rx cho bộ thu và Tx cho Máy phát được sử dụng.
Ngắt bên ngoài
  • Các chân INT0, INT1 và INT2 được sử dụng cho ngắt ngoài. Việc áp dụng ngắt này là để phát hiện sự kiện mong muốn của xung đến và thực hiện hành động tương ứng. Những sự kiện mong muốn này là Trình kích hoạt cạnh dương hoặc Trình kích hoạt cạnh tiêu cực.
Capture / So sánh / PWM ĐCSTQ Module
  • Nó có mô-đun Capture / Compare / PWM (CCP) được sử dụng cho các ứng dụng khác nhau.
  1. Capture - Nó được sử dụng để đo tần số, xung hoặc chu kỳ nhiệm vụ của xung đầu vào. Để làm điều này, kết nối xung đầu vào với chân RC2 và cấu hình chế độ chụp.                                                 
  2. So sánh - Nó được sử dụng để tạo ra sóng vuông. Để làm điều này tải số trong đăng ký mà sẽ so sánh với Timer và khi trận đấu xảy ra nó sẽ tạo ra mong muốn cao hoặc thấp xung đầu ra tại RC2 pin.
  3. PWM - Nó được sử dụng cho các ứng dụng khác nhau như kiểm soát tốc độ của động cơ DC, thay đổi cường độ LED, tạo sóng Sine, v.v.
Cổng nối tiếp đồng bộ chính (MSSP)
  • Mô-đun cổng nối tiếp đồng bộ chính (MSSP) là một giao diện nối tiếp, hữu ích để giao tiếp với các thiết bị ngoại vi hoặc vi điều khiển khác.
  • Các thiết bị ngoại vi này có thể là EEPROM nối tiếp, thanh ghi thay đổi, trình điều khiển hiển thị, bộ chuyển đổi A / D, v.v.
Mô-đun MSSP có thể hoạt động ở một trong hai chế độ:
1. I2C
  • I2C - Đây là giao thức truyền thông hai dây. Nó chỉ có 2 dây tức là SDA (Serial Data) và SCL (Serial Clock). SDA và SCL được ghép nối với chân PortB.0 và PORTB.1 tương ứng.
  • Tốc độ của giao thức này dao động từ 100 Khz-400 KHz.
  • Giao thức này được sử dụng trong nhiều ứng dụng interfacing như Gyroscope, Magnetometer.
2. SPI
  • SPI - Nó cũng là một giao thức truyền thông nối tiếp có 4 dây tức là SDI (Serial Data Input), SDO (Serial Data Output), SCK (Serial Clock) và SS '(Slave select).   
  • Nó được sử dụng để giao tiếp giữa các thiết bị như thẻ SD, chip ADC, v.v.
Cả hai giao thức SPI và I2C đều có tốc độ lớn hơn truyền thông UART. Cả hai đều là Master-Slave Protocol.
Universal Serial Bus (USB)
  • Nó có cổng USB mà tôi cũng là phương tiện truyền thông. Nó là một giao tiếp cổng song song. Nó cung cấp một cổng song song (SPP) như một giao diện tốc độ cao để di chuyển dữ liệu đến và từ một hệ thống bên ngoài.
Tiết kiệm năng lượng
  • Nó là cần thiết trong một số ứng dụng mà hạn chế năng lượng là quan trọng. Để làm cho thiết bị hiệu quả, nó cung cấp khả năng đưa thiết bị vào chế độ ngủ khi nó ở chế độ chờ. Chế độ này cũng được gọi là chế độ Tiết kiệm điện.

Bài đăng mới nhất

Valdes Fernando - Microcontrollers Applications With Pic

Bài đăng phổ biến