728x90
FND 세븐 세그먼트
- Flexible Numeric Display
- 숫자 표현을 위한 디스플레이용 소자
- .을 포함하여 8개 LED 배열하여 표현
FND 내부 회로
- 커먼 캐소드형 : 컴 단자가 - , 공통으로 -단자에 연결
- 커먼 애노드형 : com 단자가 + 전압, 공통으로 + 단자에 연결
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
'로봇 > 전기전자&메카' 카테고리의 다른 글
마이크로프로세서 메카트로닉스 제어 - 9 LCD 제어 2 (0) | 2020.05.13 |
---|---|
마이크로프로세서 메카트로닉스 제어 - 8 LCD 제어 1 (0) | 2020.05.13 |
마이크로프로세서 메카트로닉스 제어 - 6 스위치 입력 (0) | 2020.05.12 |
마이크로프로세서 메카트로닉스 제어 - 5 릴레이 제어 이론과 실습 (0) | 2020.05.12 |
마이크로프로세서 메카트로닉스 제어 - 4 LED 제어 (0) | 2020.05.12 |