数字电压表的设计实验报告

时间:2024.4.20

课 程 设 计

——数字电压表设计

物理与电子信息学院

电子信息工程

小组成员:

 丁智军     邓懿

武龙       陈欢乐

         

  

   

淮北师范大学

2011.6

1、课程设计要求

使用单片机AT89C52和ADC0832设计一个数字电压表,能够测量0-5V之间的直流电压值,两位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;能用两位LED进行轮流显示或单路选择显示,显示精度0.1伏。

2、 硬件单元电路设计

 AT89S52单片机简介

    AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

     AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
     ADC0832模数转换器简介

ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。

                                     图1

芯片接口说明:

· CS_ 片选使能,低电平芯片使能。

· CH0 模拟输入通道0,或作为IN+/-使用。

· CH1 模拟输入通道1,或作为IN+/-使用。

· GND 芯片参考0 电位(地)。

· DI 数据信号输入,选择通道控制。

· DO 数据信号输出,转换数据输出。

· CLK 芯片时钟输入。

· Vcc/REF 电源输入及参考电压输入(复用)。

单片机对ADC0832 的控制原理

正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、 “0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

ADC0832时序图:

                               图二 

 数字电压表设计的结构框图和原理图

 

                               图3 结构框图

                                 图4  电路原理图

                           

 硬件电路实物图

 

                                  图7 硬件实物图

  器件清单

   表1  器件清单

3. 软件单元电路设计

    数据处理子程序主要根据标度变换公式1-1,把0~255十进制数转换为0.0V~5.0V。

 主程序

#include<reg52.h>

#define uchar unsigned char

#define uint  unsigned int

sbit  AD_CS = P1^1;

sbit  CLK = P1^2;

sbit  DIO = P1^0;

uchar code table0[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x3f};//带小数点

uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};//不带小数点

uchar Read_ADC(void);

void    display(void);

void main(void)

{

   while(1)

      {

       display();

     

      }

}

uchar Read_ADC(void)

{

   uchar i = 0;

   uchar Value1 = 0;

   uchar Value2 = 0;

  

   AD_CS = 1;//关掉AD;

   CLK = 0;

   DIO = 0;

   AD_CS = 0;//开启芯片

   DIO = 1;//开始位

   CLK = 0;

   CLK = 1;  //上升沿

   DIO = 1;//单通道

   CLK =0;

   CLK = 1;

   DIO = 1;//通道选择位

   CLK = 0;

   CLK = 1;

   DIO = 1;//空闲位为数据输出做好准备dio要为高

   CLK = 0;

   CLK = 1;

   for(i = 0;i <8 ;i++)        //读第一次数据

      {

        CLK = 1;    //下降沿

        CLK = 0;

        if(DIO)

           {

              Value1 |= 0x80 >> i;

           }

      }

  

   for(i = 0; i < 8; i++)      //读第二次数据

      {

        if(DIO)

           {

              Value2 |= 0x01 << i;

           }

        CLK = 1;

        CLK = 0;

      }

  

   AD_CS = 1;            //关掉芯片

  

   if(Value1 == Value2)        //数据校准

      {

        return Value1;

      }

   else

      {

        return 0x00;

      }

}

void display(void)

{

  uchar i = 0;

  uchar a,b;

  i = Read_ADC();

  a=i*195/10000;  //整数部分

  b=i*195/1000%10;//小数点后第一位

  P0=table0[a];

  P2=table1[b];

}

 4、课程设计总结

通过这次设计,使我深入了解了AT89S52单片机和ADC0832(A\D转换器)的结构和特点及数字电压表的工作原理,加深了对课本理论知识的理解,锻炼了实践动手能力,理论知识与实践设计相结合,培养了创新开发的思维。在此次课程设计中,收获知识的同时,我还收获了阅历。在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

在此,非常感谢苗老师的帮助,没有老师的细心讲解,我们的成功会大打折扣。


第二篇:数字电压表设计[可参考]


新型交流数字电压表设计

0 引 言
    传统的电压表在测量电压时需要手动切换量程,不仅不方便,而且要求不能超过该量程。如果在测量时忘记改变量程,则会出现很大的测量误差,甚至有将电压表烧坏的可能。
    本文中采用运算放大器和集成多路模拟开关电路设计了电压表量程自动切换技术,通过单片机检测可实现电压表量程的自动转换。它具有体积小,驱动电流小,动作快,结构简单,操作方便的优点,可用于实验教学中。


1 技术要求
    电压测量范围:0~500 V;测量精度:0.5%;量程自动切换;采用LED显示;可用现场提供的220 V交流电源。


2 基本原理
   基本原理如图1所示,信号经过衰减处理后通过采样保持器采样保持,由A/D转换成数字信号,再由单片机控制和计算后将结果送LED显示。量程的自动切换由单片机通过程序控制多路模拟开关来完成。由于要求采用现场的220 V交流电源,所以本文设计了电源电路,将220 V交流电转换成电路可用的低压直流电。

3 硬件系统设计
    在硬件电路设计中多次采用了电容滤波来消除干扰信号,同时采用了跟随器,跟随器的输入阻抗很大,可以解决信号传输中的衰减问题。又考虑到单片机的驱动能力很小,在设计中加入了7407用来驱动LED显示。整个硬件系统主要由以下几部分组成:
    (1)电压信号衰减电路:将输人的0~500 V被测电压信号衰减成0~5 V。
    (2)量程自动切换电路:完成信号量程选择及其小数点位置选择。
    (3)采样保持器:对模拟信号进行采样并保持。
    (4)模数转换及控制电路:完成对采集的数据处理和对系统的控制。
    (5)显示器:由74LS164和数码管组成,将测量的电压信号显示出来。
    (6)整流电路:将交流电整流成直流电,作为电源给数字电压表供电。

3.1 电压信号衰减电路
    电压信号衰减电路如图2所示。为了在输入大电压时不损坏电压表内部器件先对电压进行衰减,该设计中用阻抗进行1:100衰减,为防止衰减后信号电压过小又通过运算放大电路以及多路开关CD4052进行信号放大,其中的5.1 V稳压管起过压保护作用。

3.2 量程自动切换电路
    量程的自动切换由初设量程开始,直至选出最佳的量程为止。量程自动切换电路如图3所示,控制开关的闭合和断开都有一个短暂的过程,为解决这个问题系统中采用软件延时,然后再进行测量与判断。为了避免相邻两量程交叉点上可能出现的跳动,在程序中把低量程的上限比较值和高量程的下限比较值之间设计了一定的重叠范围。该单元中运算放大器与多路模拟开关CD4052的其中一组开关执行相应量程的选择,另一组开关接LED的小数点,选择不同量程时分别点亮相应LED的小数点位。CD4052的A、B以及INH分别接单片机P21,P20,P22。

3.3 采样保持器
    在测量交流电压时,A/D转换器的转换误差与信号的频率成正比。为了提高模拟量输入的频率范围,故选用采样保持器。在此设计中采用LF398作采样保持器,采样保持器的原理结构图如图4所示,保持电容Cn取值和采样频率以及精度有关,常选510~1 000 pF。一般选用聚苯乙烯,聚四氟乙烯等高质量的电容器。

3.4 A/D转换电路
    A/D转换器是将模拟信号转换成数字信号的器件或装置,是一种模拟系统和计算机之间的接口,在数据采集和控制系统中得到了广泛的应用。常用的A/D转换方式有逐次逼近式和双斜积分式,考虑到前者转换时间短,因此选用逐次逼近式A/D转换器。AD574为12位逐次逼近式A/D转换器,分辨率为1/212,转换时间25μs。在本系统中的量程选用双极性-5~+5 V,与AT89C51的接口电路如图5所示。AD574的12/8引脚接+5 V,一次输出12位转换结果,3,5脚分别接至单片机控制总线的P3.1,P3.2,CE接单片机P3.0,状态引脚(STATUS)接单片机的P1.7。AD574的12引脚和10引脚接两个0.1 kΩ的电位器,分别用于零点调整和满刻度调整。AD574的数据输出线与单片机数据总线的连接时,12位分别接单片机的P0.0~P0.7和P1.0~P1.3。

3.5 显示电路
    显示电路如图6所示,电路采用了简单的软件译码移位输出的方法,串行数据经单片机的P3.6输出至74LS164,四个74LS164将串行数据转换成并行数据送数码管字型口显示,74LS164的时钟信号由单片机的P3.7提供。数码管选用共阴极型。

3.6 整流电路
    数字电压表的设计电路中用到了两个直流电压5 V和12 V,而设计要求采用现场提供的交流220 V电源,因此需要经过整流电路把220 V交流电源转化为5 V和12 V直流电源。本系统中采用了单相桥式整流电路,如图7所示,为了减小纹波以及消除高频谐波电路中加入了电容滤波。

 
式中:△Tm为相邻两次采样的时间间隔;um为第m-1个时间间隔的电压采样瞬时值;N为一个周期的采样点数。若相邻两采样的时间间隔相等,即△Tm为常数△T,考虑到N=(T/△T)+1,则有:
   
    根据式(2)可以由一个周期内各采样瞬时值及每周期采样点数计算电压信号的有效值。为了提高系统的抗干扰能力,除了在硬件上采取相应的措施外,软件上采用冗余计算法即重复重要的指令,以防止程序跳飞而死机。系统的程序流程图如图8所示。

5 结 语
    本文采用程控放大器实现量程的自动转换。用AT89C51进行数据控制、处理,送到显示器显示,硬件结构简单,软件采用C语言实现,程序简单可读写性强,效率高。与传统的电路相比,具有方便操作、处理速度快、稳定性高、性价比高的优点,具有一定的使用价值。本设计在超量程时会显示特定的值,即超量程显示,如想更直观的显示,可加入声光报警电路,在超量程操作时可进行声光报警。

更多相关推荐:
数字电压表设计报告(终结版)

数字电压表摘要在电子器件设计中以单片机作为控制核心的系统得到了广泛的应用尤其以MCS51最为普遍而数字电压表的基本原理是对直流电压进行模数转换并将其结果用数字直接显示出来为以单片机为控制核心实现数字电压表的设计...

数字电压表的课程设计报告

桂林电子科技大学课程设计论题目数字电压表设计院系信息与通信学院专业通信工程姓名曾中羽指导老师陈明职称教授20xx年12120文月日桂林电子科技大学摘要本设计为直流数字电压表设计设计初共参考了二种方案由于设计的要...

单片机的数字电压表课程设计报告

课程设计报告一题目基于单片机的数字电压表二内容和要求内容利用带有ADC的STC12C5A60S2单片机1602LCD显示器设计一个数字电压表要求4位数码LCD显示测量范围05V带8位LED可自行添加器件实现其它...

电子电路课程设计报告--数字电压表

河北建筑工程学院课程设计报告课程名称电子技术综合课程设计题目名称312位数字电压表系电气系专业班级学号学生姓名指导教师职称高级实验师20xx年7月10日1目录一课程设计的目的二课程设计的具体要求和技术指标三数字...

数字电压表的课程设计报告

智能仪表综合课程设计摘要本文介绍了一种基于单片机的简易数字电压表的设计该设计主要由三个模块组成AD转换模块数据处理模块及显示模块AD转换主要由芯片ADC0832来完成它负责把采集到的模拟量转换为相应的数字量在传...

数字电压表设计报告

河北建筑工程学院电子技术课程设计报告题目数字电压表设计院系电气工程系专业电控112姓名刘茂珅学号20xx308216指导老师吕英丽设计地点单位河北建筑工程学院电气实验室设计时间20xx年2月25日20xx年3月...

数字电压表的设计报告

课程设计题目数字电压表学院攀枝花学院专业电子信息工程本科2班指导教师于娟学生姓名学号二一四年10月三十日前言随着电子科学技术的发展电子测量成为广大电子工作者必须掌握的手段对测量的精度和功能的要求也越来越高而电压...

数字电压表设计报告

数字电压表设计设计者陈一设计任务和要求11任务描述1以单片机为核心设计一个数字电压表能够对至少两路05V的模拟电压进行采集采集数据送LED显示2设计显示模式切换按钮可单独显示某一路电压信号也能对所有电压信号进行...

数字电压表课设报告

单片机原理及系统课程设计专业自动控制班级自控控1203姓名苏龙学号20xx09429指导教师闵永智兰州交通大学自动化与电气工程学院20xx年12月31日单片机原理及系统课程设计报告基于单片机的数字电压表设计1设...

数字电子技术课程设计报告格式、任务书

数字电子技术基础课程设计任务书专业电气工程及其自动化班级10电气本科班12专升本学号姓名指导教师二零一二年十一月二十六日目录居中宋体2号加粗空两行1页码2页码要求给出一级目录宋体加粗四号字15倍行距报告正文部分...

数字电压表 课程设计 实验报告

设计题目数字电压表电路的设计专业班级学号20xx23419xx姓名申前垒指导教师数字电压表电路设计报告一题目及设计要求1题目数字电压表2利用双积分式AD转换器ICL7107设计一数字电压表量程为19991999...

数字电压表课程设计报告

湖南科技大学信息与电气工程学院课程设计报告课程单片机原理及应用题目数字电压表专业班级姓名学号任务书1数字电压表的概述数字电压表DigitalVoltmeter简称DVM它是采用数字化测量技术把连续的模拟量直流输...

数字电压表设计报告(24篇)