基于launchpad的简易数字万用表
数字万用表操作规程
数字万用表操作规程
数字万用表又叫多用表、三用表、复用表,万用表分为指针式万用表和数字万用表引。
是一种多功能、多量程的测量仪表,一般万用表可测量直流电流、直流电压、交流电流、交流电压、电阻和音频电平等,有的还可以测交流电流、电容量、电感量及半导体的一些参数。
数字万用表操作规程:
1、使用前应熟悉万用表各项功能,根据被测量的对象,正确选用档位、量程及表笔插孔。
3、测量电阻时,在选择了适当倍率档后,将两表笔相碰使指针指在零位,如指针偏离零位,应调节“调零”旋钮,使指针归零,以保证测量结果准确。
如不能调零或数显表发出低电压报警,应及时检查。
4、在测量某电路电阻时,必须切断被测电路的电源,不得带电测量。
5、使用万用表进行测量时,要注意人身和仪表设备的安全,测试中不得用手触摸表笔的金属部份,不允许带电切换档位开关,以确保测量准确,避免发生触电和烧毁仪表等事故。
简易数字万用表设计设计33298530
简易数字万用表设计目录1、设计任务 (1)1.1设计目的 (1)1.2设计指标及要求 (1)2、设计思路与总体框图 (1)3、系统硬件电路的设计 (2)3.1多用表主电路 (2)3.2 电阻测量输入电路 (2)3.3电压测量输入电路 (3)3.4电流输入测量电路 (3)4、系统的软件设计 (4)5、系统的设计仿真 (5)5.1仿真原理图 (5)5.2实物图 (6)5.3主要元器件功能介绍 (6)6、总结与体会 (20)6.1总结 (13)6.2体会 (13)7、参考文献 (14)1、设计任务1.1设计目的采用8位8路A/D 转换器ADC0809和AT89S52单片机,设计一台数字多用表,能进行电压、电流和电阻的测量,测量结果通过LED 数码管显示,通过按键进行测量功能转换。
1.2设计指标及要求电压测量范围0~5V ,测量误差约为±0.02V ,电流测量范围1~100mA ,测量误差约为±0.5mA ,电阻测量范围0~1000Ω,测量误差约为±2Ω。
2、设计思路与总体框图2.1设计思路首先利用P0 口数据地址复用,将地址通过P0口输入到单片机中。
再利用模数转换将模拟信号转换成数字信号,再次利用P0口将其输入到单片机。
最后,充分利用单片机强大的运算转化功能将其转成适当的二进制信号控制数显以确保正确的显示被测量的读数。
2.2总体框图3、系统硬件电路的设计3.1 数字多用表的主电路数字多表仪表主电路如图1所示。
89S52单片机通过线选方式扩展了A/D 转换器ADC0809和4位LED数码管,单片机的P2.7引脚作为ADC0809的片选信号,因此A/D转换器的端口地址为7FFFH.片选信号和WR信号一起经或非门产生ADC0809的启动信号START和地址锁存信号ALE。
片选信号和RD信号一起经或非门产生输出允许信号OE,OE=1时选通三态门使输出锁存器中的INT 转换结果送入数据总路线。
简易万用表的设计与制作实验报告
简易万用表的设计与校准物理学院物理学类2009301020162 沈港博摘要:万用表是一种多功能、多量程便于携带的电学仪器。
它可用不同的量程测量直流电流、直流电压、交流电压及电阻。
有的万用表还可以测量阻抗、容抗和音频功率等。
学习制作和设计万用表非常重要,还有利于我们大学同学提高电路分析的能力并加深对万用电表工作原理的理解,提高自身的动手能力。
关键字:万用电表、表头、测量电路、转换装置。
1 实验目的(1)通过万用表组装实验,进一步熟悉万用表结构、工作原理和使用方法。
(2)了解电路理论的实际应用,进一步学会分析电路,提高自身的能力。
2 实验原理万用表主要是由指示器、测量电路和转换装置三部分组成。
指示器俗称表头,用来指示被测电量的数值,通常为磁电式微安表。
表头是万用表的关键部分,万用表的灵敏度、准确度及指针回零等大都决定于表头的性能。
表头的灵敏度是以满刻度的测量电流来衡量的,满刻度偏转电流越小,灵敏度越高。
一般万用表表头灵敏度在10~100μA左右。
测量电路的作用是把被测的电量转化为适合于表头要求的微小直流电流,它通常包括分流电路、分压电路和整流电路。
分流电路将被测大电流通过分流电阻变成表头所需要的微小电流,分压电路将被测得高电压通过分压电阻变换成表头所需的低电压;整流电路将被测的交流,通过整流转变成所需的直流电。
万用表的各种测量种类及量程的选择是靠转换装置来实现,转换装置通常由转换开关、接线柱、插孔等组成。
转换开关有固定触点和活动触点,它位于不同位置,接通相应的触点,构成相应的测量电路。
万用表基本原理,如下图1-1所示。
图1-1万用表基本原理图下面以MF-47型万用表为例,分部介绍电路参数的测量原理。
1、直流电流的测量万用表的直流电流档,实质上是一个多量程的磁电式直流电流表,它应用分流电阻与表头并联以达到扩大测量的电流量程。
根据分流电阻值越小,所得的测量量程越大的原理,配以不同的分流电阻,构成相应的测量量程。
数字万用表的使用
电阻≤70Ω时,机内蜂鸣器响,显示电阻近似值,单位为千欧。
3
如果显示器只显示‘1’,表示开路。
4
导通检查
测量方法
01
03
02
将待测电容接入仪表中,待稳定后,直接从显示屏上读取读数。
04
电容测量
测量方法
数字万用表使用注意事项
使用时应先根据被测“量”的大小选择适当的量程,然后才进行测量。若事先不知道被测“量”的大小,应先将量程旋到最大档,接入被测量后,再根据读数逐步减少量程,直到合适量程为止,切勿用低的电压(或电流)档去测高电压(或电流),否则将会损坏电表。
直流电压挡
数字万用量程开关
交流电压挡
数字万用量程开关
直流电流挡
它可以测量0至10安的直流电流(A=) 分2mA、20mA、200mA、10A四 挡;挡的数字是指最大能测量的电流值(量程),测量时不能超过此值。
数字万用量程开关
它可以测量0-10安的交流电流(A~) 分2mA、200mA、10A三 挡;挡的数字是指最大能测量的电流值(量程),测量时不能超过此值。
使用200Ω档时,先将表笔短接,显示表笔线的电阻值,实验中应减去这一电阻值,得到的才是实际被测值。
被测电路不能带电,电容电荷要放尽。
对于大于1MΩ或更高的电阻,要几秒钟后读数才能稳定,这是正常现象。
被测阻值超出量程时或开路时,显示‘1’。
电阻测量
测量方法
输入电压高于1000V时,显示电压值是可能的,但有可能损坏仪表。
数字万用表液晶显示屏
MS8200型
测量电阻时注意,用大量程测小电阻会出现“000”,无阻值;用小量程测大电阻会出现“1”无穷大。
数字万用表液晶显示屏
简易万用表的设计
东北石油大学课程设计2012年6 月25日东北石油大学课程设计任务书课程电子技术课程设计题目简易万用表的设计专业测控技术与仪器姓名曾润学号100601240305主要内容:本课题主要设计由集成运放组成的简易数字万用表,实现多级量程的直流电压测量、交流电压测量、直流电流测量、电阻测量以及电容测量电路。
主要内容包括系统的设计原则、总体方案、单元电路的设计、参数计算、元器件的选择及系统概述等。
基本要求:(1)设计由集成运放组成万用电表。
(2)至少能测量电阻、电流和电压。
主要参考资料:[1]刘国钧,陈绍业,王凤翥.图书馆目录[M].北京:高等教育出版社,1957.15-18.[2] 刘润华,刘立山.模拟电子技术[J].自动化,2003.203-207[3] 郁汉琪,数字电子技术实验及课题设计.,北京:高等教育出版社,1995.150-153.[4] 康华光.电子技术基础:模拟部分. 北京:高等教育出版社,1988.104-107.[5] 常健生,检测与转换技术,机械工业出版社,2000年2月.56-579.[6] 阎石,数字电子技术基础,高等教育出版社,1998年12月.49-56.[7]万嘉若,林康运,电子线路基础,高等教育出版社,1986年3月.79-83.完成期限2012.6.25—2012.7.4指导教师路敬祎(副教授)曹广华(教授)2012年6 月25 日目录一、设计要求 (1)二、方案设计 (1)1、方案说明 (1)2、方案论证 (2)三、单元电路设计、参数计算和器件选择 (3)1、单元电路设计 (3)2、参数计算 (5)3、器件选择 (8)四、系统硬件电路设计 (8)五、电路焊接练习 (9)1、两管闪光灯电路 (9)2、占空比和频率可调的脉冲发生器 (10)3、收音机 (11)六、总结 (13)参考文献 (14)简易万用表的设计一、设计要求(1)设计由集成运放组成万用电表。
(2)实现多级量程的直流电压测量,其量程范围是200mv、2v ,20v,200v和500v。
数字万用表的设计
数字万用表的设计单片机数字万用表的设计一、引言数字万用表是一种多用途电子测量仪器。
它采用数字化测量技术,把实际测量的模拟量,转化为离散的数字量进行输出显示,主要用于物理、电气、电子等测量领域,一般包含电流表(安培计)、电压表(伏特计)、电阻表(欧姆计)等功能,也称为万用计、多用计、多用电表或万用电表。
万用表是电子和电气技术领域必备的测量仪器,用于测量电子电路中的各种物理量(电压、电流、电阻等),常作为基本故障诊断的便携式装置,也有放置在工厂或实验室工作台上作为桌上型装置。
有的万用电表分辨率能达到七、八位数,常用在实验室,作为电压或电阻的基准,或用来调校多功能标准器的性能。
相比传统的指针式万用表,数字万用表具有以下的主要优点:(1)数字显示直观准确,无视觉误差,读数准确;(2)测量精度和分辨率都很高;(3)输入阻抗高,减少对被测电路的工作影响;(4)电路集成度高,便于组装和维修;(5)测量功能齐全,测量速率快;(6)保护功能齐全,有过压、过流保护电路;(7)功耗低,抗干扰能力强;(8)便于携带,使用方便。
本次设计的任务是制作一个数字万用表,可实现如下的功能及要求:(1)可以测量直流电压、直流电流和电阻;(2)能将测量得到的数值直观、准确地显示出来,并标明相应的单位;(3)具有超量程时的报警提示。
二、系统硬件分析与设计数字万用表的基本功能是,能够测量直流电压、电流以及电阻的阻值,数字万用表的基本组成由图1所示,其中,模数转换是数字万用表的核心:图1. 数字万用表的基本原理图如图2所示,本设计将由以下几大部分组成。
包括:复位电路、震荡电路、A/D转换和控制、测量值输出、超量程报警和档位选择。
其中,复位电路用于单片机上电复位使系统清零;震荡电路为单片机提供精确的时钟频率,使电路工作更加稳定;A/D转换和控制部分负责模数转换及输入输出信号的控制;测量值输出则负责显示待测物理量大小的数值;超量程报警用于超出量程范围时的报警提示,提醒使用者更换量程。
虚拟仪器LabVIEW实验一 虚拟万用表的实现实验指导书
虚拟万用表的实现1实验目的(1)学习Labview编程语言的开发环境(2)了解前面板对象的调用、设置以及编程(3)了解框图程序的常用节点2 实验任务设计虚拟数字万用表基本要求:z设置电源开关:电源开时,数字万用表工作;电源关时,数字万用表不工作。
z设置数值显示屏:显示数字万用表测量的数据。
z设置档位选择旋钮:电阻档200、2K、20K、200K、20M五档;直流电流档200mV、2V、20V、200V、500V五档;交流电压档200V、500V两档;直流电流档2mA、20mA、200mA、10A四档。
z设置数值单位提示显示:档位选择正确时,提示单位。
z设置超量程显示及报警:电源开关关闭时,提示“电源关”;档位选择错误时,给出档位选择错误提示;数值超出档位值时,给出超出量程提示;同时给出报警信号。
z分单次测量、连续测量两种方式。
单次测量时,仅测量显示测量时刻的值;连续测量时,不断的进行测量和显示。
z设置产生电阻值、直流电压、交流电压、直流电流的虚拟信号源。
附加要求(选作):在产生的虚拟信号源上叠加噪声,以复现现实世界真实信号的特点。
3 实验原理虚拟数字万用表的主要功能是对测量电路采集进来的数据进行处理和显示,整体是一个while循环,当电源打开且按下单次测量或多次测量按钮时,万用表工作,内部分为数据选择、数据判断、数据显示三部分。
z数据选择:是一个case结构,数据流旋钮的不同位置通过不同的数据通道。
z数据判断:由两个case结构嵌套而成,外层的case针对不同的档位判断是否超出量程;内层的case当数值在范围内时开通数据通道,反之关闭数据通道,给出错误提示。
z数据显示:由一个字符串显示变量、一个布尔显示变量、一个双精度浮点显示变量组成。
4 实验步骤4.1前面板设计图1是前面板的总体视图,分为信号源和数字万用表两个显示区。
图1 虚拟万用表前面板视图1、完成信号源的设计采用前面板“转盘”控件,在其上点击鼠标右键,选择“属性”——“外观”,通过修改标签,可以设置该控件的名称;选择“标尺”,设置“刻度范围”,可以设置该控件的数据范围,最终达到图1的显示效果。
项目二简易万用表的设计
测试基本功能
组装完成后,对万用表进 行基本功能测试,如电压、 电流、电阻的测量等,确 保其正常工作。
性能优化
根据测试结果,对万用表 进行性能优化,如调整电 路参数、改善测量精度等, 提高其整体性能。
05
简易万用表的性能法
按照国家相关标准,采用标准电 阻、电容、二极管等元件进行测 试,确保测试结果的准确性。
采购元器件
通过电子市场、网上商城或分销商等渠道采购所 需的元器件,确保其品质可靠、价格合理。
3
检测元器件
收到元器件后,进行质量检测,确保其性能参数 符合设计要求,如有不合格元器件及时更换。
组装和测试
01
02
03
元器件焊接
根据电路原理图,将元器 件焊接到电路板上,确保 焊接质量良好、无虚焊、 错焊等现象。
自动量程切换
根据测量结果自动切换量程,方便 用户使用。
03
02
高精度测量
采用高精度测量元件和电路,确保 测量精度和稳定性。
数字显示
采用数字显示技术,直观显示测量 结果。
04
04
简易万用表的实现过程
电路板的制作
选择合适的电路板材料
制作电路板
根据设计需求选择合适的电路板材料, 如FR4、CEM-1等,考虑其电气性能、 机械性能和加工工艺。
用表的设计旨在为电子初学者提供一个经济实惠、功能齐全的万用表替代方案。
目标
项目的主要目标是设计一个结构简单、成本低廉但功能完备的万用表。该万用表应具备 基本的电压、电流和电阻测量功能,同时操作简单、易于理解,适合电子爱好者和学生
使用。
项目的相关背景和环境
技术背景
随着集成电路和微电子技术的发展,各种电子测量设备的功能越来越强大,但价格也相应较高。简易万用表的设 计可以利用现代电子技术,如模拟电路、数字电路和微控制器,来实现低成本、高性能的测量功能。
基于LABVIEW的虚拟万用表设计与实现
基于LABVIEW的虚拟万用表设计与实现目录摘要 .......................................................................................................................................... I II 关键词 ...................................................................................................................................... I II Abstract ..................................................................................................................................... I II Key Words ............................................................................................................................... I III 第一章绪论………………………………………………………………………………….错误!未定义书签。
1.1 引言 (1)1.2 虚拟仪器 (1)1.2.1 虚拟仪器的概念 (1)1.2.2 虚拟仪器的构成 (2)1.3 课题现状 (3)1.4 目的与意义 (3)第二章主要应用软件 (5)2.1 LabVIEW开发平台简介 (5)2.2 LabVIEW的优势 (7)2.3 LABVIEW应用概述 (8)2.4 LabVIEW应用解决方案 (9)2.5 protues简介 (9)2.5.1 protues功能特点 (9)2.5.2 protues所提供的资源 (10)2.5.3 protues在“单片机原理与应用技术”中的作用 (10)2.6 Keil uV3 简介 (11)第三章系统主要硬件 (12)3.1 系统的硬件因素 (12)3.2 AD0809 (13)3.2.1 AD0809的逻辑结构 (13)3.2.2 AD0809的工作原理 (13)3.2.3 AD0809的实际应用 (15)3.3 SST89E516RD单片机 (16)3.3.1单片机SST89E516RD单片机简介 (16)3.3.2仿真器电路和工作原理 (16)第四章详细设计与系统实现 (18)4.1 硬件电路的具体设计 ..................................................................................................4.1.1 硬件的设计步骤 ..............................................................................................4.1.2 硬件电路的连接 ..............................................................................................4.2 Keil与Proteus联机调试 ............................................................................................4.3 虚拟万用表程序设计 ..................................................................................................4.4 虚拟万用表实现 ..........................................................................................................4.4.1 创建虚拟万用表的前面板VI ........................................................................4.4.2 虚拟万用表的实现 ......................................................................................... 第五章总结................................................................................................ 参考文献 . (21)致谢 (22)基于LABVIEW的虚拟万用表设计与实现摘要虚拟技术的发展使模拟电子技术实验的分析设计过程得以在计算机上轻松、准确、快捷地完成。
航海科普:“数字式万用表”详细使用教程,居家电气维修必备!
航海科普:“数字式万用表”详细使用教程,居家电气维修必备!远洋船舶上船电设备非常集中,轮机检修人员工具包里,离不开电气检修专用工具“万用表”,其实不管是船舶上应用很广泛,在陆地上电气检修万用表也是必备工具,万用表又称万能表,从名字就可以知道用途是多么广泛,万用表本身轻便,易携带,受到众多使用者的青睐。
万用表主要分“指针式万用表”和“数字万用表”,目前使用指针式的万用表很少,已被淘汰,现在多用数字式万用表,数字万用表是一种最常用的测量电流、电压和电阻、二极管、三极管等电气元件的工具,无论是电工,热工,还是制作或维修电子器具的工作人员都,要用它来测量。
本篇科普文章就教大家数字万用表的正确使用方法,从数字万用表的电压、电阻、电流、二极管、三极管、测量方法开始学习,让你更好的掌握万用表使用。
下图为数字万用表万表盘细节图:下图为基本的符号含义:基本的表笔连接介绍:通过上面的基本介绍学习,小编首先教大家一个万用表的使用小窍门,四种技巧教你高效使用数字万用表。
例如,因为万用表的交流档非常灵敏,一个小小的波动就会引起万用表显示数字。
利用这一特点可以用来分辨哪个是火线,哪个是零线!在没有试电笔的时候非常方便!1、用数字万用表测量家庭电器开关的电压。
首先准备万用表,并安装好电池、插好表笔线,黑笔插COM孔,红笔插V/Ω口,如下图:然后把万用表档位旋钮拨动到交流750V档(注:如果不清楚未知电压,务必选择最大电压档,以防损坏万用表),如下图:确认以上两个步骤无误之后,手持红黑表笔,分别插到插座两个孔里(严禁手接触表笔金属部分,以防触电危险)如下图:此时观察万用表的显示屏上会出现数字,我的万用表显示234,则表示当前电压为交流234V。
市电电压由于供电原因会有波动,一般来说220V±15V都不影响电器的正常使用,如下图:2.判断线路或器件带不带电数字万用表的交流电压挡很灵敏,哪怕周围有很小的感应电压都可以有显示。
便携式万用表的使用方法?
便携式万用表是一种常见的电测量仪器,用于测量电压、电流、电阻和其他电学参数。
以下是使用便携式万用表的一般步骤:
1. **了解万用表的功能和操作按钮**:熟悉万用表的各种测量功能和选择按钮,例如直流电压(DCV)、交流电压(ACV)、直流电流(DCA)、交流电流(ACA)、电阻(Ω)等。
2. **选择测量范围**:根据待测电信号的大小,选择合适的测量范围。
通常在万用表上有旋钮或按钮用于选择不同的量程范围。
3. **连接测试引线**:使用测试引线,将红色引线插入电表上的正号插孔,将黑色引线插入负号插孔。
4. **选择测量模式**:根据待测电信号的类型选择合适的测量模式,比如电压、电流或电阻。
选择合适的功能按钮来设置测量模式。
5. **测量电信号**:将两个引线分别与待测电路的两个测试点连接。
确保引线的接触良好。
注意:在测量电流时,要将万用表置于电路中断处,将所需测量电流通过万用表。
6. **读取测量值**:待测电信号连接好后,读取万用表上显示的
测量值。
确保读取结果准确、稳定,并注意测量单位。
7. **关闭和安全使用**:完成测量后,关闭万用表或将旋钮拨到“OFF”位置。
安全使用万用表的同时,注意遵循相关的电安全操作规范,如不接触高电压部分,避免短路等。
需要注意的是,在进行任何电气测量之前,保证仪器的正确连接、正确的电流范围选择,以及遵循相关的安全操作规程。
对于更复杂的测量任务或对于不熟悉的测量对象,建议参考万用表的用户手册或咨询专业人士以确保正确和安全的操作。
基于LabVIEW的智能万用表设计
官方网站:131海上平台,若没有设置两个门的条件可以设计成马蹄形工作流程。
除了布局的规范化问题,洗衣设备的标准化问题也有待解决。
由于海上石油平台远离陆地的特点,进出人员和物料供给一般需要通过船只或直升机等形式来完成,这为平台设备的保养和维修带来了诸多不便。
这就要求平台上的设备质量具有可靠性,同时具有充分的保障性便于售后维修,洗衣设备也是如此。
目前海上平台使用的洗衣设备品牌较多,这为维修技术人员带来了较大的工作难度。
统一品种、统一规格,可以控制安装和后期维护的复杂度,提高维修服务人员的工作效率,降低设备的维护成本,达到降本节能的企业管理理念。
此外,洗衣系统的功能模块有待进一步完善。
目前而言,单纯洗衣脱水一体机和烘干机的基本配置仅初步满足了洗涤的最低要求,而石油工服因其清洗难度大的特点,使得洗涤效果欠显著。
为此,进一步完善洗涤系统的功能模块是解决问题的有效途径之一。
在正式进入洗涤区之前,通过采用超声波去渍机、去渍剂、洗涮台构建去渍区,对污染程度较重的织物进行去渍预处理,以保证织物的洗涤质量,同时减少水电等能源的消耗。
因此,针对海上平台的洗衣房布局和设备配置现状,推行规范的洗涤系统布局,标准和完善的洗涤系统配置是后期工作的重要切入点。
洗衣系统的集成化、系统化问题。
海上平台空间的有限性是制约设备配置的最直接的客观原因,这使得设备的集成化、系统化处理显得尤为重要。
因此,合理利用洗衣房内工作桌桌面以下和四周墙面上的空间,将烫台、去渍机、智能衣物收发输送线甚至小型洗衣机等设备集成到一起,在不占空间又不影响美感的同时改变目前平台洗衣房设备摆放凌乱、空间利用不足等弊端。
例如,可将烫台和熨斗安装在洗衣房墙壁上,在需用使用时,通过活动铰链固定即可,达到有效集约空间的目的;此外,可将超声波去渍仪、去渍枪、去渍台板等集成在洗涮台上,一方面便于操作,另一方面达到集成的效果。
为此,洗衣房的设计与施工应以一个集成的洗衣系统来考虑和衡量,对所有洗涤设备和辅助设备结合美学、人机工程学等进行有效集成,这样不仅减少系统在安装和调试时的工作量,而且也便于后期的维护和保养,也使得员工在使用时更为便捷和高效。
数字万用表装调
插上表棒
The End
数字万用表制作
单击添加副标题
单击此处添加文本具体内容,简明扼要地阐述你的观点
1/2 位的大屏幕液晶读数显示
可以测交直流电压,交直流电流,电阻,电容,二极管,三极管
有测通断的功能,当被测两点连通时,蜂鸣器鸣叫
显示数据可以保持
01
03
02
04
数字万用表功能简介
调试
线路主板焊接与安装
总装
万用表开关的安装
另外一边也按照 先加钢珠再顶入弹簧 最后盖上塑料片 的顺序进行装配
装配万用表旋转开关 注意弹性开关片的方向,按照图所示进行安装 定位塑料圆柱应 插入电路板的定 位孔
注意对准 四个螺丝孔
拧好白色螺丝
安装好的旋钮开关
装上旋钮套
注意旋钮套上箭头方向
装上旋钮套,左右旋转 试试是否灵活,若旋转 有问题或者不灵活,拆 下来重新安装
3
下面就让我们进入调试篇
4
调 试 篇
装入电池
1.校准参考电压
STEP1
STEP2
STEP3
STEP4
2.A/D转化测试
将旋转开关转到200mV档,用精密分压器输出一个200mV的直流电压,接入万用表,应显示读数为199.9 。
如读数不正确,可以略微调节微调电阻201,直到液晶显示器上的读数为199.9
按键开关的塑料帽
将塑料键帽套上按键开关
安装液晶显示屏
将螺帽压入相应位置
两个白色机械螺丝 由板后插入螺丝孔
再将塑料垫片放入相应位置
安放导电橡胶
注意:放入导电胶时一定要用镊子,因为手上的脏东西弄到导电胶上,可能会使导电胶的接触不好,液晶显示出错
这是液晶显示器
简易万用表的设计与制作实验报告
简易万用表的设计与制作实验报告简易万用表的设计与制作实验报告导言:实验目的:本实验旨在设计和制作一款简易的万用表,用于测量电压、电流和电阻。
实验原理:万用表是一种测量电压、电流和电阻的仪器。
它由电压测量部分、电流测量部分和电阻测量部分组成。
实验材料和仪器:1. 电阻器2. 电池3. 电流表4. 电压表5. 电线6. 示波器7. 万用表外壳实验步骤:1. 首先,我们需要将电阻器、电池、电流表和电压表连接起来,构成一个简单的电路。
2. 将电阻器连接到电池的正负极上,以形成一个电阻电路。
3. 将电流表的正极连接到电阻器上,负极连接到电池的负极上。
这样,电流表就可以测量电路中的电流。
4. 将电压表的正极连接到电阻器上,负极连接到电池的负极上。
这样,电压表就可以测量电路中的电压。
5. 将示波器连接到电路中,以观察电路中的电压波形。
6. 将以上所有仪器和电路安装到万用表的外壳中,确保连接牢固。
实验结果:通过以上步骤,我们成功地设计和制作了一款简易的万用表。
在实验中,我们可以通过电流表测量电路中的电流,通过电压表测量电路中的电压,通过示波器观察电路中的电压波形。
这样,我们可以方便地进行电路的测试和测量。
实验总结:通过本次实验,我们深入了解了万用表的原理和结构,并成功地设计和制作了一款简易的万用表。
万用表在电路测试和测量中起到了重要的作用,可以方便、准确地测量电压、电流和电阻。
通过实验,我们不仅掌握了万用表的使用方法,还提高了对电路的理解和实践能力。
实验中可能遇到的问题及解决方法:1. 电路连接错误:在连接电路时,可能会出现连接错误的情况。
解决方法是仔细检查电路连接,确保每个仪器和电阻器的正负极正确连接。
2. 仪器故障:在实验过程中,仪器可能出现故障。
解决方法是更换故障仪器或修理仪器。
展望:本次实验只是设计和制作了一款简易的万用表,还有许多改进的空间。
未来,我们可以考虑增加更多的功能,如温度测量、电容测量等。
同时,我们还可以进一步研究和改进万用表的精度和稳定性,使其更加准确和可靠。
简易模拟万用表
电子技术课程设计技术任务报告万用表技术指标与方案论证(设计题题目)用集成运放设计万用表技术指标1.直流电压表测量范围:(0—6V )2.直流电流表测量范围:(0—10mA)3.交流电压表测量范围及频率范围:有效值(0-6V),50Hz~1kHz4.交流电流表测量范围及频率范围: 有效值(0-10mA)5.欧姆表测程:(0—1KΩ)方案论证在测量中,电表的接入应不影响被测电路的原工作状态,这就要求电压表应具有无穷大的输入电阻。
电流表的内阻应为零,但实际上,万用表表头的可动线圈总有一定的电阻。
例如100μA的表头,其内阻约为1KΩ,用它进行测量时将影响被测量量,引起误差。
此外,交流电表中的整流二极管和非线性特性也会产生误差。
如果在万用表中使用运算放大器,就能大大降低这些误差,提高测量精度。
在欧姆表中采用运算放大器,不仅能得到线性刻度,还能实现自动调零。
万用表的基本原理万用表的基本原理是利用一只灵敏的磁电式直流电流表(微安表)做表头。
当微小电流通过表头,就会有电流指示。
但表头不能通过大电流,所以,必须在表头上并联与串联一些电阻进行分流或降压,从而测出电路中的电流、电压和电阻。
下面分别介绍。
图22-1为同相端输入,高进度直流电压表电原理图为了减小表头参数对测量精度的影响,将表头至于运算放大器的反馈回路中,这时,流经表头的电流与表头的参数无关,只要改变R1一个电阻,就可以进行量程的切换。
表头电流I与被测电压Ui的关系为应当指出:图22-1适用于测量电路与运算放大器共地的有关电路。
此外,当被测电压较高时,在运放的输入端应设置衰减器。
测直流电流原理图22-2是浮地直流电流表的电原理图。
在电流测量中,浮地电流的测量是普遍存在的。
例如:若被测电流无接地点,就属于这种情况。
为此,应把运算放大器的电源也对地浮动。
按此种方式构成的电流表就可像常规电流表那样,串联在任何电流通路中测量电流。
图22-2 直流电流表表头电流I与被测电流I1间关系为:可见,改变电阻比(R1/R2),可调节流过电流表的电流,以提高灵敏度如果被测电流较大时,应给电流表表头并联分流电阻。
基于单片机数字万用表的制作
基于单片机数字万用表的制作公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]基于51单片机数字万用表摘要:本设计采用AT89C52为主控芯片配以振荡电路设计设计了一个数字万用表,可用于测量直流电压,直流电流,电阻和电容,并配以档位转换。
本系统使用ADC0832作为数据转换芯片,LM358作为放大芯片,通过LCD1602显示,各模块主要通过AD转换以及电压放大实现测量功能。
绪论:数字多用表(GMM)就是在电气测量中要用到的电子仪器。
它可以有很多特殊功能,但主要功能就是对电压、电阻和电流进行测量。
传统的指针式万用表功能单精度低,不能满足数字化时代的需求,采用单片机制作的数字万用表,具有精度高、抗干扰能力强,可扩展力强、集成方便等优点,目前,由各种单片机芯片构成的数字电万用表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。
总体设计设计方案:1.电压测量原理与AD 转换电路ADC0832是美国国家半导体公司生产的一种8 位分辨率、双通道A/D 转换芯片。
其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V 之间。
芯片转换时间仅为32μS ,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI 数据输入端,可以轻易的实现通道功能的选择。
本系统只对CH0 进行单通道转换。
单 片 机AD 电路分压电AD 电路放大电路放大电路 路路功能开关显示电路晶振电路电电流电阻振荡电路电容电压信号输入分压 AD 转换单片机显示电压测量流程图对于本设计分压电路模块介绍之前首先分析以下两种设计方案。
多量程分压电路多量程分压器原理上述两图所制作的多量程电压测量,其内阻比较小,不能达到测量要求,对电路做以下改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一:本设计基于 MSP430G2231 为核心控制系统,结合适量的硬件设计, 配合 12864 液晶,制作出一个自动量程的电压,电阻,温度测试仪表。
电压量程 在 0-11V,电阻档量程:0-100kΩ,温度适于室温测量。
此表多适用于电子 DIY 爱 好者使用。
二:原理当被测电压 VDD 时,由上图可知,我们只需测出 V 值,即可知道 VDD 值。
VDD=V*(R9+R10)/R10.而 V 的值可用 430 的 ADC 采集得到。
2. 电阻测量:原理和电压测量一样当 VDD 已知,R10 已知,V 已知时。
R9 的阻值: R9=(VDD/V-1)*R10。
3:温度测量:基于 18B20。
DS1820 数字温度计以 9 位数字量的形式反映器 件的温度值。
DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和 DS1820 之间仅需一条连 接线(加上地线)。
用于读写和温度转换的电源可以从数据线本身获得,无需外 部电源。
因为每个 DS1820 都有一个独特的片序列号, 所以多只 DS1820 可以同时连在 一根单线总线上, 这样就可以把温度传感器放在许多不同的地方。
这一特性在 HVAC 环境控制、 探测建筑物、仪 器或机器的温度以及过程监测和控制等方面非常有用。
整体设计思路三:电路实现1:电阻与电压测量外围硬件电路图,电压测量时,高电位端接红表笔,低电位 端接黑表笔。
通过运放的电压跟随,解决了数字万用表仅使用于测量恒压源的窘 境, 但同时也由于运放的限制, 测量电压范围变小。
当测量电压低于 2V 时, ADC0 采集的电压值有效,作为测量值,而 ADC1 采样无效。
每次测量都是由大量程开 始,通过程序判断,该量程是否合适,如量程太大,进行小量程切换。
2:电阻的测量是本设计的经典,不借助于模拟开关,手动开关选档。
而借助于 单片机 IO 口的上拉输出,高阻态输入完成自动选档。
如当 P12 为高电平时,P13 为高阻态时,R5 与被测电阻形成通路分 IO 口电压,然后再经 358 跟随供 AD 采 集。
通过切换 P12,P13 的输入输出状态即可实现档位切换。
2:18B20 具有很多优秀的特性,如零待机功耗,独特的单线接口仅需一个端口引 脚进行通讯,报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器 件。
3:电源模块 因为用的是 MSP430 的 LAUNCHPAD 开发板,故 3,5V 供电电压不用单独 制作。
只需产生运放需要要的 12V 电压,本设计依赖 34063 的芯片的升压,由 5V 升到 12V。
4:液晶显示模块此设计也是经典之举,尽管抬高了此作品的造价,因 430 总共只有 10 个可操控 IO 口,而一般的显示模块都得用 8 个左右,而用 12864 的串行模式,同时运用MSP430 的 SPI 通信,既方便又高效的完成了液晶显示的操作。
同时采用 5 分 钟定时息屏操作,从根本上解决了低功耗的问题,环保,节约。
关于 12864 这 里不再赘述。
4:按键模块因为设计温度是一直显示,所以就只需对电阻,电压进行选择。
所以运用了两个 按键作为人际交互手段,而复位按键由 MSP430 开发板自身提供。
源码: /* * main.c */ #include <msp430.h> typedef struct REG{ unsigned bit0 : 1; unsigned bit1 : 1; unsigned bit2 : 1; unsigned bit3 : 1; unsigned bit4 : 1; unsigned bit5 : 1; unsigned bit6 : 1; unsigned bit7 : 1; }REG; typedef enum STATE{ WELCOME = 1, VOLTAGE, RESISTANCE }STATE;#define uchar unsigned char #define uint unsigned int #define jump_ROM 0xCC #define start 0x44 #define read_EEROM 0xBE typedef unsigned char byte; typedef unsigned int word; #define N_SAMPLE 12 #define P1 ((REG *) 0x0021) #define RS P1->bit7 #define DQ P1->bit4 //DS18B20 数据口 void dispnum(unsigned int a,unsigned char x,unsigned char y) ; void dispuserset(unsigned int a,unsigned char x,unsigned char y); volatile STATE state = WELCOME; word adc_value[N_SAMPLE]; unsigned char TMPH,TMPL; void Key_Init(void) { P2SEL &= ~BIT6 + ~BIT7; P2REN |= BIT6 + BIT7; P2OUT |= BIT6 + BIT7; P2IE |= BIT6 + BIT7; P2IES |= BIT6 + BIT7; P2IFG &= ~BIT6 + ~BIT7; } void TimerA0_Init(void) { TACCR0 = 30000; TACCR1 = 20000; TACTL = TASSEL_2 + MC_2 + ID_3; TACCTL1 = CCIE; TACTL |= TACLR; } void ADC_Init(void) { ADC10CTL1 = CONSEQ_2;ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; ADC10DTC1 = N_SAMPLE; ADC10SA = (word) adc_value; } void ADC_Channel_Select(word channel) { ADC10CTL1 &= 0x0fff; ADC10CTL1 |= channel; ADC10AE0 &= 0x00; ADC10AE0 = (1 << (channel >> 12)); }inline void SPI_Init(void) { USICTL0 |= USIPE6 + USIPE5 + USIMST + USIOE; USICTL1 |= USICKPH + USIIE; USICKCTL = USIDIV_4 + USISSEL_2; USICTL0 &= ~USISWRST; __enable_interrupt(); } void SPI_Transmit(byte data) { USISRL = data; USICNT = 8; // while (!(USIIFG & USICTL1)); LPM0; } /******************************************************************** * 名称 : delay() * 功能 : 延时函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void delay(unsigned int yN) { unsigned int i; for(i=0; i<yN; i++) ; }/******************************************************************** * 名称 : Reset() * 功能 : 复位 DS18B20 * 输入 : 无 * 输出 : 无 ***********************************************************************/ uchar Reset(void) { uchar deceive_ready; DQ = 0; delay(29); DQ = 1; delay(3); deceive_ready = DQ; delay(25); return(deceive_ready); } /******************************************************************** * 名称 : read_bit() * 功能 : 从 DS18B20 读一个位值 * 输入 : 无 * 输出 : 从 DS18B20 读出的一个位值 ***********************************************************************/ uchar read_bit(void) { uchar i; DQ = 0; DQ = 1; for(i=0; i<3; i++); return(DQ); } /******************************************************************** * 名称 : write_bit() * 功能 : 向 DS18B20 写一位 * 输入 : bitval(要对 DS18B20 写入的位值) * 输出 : 无 ***********************************************************************/ void write_bit(uchar bitval) { DQ=0;if(bitval==1) DQ=1; delay(5);DQ=1; } /******************************************************************** * 名称 : read_byte() * 功能 : 从 DS18B20 读一个字节 * 输入 : 无 * 输出 : 从 DS18B20 读到的值 ***********************************************************************/ uchar read_byte(void) { uchar i,m,receive_data; m = 1; receive_data = 0; for(i=0; i<8; i++) { if(read_bit()) { receive_data = receive_data + (m << i); } delay(6); } return(receive_data); } /******************************************************************** * 名称 : write_byte() * 功能 : 向 DS18B20 写一个字节 * 输入 : val(要对 DS18B20 写入的命令值) * 输出 : 无 ***********************************************************************/ void write_byte(uchar val) { uchar i,temp; for(i=0; i<8; i++) { temp = val >> i; temp = temp & 0x01; write_bit(temp); delay(5); } }/********************************************************************* 名称: GETDATA()* 功能: 获取数据* 输入: 无* 输出: 温度值,整数***********************************************************************/ unsigned int GETDATA(){unsigned int temp;DQ = 0;Reset();write_byte(jump_ROM);write_byte(start);Reset();write_byte(jump_ROM);write_byte(read_EEROM);TMPL = read_byte();TMPH = read_byte();temp = TMPL>>4 + 4<<TMPH;return temp;}void LCD_Write_Cmd(byte com){RS = 1;SPI_Transmit(0xf8);SPI_Transmit(0xf0 & com);SPI_Transmit(0xf0 & (com << 4));RS = 0;}void LCD_Write_Dat(byte dat){RS = 1;SPI_Transmit(0xfa);SPI_Transmit(0xf0 & dat);SPI_Transmit(0xf0 & (dat << 4));RS = 0;}void LCD_Pos(byte x, byte y){byte pos;switch(x){case 0:x = 0x80;break;case 1:x = 0x90;break;case 2:x = 0x88;break;case 3:x = 0x98;break;default:break;}pos = x + y;LCD_Write_Cmd(pos);}void LCD_Init(void){LCD_Write_Cmd(0x30);LCD_Write_Cmd(0x0c);LCD_Write_Cmd(0x01);LCD_Write_Cmd(0x02);LCD_Write_Cmd(0x80);}void LCD_Write_Str(byte x, byte y, char *str) {LCD_Pos(x, y);while (*str){LCD_Write_Dat(*str++);}}void LCD_Clear_Screen(void){LCD_Write_Cmd(0x34);LCD_Write_Cmd(0x30);LCD_Write_Cmd(0x01);}void Disp_Welcome_Msg(void){LCD_Write_Str(0, 1, "自动量程仪表");LCD_Write_Str(1, 0, "温度: °C");LCD_Write_Str(2, 0, "1:电阻2:电压");LCD_Write_Str(3, 0, " 欢迎使用");}word filter(void){word ad_val;int i;for (i = 0; i < N_SAMPLE; i++){ad_val += adc_value[i];}ad_val /= N_SAMPLE;return ad_val;}void Measure_Voltage(void){word ad_val = 0;byte flag=0;LCD_Write_Str(2, 0, " ");LCD_Write_Str(2, 0, "电压:");LCD_Write_Str(3, 0, " ");ADC_Channel_Select(INCH_1);ADC10CTL0 &= ~ENC;while (ADC10CTL1 & BUSY); // Wait if ADC core is activeADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start LPM0;ad_val = filter();if (ad_val > 150){flag=1;}else{flag=0;ADC_Channel_Select(INCH_2);ADC10CTL0 |= ADC10SC;LPM0;ad_val = filter();}if(flag==1){ad_val=ad_val*1.05;dispuserset(ad_val,3,2);}else{ad_val=ad_val*3.60;dispuserset(ad_val,3,2);}LCD_Write_Str(3, 4, "V");}inline void Measure_Resistance(void){byte flag=0;word ad_val,temp_adc;LCD_Write_Str(2, 0, " ");LCD_Write_Str(2, 0, "电阻:");LCD_Write_Str(3, 0, " ");P1DIR |= BIT2;P1DIR &= ~BIT3;P1OUT |= BIT2;ADC_Channel_Select(INCH_0);ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start LPM0;ad_val = filter();if (ad_val > 150){flag=1;}else{flag=0;P1DIR |= BIT3;P1DIR &= ~BIT2;P1OUT |= BIT3;ADC_Channel_Select(INCH_0);ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start LPM0;ad_val = filter();}if(flag==1){temp_adc=1024-ad_val; //(带小数显示)temp_adc=ad_val*10/temp_adc;temp_adc=50*temp_adc;dispuserset(temp_adc,3,2);LCD_Write_Str(3, 4, "KOH");}else{temp_adc=1024-ad_val; //(整数显示)temp_adc=ad_val*10/temp_adc;temp_adc=100*temp_adc;dispnum(temp_adc,3,2);LCD_Write_Str(3, 4, "OH");}}void main(void) {WDTCTL = WDTPW + WDTHOLD;P1DIR |= BIT7 + BIT4;SPI_Init();LCD_Init();ADC_Init();Key_Init();TimerA0_Init();P1DIR |= BIT0;// Disp_Welcome_Msg();for(;;){switch(state){case WELCOME:Disp_Welcome_Msg();//dispnum(GETDATA(),1,2);break;case RESISTANCE:Measure_Resistance();break;case VOLTAGE:Measure_Voltage();break;}LPM0;}}#pragma vector = USI_VECTOR__interrupt void USI_ISR(void){USICTL1 &= ~USIIFG;LPM0_EXIT;}#pragma vector = TIMERA1_VECTOR __interrupt void TIMERA1_ISR(void) {switch(TAIV){case 2:TACCR1 += 20000;LPM0_EXIT;break;}}#pragma vector = ADC10_VECTOR __interrupt void ADC10_ISR(void) {LPM0_EXIT;}#pragma vector = PORT2_VECTOR __interrupt void PORT2_ISR(void) {if (TACCTL0 & CCIFG){if (P2IFG & BIT6){if (state == VOLTAGE){state = WELCOME;}elsestate = VOLTAGE;}}if (P2IFG & BIT7){if (state == RESISTANCE){state = WELCOME;}else{state = RESISTANCE;}}TACCTL0 &= ~CCIFG;TACCR0 += 30000;}P2IFG &= ~BIT6 + ~BIT7;}/********************************************************************************/ void dispnum(unsigned int a,unsigned char x,unsigned char y) //整数显示(4位数-9999){unsigned char flag,i=0;unsigned char out[5];out[0]=' ';out[1]=48+(a/1000);a=a%1000;out[2]=48+(a/100);a=a%100;out[3]=48+(a/10);out[4]=48+(a%10);flag=0;for(i=1;(i<4)&&(flag==0);i++){if(out[i]==48){out[i]=32;}{flag=1;}}LCD_Pos( x, y);i=0;while (i<5){LCD_Write_Dat(out[i]);i++;}}void dispuserset(unsigned int a,unsigned char x,unsigned char y)//小数显示(2位数+2位小数-99.99){unsigned char flag,i=0;unsigned char out[5];out[0]=48+(a/1000);a=a%1000;out[1]=48+(a/1000);a=a%100;out[2]='.';out[3]=48+(a/10);a=a%10;out[4]=48+a;flag=0;for(i=0;(i<2)&&(flag==0);i++){if(out[i]==48){out[i]=32;}else{flag=1;}}LCD_Pos( x, y);while (i<5){LCD_Write_Dat(out[i]); i++;}}。