设计并仿真一台数字电压表
三位半数字直流电压表设计multisim

三位半数字直流电压表设计multisim
【设计背景及意义】
随着科技的不断发展,数字电压表在各个领域的应用越来越广泛。
三位半数字电压表作为一种常见的测量仪器,具有高精度、高稳定性、易于操作等优点。
本文将介绍如何使用Multisim软件设计一款三位半数字直流电压表,以满足实际应用需求。
【设计原理】
三位半数字直流电压表的设计主要依据以下原理:
1.采用分压式电路实现电压测量;
2.利用模数转换器将模拟信号转换为数字信号;
3.通过数字显示电路将数字信号转换为直观的电压值。
【设计步骤】
1.打开Multisim软件,新建一个项目;
2.添加所需元器件,包括电阻、电容、二极管、晶体管、运算放大器等;
3.连接电路,构建分压式电压测量电路、模数转换电路和数字显示电路;
4.设置元器件参数,如电阻值、电容值等;
5.添加电源和信号源,设置电压值;
6.配置仿真参数,进行仿真实验;
7.分析仿真结果,优化电路设计。
【仿真结果及分析】
经过多次仿真实验,得到以下结果:
1.电压测量范围:0~100V;
2.电压测量精度:0.5%;
3.数字显示:三位半液晶显示屏;
4.响应速度:≤1秒。
通过分析仿真结果,可以看出设计的三位半数字直流电压表具备较高的精度和响应速度,能够满足大部分实际应用场景的需求。
【总结与展望】
本文通过Multisim软件设计了一款三位半数字直流电压表,详细介绍了设计原理、步骤及仿真结果。
在今后的工作中,可以进一步优化电路设计,提高电压表的性能,如降低功耗、扩大测量范围等。
数字电压表程序及仿真图

//************************************************//**用adc0809进行电压测量,lcd1602显示,精度0.001v**//************************************************#include "reg51.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned intuchar code table []="ID: " ; //欢迎显示,包括空格在内<=16 uchar code table1 []="Name: " ;//欢迎显示,包括空格在内<=16//************管脚定义************************sbit ADC_OE = P3^0; //ADC输入允许信号端口sbit ADC_EOC = P3^1; //ADC转换结束信号输出端sbit ADC_START= P3^2; //ADC启动转换信号输入端sbit ADC_CLK = P3^3; //ADC时钟输入端sbit lcd_rs = P3^4; //液晶数据命令选择端sbit lcd_en = P3^5; //液晶使能//************参数定义************************uchar num; //LCD1602开机显示数组数uchar AD_data; //AD转换原始数据uchar dis1[] = " Current Voltage";uchar dis2[] = {' ',' ',' ',' ','V','=','0','.','0','0','0','v',' ',' ',' ',' ',}; //初始化数组,用来保存电压显示//************子函数定义************************void delay(uchar z); //delay延时子程序void init_lcd(); //LCD1602初始化函数void InitTimer0(); //定时器0初始化函数void write_com(uchar com); //LCD1602写指令函数void write_data(uchar date); //LCD1602写数据函数void write_welcome(); //LCD1602开启显示欢迎函数void init_ADC(); //ADC初始化函数void AD_covert(); //AD转换子程序void ADC_change(); //ADC转换函数void write_adc(); //ADC显示函数//************主函数************************void main(){init_lcd(); //LCD1602初始化write_welcome(); //LCD1602开启显示欢迎InitTimer0(); //定时器0初始化init_lcd(); //LCD1602初始化init_ADC(); //ADC初始化while(1){AD_covert(); //AD转换ADC_change(); //ADC转换函数write_adc(); //ADC显示}}//************delay延时子程序************************void delay(uchar z){uchar x,y;for(x=0;x<z;x++)for(y=0;y<114;y++);}//************LCD1602初始化函数************************void init_lcd(){lcd_en = 0; // 将使能端置0write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口write_com(0x08); //写一个字符后地址指针加1write_com(0x01); //显示清零,数据指针清零write_com(0x06); //写一个字符后地址指针加1write_com(0x0c); //关显示,光标不显示不闪烁}//************定时器0初始化函数************************void InitTimer0(){TMOD = 0x02; //定时器0工作方式2TH0 = 0x14; //初值位20TL0 = 0x14;EA = 1; //开总中断ET0 = 1; //允许T0中断TR0 = 1; //启动T0}//************LCD1602写指令函数************************void write_com(uchar com){lcd_rs = 0; // 选择写指令P2 = com; // 将要写的命令送到数据总线上delay(5); // 延时5ms,待数据稳定lcd_en = 1; // 由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5); // 延时5ms,待数据稳定lcd_en = 0; // 将使能端置0以完成脉冲}//************LCD1602写数据函数************************void write_data(uchar date){lcd_rs = 1; // 选择写数据P2 = date; // 将要写的数据送到数据总线上delay(5); // 延时5ms,待数据稳定lcd_en = 1; // 由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5); // 延时5ms,待数据稳定lcd_en = 0; // 将使能端置0以完成脉冲}//************LCD1602开启显示欢迎函数******************void write_welcome(){write_com(0x80); // 现将数据指针定位到第一行第一个字处for(num=0;num<16;num++) //做简短延时{write_data(table[num]);delay(5);}write_com(0x80+0x40); // 现将数据指针定位到第二行第一个字处for(num=0;num<16;num++) //做简短延时{write_data(table1[num]);delay(20);}delay(50000);}//************中断函数************************void Timer0()interrupt 1{ADC_CLK = ~ADC_CLK; //时钟不断取反}//***********ADC初始化函数************************void init_ADC(){ADC_OE = 0; //ADC输入允许信号端口置1ADC_EOC = 1; //ADC转换结束信号输出端置1ADC_START= 1; //ADC启动转换信号输入端置1ADC_CLK = 1; //ADC时钟输入端置1}//***********AD转换子程序***********************void AD_covert(){ADC_START= 0;ADC_CLK = 0;_nop_(); //延时空循环,一个机器指令的时间ADC_START= 1;ADC_CLK = 1;_nop_(); //延时空循环,一个机器指令的时间ADC_START= 0;ADC_CLK = 0; //在START上产生一个正脉冲while(ADC_EOC); //等待上次转换完成_nop_();delay(100);while(ADC_EOC == 0){ADC_CLK = 1;delay(1);ADC_CLK = 0;delay(1);}P1 = 0xff;_nop_();ADC_OE = 1;_nop_();AD_data = P1;ADC_OE = 0;}//***********ADC转换函数************************void ADC_change(){double v;uchar val_integer;uint val_decimal;v = AD_data*0.0196078; //5v时输出的数字量是2.55,为使5v时输出5.00 val_integer = (uchar)v; //电压整数部分val_decimal = (uint)((v-val_integer)*1000);//将电压小数点后三位转换为整数(dis2[6]) = val_integer+0x30; //电压整数转换为ASSII(dis2[8]) = val_decimal/100+0x30; //电压小数第一位转换为ASSII(dis2[9]) = val_decimal/10%10+0x30; //电压小数第二位转换为ASSII(dis2[10]) = val_decimal/10%10+0x30; //电压小数第三位转换为ASSII}//************LCD1602显示adc函数******************void write_adc(){write_com(0x80); // 现将数据指针定位到第一行第一个字处for(num=0;num<16;num++)//做简短延时{write_data(dis1[num]);delay(1);}write_com(0x80+0x40); // 现将数据指针定位到第二行第一个字处for(num=0;num<16;num++)//做简短延时{write_data(dis2[num]);delay(1);}}。
三位半数字直流电压表设计multisim

三位半数字直流电压表设计multisim三位半数字直流电压表是一种常用的测试仪器,用于测量直流电路中的电压值。
它具有简单易用、精度高、测量范围广等特点,被广泛应用于电子工程、电力工程、通信工程等领域。
在设计multisim 电路仿真软件时,三位半数字直流电压表也是必不可少的组成部分。
我们需要了解三位半数字直流电压表的原理。
它采用了数字显示技术,将测量到的电压值以数字形式显示在屏幕上。
一般情况下,三位半数字直流电压表的显示范围为0-1999,即可以显示0.000V-1.999V之间的电压值。
它通过测量电路中的电压,将模拟信号转换为数字信号,并通过显示器显示出来。
在multisim中设计三位半数字直流电压表,首先需要选择合适的元件进行连接。
常见的元件有电阻、电容、二极管等。
在连接电路时,需要注意保证电路的稳定性和准确性。
电路的稳定性可以通过合理选择元件值来实现,而准确性则需要根据实际需求来确定。
在连接电路之后,我们需要设置multisim的参数。
首先是设置电源电压,这是为了模拟实际电路中的电源情况,保证电路能够正常工作。
其次是设置测量范围,根据需要选择合适的范围。
最后是设置显示方式,可以选择数码管显示或液晶显示等方式。
完成电路的连接和参数设置后,我们可以进行仿真实验。
在multisim中,可以设置不同的输入电压值,观察三位半数字直流电压表的显示结果。
通过对比实际测量值和显示值,可以评估电路的准确性和稳定性。
除了基本的测量功能,三位半数字直流电压表还可以具备其他功能,如自动量程切换、峰值保持等。
这些功能可以通过添加适当的电路元件和控制电路来实现。
在multisim中,可以根据需要进行扩展和改进,使三位半数字直流电压表具备更多的功能和应用。
设计multisim电路仿真软件时,三位半数字直流电压表是一个不可或缺的元件。
它能够对直流电路中的电压进行准确测量,并以数字形式显示出来。
通过合理连接电路和设置参数,我们可以在multisim中模拟实际的测量过程,并评估电路的性能。
最简单的用单片机+ADC0808 protues仿真数字电压表(原创)

在学习单片机AT89S52十天后,老师发给我们的那个板子就基本不够用了,所以数字电压表就只能用protues仿真了,而且之前我在网上找了很多别人做的数字电压表实例,总感觉程序比较复杂,就尝试着自己做了下,没想到很简单的思路竟然就做出来了,当然里面还有很多不足,精度也不是很高,但是做出来的时候自己真的非常高兴!下面给出我写的C程序和仿真图,不足的地方希望可帮我修改下。
可以说这个程序是非常简单的了,没有像其他人一样用中断啊,用字符串移动啊,用ABS 地址头文件啊都没有,所以很适合新人理解吧。
我就只想一个问题,把收到的2进制数字量改成10进制就行了,仅此而已。
#include <reg52.h>#include <math.h>#define unit unsigned int#define uchar unsigned charsbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^2;sbit led4=P2^3;uchar ad_data;uchar data dis[5]={0x00,0x00,0x00,0x00,0x00};uchar code led_segment[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};void data_pro();void delay (k);void display();void main(void) //主程序{ad_data=0; //采样值存储单元初始化为0while(1){ST=0;ST=1;ST=0;while(EOC==0)OE=1;ad_data=P0;data_pro();display();}}void Delay(int count) //*定义延时子函数,利用循环来延时{int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}void display(void) //LED显示子程序{P1=led_segment[dis[2]]; //驱动方法led1=0; //开第一个数码管delay(1); //动态显示方法进行一个很小的延时led1=1; //关第一个数码管这样进行动态显示P1=led_segment[dis[1]];led2=0;delay(1);led2=1;P1=led_segment[dis[0]];led3=0;delay(1);led3=1;}void data_pro(void) //数据处理子程序{dis[2]=ad_data/51; //取整dis[4]=ad_data%51; //取余dis[4]=dis[4]*10;dis[1]=dis[4]/51; //取第一位小数dis[4]=dis[4]%51;dis[4]=dis[4]*10;dis[0]=dis[4]/51; //取第二位小数//取整为什么要/51呢?因为接进来的是一个256内的数//前面可知模拟电压范围为0-5V,所以最小分辨率为5/256=1/51 // 这样就可以将8位二进制数转化为0.00~5.00内的十进制小数了!}设计缺陷:1.精度不高,在2-5V之间精度才能达到98.2%左右。
数字电压表设计

数字电压表设计(选做)利用A/D 转换器得到电压值并显示,实现数字电压表功能。
一、预备知识当前串行A/D 转换器的使用越来越广泛,本设计利用TLC549 串行A/D 转换器转换输入模拟电压,有关TLC549 的详细使用说明见使用手册。
二、设计目的熟悉A/D 转换原理,掌握串行A/D、键盘扫描、LED 显示电路的工作原理及编程方法,提高用户实际应用的能力。
三、设计内容1、设计键盘、LED 显示、A/D 转换电路的原理图;2、设计程序流程图;3、编程调试,利用单片机和TLC549 串行A/D 转换器设计一个数字电压表,能够测量0 到5V 之间的直流电压值,并在LED 上显示。
四、参考接线1、将跳线器插在JP20_2 上,JP21_1 连接左面两脚;2、连接MON51 仿真模块与键盘显示模块的相应的点,如P1.3和DAT,P1.6和CLK,P1.5和CS,P1.4和KEY;3、连接MON51 仿真模块与串行A/D 模块的相应的点,如P1.0接DAT,P1.1接CS,P1.2接CLK;4、IN 接电位器的VW 端,电位器VH 接VCC,VL 接GND,通过调节电位器来调节输入电压的值。
五、流程图开始六、参考代码;*************************;RAM定义BIT_COUNT DATA 07FHTIMER DATA 07EHTIMER1 DATA 07DHDATA_OUT DATA 021HDATA_ZH DATA 020H;*************************;*************************;I/O口定义DAT1 BIT P1.0CS1 BIT P1.1CLK1 BIT P1.2DAT BIT P1.3KEY BIT P1.4CS BIT P1.5CLK BIT P1.6;*************************;*************************;主程序ORG 0000HLJMP STARTORG 0100HSTART:MOV SP,#2FH ;定义堆栈MOV P1,#0AAH ;I/O口初始化;********************;延时约25msMOV TIMER,#50START_DELAY: MOV TIMER1,#255START_DELAY1: DJNZ TIMER1,START_DELAY1 DJNZ TIMER,START_DELAY ;********************MOV DATA_OUT,#0A4H ;复位指令LCALL SENDSETB CSMOV DATA_OUT,#0BFH ;闪烁测试LCALL SENDSETB CSDEL: MOV R7,#100 ;延时5sDEL1: MOV R6,#100DEL2: MOV R5,#244DEL3: DJNZ R5,DEL3DJNZ R6,DEL2DJNZ R7,DEL1MOV DATA_OUT,#0A4H ;复位指令LCALL SENDSETB CSMAIN:LCALL CAIYANG ;采样程序;********************;延时约50msMOV R7,#200DEL4: MOV R6,#125DEL5: DJNZ R6,DEL5DJNZ R7,DEL4;********************;********************;转换电压值MOV B,#51DIV ABMOV R0,AMOV A,BCJNE A,#50,GOONDEC AGOON:MOV B,#5DIV ABMOV R1,A;********************;********************;显示转换电压值MOV DATA_ZH,R0SETB CMOV DATA_ZH.7,CMOV R0,DATA_ZHMOV DATA_OUT,#081H ;下载数据且译码(第二位)LCALL SENDMOV DATA_OUT,R0LCALL SENDMOV DATA_OUT,#080H ;下载数据且译码(第一位)LCALL SENDMOV DATA_OUT,R1LCALL SENDSETB CS;********************LJMP MAIN;********************;采样程序CAIYANG:SETB CS1CLR CLK1CLR CS1SETB DAT1MOV BIT_COUNT,#8LCALL SHORT_DELAYCAIYANG_LOOP:SETB CLK1LCALL SHORT_DELAYMOV C,DAT1RLC ACLR CLK1LCALL SHORT_DELAYDJNZ BIT_COUNT,CAIYANG_LOOP SETB CS1RET;********************;********************;发送一个数据到HD7279 SEND:MOV BIT_COUNT,#8CLR CSLCALL LONG_DELAYSEND_LOOP:MOV C,DATA_OUT.7MOV DAT,CSETB CLKMOV A,DATA_OUTRL AMOV DATA_OUT,ALCALL SHORT_DELAYCLR CLKLCALL SHORT_DELAYDJNZ BIT_COUNT,SEND_LOOPCLR DATRET;********************;********************;延时子程序LONG_DELAY: MOV TIMER,#25 ;约50us DELAY_LOOP: DJNZ TIMER,DELAY_LOOPRETSHORT_DELAY: MOV TIMER,#4 ;约8us DELAY_LP: DJNZ TIMER,DELAY_LPRET;********************END;*************************。
数字电压表实验报告

简易数字电压表设计报告姓名:***班级:自动化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软件进行编程。
基于Proteus的数字电压表仿真
锁 存 信 号 与 转 换 启 动 信 号 都 接
A 8C 1 T 9 5 的P .; E 出允许信号接 3 O 输 0
P .;E C 转 换 结束 信 号接 P .; 31 O 3 2
O I O T 接 A 8C 1 P UT ~ U 8 T 9 5 的 0口。 图 1 AD 0 0 结 构 图 C 88
信号, 在其 上跳变 时, 所有 内部寄存器清 0 在其下跳变时, ,
开始进行 AD转换 ; E为输 出允许信号, E I , O O = 时 允许输 出。O T ~ U 8为数据输 出线 ; U 10 T
在 Poe s rt 软件 中设 置 A 8C 1 片 机 的 晶振 频 率 为 u T95 单
1 z 2MH 。本电路 E 接高电平,没有扩展片外 R M。 A O
A 8 C 1 P 端 口作为四位 L D 数码管动态显示的段 T95 的 1 E 码控制,24 P . P. 2 ~ 7引脚作为四位 L D数码管动态显示的 E 位码控制 。 D A、 D 、 D C模拟通道地址线全接地 , A D AD B A D 即 选 中 模 拟 输 入 通 道 I ;V e N0 r f ()5 += V,V e (: ;时钟信号外接 rf . 0 ) 5k z的方波信 号; DC 8 8的地址 0H A 00 一 一
电压表 工作过程 , 效果 良好 。 关键词 数字 电压表 A D转换 仿真 ・
文章编号 :0 27 6 ( 0 0 0 —160 10 .6 12 1 )60 2 .1
二、 数字 电压表 的软件设计 系统复位状态 , 初始化单片 机,初始化 A C 8 8的启动地 D 00 址, 数码管显示关闭, 开始启动 A
16 2
基于单片机的数字电压表设计与仿真
基于单片机的数字电压表设计与仿真杨建成【摘要】The complex structure, low precision and high price of hardware-only digital voltmeter and high frequency of use in daily usage result in frequent damage and high failure rate, which bring a lot of inconvenience. The combination method of AT89C52 single chip microcomputer and ADC0809 analog-to-digital conversion is adopted in the design of a digital voltmeter with high precision. A lot of Proteus simulation experiments are made, and the measurement results which the ordinary pure hardware digital voltmeter can not achieve are obtained. The experimental results show that the digital voltmeter using the combination method of software and hardware has the advantages of simple structure, high accuracy and low failure rate.%由于纯硬件数字电压表结构复杂,测量精度低,价格高,而在日常使用中,使用频率高,导致万用表经常损坏,故障率高,给使用和维修带来很多不便.为了设计一种高精度数字电压表,采用AT89C52单片机和ADC0809模/数转换相结合的方法,做了大量Proteus仿真实验,获得了普通纯硬件数字电压表无法达到的测量效果.实验结果证明,使用软硬件相结合设计的数字电压表,具有结构简单,测量精度高,故障率低等功能.【期刊名称】《现代电子技术》【年(卷),期】2012(035)021【总页数】3页(P170-172)【关键词】数字电压表;测量精度;AT89C52;ADC0809【作者】杨建成【作者单位】台州学院物理与电子工程学院,浙江台州 318000【正文语种】中文【中图分类】TN02-34;TP2730 引言在电子测量中,电压值的测量显得尤其重要[1]。
基于51单片机的数字电压表仿真设计
本 电路 E A接 高 电平 , 有 扩 展 片外 R M。 没 O
1 系统概 述
1 1 设 计 任 务 .
22 A D转 换 电路 的接 口设 计 . /
A D转换器采 用集成 电路 A C 88 D 0 0 / D 0 0 。A C 88具有 8 路模拟量输入信 号 I0一I7 1 N N ( ~5脚 、6—2 2 8脚 ) 地址线 , C B、 ( 3~ 5脚 ) 定哪 一路模拟 输人 信号进 行 A D转 、 A2 2 决 / 换 , 电路将地址线 C B A均接地 , 本 、、 即选择 0号通道输入模
2 数 字 电压 表 的 P o u r  ̄ s软件 仿真 电路设计
待测电压输入信号在 A C 88芯片承受的最大工作 电 D 00
压范围内 , 经过模/ 数转 换 电路 实现 A D转换 , / 通过单 片机
控制电路进行程序数 据处理 , 然后 通过七 段译码/ 驱动显示 电路实现数码管显示输入电压。
21 年第2 01 期
文 章 编 号 :64 47 (0 10 .0 60 17 -5 8 2 1 )20 4 —2
山西 电子技 术
应 用 实践
基于5 片机 的数 字 电压表 仿 真设 计 1单
刘敏娜 ,潘宏侠 ,王 乔
( 中北大 学 机械 工程 与 自动化 学院 , 山西 太原 00 5 ) 30 1
A 8 C 1 片机 、 D 0 0 、4 S4 L D数 码 管 等 J T9 . 单 5 A C 88 7 L7 、 E 。
O 引言
随着 电子科学技术的发展 , 电子测量成为广大 电子工作 者必须掌握 的手段 , 测量 的精度 和功能 的要 求也越 来越 对 高, 而电压的测量甚为突 出, 因为 电压的测 量最为普遍 。数
三位半数字直流电压表设计multisim
三位半数字直流电压表设计multisim多位半数字直流电压表是一种能够测量电路中直流电压的仪器。
它一般由数码显示部分和模拟-数字转换部分组成。
在Multisim中,我们可以通过建立电路模型来设计并模拟一个三位半数字直流电压表。
我们需要选择合适的元件来构建电路模型。
在三位半数字直流电压表中,最重要的元件是模数转换器(ADC)和显示部分。
在Multisim 中可以通过搜索栏找到这些元件并将它们添加到工作区。
在电路模型中,我们需要引入一个待测电路的输入信号,并连接到ADC的输入引脚上。
可以选择一种直流电源作为输入信号,并使用电阻来限制电流大小,以防止ADC被烧坏。
同时,需要为ADC提供一个参考电压,该电压与输入电压的量程相关。
ADC会将模拟信号转换为数字信号,并输出给显示部分。
在显示部分,我们可以选择七段数码管来显示数字。
在Multisim中,可以找到七段数码管的元件,并将其添加到工作区。
将ADC的输出和数码管的输入进行连接。
在Multisim中,可以使用导线工具将两者连接起来。
此外,为了显示多个数字,可以选择多个数码管,并通过逻辑电路将它们连接在一起。
在设计电路模型时,需要注意以下几点:1.选择合适的ADC和七段数码管。
ADC的位数决定了电压的精确度,而七段数码管的个数决定了显示的范围。
2.为ADC提供合适的参考电压。
参考电压的选取需要根据待测电路的电压范围来确定。
3.使用合适的电阻来限制输入电流,以保护ADC不受损坏。
4.在连接元件时,要确保正确地连接输入和输出引脚,以便电路正常工作。
完成电路模型的设计后,可以进行仿真。
在Multisim中,可以通过点击“仿真”按钮启动仿真过程。
仿真过程将模拟电路中的信号变化,并将结果显示在数码管上。
通过以上步骤,我们可以在Multisim中设计一个三位半数字直流电压表。
设计完成后,可以通过仿真来测试其在不同电压下的显示情况,以验证电路的正确性和稳定性。
总结起来,使用Multisim来设计一个三位半数字直流电压表需要选择合适的元件,构建电路模型,并进行仿真。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
- 1 - NANHUA University 电子技术 课程设计说明书
设计题目: 数字电压表设计 专 业: 电气工程及其自动化 年 级: 08级 学 号: 姓 名: 指导教师: 李可生
2010年 1 月 8 日 - 2 -
引言 数字电压表(Digital Voltmeter)简称DWM,作为智能仪表的一种,他是采用数字化测量技术,把连续的模拟量(直流输入电压)换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低、不能满足数字化时代的需求,采用单片机的数字电压表,有精度高,抗干扰能力强,可扩展性强、集成方便,还可以与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子与电工测量、工业自动化仪表、自动测试系统等智能化测量领域。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
本次课程设计采用的是ICL7106双积分AD转换器、四异或门CC4070、七段数码管等器件组成的一个测量范围分5档 200mV 2V 20V 200V 1000V,测量速率 2.5次/秒,输入阻抗 Ri=10MΩ,显示位数为三位半的数字电压表。
关键字:ICL7106双积分AD转换器、数字电压表、显示位数为三位半 - 3 -
1 设计内容和要求 本次设计是通过CC7106双积分AD转换器来实现数字电压表测量功能的。 1.1设计内容 本次设计主要是设计一个测量范围分5档 200mV 2V 20V 200V 1000V,测量速率 2.5次/秒,输入阻抗 Ri=10MΩ,显示位数为三位半的数字电压表。
1.2 设计要求 1、画出数字电压表的电路原理图,计算各个元件的参数值; 2、将设计过程写成课程设计报告。
2 设计电路
由于ICL7106的集成度比较高,故此次的电路比较简单,除了AD转换电路之外,
就只有基准电压源、量程电路、时钟电路、小数点驱动电路、液晶显示电路。具体电路如下介绍。
2.1 系统框图 - 4 -
2.2电路总图 - 5 -
2.3 基本原理 CC7106是双积分式A/D转换器,双积分就是在一个测量周期内要进行两次积分:首先,对被测电压Vx进行定时积分,然后对基准电压VREF进行定值积分。通过两次积分比较,将Vx变换成与之成正比的时间间隔;然后,在这个时间间隔内对固定频率的时钟脉冲计数,计数的结果正比于被测电压的数字量。按照整体原理图安装好电路后,接入正负电源,先调节电位器RP使基本量程为200mV时的基准电压VREF=100mV,然后在电压表输入端Vx接入被测直流电压,通过CC7106的双积分作用进行计数,即对由模拟量转换的数字量进行相应的计数,并且将结果送液晶显示器进行显示,最终获得待测电压的电压值。主要原理如下:OSC1、OSC2和OSC3是内部时钟的外接电阻和电容引脚;TEST是数字逻辑地端;VRH和VRL是参考电压的输入端,参考电压决定着AD转换器的灵敏度,它是由UDD分压而来,调节R分压比可调节灵敏度(调满);两个CR脚是基准电容的外接引脚;COM端是模拟信号公共端;AZ、BUF和INT分别是自动调零端、缓冲控制端和积分器输出端;U+和U-为电源端;IN+和IN-为待测信号输入端。
R1、C1分别为振荡电阻与振荡电容。R2与电位器RP构成基准电压分压器,RP宜采用精密多圈电位器,调整RP使UREF=UM/2=100.0mV,满量程即定为200mV,二者呈1∶2的关系。R3、C3为模拟输入端高频阻容式滤波器,以提高仪表的抗干扰能力。C2、C4分别为基准电容和自动调零电容。R4、C5依次为积分电阻和积分电容。仪表采用9V叠层电池供电,测量速率约2.5次/秒。IN-端、UREF- 端、COM端互相短接。
对于CC7106,OSC1至OSC3为时钟振荡器的引出端,主振频率fosc由外接R1C1的值决定,即
11f0.45/OSCRC CC7106计数器的时钟脉冲fcp是主振频率fosc经4分频后得到的,因此
11110.45ff44CPOSCRC
设CC7106一次A/D转换所需时钟脉冲总数N为4000,而一次转换所需时间T=N/fcp=4N/fosc。则时钟脉冲频率fcp由T=N/fcp=4N/fosc式可得fcp=N/T10Khz,因而主振频率为fosc=4fcp=40Khz,因此可以算出R1、C1的值。若取C1=100pF,则R1=(0.45/C1)fosc112.5k,取标称值120k。
积分元器件R4、C5及自动调零电容C4的取值分别为R4=56k,C5=0.22uF,C4=0.47uF。R2和RP组成基准电压的分压电路。其中,RP一般采用精密多圈电位器。改变RP的值可以调节基准电压VREF的值。R3、C3为输入滤波电路。电源电压取+9V,C2取0.1uF。 七段数码管和ICL7106的输出端对应相连,其中AB4和POL是负责对应的二分之一位的数码管,其他三个七段数码管则与对应的引脚相接。小数点引脚则与对应的小数点驱动电路连接。 - 6 -
3 电路简介 3.1 电路组成 本次设计的电路有AD转换电路、量程电路、时钟电路、小数点驱动电路、液晶显示电路等。其中AD转换电路在ICL7106芯片中就已经完成。
3.2 量程电路
由于基本量程UM=200mV,按照下图配置一组分压电阻,组成电阻衰减网络通过手动就可以得到量程从 ±200.0mV 至 ±1000V 的多量程电压表。该表的输入阻抗
iR=10M,各档衰减后的电压xV与输入电压iV的关系为xV=iV(xR/iR) - 7 -
3.3 时钟电路 T=N/CPf=4N/OSCf 设CC7106一次A/D转换所需时钟脉冲总数N为4000
CPf=N/T10Khz
OSCf=4CPf=40Khz,因此可以算出1R、1C的值。若取1C=100pF,则
1R=(0.45/1C)OSCf
112.5k,取标称值120k。
左边的三个引脚就是与ICL7106的OSC1至OSC2为时钟振荡器的引出端相连接,组成时钟振荡电路。 - 8 -
3.4 小数点驱动电路 1R、2R、3R与异或门CC4070及开关等组成的电路用来驱动和控制小数点。
其中:J、K、L分别为七段数码管的小数点驱动信号;A、B;C、D;E、F分别为异或门输入端。
3.5 七段数码管电路 - 9 -
此即为三位半数字电压表的数码显示管。DS1为半位,即只可显示0和1,还可显示电压的极性。D2-D4就是3个七段数码管,都可以显示从0-9的计数。小数点的驱动信号由小数点驱动电路给予。
4 器件简介 4.1 双积分AD转换电路 数字电压表的双积分AD转换工作原理就是只在一个测量周期内,先对被测电压进行定时积分,在对基准电压进行定值积分,通过积分比较,确定被测电压值正比于时钟脉冲计数量。 主要分为①清零②对被测电压进行定时积分③对基准电压进行定值积分。 而本次设计所采用的双积分AD转换器是ICL7106。ICL7106是美国Intersil公司专为数字仪表生产的数字仪,满幅输入电压一般取200mV或2V。该芯片集成度高,转换精度高,抗干扰能力强,输出可直接驱动LCD液晶数码管,只需要很少的外部元件,就可以构成数字仪表模块。其管脚排列图如下图所示: - 10 -
其中:COM:为模拟信号的公共端,简称模拟地。使用时应与IN_、UREF端短接。 TEST:是测试端,该端经内部500欧姆电阻接数字电路的公共端(GND),因二者呈等电位,故亦称作数字地。该端有两个功能: ① 作测试指示,将它接U+是LCD显示全笔段1888,可检查显示器有无笔段残缺现象; ② 作为数字地供外部驱动器使用,来构成小数点及标识符的显示电路。 A1-G1、A2-G2、A3-G3、AB4分别为个位、十位、百位、千位的笔段驱动器,接至相应笔段电极。千位的B、C段在LCD内部连通。当计数值N>1999时显示器溢出,仅千位显示“1”,其余位消隐,以此表示仪表超量程(过载溢出)。 POL 为负极性指示的驱动端。 BP 为LCD背面公共电极的驱动器,简称“背电极”。 OSC1-OSC3 为时钟振荡器引出端,外接阻容元件可构成两极反相式阻容振荡器。 UREF+、UREF- 分别为基准电压的正、负端,利用片内U+和CMOS之间的+2.8基准电压源进行分压后,可提供所需UREF值,亦可外选基准。 CREF+、CREF- 是外接基准电容端。 IN-和IN+为模拟电压的正、负输入端。 ICL7106的性能特点如下: (1)+7V~+15V单电源供电,可选9V叠层电池,有助于实现仪表的小型化。低功耗(约16mW),一节9V叠层电池能连续工作200小时或间断使用半年左右。 (2)输入阻抗高(1010Ω)。内设时钟电路、+2.8V基准电压源、异或门输出电路,能直接驱动3½位LCD显示器。 (3)属于双积分式A/D转换器,A/D转换准确度达±0.05%,转换速率通常选2次/秒~5次/秒。具有自动调零、自动判定极性等功能。通过对芯片的功能检查,可迅速判定其质量好坏。 (4)外围电路简单,仅需配5只电阻、5只电容和LCD显示器,即可构成一块DVM。其抗干扰能力强,可靠性高。 ICL7106内部包括模拟电路和数字电路两大部分,二者是互相联系的。一方面由控制逻辑产生控制信号,按规定时序将多路模拟开关接通或断开,保证A/D 转换正常进行;另一方面模拟电路中的比较器输出信号又控制着数字电路的工作状态和显示结果。