ADC는 아날로그-디지털 변환기로, 아날로그 데이터를 디지털 형식으로 변환합니다. 일반적으로 아날로그 전압 을 디지털 형식으로 변환하는 데 사용 됩니다. 아날로그 신호에는 사인파 또는 음성과 같은 값이 무한히 없으며 ADC는이를 특정 레벨 또는 상태로 변환하여 물리량으로 숫자로 측정 할 수 있습니다. 연속 변환 대신 ADC는 일반적으로 샘플링 속도라고하는 주기적으로 데이터를 변환합니다. 전화 모뎀인터넷에 사용되는 ADC의 예 중 하나로 아날로그 데이터를 디지털 데이터로 변환하여 컴퓨터가 디지털 데이터 만 이해할 수 있기 때문에 컴퓨터가 이해할 수 있도록합니다. ADC 사용의 가장 큰 장점은 원래 신호에서 노이즈를 효율적으로 제거 할 수 있고 디지털 신호가 아날로그 신호보다 더 효율적으로 이동할 수 있다는 것입니다. 그것이 디지털 오디오가 듣는 동안 매우 명확한 이유입니다.
현재 시장에는 하나 이상의 채널이있는 ADC가 내장 된 마이크로 컨트롤러가 많이 있습니다. 그리고 ADC 레지스터를 사용하여 인터페이스 할 수 있습니다. ADC 변환이 필요한 프로젝트를 만들기 위해 8051 마이크로 컨트롤러 제품군을 선택할 때 외부 ADC를 사용 합니다. 일부 외부 ADC 칩은 0803,0804,0808,0809이며 더 많이 있습니다. 오늘 우리는 AT89s52 마이크로 컨트롤러, 즉 ADC0808 / 0809와 8 채널 ADC를 인터페이스 할 것입니다.
구성품:
- 8051 마이크로 컨트롤러 (AT89S52)
- ADC0808 / 0809
- 16x2 LCD
- 저항기 (1k, 10k)
- POT (10k x4)
- 커패시터 (10uf, 1000uf)
- 레드 LED
- 브레드 보드 또는 PCB
- 7805
- 11.0592MHz 크리스탈
- 힘
- 전선 연결
ADC0808 / 0809:
ADC0808 / 0809는 모 놀리 식 CMOS 장치 및 마이크로 프로세서 호환 제어 로직이며 출력 및 8 채널 ADC 입력 핀 (IN0-IN7)에 8 비트 값을 제공하는 28 핀이 있습니다. 해상도는 8이므로 아날로그 데이터를 256 레벨 (2 8) 중 하나로 인코딩 할 수 있습니다. 이 장치에는 채널 선택을위한 ADDA, ADDB 및 ADDC의 세 가지 채널 주소 라인이 있습니다. 아래는 ADC0808의 핀 다이어그램입니다.
ADC0808 / 0809 는 변환을 위해 클럭 펄스가 필요합니다. 오실레이터를 사용하거나 마이크로 컨트롤러를 사용하여 제공 할 수 있습니다. 이 프로젝트에서는 마이크로 컨트롤러를 사용하여 주파수를 적용했습니다.
세 개의 주소 라인 (ADDA, ADDB 및 ADDC)을 모두 Low로 유지하여 입력 라인 IN0을 선택할 수있는 것처럼 주소 라인을 사용하여 모든 입력 채널을 선택할 수 있습니다. 입력 채널 IN2를 선택하려면 ADDA, ADDB를 낮게, ADDC를 높게 유지해야합니다. 다른 모든 입력 채널을 선택하려면 주어진 표를 살펴보십시오.
ADC 채널 이름 |
ADDC PIN |
ADDB PIN |
ADDA PIN |
IN0 |
낮은 |
낮은 |
낮은 |
IN1 |
낮은 |
낮은 |
높은 |
IN2 |
낮은 |
높은 |
낮은 |
IN3 |
낮은 |
높은 |
높은 |
IN4 |
높은 |
낮은 |
낮은 |
IN5 |
높은 |
낮은 |
높은 |
IN6 |
높은 |
높은 |
낮은 |
IN7 |
높은 |
높은 |
높은 |
회로 설명:
“ADC0808과 8051 인터페이스”의 회로는 장치를 서로 연결하기위한 더 많은 연결 와이어를 포함하는 약간 복잡합니다. 이 회로에서 우리는 주로 AT89s52를 8051 마이크로 컨트롤러, ADC0808, 전위차계 및 LCD로 사용했습니다.
16x2 LCD는 4 비트 모드에서 89s52 마이크로 컨트롤러와 연결됩니다. 제어 핀 RS, RW 및 En은 핀 P2.0, GND 및 P2.2에 직접 연결됩니다. 데이터 핀 D4-D7은 89s52의 P2.4, P2.5, P2.6 및 P2.7 핀에 연결됩니다. ADC0808 출력 핀은 AT89s52의 포트 P1에 직접 연결됩니다. 주소 라인 핀 ADDA, ADDB, AADC는 P3.0, P3.1 및 P3.2에 연결됩니다.
ALE (주소 래치 활성화), SC (변환 시작), EOC (변환 종료), OE (출력 활성화) 및 클록 핀은 P3.3, P3.4, P3.5, P3.6 및 P3.7에서 연결됩니다..
그리고 여기서 우리는 ADC0808의 26, 27, 28 번 핀에 연결된 3 개의 전위차계를 사용했습니다.
9 볼트 배터리와 5 볼트 전압 레귤레이터, 즉 7805가 회로에 전원을 공급하는 데 사용됩니다.
일:
이 프로젝트에서 우리는 ADC0808의 세 채널을 인터페이스했습니다. 그리고 데모를 위해 3 개의 가변 저항을 사용했습니다. 회로에 전원을 공급하면 마이크로 컨트롤러는 적절한 명령을 사용하여 LCD를 초기화하고 ADC 칩에 클럭을 제공하고 주소 라인을 사용하여 ADC 채널을 선택하고 ADC에 시작 변환 신호를 보냅니다. 이 ADC는 먼저 선택된 ADC 채널 입력을 읽고 변환 된 출력을 마이크로 컨트롤러에 제공합니다. 그런 다음 마이크로 컨트롤러는 LCD의 Ch1 위치에 값을 표시합니다. 그리고 마이크로 컨트롤러는 주소 선을 이용하여 ADC 채널을 변경합니다. 그런 다음 ADC는 선택한 채널을 읽고 출력을 마이크로 컨트롤러로 보냅니다. 그리고 이름 Ch2로 LCD에 표시됩니다. 다른 채널에서도 마찬가지입니다.
ADC0808의 작동은 ADC0804의 작동과 매우 유사합니다. 이 경우 첫 번째 마이크로 컨트롤러는 타이머 0 인터럽트를 사용하여 ADC0808에 500KHz 클록 신호를 제공합니다. ADC가 작동하려면 클록 신호가 필요하기 때문입니다. 이제 마이크로 컨트롤러는 ADC0808의 ALE 핀 (액티브 하이 핀)에 LOW에서 HIGH 레벨 신호를 보내 주소에서 래치를 활성화합니다. 그런 다음 SC (변환 시작)에 HIGH에서 LOW 레벨 신호를 적용하여 ADC는 아날로그에서 디지털로 변환을 시작합니다. 그리고 EOC (End of Conversion) 핀이 LOW가 될 때까지 기다립니다. EOC가 LOW가되면 아날로그에서 디지털로의 변환이 완료되었고 데이터를 사용할 준비가되었음을 의미합니다. 그 후 마이크로 컨트롤러는 ADC0808의 OE 핀에 HIGH에서 LOW 신호를 적용하여 출력 라인을 활성화합니다.
ADC0808은 출력 핀에서 비율 메트릭 변환 출력을 제공합니다. 그리고 방사성 변환의 공식은 다음과 같습니다.
V in / (V fs -V z) = D x / (D max -D min)
어디
V 에서는 변환의 입력 전압
V의 FS는 전체 스케일 전압
V의 Z 제로 전압
D X 인 데이터 측정되는 가리
D의 최대하는 최대 데이터 한계 인
D의 분 최소 데이터 한계
프로그램 설명:
프로그램에서 먼저 헤더 파일 샌드를 포함하여 ADC 및 LCD에 대한 변수 및 입력 및 출력 핀을 정의합니다.
# 포함
LCD 초기화, 문자열 인쇄, LCD 명령 등과 같은 일부 LCD 기능과 함께 지연을 생성하는 기능 (지연 방지)이 생성되었습니다. 코드에서 쉽게 찾을 수 있습니다. 8051과 LCD 인터페이스 및 기능에 대해서는이 문서를 확인하십시오.
이 후 메인 프로그램에서 LCD를 초기화하고 그에 따라 EOC, ALE, EO, SC 핀을 설정합니다.
void main () {int i = 0; eoc = 1; ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
그런 다음 프로그램은 ADC를 읽고 ADC 출력을 변수에 저장 한 다음 void read_adc () 및 void adc (int i) 함수를 사용하여 십진수에서 ASCII로 변환 한 후 LCD로 보냅니다.
void read_adc () {number = 0; ale = 1; sc = 1; 지연 (1); ale = 0; sc = 0; while (eoc == 1); while (eoc == 0); oe = 1; number = input_port; 지연 (1); oe = 0; } void adc (int i) {switch (i) {case 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();