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.
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.
Đố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.
- 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à hình dạng của nó 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ó.
Ứ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.
- Đây là code chương trình.
- Đâ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;
}
}
#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;
}
}
EmoticonEmoticon