Saturday, May 21, 2016

BÀI 5 : HIỂN THỊ SỐ 2015 LÊN LED 7 ĐOẠN PIC16F877A XC8

7:54:00 PM - By Unknown 0

Chào các bạn trong bài đăng này mình sẽ học về LED 7 đoạn hay còn gọi là 7 SEG. Trước tiên mình sẽ giới thiệu với các bạn về câu tạo cũng như là hình dạng của nó.
1.Câu tạo
Thì nó cũng giống LED đơn thôi cũng có 2 loại là Anode chung và Cathode chung.
Anode chung.

LED Anode Chung
Đối với LED Anode chung thì khi chúng ta cấp nguồn âm vào thì nó sẽ sáng như trên hình.
Cathode chung.
LED Cathode Chung
Đối với LED Cathode chung thì khi chúng ta cấp nguồn dương cho nó thì nó sẽ sáng như trên hình.
Thực chất nó được cấu tạo từ các LED đơn và được nối chung các chân với nhau giống như hình trên và đưa ra 8 chân cho chúng ta điều khiển là A, B, C, D, E, F, G, H. H là dấu chấm của LED nên chúng ta không cần quan tam nhiều đến nó. Các chân còn lại là chân dùng để điều khiển LED đối vói LED Anode chung thì khi muốn nó sáng thì ta xuất mức 1 cho nó càn LED Cathode chung thì ta xuất mức 0. 
- Đây là bản mã LED 7 ĐOẠN ANODE CHUNG.
bảng mã led anode chung
- Đây là bản mã LED 7 ĐOẠN CATHODE CHUNG.
bảng mã led cathode chung
Đây là hình dạng của nó trên protues.
7seg trên protues
Phần mềm này hỗ trỡ cho chúng ta rất nhiều loại LED khác nhau và màu sắc cũng khác nhau các bạn có thể chọn LED phù hợp với sỡ thích của mình. Nó cũng chia xa làm 2 loại là Anode chung và Cathode chung.
- Còn dưới đây là hình ảnh ngoài thực tế của nó.
7seg
Ứng dụng : Được sử dụng rộng rãi trong đời sống như là : Đồng hồ, Đèn giao thông……
Ưu điểm : nhỏ gọn, dễ sử dụng, giá thành rẽ, lâu hư….
Nhược điểm : Chỉ hiện thị được số và 1 vài ký tự….
Trong bài này mình sẽ hướng dẫn các bạn hiển thị số 2015 lên 4 LED 7SEG.
Đây là ảnh mô phỏng protues.
hiển thị số 2015 lên 4 led 7 đoạn pic16f877a xc8
Đây là code chương trình.
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#define _XTAL_FREQ 8000000
// 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 = OFF      // Brown-out Reset Enable bit (BOR disabled)
#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)
const unsigned char Anode[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
const unsigned char Cathode[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
void main(void)
{
    TRISB = 0X00;
    PORTB = 0X00;
    TRISAbits.TRISA0 = 0;
    TRISAbits.TRISA1 = 0;
    TRISAbits.TRISA2 = 0;
    TRISAbits.TRISA3 = 0;
    while(1)
    {
        // xuat so 2 len led 7seg
        PORTB = 0XA4;
        PORTAbits.RA0 = 1;
        __delay_ms(4);
        PORTAbits.RA0 = 0;
        // xuat so 0 len led 7 seg
        PORTB = 0XC0;
        PORTAbits.RA1 = 1;
        __delay_ms(4);
        PORTAbits.RA1 = 0;
        // xuat so 1 len led 7seg
        PORTB = 0XF9;
        PORTAbits.RA2 = 1;
        __delay_ms(4);
        PORTAbits.RA2 = 0;
        // xuat so 5 len led 7 seg
        PORTB = 0X92;
        PORTAbits.RA3 = 1;
        __delay_ms(4);
        PORTAbits.RA3 = 0;
    }

}
Từ đoạn chương trình trên các bạn có thể tăng thêm hoạt giảm số LED tùy thuộc vào mục đích của các bạn nha !
Link download project Click here

Tôi là một người đam mê viết BLOG. Tuy tôi không phải là một người giỏi nhưng tôi muốn chia sẽ những gì tôi biết cho các bạn. Tôi hy vọng nó sẽ giúp được các bạn một phần nào đó !
Follow me @Programming PIC
Subscribe to this Blog via Email :

0 nhận xét:

Powered by Blogger.
back to top