7 개의 세그먼트 디스플레이는 전자 제품에서 중요한 디스플레이 단위이며 0에서 9까지의 숫자를 표시하는 데 널리 사용됩니다. 또한 A, B, C, H, F, E 등과 같은 일부 문자 알파벳을 표시 할 수 있습니다.이 자습서에서는 학습 할 것입니다. 7 세그먼트 디스플레이를 8051 마이크로 컨트롤러와 인터페이스하는 방법. 우리는 8051 시리즈의 AT89S52 마이크로 컨트롤러를 사용하고 있습니다.
인터페이스하기 전에 7 세그먼트 디스플레이에 대해 배워야합니다. 숫자와 문자를 표시하는 가장 간단한 단위입니다. 그것은 단지 8 개의 LED로 구성되며, 각 LED는 유닛의 한 부분을 비추는 데 사용되며 8 번째 LED는 7 세그먼트 디스플레이에서 DOT를 비추는 데 사용됩니다. 단위에 숫자 / 문자를 표시하는 데 사용되는 7 줄이있는 것을 알 수 있으므로 각 세그먼트를 LINE으로 참조 할 수 있습니다. 각 라인 / 세그먼트 "a, b, c, d, e, f, g"를 참조 할 수 있으며 도트 문자의 경우 "h"를 사용합니다. 8 개의 핀이 a, b, c, d, e, f, g 및 h / dp를 참조하는 데 사용되는 10 개의 핀이 있으며, 두 개의 중간 핀은 모든 LED의 공통 양극 / 음극입니다. 이러한 공통 양극 / 음극은 내부적으로 단락되어 있으므로 하나의 COM 핀만 연결하면됩니다.
7 세그먼트 디스플레이에는 공통 양극 및 공통 음극의 두 가지 유형이 있습니다.
공통 양극: 여기에서 모든 8 개 LED의 모든 음극 단자 (음극)는 COM으로 명명 된 함께 연결됩니다 (아래 다이어그램 참조). 그리고 모든 양극 단자는 그대로 둡니다.
공통 음극: 여기에서 8 개 LED의 모든 양극 단자 (양극)는 COM으로 명명 된 함께 연결됩니다. 그리고 모든 네거티브 써멀은 홀로 남겨집니다.
회로도 및 작업 설명
여기서는 LED를 반대로 연결해야하므로 7 세그먼트의 공통 양극 유형을 사용합니다. 마이크로 컨트롤러는 LED를 발광하기에 충분한 전력을 제공하지 않으므로 LED의 음극을 마이크로 컨트롤러 핀에 연결하고 LED의 양극을 전원 공급 장치에 연결해야합니다. 이 기사 "8051 마이크로 컨트롤러와 LED 인터페이싱"에서이 부정적인 논리 개념을 이해할 수 있습니다. 또한 크리스탈 및 리셋 회로와 같은 마이크로 컨트롤러의 기본 연결을 이해하려면이 기사를 읽어야합니다.
위 그림과 같이 7 세그먼트 디스플레이와 8051 마이크로 컨트롤러 를 연결 하는 회로도, 우리는 핀 2.0 ~ 2.7에 a, b, c, d, e, f, g, h를 연결했습니다. 이는 7 세그먼트를 마이크로 컨트롤러의 포트 2에 연결한다는 것을 의미합니다. 이제 0을 표시하고 싶다고 가정하면 "g"라인 (위의 다이어그램 참조)에 속하는 LED를 제외한 모든 LED를 켜야합니다. 따라서 핀 2.0에서 2.6은 0이어야합니다 (LED를 켜려면 0이어야합니다. 핀 2.7과 2.8은 1이어야합니다 (부 논리에 따라 LED를 끄려면 1이어야 함). 따라서 핀 2.0 ~ 2.6 (a, b, c, d, e, f)에 연결된 LED가 켜지고 2.7 및 2.8 (g 및 h)에 연결된 LED가 꺼져 7에서 "0"이 생성됩니다. 분절. 따라서 비트 패턴 11000000 (Pin 8이 가장 높은 비트이므로 P2.7에서 P2.0으로 시작)이 필요하고 바이너리 11000000의 HEX 코드는 "C0"입니다. 마찬가지로 모든 자릿수를 계산할 수 있습니다. 여기서는 "dot / h"를 항상 OFF로 유지하고 있습니다.그래서 우리는 매번 LOGIC“1”을 줄 필요가 있습니다. Common Anode 7 세그먼트를 사용하는 동안 모든 숫자에 대해 아래 표가 제공됩니다.
표시 할 숫자 |
hgfedcba |
16 진수 코드 |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
삼 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
코드 설명
ms_delay 함수를 만들어 밀리 초 단위로 지연을 제공했습니다.이 지연은 일반적으로 마이크로 컨트롤러 프로그램에서 제공되므로 마이크로 컨트롤러가 내부 작업을 완료 할 수 있습니다.
그런 다음 0에서 9까지의 16 진수 코드 배열을 만들고 (위의 표 참조) 마지막으로 16 진수 코드를 공통 양극 7 세그먼트에 연결된 포트 2로 보냈습니다. 따라서 이러한 방식으로 숫자가 7 세그먼트 디스플레이에 표시됩니다.
이제 마이크로 컨트롤러에 4 개의 포트만 있으며, 4 개 이상의 7 개 세그먼트에 데이터를 표시하려면 어떻게해야합니까? 이 문제를 해결하기 위해 멀티플렉싱 기술이 등장합니다. 여러 7 세그먼트 단위를 다중화해야합니다. 또한 AVR 마이크로 컨트롤러와 인터페이스하는 7 세그먼트 디스플레이를 읽으십시오.