数字电压表电压表实验报告

合集下载

真有效值数字电压表-总结

真有效值数字电压表-总结

2014湖南大学电子设计竞赛第一次校内赛赛题真有效值数字电压表一、设计任务设计并制作一台数字真有效值电压表。

二、要求1、基本要求(1)真有效值电压测量:可测量频率范围在0Hz~10kHz频率范围的单频信号或合成信号的电压有效值,测量相对误差≤0.5%+最低位2个字。

(2)测量量程:分200mV、2V、20V三档,可用手动切换量程。

(3)测量结果显示:采用LED或LCD显示十进制数字,三位半数显(0000-1999)(4)输入电阻≥100kΩ。

(5)具有输入过压保护功能。

(6)单电源供电,供电电源电压9V。

2、提高部分(1)扩展频率测量范围为0Hz~100kHz。

(2)增加平均值测量功能。

(3)测量误差降低为0.1%+最低位2个字。

(4)自动量程切换功能。

(5)其他。

设计分析一、对题目的理解1. 真有效值的概念、实现方法及分析(1) 对有效值的理解真有效值不是针对正弦信号定义的,所有电信号都有其有效值。

从物理学的角度而言,就是电流通过物体做的功(发热)等效。

所以在此处不能用检测峰值或平均值通过转换计算得到,而是要通过采样,按有效值的定义,通过离散化计算得到。

检峰或平值值换算得到是针对特定的周期性波形,如正弦波。

而本题要求并没有定义是正弦波。

(2) 有效值的计算有效值计算式:积分部分可通过离散化计算。

设等时间间隔δ采样,在0至T采样时间采样N点,则连续积分可以用离散化公式进行计算:从中可得到:(3) 采样时间计算对误差的影响以单位幅值正弦波为例,分析积分时间及开始程分时刻对计算的影响。

设积分时间为T,初始相位为φ,则对应的有效值的平方为讨论:(a) 当采样时长T为周期T0的整数倍时,有:从中看出,采样后的计算结果与初如采样位置没有相关性。

(b) 当采样时长T不为周期T0的整数倍时,设T=nT0+ΔT0有:与周期整数倍采样相比,产生的偏差为:将T=nT0+ΔT0 和ω=2π/ T0代入,有:两次等时间采样,不考虑采样时间为周期的整数倍时,可能产生的最大读数偏差为:从中可以评估不做周期测量时,要达到误差要求最少的采样周期数。

数字电压表实验报告

数字电压表实验报告

简易数字电压表设计报告姓名:***班级:自动化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软件进行编程。

数字电压表实验报告模板

数字电压表实验报告模板

《单片机课程设计》设计报告设计题目:数字电压表的设计班级学号:50809xx姓名:xxx设计时间:2010-12-28备注:目录1.引言 (2)2.概述··22.1实验要求 (2)2.2实验目的 (2)2.3 实验器材 (2)3.总体设计方案 (3)3.1系统的总体结构及实验原理 (3)3.2芯片的选择 (4)3.3 ADC0809 的主要性能指标 (4)4.硬件电路设计 (6)4.1 AT89S52 单片机最小系统 (6)4.1.1 AT89S52各引脚及其引脚功能的实现 (6)4.2 ADC0809 与AT89S52 单片机接口电路设计 (7)4.2.1ADC0809和AT89S52单片机接口电路的引脚说明 (8)4.2.2ADC0809与AT89S52单片机的连接与控制的实现 (9)4.3显示电路与AT89S52 单片机接口电路设计 (10)4.3.1显示电路的组成 (11)4.3.2显示电路和AT89S52接口电路的引脚说明 (12)4.3.3显示电路与AT89S52的连接与控制的实现 (12)5.软件设计 (13)5.1主程序流程图 (14)5.1.1 主程序说明 (15)5.2 ADC0809 电压采集程序框图 (16)5.2.1ADC0809电压采集程序说明 (17)5.3显示程序框图 (18)5.3.1显示程序说明 (19)6.调试与测量结果分析 (20)6.1调试和仿真环境 (20)6.2程序调试 (20)6.3 仿真结果 (22)6.4 实验结果分析 (23)7.实验总结和实验收获 (24)8.程序清单和系统原理图(附录) (25)8.1(附录一)程序清单 (25)8.2 (附录二)系统原理图 (26)1.引言本次课程设计要求完成是数字电压表的设计,随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。

数字电压表实验总结

数字电压表实验总结

数字电压表实验总结
本文旨在介绍一项实验,即使用数字电压表测量各种电路的电压。

此实验的目的旨在使参与者了解数字电压表的操作流程,以及如何对数字电压表进行有效的测量。

实验所用的仪器包括:数字电压表,电源,电阻,电容,示波器,示波器线缆和调制器等。

为了方便测量,实验组先行将这些仪器按照一定的规律连接起来。

实验中,实验组首先拆开数字电压表,仔细研究其内部外部组件,对每一部分进行了详细的解释。

实验组针对数字电压表进行了多次实际测量,试图发现各种规律,比如在测量不同电表的电压时,可以用更少的电量来实现,这样可以节约一定的实验时间。

另一方面,实验还测量了不同电阻和电容等元件,并且用示波器线缆将这些结果传送到调制器中,实现了图像的实时显示,从而更加形象地观察到测量的电压变化情况。

通过本实验,实验组的参与者能够更加熟练地操作数字电压表,掌握数字电压表的原理,以及熟悉电压测量的过程。

实验结束时,实验组的参与成员也对数字电压表有了更加深入的理解,并且能够准确判断在实际工作中可能出现的问题,并采取相应的措施进行维护和维修。

总之,本次实验对用数字电压表进行测量工作有着十分重要的意义。

不但能够使实验组成员学会正确操作数字电压表;而且了解实验中可能出现问题的解决办法,以及如何利用示波器线缆和调制
器作图显示实验结果。

因此,本次实验取得了一定的成果,为今后进行类似实验提供了一定的参考价值。

综合实验三 位直流数字电压表

综合实验三    位直流数字电压表

综合实验三213位直流数字电压表一、实验目的 1、了解双积分式A / D 转换器的工作原理2、熟悉213位A / D 转换器CC14433的性能及其引脚功能3、掌握用CC14433构成直流数字电压表的方法二、实验原理直流数字电压表的核心器件是一个间接型A / D 转换器,它首先将输入的模拟电压信号变换成易于准确测量的时间量,然后在这个时间宽度里用计数器计时,计数结果就是正比于输入模拟电压信号的数字量。

1、V -T 变换型双积分A / D 转换器图3-1是双积分ADC 的控制逻辑框图。

它由积分器(包括运算放大器A 1 和RC 积分网络)、过零比较器A 2,N 位二进制计数器,开关控制电路,门控电路,参考电压V R 与时钟脉冲源CP图3-1 双积分ADC 原理框图转换开始前,先将计数器清零,并通过控制电路使开关 S O 接通,将电容C 充分放电。

由于计数器进位输出Q C =0,控制电路使开关S 接通v i ,模拟电压与积分器接通,同时,门G 被封锁,计数器不工作。

积分器输出v A 线性下降,经零值比较器A 2 获得一方波v C ,打开门G ,计数器开始计数,当输入2n个时钟脉冲后t =T 1,各触发器输出端D n-1~D O 由111…1回到000…0,其进位输出Q C =1,作为定时控制信号,通过控制电路将开关S转换至基准电压源-V R ,积分器向相反方向积分,v A 开始线性上升,计数器重新从0开始计数,直到t =T 2,v A 下降到0,比较器输出的正方波结束,此时计数器中暂存二进制数字就是v i 相对应的二进制数码。

2、213位双积分A / D 转换器CC14433的性能特点 CC14433是CMOS 双积分式213位A / D 转换器,它是将构成数字和模拟电路的约7700多个MOS 晶体管集成在一个硅芯片上,芯片有24只引脚,采用双列直插式,其引脚排列与功能如图18-2所示。

图3-2 CC14433引脚排列引脚功能说明:V AG (1脚):被测电压V X 和基准电压V R 的参考地V R (2脚):外接基准电压(2V 或200mV )输入端V X (3脚):被测电压输入端R 1(4脚)、R 1 /C 1(5脚)、C 1(6脚):外接积分阻容元件端C 1=0.1μf (聚酯薄膜电容器),R 1=470K Ω(2V 量程);R 1=27K Ω(200mV 量程)。

数字电压表实验总结

数字电压表实验总结

数字电压表实验总结
本次实验主要以数字电压表为实验工具,针对不同电压信号的产生与检测,以及电压表的基本性能进行实验,以评价数字电压表的设计和检测性能,实现对数字电压表的准确性和稳定性的评估。

一、测试条件
实验中,所用数字电压表采用的是基本单元,即被测试的数字电压表的最小量程为1V。

实验的温度环境控制在室温范围内,湿度控制在一定范围内,实验现场保持安静,不受外部干扰。

实验中,根据实验原理,采用的是多数据范围的电压信号,利用数字电压表测量多种电压信号的幅值与频率;同时,采用最大电压表量程和标准电压源,分别测量和比较电压表的精确度,以检查电压表的准确性和重复性,以获得关于电压表的实验性能结果。

二、实验结果
1、电压检测
实验结果表明,该数字电压表的额定测量范围为DC 0-200V,最大量程可达2000V,具有良好的测量精度:±(0.5%FS±0.3)。

其测量结果偏离实际电压值范围在±1V以内,判断为精度良好。

2、稳定性
实验结果表明,该数字电压表的稳定性良好,其误差不会随时间变化而变化。

在实验中,数字电压表以500V/分钟的速度从0V至200V,其结果显示,在设定的100S的测试时间内,其稳定性偏差小于1V。

三、实验总结
本次实验的总体结论是,基于数字电压表的测量精度和重复性等性能指标,可以精确地测量电压信号的幅值与频率,也能有效检测电压波动并追踪其变化,且具有良好的稳定性。

从实验结果可以认为,该数字电压表的精确度较高,准确度足够,稳定性良好,可重复使用,符合实验的要求。

实验一万用表毫伏表的使用

实验一万用表毫伏表的使用

实验一数字万用表、交流毫伏表及其使用一.实验目的:1.掌握万用表测量电阻、测量交直流电压的过程及测量数据的处理方法。

2.掌握毫伏表的使用方法。

3.了解毫伏表的工作频率极限。

4.学会毫伏表使用前的调零和校正。

二.实验仪器及材料:1.数字万用表2.WYK直流稳压电源3.色环电阻4.DF2170A毫伏表5. SFG-1003信号发生器三.实验原理:1、数字万用表数字万用表,采用9V叠层电池供电,整机功耗约20mW;采用LCD液晶1位万用表。

核心也是直流数字显示数字,最大显示数字为±1999,因而属于32电压表DVM(基本表)。

它主要由外围电路、双积分A/D转换器及显示器组成。

其中,A/D转换、计数、译码等电路都是由大规模集成电路芯片构成的。

(1)直流电压测量电路图1为数字万用表直流电压测量电路原理图,该电路是由电阻分压器所组成的外围电路和基本表构成。

把基本量程为200mV的量程扩展为五量程的直流电压挡。

图中斜线区是导电橡胶,起连接作用。

图1 数字万用表直流电压测量电路原理图(2)交流电压测量电路图2为数字万用表交流电压测量电路原理图。

由图可见,它主要由输入通道、降压电阻、量程选择开关、耦合电路、放大器输入保护电路、运算放大器输人保护电路、运算放大器、交-直流(AC/DC)转换电路、环形滤波电路及ICL7l06芯片组成。

图中,C1为输入电容。

VD11、VD12是C)的阻尼二极管,它可以防止C1两端出现过电压而影响放大器的输入端。

R21是为防止放大器输入端出现直流分量而设计的直流通道。

VD5、VD6互为反向连接,称为钳位二极管,起“守门”作用,防止输入至运算放大器062的信号超过规定值。

运算放大器062完成对交流信号的放大,放大后的信号经C5加到二极管VD7、VD8上,信号的负半周通过VD7,正半周通过VD8,完成对交流信号进行全波整流。

经整流后的脉动直流电压经电阻R26、R31和电容C6、C10组成的滤波电路滤波后,在R27、RP4上提取部分信号输人至基本表的输人端IN+。

数字电压表实验报告

数字电压表实验报告

数字电压表实验报告数字电压表实验报告引言:数字电压表是一种用于测量电压的电子仪器,它通过将电压信号转换为数字形式来显示测量结果。

本实验旨在通过使用数字电压表来测量不同电压信号,并探究其测量原理和使用方法。

实验目的:1. 理解数字电压表的工作原理;2. 学习使用数字电压表测量直流电压和交流电压;3. 掌握数字电压表的使用技巧。

实验器材:1. 数字电压表;2. 直流电源;3. 交流电源。

实验步骤:1. 将数字电压表与直流电源连接,调整电源输出电压为5V;2. 打开数字电压表,选择直流电压测量模式;3. 将数字电压表的测量引线分别与电源的正负极连接;4. 观察数字电压表的显示结果,并记录测量数值;5. 重复步骤1-4,将电源输出电压调整为不同数值,如10V、15V等,记录测量结果。

实验结果:在实验过程中,我们使用数字电压表测量了不同电压信号,并记录了测量结果。

通过分析实验数据,我们发现数字电压表能够准确地测量直流电压,并显示出相应的数值。

在测量过程中,我们注意到数字电压表的显示屏幕上有一个小数点,用于表示小数位数。

当电压信号较小时,小数点会显示更多的位数,以提高测量精度。

此外,我们还发现数字电压表的测量结果具有一定的误差,这可能是由于仪器本身的精度限制或测量过程中的误差引起的。

讨论与分析:通过本次实验,我们深入了解了数字电压表的工作原理和使用方法。

数字电压表通过将电压信号转换为数字形式,并通过显示屏幕上的数字来表示测量结果。

在测量直流电压时,数字电压表能够提供较高的测量精度,并且可以根据电压信号的大小自动调整小数位数。

然而,在测量交流电压时,由于交流电压的波动性,数字电压表的测量结果可能会有一定的误差。

结论:本次实验通过使用数字电压表测量不同电压信号,深入了解了数字电压表的工作原理和使用方法。

我们发现数字电压表能够准确地测量直流电压,并提供较高的测量精度。

然而,在测量交流电压时,由于交流电压的波动性,数字电压表的测量结果可能会有一定的误差。

北邮数电实验——简易数字电压表报告

北邮数电实验——简易数字电压表报告

数字电路与逻辑综合实验报告题目:简易电压表设计学院:电子工程学院专业:光电信息科学与工程班级:20132112学号:20132111姓名:一、 实验任务要求设计并实现一个简易数字电压表, 要求使用实验板上的串行 AD 芯片 ADS7816。

基本要求:1、测量对象:1-2 节干电池。

2、AD 参考电压:5V 。

3、用三位数码管显示测量结果, 保留两位小数。

4、被测信号超过测量范围有溢出显示并有声音提示。

5、按键控制测量和复位。

提高要求:1、能够连续测量。

2、自拟其他功能。

二、设计思路利用ADS7816作为电压采样端口,FPGA 作为系统的核心器件,用LED 进行数码显示,把读取的13位二进制数据转换成便利于输出3位十进制BCD 码送给数码管。

采用FPGA 芯片作为系统的核心器件,负责ADS7816的A/D 转换的启动、地址锁存、输入通道的选择、数据的读取。

同时,把读取的13位二进制数据转换成便于输出3位十进制的BCD 码送给数码管,以显示当前测量电压值。

三、 总体框图数字电压表整体设计框图,如下图所示,数字电压表系统由A/D 转换模块、FPGA 控制模块、数码显示模块三部分构成。

FPGA 控制模块控制外部A/D 转换器自动采样模拟信号,通过A/D 芯片转换为数字信号,再由FPGA 控制模块控制数码管动态扫描向外部数码管显示电路输出数据。

四、模块设计 1、A/D 转换模块(1)ADS7816工作原理ADS7816的工作时序图如图所示。

在ADS7816的工作时序中,串行时钟DCLK 用于同步数据转换,每位转换后的数据在DCLK 的下降沿开始传送。

因此,从Dout(数字数据输出引脚)引脚接收数据时,可在DCLK 的下降沿期间进行,也可以在DCLK 的上升沿期间进行。

通常情况下,采用在DCLK 的上升沿接收转换后的各位数据流。

CS 的下降沿用于启动转换和数据变换,CS 有效后的最初115至2个转换周期内,ADS7816采样输入信号,此时输出引脚Dout 呈三态。

数字电压表实验报告

数字电压表实验报告

数字电压表的综合设计一、设计题目:基于FPGA的数字电压表设计二、设计任务:1、具有0—2.5v的电压量程;2、通过LED灯显示2进制数字量;3、用FPGA设计制作成数字电压表的专用集成芯片,结合LED数码管构成一个能够实时显示的电压表。

三、总体设计框图:1、总体框图22、分模块设计框图:LED数码管显示模块TL549A/D处理模块3、程序代码:查找表程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity chazhaobiao isport(V:in std_logic_vector(7 downto 0);q:out std_logic_vector(11 downto 0));end entity chazhaobiao;architecture behav of chazhaobiao issignal c30,c74,c117,d0,d1:std_logic;signal HB,LB:std_logic_vector(11 downto 0);begin --A/D值的高4位转换成3位BCD码HB<="001001000000" WHEN V(7 DOWNTO 4)="1111" ELSE --2.40 "001000100100" WHEN V(7 DOWNTO 4)="1110" ELSE --2.24"001000001000" WHEN V(7 DOWNTO 4)="1101" ELSE --2.08"000110010010" WHEN V(7 DOWNTO 4)="1100" ELSE --1.92"000101110110" WHEN V(7 DOWNTO 4)="1011" ELSE --1.76"000101100000" WHEN V(7 DOWNTO 4)="1010" ELSE --1.60"000101000100" WHEN V(7 DOWNTO 4)="1001" ELSE --1.44"000100101000" WHEN V(7 DOWNTO 4)="1000" ELSE --1.28"000100010010" WHEN V(7 DOWNTO 4)="0111" ELSE --1.12"000010010110" WHEN V(7 DOWNTO 4)="0110" ELSE --0.96"000010000000" WHEN V(7 DOWNTO 4)="0101" ELSE --0.80"000001100100" WHEN V(7 DOWNTO 4)="0100" ELSE --0.64"000001001000" WHEN V(7 DOWNTO 4)="0011" ELSE --0.48"000000110010" WHEN V(7 DOWNTO 4)="0010" ELSE --0.32"000000010110" WHEN V(7 DOWNTO 4)="0001" ELSE --0.16"000000000000"; --0.00--A/D值低4位变为3位BCD码LB<="000000010101" WHEN V(3 DOWNTO 0)="1111" ELSE --0.15 "000000010100" WHEN V(3 DOWNTO 0)="1110" ELSE --0.14 "000000010011" WHEN V(3 DOWNTO 0)="1101" ELSE --0.13"000000010010" WHEN V(3 DOWNTO 0)="1100" ELSE --0.12"000000010001" WHEN V(3 DOWNTO 0)="1011" ELSE --0.11"000000010000" WHEN V(3 DOWNTO 0)="1010" ELSE --0.10"000000001001" WHEN V(3 DOWNTO 0)="1001" ELSE --0.09"000000001000" WHEN V(3 DOWNTO 0)="1000" ELSE --0.08"000000000111" WHEN V(3 DOWNTO 0)="0111" ELSE --0.07"000000000110" WHEN V(3 DOWNTO 0)="0110" ELSE --0.06"000000000101" WHEN V(3 DOWNTO 0)="0101" ELSE --0.05"000000000100" WHEN V(3 DOWNTO 0)="0100" ELSE --0.04"000000000011" WHEN V(3 DOWNTO 0)="0011" ELSE --0.03"000000000010" WHEN V(3 DOWNTO 0)="0010" ELSE --0.02"000000000001" WHEN V(3 DOWNTO 0)="0001" ELSE --0.01"000000000000" ; --0.00c30<='1' when HB(3 downto 0)+LB(3 downto 0)>"01001" else'0';d1<='1' when HB(3 downto 0)>="1000" and LB(3 downto 0)>="1000" else '0';c74<='1' when HB(7 downto 4)+LB(7 downto 4)>"01001" else'0';d0<='1' when HB(7 downto 4) + LB(7 downto 4) ="01001" else'0';c117<='1' when HB(11 downto 8)+LB(11 downto 8)>"01001" else '0';q(3 downto 0)<=HB(3 downto 0)+LB(3 downto 0)+"0110" whenc30='1' elseHB(3 downto 0)+LB(3 downto 0)+"0110" whend1='1' elseHB(3 downto 0)+LB(3 downto 0);q(7 downto 4)<=HB(7 downto 4)+LB(7 downto 4)+"0111" whenc74='1' and c30='1' elseHB(7 downto 4)+LB(7 downto 4)+"0110" whenc74='1' and c30='0' elseHB(7 downto 4)+LB(7 downto 4)+"0110" whenc74='0' and c30='1' and d0='1' elseHB(7 downto 4)+LB(7 downto 4)+"0001" whenc74='0' and (c30='1'or d1='1') and d0='0' elseHB(7 downto 4)+LB(7 downto 4);q(11 downto 8)<=HB(11 downto 8)+LB(11 downto 8)+"0111" whenc117='1' and c74='1' elseHB(11 downto 8)+LB(11 downto 8)+"0110" whenc117='1' and c74='0' elseHB(11 downto 8)+LB(11 downto 8)+"0001" whenc117='0' and c74='1' elseHB(11 downto 8)+LB(11 downto 8)+"0001" whenc117='0' and c74='0' and (c30='1'or d1='1') and d0='1' elseHB(11 downto 8)+LB(11 downto 8);end ;译码器程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity yima isport(clk:in std_logic;d:in std_logic_vector(11 downto 0);seg: out std_logic_vector(7 downto 0);sel: out std_logic_vector(2 downto 0));end entity yima;architecture behav of yima issignal wei:std_logic_vector(2 downto 0);signal num:std_logic_vector(3 downto 0);signal a:std_logic_vector(2 downto 0);beginnum<=d(3 downto 0) when a="000" elsed(7 downto 4) when a="001" elsed(11 downto 8) ;seg(7)<='0' when wei="011" else'1';wei<="110" when a="000" else"101" when a="001" else"011";sel<=wei;COM1: process(clk)beginif clk'event and clk='1' thena<=a+1;if a="010" then a<="000";end if;end if;end process COM1;COM2: process(num)begincase num iswhen "0000"=>seg(6 downto 0)<="1000000";--0when "0001"=>seg(6 downto 0)<="1111001";--1when "0010"=>seg(6 downto 0)<="0100100";--2when "0011"=>seg(6 downto 0)<="0110000";--3when "0100"=>seg(6 downto 0)<="0011001";--4when "0101"=>seg(6 downto 0)<="0010010";--5when "0110"=>seg(6 downto 0)<="0000010";--6when "0111"=>seg(6 downto 0)<="1111000";--7when "1000"=>seg(6 downto 0)<="0000000";--8when "1001"=>seg(6 downto 0)<="0010000";--9--when "1010"=>seg(6 downto 0)<="1110111";--when "1011"=>seg(6 downto 0)<="1111100";--when "1100"=>seg(6 downto 0)<="0111001";--when "1101"=>seg(6 downto 0)<="1011110";--when "1110"=>seg(6 downto 0)<="1111001";--when "1111"=>seg(6 downto 0)<="1110001";--when others=>seg(6 downto 0)<="0111111";when others=>seg(6 downto 0)<="1000000";end case;end process COM2;end;电压表顶层程序代码:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity dianyabiao isPort (clk : in std_logic; --50m系统时钟din : in std_logic; --(tlc549)串行数据输出端clk_tlc549 : out std_logic;cs_tlc549 : out std_logic; --tlc549的片选信号输入端shift : out std_logic_vector(3 downto 0);--动态扫描时的位选信号cs_led : out std_logic_vector(1 downto 0);--发光二极管及数码管的片选信号输入端dout_led : out std_logic_vector(7 downto 0));--惧的发光器件的信号输出端end dianyabiao;architecture Behavioral of dianyabiao istype state is (st1,st2);signal current_state : state;type state1 is (st0,st1,st2);signal current_state1 : state1;type state2 is (st0,st1,st2,st3,st4);signal current_state2 : state2;signal reg_datain : std_logic_vector(7 downto 0);signal reg_dout : std_logic_vector(15 downto 0);signal dout : std_logic_vector(4 downto 0);signal reg_din : integer range 0 to 80000;signal clk1m,clk1k,clk100 : std_logic;begin--分频部分process(clk) --产生1MHz的频率variable cnt : integer range 0 to 50;beginif clk'event and clk='1' then cnt:=cnt+1;if cnt<50 thenif cnt<25 then clk1m<='0';else clk1m<='1';end if;else cnt:=0;end if;end if;end process;process(clk1m) --产生1KHz的频率variable cnt : integer range 0 to 1000;beginif clk1m'event and clk1m='1' then cnt:=cnt+1;if cnt<1000 thenif cnt<500 then clk1k<='0';else clk1k<='1';end if;else cnt:=0;end if;end if;end process;process(clk1k) --产生100Hz的频率variable cnt : integer range 0 to 10;beginif clk1k'event and clk1k='1' then cnt:=cnt+1;if cnt<10 thenif cnt<5 then clk100<='0';else clk100<='1';end if;else cnt:=0;end if;end if;end process;--tlc549的控制部分process(clk1k)variable cnt : integer range 0 to 7;variable datain : std_logic_vector(7 downto 0);beginif clk1k'event and clk1k='1' thencase current_state iswhen st1=> --将数据进行串并转换cs_tlc549<='0';datain:=datain(6 downto 0)&din; --将读取的数据向高位移位clk_tlc549<='1';current_state<=st2;when st2=>cs_tlc549<='0';clk_tlc549<='0';current_state<=st1;if cnt<7 then cnt:=cnt+1; --读取8位数据else cnt:=0;reg_din<=conv_integer(datain)*195; --每单位数字量乘以系数=当前电压值;reg_datain<=not(datain);end if;when others=>current_state<=st1;end case;end if;end process;--十进制-BCD码转换;process(clk100)variable reg : integer range 0 to 80000;variable d1,d2,d3,d4 : std_logic_vector(3 downto 0);beginif clk100'event and clk100='1' thencase current_state1 iswhen st0=>reg:=reg_din;d1:="0000";d2:="0000";d3:="0000";d4:="0000";current_state1<=st1;when st1=>if reg>9999 then reg:=reg-10000;d1:=d1+1;elsif reg>999 then reg:=reg-1000;d2:=d2+1;elsif reg>99 then reg:=reg-100;d3:=d3+1;elsif reg>9 then reg:=reg-10;d4:=d4+1;else current_state1<=st2;end if;when st2=>reg_dout<=d1&d2&d3&d4;current_state1<=st0;when others=>current_state1<=st0;end case;end if;end process;--动态扫描控制;process(clk1k)beginif clk1k'event and clk1k='1' thencase current_state2 iswhen st0=> --在发光二极管上显示模数转换后的数字量cs_led<="01"; --熄灭数码管shift<="1111";dout<="11111";current_state2<=st1;when st1=> --在数码管的最高位显示数据cs_led<="10"; --熄灭发光二极管shift<="0111"; --最高位数码管显示dout<='0'&reg_dout(15 downto 12); --小数点显示,并且将最高位的数据送给译码器current_state2<=st2;when st2=> --在数码管的次高位显示数据cs_led<="10"; --熄灭发光二极管shift<="1011"; --次高位数码管显示dout<='1'&reg_dout(11 downto 8); --小数点不显示,将次高位的数据送给译码器current_state2<=st3;when st3=> --在数码管的次低位显示数据cs_led<="10"; --熄灭发光二极管shift<="1101"; --次低位数码管显示dout<='1'&reg_dout(7 downto 4); --小数点不显示,将次低位的数据送给译码器current_state2<=st4;when st4=> --在数码管的最低位显示数据cs_led<="10"; --熄灭发光二极管shift<="1110"; --最低位数码管显示dout<='1'&reg_dout(3 downto 0); --小数点不显示,将最低位的数据送给译码器current_state2<=st0;when others=>current_state2<=st0;end case;end if;end process;--**将BCD码进行8段译码(包括小数点)**----**dout(4)代表小数点,低电平点亮**--code1: process (dout,reg_datain)begincase dout(3 downto 0) iswhen "0000"=>dout_led<=dout(4)&"0000001";when "0001"=>dout_led<=dout(4)&"1001111";when "0010"=>dout_led<=dout(4)&"0010010";when "0011"=>dout_led<=dout(4)&"0000110";when "0100"=>dout_led<=dout(4)&"1001100";when "0101"=>dout_led<=dout(4)&"0100100";when "0110"=>dout_led<=dout(4)&"0100000";when "0111"=>dout_led<=dout(4)&"0001111";when "1000"=>dout_led<=dout(4)&"0000000";when "1001"=>dout_led<=dout(4)&"0000100";--"DOUT_LED"送给数码管;whenothers=>dout_led<=reg_datain(7)&reg_datain(0)&reg_datain(1)&reg_datain(2)&re g_datain(3)&reg_datain(4)&reg_datain(5)&reg_datain(6);--"DOUT_LED"送给发光二极管;end case;end process;end Behavioral;四、波形仿真图:五、结论:本次实验达到了实验的基本要求,能够通过调节高精密变阻器实现0—2.5v的电压测量及显示。

数字电压表的设计

数字电压表的设计
2018/10/16 1
3. 数字电压表的测量原理与主要器件性能分析
直流数字电压表的核心器件是一个间接型A / D转换器: 3.1.双积分A/D转换器 1).转换方式 :V-T型间接转换ADC。输入的模拟电压信 号变换成易于准确测量的时间量,然后在这个时间宽度 里用计数器计时,计数结果就是正比于输入模拟电压信 号的数字量。 2).电路结构 :图-1是这种转换器的原理电路, ①积分器A1:定时信号控制开关S2,Qn为不同电平时, 极性相反的输入电压Vx和参考电压 VREF将分别加到积分 器的输入端,进行两次方向相反的积分,积分时间常数 τ=RC。 ②过零比较器A2:确定积分器的输出电压V0过零的时刻, V0≥0时比较器输出VC为低电平;当V0<0时,VC为高电平. 输出信号接至时钟控制门(G)作为关门和开门信号
Vi
8
1
7
2
6
3
5
4
MC1403
Vo GND
4.2. 标准电压源的连接和调整:
插上MC1403基准电源,用标准数字电压表检查输出是否为2.5V,然后 调整10KΩ电位器,使其输出电压为2.00V,调整结束后去掉电源线。
2018/10/16 9
4. 3. 总装测试的方法与步骤:
1)接线:按设计电路接好线路,并插上MC(TC)14433及MC1413等芯片。 2) 通电显示检查:接通+5V、-5V电源及地线,当输入端接地,此时显示 器将显示“000”值,否则,应依次检测电源正负电压,用示波器测量、 观察DS1~DS4 ,Q0~Q3波形,判别故障所在。 3) 电压粗测:调节输入电压VX 的高低,4位输出显示数码应相应变化,然 后进入下一步精调。 4)测量基准校正: 用标准数字万用表(示波器)测量输入电压,调节电位器,使

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

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

自动化与电气工程学院电子技术课程设计报告题目数字电压表的制作专业班级学号学生指导教师二○一三年七月一、课程设计的目的与意义1.课程设计的主要目的,是通过电子技术综合设计,熟悉一般电子电路综合设计过程、设计要求、完成的工作容和具体的设计方法。

2.同时了解双积分式A/D转换器ICL7107的性能及其引脚功能,熟悉集成电路ICL7107构成直流数字电压表的使用方法,并掌握其在电路中的工作原理。

3.通过设计也有助于复习和巩固以往的模电、数电容,达到灵活应用的目的。

在完成设计后还要将设计的电路进行安、调试以加强学生的动手能力。

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

4.利用双积分式A/D转换器ICL7107设计一数字电压表,量程为-1.99—+1.99,通过七段数码管显示。

二、电路原理图数字电压表原理图三、课程设计的元器件1.课程设计所使用的元器件清单:2.主要元器件介绍(1)芯片ICL7107:ICL7107的工作原理双积分型A/D转换器ICL7107是一种间接A/D转换器。

它通过对输入模拟电压和参考电压分别进行两次积分,将输入电压平均值变换成与之成正比的时间间隔,然后利用脉冲时间间隔,进而得出相应的数字性输出。

它的原理性框图如图所示,它包括积分器、比较器、计数器,控制逻辑和时钟信号源。

积分器是A/D转换器的心脏,在一个测量周期,积分器先后对输入信号电压和基准电压进行两次积分。

比较器将积分器的输出信号与零电平进行比较,比较的结果作为数字电路的控制信一号。

时钟信号源的标准周期Tc 作为测量时间间隔的标准时间。

它是由部的两个反向器以及外部的RC组成的。

其振荡周期Tc=2RCIn1.5=2.2RC 。

ICL7106A/D转换器原理图计数器对反向积分过程的时钟脉冲进行计数。

控制逻辑包括分频器、译码器、相位驱动器、控制器和锁存器。

分频器用来对时钟脉冲逐渐分频,得到所需的计数脉冲fc和共阳极LED数码管公共电极所需的方波信号fc。

数字电压表实验报告

数字电压表实验报告

实验五电压表实验1.设计过程:按照“建立项目文件”--“新建VHDL源文件”--“配置管脚”--“编译下载”--“芯片测试”的顺序。

原理图:1.FPGA的系统时钟来自于小脚丫FPGA开发板配置的24MHz时钟晶振,连接FPGA的C1引脚。

2.实验借助FPGA底板自带的ADC模块,具体信息如下:ADC模块的功能时实现模拟信号转换数字信号,主要包含P1(测试点)、Radj1(10K的可调电位器)和U3(8位串行模数转换器ADC081S)。

在不外接其他信号的情况下,旋转电位计,ADC081S的输入电压在0到3.3V之间变化,通过模数转换实现ADC的采样,原理图连接如图所示:3.实验思路如下:1.根据ADC模块的时序图,完成将ADC模块和FPGA引脚连接起来。

时序图如下:2. 根据程序的框图把完整的程序写出来,显示模块和译码模块利用以前写过的进行例化使用。

以下是程序的框图:VHDL 汇编语言如下: 2.总代码: library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity dianyabiao is port( clk: in std_logic;--定义输入和输出 sda: in std_logic; sclk: buffer std_logic; cs: out std_logic; sdata: out std_logic; sck: out std_logic; rck: out std_logic );end dianyabiao;architecture one of dianyabiao is component led_573 --例化port( rst: in std_logic; clk_t_in : in std_logic; sdata: out std_logic; H: in std_logic; ledcode1,ledcode2,ledcode3,ledcode4: in std_logic_vector(6 downto 0); dot: in std_logic_vector(3 downto 0);sda sck cssck: out std_logic;rck: out std_logic);end component;component seg7coderport(data_in: in integer range 0 to 15;seg7_out: out std_logic_vector(6 downto 0));end component;signal ad_phase: integer range 0 to 19;signal clk_t_in: std_logic;signal ad_clk: std_logic;signal ad_out:std_logic_vector(7 downto 0);signal ad:std_logic_vector(7 downto 0);signal data_in1:integer range 0 to 15;signal data_in2:integer range 0 to 15;signal seg1,seg2: std_logic_vector(6 downto 0); --七段码beginu1:seg7coderport map(data_in => data_in1,seg7_out => seg1);u2:seg7coderport map(data_in => data_in2,seg7_out => seg2);u3:led_573port map(rst=>'1',clk_t_in => clk,H => '1',dot => "0000",ledcode1 => seg1,ledcode2 => seg2,ledcode3 =>"1111110",ledcode4 =>"1111110",sdata => sdata,sck => sck,rck => rck);--得到分频时钟,50-20000khz的分频process(clk)variable divcnt: integer range 0 to 1000;beginif clk'event and clk='1' thenif divcnt=1000 thendivcnt:=0;clk_t_in<=not clk_t_in;elsedivcnt:=divcnt+1;clk_t_in<=clk_t_in;end if;end if;end process;--ad模快process(clk_t_in)-- ad_clk<=clk_t_in;beginif clk_t_in'event and clk_t_in = '1' thensclk<=not sclk;if sclk='1' thenif ad_phase = 19 thenad_phase<=0;elsead_phase<=ad_phase+1;end if;end if;if sclk='0' and ad_phase>16 then --保证cs的值cs<='1';elsecs<='0';end if;if ad_phase=3 and sclk='0' then --值的输出ad(7)<=sda;end if;if ad_phase=4 and sclk='0' thenad(6)<=sda;end if;if ad_phase=5 and sclk='0' thenad(5)<=sda;end if;if ad_phase=6 and sclk='0' thenad(4)<=sda;end if;if ad_phase=7 and sclk='0' thenad(3)<=sda;end if;if ad_phase=8 and sclk='0' thenad(2)<=sda;end if;if ad_phase=9 and sclk='0' thenad(1)<=sda;end if;if ad_phase=10 and sclk='0' thenad(0)<=sda;end if;if ad_phase=11 and sclk='0' thenad_out<=ad;end if;end if;end process;process(ad_out) --完成将ad_out的八位输出转化成两位16进制的数begincase ad_out(3 downto 0) is--when "0000"=>data_in1<=0;when "0001"=>data_in1<=1;when "0010"=>data_in1<=2;when "0011"=>data_in1<=3;when "0100"=>data_in1<=4;when "0101"=>data_in1<=5;when "0110"=>data_in1<=6;when "0111"=>data_in1<=7; when "1000"=>data_in1<=8; when "1001"=>data_in1<=9; when "1010"=>data_in1<=10; when "1011"=>data_in1<=11; when "1100"=>data_in1<=12; when "1101"=>data_in1<=13; when "1110"=>data_in1<=14; when "1111"=>data_in1<=15; end case;case ad_out(7 downto 4) is when "0000"=>data_in2<=0; when "0001"=>data_in2<=1; when "0010"=>data_in2<=2; when "0011"=>data_in2<=3; when "0100"=>data_in2<=4; when "0101"=>data_in2<=5; when "0110"=>data_in2<=6; when "0111"=>data_in2<=7; when "1000"=>data_in2<=8; when "1001"=>data_in2<=9; when "1010"=>data_in2<=10; when "1011"=>data_in2<=11; when "1100"=>data_in2<=12; when "1101"=>data_in2<=13; when "1110"=>data_in2<=14; when "1111"=>data_in2<=15; end case;end process;end architecture;3.管脚分配:4.实验现象:旋转电压旋钮,电压从00变化到FF,现象如下面所示:。

数字电压表课程设计报告

数字电压表课程设计报告

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

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

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

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

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

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

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

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

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

数字电压表设计实训报告书

数字电压表设计实训报告书

武汉职业技术学院——电信学院数字电压表设计实训报告书班级:电信09201姓名:范萍萍辅导老师:李军胡光夏李琼一.实验目的:1、通过数字电压表的实习,了管脚的功能。

3、使用单片机﹑模数转换器解各个芯片的工作的原理。

2、学习8051与ADC0809各个﹑数码管等芯片来共同完成电压表的实现,学习各个芯片连接的软件实现以及硬件电路的连接。

二。

使用软件介绍:1.Keil C u Vision 3.protel 99SE2.STC-ISP V29 Beta5: 4.proteus三.实训器材:1).STC 89c52RC单片机 2).4IN1共阳极七段数码管 3).发光二极管 4). 电阻、蜂鸣器、集成块、三极管、电容、实验板6)计算机四.实训要求:1).测量电压范围:0~5V电压2).能够显示测量的电压值,可在四位LED数码管上显示,3).显示精度:0.01V4).测量误差:<=1%五.实验原理:(1).ADC0809模数转换模块:ADC0809是将输入的模拟值转化为8位二进制值输出,也就是对一个模拟量进行量化采用逐次逼近的方法近似为数字量。

1、由于每次都从IN-0口输入电压值,所以其余七个入口都是空置的,所以ADC0809的三个地址输入口要接地。

2、从IN-0口输入的电压值范围0-5V,所以ADC0809采取5V的标准电压,以待量化进行数模转换。

3、ADC0809的工作是通过单片机C51中的程序控制的,当ADC0809的START=1,ALE=1时启动模数转换,此时EOC=0;转化结束后EOC=1,若OE=1,则允许单片机从ADC0809中读取数据,读取结束后,OE=0.4、同时A的10号引脚CLK要接单片机的30号引脚ALE,由于ADC0809的频率一般采用500KHZ左右,单片机30号引脚输出为1MHZ,所以要用74LS74进行二分频。

(2).单片机8051模块:该模块主要是通过程序来实现三个功能:1).控制ADC0809进行模数转换,单片机的P1口和ADC0809的8位输出口相连,来读取数据。

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

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

《单片机原理与接口技术》课程设计报告姓名梁家余学号 0314院系自机学院班级电气三班指导教师黄钺冯维杰王玮2012 年 06月目录4) LED显示器与单片机接口设计 (9)9.程序设计 (11)1)程序设计总方案 (11)2)系统子程序设计 (11)(1)初始化程序 (11)10.仿真 (12)1)软件调试 (12)11.显示结果及误差分析 (13)二、总结 (14)三、参考文献 (15)四、附录 (15)一、单片机数字电压表设计1.设计任务基于MCS-51系列单片机AT89C51,设计一个能测量0~5V直流电压的数字电压表 2.设计要求1)选用A/D转换器ADC0808,测定0——+5V范围内的直流电压值。

2)采集的数据送四位数码管实时显示。

3)@实现多路电压循环测量和循环显示。

4)@实现0——500mA电流的测量和显示。

5)实现功率的测量。

3. 设计思路1)根据设计要求,选择AT89C51单片机为核心控制器件。

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

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

4)LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位4) LED显示器与单片机接口设计 (9)9.程序设计 (11)1)程序设计总方案 (11)2)系统子程序设计 (11)(1)初始化程序 (11)10.仿真 (12)1)软件调试 (12)11.显示结果及误差分析 (13)二、总结 (14)三、参考文献 (15)四、附录 (15)产生。

4.硬件电路设计1)转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量[5]。

单片机研究报告——数字电压表

单片机研究报告——数字电压表

数字电压表单片机课程设计报告姓名:刘俊草班级:10级电气一班学号:2010061189指导教师:杨志帮成绩:日期:2012年6月14日数字电压表电路设计报告一、题目及设计要求采用51系列单片机和ADC 设计一个数字电压表,输入为0~5V 线性模拟信号,输出通过LED 显示,要求显示两位小数.b5E2R 。

二、主要技术指标1、数字芯片A/D 转换技术2、单片机控制地数码管显示技术3、单片机地数据处理技术三、方案论证及选择主要设计方框图如下:1、主控芯片方案1:选用专用转化芯片INC7107实现电压地测量和实现,用四位数码管显示出最后地转换电压结果.缺点是京都比较低,内部电压转换和控制部分不可控制.优点是价格低廉.p1Ean 。

方案2:选用单片机AT89C51和A/D 转换芯片ADC0809实现电压地转换和控制,用四位数码管显示出最后地转换电压结果.缺点是价格稍贵;优点是转换京都高,且转换地过程和控制、显示部分可以控制.DXDiT 。

基于课程设计地要求和实验室能提供地芯片,我选用了:方案2. 2、显示部分方案1:选用4个单体地共阴极数码管.优点是价格比较便宜;缺点是焊接时比较麻烦,容易出错.方案2:选用一个四联地共阴极数码管,外加四个三极管驱动.这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单.RTCrp 。

基于课程设计地要求和实验室所能提供地仪器,我选用了:方案2.四、电路设计原理电压采集模数转换单片机处理数码管显示模拟电压经过档位切换到不同地分压电路筛减后,经隔离干扰送到A/D 转换器进行A/D 转换.然后送到单片机中进行数据处理.处理后地数据送到LED 中显示.同时通过串行通讯与上位通信.硬件电路及软件程序.而硬件电路又大体可分为A/D 转换电路、LED 显示电路,各部分电路地设计及原理将会在硬件电路设计部分详细介绍;程序地设计使用汇编语言编程,利用Keil 和PROTEUS 软件对其编译和仿真.5PCzV 。

数字电压表实验报告

数字电压表实验报告

数字电压表实验报告《数字电压表实验报告》实验目的:通过使用数字电压表,掌握其基本使用方法并了解电压测量的原理。

实验仪器:数字电压表、直流电源、导线等。

实验原理:数字电压表是一种用于测量电压的仪器,它通过将待测电压转换为数字信号并显示在屏幕上,从而实现对电压的测量。

其测量原理是利用电压测量电路将待测电压转换为相应的电流信号,再通过内部的模数转换器将电流信号转换为数字信号,最后通过显示装置显示出来。

实验步骤:1. 连接实验仪器:首先将数字电压表的正负极与待测电路的正负极相连,并确保连接正确无误。

2. 调整量程:根据待测电压的大小,选择合适的量程,并将数字电压表的旋钮调整到相应的量程档位。

3. 测量电压:打开待测电路的电源,观察数字电压表的显示数值,并记录下来。

4. 关闭电源:待测电压测量完成后,关闭待测电路的电源,并拔掉连接线。

实验结果:根据实验结果,我们可以得出待测电路的电压为多少,并且通过对比不同量程下的测量结果,了解数字电压表的量程选择原则。

实验结论:通过本次实验,我们掌握了数字电压表的基本使用方法,并了解了电压测量的原理。

同时,我们也了解了数字电压表的量程选择原则,并且通过实验结果验证了其准确性。

实验中的注意事项:在进行实验时,要注意连接线路的正确性,避免接错极性导致仪器损坏。

同时,在选择量程时要根据待测电压的大小进行合理选择,避免选择错误导致测量不准确。

总结:通过本次实验,我们对数字电压表的使用方法和原理有了更深入的了解,这对我们今后的实验操作和电路调试都有着重要的指导意义。

希望通过不断的实践和学习,我们能够更加熟练地掌握数字电压表的使用技巧,并且在工程实践中能够准确地测量电压并进行相应的调试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i_predot=i_predot/10;//对10取商
}
if(isnegative==1)
str[iSize++]='-';//如果是负数,则在最后加上负号
str[iSize] ='\0';//加上字符串结束标志
p=str+iSize-1;//将P指针指向字符串结束标志之前
for(;p-s>0;p--,s++)//将字符串中存储的数调头
}
i_afterdot=(unsigned long int)f_afterdot;//将小数点后相应位数的数字变为整数
//先将小数点后的数转换为字符串
n=dotsize;
while(i_afterdot>0|n>0)
{
n--;
str[iSize++]=i_afterdot%10+'0';//对10取余并变为ASCII码
iii.数据采集模块
为了提高测量精度,数据采集模块中我们选用数据选择器CD4052,根据输入信号大小的不同进行选通。
iv.电压放大模块
为了提高微小电压(0~1V)的测量精度,我们在待测电源经过选通之后利用小电压运算放大器LM358进行电压的跟随与放大,保持电压的稳定同时使之放大两倍,使得测量数值更加接近真实值并且对于微小电压的测量精度提高了一倍。
{
*s^=*p;
*p^=*s;
*s^=*p;
}
//返回指针字符串大小
return iSize;
}
iii.LCD控制模块
LCD1602时序图:
LCD1602字符对照表:
//函数名:LCD_BUSY_WAIT
//输入参数:无
//描述:LCD忙等待RS--RG13 RW——RG12 E——RG14
//返回值:无
{
TRIS_LCD_DAT=0x00;
PORT_LCD_DAT=cmd;
PORT_LCD_CTL=TRIS_LCD_CTL=0x00;
PORTClearBits(IOPORT_G, BIT_13); //RS=0;
PORTClearBits(IOPORT_G, BIT_12); //RW=0;
PORTSetBits(IOPORT_G, BIT_14); //E=1;
v.单片机模块
本实验中,我们选用了PIC32MX795F512L单片机进行主控。该单片机主频为80MHz。拥有10位AD转换接口,可以满足实验设计中的要求。借助其配件Ethernet Starter Kit可以利用杜邦线与其他实验硬件进行连接。
PIC32MX795F512L 各管脚功能示意图
管脚号
管脚功能
}
i_predot=(unsigned long int)fNum;//将小数点之前的数变为整数
f_afterdot=fNum-i_predot;//单独取出小数点之后的数
//根据设定的要保存的小数点后的位数,将小数点后相应的位数变到小数点之前
for(n=dotsize;n>0;n--)
{
f_afterdot=f_afterdot*10;
2.3-1 系统软件流程图


2.3-2各模块子程序流程图及设计说明
i.AD转换模块
原理图:
//函数名:initADC
//输入参数:AD转换端口
//描述:初始化AD转换
//返回值:无
//===================================================================================
关键词:
PIC32电压表C语言A/D转换电压放大电路
1.方案论证与比较
2.系统设计
2.1 总体设计
2.1.1 原理模块框图
2.1.2 模块工作原理说明
2.2 各模块设计及参数计算
2.3 软件系统设计
2.3-1 系统软件流程图
2.3-2各模块子程序流程图及设计说明
3.系统调调
3.1硬件调试
3.2软件调试
系统对应连线
系统功能
3
I/O-RE5
LED-DB5
控制LED显示屏
4
I/O-RE6
LED-DB6
控制LED显示屏
5
I/O-RE7
LED-DB7
控制LED显示屏
15
GND
地线
接地
20
AN5
CD4052
AD转换输入口
22
AN3
LM358
AD转换输入口
31
GND
地线
接地
36
GND
地线
接地
93
I/O-RE0
xxxxxxxxxxxxxx(内容小4号宋体字)包括各模块设计原理图、理论计算、仿真原理等
2.3 软件系统设计
利用Microchip公司开发的MPLAB软件,我们可以轻松地将C++程序下载到单片机上。程序中应包含一个能够控制显示屏的头文件,一个包含各个所用函数、对于单片机控制的函数的头文件及一个包含主函数的源文件。
AD1CON1bits.ADON = 1; //开启AD转换
}
//函数名:readADC
//输入参数:AD转换端口
//描述:读取AD结果
//返回值:无
//===================================================================================
创新实验报告
项目名称基于PIC32的小量程电压表的设计
项目人员
联系电话
电子邮件
日 期2012年9月4日
摘要
本实验为采用单片机(PIC32MX795F512L)主控的0-3.6V直流电压表。实验中,我们使用微机MPLAB软件将C语言程序输入PIC32位单片机,由MICRO-USB接口对单片机供电,实现对于LED显示屏的控制,同时利控制蜂鸣器确保输入电压幅度在可控范围内,保护单片机。外部电路采用数据选择器(CD4052)与电压放大模块(LM358)的组合,实现对于微小输入电压(0-1V)的放大,从而使电压表对于微小电压的测量精度提高、其理论误差仅约为±1.46mV。使用液晶屏(LED1602)作为显示模块,由单片机控制,实现电压测量结果的显示。
int readADC( int ch)
{
AD1CHSbits.CH0SA = ch; //选择输入引脚
AD1CON1bits.SAMP = 1; //开始转换
while (!AD1CON1bits.DONE); //等待转换完成
return ADC1BUF0; //读取转换结果并返回
}
ii.将浮点数转化为字符型
LED-DB0
控制LED显示屏
94
I/O-RE1
LED-DB1
控制LED显示屏
95
I/O-RG14
LED-
控制LED显示屏
96
I/O-RG12
LED-
控制LED显示屏
97
I/O-RG13
LED-DB5
控制LED显示屏
98
I/O-RE2
LED-DB5
控制LED显示屏
99
I/O-RE3
LED-DB5
控制LED显示屏
//函数名:ftostr
//输入参数:待转换数字,存放字符串,浮点小数后边位数
//描述:将浮点型数据转换为字符串
//返回值:字符串大小
//===================================================================================
PORTSetBits(IOPORT_G, BIT_12); //RW = 1;
//读状态寄存器
do
{
PORTSetBits(IOPORT_G, BIT_14); //E=1;
status=PORT_LCD_DAT;
PORTClearBits(IOPORT_G, BIT_14); //E=0;
} while (status & 0x80); //忙则继续等待
void Write_LCD_Data(INT8U dat)
{
TRIS_LCD_DAT=0x00;
PORT_LCD_DAT=dat;
PORTSetBits(IOPORT_G, BIT_13); //RS=1;
PORTClearBits(IOPORT_G, BIT_12); //RW=0;
3.3软件硬件联调
4.系统指标测试
4.1测试仪器
4.2技术指标测试
5.结论
6.致谢、心得、体会
7.参考文献
8.附录
正文
1.方案论证与比较
出于实验室实验条件与安全的考虑,在老师的指导下我们将最开始的“0-1000V自动量程电压表”改为“能够精确测量0-3V小电压的电压表”,在日后条件允许的情况下对电路稍作改动即可实现更大的功效。
unsigned long int i_predot;//小数点前的数
unsigned long int i_afterdot;//小数点后的数
float f_afterdot;//实数型的小数部分
//判断是否为负数
if(fNum<0)
{
isnegative=1;//设置负数标志
fNum=0-fNum;//将负数变为正数
2.系统设计
2.1 总体设计
该系统中,我们需要一个拥有多位数模转换功能的最小系统板做为主控,并设计一个安全保护电路保证输入该系统板的电流电压不能超过其所能承受的最大阈值。为了精确测量小电压,我们需设计一个由运算放大器组成的模拟电路,实现信号的选通与放大。在输出端口,我们需要一个能受系统板控制的显示屏,将测量结果显示出来。
相关文档
最新文档