728x90

FND 세븐 세그먼트

- Flexible Numeric Display

- 숫자 표현을 위한 디스플레이용 소자

- .을 포함하여 8개 LED 배열하여 표현

FND

 

 

FND 내부 회로

- 커먼 캐소드형 : 컴 단자가 - , 공통으로 -단자에 연결

- 커먼 애노드형 : com 단자가 + 전압, 공통으로 + 단자에 연결

Common Cathod형 FND
Common Anode 형

 

FND 동작 원리

- 캐소드 타입 : 핀에 하이 신호 시 불켜짐

- 애노드 타입 : 핀에 로 신호시 불켜짐

 

 

FND 캐소드 타입 테이블

- 애노드 타입의 경우 캐소드 타입을 반전시키면 된다.

 

핀 연결

 

모든 세그먼트를 연결시

- 총 54개 핀이 필요

- 6개의 COM(COM0~COM5), 8(a~h) x 6

 

세그먼트 공통 연결시

- 14개 핀으로 제어

 - 8(a~h) + 6(COM0 ~ COM5)

문제 : 8개의 비트 만으로 6개 FND 값 전체를 한번에 제어할수 없음

-> 잔상 효과로 각 LED를 시간차 주어 제어

 

잔상효과를 이용한 FND 제어

- 자리를 바꾸면서 남는 잔상으로 숫자 표시 -> 모든 세그먼트 연결하는것보다 핀 수를 줄일 수 있음

-> 가장 흔한 FND 제어 방식

 

FND 회로도

- 캐소드 공통형 회로도

- 사용된 핀 확인해야함

- PE2~5 4개, PA0~PA7 8개

 

FND 제어 예제 1

- FND를 사용하기 위해 커먼과 핀을 출력설정해야함

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRA = 0xFF;
    DDRE = 0xFF;
    
    while (1)
    {
    	PORTA = 0x3F;	// 숫자 '0'
        PORTE = 0x00;	// X1~X2 FND ENABLE
        _delay_ms(10);
    }
}

 

회로도 코드

;_led7cc : 커먼 캐소드 타입 FND
; PA0~PA7를 입력
; PE0를 캐소드에 연결
X1 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE0
X2 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE1
X3 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE2
X4 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE3
X5 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE4
X6 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE5
X7 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE6
X8 _led7cc PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PE7

; 커먼 애노드 타입 사용시 _led7ca
;FND 설정, Xn _led7cc seg_a seg_b seg_c seg_h ... seg_h GND

 

FND 제어 예제 2

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{

	unsigned char seg[8] = {0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F};
    unsigned char i;
    
	DDRA = 0xFF;
    DDRE = 0xFF;
    PORTE - 0x00;	//전체 FND enable
    
    while (1)
    {
  		for (i = 0; i < 8; i++)
        {
        	PORTA = seg[i];
            _delay_ms(100);
        }
  	}
}

 

다이나믹 FND

- VMLAB에서 사용불가.

300x250

+ Recent posts