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 | 0000 | a b c d e f | 0 1 1 1 1 1 1 | 0x3F | 0xC0 |
| 1 | 0001 | b c | 0 0 0 0 1 1 0 | 0x06 | 0xF9 |
| 2 | 0010 | a b d e g | 1 0 1 1 0 1 1 | 0x5B | 0xA4 |
| 3 | 0011 | a b c d g | 1 0 0 1 1 1 1 | 0x4F | 0xB0 |
| 4 | 0100 | b c f g | 1 1 0 0 1 1 0 | 0x66 | 0x99 |
| 5 | 0101 | a c d f g | 1 1 0 1 1 0 1 | 0x6D | 0x92 |
| 6 | 0110 | a c d e f g | 1 1 1 1 1 0 1 | 0x7D | 0x82 |
| 7 | 0111 | a b c | 0 0 0 0 1 1 1 | 0x07 | 0xF8 |
| 8 | 1000 | a b c d e f g | 1 1 1 1 1 1 1 | 0x7F | 0x80 |
| 9 | 1001 | a b c d f g | 1 1 0 1 1 1 1 | 0x6F | 0x90 |
| A | 1010 | a b c e f g | 1 1 1 0 1 1 1 | 0x77 | 0x88 |
| B | 1011 | c d e f g | 1 1 1 1 1 0 0 | 0x7C | 0x83 |
| C | 1100 | a d e f | 0 1 1 1 0 0 1 | 0x39 | 0xC6 |
| D | 1101 | b c d e g | 1 0 1 1 1 1 0 | 0x5E | 0xA1 |
| E | 1110 | a d e f g | 1 1 1 1 0 0 1 | 0x79 | 0x86 |
| F | 1111 | a e f g | 1 1 1 0 0 0 1 | 0x71 | 0x8E |
코드는 dp g f e d c b a 순서(a가 최하위 비트)이고 소수점(dp)은 꺼진 상태입니다. 7447 같은 BCD 디코더는 10~15에서 이 표와 다른 모양을 냅니다.
자주 묻는 질문
공통 캐소드에서 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진수 디코더를 쓰세요.