数字电压表设计报告(终结版)

合集下载

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

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

数字电压表单片机课程设计报告班级:姓名:学号:指导教师:2011 年3 月29 日数字电压表电路设计报告一、题目及设计要求采用51系列单片机和ADC 设计一个数字电压表,输入为0~5V 线性模拟信号,输出通过LED 显示,要求显示两位小数。

二、主要技术指标1、数字芯片A/D 转换技术2、单片机控制的数码管显示技术3、单片机的数据处理技术三、方案论证及选择主要设计方框图如下:1、主控芯片方案1:选用专用转化芯片INC7107实现电压的测量和实现,用四位数码管显示出最后的转换电压结果。

缺点是京都比拟低,内部电压转换和控制局部不可控制。

优点是价格低廉。

方案2:选用单片机AT89C51和A/D 转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。

缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示局部可以控制。

基于课程设计的要求和实验室能提供的芯片,我选用了:方案2。

2、显示局部方案1:选用4个单体的共阴极数码管。

优点是价格比拟廉价;缺点是焊接时比拟麻烦,容易出错。

方案2:选用一个四联的共阴极数码管,外加四个三极管驱动。

这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。

基于课程设计的要求和实验室所能提供的仪器,我选用了:方案2。

四、电路设计原理模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进展A/D转换。

然后送到单片机中进展数据处理。

处理后的数据送到LED 中显示。

同时通过串行通讯与上位通信。

硬件电路及软件程序。

而硬件电路又大体可分为A/D转换电路、LED显示电路,各局部电路的设计及原理将会在硬件电路设计局部详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS 软件对其编译和仿真。

一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。

数字电压表设计报告

数字电压表设计报告

一、课程内容介绍:数字电压表是用来测量信号电压的装置。

它可以测量正弦波、方波、三角波和尖脉冲信号的电压。

在进行模拟、数字电路的设计、安装、调试过程中,经常要用到数字电压表。

本设计是设计一个三位直流数字电压表。

由于其用十进制数显示,测量迅速、精度高、显示直观,一次数字电压表得到广泛的使用。

二、总体设计1、实验目的设计制作一个具有数字显示功能的数字电压表。

该数字电压表能对日常电子线路中的电压进行方便的测量。

2、实验设计要求与内容1) 本设计要求从测试端输入0-51V的电压,经90K和10K电阻分压,送ADC0804输入端,所以实际输入电压是测试端的十分之一。

经89C2051处理,在D3、D2、D1三个七段显示。

2) 本电路ADC0804最大转换值为0FFH(255),对应输入电压是5.1V,对应测试端电压(显示电压)51V。

3) 若测试端输入为4V,实际进入ADC0804为0.4Va) 经A/D转换后为14Hb) 14H经十进制转换后为0020,则令R4=00,R5=20c) 将0020*2=0040,令R4=00,R5=40d) 将数字点设在D2上,D4 D3 D2 D1分别显示为0 0 4 04) 本电路省略D4,只显示D3 D2 D15)总体设计框图:3、实验技术指标1) 被测量信号电压范围:0-51V2) 测量精度:测量显示3为有效数字3) 分辨率:5.1V/2^8注意:在画PCB的时候要注意将晶振,即Y1,C4,C5,一起布置在芯片AT89C2051旁边,还有电容C2,C3也要靠近芯片AT89C2051,这样才能有效显示结果。

4、设计提示1) 本设计要求从测试端输入0-51V的电压,经90K和10K电阻分压,送ADC0804输入端,所以实际输入电压是测试端的十分之一。

经89C2051处理,在D3、D2、D1三个七段显示器显示。

2)本电路ADC0804最大转换值=0FFH(255),对应输入电压是5.1V,对应测试端电压(显示电压)是51V。

数字电压表设计

数字电压表设计

数字电压表设计电子线路硬件课程设计总结报告课题:数字电压表设计班级:作者:学号:指导老师:摘要一个测试结果稳定、准确的数字电压表,既能减少了使用者的工作量,又提高了测量的精准度,而且人为误差被大大减小,方便与电路打交道的人快速有效的完成自己的工作。

本项目设计并实现了一个能够对0-200V范围的直流电压进行测量的数字电压表,测量分为4挡:200mV、2V、20V和200V,手动控制档位选择,显示部分小数点自动实现切换。

项目基于AT89C51单片机,拓展AD转换、显示部分。

不同档位的待测电压通过不同档位的衰减电路后变为0-200mV,再通过一个OPA336一致放大到0-2V送入AD的输入端,然后通过芯片AT89C51内的程序控制AD转换并输出。

不同档位的电压信号又不同的程序控制输出到数码管显示。

整个电路连线简单易于实现,而且成本很低,测出的电压精度也足够满足需求。

关键字:数字电压表; AT89C51单片机;易于实现AbstractA digital voltmeter which is stable and accurate can not only reduce the work of the user, but also free off the error produced by using wrong. It is convenient to people who work with the circuit.This voltmeter is designed to measure a voltage between 0 to 200. It’s divided into four gears as 200 millivolt, 2 volt, 20volt, and 200volt. Gears changing is worked by hang. The project isbase on the chip AT89C51 of one-chip computer. An analog to digital converter, a display section, and a voltage attenuation are attached to the chip and they make up the design. The voltage of different gears are changed into 0-200 millivolt. Then they are sent to an OPA336, and it’s output is 0-2 volt. The output is sent to the analog to digital converter.Then the chip control the an alog to digital converter’s output to the displaying section.The whole circuit is easy. And although it’s cost is very low, the accuracy of the outcome is fine.key words: digital voltmeter, one-chip computer, AT89C51一、项目概述数字电压表(Digital Voltmeter)简称DVM,它是利用模拟/数字变换器(A/D)原理,以十进制数字形式显示被测电压值的仪表。

数字电压表实验报告

数字电压表实验报告

简易数字电压表设计报告姓名:***班级:自动化1202学号:****************:***2014年11月26日一.设计题目采用C8051F360单片机最小系统设计一个简易数字电压表,实现对0~3.3V 直流电压的测量。

二.设计原理模拟输入电压通过实验板PR3电位器产生,A/D转换器将模拟电压转换成数字量,并用十进制的形式在LCD上显示。

用一根杜邦实验线将J8口的0~3.3V输出插针与J7口的P2.0插针相连。

注意A/D转换器模拟输入电压的范围取决于其所选择的参考电压,如果A/D 转换器选择内部参考电压源,其模拟电压的范围0~2.4V,如果选择外部电源作为参考电压,则其模拟输入电压范围为0~3.3V。

原理框图如图1所示。

图1 简易数字电压表实验原理框图三.设计方案1.设计流程图如图2所示。

图2 简易数字电压表设计A/D转换和计时流程图2.实验板连接图如图3所示。

图3 简易数字电压表设计实验板接线图3.设计步骤(1)编写C8051F360和LCD初始化程序。

(2)AD转换方式选用逐次逼近型,A/D转换完成后得到10位数据的高低字节分别存放在寄存器ADCOH和ADC0L中,此处选择右对齐,转换时针为2MH Z。

(3)选择内部参考电压2.4V为基准电压(在实际单片机调试中改为3.311V),正端接P2.0,负端接地。

四、测试结果在0V~3.3V中取10组测试数据,每组间隔约为0.3V左右,实验数据如表1所示:显示电压(V)0.206 0.504 0.805 1.054 1.406实际电压(v)0.210 0.510 0.812 1.061 1.414相对误差(%) 1.905 1.176 0.862 0.659 0.565显示电压(V) 2.050 2.383 2.652 2.935 3.246实际电压(v) 2.061 2.391 2.660 2.943 3.253相对误差(%)0.421 0.334 0.301 0.272 0.215表1 简易数字电压表设计实验数据(注:其中显示电压指LCD显示值,实际电压指高精度电压表测量值)五.设计结论1.LCD显示模块的CPLD部分由FPGA充当,芯片本身自带程序,所以这个部分不用再通过quartus软件进行编程。

数字电压表方案报告(终结版)

数字电压表方案报告(终结版)

数字电压表摘要在电子器件设计中,以单片机作为控制核心的系统得到了广泛的应用,尤其以MCS-51最为普遍。

而数字电压表的基本原理是对直流电压进行模数转换,并将其结果用数字直接显示出来。

为以单片机为控制核心实现数字电压表的设计,结合了模数转换技术,段码显示以及液晶显示,并结合ADC08095片及74HC573进而实现了对5V以内的直流电压的准确测量,并在数码管以及液晶显示屏上同时显示。

并进一步扩展,实现了最多可以对八路电压同时进行测量。

而且对于超出测量范围的电压能够以LED灯的闪烁实现报警。

关键词:MSC-51ADC0809数字电压表数模转换LCD目录1.系统设计 (33)1.1方案设计与论证 (33)1.1.1方案设计 (33)1.1.2方案论证 (33)1.2主要部件原理及参数计算 (33)1.2.1输入单元电路设计 (33)1.2.2A/D 转换电路设计 (44)1.2.3单片机主控电路设计 (55)1.2.4电压显示电路设计 (55)1.3系统设计 (77)1.3.1硬件设计 (77)1.3.2软件设计流程 (77)2.系统测试 (88)2.1测试方法与结果 (88)2.2测试结论 (99)2.2.1功能实现 (99)2.2.2误差分析 (99)3.附录 (1010)3.1参考文献 (1010)3.2附图 (1010)3.3源程序 (1111)1.系统设计1.1 方案设计与论证数字电压表vDigital Voltmeter)简称DVM目前采用单片机设计的数字电压表,由于精度高、抗干扰能力强、可扩展性强、集成方便,还可以与PC进行实时通信,所以以下方案均采用单片机设计。

1.1.1 方案设计方案一:基于MSP430F448单片机的数字电压表设计。

MSP430F44X系列单片机片内集成了8路12位A/D串行通信接口、看门狗定时器、比较器、硬件乘法器等外围设备模块,从而降低了应用电路的复杂程度,提高了系统的可靠性。

数字电压表课设报告

数字电压表课设报告

单片机原理及系统课程设计专业:电气工程及其自动化班级:电气1103姓名:张飞学号:201109347指导教师:董昱兰州交通大学自动化与电气工程学院2014 年 1 月 13 日基于单片机的数字电压表设计1 设计题目本次单片机课程设计的题目是基于单片机的数字电压表设计,基本要求是利用ADC0808测量电路电压,并通过数码管显示一位小数,能输出0~5V电压。

扩展要求是能使ADC0808能测量-5V~+5V电压,并将基本要求中测量电路的输出范围扩展成-5V~+5V,精确到两位小数。

2设计目的随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。

本设计AT89C51单片机的一种电压测量电路,该电路采用ADC0808A/D转换电路,测量范围直流正负5V的单路输入电压值,并在四位LED数码管上显示。

测量最小分辨率为0.019V,测量误差约为正负0.02V。

3设计方案及原理3.1 设计总体方案根据设计要求,选择AT89C51单片机为核心控制器件。

A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。

电压显示采用4位一体的LED数码管。

并行端口P0产生LED数码的段码:并行端口P2高四位产生位码。

数字电压表主要设计分为测量部分和显示部分两大部分,测量部分主要实现电压的采集,显示部分结合程序便可以在数码管上实现正确显示。

数字电压表设计实验报告

数字电压表设计实验报告

基于51单片机数字电压表设计实验报告一、设计要求用51单片机控制AD0808进行数模转换,当调节滑动变阻器RV1时,在数码管上显示当前数值,并用电压表测的此时电压与数码管显示电压对比,计算数字电压表的精度二、方案设计数字电压表设计框图 模拟信号可以通过改变滑动变阻器阻值以改变输入电压;A/D 转换将模拟量转换数字量,再送给单片机处理,处理的结果由数码管显示。

三、硬件设计模拟信号 51单片机 A/D 转换数码管显示proteus硬件仿真电路图四、软件设计(1)设计数码管显示电压2.50v程序设计如下(数码显示2.5)#include<reg51.h>void delayms(int x){int i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}void main(){while(1){P1=0x00;P2=0xfb;P1=0xdb;delayms(10);P1=0x00;P2=0xfd;P1=0x6d;delayms(10);P1=0x00;P2=0xfe;P1=0x3f;delayms(10);}}运行结果如下:(2)设计采集总程序老师参考程序如下:/******************************************************#include <reg51.h>int AD_Result=187;sbit AD_Start=P3^0;sbit AD_EOC=P3^1;sbit AD_OE=P3^2;Unsigned char DisCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void DelayTime10ms(unsigned int DelayValue){unsigned int x,y;for(x=0;x<DelayValue;x++)for(y=0;y<1827;y++);}void Display(){char one,ten,hundred;AD_Result=AD_Result*5.0/255*100;one=AD_Result%10;ten=AD_Result/10%10;hundred=AD_Result/100;P2=0xfb;P1=DisCode[hundred]|0x80;DelayTime10ms(1);P2=0xfd;P1=DisCode[ten];DelayTime10ms(1);P2=0xfe;P1=DisCode[one];DelayTime10ms(1);}void AD_Test(){if(AD_EOC==1){AD_OE=1;AD_Result=P0;AD_OE=0;AD_Start=0;AD_Start=1;AD_Start=0;}}void main(){AD_OE=0;AD_Start=0;AD_Start=1;AD_Start=0;while(1){Display();AD_Test();}}************************************************************************/ 自己编写程序如下:#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar A1=5,A2,A3;uchar adval;sbit ST=P3^0; //定义AD的启动start端口;sbit EOC=P3^1; //定义EOC引脚,EOC转换完成sbit OE=P3^2; //定义AD允许数据输出端uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delayms(int x){ int i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}void display(){P2=0xff;P2=0xfb;P1=table[A1];delayms(2);P2=0xff;P2=0xfd;P1=table[A2];delayms(2);P2=0xff;P2=0xfe;P1=table[A3];delayms(2);}void AD_measure(){if(EOC==1){OE=1;adval=P0;OE=0;A1=adval/100;A2=adval%100/10;A3=adval%10;ST=0;ST=1;ST=0;}}void main(){OE=0;ST=0;ST=1;ST=0;while(1){AD_measure();display();}}五、总结在此次实验中遇到以下问题,首先是写显示程序,画原理图时把数码管接口顺序接反了导致显示结果出现乱码;其次在编写A/D转换程序时容易出错A/D0808引脚功能不会用;最后是显示整个量程数据时不容易理解,在这里要特别注意。

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

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

单片机课程设课题名称:数字电压表课程原理:1、模数转换原理:试验中,我们选用ADC0809作为模数转换的芯片,其为逐次逼近式AD转换式芯片,其工作时需要一个稳定的时钟输入,根据查找资料,得到ADC0809的时钟频率在10KHZ~1200KHZ,我们选择典型值640KHZ。

课题要求测量电压范围是0到5V,又ADC0809的要求:V ref+<=Vcc,V ref->=GND,故我们取V ref+=+5V,V ref-=0V。

由于ADC0809有8个输入通道可供选择,我们选择IN0通道,直接使ADC0809的A、B、C接地便可以了,在当ADC0809启动时ALE引脚电平正跳变时变可以锁存A、B、C 上的地址信息。

ADC0809可以将从IN0得到的模拟数据转换为相应的二进制数,由于ADC0809输出为8位的二进制数,转换时将0到5V分为255等分,所以我们可以得到转换公式为x/255*5化简为:x/51,x为得到的模拟数据量,也就是直接得到的电压量。

在AD转换完成后,ADC0809将在EOC引脚上产生一个8倍于自身时钟周期的正脉冲,以此来作为转换结束的标志。

然后当OE引脚上产生高电平时,ADC0809将允许转换完的二进制数据输出。

2、数据处理原理:由ADC0809的转换原理可以知道我们从其得到数据还只是二进制数据,我们还需要进一步处理来的到x的十进制数,并且对其进行精度处理,也就是课题要求的的精确到小数点后两位,在这里我们用51单片机对数据进行处理。

我们处理数据的思路是:首先将得到的二进制数直接除以十进制数51,然后取整为x的整数部分,然后就是将得到的余数乘以10,然后再除以51,再取整为x的十分位,最后将得到的余数除以5得到x的百分位。

3、数据显示原理:试验中我们用到四位一体的七段数码管,所以我们只能考扫描显示来完成数码管对x的显示,我们用的是四位数码显示管,但是x只是三位的,故我们将将第四位显示为单位U,通过程序的延时,实现四位数码管的稳定显示。

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

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

实验五数字电压表设计报告一、设计目的通过电子技术的综合设计,熟悉一般电子电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法。

通过设计有助于复习、巩固以往的学习内容,达到灵活应用的目的。

设计完成后在实验室进行自行安装、调试,从而加强学生的动手能力。

在该过程中培养从事设计工作的整体概念。

二、设计要求1、利用所学的知识,通过上网或到图书馆查阅资料,设计三个实现数字万用表的方案;只要求写出实验原理,画出原理功能框图,描述其功能。

2、其中对将要实验方案3 1/2数字电压表,需采用中、小规模集成电路、MC14433 A/D转换器等电路进行设计,写出已确定方案详细工作原理,计算出参数。

3、技术指标:Ⅰ、测量直流电压1999-1V;199.9-0.1V;19.99-0.01V;1.999-0.001V;Ⅱ、测量交流电压1999-199V;Ⅲ、三位半显示;Ⅳ、比较设计方案与总体设计;Ⅴ、根据设计过程写出详细的课程设计报告;三、设计方案及原理数字显示电压表将被测模拟量转换为数字量,并进行实时数字显示。

该系统(如图1 所示)可采用MC14433—三位半A/D 转换器、MC1413七路达林顿驱动器阵列、CD4511 BCD到七段锁存-译码-驱动器、能隙基准电源MC1403和共阴极LED发光数码管组成。

本系统是三位半数字电压表,三位半是指十进制数0000~1999。

所谓3位是指个位、十位、百位,其数字范围均为0~9,而所谓半位是指千位数,它不能从0变化到9,而只能由0变到l,即二值状态,所以称为半位。

各部分的功能如下:三位半A/D转换器(MC14433):将输入的模拟信号转换成数字信号。

基准电源(MC1403):提供精密电压,供A/D 转换器作参考电压。

译码器(MC4511):将二—十进制(BCD)码转换成七段信号。

驱动器(MC1413):驱动显示器的a,b,c,d,e,f,g七个发光段,驱动发光数码管(LED)进行显示。

数字电压表设计实验报告

数字电压表设计实验报告
MOV R7,#6
MOV DPTR,#CS8279D
MOV R0,#30H
DISPL1:
PUSH DPL
PUSH DPH
MOV A,@R0MOV 源自PTR,#TABMOVC A,@A+DPTR
POP DPH
POP DPL
MOVX @DPTR,A
INC R0
DJNZ R7,DISPL1
DSPEXIT:
SJMP CONB3
CONB2:
MOV R7,#4
SJMP CONB3
CONB1:
MOV R7,#3
CONB3:
MOV R0,#35H
MOV A,#0BH
CONBLP:
MOV @R0,A
DEC R0
DJNZ R7,CONBLP
RET
END ; program end
二、实验结果
通过调节可变电阻VR4的电阻大小,使得输入到ADC0809的第5引脚的电压从0V变到5V,转换相应的结果并通过数码显示器显示出来。实验结果与预测结果一置。
; function: initial 8279 as 8 digtal left in ALE/10
; input parameter : none
; output parameter: none
; others 8279 command port address 0FFE9H;8279 data port address 0FFE8H
ORG 0000H
MAIN:
MOV SP, #60H
ACALL INI8279
MOV ADRESULT, #00H
MOV ADBAK, #0FFH
MAINLP:

数字电压表课程设计报告

数字电压表课程设计报告

湖南科技大学信息与电气工程学院课程设计报告课程单片机原理及应用题目:数字电压表专业:班级:姓名:学号:任务书1数字电压表的概述数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。

目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。

数字电压表的诞生打破了传统电子测量仪器的模式和格局。

它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。

数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。

数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。

本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。

系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。

简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。

模拟式电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。

再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。

数字电压表的综合设计报告

数字电压表的综合设计报告

数字电压表的综合设计一、设计任务1、使用状态机实现对模数转换芯片TLC549的采样控制,实现一个简易的电压表。

并将硬件验证结果与测量电压值进行比较。

二、整体设计1、本次设计是利用FPGA控制 TLC549,将 AD转换后的电压值读出,并显示在数码管。

模块一为TLC549主控制模块,模块二为bcd1即一位BCD码加减模块,模块三为lookup即A/D转换BCD码模块,模块四为scan_led数码显示模块。

然后将模块生成为相应器件,按照原理图连接,得出相应波形及数据。

由FPGA构成的ASIC的三部分电路(如结构示意图所示):(1)用有限状态机设计的A/D转换控制电路;(2)将8位数字量DB0-DB7转换成3位BCD码电压值的转换路;(3)3位LED显示器的译码显示电路;结构示意图2、原理框图3、模数转换-TLC549 ADC的介绍(1)TLC549各引脚功能如下:●ANALOG IN,模拟量输入端;●sclk,串行时钟输入端;●cs,芯片选择,低有效;●DATA OUT,数字量输出端;●GND,模拟接地;●REF+,基准电压输入端;●REF-,基准电压负端;●VCC,正电源电压端。

(2)TCL549的工作时序图当片选 CS为低电平时,串行输人数据才能被移入移位寄存器。

当 CS为低电平时,在每一个SCLK时钟的上升沿将DIN的一位数据移入移寄存器。

注意,二进制最高有效位被导前移入。

接着, CS的上升沿才将移位寄存器的数据锁存,供DAC电路进行转换;当片选CS为高电平时,串行输人数据不能被移入移位寄存器。

注意.CS的上升和下降都必须发生在SCLK为低电平期间。

三、模块设计模块一module tcl549c(clk,cs,sdata,clk_ad,reset,dataout);input clk,reset,sdata;output cs,clk_ad;output[7:0]dataout;reg cs,clk_ad_r,clk_r;reg[7:0]dataout,dataout_r;reg[7:0]count;reg[2:0]temp;reg[3:0]cnt;reg mark;reg flag;parameter [2:0]s0=0,s1=1,s2=2;reg[2:0]c_st;always@(posedge clk)begin if(count<119)count<=count+1;else begin clk_r<=~clk_r;count=0;endendalways@(posedge clk)begin clk_ad_r<=~clk_r;endassign clk_ad=clk_ad_r;always@(posedge clk_r or negedge reset)begin if(!reset) c_st<=s0;else case(c_st)s0:begin cs<=1;mark<=0;if(temp==3)begin temp<=0;c_st<=s1;endelse begin temp<=temp+1;c_st<=s0;endends1:begin cs<=0;mark<=1;c_st=s2;ends2:begin cs<=0;mark<=1;if(flag==1)c_st<=s0;else c_st<=s2;enddefault:c_st<=s0;endcaseendalways@(posedge clk_ad_r)beginif(mark==1)if(cnt==8)begin cnt<=0;flag<=1;endelse begin cnt<=cnt+1;flag<=0;endendalways@(posedge clk_ad_r)beginif(mark==1)if(flag==1)dataout<=dataout_r;else dataout_r={dataout_r[6:0],sdata};//串转并endendmodule模块二/*功能:一位BCD码加减法模块输入参数:标准时钟clk,被减数/加数dataa,减数/加数datab,低位来的借位/进位cin输出参数:向高位的借位/进位cout,差/和result*/module bcd1(dataa, datab,cin, cout, result);input [3:0] dataa;input [3:0] datab;input cin;output reg cout;output [3:0]result;reg [4:0]result_r;assign result=result_r;always @(*)beginresult_r = dataa + datab + cin; // 二进制加法if((result_r > 4'd9 )) //||((result_r == 4'd0)&&(dataa != 0))||((result == 4'd1)&&(dataa != 0)&&(result_ab == 4'd0))/*当结果大于9时,补6,当结果由不同时为0的加数相加得0时,补6*/ beginresult_r = result_r + 4'd6;cout = 1;endelsebeginresult_r = result_r;cout =0;endendendmodule模块三module lookup(V,q);input [7:0]V;output [11:0]q;reg [11:0]q;reg [11:0]HB,LB;wire d1,d2,d3;always@(V)begin case(V[7:4]) //--A/D值的高4位转换成3位BCD码4'b1111: HB<=12'b001001000000; //--2.404'b1110: HB<=12'b001000100100; //--2.244'b1101: HB<=12'b001000001000; //--2.084'b1100: HB<=12'b000110010010; //--1.924'b1011: HB<=12'b000101110110; //--1.764'b1010: HB<=12'b000101100000; //--1.604'b1001: HB<=12'b000101000100; //--1.444'b1000: HB<=12'b000100101000; //--1.284'b0111: HB<=12'b000100010010; //--1.124'b0110: HB<=12'b000010010110; // --0.964'b0101: HB<=12'b000010000000; // --0.804'b0100: HB<=12'b000001100100; //--0.644'b0011: HB<=12'b000001001000; //--0.484'b0010: HB<=12'b000000110010; //--0.324'b0001: HB<=12'b000000010110; //--0.164'b0000: HB<=12'b000000000000; // --0.00default: HB<=12'b111111111111;endcasecase(V[3:0]) //--A/D值低4位变为3位BCD码4'b1111: LB<=12'b000000010101; // --0.154'b1110: LB<=12'b000000010100; // --0.144'b1101: LB<=12'b000000010011; // --0.134'b1100: LB<=12'b000000010010; // --0.124'b1011: LB<=12'b000000010001; // --0.114'b1010: LB<=12'b000000010000; // --0.104'b1001: LB<=12'b000000001001; // --0.094'b1000: LB<=12'b000000001000; // --0.084'b0111: LB<=12'b000000000111; // --0.074'b0110: LB<=12'b000000000110; // --0.064'b0101: LB<=12'b000000000101; // --0.054'b0100: LB<=12'b000000000100; // --0.044'b0011: LB<=12'b000000000011; // --0.034'b0010: LB<=12'b000000000010; // --0.024'b0001: LB<=12'b000000000001; // --0.014'b0000: LB<=12'b000000000000; // --0.00default: LB<=12'b111111111111;endcaseendbcd1u1(.dataa(LB[3:0]),.datab(HB[3:0]),.result(q[3:0]),.cin(1'b0),.cout(d 1));bcd1u2(.dataa(LB[7:4]),.datab(HB[7:4]),.result(q[7:4]),.cin(d1),.cout(d2) );bcd1u3(.dataa(LB[11:8]),.datab(HB[11:8]),.result(q[11:8]),.cin(d2),.cout( d3));endmodule模块四module scan_led(clk_1k,d,dig,seg); //模块名scan_ledinput clk_1k; //输入时钟input[11:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚output[7:0] seg; //数码管段输出引脚reg[7:0] seg_r; //定义数码管输出寄存器reg[7:0] dig_r; //定义数码管选择输出寄存器reg[3:0] disp_dat; //定义显示数据寄存器reg[2:0]count; //定义计数寄存器assign dig = dig_r; //输出数码管选择assign seg = seg_r; //输出数码管译码结果always @(posedge clk_1k) //定义上升沿触发进程beginif(count<2)count <= count + 1'b1;else count<=0;endalways @(posedge clk_1k)begincase(count) //选择扫描显示数据3'd0:disp_dat = d[11:8]; //第一个数码管3'd1:disp_dat = d[7:4]; //第二个数码管3'd2:disp_dat = d[3:0]; //第三个数码管endcasecase(count) //选择数码管显示位3'd0:dig_r = 8'b01111111; //选择第一个数码管显示3'd1:dig_r = 8'b10111111; //选择第二个数码管显示3'd2:dig_r = 8'b11011111; //选择第三个数码管显示endcasecase(count)3'd0:seg_r[7]=0;3'd1:seg_r[7]=1;3'd2:seg_r[7]=1;endcaseendalways @(disp_dat)begincase(disp_dat) //七段译码4'h0:seg_r[6:0] = 7'b1000000; //显示04'h1:seg_r[6:0] = 7'b1111001; //显示14'h2:seg_r[6:0] = 7'b0100100; //显示24'h3:seg_r[6:0] = 7'b0110000; //显示34'h4:seg_r[6:0] = 7'b0011001; //显示44'h5:seg_r[6:0] = 7'b0010010; //显示54'h6:seg_r[6:0] = 7'b0000010; //显示64'h7:seg_r[6:0] = 7'b1111000; //显示74'h8:seg_r[6:0] = 7'b0000000; //显示84'h9:seg_r[6:0] = 7'b0010000; //显示9 default:seg_r[6:0] = 7'b1111111;endcaseendendmodule仿真波形如下:四、结论调节SPOC实验平台上的相应按钮,使显示管出现不同的电压数值,同时使用万用表测出对应的电压数值。

EDA数字电压表设计报告

EDA数字电压表设计报告

课程设计任务书课题名称数字电压表设计系别电子信息工程系专业班级学号姓名指导老师2015年6月20日前言概念发展而来的。

EDA地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

本电压表的电路设计正是用VHDL语言完成的。

此次设计采用的是Altera 公司的Quartus II 7.0软件。

本次设计的参考电压为2.5V,精度为0.01V。

此电压表的设计特点为 通过软件编程下载到硬件实现,设计周期短,开发效率高。

目录一、绪论 (3)二、设计要求 (3)三、设计过程 (4)1、系统总体框图 (4)2、数字电压表的基本原理 (4)3、显示方案 (4)四、单元电路设计 (5)1、A/D转换控制模块 (5)ADC0809工作原理 (5)ADC0809工作时序 (6)CPLD控制ADC采样状态机 (6)2、模拟电压的计算 (6)码制变换模块 (6)3、显示控制及驱动模块 (7)4、ADC0809引脚连接 (8)五、软件设计 (9)1、开发软件及编程语言简介 (9)2、程序流程图 (9)3、结论 (9)六、总结设计的收获与体会 (9)附录1 程序清单一、绪论数字电压表(Digital Voltmeter)简称DVM,是大学物理教学和实验中的重要仪表,其数字化是指将连续的模拟电压量转换成不连续、离散的数字量并加以显示。

传统的实验用模拟电压表功能单一、精度低、体积大,且存在读数时的视差,长时间连续使用易引起视觉疲劳,使用中存在诸多不便。

而目前数字万用表的内部核心多是模/数转换器,其精度很大程度上限制了整个表的准确度,可靠性较差。

传统的数字电压表设汁通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成。

ASIC完成从模拟量的输入到数字量的输出,是数字电压表的心脏。

这种电压表的设计简单、精确度高,但是这种设计方法由于采用了ASIC器件使得它欠缺灵活性,其系统功能固定,难以更新扩展。

数字电压表设计报告

数字电压表设计报告

数字电压表设计(设计者:陈)一、设计任务和要求1.1、任务描述:1、以单片机为核心,设计一个数字电压表,能够对至少两路0~5V 的模拟电压进行采集,采集数据送LED 显示。

2、设计显示模式切换按钮,可单独显示某一路电压信号,也能对所有电压信号进行循环显示。

3、超过界限指示灯闪烁。

4、创新功能 1.2、任务要求:1、理解任务书要求,明确分工,查找相关资料,制定系统方案;2、论证系统设计方案,运用Proteus 等软件绘制电路原理图;3、根据硬件电路,确定算法,设计程序框图,编写程序代码;4、误差分析与改进,完成设计报告。

二、方案论证2.1、由ADC0808构成模数转换,其原理图如下所示:ADA ADB ADC OUT121ADD B 24ADD A25ADD C 23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START 6OUT58EOC 7OE9CLOCK 10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE 22U2ADC0808Volts+1.30Volts+4.2526%RV11k85%RV21k2.2、由ATC89C51控制程序模块,由IO 口分别对显示,输入等模块进行控制。

2.3、由四位一体数码管对测量值进行显示,如下图所示:E G 1E G 2E G 3E G 4R24702.3、由按钮控制循环/单路切换,如下图所示:KEY1循环/单路KEY2通道选择2.4、LED 灯报警,当电压超过一定值时会闪烁。

D1LED-BLUE三、电路基本单元电路设计下面是数字电压表的原理图:S E G 1S E G 2S E G 3SEG1SEG2SEG3ADA ADA ADB ADCADB ADC SEG4S E G 4XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC130pFC230FR110kC310uFOUT121ADD B 24ADD A25ADD C 23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START 6OUT58EOC 7OE9CLOCK 10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE 22U2ADC0808R2470R3470R4470R5470R6470R7470R8470R9470+88.8Volts+88.8Volts26%RV11k85%RV21kKEY1循环/单路KEY2通道选择D1LED-BLUE3.1、主控模块该设计的核心控制电路是 AT89C52单片机。

数字电压表的设计与制作报告

数字电压表的设计与制作报告

1课题名称数字电压表的设计与制作2设计指标及要求3位的数字电压表电路,技术指标要求是:设计并制作一个通用液晶显示211)直流电压测量范围(0-200V):共分5档200mV、2V、20V、200V;2)基本量程:200mV,测量速率(2-5)次任选;3)分辨率0.1mV;γ4)测量误差:%1.0±≤5)具有正、负电压极性显示,小数点显示和超量程显示。

3方案论证方案一:采用AT89S52单片机为核心、以AD0809数模转换芯片采样、以1602液晶屏显示制作具有电压测量功能的具有一定精度的数字电压表。

AT89S52是一个低功耗,高性能CMOS 8位单片机;8位AD转换器ADC0809,编程简单方便,价格便宜;采用液晶1602做为显示电路,功能强大,适合做各类扩展。

但该方案涉及的编程复杂,同时硬件电路也颇复杂。

方案二:采用ICL7106A/D转换器,液晶显示器EDS801A配以外围电路进行设计。

ICL7106是美国Intersil公司专为数字仪表生产的数字仪,满幅输入电压一般取200mV或2V。

该芯片集成度高,转换精度高,抗干扰能力强,输出可直接驱动LCD液晶数码管,只需要很少的外部元件,就可以构成数字仪表模块,硬件电路简单,而且精度高,完全可以实现要求。

综合分析,同时结合到软硬件实际,选择方案二,原理简单,仅涉及硬件电路。

4系统框图4.1 系统框图5单元电路设计及参数计算5.1AD转换器及外围电路设计电路图如下图5.1所示。

图5.1 AD转换器及外围电路图其中液晶显示采用EDS801,将其各数码的字段及公共端与ICL7106相应端联接。

OSC1、OSC2和OSC3是内部时钟的外接电阻和电容引脚;TEST是数字逻辑地端;VRH和VRL是参考电压的输入端,参考电压决定着AD转换器的灵敏度,它是由U DD分压而来,调节P R分压比可调节灵敏度(调满);两个CR脚是基准电容的外接引脚;COM端是模拟信号公共端;AZ、BUF和INT分别是自动调零端、缓冲控制端和积分器输出端;U+和U-为电源端;IN+和IN-为待测信号输入端。

数字电压表设计报告

数字电压表设计报告

31/2数字电压表一.设计目的课程设计的主要目的是通过某一模拟、数字电路的综合设计,熟悉一般模拟、数字电路综合设计过程,设计要求,应完成的工作内容和具体的设计方法。

通过设计也有助于复习、巩固以往的学习内容,达到灵活应用的目的。

在设计完成后还要将设计的电路安装,调试以加强动手能力,在此过程中培养从事设计工作的整体观念。

课程设计以培养能力为主,在独立完成设计任务的同时注重多方面能力的培养与提高,主要包括一下几方面:1.独立工作能力和创造力;2.综合运用专业以及基础知识,解决实际工程技术问题的能力;3.查阅图书资料、产品手册和各种工具书的能力;4.工程绘图能力;5.写技术报告和编制技术资料的能力。

二.设计指标1.能测量0-1.999V、0-19.99V、0-199.9V值;2.三位半数码显示;3.测量交直流电压;4.使用元器件越少越好。

三.设计方案及选择讨论数字电压表的主要内容可归纳为电压测量的数字化方法。

其关键是如何把连续的随时间变化的模拟量转化为数字量。

5.电路总体框图如图1-3所示图1-3 电路总体框图此方案所用器材:⒈数字逻辑试验箱万用表、直流电压源、双踪示波器、配线安装工具⒊集成电路及元器件的名称、型号及数量。

见表1-1:序号名称 型号 数量 1 双积分单片ADC MC14433 1块 2 BCD 七段译码器驱动器 CD4511 1块 3 达林顿反相驱动器 MC1413 1块 4 LED 七段显示数码管LG5011AH4只 5电阻、电容若干四、 单元电路设计⒈ 桥式整流电路:整流电路的任务是将交流点变换成直流电,完成这一任务主要是靠二极管单向导电作用,故二极管是构成整流电路的关键元件。

电路如图4-1-1:⒉ 量程控制电路:采用多量程选择的分压电阻网络,可按整机输入电阻为100M Ω标准经计算得4个分压电阻分别为9M Ω、900K Ω、90K Ω、10K Ω,可用四个双刀双掷开关进行控制切换,实现多量程扩展电压测量功能。

数字电压表设计实验报告

数字电压表设计实验报告

《数字电路》课程设计报告课题:数字电压表专业:电子信息工程班级:姓名:学号:指导老师:日期:2013年12月10日目录一、摘要 (2)二、设计任务及要求 (2)三、设计总体方案 (2)四、单元电路的设计 (3)五、调试过程及结果分析 (6)六、心得感悟 (7)七、参考文献 (7)八、附录(整机逻辑电路图、实物图、PCB板图) (8)一、摘要本文主要介绍的是基于ICL7107数字电压表的设计的设计,ICL7107是目前广泛应用于数字测量系统是一种集三位半转换器段驱动器位驱动器于一体的大规模集成电路,ICL7107是目前广泛应用于数字测量系统的一种3位半A/D转换器,能够直接驱动共阳极数字显示器,够成数字电压表,此电路简洁完整,稍加改造就可以够成其他电路,如数字电子秤、数字温度计的等专门传感器的测量工具。

ICL7107是目前广泛应用于数字测量系统是一种集三位半转换器段驱动器、位驱动器于一体的大规模集成电路,官地方官方主要用于对不同电压的测量和许多工程上的应用,调频接口电路,它采用的是双积分原理完成A/D转换,全部转换电路用CMOS大规模集成电路设计。

应用了ICL7107芯片数码管显示器等,芯片第一脚是供电,正确电压时DC5V,连接好电源把所需要测量的物品连接在表的两个端口,从而可以在显示器上看到所需要的结果。

在软件设计上,主要编写了实现计数频率的调节和单片机功能的相关程序,,最后把软件设计和硬件设计结合到一起,然后进行调试。

二、设计任务及要求1. 设计一个数字电压表电路,能够实验电压测量;2.测量范围:通过小数点驱动电路,直流电压0V到1.999V,0V到19.99V,0V 到199.9V,0V到1999V.3.画出数字电压表电路原理图,并作出PCB图;4.利用芯片ICL7107来实现电路功能;5.选择合适的电阻、电容、液晶显示器等器件;6.完成全电路理论设计、制作、调试,制板锡焊;7.上交制作产品一件。

数字电压表课程设计报告

数字电压表课程设计报告

数字电压表课程设计报告一、实验目的本实验旨在使学生掌握数字电压表的基本原理、构成和使用方法,通过实践锻炼学生的动手操作能力和实际问题解决能力。

二、实验器材数字电压表、直流稳压电源、电阻箱、待测电路板等。

三、实验内容1.数字电压表的基本原理、构成和使用方法的介绍;2.根据实验要求搭建待测电路;3.调节直流稳压电源输出电压为所需值;4.连接数字电压表到待测电路上并测量电压值;5.对测得的电压值进行分析、处理和讨论。

四、实验流程及步骤1.实验器材准备:数字电压表、直流稳压电源、电阻箱、待测电路板等器材;2.理解数字电压表的基本原理与构成,并熟练掌握使用方法;3.根据实验所需,找到相应的电路板,搭建待测电路,并连接好直流稳压电源;4.调节直流稳压电源的输出电压为所需值,并连接数字电压表到待测电路上;5.测量待测电路的电压值,并在数字电压表上进行记录;6.对测得的电压值进行分析、处理和讨论,并得出实验结论。

五、实验注意事项1.在操作实验器材时,务必严格按照使用说明书和教师的要求进行操作;2.实验器材保持完好无损,任何破损的器材均不能使用;3.实验前需仔细了解实验内容,规划实验流程;4.在操作实验时,要认真记录实验数据,并进行及时分析处理;5.实验结束后,将实验器材妥善归位,保持实验室整洁干净。

六、实验结果及结论通过实验,我们得到了待测电路的电压值,并对其进行了分析、处理和讨论。

根据实验结果和所给数据,我们得出了结论:数字电压表可准确测量待测电路的电压值,为后续研究和实践提供重要依据。

七、实验心得体会通过本次实验,我对数字电压表的原理及其使用方法有了更深入的了解,并通过实践掌握了一定的动手操作能力和实际问题解决能力。

同时,我认识到在实验中必须注重细节和注意安全,仔细完成每一个实验步骤,及时记录和分析实验数据,才能使实验结果更加准确和可靠。

数字电路实验三:数字电压表(设计报告)

数字电路实验三:数字电压表(设计报告)

数字电路实验三:数字电压表(设计报告)数电实验3设计报告实验名称:数字电表实验目的:1.掌握组合逻辑与时序逻辑电路的设计方法及调试方法2.熟练掌握常用MSI逻辑芯片的功能及使用方法3.初步掌握Verilog HDL数字系统设计方法4.熟悉PLD实验箱的结构和使用及Quartus II软件的基本操作5.掌握采用Quartus II软件和实验箱设计实现逻辑电路的基本过程设计任务及要求:1、利用FPGA 与ADC0809 设计一个数字电压表,能够测量0-5V 之间的直流电压值,四位数码显示。

2、在实验电路板上焊接插座,将ADC0809 安装在插座上。

3、选择一路模拟量输入通道(如:IN0),经可调电位器送入0-5V 的直流电压。

4、ADC0809 时序由FPGA 控制,ADC 转换输出的数字量(D7-D0)送回FPGA,转换结果由实验箱上的LED 数码管以十进制形式显示。

5、ADC0809 的VREF 接+5V 电压。

6、FPGA 与ADC0809 之间接口利用实验箱上的“彩色液晶”接口。

程序设计过程:1、定义程序名、输入输出量和初始化Moduleadc_cc(clkin,rst,clkout,sel,data,start,eoc,ale,oe,seg_com,seg_data); input clkin; //时钟输入50MHZ inputrst;inputeoc; //ADC0809input [7:0] data; //输入八位数据output clkout; //时钟输出output start; //ADC0809起始信号 output [2:0] sel;//转换通道 output ale; //ADC0809 outputoe;//ADC0809 output [7:0] seg_com; //位选 output [7:0] seg_data;//段选parameter CLK_FREQ = 'D50_000_000;//系统时钟50MHZ parameter CLK_out_FREQ ='D500_000;//输出时钟parameter state_pre = 0; //sel 状态1parameter state_pre2 = 1; //ale 状态2 parameter state_start =2; //start 状态3 parameter state_conv = 3; //conv 状态4parameter state_wait = 4; // 状态5 parameter state_readpre = 5;// 状态6 parameter state_read = 6;//over // 状态7reg [2:0] sel; //定义寄存器 reg ale;//定义寄存器 reg start; //定义寄存器 regoe; //定义寄存器reg [7:0] data_led; //LED显示数据 reg[31:0] DCLK_DIV; //32位计数器regclkout; //提供ADC0809时钟500KHZ reg [3:0]state = state_pre;2、按照PDF所给出的时序图进行编程对照时序图,使ADC0809按上图方式工作进行编程always @ (negedgeclkout) case (state) state_pre : begin sel[2:0] <='b000; //ABC 000 通道0 state <= state_pre2;//转到状态2 oe<= 0; //OE拉低 end state_pre2 :begin ale <= 1; state <= state_start; endstate_start : begin start <= 1; ale<= 0; state <=state_conv; end state_conv : begin ale <= 0;start <= 0; state <= state_wait; end state_wait :begin if(eoc) begin state <= state_readpre; endend state_readpre : begin oe<= 1; state <= state_read; end state_read : begin data_led = data; state <= state_pre; end endcase//ALE拉高 //转到状态3 //START拉高 //转到状态4//ALE拉低锁定 //START拉低 AD启动 //转到状态5 //查询EOC是否被拉高 //转到状态6 //输出使能拉高 //转到状态7//开始读数据 //重新回到状态1 进行下一次AD转换 3、将AD转换结果用数码管显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键词:MSC-51ADC0809 数字电压表 数模转换LCD
1.
1.1
数字电压表(Digital Voltmeter)简称DVM,目前采用单片机设计的数字电压表,由于精度高、抗干扰能力强、可扩展性强、集成方便,还可以与PC进行实时通信,所以以下方案均采用单片机设计。
1.1.1 方案设计
方案一:基于MSP430F448单片机的数字电压表设计。MSP430F44x系列单片机片内集成了8路12位A/D、串行通信接口、看门狗定时器、比较器、硬件乘法器等外围设备模块,从而降低了应用电路的复杂程度,提高了系统的可靠性。该芯片可以工作于2.5V和3.3V两种电压下,其功耗非常低。
数字电压表
摘要
在电子器件设计中,以单片机作为控制核心的系统得到了广泛的应用,尤其以MCS-51最为普遍。而数字电压表的基本原理是对直流电压进行模数转换,并将其结果用数字直接显示出来。为以单片机为控制核心实现数字电压表的设计,结合了模数转换技术,段码显示以及液晶显示,并结合ADC0809芯片及74HC573,进而实现了对5V以内的直流电压的准确测量,并在数码管以及液晶显示屏上同时显示。并进一步扩展,实现了最多可以对八路电压同时进行测量。而且对于超出测量范围的电压能够以LED灯的闪烁实现报警。
图1-2-3AT89C51引脚图
本电路通过单片机定时器给ADC0809芯片提供500KHz的时钟信号,用P3口来控制ADC芯片的工作和输入电压通道的选取。将数模转换后的数据通过P0端口送入74HC573芯片锁存,再由P1端口控制将其数值分别显示在数码管和液晶屏上。
1.2.4 电压显示电路设计
(1)LED显示
图1-2-2 ADC0809内部结构框图及引脚图
本设计通过输入电路将8路输入电压送入ADC0809。并通过单片机P3端口控制实现模数转换,并将转换后的数字信号送入单片机的P2口。ADC0809芯片的时钟信号由单片机产生,送入芯片clock端口。芯片的基准电压和电源电压均由单片机学习板提供。
1.2.3 单片机主控电路设计
[4]蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:重庆大学出版社.出版时间:2005
年1月第2次印刷
[5]8051实验指导书电子电气综合实训系统.出版社:北京精仪达盛科技有限公司
[6] 徐爱钧.智能化测量控制仪表原理与设计(第二版)[M].北京:北京航空航天大学出版
社,2004
[7] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2002
[8] 张国勋.缩短ICL7135A/D采样程序时间的一种方法[J].电子技术应用.1993.第一期
[9]《MCS-51系列单片机系统及其应用》蔡美琴 高等教育出版
[10]《过程控制与仪表》陈乐 中国计量学院出版社,2007-3
3.2 附图
附图1 系统仿真图
附图2作品实物
3.3 源程序
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图1-2-3所示。
图1-2-5 LCD1602引脚图
显示电路总体思路是以单片机为主要控制核心芯片,并结合锁存芯片对LED进行位选与段选,并通过P3口控制液晶屏来实现。具体电路如图1-2-6所示。
图1-2-6 显示电路
1.3
多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和液晶屏显示电路组成。
1.3.1 硬件设计
(2)两次测量值有一定的偏差,其主要原因是因为使用单片机学习班提供5V供电,由于单片机输出电压不稳定,造成以上结果。
3. 附录
3.1 参考文献
[1]胡汉才主编.单片机原理及接口技术.北京:清华大学出版社,2010
[2]郭天祥主编.51单片机C语言教程.北京:电子工业出版社,2009
[3]蒋青主编.通信原理.北京:人民邮电出版社,2011
图1-2-4 LED数码管引脚图
(2)LCD液晶屏显示
本电路采用LCD1602液晶屏来显示电压值。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。其引脚图如图1-2-5所示。本设计通过单片机P0口直接与LCD的输入端相连,并通过单片机P3口来控制液晶屏的显示。
R0
R1
R2
R3
R4
R5
R6
R7
第一次
真实值(v)
3.173.021.78 Nhomakorabea3.34
1.83
3.63
2.88
2.13
测得值
3.20
3.03
1.80
3.34
1.84
3.65
2.89
2.14
第二次
真实值
3.27
4.98
1.68
0.92
4.15
2.15
3.15
1.33
测得值
3.28
4.98
1.68
0.92
4.17
2. 系统测试
2.1 测试方法与结果
(1)测试方法
实物电路的测试,首先根据仿真电路图焊接实物电路,连接好后,将C语言程序下载到单片机内,进行测试,将侧的的数值记录下来,然后再用已有的数字电压表对可变电阻的电压进行测量,将两组数据进行比较,看结果是否一致,如果不一致,计算测量误差。
(2)测试结果
表2-1-1实物电路的测试结果
本设计的数字电压表的系统框图如图1-3-1所示。
图1-3-1 系统框图
1.3.2 软件设计流程
(1)主程序
主程序包括初始化部分,A/D转换控制部分和定时子程序。同时还设置了多路循环显示和超压报警子程序。程序框图如图1-3-2所示。
图1-3-2 主程序流程图
(2)显示子程序
该部分分别实现了LED数码管和LCD液晶屏的同步显示功能,并且在液晶屏上显示出对应的电压路数和一些适当的标志。
方案二:使用AT89C51单片机作为核心控制芯片,并用TLC549串行芯片作模数采样芯片。其占用的单片机的I/O口少且占用电路面积小。其缺点是编程比较复杂。
法案三:使用AT89C51单片机作为核心控制芯片,并采用ADC0809数模转换芯片其需要占用一个I/O口,可以循环采样8路模拟通道。占用板子面积大但编程相对更为简单。
2.17
3.17
1.34
2.2 测试结论
通过使用万用表多次测量,并与实际值进行对比。
2.2.1 功能实现
以上测试结果表明,本设计完成了基本要求,并且完成了发挥部分的全部要求。具体利于下:
(1)0-5V直流电压的获取。
(2)采用AD转换器ADC0809实现单通道直流电压检测。
(3)用学习板数码管以及外扩液晶1602显示所测电压值
1
采用MSP430F44x系列单片机设计具有低功耗、系统稳定、外围电路简单等优点,但是考虑现有资源使用2.5V和3.3V电源供电具有一定难度。对比方案二和方案三,结合实际情况,采用TLC549串行芯片实现电路不具有可行性,所以本设计采用方案三。
1.2 主要部件原理及参数计算
如何实现5V模拟电压转换成数字电压?如何实现数字电压经过控制显示在数码管上和液晶屏上?它们的参数如何设置?下面将回答这些问题。
1.2.1 输入单元电路设计
输入电路的作用是把被测的模拟电压值送到模数转换器的模拟输入端,使用单片机学习板输出5V直流电压,然后经过电位器选择不同的电压,最后将转换后的模拟电压送至ADC0809芯片。
图1-2-1 输入电压等效电路
1.2.2 A/D转换电路设计
本设计采用ADC0809芯片进行数模转换,ADC0809是具有8通道、8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
LED显示器引脚如图1-2-4所示,是一个共阴极接法的4位LED数码显示管其中a,b,c,d,e,f,g为4位LED各段的公共输出端 1,2,3,4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后引出到器件的外部。本电路通过使用两天74HC573芯片分别控制LED的位选与段选。
(4)实现多通道直流电压检测,在数码管以及外扩液晶1602上轮流显示各路电压值。
(5)设定电压报警值(上下限),当超过这一数值时,会出现二极管闪烁。
(6)在基础和扩展要求实现的情况下,我们还将电压路数同时显示在液晶屏上,更具有实用性。
2.2.2 误差分析
通过分析以上测试数据,得出一下结论:
(1)测量值与实际值有一定的误差,其主要原因是因为A/D转换芯片自身的转换误差和实际电路延时问题造成的。
A/D转换工作原理:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。其结构原理图和外部引脚图如图1-2-2所示。
相关文档
最新文档