7-세그먼트 디코더 계산기
0~F를 고르면 7-세그먼트 표시기에서 켜지는 세그먼트와 BCD 입력, 마이크로컨트롤러에 쓸 16진수 코드를 보여 줍니다.
세그먼트 이름과 주의점
위에서부터 시계 방향으로 a, b, c, d, e, f이고 가운데가 g입니다. 공통 캐소드는 High를 줄 때, 공통 애노드는 Low를 줄 때 켜집니다. 74LS47 같은 BCD 디코더 IC는 0~9만 정상 숫자로 표시하고, 6과 9를 꼬리 없이(a, d 세그먼트 없이) 표시하며 10~15는 특수 기호로 나오니 참고하세요. 세그먼트마다 전류 제한 저항이 필요합니다.
풀이 예제: 숫자 2의 세그먼트 코드
- 숫자 2는 위(a), 오른쪽 위(b), 가운데(g), 왼쪽 아래(e), 아래(d)가 켜집니다 → a b d e g
- g f e d c b a 순서로 켜짐=1: 1 0 1 1 0 1 1 → 공통 캐소드 코드 0x5B
- 공통 애노드는 Low에서 켜지므로 비트를 모두 뒤집습니다 → 0xA4
7-세그먼트 0~F 코드표
| 표시 | 켜지는 세그먼트 | DCBA | g f e d c b a | 공통 캐소드 | 공통 애노드 |
|---|---|---|---|---|---|
| 표시0 | 켜지는 세그먼트a b c d e f | DCBA0000 | g f e d c b a0 1 1 1 1 1 1 | 공통 캐소드0x3F | 공통 애노드0xC0 |
| 표시1 | 켜지는 세그먼트b c | DCBA0001 | g f e d c b a0 0 0 0 1 1 0 | 공통 캐소드0x06 | 공통 애노드0xF9 |
| 표시2 | 켜지는 세그먼트a b d e g | DCBA0010 | g f e d c b a1 0 1 1 0 1 1 | 공통 캐소드0x5B | 공통 애노드0xA4 |
| 표시3 | 켜지는 세그먼트a b c d g | DCBA0011 | g f e d c b a1 0 0 1 1 1 1 | 공통 캐소드0x4F | 공통 애노드0xB0 |
| 표시4 | 켜지는 세그먼트b c f g | DCBA0100 | g f e d c b a1 1 0 0 1 1 0 | 공통 캐소드0x66 | 공통 애노드0x99 |
| 표시5 | 켜지는 세그먼트a c d f g | DCBA0101 | g f e d c b a1 1 0 1 1 0 1 | 공통 캐소드0x6D | 공통 애노드0x92 |
| 표시6 | 켜지는 세그먼트a c d e f g | DCBA0110 | g f e d c b a1 1 1 1 1 0 1 | 공통 캐소드0x7D | 공통 애노드0x82 |
| 표시7 | 켜지는 세그먼트a b c | DCBA0111 | g f e d c b a0 0 0 0 1 1 1 | 공통 캐소드0x07 | 공통 애노드0xF8 |
| 표시8 | 켜지는 세그먼트a b c d e f g | DCBA1000 | g f e d c b a1 1 1 1 1 1 1 | 공통 캐소드0x7F | 공통 애노드0x80 |
| 표시9 | 켜지는 세그먼트a b c d f g | DCBA1001 | g f e d c b a1 1 0 1 1 1 1 | 공통 캐소드0x6F | 공통 애노드0x90 |
| 표시A | 켜지는 세그먼트a b c e f g | DCBA1010 | g f e d c b a1 1 1 0 1 1 1 | 공통 캐소드0x77 | 공통 애노드0x88 |
| 표시B | 켜지는 세그먼트c d e f g | DCBA1011 | g f e d c b a1 1 1 1 1 0 0 | 공통 캐소드0x7C | 공통 애노드0x83 |
| 표시C | 켜지는 세그먼트a d e f | DCBA1100 | g f e d c b a0 1 1 1 0 0 1 | 공통 캐소드0x39 | 공통 애노드0xC6 |
| 표시D | 켜지는 세그먼트b c d e g | DCBA1101 | g f e d c b a1 0 1 1 1 1 0 | 공통 캐소드0x5E | 공통 애노드0xA1 |
| 표시E | 켜지는 세그먼트a d e f g | DCBA1110 | g f e d c b a1 1 1 1 0 0 1 | 공통 캐소드0x79 | 공통 애노드0x86 |
| 표시F | 켜지는 세그먼트a e f g | DCBA1111 | g f e d c b a1 1 1 0 0 0 1 | 공통 캐소드0x71 | 공통 애노드0x8E |
코드는 dp g f e d c b a 순서(a가 최하위 비트)이고 소수점(dp)은 꺼진 상태입니다. 7447 같은 BCD 디코더는 10~15에서 이 표와 다른 모양을 냅니다.
실전에서 쓰는 법
순서대로 쓰기
- 쓰는 표시기에 맞게 공통 캐소드나 공통 애노드를 고릅니다.
- 0부터 F 중 숫자를 골라 켜지는 세그먼트, BCD 입력, 보낼 바이트를 확인합니다.
- 도구의 비트 순서가 a~g 세그먼트를 포트에 연결한 순서와 같은지 확인합니다.
자주 하는 실수
- 표시기 종류를 잘못 고르기. 공통 애노드 표시기는 핀을 low로 당길 때 켜지므로, 공통 캐소드와 비교해 모든 비트가 반대입니다. 숫자가 반전되어 보이면 이것이 원인입니다.
- 공통 단자에 저항 하나만 달기. 저항 하나를 같이 쓰면 켜진 세그먼트 수에 따라 밝기가 달라집니다(8이 1보다 어둡습니다). 세그먼트마다 저항을 하나씩 다세요.
- 디코더 짝을 잘못 맞추기. 7447은 출력이 active-low라 공통 애노드용이고, 7448과 CD4511은 공통 캐소드 표시기를 구동합니다.
실전 팁
세그먼트는 맨 위부터 시계 방향으로 a~f, 가운데가 g, 소수점이 dp입니다. 핀 배치는 표시기 모델마다 다르니, 배선 전에 멀티미터의 다이오드 측정으로 공통 핀부터 찾으세요. 여러 자리를 쓰려면 다중화(멀티플렉싱)합니다. 한 번에 한 자리씩 충분히 빠르게(자리당 대략 100 Hz 이상) 켜면 눈에는 모두 켜진 것처럼 보이고, 켜지는 시간이 짧아진 만큼 세그먼트 전류를 높입니다.
자주 묻는 질문
공통 캐소드에서 0~9를 표시하는 16진수 코드는?
a를 비트 0, g를 비트 6으로 두면 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F입니다. 공통 애노드는 비트를 뒤집어서 0은 0xC0입니다.
74LS47에 10~15를 넣으면 이상한 모양이 나오는 이유는?
74LS47은 0~9용 BCD 디코더라서 10~15를 넣으면 A~F가 아니라 정해진 특수 모양이 나옵니다. A~F를 표시하려면 마이크로컨트롤러나 16진수 디코더를 쓰세요.