数字电压表(单片机)

合集下载

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

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

目录1 引言 (1)2设计原理及要求 (2)2.1数字电压表的实现原理 (2)2.2数字电压表的设计要求 (2)3软件仿真电路设计 (3)3.1设计思路 (3)3.2仿真电路图 (3)3.3设计过程 (3)3.4 AT89C51的功能介绍 (4)3.4.1简单概述 (4)3.4.2主要功能特性 (5)3.4.3 AT89C51的引脚介绍 (5)3.5 ADC0808的引脚及功能介绍 (7)3.5.1芯片概述 (7)3.5.2 引脚简介 (7)3.5.3 ADC0808的转换原理 (7)3.6 74LS373芯片的引脚及功能 (8)3.6.1芯片概述 (8)3.6.2引脚介绍 (8)3.7 LED数码管的控制显示 (8)3.7.1 LED数码管的模型 (8)3.7.2 LED数码管的接口简介 (9)4系统软件程序的设计 (10)4.1 主程序 (10)4.2 A/D转换子程序 (10)4.3 中断显示程序 (12)5电压表的调试及性能分析 (13)5.1 调试与测试 (13)5.2 性能分析 (13)6电路仿真图 (14)7总结 (15)参考文献 (16)附录1 源程序 (17)附录2 仿真原理电路 (23)1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

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

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

本章重点介绍单片机A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。

基于单片机的数字电压表设计

基于单片机的数字电压表设计

基于单片机的数字电压表设计一、引言在电子测量领域中,电压表是一种常用的测量仪器,用于测量电路中的电压值。

传统的模拟电压表由于精度低、读数不便等缺点,逐渐被数字电压表所取代。

数字电压表具有精度高、读数直观、抗干扰能力强等优点,广泛应用于工业自动化、电子设备检测、实验室测量等领域。

本文将介绍一种基于单片机的数字电压表设计方案,详细阐述其硬件电路设计、软件编程实现以及系统性能测试。

二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 0 5V 的直流电压,测量精度为 001V,具有实时显示测量结果的功能。

(二)系统组成本数字电压表系统主要由以下几个部分组成:1、传感器模块:用于将输入的电压信号转换为适合单片机处理的电信号。

2、单片机模块:作为系统的核心,负责对传感器采集到的数据进行处理和计算,并控制显示模块显示测量结果。

3、显示模块:用于实时显示测量的电压值。

三、硬件电路设计(一)传感器模块选用 ADC0809 作为模数转换芯片,它具有 8 个模拟输入通道,可以将 0 5V 的模拟电压转换为 8 位数字量输出。

(二)单片机模块选择 AT89C51 单片机作为控制核心,它具有 4K 字节的 Flash 程序存储器和 128 字节的随机存取数据存储器。

(三)显示模块采用液晶显示屏(LCD1602)作为显示器件,它能够清晰地显示数字和字符信息。

四、软件编程实现(一)编程语言选择使用 C 语言进行编程,C 语言具有语法简洁、可移植性强等优点。

(二)主程序流程主程序首先进行系统初始化,包括单片机端口初始化、LCD1602 初始化、ADC0809 初始化等。

然后启动 ADC0809 进行模数转换,读取转换结果并进行数据处理,计算出实际的电压值。

最后将电压值发送到 LCD1602 进行显示。

(三)模数转换子程序ADC0809 的转换过程通过控制其启动转换引脚(START)和读取转换结束引脚(EOC)来实现。

单片机数字电压表主控制模块工作原理

单片机数字电压表主控制模块工作原理

单片机数字电压表主控制模块工作原理单片机数字电压表的主控制模块是整个系统的核心,负责采集、处理和显示电压信息。

以下是其工作原理的详细解释:电压输入:外部电路将待测电压接入数字电压表系统。

这个电压可能来自各种测量对象,如电池、电源等。

电压分压:如果输入电压超出了单片机的工作范围,通常会使用电阻分压电路将电压降低到单片机可接受的范围内。

分压电路的设计需要考虑电阻值、稳定性和功耗等因素。

模拟信号采样:单片机通过其内部的模数转换器(ADC,Analog-to-Digital Converter)对分压后的模拟电压进行采样。

ADC将连续的模拟信号转换为相应的数字值,通常以二进制形式表示。

数字信号处理:单片机通过编程,对ADC采样得到的数字信号进行处理。

这可能包括对电压进行校准、滤波、数学运算等操作,以确保精准的电压测量结果。

显示控制:处理后的电压数值通过单片机的输出引脚连接到数字显示模块。

这个模块可能是LED、LCD等数字显示器,用于直观地显示电压数值。

用户界面和控制:主控制模块通常还包括用户界面和控制功能。

用户可以通过按键、旋钮或其他输入设备设置测量范围、选择显示单位等。

电源管理:主控制模块通常需要管理系统的电源。

这包括对电池电量的监测、低功耗设计等,以确保数字电压表的长时间可靠运行。

通信接口(可选):如果数字电压表具备通信功能,主控制模块可能还需要处理与外部设备的数据通信。

这可能包括串口通信、无线通信等。

总体而言,主控制模块在单片机数字电压表中扮演着核心角色,通过采集、处理和显示电压信息,为用户提供准确而便捷的电压测量结果。

其工作原理复杂,设计需要综合考虑电路设计、软件编程和用户交互等多个方面。

51单片机的数字电压表设计不需要仿真

51单片机的数字电压表设计不需要仿真

51单片机的数字电压表设计不需要仿真(原创版)目录一、引言二、51 单片机的数字电压表设计原理1.主要硬件2.电路设计3.编程方法三、设计优点1.电路简单2.成本低3.性能稳定四、设计局限性五、总结正文一、引言在电子技术领域,数字电压表是一种重要的测量工具,它可以将模拟信号转化为数字信号,并显示在数码管上。

随着单片机技术的不断发展,基于单片机的数字电压表设计越来越受到关注。

本文将以 51 单片机为例,介绍一种数字电压表的设计方法,该方法不需要仿真。

二、51 单片机的数字电压表设计原理1.主要硬件本设计采用 AT89C51 单片机、AD 转换器 ADC0808 和共阳极数码管为主要硬件。

AT89C51 是一款 8 位单片机,具有较高的执行速度和稳定性;ADC0808 是一款 12 位 A/D 转换器,可以将模拟信号转换为数字信号;共阳极数码管用于显示数字信号。

2.电路设计电路设计主要包括输入电阻分压、ADC0808 的连接和数码管的动态扫描显示。

在输入端,采用电阻分压方式降低输入电压,使其适合 ADC0808 的输入范围。

ADC0808 的输出端连接到单片机的数据总线,单片机根据输出的数字信号进行数据处理。

数码管采用动态扫描显示方式,通过单片机控制数码管的点亮时间,实现数字信号的显示。

3.编程方法编程主要分为两部分:一是数据采集,即将模拟信号转换为数字信号;二是数据处理和显示,即将采集到的数字信号进行处理并在数码管上显示。

在数据采集部分,程序需要发送 ADC0808 的启动信号,并读取转换后的数字信号。

在数据处理和显示部分,程序需要根据数码管的显示要求,控制数码管的点亮时间。

三、设计优点1.电路简单:本设计采用较少的硬件,电路连接简单,易于实现。

2.成本低:主要硬件都是常见的单片机和元器件,成本较低。

3.性能稳定:采用成熟的单片机技术,性能稳定可靠。

四、设计局限性虽然本设计具有较多的优点,但仍然存在一定的局限性。

基于单片机的数字电压表的课程设计

基于单片机的数字电压表的课程设计

基于单片机的数字电压表的课程设计一、引言在电子测量领域,电压表是一种常见且重要的测量工具。

传统的模拟电压表存在精度低、读数不直观等缺点,而数字电压表则凭借其高精度、高稳定性和直观的数字显示等优势,在电子测量中得到了广泛的应用。

本课程设计旨在基于单片机设计一款数字电压表,以实现对直流电压的准确测量和数字显示。

二、设计要求1、测量范围:0 5V 直流电压。

2、测量精度:优于 01V 。

3、显示方式:四位数码管显示。

4、具备超量程报警功能。

三、系统总体设计本数字电压表系统主要由单片机最小系统、A/D 转换模块、数码管显示模块和报警模块组成。

单片机最小系统作为控制核心,负责整个系统的运行和数据处理。

A/D 转换模块将输入的模拟电压转换为数字量,供单片机读取。

数码管显示模块用于显示测量的电压值。

报警模块在测量电压超过设定范围时发出报警信号。

四、硬件设计1、单片机最小系统选用 STC89C52 单片机,其具有性能稳定、价格低廉等优点。

最小系统包括单片机芯片、晶振电路和复位电路。

2、 A/D 转换模块采用 ADC0809 芯片进行 A/D 转换。

ADC0809 是 8 位逐次逼近型A/D 转换器,具有 8 个模拟输入通道,能够满足本设计的需求。

3、数码管显示模块使用四位共阳极数码管进行电压显示。

通过单片机的 I/O 口控制数码管的段选和位选,实现数字的显示。

4、报警模块采用蜂鸣器作为报警元件,当测量电压超过 5V 时,单片机输出高电平驱动蜂鸣器发声报警。

五、软件设计软件部分主要包括主程序、A/D 转换子程序、数据处理子程序和显示子程序等。

1、主程序负责系统的初始化,包括单片机端口设置、A/D 转换器初始化等。

然后循环调用 A/D 转换子程序、数据处理子程序和显示子程序,实现电压的测量和显示。

2、 A/D 转换子程序控制 ADC0809 进行 A/D 转换,并读取转换结果。

3、数据处理子程序将 A/D 转换得到的数字量转换为实际的电压值,并进行精度处理。

单片机数字电压表的设计

单片机数字电压表的设计

单片机数字电压表的设计《电子制作》2023年第八期1系统概述1.1设计任务设计一个在0~5v电压值的数字电压表将模拟电压值转换为数字信号(以2数字显示),并通过模拟电压表观看ADC0808模拟输入的电压值与对应的数码管LED数值显示是否全都。

1.2总体方案数字电压表系统组成框架图。

该电路的设计需要使用一个电源电路,A/D转换电路,单片机掌握电路,显示电路。

设计需要使用AT89C51单片机,ADC-0808,74LS74,LED数码管。

2Proteus仿真软件接口电路的设计测量电压由ADC0808输入信号的最大工作电压范围,模拟数字转换电路实现A/D转换之后,由MCU掌握电路进展数据处理程序,然后由七段译码器驱动电路,以实现数码管LED实时显示。

软件仿真电路图如图2所示。

2.1AT89C51单片机和数码管显示接口电路的设计采纳两个数码管LED进展实时数值显示用AT89C51和ADC0808设计的数字电压表数值,当直流电压0~5V模拟信号转换成数字信号0~FF时。

当Proteus仿真软件的启动时,用2.5V电流输入电压的数字值转换为7FH的数字值,你可以用鼠标指针调整电位器RV1以转变输入的A/D转换器ADC0808的电压和ADC0808,最终通过一个虚拟的模拟电压表观看输入电压信号,以及对对应的LED显示的实时数字值。

在Proteus软件振荡频率设置AT89C51单片机为12MHz。

该电路EA接高电平,没有扩展片上ROM。

2.2A/D转换电路的程序设计有8个模拟输入信号IN0~IN7(1~5英尺26~28英尺)的A/D转换器集成电路ADC0808、ADC0808,由地址线C,B,A(23~25英尺)打算哪个通道模拟量输入信号并进展A/D转换,电路中的地址线C,B,A的接地,0频道的准电压信号输入选择模式。

A/D转换的开头信号为输入为高电平常6英尺START启动掌握信号。

该电路将接收的ALE脚和腿一起由单片机的P2.0WR脚共同启动了脚,或非门掌握。

51单片机的数字电压表设计不需要仿真

51单片机的数字电压表设计不需要仿真

51单片机的数字电压表设计不需要仿真
摘要:
1.51单片机数字电压表设计简介
2.硬件电路组成及原理
3.软件程序设计要点
4.系统性能与应用
正文:
一、51单片机数字电压表设计简介
51单片机数字电压表设计是一种基于嵌入式技术的电子测量工具,具有体积小、精度高、操作简便等优点。

本设计以51单片机为核心,结合A/D转换器、显示模块等硬件,实现对输入模拟电压信号的采集、处理和显示。

二、硬件电路组成及原理
1.核心控制器:51单片机
2.A/D转换器:将模拟电压信号转换为数字信号
3.显示模块:采用共阳极数码管,实现数字电压值的显示
4.模拟量输入:电阻分压电路,可测量0-5V范围内的电压信号
三、软件程序设计要点
1.初始化:配置单片机的工作模式、时钟频率等参数
2.A/D转换:设置A/D转换器的工作模式,进行电压信号的采样和转换
3.数据处理:对A/D转换后的数字信号进行处理,如数据调整、滤波等
4.显示更新:根据处理后的数据,通过动态扫描显示技术更新数码管的显
示内容
5.循环检测:持续监测输入电压信号,实时更新显示
四、系统性能与应用
本设计的51单片机数字电压表具有以下特点:
1.测量范围:0-5V
2.精度:±1%
3.响应速度:≤100ms
4.电源:直流5V
广泛应用于工业生产、实验室测量、电子产品研发等领域,为工程师提供了一种高效、准确的电压测量解决方案。

通过以上介绍,我们可以了解到51单片机数字电压表的设计原理、硬件组成和软件程序设计方法。

在实际应用中,根据具体需求可以对电路和程序进行优化调整,提高系统的性能和稳定性。

基于单片机的简易数字电压表设计

基于单片机的简易数字电压表设计

基于单片机的简易数字电压表设计随着电子技术的迅猛发展,数字电压表在实验室、工业和日常生活中的应用越来越广泛。

本文将详细介绍基于单片机的简易数字电压表的设计过程,包括系统设计思路、硬件选型、软件实现以及调试过程。

设计一个简易数字电压表的目标是实现对直流电压的实时测量,并将其以数字形式显示。

该系统的核心是单片机,它负责数据采集、处理及结果显示。

选用单片机的原因在于其体积小、成本低、易于编程等优点。

在硬件设计方面,系统主要由输入电路、单片机、显示模块和电源模块组成。

输入电路的作用是将待测电压信号转化为单片机可处理的电信号。

一般采用分压电路,通过电阻分压的方法,将高电压降低至单片机的可接受范围。

还需考虑输入电压的范围,以确保测量精度和系统安全。

选用的单片机需具备一定的模拟输入功能,以便对电压进行采样。

常用的单片机型号有51系列、AVR系列及STM32系列等,其中STM32系列因其较高的性能和丰富的外设而受到广泛关注。

在设计中,应根据具体需求选择合适的单片机,并进行必要的引脚配置。

显示模块的选择是系统设计的重要环节,常用的有液晶显示屏(LCD)和七段数码管。

液晶显示屏具有显示内容丰富、可视角度广等优势,但其功耗相对较高。

而七段数码管则以其简洁明了的特性广泛应用于数字电压表中。

在本设计中,建议使用LCD显示模块,以便于显示多位数值及相关信息。

电源模块的设计需确保系统的稳定运行。

一般采用稳压电源,为单片机及其他外设提供稳定的电压供应。

需考虑电源的功耗及散热问题,确保系统在长期工作中不会出现故障。

数据处理模块是整个系统的核心,其主要任务是将采集到的模拟电压信号转换为相应的数字值。

可采用模数转换(ADC)技术,将模拟信号转换为数字信号,并进行必要的线性化处理。

处理过程中,应考虑量化误差及噪声对测量结果的影响。

数据显示模块负责将处理后的电压值通过LCD显示出来。

在这一过程中,需要对显示内容进行格式化,以确保信息的清晰易读。

基于单片机的数字电压表设计

基于单片机的数字电压表设计

基于单片机的数字电压表设计数字电压表在电子技术中使用非常广泛,可以用来测量电路中的直流电压、交流电压以及各种信号的幅度等等。

基于单片机的数字电压表实现了数字电压的读取和显示,具有精确、稳定、易操作等特点,下面将介绍基于单片机的数字电压表的设计原理及实现方法。

一、系统结构基于单片机的数字电压表主要是由程序控制模块、模数转换模块和数字显示模块组成。

程序控制模块主要用来完成开机、校准、测试、功能选择等功能;模数转换模块主要将电压信号转换成数字量,供数字显示模块使用;数字显示模块主要将转换后的数字量显示在LCD液晶屏上。

二、硬件设计1.电源电路电源电路主要用来为电路提供稳定的电压和电流,本电路采用稳压电源芯片LM7805实现,稳压芯片输入端连接外部DC12V/1A电源,输出端连接电路板上的整个电路。

2.输入电路输入电路主要用来将被测电源的电压传递给单片机,常规情况下采用分压电路实现。

在本电路中,电阻R1和电容C1为RC滤波电路,起到滤波作用,防止干扰信号的影响;电阻R2是分压电路中的电阻,它根据电压值的不同设置不同的值,以保证被测电压在单片机内部转换过程中不会对单片机产生影响。

3.单片机模块单片机模块是系统的核心部分,本电路中选用STM32F103C8T6单片机实现模数转换和数码管控制,使用C 语言编写程序,通过模拟输入端口读取电压并进行模数转换,将得到的数字使用查表法将其转换为数码管控制脉冲,控制数码管的亮灭实现数字显示。

4.数字显示模块数字显示模块主要由七段数码管、LCD液晶屏幕、导线和电容等器组成,七段数码管用于展示测量到的电压大小,LCD 液晶屏用于展示功能选项、单位等信息。

导线是电路板内部连接线路,电容等器用来平滑电压波动。

三、软件设计1.引脚定义在程序中首先定义STM32F103C8T6单片机内存地址、输入输出引脚和电平状态,其中A0口用来读取被测电压;B0-B7口用来控制七段数码管的亮灭;C0口用来输出PWM,控制风扇的旋转速度;D0口用来控制蜂鸣器的开启和关闭。

单片机数字电压实训报告

单片机数字电压实训报告

一、实训目的1. 掌握单片机的基本原理和操作方法。

2. 学会使用单片机进行数字电压的测量。

3. 熟悉数字电压表的硬件电路设计和软件编程。

4. 提高动手实践能力和问题解决能力。

二、实训内容1. 数字电压表概述数字电压表(Digital Voltmeter,简称DVM)是一种将模拟电压信号转换为数字信号的测量仪器。

它具有测量精度高、读数直观、易于操作等优点,广泛应用于电子测量、工业自动化、科学研究等领域。

2. 硬件电路设计(1)单片机选型:选用AT89C51单片机作为核心控制器,具有丰富的片上资源,满足数字电压表设计需求。

(2)模数转换器(ADC)选型:选用ADC0809模数转换器,具有8路模拟输入端口,可实现8路电压信号的采集。

(3)电压输入电路设计:设计多路电压输入电路,包括电压分压、滤波等,确保输入电压信号稳定、准确。

(4)显示模块选择:选用LCD1602液晶显示屏,可实时显示采集到的电压值。

3. 软件设计(1)初始化程序:设置单片机工作模式、波特率、中断等参数,初始化ADC0809和LCD1602。

(2)ADC采集程序:通过单片机控制ADC0809进行电压信号的采集,将模拟电压信号转换为数字信号。

(3)数据处理程序:对采集到的数字电压信号进行处理,计算实际电压值。

(4)显示程序:将计算得到的电压值显示在LCD1602上。

4. 调试与测试(1)硬件调试:检查电路连接是否正确,元器件是否损坏,确保电路正常工作。

(2)软件调试:使用Keil软件进行程序编译、仿真和调试,确保程序运行正确。

(3)功能测试:通过实际测量,验证数字电压表的功能是否满足设计要求。

三、实训结果与分析1. 测量精度通过实际测量,数字电压表在0~5V范围内具有较高的测量精度,最小分辨率为0.019V,误差约为±0.02V。

2. 测量速度数字电压表具有较快的测量速度,可在短时间内完成电压信号的采集、处理和显示。

3. 稳定性和可靠性数字电压表电路设计合理,元器件选用合格,具有较强的稳定性和可靠性。

单片机数字电压表(带仿真图C程序)

单片机数字电压表(带仿真图C程序)

基于51单片机数字电压表本模块采用ADC0832模数转换芯片,LCD1602液晶显示,测量范围0-5V,精度误差0.01V看了很多网上的课程设计或者毕业论文,得出以下几点:1.数字电压表的方案有很多种,有的采用ADC0809,或者ADC0808等,他们都是8温AD,并口传输数据,具有速率高的优点。

但是硬件复杂,与单片机电路繁琐,焊接起来比较麻烦。

所以本设计采用ADC0832,同样8位AD,特点是串口传输数据,硬件接口简单,且精度误差一致,速率也比较快,对于要求不高的系统非常适合。

2.显示电路,网上采用LED显示居多,本设计采用LCD1602液晶显示,具有硬件搭设简单,显示美观等优点3.本设计方便移植,只需将LCD1602三个控制端口,ADC0832 四个控制端口修改即可。

注意LCD1602数据传输接口是单片机的P0口,如下图,需要接上拉电阻4.程序采用C代码编写,亲测直接可以使用,若需仿真文件,请用E-mail联系邮系。

邮箱:gnsywb@5.网上很多设计数据转换程序有误,不够正确。

在转换过程中,中间变量需设置为int 类型,虽然8位AD输出最高位255,但是余数转换过程中会大于255。

若设计char型,会造成显示输出有误。

void convert(uchar a){ uint temp; //特别注意这里需定义int型(余数将大于255)dis[0]=a/51; //取个位temp=a%51;temp=temp*10; dis[1]=temp/51; //取小数点后第一位temp=temp%51;temp=temp*10; dis[2]=temp/51; //取小数点后第二位}具体电路图如下:1.利用电压表与测量显示电压对比附录:C程序/******************************************** 功能:单片机数字电压表ADC0832+LCD16021,测量范围0-5V2,2路输入电压,可自行设定3,测量精度误差0.01V,LCD液晶显示编写者:小子在西藏gnsywb@编写日期:2012-11-5*********************************************/ #include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit lcdrs=P2^4;sbit lcdrw=P2^5;sbit lcden=P2^6; //1602控制端口sbit DI=P3^4;sbit DO=P3^4; //DI和DO与单片机共接口sbit Clk=P3^3;sbit CS=P3^5;//ADC0832控制端口uchar dis[3]={0x00,0x00,0x00}; //显示缓冲区uchar date=0; //AD值uchar CH; //ADC0832通道值/*****************************************AD0832转换程序******************************************/uchar ADC0832(uchar CH){uchar i,dis0,dis1;Clk=0; //拉低时钟DI=1; //初始化_nop_();CS=0; //芯片选定_nop_();Clk=1; //拉高时钟_nop_();if(CH==0) //通道选择{Clk=0; //第一次拉低时钟DI=1; //通道0的第一位_nop_();Clk=1; //拉高时钟_nop_();Clk=0; //第二次拉低时钟,ADC0832 DI接受数据DI=0; //通道0的第二位_nop_();Clk=1;_nop_();}else{Clk=0;DI=1; //通道1的第一位_nop_();Clk=1;_nop_();Clk=0;DI=1; //通道1的第二位_nop_();Clk=1;_nop_();}Clk=0; //第三次拉低时钟,此前DI两次赋值决定通道DI=1; //DI开始失效,拉高电平,便于DO数据传输for(i= 0;i<8;i++) //读取前8位的值{_nop_();dis0<<= 1;Clk=1;_nop_();Clk=0;if (DO)dis0|=0x01;elsedis0|=0x00;}for (i=0;i<8;i++) //读取后8位的值{dis1>>= 1;if (DO)dis1|= 0x80;elsedis1|= 0x00;_nop_();Clk=1;_nop_();Clk=0;}if(dis0==dis1) //两次结束数据比较,若相等date=dis0; //则赋值给dat_nop_();CS=1; //释放ADC0832DO=1; //拉高输出端,方便下次通道选择DI端有效Clk=1; //拉高时钟return date;}/***********************************************数据转换程序功能:将0-255级换算成0.00-5.00的电压数***********************************************/void convert(uchar a){uint temp; //特别注意这里需定义int型(余数将大于255)dis[0]=a/51; //取个位temp=a%51;temp=temp*10;dis[1]=temp/51; //取小数点后第一位temp=temp%51;temp=temp*10;dis[2]=temp/51; //取小数点后第二位}/***************************************** LCD1602驱动程序******************************************/ void delay(uchar z){uint x,y;for(x=z;x>0;x--)for(y=122;y>0;y--);}void write_cmd(uchar cmd)//lcd1602写命令函数{lcdrs=0;lcdrw=0; //选择指令寄存器lcden=1;P0=cmd; //写数据delay(5);lcden=0; //使能拉低lcden=1;}void write_date(uchar date)//lcd1602写数据函数{lcdrs=1;lcdrw=0; //选择数据寄存器lcden=1;P0=date; //写数据delay(5);lcden=0; //使能拉低lcden=1;}void init_lcd1602()//lcd1602初始化{write_cmd(0x01); //清屏write_cmd(0x38); //功能设置write_cmd(0x0c); //显示设置write_cmd(0x06); //输入方式从左到右delay(1);}/***************************************** 显示函数*****************************************/ void display(void){uchar i;write_cmd(0x80);for(i=0;i<3;i++){if(i==1) write_date('.'); //第二位显示小数点write_date (0x30+dis[i]);delay(5);}write_date('V'); //最后一位后显示字符'V'}/************************************************ 主函数***************************************************/ void main(void){CH=0; //选择通道0或1init_lcd1602();//液晶1602显示初始化while(1) //主循环{date=ADC0832(CH);//启动ADC0832转换并接受数据delay(1);convert(date); //数据转换成BCD码display(); //显示数值}}。

单片机设计数字电压表

单片机设计数字电压表

单片机设计数字电压表单片机设计数字电压表数字电压表是一种常见的电子测量仪器,它可以用来测量电路中的电压大小。

在本文中,我们将介绍如何使用单片机设计数字电压表。

单片机是一种集成电路,它可以用来控制电子设备的运行。

在数字电压表中,单片机可以用来读取电路中的电压值,并将其显示在数字显示屏上。

设计数字电压表的第一步是选择适当的单片机。

在本文中,我们将使用ATmega328P单片机。

这是一种常见的单片机,它具有多个输入/输出引脚和内置的模拟数字转换器(ADC)。

接下来,我们需要将电路连接到单片机上。

我们将使用一个电压分压器电路来将电路中的电压降低到单片机可以读取的范围内。

电压分压器电路由两个电阻组成,它们将电路中的电压分成两个部分,其中一个部分与单片机连接。

我们将使用10KΩ和1KΩ电阻来构建电压分压器电路。

接下来,我们需要编写单片机程序来读取电路中的电压值并将其显示在数字显示屏上。

我们将使用C语言编写程序,并使用Arduino开发环境来编译和上传程序。

程序将使用单片机的ADC模块来读取电路中的电压值,并将其转换为数字值。

然后,程序将使用数字显示屏库将数字值显示在数字显示屏上。

最后,我们需要将电路和单片机编程板连接起来,并上传程序到单片机。

我们可以使用USB编程器将程序上传到单片机。

在完成上述步骤后,我们就可以使用数字电压表来测量电路中的电压了。

我们只需要将电路连接到电压分压器电路中,然后将数字电压表连接到电压分压器电路中。

数字电压表将显示电路中的电压值。

总结单片机设计数字电压表是一项有趣的项目,它可以帮助我们了解单片机和电路设计的基础知识。

通过使用单片机和电路设计,我们可以构建各种各样的电子设备,从而实现我们的创意和想法。

51单片机的数字电压表设计

51单片机的数字电压表设计

51单片机的数字电压表设计随着科技的快速发展,单片机在许多领域得到了广泛应用。

51单片机作为一种常见的单片机,具有功能强大、易于编程等优点,因此在数字电压表设计中具有独特优势。

本文将介绍如何利用51单片机设计数字电压表。

数字电压表的电源电路通常采用直流电源,可以通过变压器将交流电转换为直流电,再经过滤波和稳压电路,将电压稳定在单片机所需的电压范围内。

数字电压表的信号采集电路可以采用电阻分压的方式,将待测电压分压后送入单片机进行测量。

为了提高测量精度,可以采用差分放大器对信号进行放大和差分输出。

51单片机内置ADC模块,可以将模拟信号转换为数字信号。

在数字电压表中,可以使用ADC模块对放大后的模拟信号进行转换,得到数字信号后进行处理和显示。

数字电压表的显示电路可以采用液晶显示屏或LED数码管,将测量结果以数字形式显示出来。

液晶显示屏具有显示清晰、亮度高、视角广等优点,但价格较高;LED数码管价格便宜、亮度高、寿命长,但显示内容有限。

数字电压表的主程序主要完成电压的采集、A/D转换和显示等功能。

主程序首先进行系统初始化,包括设置ADC模块参数、初始化显示等;然后不断循环采集电压信号,将采集到的模拟信号转换为数字信号后进行处理和显示。

51单片机的ADC模块可以通过特殊功能寄存器进行配置和控制。

在数字电压表的软件设计中,需要编写ADC模块驱动程序,以控制ADC 模块完成模拟信号到数字信号的转换。

具体实现可以参考51单片机的ADC模块寄存器定义和操作指南。

数字电压表的显示程序需要根据显示硬件选择合适的显示库或驱动程序。

在编写显示程序时,需要将采集到的数字信号转换为合适的数值,并将其显示在显示屏上。

具体实现可以参考所选显示库或驱动程序的文档说明。

精度问题:数字电压表的精度直接影响到测量结果的质量。

为了提高测量精度,可以采用高精度的ADC模块和合适的信号处理技术。

同时,需要注意信号采集电路中电阻的精度和稳定性。

单片机数字电压表课程设计 ppt课件

单片机数字电压表课程设计  ppt课件
4ppt课件3adc0809简介adc0809仿真引脚图8路模拟输入通过3根地址线addaaddbaddc来选通一路模拟通道选择地址信号adda为低位addc为高位ad转换后的数据输出正负参考电压输入端地址锁存允许信号高电平有效输出允许信号高电平有效时钟脉冲信号ad转换启动信号正脉冲有效转换结束信号高电平有效1adc0809
数字电压表特Leabharlann :★显示清晰直观、读数准确
★准确度高、分辨率高
★测量范围宽、扩展能力强
3
★PPT课抗件 干扰能力强等
2.设计要求
此次课程设计的设计要求是: 利用AT89C52与A/D转换器ADC0809设
计一个数字电压表,使其能够测量0~5v直流电 压,4位数码管显示。
4
PPT课件
3.ADC0809简介
7
PPT课件
启动A/D转换

转换是否结束?

输出转换结果
数值转换 显示
4.程序设计及仿真
2.C语言程序源代码
#include<reg52.h>
#include<intrins.h>
sbit EOC=P2^6;
sbit START=P2^5;
sbit OE=P2^7;
sbit CLK=P2^4;
long int a;
}
4.程序设计及仿真
3.Proteus仿真
13 PPT课件
4.程序设计及仿真
3.Proteus仿真
14 PPT课件
滑动变阻器在100%位置时
4.程序设计及仿真
3.Proteus仿真
15 PPT课件
滑动变阻器在80%位置时
4.程序设计及仿真
3.Proteus仿真

单片机课程设计(直流数字电压表)

单片机课程设计(直流数字电压表)

课程设计总结与展 望
课程设计目标:掌握单片机基础知识,学会设计直流数字电压表 课程设计内容:包括硬件设计、软件设计、调试和测试等 课程设计成果:成功设计并制作出直流数字电压表 课程设计收获:提高了单片机应用能力,增强了团队合作和沟通能力
课程设计展望:未来将继续深入学习单片机技术,提高实践能力,为未来就业做好准备
实际应用:可用于测量直流电压,广泛应用于电子、电力等领域 市场前景:随着电子技术的发展,市场需求不断增长 技术更新:需要不断更新技术,提高测量精度和稳定性 市场竞争:面临国内外竞争对手的压力,需要提高产品质量和降低成本
智能化:单片机技术在智能设备中的应用越来越广泛,未来发展方向将更加智能化。
物联网:单片机技术在物联网中的应用越来越广泛,未来发展方向将更加注重物联网技术的应用。
单片机课程设计(直 流数字电压表)
汇报人:
目录
添加目录标题
单片机课程设计概 述
硬件电路设计
软件程序设计
系统调试与测试
课程设计总结与展 望
添加章节标题
单片机课程设计概 述
掌握单片机的基本原理和编程方法 提高动手实践能力和创新能力 培养团队合作精神和解决问题的能力 为未来的学习和工作打下坚实的基础
电源测试:检查电源电压是 否稳定,是否符合要求
信号测试:检查信号输入、 输出是否正常,是否符合要 求
功能测试:检查系统功能是 否正常,是否符合设计要求
性能测试:检查系统性能是 否满足设计要求,如响应时 间、精度等
稳定性测试:检查系统在 长时间运行下的稳定性, 如温度、湿度等环境因素 对系统的影响
软件调试:通过运行程序,发现并修复程序中的错误 软件测试:通过测试程序,验证程序的功能和性能是否符合预期 测试方法:包括单元测试、集成测试、系统测试等 测试工具:可以使用自动化测试工具,如JUnit、Selenium等

单片机数字电压表设计LED显示含C源代码

单片机数字电压表设计LED显示含C源代码

1. 绪论............................... 错误!未定义书签。

1.1 课程设计规定...................... 错误!未定义书签。

1.2 数字电压表简介.................... 错误!未定义书签。

2. 硬件单元电路设计................... 错误!未定义书签。

2.1数字电压表构造框图................. 错误!未定义书签。

2.1.1 AT89C51单片机简介............ 错误!未定义书签。

2.1.2 ADC0832转换器简介............ 错误!未定义书签。

2.1.3 时钟电路..................... 错误!未定义书签。

2.1.4 复位电路..................... 错误!未定义书签。

2.1.5 LED显示电路.................. 错误!未定义书签。

3. 软件单元电路设计................... 错误!未定义书签。

3.1 主程序流程图...................... 错误!未定义书签。

3.2显示子程序流程图................... 错误!未定义书签。

3.3 A/D转换子程序流程图............... 错误!未定义书签。

3.4 数据解决子程序流程图.............. 错误!未定义书签。

4. 数字电压表仿真设计图与实物图....... 错误!未定义书签。

4.1 仿真图............................ 错误!未定义书签。

4.2 器件清单.......................... 错误!未定义书签。

4.3 硬件电路实物图.................... 错误!未定义书签。

5. 程序代码.............................. 错误!未定义书签。

单片机直流式数字电压表

单片机直流式数字电压表

单片机直流式数字电压表一、引言随着科技的发展,电子测量仪器在各个领域的应用越来越广泛。

其中一类常见的测量仪器就是数字电压表。

数字电压表是用来测量电路中直流电压的一种仪器,它通过单片机技术实现电压的测量、转换和显示。

本文将介绍单片机直流式数字电压表的原理、工作方式以及其在实际应用中的优势。

二、原理单片机直流式数字电压表的原理主要是利用单片机的模数转换功能,将输入的模拟电压转换为数字信号,并通过数码管进行显示。

其具体原理如下:1. 电压输入:待测电压通过电阻分压电路接入单片机的模拟输入端,经过适当的分压比例,将待测电压缩小到单片机能够接受的范围。

2. 模数转换:单片机内部的模数转换器将模拟输入电压转换为相应的数字信号。

模数转换器的精度和分辨率决定了数字电压表的测量精度。

3. 数字信号处理:单片机通过对模数转换器输出的数字信号进行处理,得到对应的电压数值。

这个过程涉及到数据处理和算法实现。

4. 数码管显示:最后,单片机将得到的电压数值通过驱动数码管的方式进行显示,使用户能够直观地了解待测电压的数值。

三、工作方式单片机直流式数字电压表的工作方式主要包括以下几个步骤:1. 初始化:在测量前,需要对单片机进行初始化设置,包括输入引脚的配置、模数转换器的参数设定等。

2. 采样:在测量过程中,单片机按照一定的时间间隔对输入电压进行采样,即获取一系列的模拟电压值。

3. 转换:采样完成后,单片机将采样到的模拟电压值转换为数字信号,以便进行后续的处理和显示。

4. 处理:单片机对转换得到的数字信号进行处理,得到对应的电压数值。

这个过程可能包括校准、滤波、线性化等操作。

5. 显示:最后,单片机将处理得到的电压数值通过驱动数码管的方式进行显示,使用户能够直观地了解待测电压的数值。

四、优势相比传统的模拟电压表,单片机直流式数字电压表具有以下几个优势:1. 精度高:单片机内部的模数转换器具有较高的精度和分辨率,可以达到较高的测量精度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要:本文介绍一种基于89S52单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。

正文着重给出了软硬件系统的各部分电路,介绍了双积分电路的原理,89S52的特点,ICL7135的功能和应用,LCD1601的功能和应用。

该电路设计新颖、功能强大、可扩展性强。

关键词:电压测量,ICL7135,双积分A/D转换器,1601液晶模块Abstract : The introduction of a cost-based 89S52 MCU a voltage measurement circuits, the circuits used ICL7135 high-precision, dual-scoring A/D conversion circuits, measuring scope DC 0-2000 volts, the use of LCD that can be carried out with a PC serial communications. The paper focuses on providing a software and hardware system components circuit, introduced double integral circuit theory, 89S52 features ICL7135 functions and applications, LCD1601 functions and applications.the circuit design innovative, powerful, can be expansionary strong.Key Words : Digital Voltmeter ICL7135 LCD1601 89S521前言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可输入电路 A/D 转换 89S52单片机LCD 显示 通讯模块 与PC 进行实时通信。

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

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

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

2 系统原理及基本框图如图2.1所示,模拟电压经过档位切换到不同的分压电路衰减后,经隔离干扰送到A/D 转换器进行A/D 转换,然后送到单片机中进行数据处理。

处理后的数据送到LCD 中显示,同时通过串行通讯与上位机通信。

图2.1系统基本方框图 3硬件设计3.1 输入电路图3.1.1量程切换开关图3.1.2衰减输入电路输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。

智能化数字电压表所采用的单片双积分型ADC芯片ICL7135,它要求输入电压0-±2V。

本仪表设计是0-1000V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图3.1.2所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。

衰减输入电路可由开关来选择不同的衰减率,从而切换档位。

为了能让CPU自动识别档位,还要有图3.1.1的硬件连接。

3.2 A/D 转换电路A/D 转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。

本设计采用双积A/D 转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。

在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。

3.2.1双积A/D 转换器的工作原理图3.2.1.1双积A/D 转换器如图所示:对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变换成与输入模拟电压成正比的时间间隔T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。

在常用的A/D转换芯片(如ADC -0809、图3.2.1.2双积A/D 转换器的波形图ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D转换器,具有精度高(精度相当于14位二进制数)、价格低廉、抗干扰能力强等优点。

本文介绍用单片机并行方式采集ICL7135的数据以实现单片机电压表和小型智能仪表的设计方案。

3.2.1 7135的应用7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为2V的数字电压表。

㈠7135主要特点如下:①双积型A/D转换器,转换速度慢。

②在每次A/D转换前,内部电路都自动进行调零操作,可保证零点在常温下的长期稳定。

在20000字(2V3.2.1.1 ICL7135引脚图满量程)范围内,保证转换精度1字相当于14bitA/D转换器。

③具有自动极性转换功能。

能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为0~±1.9999V。

④模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。

⑤所有输出端和TTL电路相容。

⑥有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。

⑦输出为动态扫描BCD码。

⑧对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字电压表外,还能与异步接收/发送器,微处理器或其它控制电路连接使用。

⑨采用28外引线双列直插式封装,外引线功能端排列如图所示。

㈡7135数字部分数字部分主要由计数器、锁存器、多路开关及控制逻辑电路等组成。

7135一次A/D转换周期分为四个阶段:1、自动调零(AZ);2、被测电压积分(INT);3、基准电压反积分(DE);4、积分回零(ZI)。

具体内部转换过程这里不做祥细介绍,主要介绍引脚的使用。

①R/H(25脚)当R/H=“1”(该端悬空时为“1”)时,7135处于连续转换状态,每40002个时钟周期完成一次A/D转换。

若R/H由“1”变“0”,则7135在完成本次A/D转换后进入保持状态,此时输出为最后一次转换结果,不受输入电压变化的影响。

因此利用R/H端的功能可以使数据有保持功能。

若把R/H端用作启动功能时,只要在该端输入一个正脉冲(宽度≥300ns),转换器就从AZ阶段开始进行A/D转换。

注意:第一次转换周期中的AZ阶段时间为9001-10001个时钟脉冲,这是由于启动脉冲和内部计数器状态不同步造成的。

②/ST(26脚)每次A/D转换周期结束后,ST端都输出5个负脉冲,其输出时间对应在每个周期开始时的5个位选信号正脉冲的中间,ST负脉冲宽度等于1/2时钟周期。

第一个ST负脉冲在上次转换周期结束后101个时钟周期产生。

因为每个选信号(D5--D1)的正脉冲宽度为200个时钟周期(只有AZ和DE阶段开始时的第一个D5的脉冲宽度为201个CLK 周期),所以ST负脉冲之间相隔也是200个时钟周期。

需要注意的是,图3.2.1.2 ICL7135的波形图若上一周期为保持状态(R/H=“0”)则ST无脉冲信号输出。

ST信号主要用来控制将转换结果向外部锁存器、UARTs或微处理器进行传送。

③BUSY(21脚)在双积分阶段(INT+DE),BUSY为高电平,其余时为低电平。

因此利用BUSY功能,可以实现A/D转换结果的远距离双线传送,其还原方法是将BUSY和CLK“与”后来计数器,再减去10001就可得到原来的转换结果。

④OR(27脚)当输入电压超出量程范围(20000),OR将会变高。

该信号在BUSY信号结束时变高。

在DE阶段开始时变低。

⑤UR(28脚)当输入电压等于或低于满量程的9%(读数为1800),则一当BUST信号结束,UR将会变高。

该信号在INT阶段开始时变低。

⑥POL(23脚)该信号用来指示输入电压的极性。

当输入电压为正,则POL 等于“1”,反之则等于“0”。

该信号DE阶段开始时变化,并维持一个A/D 转换调期。

⑦位驱动信号D5、D4、D3、D2、D1(12、17、18、19、20脚)每一位驱动信号分别输出一个正脉冲信号,脉冲宽度为200个时钟周期,其中D5对应万位选通,以下依次为千、百、十、个位。

在正常输入情况下,D5--D1输出连续脉冲。

当输入电压过量程时,D5--D1在AZ阶段开始时只分别输出一个脉冲,然后都处于低电平,直至DE阶段开始时才输出连续脉冲。

利用这个特性,可使得显示器件在过程时产生一亮一暗的直观现象。

⑧B8、B4、B2、B1(16、15、14、13脚)该四端为转换结果BCD码输出,采用动态扫描输出方式,即当位选信号D5=“1”时,该四端的信号为万位数的内容,D4=“1”时为千位数内容,其余依次类推。

在个、十、百、千四位数的内容输出时,BCD码范围为0000--1001,对于万位数只有0和1两种状态,所以其输出的BCD码为“0000”和“0001”。

当输入电压过量程时,各位数输出全部为零,这一点在使用时应注意。

最后还要说明一点,由于数字部分以DGNG端作为接地端,所以所有输出端输出电平以DGNG作为相对参考点。

基准电压,基准电压的输入必须对于模拟公共端COM是正电压。

㈢与单片机系统的串行连接在ICL7135与单片机系统进行连接时,使用并行采集方式,要连接BCD码数据输出线,可以将ICL7135的/STB信号接至AT89C52的P3.2(INT0)。

ICL7135需要外部的时钟信号,本设计采用CD4060来对4M信号进行32分频得到125KHz的时钟信号。

CD4060计数为14级2进制计数器,在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。

图3.2.1.3 ICL7135与系统的连接图图3.2.1.4 CD4060时钟发生电路3.3单片机部分单片机选用的是ATMEL公司新推出的AT89S52,如图3.2.1.1所示。

该芯片具有低功耗、高性能的特点,是采用CMOS工艺的8位单片机,与AT89C51完全兼容。

AT89S52还有以下主要特点:①采用了ATMEL公司的高密度、非易失性存储器(NV-SRAM)技术;②其片内具有256字节RAM,8KB的可在线编程(ISP)FLASH存储器;③有2种低功耗节电工作方式:空闲模式和掉电模式④片内含有一个看门狗定时器(WDT),WDT包含一个14位计数器和看门狗定时器复位寄存器(WDTRST),只要对WDTRST按顺序先写入01EH ,后写入0E1H,WDT便启动,当CPU由于扰动而使程序陷入死循环或“跑飞”状态时,WDT即可有效地使系统复位,提高了系统的抗干扰性能。

相关文档
最新文档