51단일칩 마이크로컴퓨터 기반 양방향 디지털 전압계 시뮬레이션 설계 입증

       DVM이라고 하는 디지털 전압계는 디지털 측정 기술로 설계된 전압계입니다. 성능면에서 보자면 디지털 전압계의 발전은 4자리 진공관 디지털 전압계의 정확도에서 1952년 미국 NLS사에서 1000분의 1로 바뀌었고 지금은 8자리 디지털 전압계가 등장했다. 파라미터는 DC 전압, AC 전압, 전류, 임피던스 등을 측정할 수 있습니다. 측정 자동화 정도는 지속적으로 개선되고 있으며 컴퓨터와 협력하여 결과를 표시하고 계산한 다음 인쇄할 수 있습니다. 현재 세계의 미국 FLUKE 회사는 DC 및 저주파 AC 전원 교정 분야에서 국제 선진 수준에 있습니다. 예를 들어 회사에서 생산하는 "4700A" 다기능 교정기 및 "8505" 위기 디지털 다목적 전압계는 8자리로 표시할 수 있고 DC 정확도는 ±5/10-6에 도달할 수 있으며 판독 분해능은 0.1입니다. μV. A/D 변환 모드에서 데이터 출력 인터페이스는 IEEE-488 형식입니다. 비율 측정 소프트웨어 교정 및 AC 저항, 전류 옵션 포함. 또한 고정밀 전압 교정기 "5400A", "5200A", "5450A" 및 기타 디지털 기기를 보유하고 있으며 모두 기본 계량소 및 국가 계량소로 사용되는 표준 기기입니다. 펄스 변조 기술을 사용하는 영국의 "7055" 디지털 전압계도 있습니다. 일본 Yokogawa Corporation의 "2501" 유형은 3회 샘플링 등을 채택하여 지속적으로 활발하게 발전하고 있습니다.

        개발 프로세스의 관점에서 보면: 디지털 전압계는 1952년에 출시된 이후 50년 이상의 개발 역사를 가지고 있으며 대략 5세대 제품을 경험했습니다. 1세대 제품은 1950년대에 나온 전자관 디지털 전압계, 2세대 제품은 1960년대에 등장한 트랜지스터 디지털 전압계, 3세대 제품은 1970년대에 개발된 중소형 집적회로이다. .디지털 전압계. 올해는 대규모집적회로(LSI)나 초대형집적회로(VLSI)로 구성된 디지털 전압계와 지능형 디지털 전압계가 국내외에서 차례로 출시돼 각각 4세대와 5세대 제품에 속한다. 전자계측의 선례를 만들었을 뿐만 아니라 고정확도, 고신뢰성, 고해상도, 고가성비 등의 우수한 특성으로 국민들의 사랑을 받고 있습니다.

       전압계의 한 분야인 디지털 전압계는 지난 50여년 동안 크게 발전하였으며, 디지털 전압계의 핵심 부품은 초기 중소형 회로에서 대형 ASIC(Application-Specific Integrated Circuit) 단계에 진입했습니다. 디지털 전압계의 범위도 전통적인 측정에서 자동 제어, 감지, 통신 및 기타 분야로 확장되어 광범위한 응용 전망을 보여줍니다.

       전통적인 전압계의 설계 아이디어는 주로 전류계와 저항기로 구성된 전압계, 중소형 집적 회로로 구성된 전압계, 대규모 ASIC(Application-Specific Integrated Circuits)로 구성된 전압계로 나뉩니다. 이러한 전압계 설계 방법에는 고유한 장단점이 있으며 여러 특정 응용 환경에 적합하며 동시에 많은 새로운 전압계 설계의 기준 및 기초로도 사용됩니다.

       21세기에는 정보 기술의 급속한 발전과 함께 전압계도 단일 측정에서 데이터 처리, 자동 제어 및 기타 기능으로 전환되는 과정을 경험할 것이며, 특히 컴퓨터 기술의 발전은 필연적으로 지능형 기술로 나타날 것입니다. 따라서 전압계와 컴퓨터 기술을 결합한 지능형 전압계는 21세기의 새로운 화두가 될 것이다. 현재 디지털 기기와 마이크로프로세서가 눈부시게 발전하고 있는데 그 기술적인 배경으로 보면 마이크로프로세서가 내장된 기기는 컴퓨터 기술을 기기에 이식한 것을 의미하며 그 소프트웨어 기능으로 기기가 나타나게 하는 종류가 있다. 확장, 강화 효과. 과거의 전통적인 순수 하드웨어 악기와 비교할 때 이것은 새로운 돌파구이며 개발 잠재력이 매우 크며 1970년대 이후 악기 개발의 역사에서 확인되었습니다. 요약하면, 마이크로프로세서가 장착된 기기는 다음과 같은 특징을 가지고 있습니다: ① 측정 프로세스의 소프트웨어 제어, 측정 데이터를 저장하고 계산하는 데이터 처리 기능이 기기의 가장 두드러진 특징입니다. 기기의 측정 과정에서 처리 기능을 통해 한 기계의 다기능 또는 기기의 다기능을 쉽게 실현할 수 있으며 이는 이러한 유형의 기기의 또 다른 특징입니다. 본체는 편리한 사용과 다양한 기능 측면에서 뛰어난 유연성을 제공합니다.

1.2 주제의 의미와 목적

        디지털 전압계는 많은 디지털 계측기의 핵심이자 기초입니다. 디지털 전압계를 핵심으로 다양한 일반 디지털 기기, 특수 디지털 기기 및 다양한 비전기 디지털 기기(예: 온도계, 습도계, 산도계, 무게, 두께 측정기 등)로 확장할 수 있으며 거의 ​​커버합니다. 모든 전자 및 전기 측정, 산업 측정, 자동화 계측 및 기타 분야. 또한 디지털 전압은 직관적이고 정확한 판독값, 넓은 디스플레이 범위, ​​고해상도, 높은 전송 임피던스, 낮은 전력 소비, 강력한 간섭 방지 등 기존의 포인터 전압계와 비교할 수 없는 장점이 있습니다[3]. 따라서 디지털 전압계에 대한 포괄적이고 심층적인 이해가 필요합니다. 그러나 전통적인 디지털 전압계 설계는 일반적으로 대규모 ASIC(Application-Specific Integrated Circuit)를 핵심 장치로 사용하고 소수의 중간 규모 집적 회로 및 디스플레이 장치로 보완합니다.그러나 이 설계 방법은 유연성이 낮고 시스템 기능이 고정되어 업데이트 및 확장이 어려우며 증가하는 전자 산업 요구 사항을 충족할 수 없습니다[6]. 마이크로프로세서(단일 칩 마이크로컴퓨터)를 코어 유닛으로 사용하는 디지털 전압계는 유연성이 높고 시스템 기능 확장이 간단하며 안정적이고 신뢰할 수 있는 성능을 제공합니다. 이러한 배경에서 단일 칩 마이크로 컴퓨터를 기반으로 구조가 간단하고 작동이 안정적이며 유연성이 우수한 디지털 전압계를 설계하는 것은 매우 의미가 있습니다.

두, 기능을 실현

      이 설계는 AT89C51 칩과 ADC0809 칩을 사용하여 간단한 디지털 전압계를 완성하여 0-5V의 입력 아날로그 DC 전압을 측정하고 LCD1602 액정 디스플레이 화면에 표시할 수 있으며 측정 오류는 약 0.02V입니다. 전압계의 측정 회로는 주로 A/D 변환 모듈, 데이터 처리 모듈 및 디스플레이 제어 모듈의 세 가지 모듈로 구성됩니다. A/D 변환은 주로 수집된 아날로그 양을 해당 디지털 양으로 변환한 다음 데이터 처리 모듈로 보내는 역할을 하는 ADC0809 칩에 의해 완료됩니다. 데이터 처리는 ADC0809에 의해 전송된 디지털 양을 처리하고 해당 디스플레이 코드를 생성하고 백분율 형식으로 표시하기 위해 디스플레이 모듈로 전송하는 칩 AT89C51에 의해 수행됩니다. ADC0809 칩.

3. 시뮬레이션 데모

채널 0의 실제 전압 값은 2V로 40%, 측정 전압 값은 39%, 오차는 1%, 채널 1의 실제 전압 값은 2.5V로 50%, 측정 전압 값 값은 49%를 차지하고 오류는 1%입니다.

두 채널의 전압 값을 변경하면 채널 0의 실제 전압 값은 4V가 되고 측정 전압 값은 79%를 차지하며 오차는 1%이며 채널 1의 실제 전압 값은 1V이며 측정 전압 값은 100%를 차지합니다.19, 오류는 1%입니다.

4. 일부 프로그램 표시

#include "reg52.h" 
#include "intrins.h"
#include "LCD1602.h"

uint8 i;
fp32  volt0,volt1; 
uint8 getdata; 
uint8 dispbuf[8]={10,10,10,10,10,0,0,0};  //存放ad采集过来的值(只有最后3位有用)

uint8 table2[7]="CH0:  %";
uint8 table1[7]="CH1:  %";

sbit ST=P3^0; //是否选中该芯片
sbit OE=P3^1; //所存转换的值
sbit EOC=P3^2; //当EAC数据有效时,将转换数据送出
sbit CLK=P3^3; //给adc0809提供时钟

sbit Re1=P3^4;
sbit Add_A=P3^5;
sbit Add_B=P3^6;
sbit Add_C=P3^7;

void Timer0Init(void)
{  
	TMOD=0x12;//设置定时器0和1的工作方式  
	TH0=216; 
    TL0=216; //设置定时器0的初值为216(为adc0808提供时钟)
    ET0=1; //启用定时器0
    TR0=1;  //开定时器0  
	EA=1;    //开总中断
}

void Timer0Service(void) interrupt 1 using 0           //定时器0中断服务
{ 
  CLK=~CLK;  //给adc0809提供时钟
}

시뮬레이션 소스 파일 및 소스 프로그램 Baidu 네트워크 디스크 링크: https://pan.baidu.com/s/1Brkqf2MvjgSEjD2cs0mCPw 
추출 코드: 099h 

추천

출처blog.csdn.net/weixin_53402301/article/details/130895390