基于AD7705与51单片机的数字电压表

姚远香 发表于 2017-10-23 11:11:29 收藏 已收藏
赞(1) •  评论(1

基于AD7705与51单片机的数字电压表

姚远香 发表于 2017-10-23 11:11:29

  AD7705 采用SP I Q SP I兼容的三线串行接口,能够方便地与各种微控制器和DSP 连接, 也比并行接口方式大大节省了CPU的 I O口。那么AD7705与51单片机的数字电压表是怎么表示的我们一起来看看。

  摘要:在比赛中我们通过 A/D 芯片(AD7705)对外部电压值 进行采集, 经转换后传输给单片机 (89C52) , 使用液晶 (1602) 输出测量得到的电压值。该实验板可以测量不同增益下对应 范围的电压值,并使部分量程下精确度理论上达到 8 增益。 对于-20~20V,增益值为 1。在拓展中,我们根据闭合电路欧 姆定律,改进程序及实验板,使之能够测量电流、电阻,同 时能对短路状态做出检测。

  总设计流程图

基于AD7705与51单片机的数字电压表

  方案比较

  本次比赛基础要求设计量程为 0-5V,精确度至少为 0.02V 的电压表。根据精确度计算公式:精确度=量程/2^n(n 为 ADC 的位数) ,结合扩展的 25V,做出以下方案比较:

        方案一:使用 STC12C51 进行模数转换,但由于其内置 ADC 精度 不够(8 位) ,勉强能够满足基础要求,但无法达到扩展要求。 故舍弃此方案。

        方案二:ADC 选用 AD7705,单片机采用 89C52,使用 AD780 提 供基准电压。16 位 AD 处理 25V 时精度为 0.0004。同时使用继电 器完成自动量程转换,但由于电路的复杂程度和比赛时间,最终 我们没有做此扩展。
 
        方案三:ADC 选用 AD7705,单片机采用 89C52,使用 AD780 提 供基准电压。 充分利用 89c52 的丰富 I/O 口及 AD7705 的高精度、 双极性特性将作品设计成拥有五档电压测量、五档电流测量、七 档电流测量及短路检测的多用表。 最终我们组决定使用方案三完成比赛。

 各单元设计原理

  1、供电电压选取

          由于实验要求使用 A/D 测量 0~5V 电压, 使用 DC Power Supply 提供外部供电电压,或以 USB 接口给系统上电,经过 AD780 芯 片,对 A/D 输入适合工作的基准电压,为 AD7705、单片机提供 稳定的 2.5V 工作电压。

基于AD7705与51单片机的数字电压表

  2、AD7705 对模拟量的采集及转换(测量电压)

         (1)AD7705 为 16 位双极性模数转换器,它包括一个Σ -Δ (或 电荷平衡)ADC、片内带静态 RAM 的校准微控制器、时钟 振荡器、数字滤波器和一个双向串行通信端口。该器件的电 源电流仅为 320μ A,使得它理想地用于电池供电的仪器中。 器件具有两种可选电源电压范围分别是 2.7~3.3V 或 4.75~ 5.25V。它具有高精度校准、测量的能力,适应电压表的精 度要求。

        (2)设计实验板共有 5 个量程,分别为: -200mV~200mV -2~2V -20~20V -200~200V -500~500V 对应增益值为 8 对应增益值为 1 对应增益值为 1 对应增益值为 1 对应增益值为 1

  (3)实验通过开关使不同阻值分压电阻接入电路来改变电压表量程。开关抬起有效。如图连接 A/D 与单片机,对 A/D 进行初始 化, 设置为双极性、 无缓冲、 增益为 1、 滤波器不工作、 自校准、 更新速率为 20Hz 的状态。通过编译的读、写程序,完成 A/D 对 外部模拟量的采集和处理,并将数据传送给单片机。

基于AD7705与51单片机的数字电压表

  3、单片机数据处理(直流电压)

        (1)本作品设计有五个电压档位。在程序中我们通过设置 switch 语句实现对不同档位的选取和控制,AD 转换后的数 据被传输至单片机中对应档位的数据处理函数, 单片机根据 相应档位的参数设置将数据处理还原为真实电压值, 并转换 为可被液晶读取的 2 进制形式。

  (2)测量直流电压的公式为: 电压真值=数据 V/增益值*对应的档位参数

       4、1602 液晶显示器

       (1)对 1602 进行初始化,设置相关功能。

  1602 液晶初始化程序:

基于AD7705与51单片机的数字电压表

  显示器模块原理图:

基于AD7705与51单片机的数字电压表

  (2)关于显示正负号及小数点,本次显示 000.00000 精度

基于AD7705与51单片机的数字电压表

  (3)关于数据处理之后的输出,将经过单片机处理得到的数 据 V 发送至 1602 液晶,通过 display 函数(部分程序如下) ,实 现液晶对数据的显示。同时设计保护数据,当测得数据大于档位 上限时,系统输出档位上限值。

        void display() (部分程序)

  {

  chardisp[9]=“12345678”;
        disp[0]= (v/10000000)+0x30; v%=10000000; disp
       [1]= (v/1000000)+0x30; v%=1000000;disp
       [2]= (v/100000)+0x30; v%=100000; disp
       [3]= (v/10000)+0x30; v%=10000; disp
         [ 4]= (v/1000)+0x30; v%=1000;disp
        [5]= (v/100)+0x30; v%=100; disp
        [6]= (v/10)+0x30; v%=10;disp
        [7]= (v/1)+0x30;

  ……

 扩展部分

  1、电流测量

       m利用闭合电路欧姆定律,在测电压的基础上可以实现对电流 的测量。实验中共有五个档位,分别为: -2~2mA -20~20mA -200~200mA -2~2A -15~15A 对应增益值为 8 对应增益值为 8 对应增益值为 8 对应增益值为 8 对应增益值为 1

  对于电流数据的处理,将 AD 采集到的数据 v 输入单片机后, 根据计算公式对 v 进行处理,以第一档程序举例:

基于AD7705与51单片机的数字电压表

  其中对数据处理的公式为: 电流真值=数据/增益值*对应的档位参数

        2、电阻测量

      (1)本次比赛的电阻测量在说明中并没有,我们组为了充分 利用 AD7705 资源、 锻炼组员的能力, 额外做了电阻测量和短 路检测的拓展。

      (2)电阻测量的原理为:根据闭合电路欧姆定律 R=U/I,由 于前两步已完成对电压与电流的测量,所以此处只需要在数 据处理时,使用某档位电压/对应档位流过待测电阻的电流值 即可。
 
       (3)电阻测量的档位及对应增益值 0~20Ω 0~200Ω 0~2kΩ 0~20kΩ 0~200kΩ 0~2MΩ 0~100MΩ 对应增益值为 2 对应增益值为 2 对应增益值为 2 对应增益值为 2 对应增益值为 2 对应增益值为 2 对应增益值为 1

  (4)电阻测量的数据处理(20Ω 档为例)

  电阻测量的数据处理公式为: U/Rx=2.5/(Rx+Ro) Ro:相应电阻档的已知串联电阻 3、短路检测 在 P2.5 连接蜂鸣器系统,当表笔两端电阻小于 15Ω 时,P2.5 赋低电平,蜂鸣器工作。

 

赞(1)

收藏

相关话题
文章来源栏目

评论(1)

加载更多评论

参与评论

相关文章

分享到

QQ空间 QQ好友 微博
取消