数字电压表的设计实验报告
电工和电子技术(A)1实验报告

电工和电子技术(A)1实验报告实验一 电位、电压的测定及基尔霍夫定律1.1电位、电压的测定及电路电位图的绘制一、实验目的 1.验证电路中电位的相对性、电压的绝对性 2. 掌握电路电位图的绘制方法利用DVCC-03实验挂箱上的“基尔霍夫定律/叠加原理”实验电路板,按图1-1接线。
1. 分别将两路直流稳压电源接入电路,令 U 1=6V ,U 2=12V 。
(先调准输出电压值,再接入实验线路中。
)图2. 以图1-1中的A点作为电位的参考点,分别测量B、C、D、E、F各点的电位值φ及相邻两点之间的电压值U AB、U BC、U CD、U DE、U EF及U FA,数据列于表中。
3. 以D点作为参考点,重复实验内容2的测量,测得数据列于表中。
四、思考题若以F点为参考电位点,实验测得各点的电位值;现令E点作为参考电位点,试问此时各点的电位值应有何变化?答:五、实验报告1.根据实验数据,绘制两个电位图形,并对照观察各对应两点间的电压情况。
两个电位图的参考点不同,但各点的相对顺序应一致,以便对照。
答:2. 完成数据表格中的计算,对误差作必要的分析。
答:3. 总结电位相对性和电压绝对性的结论。
答:1.2基尔霍夫定律的验证一、实验目的1. 验证基尔霍夫定律的正确性,加深对基尔霍夫定律的理解。
2. 学会用电流插头、插座测量各支路电流。
二、实验内容实验线路与图1-1相同,用DVCC-03挂箱的“基尔霍夫定律/叠加原理”电路板。
1. 实验前先任意设定三条支路电流正方向。
如图1-1中的I1、I2、I3的方向已设定。
闭合回路的正方向可任意设定。
2. 分别将两路直流稳压源接入电路,令U1=6V,U2=12V。
3. 熟悉电流插头的结构,将电流插头的两端接至数字电流表的“+、-”两端。
4. 将电流插头分别插入三条支路的三个电流插座中,读出并记录电流值。
5. 用直流数字电压表分别测量两路电源及电阻元件上的电压值,记录之。
三、预习思考题1. 根据图1-1的电路参数,计算出待测的电流I1、I2、I3和各电阻上的电压值,记入表中,以便实验测量时,可正确地选定电流表和电压表的量程。
《电路原理》实验报告

《电路原理》实验报告实验一电阻元件伏安特性的测量一、实验目的1、学会识别常用电路和元件的方法。
2、掌握线性电阻及电压源和电流源的伏安特性的测试方法。
3、学会常用直流电工仪表和设备的使用方法。
二、实验原理任何一个二端元件的特性可用该元件上的端电压U与通过该元件的电流I之间的函数关系I=f(U)表示,即I-U平面上的一条曲线来表征,即元件的伏安特性曲线。
线性电阻器的伏安特性曲线是一条通过坐标原点的直线该直线的斜率等于该电阻器的电阻值。
三、实验设备四、实验内容及实验数据测定线性电阻器的伏安特性按图1-1接线,调节稳压电源的输出电压U,从0伏开始缓慢地增加,一直到10V,记下相、I。
应的电压表和电流表的读数UR图1-1实验二 基尔霍夫定律一、实验目的1、加深对基尔霍夫定律的理解,用实验数据验证基尔霍夫定律。
2、学会用电流表测量各支路电流。
二、实验原理1、基尔霍夫电流定律(KCL ):基尔霍夫电流定律是电流的基本定律。
即对电路中的任一个节点而言,流入到电路的任一节点的电流总和等于从该节点流出的电流总和,即应有∑I=0。
2、基尔霍夫电压定律(KVL ):对任何一个闭合回路而言,沿闭合回路电压降的代数总和等于零,即应有∑U=0。
这一定律实质上是电压与路径无关性质的反映。
基尔霍夫定律的形式对各种不同的元件所组成的电路都适用,对线性和非线性都适用。
运用上述定律时必须注意各支路或闭合回路中电流的正方向,此方向可预先任意设定。
三、实验设备四、实验内容及实验数据实验线路如图4-1。
把开关K1接通U1,K2接通U2,K3接通R4。
就可以连接出基尔霍夫定律的验证单元电路,如图4-2。
图4-1图4-21、实验前先任意设定三条支路和三个闭合回路的电流正方向。
图4-2中的I1、I2、I3的方向已设定。
三个闭合回路的电流正方向可设为ADEFA、BADCB、FBCEF。
2、分别将两路直流稳压源接入电路,令U1 = 8V,U2 = 12V。
数字电压表实验报告

简易数字电压表设计报告姓名:***班级:自动化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.引言本次课程设计要求完成是数字电压表的设计,随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。
实验报告

第I 页课程设计说明书数字显示温度控制器设计制作摘要在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
本次设计一个数字显示温度的测量与控制装置.应用温度敏感元件和二次仪表的组合,对温度进行调节、控制,且能直接读数.经实验验证此控制器的性能指标达到要求,为温度测量与控制的工业应用奠定了一定的基础。
关键词:温度传感器数字电压表温度控制执行机构。
第II 页课程设计说明书目录1设计任务及要求 (1)2数字温度控制器设计方案 (1)3温度控制器电路的设计 (3)3.1温度传感器的选择 (3)3.2采样电路及校准电路 (4)3.3上下限采集电路 (5)3.4温度比较电路 (6)3.5 温度控制电路 (7)3.7 显示温度电路 (10)3.8 直流电源电路 (12)3.8.1稳压电源设计 (12)3.8.2 电路设计 (14)4整机工作原理 (14)5整体电路图 (16)致谢 (18)参考文献 (18)课程设计说明书1 设计任务及要求采用热敏电阻作为温度传感器,由于温度变化而引起的电压变化,在利用比较运算放大器与设置的温度值对应的电压进行比较,输出高或低电平从而对控制对象加热器进行控制。
其电路可分为三部分:测温电路,比较/显示电路,控制电路。
设计要求:(1):实现题目要求的内容(2):电路在功能相当的情况下越简单越好(3):要求输入电压为5V,红绿发光二极管为负载(4):调节电位器,使红,绿发光二极管交替点亮2 数字温度控制器设计方案方案1:此电路是一种数字温度控制器的参考设计方案图1 方案流程图原理:温度检测电路通过热敏电阻检测温度并将温度信号转化成电压信号,时钟发生器产生的脉冲启动A/D转换电路。
通过A/D转换电路将模拟信号转化成数字信号,利用4课程设计说明书线——7段显示译码器/驱动器将得到的BCD码送至LED数码显示管显示。
综合实验三 位直流数字电压表

综合实验三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 量程)。
简易数字电压表课程设计

简易数字电压表课程设计一、课程目标知识目标:1. 学生能够理解电压表的基本工作原理和电路连接方式;2. 学生能够掌握简易数字电压表的使用方法和读数技巧;3. 学生能够了解电压的单位换算,并能进行简单的计算。
技能目标:1. 学生能够正确连接电压表的电路,并进行电压测量;2. 学生能够通过操作简易数字电压表,准确读取电压值,并记录数据;3. 学生能够运用所学知识解决实际电路中的电压问题。
情感态度价值观目标:1. 培养学生对电子测量工具的兴趣,激发学习电子技术的热情;2. 培养学生严谨、细致的实验态度,注重实验操作的规范性和安全性;3. 培养学生团队合作精神,学会分享和交流实验过程中的心得体会。
课程性质分析:本课程为电子技术基础课程,以实验为主,结合理论教学。
简易数字电压表是电子测量工具的基础,通过本课程的学习,使学生掌握基本的电压测量方法。
学生特点分析:学生为初中生,具备一定的物理知识和实验操作能力。
学生对电子技术感兴趣,但可能对电压表的使用方法和电路连接不够熟悉。
教学要求:1. 理论与实践相结合,注重实验操作技能的培养;2. 注重启发式教学,引导学生主动探究和解决问题;3. 关注学生的个体差异,提供个性化指导,确保每个学生都能达到课程目标。
二、教学内容1. 电压表基本原理:讲解电压表的工作原理,包括磁电式电压表和数字电压表的区别与联系,重点介绍数字电压表的原理和特点。
教材章节:第二章第二节《电压表的原理与使用》2. 电压表的使用方法:详细讲解电压表的电路连接方法,操作步骤,读数技巧以及注意事项。
教材章节:第二章第三节《电压表的使用与维护》3. 电压单位换算:介绍电压的单位制,换算关系,并进行实际计算。
教材章节:第一章第四节《电学单位制》4. 实际电路电压测量:设计实际电路,指导学生运用电压表进行电压测量,分析测量结果。
教材章节:第二章第四节《电压测量》5. 数字电压表操作练习:安排学生进行数字电压表的实操练习,巩固所学知识,提高操作技能。
基于ICL7107数字电压表

西安电子科技大学长安学院课程设计设计题目:数字电压表的仿真与设计学院:长安学院系别:电子工程专业:电子科学与技术:班级:06521学号:06521002姓名:***指导老师:王勇目录一. 摘要 (2)二.课程设计任务与要求 (2)2.1设计目的 (2)2.2设计要求 (2)三.总体设计思路 (3)3.1方案选择 (3)3.2系统框图 (3)四.课程设计框图及工作原理 (4)4.1 工作原理 (4)4.2 ICL7107的工作原理 (5)4.3 ICL7107 安装电压表头时的一些要点 (8)4.4 关于多量程电路部分 (10)五.电路设计与仿真 (12)六.系统调试及结果分析 (13)6.1调试仪器 (13)6.2 调试方法 (13)6.3 测试结果分析 (13)6.4 硬件实物图 (13)七.元器件清单 (14)八.设计心得体会 (14)九.参考文献 (14)一.摘要数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
本章重点介绍单片A/D 转换器以及由它们构成各种新型数字电压表的工作原理。
数字电压表具有以下九大特点:1. 显示清晰直观,读数准确2. 准确度高3. 分辨率高4. 测量范围宽5. 扩展能力强6. 测量速率快7.输入阻抗高8. 集成度高,微功耗9. 抗干扰能力强二.课程设计任务与要求2.1、设计目的1、了解双积分式A/D转换器的工作原理2、熟悉A/D转换器ICL7107的性能及其引脚功能3、掌握用ICL7107构成直流数字电压表的方法2.2、设计要求1、设计一个数字电压表电路。
基于ICL7107的数字电压表及多量程电流电阻表制作

11
1.测量电压时,请勿输入超过直流 20V 的极限电压。 2.测量前要检查表笔是否可靠接触,是否正确连接、是否绝缘良好等。 3.电压表的电源供电端子,不能反接,否则会烧毁电压表,电压表供电电压不能低于或高于 +5V。 4.电位器的调试端不能随意调动,否则会影响测试准确度。 (三)、操作面说明
本文主要是研究基于 ICL7107 芯片、数字显计数器的应用。
1.4 设计目的
1.综合运用数字电路和模拟电路,巩固所学知识。 2.了解双积分 A/D 转换器的工作原理。
5
3.掌握 ICL7107 构成数字直流电压表的方法。 4.了解数字显示电路的扩展应用。 5.了解产品设计的基本思路和方法。 6.掌握常用电子元件的选择方法和元件参数的。 7.加强计算机运用、查阅资料和独立完成电路设计的能力。
1.3 LED 显示屏
采用 2 个共阳级二位数码管进行显示,芯片 ICL7107 可以直接驱动共阳型数码管,不需要驱动电路。最高 位只起到显示‘1’和‘-’的作用,第二位可以显示小数点。
一、 仪器,仪表准备
调试 工作单
10
1. 双路直流稳压电源 (一台)。 2. 4 位半数字万用表 (一台)。
二、 调试内容及步骤
图 2.5-2 ICL7107 芯片引脚图
ICL7107 芯片的引脚图如图 2.5-2 所示,它与外围器件的连接图如 4 所示。图 4 中它和数码管相 连的脚以及电源脚是固定的,所以不加详述。芯片的第 32 脚为模拟公共端,称为 COM 端;第 34 脚 Vr+和 35 脚 Vr-为参考电压正负输入端;第 31 脚 IN+和 30 脚 IN-为测量电压正负输入端; Cint 和 Rint 分别为积分电容和积分电阻,Caz 为自动调零电容,它们与芯片的 27、28 和 29 相连,电阻 R1 和 C1 与芯片内部电路组合提供时钟脉冲振荡源,从 40 脚可以用示波器测量出该振荡波形,该脚对应 实验仪上示波器接口 CLK,时钟频率的快慢决定了芯片的转换时间(因为测量周期总保持 4000 个 Tcp 不变)以及测量的精度。
实验一万用表毫伏表的使用

实验一数字万用表、交流毫伏表及其使用一.实验目的: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'®_dout(15 downto 12); --小数点显示,并且将最高位的数据送给译码器current_state2<=st2;when st2=> --在数码管的次高位显示数据cs_led<="10"; --熄灭发光二极管shift<="1011"; --次高位数码管显示dout<='1'®_dout(11 downto 8); --小数点不显示,将次高位的数据送给译码器current_state2<=st3;when st3=> --在数码管的次低位显示数据cs_led<="10"; --熄灭发光二极管shift<="1101"; --次低位数码管显示dout<='1'®_dout(7 downto 4); --小数点不显示,将次低位的数据送给译码器current_state2<=st4;when st4=> --在数码管的最低位显示数据cs_led<="10"; --熄灭发光二极管shift<="1110"; --最低位数码管显示dout<='1'®_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)®_datain(0)®_datain(1)®_datain(2)&re g_datain(3)®_datain(4)®_datain(5)®_datain(6);--"DOUT_LED"送给发光二极管;end case;end process;end Behavioral;四、波形仿真图:五、结论:本次实验达到了实验的基本要求,能够通过调节高精密变阻器实现0—2.5v的电压测量及显示。
电工和电子技术(A)1实验报告

实验一 电位、电压的测定及基尔霍夫定律1.1电位、电压的测定及电路电位图的绘制一、实验目的1.验证电路中电位的相对性、电压的绝对性2. 掌握电路电位图的绘制方法三、实验内容利用DVCC-03实验挂箱上的“基尔霍夫定律/叠加原理”实验电路板,按图1-1接线。
1. 分别将两路直流稳压电源接入电路,令 U 1=6V ,U 2=12V 。
(先调准输出电压值,再接入实验线路中。
)2. 以图1-1中的A 点作为电位的参考点,分别测量B 、C 、D 、E 、F 各点的电位值φ及相邻两点之间的电压值U AB 、U BC 、U CD 、U DE 、U EF 及U FA ,数据列于表中。
3. 以D 点作为参考点,重复实验内容2的测量,测得数据列于表中。
图1-1四、思考题若以F点为参考电位点,实验测得各点的电位值;现令E点作为参考电位点,试问此时各点的电位值应有何变化?答:五、实验报告1.根据实验数据,绘制两个电位图形,并对照观察各对应两点间的电压情况。
两个电位图的参考点不同,但各点的相对顺序应一致,以便对照。
答:2. 完成数据表格中的计算,对误差作必要的分析。
答:3. 总结电位相对性和电压绝对性的结论。
答:1.2基尔霍夫定律的验证一、实验目的1. 验证基尔霍夫定律的正确性,加深对基尔霍夫定律的理解。
2. 学会用电流插头、插座测量各支路电流。
二、实验内容实验线路与图1-1相同,用DVCC-03挂箱的“基尔霍夫定律/叠加原理”电路板。
1. 实验前先任意设定三条支路电流正方向。
如图1-1中的I1、I2、I3的方向已设定。
闭合回路的正方向可任意设定。
2. 分别将两路直流稳压源接入电路,令U1=6V,U2=12V。
3. 熟悉电流插头的结构,将电流插头的两端接至数字电流表的“+、-”两端。
4. 将电流插头分别插入三条支路的三个电流插座中,读出并记录电流值。
5. 用直流数字电压表分别测量两路电源及电阻元件上的电压值,记录之。
三、预习思考题1. 根据图1-1的电路参数,计算出待测的电流I1、I2、I3和各电阻上的电压值,记入表中,以便实验测量时,可正确地选定电流表和电压表的量程。
数字电压表的设计

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. 学生能理解电压表的基本工作原理,掌握其电路组成和功能。
2. 学生能描述简易数字电压表的结构,了解其显示原理。
3. 学生掌握电压的测量方法,能够正确使用简易数字电压表进行电压测量。
技能目标:1. 学生能够独立完成简易数字电压表的组装和调试。
2. 学生能够运用所学的电压测量知识,解决实际电路中的电压测量问题。
3. 学生通过实际操作,提高动手能力和问题解决能力。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发学习热情,形成积极探索的学习态度。
2. 学生通过合作学习,培养团队协作精神和沟通能力。
3. 学生了解电压表在实际应用中的作用,认识到电子技术在日常生活和工业生产中的重要性。
课程性质:本课程为电子技术基础课程,通过理论与实践相结合的方式,使学生掌握电压测量方法,提高学生的实际操作能力。
学生特点:本课程针对初中或高中年级学生,他们对电子技术有一定的基础知识,好奇心强,动手能力逐渐提高。
教学要求:教师需采用启发式教学,引导学生主动探索,注重培养学生的动手能力和问题解决能力。
在教学过程中,关注学生的个体差异,给予每个学生充分的实践机会。
通过课后评估,检验学生的学习成果,确保课程目标的实现。
二、教学内容1. 电压表基本原理:介绍电压表的工作原理,包括磁电式和数字式电压表的原理区别。
- 教材章节:第二章第三节《电压与电压测量》2. 简易数字电压表结构:分析简易数字电压表的电路组成,显示部分原理。
- 教材章节:第二章第五节《数字电压表的组成与原理》3. 电压测量方法:讲解电压测量的步骤、注意事项以及不同量程的选择。
- 教材章节:第二章第四节《电压测量方法及注意事项》4. 实践操作:进行简易数字电压表的组装、调试及实际电压测量。
- 教材章节:实验章节《电压测量实验》5. 故障分析与处理:介绍常见的电压表故障现象,分析原因并学会处理方法。
- 教材章节:附录《电压表常见故障及处理方法》教学内容安排与进度:第一课时:电压表基本原理,介绍磁电式和数字式电压表的原理区别。
数字电压表实验报告

实验五电压表实验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. 关闭电源:待测电压测量完成后,关闭待测电路的电源,并拔掉连接线。
实验结果:根据实验结果,我们可以得出待测电路的电压为多少,并且通过对比不同量程下的测量结果,了解数字电压表的量程选择原则。
实验结论:通过本次实验,我们掌握了数字电压表的基本使用方法,并了解了电压测量的原理。
同时,我们也了解了数字电压表的量程选择原则,并且通过实验结果验证了其准确性。
实验中的注意事项:在进行实验时,要注意连接线路的正确性,避免接错极性导致仪器损坏。
同时,在选择量程时要根据待测电压的大小进行合理选择,避免选择错误导致测量不准确。
总结:通过本次实验,我们对数字电压表的使用方法和原理有了更深入的了解,这对我们今后的实验操作和电路调试都有着重要的指导意义。
希望通过不断的实践和学习,我们能够更加熟练地掌握数字电压表的使用技巧,并且在工程实践中能够准确地测量电压并进行相应的调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
——基于51数字电压表设计
物理与电子信息学院
电子信息工程
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 器件清单
所用器件名称型号及大小个数单片机开发板AT89S52 一个
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};/ /带小数点
滑动变阻器10K 两个
A\D转换器ADC0832 一个
LED 共阳两个
跳线插口-- 若干
跳线-- 若干
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 转换器)的结构和特点及数字电压表的工作原理,加深了对课本理论知识的理解,锻炼了实践动手能力,理论知识与实践设计相结合,培养了创新开发的思维。
在此次课程设计中,收获知识的同时,我还收获了阅历。
在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
在此,非常感老师的帮助,没有老师的细心讲解,我们的成功会大打折扣。