基于单片机的数字电压表设计
基于51单片机的直流数字电压表设计
基于51单片机的直流数字电压表设计概述:直流数字电压表是一种用于测量直流电压的仪器,它通过将电压信号转换为数字形式,并显示在数码管上,实现对电压的准确测量。
本文将介绍基于51单片机的直流数字电压表的设计原理和实现方法。
一、设计原理:1.1 电压信号采集:直流数字电压表的第一步是采集待测电压信号。
常用的采集方法是使用一个分压电路将待测电压降低到合适的范围,再通过运算放大器将其放大到合适的电平。
51单片机的模拟输入引脚可以接受0-5V的模拟电压信号,因此可以直接将放大后的信号接入单片机进行采集。
1.2 模数转换:采集到的模拟电压信号需要经过模数转换(A/D转换)才能被单片机读取和处理。
51单片机内部集成了一个10位的A/D转换器,可以将输入的模拟电压转换为相应的数字量。
通过设置不同的参考电压和采样精度,可以实现对不同电压范围的准确测量。
1.3 数码管显示:经过模数转换后,得到的数字量需要通过数码管进行显示。
51单片机的IO口可以通过控制段选和位选的方式,将数字量转换为相应的数码管显示。
可以根据需要选择常用的七段数码管或者液晶显示屏进行显示。
二、设计实现:2.1 硬件设计:硬件设计包括电路原理图设计和PCB布局设计两个部分。
电路原理图设计主要包括电压采集电路、运算放大器、A/D转换器和数码管驱动电路等部分。
PCB布局设计需要考虑信号的走线和电源的分布,以保证电压信号的准确采集和显示。
在设计过程中,需要注意地线和信号线的分离,以减少干扰。
2.2 软件设计:软件设计主要包括单片机的程序编写和调试。
首先需要编写采集模拟电压信号和进行A/D转换的程序,将转换后的数字量存储在单片机的内部存储器中。
然后编写数码管驱动程序,将存储的数字量转换为相应的数码管显示。
最后,通过按键或者旋转编码器等方式,可以实现对量程和精度的选择。
三、设计优化:3.1 精度优化:为了提高直流数字电压表的测量精度,可以采用更高精度的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)来实现。
基于单片机数字电压表设计
基于单片机的数字电压表学生姓名系部:专业年级:指导教师:摘要本文介绍基于AT89S52单片机的一种电压测量电路,介绍了双积分电路的原理,AT89S52的特点,ICL7135的功能和应用,LCD1601的功能和应用。
该电路设计新颖、功能强大、可ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。
正文着重给出了软硬件系统的各部分电扩展强关键词:电压测量,ICL7135,双积分A/D转换器,1601液晶模块目录第1章概述 (1)1.1 数字电压表的发展前景. (1)1.2 电路原理图 (2)第2章硬件电路设计 (3)2.1 输入电路设计 (3)2.1.1 衰减电路设计 (3)2.1.2 衰减电路: (3)2.2 转换电路 (4)2.2.1 转化器类型 (4)2.2.2 转换器主要性能: (5)2.2.3 ICL7135芯片简绍 (6)2.3 AT89S52介绍 (8)2.3.1 AT89S52芯片特点 (9)2.3.2 主要引脚功能描述 (9)2.4 显示电路 (12)2.4.1 液晶显示器的分类及原理 (12)2.4.2 LCD-1601介绍 (12)第3章系统软件设计 (14)3.1主程序设计 (14)3.2 中断程序设计 (15)第4章通讯模块设计 (16)4.1 通讯模块电路组成 (16)4.2 通讯模块程序设计 (16)结束语 (18)致谢 (19)附件一电路原理图 (20)附件二部分参考程序 (21)参考文献 (23)第1章概述1.1 数字电压表的发展前景.数字电压表作为数字技术的成功应用,发展相当快。
数字电压表(Digital VoIt Me-ter,DVM),以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。
特别是以A/D转换器为代表的集成电路为支柱,使DVM向着多功能化、小型化、智能化方向发展。
基于AT89C51单片机数字电压表的设计
基于AT89C51单片机数字电压表的设计题目:基于AT89C51单片机数字电压表的设计目录一、整体设计思路框图及原理图 (4)二、模块分析 (5)1.AT89C51单片机 (5)2.A/D转换 (6)3. .................................................................................. 显示电路 (7)三、软件设计 (5)四、程序清单 (6)五、仿真实验调试 (12)六、总结与体会. (13)七、参考文献 (14)34一、 整体设计思路框图及原理图数字电压表的设计即将连续的模拟电压信号经过A/D 转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。
按系统实现要求,决定控制系统采用AT89C51单片机,A/D 转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。
采用ADC0808。
数字电压表系统整体框图如下图1所示。
图1 整体框图系统通过软件设置单片机的内部定时器T1产生中断信号。
通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC 端口产生高电平,同时将ADC0808的OE 端口置为高电平,单片机将转换后结果存到片内RAM 。
系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD 显示电路,将相应电压显示出来。
原理图见附录图7。
二、模块分析1.AT89C51单片机接口分配电路设计如右图2所示:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ图2 单片机接口电路的电阻拉高。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
基于单片机数字电压表设计
基于单片机数字电压表设计单片机数字电压表是一种先进的电压测量技术,它可以检测和测量精确的电压值。
近年来,这种技术在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。
这种技术不仅提高了测量数据的精确性和可靠性,而且可以满足多种功能要求,有效地提高了工程设计的效率。
单片机数字电压表的原理及组成单片机数字电压表是一种半导体装置,基本原理是用参考电路产生一个参考电压,并使用模数转换技术测试输入电压,然后将输入电压与参考电压比较,最后将比较结果显示在数字显示器上。
单片机数字电压表的结构由电源供应器、测试电路、模数转换技术、控制器和数字显示器组成。
电源供应器的输出电压可以用作参考电压,测试电路将输入电压与参考电压比较,模数转换技术将比较结果转换成数字格式的结果,控制器将数字结果发送给数字显示器,数字显示器将结果显示出来。
单片机数字电压表的优点由于单片机数字电压表具有以下优点,使其在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。
首先,单片机数字电压表的测量可靠性比传统的模拟电压表高,能够测量更精确的电压值,从而提高测量准确性。
其次,单片机数字电压表具有超高的灵活性。
它可以通过修改程序在软件上实现功能扩展,从而满足不同的电压测量要求。
第三,单片机数字电压表的显示精度高,同时能够提供连续测量结果,以满足对电压变化的时实判断要求。
第四,单片机数字电压表的体积小,可以完全替代传统的模拟电压表,有利于节约空间和重量。
第五,单片机数字电压表的低功耗,无需额外的外部电源,从而提高工作效率。
单片机数字电压表的应用由于其高质量、精密度和稳定性,单片机数字电压表在电力系统和电子设备中有广泛应用。
电力系统中,单片机数字电压表可用于测量高压过程的开关操作,检测变压器的接线状况,监测电缆引线的断线情况,以及预防接地线等。
在电子设备中,单片机数字电压表可用于监控数字设备的电压变化、测量输入电压的精确度,以及进行自动调节和维护等。
基于单片机的数字电压表设计
基于单片机的数字电压表设计数字电压表在电子技术中使用非常广泛,可以用来测量电路中的直流电压、交流电压以及各种信号的幅度等等。
基于单片机的数字电压表实现了数字电压的读取和显示,具有精确、稳定、易操作等特点,下面将介绍基于单片机的数字电压表的设计原理及实现方法。
一、系统结构基于单片机的数字电压表主要是由程序控制模块、模数转换模块和数字显示模块组成。
程序控制模块主要用来完成开机、校准、测试、功能选择等功能;模数转换模块主要将电压信号转换成数字量,供数字显示模块使用;数字显示模块主要将转换后的数字量显示在LCD液晶屏上。
二、硬件设计1.电源电路电源电路主要用来为电路提供稳定的电压和电流,本电路采用稳压电源芯片LM7805实现,稳压芯片输入端连接外部DC12V/1A电源,输出端连接电路板上的整个电路。
2.输入电路输入电路主要用来将被测电源的电压传递给单片机,常规情况下采用分压电路实现。
在本电路中,电阻R1和电容C1为RC滤波电路,起到滤波作用,防止干扰信号的影响;电阻R2是分压电路中的电阻,它根据电压值的不同设置不同的值,以保证被测电压在单片机内部转换过程中不会对单片机产生影响。
3.单片机模块单片机模块是系统的核心部分,本电路中选用STM32F103C8T6单片机实现模数转换和数码管控制,使用C 语言编写程序,通过模拟输入端口读取电压并进行模数转换,将得到的数字使用查表法将其转换为数码管控制脉冲,控制数码管的亮灭实现数字显示。
4.数字显示模块数字显示模块主要由七段数码管、LCD液晶屏幕、导线和电容等器组成,七段数码管用于展示测量到的电压大小,LCD 液晶屏用于展示功能选项、单位等信息。
导线是电路板内部连接线路,电容等器用来平滑电压波动。
三、软件设计1.引脚定义在程序中首先定义STM32F103C8T6单片机内存地址、输入输出引脚和电平状态,其中A0口用来读取被测电压;B0-B7口用来控制七段数码管的亮灭;C0口用来输出PWM,控制风扇的旋转速度;D0口用来控制蜂鸣器的开启和关闭。
基于单片机数字电压表设计
单片机技术课程设计说明书智能数据采集系统基于单片机的数字电压表设计专业电气工程及其自动化姓名何俊班级BMZ电气081学号0861402114指导教师周云龙完成日期2011年6月5日目录基于单片机数字电压表的设计1.概述………………………………………………………………………………………2.数字电压表设计原理图……………………………………………………………………………3.系统硬件设计……………………………………………………………………………3.1硬件流程图…………………………………………………………………………3.2硬件电路图…………………………………………………………………………3.3硬件电路图各组成模块分析………………………………………………………4.系统软件设计……………………………………………………………………………4.1主程序流程图………………………………………………………………………4.2转换结果处理子程序流程图……………………………………………………4.3显示子程序流程图…………………………………………………………………4.4延时子程序流程图…………………………………………………………………5. 综合调试图………………………………………………………………………6. 结束语……………………………………………………………………………………参考文献………………………………………………………………………………………附录……………………………………………………………………………………………附录1 :程序清单……………………………………………………………………………附录2:设计图纸……………………………………………………………………………附录3:元器件目录表…………………………………………………………………………智能数据采集系统(基于单片机数字电压表的设计)1.概述1.1课题要求设计并且制作基于51单片机的数据采集系统,配置A/D转换芯片,编制数据采集系统监控软件,数据采集软件,电位器提供模拟输入量(传感器实验系统提供模拟量输入),将模拟量转换成数字量,通过数码管显示出来,分析数据采集精度。
基于单片机的数字电压表设计
基于单片机的数字电压表设计一、数字电压表设计1、目的及意义数字电压表是诸多数字化仪表的核心与基础。
可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计,湿度计,酸度计,重量,厚度仪等),几乎覆盖了电子电工测量,工业测量,自动化仪表等各个领域。
除此之外,数字电压还有着传统指针电压表无可比拟的优点:读数直观、准确,显示范围宽、分辨力高,转入阻抗高,功耗小、抗干扰强等。
因此对数字电压表作全面深入的了解是很有必要的。
但是传统的数字电压表设计通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成,可是这种设计方法灵活性差,系统功能固定,难以更新扩展,不能满足日益发展的电子工业要求。
而应用单片机为核心单元的数字电压表,其灵活性高、系统功能扩展简单,性能稳定可靠。
本课题目的就是以单片机为基础设计出一种结构简单、工作可靠、灵活性好的直流数字电压表。
要求测量范围为0~5V。
2、总体设计方案数字电压表主要包括两部分:硬件电路及软件程序。
而硬件电路采用ATMEL公司的AT89C51作为主处理器,系统主要由信号采集、A/D转换、数据处理输出、驱动显示等几个功能模块组成。
系统框图1如下:图1硬件原理框图被测直流电压由A/D转换单元采集后被量化,再由单片机对A/D转换的结果进行标度变换,得到被测电压的数值,通过单片机对数次转换结果求平均值、并通过SOI串行数据接口把所求平均值输出给显示驱动单元,由该单元完成译码,并驱动数码管显示。
电压表的数字化是将连续模拟的电压量经A/D转化后变为不连续的离散的数字量并加以显示。
在设计过程中采用分模块设计,按照图1把电路分A/D转换、数据处理输出、驱动、显示四个单元。
数值显示是采用八段数码管,由单片机以动态扫描方式驱动,在此方式下能保证足够的亮度和较长的使用寿命。
单片机是将计算机的基本部件微型化,使之集成在一块芯片上的微机。
在自动化装置、智能化仪器仪表、过程控制和家用电器等领域得到日益广泛的应用。
基于单片机的数字电压表.
1 前言 (1)2 总体方案设计 (2)2.1 方案论证 (2)2.2 方案比较及选择 (3)3 硬件电路设计 (4)3.1 AD转换电路 (4)3.2 复位电路 (4)3.3 时钟电路 (5)3.4 显示电路 (6)3.5 特殊器件介绍 (6)3.5.1 主控芯片AT89S51 (6)3.5.2 ADC0808 (7)3.5.3 LED (9)4 软件部分设计 (11)4.1 A/D转换子程序 (11)4.2 显示子程序 (12)5 电路仿真 (13)5.1 软件调试 (13)5.2 显示结果及误差分析 (13)6 系统功能 (17)小结 (18)参考文献 (19)附录1 基于单片机的数字电压表原理图 (20)附录2 基于单片机的数字电压表程序清单 (21)1 前言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。
传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。
采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。
数字电压表是诸多数字化仪表的核心与基础。
以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。
基于单片机的简易数字电压表的设计
单片机课程设计说明书基于单片机的简易数字电压表的设计摘要本设计是基于52系列的单片机进行的数字电压表设计,所谓数字电压表就是能将测得的模拟量经过A/D转换转变为数字量,并在数码管上显示电压的读数,相比针式电压表有着测量数据准确明了,读数精度高的特点,类似数字式万用表,有着相当的实用性。
本次电压表设计主要由电压信号采样电路、A/D转换电路、数码管显示电路等电路组成。
关键词:数字电压表数码显示 A/D数模转换单片机1目录第一章设计内容和要求 (3)1.1 设计意义 (3)1.2 设计目的 (3)1.3设计的任务要求和实现功能…....…………………………………………… .3第二章系统总体结构 (4)2.1 系统的总体结构框图 (4)2.2 各框图要实现的功能及相互关系 (4)第三章硬件设计 (5). 3.1电源电路 (5)3.2电压信号采样电路 (5)3.3 AT89C52单片机 (5)3.4时钟模块 (6)3.5 ADC模数转换芯片 (7)3.6驱动模块....……………………………………………………………………. ..93.7显示模块 (9)3.8上拉电阻部分....…………………………………………………………….. …10.第四章软件设计 (12)4.1 系统软件流程图 (13)4.2 主程序 (13)4.3 转换和显示程序 (13)第五章系统调试 (15)5.1硬盘调试 (15)5.2 调试过程中的故障现象及误差分析 (15)5.3 软件调试问题及解决 (15)第六章设计小结 (16)参考文献 (17)附录一:元器件清单 (18)附录二:原理图 (19)附录三:程序清单 (20)附录四:实物图 (23)任务书 (24)第一章设计内容和要求1.1设计意义通过本课题的设计,掌握电子设计的一般步骤和方法,锻炼分析问题解决问题的能力,学会如何查找所需资料,同时复习以前所学知识并加深记忆,为毕业设计打好基础,也为以后工作作准备,通过对选题的分析设计,学习数字电压表的工作原理,组成和特性,掌握数字电压表的校准方法和使用方法。
基于单片机的数字电压表设计
基于单片机的数字电压表设计在当今的电子世界里,电压的准确测量已成为各种电路设计和应用的关键部分。
为了满足这一需求,数字电压表应运而生。
本文将详细阐述如何利用单片机设计数字电压表。
在了解数字电压表之前,我们首先需要理解什么是单片机。
单片机是一种微型计算机芯片,它集成了CPU、内存、I/O接口等必要组件,具有体积小、功耗低、价格实惠等优点。
因此,利用单片机来设计数字电压表是十分理想的选择。
数字电压表是一种能够将模拟电压信号转换为数字信号并加以处理的仪器。
它的优点包括测量准确、分辨率高、稳定性好等。
数字电压表的种类繁多,根据应用场景的不同,可以选择不同的设计方案。
在进行数字电压表设计时,我们需要以下几个方面:电压传感器的选择:根据实际应用场景选择合适的电压传感器,例如电压互感器、霍尔电压传感器等。
A/D转换器的选择:A/D转换器是将模拟信号转换为数字信号的关键部件。
在选择时,我们需要考虑其分辨率、转换速率、功耗等参数。
单片机的选择:根据项目需求选择合适的单片机型号,确保其具有足够的资源来处理数字信号。
人机界面的设计:为了便于用户操作和观察,我们还需要设计一个简单易用的人机界面。
在具体实施时,我们需要将电压传感器与A/D转换器连接,并将A/D 转换器的输出端连接到单片机的I/O端口。
然后,我们可以通过编写单片机程序,实现对数字信号的处理、存储和显示。
数字电压表在各种电路设计中都有着广泛的应用,例如电源电路、电机控制电路、模拟电路等。
通过数字电压表,我们可以轻松地监测电路中的电压波动,以便及时进行调整和故障排查。
数字电压表还可以用于科研、教育、生产等领域,为人们提供准确可靠的电压测量数据。
基于单片机的数字电压表设计是一项实用且具有挑战性的任务。
通过掌握数字电压表的基本原理和单片机的应用方法,我们可以实现准确、稳定的电压测量,从而为各种电路设计和应用提供有力的支持。
在未来的电子世界中,数字电压表将继续发挥其重要作用,推动电路技术的发展和创新。
基于单片机的电压表设计
基于单片机的电压表设计目录1 引言 (2)2设计原理及要求 (1)2.1数字电压表的实现原理 (1)2.2数字电压表的设计指标............... 错误!未定义书签。
3软件仿真电路设计. (2)3.1设计思路 (2)3.2硬件电路设计图 (2)3.3 AT89C51的功能介绍 (3)3.3.1简单概述 (3)3.3.2主要功能特性 (3)3.3.3 AT89C51的引脚介绍 (4)3.4 ADC0804的引脚及功能介绍 (6)3.4.1芯片概述 (6)3.4.2 引脚简介 (7)3.4.3 ADC0804的转换原理 (8)3.5 74HC373芯片的引脚及功能 (8)3.5.1芯片概述 (8)3.5.2引脚介绍 (10)3.6 LED数码管的控制显示 (10)4系统软件程序的设计 (11)5测试及性能分析 ......................... 错误!未定义书签。
5.1 测试............................. 错误!未定义书签。
55.2 性能分析.......................... 错误!未定义书签。
6 设计总结 (17)参考文献 (17)附录原理电路............................ 错误!未定义书签。
1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
本设计重点介绍单片机、A/D 转换器以及由它们构成的数字电压表的工作原理。
基于单片机的数字电压表的设计
基于单片机的数字电压表的设计任务书2.对课程设计成果的要求〔包括图表、实物等硬件要求〕:(1)设计电路,安装调试或仿真,分析实验结果,并写出设计说明书。
(2)做出实物,有良好的性能。
3.主要参考文献:[1] 何立民. 单片机高级教程,[M]. 北京:北京航空航天大学出版社,2007[2] 肖洪兵高茂科. CAI课件自主开发[3] 杭和平. 单片机原理与应用[M]. 北京:机械工业出版社,2008[4]. ATMEL公司AT89S52的技术手册[4].豆丁文档.基于单片机的数字电压表的设计[6] 吴金戌等.8051单片机实践与应用.北京:清华大学出版社,2002[7] 张友德等单片微型机原理、应用和实验复旦大学出版社[8] 徐爱军. 单片机高级语言C51[M]. 北京:电子工业出版社,2001[9] 深圳市中源单片机发展有限公司AT89C52 Datasheets[10] 赵伟军.PROTEL99SE教程.人民邮电出版社.20044.课程设计工作进度计划:序号起迄日期工作内容1 2010-12-20 布置任务,教师讲解设计方法及要求2 2010-12-21 学生查找阅读资料,并确定方案3 2010-12-22 学生讨论方案5 2010-12-24~2010-12-29 制作实物并写说明书6 2010-12-30 答辩7 2010-12-31 答辩单片机课程设计题目:基于单片机的数字电压表学院名称:指导老师:班级:学号:学生姓名:2010年12月31日基于单片机的数字电压表的设计 (5)内容摘要: (5)关键词: (5)引言: (5)一、系统方案选择和论证: (6)1、设计要求 (6)1.1基本要求: (6)1.2发挥部分: (6)2、系统基本方案 (6)2.1建议数字电压表系统框图如图1 (6)2.2主控部分的选择 (6)2.3显示器的选择 (7)2.4 A/D转换器的选择 (7)二、系统的硬件设计与实现 (7)1、系统硬件概述 (7)2、主要单元电路的设计 (7)2.1 AT89S52单片机 (7)2.2主控模块 (9)2.3 显示模块 (10)2.4 A/D转换模块 (13)2.5量程选择模块。
基于单片机的数字电压表设计
以51单片机为核心,8位精度模数转换器ADC0804捕捉到电压模拟信号转换成数字信号传给单片机分析,使用lcd1602为显示核心。
(附带原理图集c语言代码)#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar r8,r7,r6,r5,r4,r3,r2,r1;uint shi,ge,xs,xss,temp,volt,num;uchar Vref=5; //基准电压(注意:电压越大精度愈低)uchar code table[]=" It's Amazing!"; uchar code table1[]=" V olt: . V";uchar code table2[]="0123456789" ;sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit s4=P2^3;sbit s5=P2^4;sbit s6=P2^5;sbit s7=P2^6;sbit s8=P2^7;sbit lcden=P3^4;sbit lcdrs=P3^5;sbit lcdrw=P3^6;sbit wr=P3^1;sbit rd=P3^2;sbit cs=P3^0;void delay(uchar x){uchar y,z;for(y=110;y>0;y--)for(z=x;z>0;z--);}void write_com(uchar com) //lcd写控制命令与时序{lcdrs=0;lcdrw=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date) //lcd写数据命令与时序{lcdrs=1;lcdrw=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init() //lcd初始化{cs=0; //片选选中AD转化器lcden=0;write_com(0x38);write_com(0x0e);write_com(0x0c); //不显示光标write_com(0x01);write_com(0x80+0x10);}void chuzhi(){if(s8==1) r8=1;else r8=0;if(s7==1) r7=1;else r7=0;if(s6==1) r6=1;else r6=0;if(s5==1) r5=1;else r5=0;if(s4==1) r4=1;else r4=0;if(s3==1) r3=1;else r3=0;if(s2==1) r2=1;else r2=0;if(s1==1) r1=1;else r1=0;}void start() //开始转换{wr=1;wr=0;wr=1;}void display_init() //显示器固定不变的部分{write_com(0x80);for(num=0;num<16;num++){write_data(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<15;num++){write_data(table1[num]);delay(5);}}void jisuan() //计算电压值{volt=((r8*128+r7*64+r6*32+r5*16+r4*8 +r3*4+r2*2+r1*1)*0.00392156862745098039 21568627451)*Vref*100;}void display() //显示器动态部分{chuzhi();jisuan();shi=volt/1000;ge=(volt%1000)/100;xs=((volt%1000)%100)/10;xss=((volt%1000)%100)%10;write_com(0x80+0x40+7);write_data(table2[shi]);delay(5);write_com(0x80+0x40+8);write_data(table2[ge]);delay(5);write_com(0x80+0x40+10);write_data(table2[xs]);delay(5);write_com(0x80+0x40+11);write_data(table2[xss]);delay(5);}void main(){init();display_init(); while(1){start();delay(5);rd=0;display(); }}。
基于单片机的电压表设计
基于单片机的电压表设计目录1 引言 (2)2设计原理及要求 (1)2.1数字电压表的实现原理 (1)2.2数字电压表的设计指标.............. 错误!未定义书签。
3软件仿真电路设计. (2)3.1设计思路 (2)3.2硬件电路设计图 (2)3.3 AT89C51的功能介绍 (3)3.3.1简单概述 (3)3.3.2主要功能特性 (3)3.3.3 AT89C51的引脚介绍 (4)3.4 ADC0804的引脚及功能介绍 (6)3.4.1芯片概述 (6)3.4.2 引脚简介 (7)3.4.3 ADC0804的转换原理 (8)3.5 74HC373芯片的引脚及功能 (8)3.5.1芯片概述 (8)3.5.2引脚介绍 (10)3.6 LED数码管的控制显示 (10)4系统软件程序的设计 (11)5测试及性能分析 ........................ 错误!未定义书签。
5.1 测试............................ 错误!未定义书签。
55.2 性能分析......................... 错误!未定义书签。
6 设计总结 (17)参考文献 (17)附录原理电路........................... 错误!未定义书签。
1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
本设计重点介绍单片机、A/D 转换器以及由它们构成的数字电压表的工作原理。
目前,由各种单片机、A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。
基于单片机数字电压表的方案设计书
***********学 生 毕 业 设 计(论 文) 课题名称基于单片机数字电压表的设计 姓 名** 学 号0712301-12 院 系******************** 专 业电子信息工程技术 指导教师*************2010年3月25日 ※※※※※※※※※※※ ※※ ※※ ※※※※※※※※※ 2010届学生毕业设计(论文)材料(四)**********本科毕业设计(论文)诚信声明本人郑重声明:所呈交的本科毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
本科毕业设计(论文)作者签名:(亲笔签名)二○一零年月日(打印)目录摘要 (4)关键词 (4)Abstract (4)Key words (5)前言 (5)1、总体结构 (5)2、系统硬件电路的设计 (6)2.1、10 倍放大器电路 (6)2.2、A / D 转换电路 (7)2.3、电桥输入电路 (8)2.4、测试电路 (8)3、系统程序的设计 (11)3.1、初始化程序 (11)3.2、主程序 (11)3.3、显示子程序 (11)3.4、A / D 转换测量子程序 (11)4、调试与性能分析 (12)4.1、调试与测试 (12)4.2、性能分析 (13)5、结语 (14)6、单片机汇编程序清 (14)参考文献 (21)致谢 (22)附录 (22)基于单片机数字电压表的设计**(*****************2010届电子信息工程技术专业,*********)摘要: 数字电压表的诞生打破了传统电子测量仪器的模式和格局。
它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
本论文重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。
1 实训要求(1)基本要求:①实现8路直流电压检测②测量电压范围0-5V③显示指定电压通道和电压值④用按键切换显示通道(2)发挥要求①测量电压范围为0-25V②循环显示8路电压2 实训目的(1)进一步熟悉和掌握单片机的结构和工作原理;(2)掌握单片机的借口技术及,ADC0809芯片的特性,控制方法;(3)通过这次实训设计,掌握以单片机为核心的电路设计的基本方法和技术;(4)通过实际程序设计和调试,逐步掌握模块化程序设计的方法和调试技术。
3 实训意义通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。
4 总体实训方案测量一个0——5V的直流电压,通过输入电路把信号送给AD0809,转换为数字信号再送至89s52单片机,通过其P1口经数码管显示出测量值。
4.1 结构框图如图1—1所示图1—14.2 原理及功能8路数字电压表主要利用A/D转换器,其过程为如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电压值,然后把模拟值通过数码管显示出来。
设计时假设待测的输入电压为8路,电压值的范围为0——5v,要求能在4位LED数码上轮流显示或单路显示。
测量的最小分辨率为0.019v。
根据系统的功能要求,控制系统采用AT89s51单片机,A/D转换器。
当输入电压为5V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。
ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。
如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。
LED 数码管显示采用软件译码动态显示。
通过按键选择可8路循环显示,也可以单路循环。
单路显示可通过按键选择所要显示的通道数。
5 硬件电路设计8路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路等组成,电路原理图如图1—2所示。
图1—2ADC0809具有8路模拟量输入通道IN0---IN7,通过3位地址输入端C、B、A(引脚23--25)进行选择。
引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部是锁存器中,经内部译码电路译码选中相应的模拟通道。
引脚6为启动转换控制端START,当输入一个2μs宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。
引脚7为A/D转换器,当开始转换时,EOC信号为低电平,经过一段时间,转换结束,转换结束信号EOC输出高电平,转换结果存放于ADC0809内部的输出数据寄存器中。
引脚9脚为A/D转换数据输出允许控制端OE,当OE 为高电平时,存放于输出数据锁存器中的数据通过ADC0809的数据线D0—D7输出。
引脚10为ADC0809的时钟信号输入端CLOCK。
在连接时,ADC0809的数据线D0—D7与AT89S52的P0口相连接,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89S52的P2口相连接,转换结束信号EOC与AT89S52的P3.7相连接。
时钟信号输入端CLOCK信号,由单片机的地址锁存信号ALE得到。
LED数码管采用动态扫描方式连接,通过AT89S52的P1口和P3.0—P3.3口控制。
P1口为LED数码管的字段码输出端,P3.0—P3.3口为LED数码管的位选码输出端,通过三极管驱动并反相。
S1和S2是两个按键开关,分别与单片机的P3.5和P3.6相连接。
S1用于单路显示或多路循环显示转换控制,S2用于单路显示时的通道选择。
6 系统软件程序的设计多路数字电压表的系统软件程序由主程序、A/D转换子程序和显示子程序组成。
6.1 主程序主程序包含初始化部分、调用A/D转换子程序和调用显示程序,如图1—3所示。
初始化部分包含存放通道数据缓冲区初始化和显示缓冲区初始化。
另外,对于单路显示和循环显示,系统设置了一个标志位00H控制。
初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示。
00H位通过单路/循环按键控制。
6.2 A/D转换子程序A/D转换子程序用于对ADC0809的8路输入模拟电压进行A/D转换,并将转换的数值存入8个相应的存储单元中,如图1—4所示。
A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。
6.3 显示子程序LED数码管采用软件译码动态扫描方式。
在显示子程序中包含多路循环显示和单路显示程序。
多路循环显示把8个存储单元的数值依次取出送到4位数码管上显示,每一路显示1秒。
单路显示程序只对当前选中的一路数据进行显示。
每路数据显示需经过转换变成十进制BCD码,放于4个数码管的显示缓冲区中。
单路显示或多路循环显示通过标志位00H控制。
在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。
图1—3图1—46.3.1 C语言源程序清单#include <stdio.h>#include <AT89x52.h>#include <intrins.h> //调用_nop_()延时函数#define ad_con P2 //0809控制口#define addata P0 //0809数据入口#define disdata P1 //数码管显示#define uchar unsigned char#define uint unsigned intuchar number=0x00; //存放单通道显示时的当前通道数sbit ALE=P2^3; //0809地址锁存信号sbit START=P2^4; //启动信号sbit OE=P2^5; //输出允许通道sbit KEY1=P3^5; //循环或单路选择按键sbit KEY2=P3^6; //通道选择按键sbit EOC=P3^7; //转换结束信号sbit DISX=disdata^7;//小数点位sbit FLAG=PSW^0; //循环或单路显示标志位Uchar codedis_7[11]={0x3F,0x06,0x5B,0X4F,0x66,0x6D,0x7D,0x07,0x7E,0x6F,0x00};//数码管的字段码uchar code scan_con[4]={0xF1,0xF2,0xF4,0xF8};//4个LED数码管的位选Uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//0809的8个通道转换数据缓冲区uchar data dis[5]={0x00,0x00,0x00,0x00,0x00};//显示缓冲区/*主函数*/main(){P0=0xff; //初始化端口P2=0x00;P1=0xff;P3=0xff;while(1){test(); //测量转换数据scan();//显示数据}}/*1秒延时*/delay1ms(uint t){uint i,j;for (i=0;i<t;i++)for (j=0;j<120;j++);}/*检测按键子程序*/keytest(){if (KEY1==0) //检测循环或单路选择按键是否按下{FLAG=!FLAG; //标志位取反,循环,单路显示却换while(KEY1==0);}if(FLAG==1) //单路循环时,检测通道选择按键是否按下{if(KEY2==0){number++;if(number==8){number=0; }while(KEY2==0);}}}/*显示扫描子程序*/scan(){uchar k,n;int h;if(FLAG==0) //循环显示子程序{dis[3]=0x00; //通道值清零for(n=0;n<8;n++) //循环8次{dis[2]=ad_data[n]/51; //转换为BCD码dis[4]=ad_data[n]%51;dis[4]=dis[4]*10;dis[1]=dis[4]/51;dis[4]=dis[4]%51;dis[4]=dis[4]*10;dis[0]=dis[4]/51;for(h=0;h<500;h++) //每个通道显示时间控制为1s {for(k=0;k<4;k++) //4位LED循环显示{disdata=dis_7[dis[k]];if(k==2){DISX=0;}P3=scan_con[k];delay1ms(1);P3=0xff;}}dis[3]++; //通道值加1keytest(); //检测按键}}if(FLAG==1) //单路显示子程序{dis[3]=number;for(k=0;k<4;k++)//4位LED扫描显示{disdata=dis_7[dis[k]];if(k==2){DISX=0;}P3=scan_con[k];delay1ms(1);P3=0xff;}keytest(); //检测按键}}/*转换子函数*/test(){uchar m;uchar s=0x00; //初始通道位0ad_con=s;//第一通道地址送0809控制口for(m=0;m<8;m++){ALE=1;_nop_();_nop_();ALE=0;//锁存通道地址START=1;_nop_();_nop_();START=0;//启动转换_nop_();_nop_();_nop_();_nop_();while(EOC==0);//等待转换结束OE=1;ad_data[m]=addata;OE=0;//读取当前通道转换数据 s++;ad_con=s;//改变通道地址}ad_con=0x00;//通道地址恢复初值}7 单片机概述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K在系统可编程Flash 存储器。