Tư vấn: 0979.466.469 / 0938.128.290

MENU

Hướng dẫn điều khiển led đơn dùng pic

Gia cong pcb 600*150px

Hướng dẫn chi tiết các điều khiển led đơn dùng pic từng bước, các linh kiện điện tử cần thiết, các đoạn mã và phần mềm

Linh kiện điện tử cần có:

  • PicKit 3

  • Chip PIC16F877A

  • Đế 40 chân cho Chip

  • Bảng mạch

  • Thạch anh 20 MHz

  • Hàng rào đực và hàng rào cái

  • Hai tụ 33pf, tụ 100uf và 10uf.

  • Điện trở 680 ohm, 10K và 560ohm

  • Đèn LED

  • Mỏ hàn

  • IC 7805

  • Bộ nguồn 12V

 

Điều gì sẽ xảy ra khi chúng ta nạp chương trình vào vi điều khiển !!

 

Khi ta viết chương trình bằng ngon ngữ C và nạp vào chip thì nó sẽ hoạt động như thế nào?

Để hiểu điều này chúng ta hãy xem chương trình bên dưới

Như các bạn có thể thấy dòng code này được viết theo ngôn ngữ C và vô nghĩa với vi điều khiển (MCU). Lúc này phải cần đến trình biên dịch để chuyển code thành dạng máy có thể đọc được hay nói cụ thể là mã hex, mỗi project chúng ta sẽ có 1 mã hex như bên dưới

 

**Your location**BlinkBlink.XdistdefaultproductionBlink.X.production.hex

Nếu bạn tò mò muốn biết mã hex trông như thế nào thì cứ mở nó bằng notepad. Đối với chương trình nháy mã hex sẽ như bên dưới:

 

:060000000A128A11FC2F18

:100FAA008316031386018312031386018312031324

:100FBA0086150D30F200AF30F100C130F000F00BB1

:100FCA00E42FF10BE42FF20BE42F0000831203133A

:100FDA0086110D30F200AF30F100C130F000F00B95

:100FEA00F42FF10BF42FF20BF42F0000DB2F830107

:060FFA000A128A11D52F36

:02400E007A3FF7

:00000001FF

 

Có nhiều cách để đọc và hiểu nó như đảo ngược về ngôn ngữ Assembly, nhưng nó không thuộc phạm vi bài viết này. Tóm lại, hex là kết quả mã hóa cuối cùng và được gởi đến MPLAB IPE để ghi vi điều khiển.

 

Bộ nhớ flash

Mã hex được lưu vào một chỗ trong MCU gọi là bộ nhớ flash. Bộ nhớ flash là nơi lưu chương trình bên trong MCU và chương trình được thực thi từ đó. Khi biên dịch chương trình bên trong MPLABX chúng ta sẽ có thông tin về loại bộ nhớ trên bảng điều khiển đầu ra.

 

Vì chúng ta vừa mới soạn một chương trình nhấp nháy ngắn nên trong bảng thống kê bộ nhớ cho biết chúng ta đã xài 0.5% bộ nhớ chương trình và 1.4% bộ nhớ dữ liệu.

 

Bộ nhớ của vi điều khiển PIC16F877 về cơ bản được chia thành 3 loại:

 

Bộ nhớ chương trình: Bộ nhớ này chứa chương trình sau khi chúng ta đã ghi. Cần phải nhắc lại một chút là, Program Counter thực hiện các lệnh trong bộ nhớ chương trình một cách tuần tự từng cái một.

 

Bộ nhớ dữ liệu: Đây là loại bộ nhớ RAM, có chứa một thanh ghi đặc biệt như SFR. Các biến khai báo được lưu trữ trong bộ nhớ dữ liệu và sẽ bị xóa sau khi tắt MCU.

 

Bộ nhớ EEPROM (Bộ nhớ chỉ cho đọc có thể lập trình bằng điện): Bộ nhớ cho phép lưu trữ các biến khi ghi chương trình bằng văn bản. Ví dụ, nếu chúng ta gán một biến "a" để lưu một giá trị 5 trong nó và lưu nó trong EEPROM, dữ liệu này sẽ không bị mất ngay cả khi tắt nguồn.

 

Bộ nhớ chương trình và EEPROM là những bộ nhớ không bị mất và được gọi là Bộ nhớ Flash hoặc EEPROM.

 

Chuẩn nạp ICSP

Chúng ta sẽ lập trình PIC16F877A bằng cách sử dụng chuẩn nạp ICSP có sẵn trong MCU.

 

Nhưng cần phải tìm hiểu ICSP là gì?

 

ICSP (In Circuit Serial Programming) là một cách đơn giản giúp chúng ta lập trình MCU ngay cả sau khi nó được đặt bên trong bo mạch. Không cần phải có một bo mạch lập trình riêng để lập trình MCU, tất cả những gì chúng ta cần là 6 kết nối từ PicKit3 đến bo mạch như sau:

 

1

VPP (or MCLRn)

To enter programming mode.

2

Vcc

Nối nguồn  Pin 11 or 32

3

GND

Quảng cáo đặt hàng nhập

Nối đất PIN 12 or 31

4

PGD - Data

RB7. PIN40

5

PGC - Clock

RB6. PIN 39

6

PGM - LVP enable

RB3/RB4.

 

ICSP phù hợp cho tất cả các PIC. Cách kết nối như hình bên dưới:

 

Mạch và phần cứng:

Bây giờ, chúng ta có sẵn mã HEX và chúng ta cũng biết cách kết nối PicKit 3 với PIC MCU bằng ICSP. Tiếp theo là hàn mạch theo sơ đồ dưới đây:

Trong mạch trên sử dụng 7805 để điều chỉnh 5V đầu ra cho PIC MCU. Bộ điều chỉnh này sẽ được cấp nguồn bằng adapter 12V. Đèn LED màu đỏ được sử dụng báo khi PIC được cấp nguồn. Hàng rào J1 dùng cho lập trình ICSP. Các chân được kết nối như đã nói ở bảng trên.

 

Đèn LED được nối với chân RB3 thông qua một điện trở 560 ohm. Khi chương trình được tải lên, đèn LED này sẽ nhấp nháy. Toàn bộ mạch được xây dựng trên Perfboard bằng cách hàn tất cả các linh kiện như hình trên.

 

Nạp chương trình bằng phần mềm MPLAB IPE theo các bước dưới đây:

 

  1. Khởi chạy IPLAB MPLAB.

  2. Kết nối một đầu của PicKit 3 với máy tính và đầu kia vào các chân ICSP trên bảng mạch.

  3. Kết nối với PIC bằng cách nhấp vào nút kết nối.

  4. Duyệt tìm file HEX và nhấp vào Program.

 

Nếu bạn làm đúng, bạn sẽ nhận được thông báo thành công trên màn hình. Bạn có thể tham khảo chương trình sau đây:

 

// 'C' source line config statements

 

// CONFIG

#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)

#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)

#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)

#pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)

#pragma config LVP = OFF        // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)

#pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)

#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)

#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)

 

// #pragma config statements should precede project file includes.

// Use project enums instead of #define for ON and OFF.

 

#include

 

   #define _XTAL_FREQ 20000000 //Specify the XTAL crystall FREQ

 

void main() //The main function

{

TRISB=0X00; //Instruct the MCU that the PORTB pins are used as Output.

PORTB=0X00; //Make all output of RB3 LOW

 

while(1) //Get into the Infinie While loop

{

   RB3=1; //LED ON

   __delay_ms(100); //Wait

   RB3=0; //LED OFF

   __delay_ms(100); //Wait

   

   //Repeat.

}

 

}



Gia công pcb 932*150
Sản phẩm nổi bật
Sale 0%
PIC12 8-bit Microcontrollers - MCU 3.5KB 128B RAM...
18000 /Cái
/ Cái

Code: 7204-174 Còn hàng

Lưu xem sau
Sale 0%
40000 /Cái
/ Cái

Code: 7204-032 Còn hàng

Lưu xem sau
Sale 0%
450000 /Cái
/ Cái

Code: 7204-239 Còn hàng

Lưu xem sau
Sale 0%
PIC16 IC PIC MCU FLASH 2KX14 28-SOIC
27000 /Cái
/ Cái

Code: 7204-036 Còn hàng

Lưu xem sau
Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469
0868565469
0868565469

Hotline: 0979 466 469

Loading
0979 466 469
Bạn cần linh kiện mẫu ? 7-11 ngày