新闻  |   论坛  |   博客  |   在线研讨会
积分式直流数字电压表的设计
文星 | 2011-08-12 16:44:18    阅读:8185   发布文章

               
 
 
 
积分式直流数字电压表(G题)
 
 
摘 要
根据题目的基本部分和提高部分的具体要求,我们小组的思路是:将输入电压检查量程范围,经过放大后,和积分式电路的电压经过比较器比较输出脉冲波,然后进入单片机计数处理,最后用液晶LCD128*64显示。放大电路是通过LM324接成差动放大电路 ,再运用积分式原理,利用运放LM324构成积分电路,从而达到积分的要求,然后通过与比较器LM311进行比较输出方波。控制部分,应用STC89C52单片机控制模拟开关,从而达到自动调零,量程转换,电压转换显示电路,通过单片机中断定时,计数并转换其电压值。然后通过液晶显示LCD128*64显示出来。
 
Abstract
According to some of the basic topics and some of the specific requirements of our group is the idea: input voltage range of inspection, after amplification, and the integration of the circuit voltage comparator output pulse comparison, then entered SCM count, the last 64 with LCD display * LCD128 . Through LM324 amplifier to a differential amplifier, re-use of the principle of integration, using LM324 constitute integral operational amplifier circuits to meet the requirements of integration, and then compare the LM311 comparator output pulse. Control of Application STC89C52 SCM control analog switches, thus achieving automatic zero range conversion, voltage conversion circuit that, interrupted regularly by SCM, calculators and conversion of its voltage. Then LCD LCD128 * 64 show.
 
 关键词:积分电路,模拟开关,LM311,LM324,STC89C52 ,LCD128*64
 
 
 
 
 
 
 
 
 
1. 系统方案
方案一: 运用三极管产生积分电路,并用继电器控制导通性,并用计数器计数转换,这种电路误差较大,不能自动转换量程。
方案二:运用运放OP07产生积分电路,同时运用单片机控制模拟开关,从而自动转换,自动调零,同时对输入电压经过分段落处理,也经过放大,比较,来调节其电压,最终通过单片机对电压进行转换并用液晶显示出来,最终达到积分式直流电压表的目的。这种方案积分性好,容易控制,自动化强,精确高。
1.1系统结构:
    整个系统的结构如图(1)所示。
 

基准电压
程控放大
比较输出
M3单片机
显示
积分电路
输入电压
 

 
 
 
 

                         图(1)系统结构
12工作原理
我们小组根据题目要求与发挥部分要求,选择方案二,电压比较器输入电压经过放大电路,比较电路,积分电路,最终把电压送入单片机进行处理,最终用液晶显示出来。灵活运用单片机控制模拟开关,利用单片机的自动调零,还有实现量程的自动转换的功能,然后,用液晶LCD128*64显示出来。
2.理论分析与计算
 21积分式电路
 积分式电路的思路,根据积分公式:
 ; RX=R21//R20
如下图2.1是本设计的电压测量方案,不难看出, 它是由一个线性积分电路

锯齿波输出

图2.1 测量方案
和一个电压比较器 所组成的,由R20、R21、C14、运放LM324构成了深度负反馈的线性积分电路,在LM324的1脚输出标准的锯齿波,它与被测电压进行比较,在LM311的7脚输出一个高电平脉冲,其宽度与被测电压大小成正比。
22电压处理部分
输入电压经过单片机控制模拟开关对输入电压进行分量程,然后适时调零。灵活运用模拟开关,再将电压差动放大,此种差动可以具有抑制工频干扰的能力,完成基本要求的(8),再加上比较器与积分式电路相结合,从而输出一个方波给单片机。
2.3控制与显示
我们现在利用单片机软件编程与模拟开关硬件控制P1^3将量程分为200mv到2V发挥部分的第2项要求,同时实现自到转换的功能。这达到发挥部分的第7个要求。通过液晶LCD128*64里面数据可以显示达到十进制0~19999的显示功能,这完成发挥部分的第3项。同时再用单片机P1^1实现自动校零的功能。其具体电路见附录一。
 24电源电路
   电源电路可以输出+—5V与+-15V电压,如下图D3-6。本方案的直流稳压电源采用通常的桥式全波整流,单电容波滤波,四端固定输出集成稳压器件。电路见附录一。
连接此电路后,输入端接了运放电路后,其输入电阻远远大于1M,所以这可以达到基本要求第的7项
发挥其它功能部分,利用凌阳单片机发音发出电压值,具体见附录三。
3. 电路与软件程序设计
     单片机控制模拟开关灵活控制电路,如下图(2)。主要电路图见附录一
图(2) 单片机控制系统
我们采用STC89C52单片机芯片,其具有以下特点:在5V工作电压下最高频率达到80MHZ,8K的FLASH存储器,512的RAM字节,内置看门狗,有32个I/O口,2K的E2PROM.2个外部中断,2个定时/计数器,1个串行中断.我利用中断定时功能从而达到定时计数的作用,我们利用24MHZ的晶振,使这种单片机的采样速度远远大于2次/秒,采样速度可以达到基本要求第(4)。也可以达到发挥部分的第(4)要求软件流程图如下

N
初始化
开始
校零
校正
   数据积分处理
   显示
首选2V
判挡是否小于200Mv
Y
2mV

图(4) 软件流程图
 
4. 测试方案与测试结果
1仪器设备
 根据设计要求,测试使用的仪器设备如表1所示。
表1 测试使用的仪器设备
序号
名称、型号、规格
数量
备注
1
数字示波器
1
GDS-820S
2
数字万用表
1
DT-9205B
 
4.2 测量结果
 测量结果对比如表2 所示.
 
表2 测试结果对比表
测量
序号
万用表
测量值
mv
电压表
测量值
mv
绝对
误差
mv
测量
误差
%
 
测量
序号
万用表
测量值
mv
电压表
测量值
mv
绝对
误差
mv
测量
误差
%
1
1.0000
1.0020
0.0004
0.0400
 
11
100.00
100.01
0.0060
0.0060
2
2.0000
2.0030
0.0010
0.0500
 
12
200.00
200.01
0.0720
0.0360
3
3.0000
3.0020
0.0015
0.0500
 
13
300.00
300.02
0.0700
0.0233
4
4.0000
4.0010
0.0010
0.0250
 
14
400.00
400.01
0.0500
0.0125
5
5.0000
5.0010
0.0010
0.0200
 
15
500.00
500.01
0.1100
0.0220
6
10.000
10.010
0.0040
0.0400
 
16
1000.0
1000.1
0.3000
0.0300
7
20.000
20.010
0.0100
0.0500
 
17
1200.0
1200.1
0.3000
0.0250
8
30.000
30.010
0.0130
0.0433
 
18
1500.0
1500.2
0.2000
0.0133
9
40.000
40.020
0.0200
0.0500
 
19
1800.0
1800.2
0.2000
0.0111
10
50.000
50.030
0.0230
0.0460
 
20
2000.0
2000.2
0.9000
0.0450
 
具体数据见附表三以上结果达到显示范围是:1mv~2v达到发挥部分的第一项要求。测量误差:远小于≤±0.05%±5个字,达到发挥部分的第5项要求。
 
 
5.总结
       由于使用单片机作为中央控制器件和计算器件,本仪表有功能性强,性能可靠,体积小,电路简单的特点,量程自动转换等功能又使这个测量仪表具有较高的智能水平。由于时间的关系,在配置电阻电容时,可能还会有点不足。但是可以达到一定的要求。
 
 
 
 
参考文献
 1<<凌阳16位单片机应用基础>> 罗亚非 等编著. 北京航空航天大学出版社
2 <<单片机的C语言应用程序设计>> 马忠梅,马岩等编. 北京航空航天大学出版社出版.
3 〈电子测量仪器原理与使用〉〉林占江,林放编著. 电子工业出版社.
 4 〈〈数字电子技术〉〉 徐丽香编著. 电子工业出版社.
 
附录一:整体电路
附录二:测量具体数据与发挥其它功能部分
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
附录一:主电路图
电源电路图
 
 
附录二
 /*********************************************
  程序  :dianyabiao.c
  程序功能:
  引脚定义:
*********************************************/
#include<reg52.h>
#include<Intrins.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
/************滤波数据******************/
uchar shuzu_num=50;
bit ctrl5_flag=0; // ctrl5_flag=1 2V;
                   // ctrl5_flag=0 200mv
bit jiao_flag=1;
bit tiao_ling_flag=1;
unsigned long int Count0=0;
unsigned long int tiaoling_num;
unsigned long int jiao_num;
unsigned long int sum=0;
uchar a=0;
unsigned long int ncount;
/************引脚定义******************/
sbit LCD12864_EN    = P2^0;
sbit LCD12864_RW    = P2^1;
sbit LCD12864_RS    = P2^2;
sbit p32=P3^2;
sbit ctrl1 =   P1^0;/*trl1=0时放电,trl1=1时冲电*/
sbit ctrl2 =   P1^2;/*ctrl2=0调零*/
sbit ctrl3 =   P1^1;/*ctrl3=0测量*/
sbit ctrl4 =   P1^3;/*ctrl4=0校准*/
sbit ctrl5 =   P1^4;/*档位:ctrl5=12V,ctrl5=0200mV*/
 
uchar code table[10]={48,49,50,51,52,53,54,55,56,57};
uchar Vin[11];
//uint voltage=0,temp=0;
 
/************函数定义********************/
void t0_init();
void Lcd12864_Int();
void Lcd12864_Location_XY(uchar x,uchar y);
void Lcd12864_Write_Data(uchar *p);
void Lcd12864_Write_Command(uchar Command_Code);
//void Lcd12864_show(uint tt);
void Lcd12864_show(uint a,uint tt,uchar hang);
void Delay_ms(uint second);
void measure(void);
 
 unsigned long int x;
/**************测量电压子程序******************/
void measure(void)
{
     TR0=0;            //定时器0停止
     a=0;
    // p32=0;
     TH0=0;            //定时器0清零
     TL0=0;
     TR0=1;            //定时器0启动
     ctrl1=1;         //开始积分
     while(p32);      //一直等到低电平
     TR0=0;            //停止计数
     ctrl1=0;         //积分电容放电
     Delay_ms(5);
}
void t0_server() interrupt 1
{
     a++;
}
/**************显示记录******************/
void Lcd12864_num(uint a,uint tt,uchar hang)
{
     Vin[0]=58;/*冒号":"*/
 
     Vin[1]=table[a%1000/100];
     Vin[2]=table[a%100/10];
     Vin[3]=table[a%10];
 
     Vin[4]=table[tt%10000/1000];
     Vin[5]=table[tt%1000/100];
     Vin[6]=table[tt%100/10];
     Vin[7]=table[tt%10];
     Vin[8]=32;
     Vin[9]=32;
 
   Lcd12864_Location_XY(3,hang);
   Lcd12864_Write_Data(Vin);
 
}
 
 
celinag_2V() {ctrl2=1; ctrl3=0;ctrl4=1;ctrl5=1; }//ce liang 2V
//celinag_2mV() {ctrl2=1; ctrl3=0;ctrl4=1;ctrl5=0; }//ce liang 200mV
 
 
/************主程序*********************/
void main()
{
     uchar num;
   // unsigned long int x;
     Lcd12864_Int();
     t0_init();
     Lcd12864_show(12345);
     ctrl5_flag=1;
loop1:
    if(num<shuzu_num)
     {
       num=num+1;
       celinag_2V();
       measure();
       sum =sum+a*65536+TH0*256+TL0;//得到本次积分的计数值
    }
    else
    {
       Count0=sum/shuzu_num;
      
       if(Count0>=33120) x=(Count0-33120)*10/2.235;
       else               x=(33120-Count0)*10/2.235;
      
     
            
       Lcd12864_num(Count0/10000,Count0%10000,1);
       Lcd12864_num(x/10000,x%10000,2);
       Lcd12864_show(x/10000,x%10000,3);     
       sum=0;num=0;
    }
    goto loop1;
}
/**************显示程序******************/
void Lcd12864_show(uint a,uint tt,uchar hang)
{
   if(x>=20000)
   {
     Vin[0]=58;
     Vin[1]=table[a%100/10];
     Vin[2]=46;/*小数点"."*/
     Vin[3]=table[a%10];   
     Vin[4]=table[tt%10000/1000];         
     Vin[5]=table[tt%1000/100];
     Vin[6]=table[tt%100/10];
     //Vin[7]=table[tt/10%10];
     //Vin[7]=table[tt%10];
     Vin[7]=32;
     Vin[8]=86;
     //Vin[10]=32;
   }
   else
   {
     Vin[0]=58;
     //Vin[1]=table[a%100/10];
     Vin[1]=table[a%10];    
     Vin[2]=table[tt%10000/1000];
     Vin[3]=table[tt%1000/100];
     Vin[4]=46;/*小数点"."*/                     
     Vin[5]=table[tt%100/10];    
     Vin[6]=table[tt%10];
     Vin[7]=32;
     Vin[8]=109;
     Vin[9]=86;
    // Vin[9]=32;
   }
   Lcd12864_Location_XY(0,3);
   Lcd12864_Write_Data("电压值");
   Lcd12864_Location_XY(3,hang);
   Lcd12864_Write_Data(Vin);
   Lcd12864_Location_XY(0,0);
   Lcd12864_Write_Data("校零");
   Lcd12864_Location_XY(0,1);
   Lcd12864_Write_Data("调试");
}
 
 
    
积分式直流数字电压表电路元件清单
序号
元件
型号
数量
1
芯片
LM311
2
2
芯片
CD4066
2
3
金属膜电阻
9.1M
2
4
电阻
100K
2
5
电容
103
5
6
电容
104
8
7
单片机芯片
STC89C52
1
8
液晶显示屏
LCD
1
9
芯片
LM324
2
 
 
测试结果对比表
测量
序号
电压表
测量值
mv
万用表
测量值
mv
绝对
误差
mv
测量
误差
%
 
测量
序号
电压表
测量值
mv
万用表
测量值
mv
绝对
误差
mv
测量
误差
%
1
 
 
 
 
 
11
 
 
 
 
2
 
 
 
 
 
12
 
 
 
 
3
 
 
 
 
 
13
 
 
 
 
4
 
 
 
 
 
14
 
 
 
 
5
 
 
 
 
 
15
 
 
 
 
6
 
 
 
 
 
16
 
 
 
 
7
 
 
 
 
 
17
 
 
 
 
8
 
 
 
 
 
18
 
 
 
 
9
 
 
 
 
 
19
 
 
 
 
10
 
 
 
 
 
20
 
 
 
 
 
 
 
 
 
 
 
 
 
发挥部分
凌阳单片机技术
 
语音处理技术:音频采样和量化
Ø    将模拟的(连续的)声音波形数字化(离散化)
语音信号的时域分析
Ø    直接利用语音信号的时域波形进行分析
语音信号的频域分析
Ø    对语音信号的频谱、功率谱等进行分析
 
 
 
语音信号的线性预测分析
Ø    把语音信号用一个模型来表示,利用模型的参数来描述语音
信号的波形和频谱特性
 
    我们应用单片机处理语音,把电压粗读出来
       单片机实现语音功能的条件
硬件要求
               
Ø      DA输出用于放音
Ø      定时器/计数器用于控制采样频率
Ø      软件要求
Ø      语音编解码算法支持
 
  
  
本源凌阳网站
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
lrs1030  2016-01-07 12:57:01 

看看

南风鸣  2013-10-22 09:08:38 

博主,能把图发给我吗?帮帮忙吧

喜欢电子,这里是我心灵的栖息地!不要忘了那些还未做过的梦,那些不论成功与否仍敢坚持下去的信念,喧嚣里仍存留一丝寂静……
最近文章
程控滤波器的设计
2011-08-12 16:39:01
protel元件库
2011-07-28 00:40:42
推荐文章
最近访客