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

基于单片机的数字电压表设计一、引言在电子测量领域中,电压表是一种常用的测量仪器,用于测量电路中的电压值。
传统的模拟电压表由于精度低、读数不便等缺点,逐渐被数字电压表所取代。
数字电压表具有精度高、读数直观、抗干扰能力强等优点,广泛应用于工业自动化、电子设备检测、实验室测量等领域。
本文将介绍一种基于单片机的数字电压表设计方案,详细阐述其硬件电路设计、软件编程实现以及系统性能测试。
二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 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)来实现。
基于单片机的数字电压表设计

基于单片机的数字电压表设计一、背景介绍随着科技的发展,越来越多的人开始关注电压表。
电压表是一种测量电压的仪器,它可以根据检测到的电压值显示出相应的数字。
传统的电压表使用指针或指示灯来显示电压值,但这种方式会有很多限制,例如不能显示小于1V的电压值,对于高精度的测量也不能满足要求。
为了解决上述问题,本文提出了一种基于单片机的数字电压表设计方案。
二、基于单片机的数字电压表设计原理基于单片机的数字电压表设计采用单片机ADC(模数转换)模块来检测电压值,将检测到的电压值转换成数字值,然后通过LCD(液晶显示器)来显示。
该设计中需要使用一个模拟信号处理电路,它包括一个放大器、一个滤波器和一个参考电压电路。
放大器可以增加信号的幅值,以便更好地检测信号的电压值;滤波器可以削弱外部电磁干扰,以便更好地检测电压值;参考电压电路可以把外部电压转换为0-5V之间的电压,以便更好地检测电压值。
三、设计方案1.单片机:AT89S522.ADC模块:AD79053.放大器:LM3584.滤波器:LPF(低通滤波器)5.参考电压电路:LM3176.LCD显示器:12864四、设计步骤1. 利用LM358放大器和LPF滤波器对测量的电压值进行放大和滤波处理,以获得更精准的数据。
2. 利用LM317参考电压电路将放大后的电压值转换为0-5V的电压,以便更好地检测电压值。
3. 将转换后的电压值送入AD7905 ADC模块,将检测到的电压值转换成数字值。
4. 将转换后的数字值送入AT89S52单片机,并通过12864 LCD显示器将检测到的电压值显示出来。
五、总结本文提出了一种基于单片机的数字电压表设计方案,主要采用单片机ADC模块来检测电压值,并将检测到的电压值转换为数字值,然后通过LCD显示器显示出来。
该设计方案可以满足各种电压测量要求,具有良好的精度和可靠性。
基于89c51单片机的数字电压表设计

基于89c51单片机的数字电压表设计一、引言现代科技的进步使得电子技术在各个领域都得到广泛应用,其中电压测量作为电子测量技术的基本内容之一,在电力系统、工业自动化、仪表仪器、通信以及家用电器等浩繁领域中发挥着重要的作用。
而数字电压表则是电子测量技术的重要组成部分之一,其具有精度高、使用便利等特点,因而在实际应用中得到广泛的推广和应用。
二、设计原理本次设计的基于89c51单片机的数字电压表主要包含两个部分:模拟电路部分和数字电路部分。
1. 模拟电路部分模拟电路部分主要包括电源部分、电压信号放大部分和滤波部分。
在电源部分,使用线性稳压电源,保证系统的稳定性。
电压信号放大部分主要接受差分放大器放大输入信号,提高系统的灵敏度。
为了滤除输入信号中的高频噪声,滤波部分使用低通滤波器对信号进行滤波。
2. 数字电路部分数字电路部分主要由89c51单片机、ADC(模数转换器)、显示模块和按键模块组成。
89c51单片机作为主控制芯片,具有浩繁强大的功能,如高度集成、易编程、合理的存储空间等。
ADC模块的作用是将模拟电压信号转换为数字信号,以便单片机进行处理。
显示模块用于显示测量到的电压值,可以选择LED数码管、LCD液晶屏等方式进行显示。
按键模块则提供了对测量功能的开启和关闭,参数的调整等功能。
三、设计过程1. 模拟电路的设计模拟电路部分主要包括电源部分、电压信号放大部分和滤波部分。
电源部分接受线性稳压电源,通过变压器、整流电路和稳压电路得到所需的5V直流电源。
电压信号放大部分接受差分放大器,通过调整放大倍数,适应不同电压范围的测量。
滤波器部分接受低通滤波器,去除噪声干扰。
2. 数字电路的设计数字电路部分主要由89c51单片机、ADC、显示模块和按键模块组成。
起首进行单片机的编程,通过编程,设置ADC的工作方式、测量范围和采样频率等参数。
接着毗连ADC和单片机,通过串口通信的方式将转换后的数字信号传输给单片机。
再通过显示模块将测量到的电压值显示出来。
基于单片机的数字电压表的课程设计

基于单片机的数字电压表的课程设计一、引言在电子测量领域,电压表是一种常见且重要的测量工具。
传统的模拟电压表存在精度低、读数不直观等缺点,而数字电压表则凭借其高精度、高稳定性和直观的数字显示等优势,在电子测量中得到了广泛的应用。
本课程设计旨在基于单片机设计一款数字电压表,以实现对直流电压的准确测量和数字显示。
二、设计要求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 转换得到的数字量转换为实际的电压值,并进行精度处理。
基于单片机的数字电压表设计

一 、 方 案论证 与 比较 (一 )数 字 电压表设 计 常用 的基本 方 法 方 案一 (如 图 1所 示 ) 采用 比较 器 、减 法器 、电子 开关 以及少 量 的 分 立元件 ,将电压输 出到 ADC0809再转换 为数字信 号后送单片机控制 ,然后通过显示器显示 。但 由 于 元 件 分 散 性 太 大 , 即使 采 用 了单 片 机 最 小 系 统 ,由 于 电子 开 关 IC4066的 内 阻 较 大 ,导致 在 其 上的压降也较 大 ,使小信 号衰减 严重 ,输入 到 ADC0809的电压值 与待测 电压相差较远 ,抗干扰 能力较弱 ,不能达到本题 目的基本要求 。
0 V~1.28V 1.28V ~2.56V 2.56V~3.84V 3.84V 一5.12V 5.12V~6.4V 6.4V~7.68V 7.68V~8.96V 8.96V~10.24V
0V 1.28V 2.56V 3.84V 5.12V 6.4V 7.68V 8.96V
成
ADC0809的输 入 电压 范 围 限定 在 1.28V 以 内 ,需 在前放置一个减法器 ,控制输入电压量 。当待测电 压处 于下 列各 档 次 时 ,对 应 的 DAC0832的输 出电
压如 表 1所示 :
表 1 DAC0832的 输 出 电压 表
待测输 入电压范 围(v) DAC0832输 出电压 (v) ห้องสมุดไป่ตู้
基于单片机的简易数字电压表设计

基于单片机的简易数字电压表设计随着电子技术的迅猛发展,数字电压表在实验室、工业和日常生活中的应用越来越广泛。
本文将详细介绍基于单片机的简易数字电压表的设计过程,包括系统设计思路、硬件选型、软件实现以及调试过程。
设计一个简易数字电压表的目标是实现对直流电压的实时测量,并将其以数字形式显示。
该系统的核心是单片机,它负责数据采集、处理及结果显示。
选用单片机的原因在于其体积小、成本低、易于编程等优点。
在硬件设计方面,系统主要由输入电路、单片机、显示模块和电源模块组成。
输入电路的作用是将待测电压信号转化为单片机可处理的电信号。
一般采用分压电路,通过电阻分压的方法,将高电压降低至单片机的可接受范围。
还需考虑输入电压的范围,以确保测量精度和系统安全。
选用的单片机需具备一定的模拟输入功能,以便对电压进行采样。
常用的单片机型号有51系列、AVR系列及STM32系列等,其中STM32系列因其较高的性能和丰富的外设而受到广泛关注。
在设计中,应根据具体需求选择合适的单片机,并进行必要的引脚配置。
显示模块的选择是系统设计的重要环节,常用的有液晶显示屏(LCD)和七段数码管。
液晶显示屏具有显示内容丰富、可视角度广等优势,但其功耗相对较高。
而七段数码管则以其简洁明了的特性广泛应用于数字电压表中。
在本设计中,建议使用LCD显示模块,以便于显示多位数值及相关信息。
电源模块的设计需确保系统的稳定运行。
一般采用稳压电源,为单片机及其他外设提供稳定的电压供应。
需考虑电源的功耗及散热问题,确保系统在长期工作中不会出现故障。
数据处理模块是整个系统的核心,其主要任务是将采集到的模拟电压信号转换为相应的数字值。
可采用模数转换(ADC)技术,将模拟信号转换为数字信号,并进行必要的线性化处理。
处理过程中,应考虑量化误差及噪声对测量结果的影响。
数据显示模块负责将处理后的电压值通过LCD显示出来。
在这一过程中,需要对显示内容进行格式化,以确保信息的清晰易读。
基于单片机的数字电压表的设计

目录第1章引言 (1)1.1设计要求 (1)1.2 设计思路 (2)1.3 设计方案 (2)第2章硬件电路设计 (1)2.1 A/D转换模块 (1)2.2 单片机系统 (5)2.3 复位电路和时钟电路 (7)2.4 LED显示系统设计 (8)2.5 总体电路设计 (10)第3章程序设计 (1)3.1 程序设计总方案 (1)3.2 系统子程序设计 (1)第4章仿真与调试 (1)4.1 软件调试 (1)4.2 显示结果及误差分析 (1)结论 (1)参考文献 (1)致谢 (1)附录:程序代码 (1)第1章引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。
传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。
采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。
数字电压表是诸多数字化仪表的核心与基础[2]。
以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。
数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。
基于单片机数字电压表设计

基于单片机数字电压表设计单片机数字电压表是一种先进的电压测量技术,它可以检测和测量精确的电压值。
近年来,这种技术在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。
这种技术不仅提高了测量数据的精确性和可靠性,而且可以满足多种功能要求,有效地提高了工程设计的效率。
单片机数字电压表的原理及组成单片机数字电压表是一种半导体装置,基本原理是用参考电路产生一个参考电压,并使用模数转换技术测试输入电压,然后将输入电压与参考电压比较,最后将比较结果显示在数字显示器上。
单片机数字电压表的结构由电源供应器、测试电路、模数转换技术、控制器和数字显示器组成。
电源供应器的输出电压可以用作参考电压,测试电路将输入电压与参考电压比较,模数转换技术将比较结果转换成数字格式的结果,控制器将数字结果发送给数字显示器,数字显示器将结果显示出来。
单片机数字电压表的优点由于单片机数字电压表具有以下优点,使其在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。
首先,单片机数字电压表的测量可靠性比传统的模拟电压表高,能够测量更精确的电压值,从而提高测量准确性。
其次,单片机数字电压表具有超高的灵活性。
它可以通过修改程序在软件上实现功能扩展,从而满足不同的电压测量要求。
第三,单片机数字电压表的显示精度高,同时能够提供连续测量结果,以满足对电压变化的时实判断要求。
第四,单片机数字电压表的体积小,可以完全替代传统的模拟电压表,有利于节约空间和重量。
第五,单片机数字电压表的低功耗,无需额外的外部电源,从而提高工作效率。
单片机数字电压表的应用由于其高质量、精密度和稳定性,单片机数字电压表在电力系统和电子设备中有广泛应用。
电力系统中,单片机数字电压表可用于测量高压过程的开关操作,检测变压器的接线状况,监测电缆引线的断线情况,以及预防接地线等。
在电子设备中,单片机数字电压表可用于监控数字设备的电压变化、测量输入电压的精确度,以及进行自动调节和维护等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机实训板的数字电压表设计一.基于单片机实训板的电压表设计简介TLC549是德州仪器公司(TI)推出的CMOS 8位A/D转换器。
该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。
TLC549仅仅使用输入/输出时钟(I/O CLOCK)和芯片选择(/CS)信号控制数据。
最大的输入输出时钟(I/O CLOCK)为1.1MHz。
功能框图如下:由TLC549采集模拟量,由单片机控制,并将AD转换后的结果经单片机处理转换为电压值通过数码管显示出来。
测量电压范围为0~5V,分辨率为5/256=0.0195V。
二.电路原理图:三.电路原理分析:电容C7、C8、C9、C10和L1组成电源滤波电路;R34和C13组成模拟电压调节电路;P3为被测模拟信号输入接口,当被测模拟信号为外部电压时,电压值由P3的2脚输入,当被测模拟电压为内部电压时可将P3 的2脚和3脚短接,则所测量的电压为板上R34输出的电压。
TLC549时序图四、源程序/****************************************实验名称: 数字电压表功能介绍:电压采样范围0-5V,精度位±20mV,AD最高转换速率可达到17us.硬件资源介绍:数码管段码对应P00-P07(a-dp),低电平有效数码管位码经74hc138译码对应P20-P22。
AD_CS->P1.0AD_CLK->P1.1AD_IO->P1.2详细情况请参照原理图.单位:长沙科瑞特电子有限公司研发部编写时间:2007-05-31*****************************************/#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define SET_CS() AD_CS=0//CS 低电平有效;#define CLR_CS() AD_CS=1#define Vref 512sbit AD_CLK = P1^0;sbit AD_IO = P1^1;sbit AD_CS = P1^2;uchar code led_code[18]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80, //段码0x90,0x88,0x83,0xc6,0xa1,0x86,0x81,0x7f,0xff}; uchar data dis_data[4]={4,4,0,0}; //显示缓冲区uchar idata dis_bit[4]={0x7f,0xbf,0xdf,0xef};//位码单元void delay(uint n); //延时子程序void display(uchar *p,uchar n);//显示子程序uchar adc_start(void); //AD转换程序void data_switch(uchar ddata); //数值转换子程序void main(void){uchar temp;uchar i;while(1){// temp= adc_start();// data_switch(temp); //输出获得的数据for(i=0;i<100;i++)display(dis_data,3);}}void delay(uint n) //延时子程序{while(n)n--;}void display(uchar *p,uchar n){uchar i;for(i=0;i<n;i++){P2 =i&0x07;if(i==0x02)P0 = led_code[p[i]]&0x7f;elseP0 = led_code[p[i]];delay(30);P0=0xff;}}uchar adc_start(void) //AD转换程序{char i,ad_data=0x00;AD_CLK=0;CLR_CS();_nop_();SET_CS();_nop_();for( i=8;i>0;i--){AD_CLK=1; //上升沿读数据AD_IO=1; //读P1时置一ad_data <<= 1; //左移一位,最高位先得到if(AD_IO)ad_data |=0x01;elsead_data &=0xfe;AD_CLK=0;}return ad_data;}void data_switch(uchar ddata){ long temp;temp= ddata;temp= temp*Vref/256;dis_data[2]=(uint)temp/100; //最高位dis_data[1]=(uint)temp%100/10;dis_data[0]=(uint)temp%100%10;}汇编语言程序:LED_0 EQU 30H ;存放三个数码管的段码LED_1 EQU 31HLED_2 EQU 32HADC EQU 35H ;存放转换后的数据ST BIT P3.2OE BIT P3.0EOC BIT P3.1ORG 00HSTART: MOV LED_0,#00HMOV LED_1,#00HMOV LED_2,#00HMOV DPTR,#TABLE ;送段码表首地址SETB P3.4SETB P3.5CLR P3.6 ;选择ADC0808的通道3WAIT: CLR STSETB STCLR ST ;启动转换JNB EOC,$ ;等待转换结束SETB OE ;允许输出MOV ADC,P1 ;暂存转换结果CLR OE ;关闭输出;MOV A,ADC ;将AD转换结果转换成BCD码;MOV B,#100;DIV AB;MOV LED_2,A;MOV A,B;MOV B,#10;DIV AB;MOV LED_1,A;MOV LED_0,Blcall intovLCALL DISP ;显示AD转换结果SJMP WAITintov: ;mov a,led_1;mov b,#10;mul ab;add a,led_0;mov r1,a;mov a,led_2;mov b,#100;mul ab;add a,r1mov dptr,#tabmov a,adcmovc a,@a+dptrmov b,#2div abmov r1,bmov b,#10div abmov led_2,amov led_1,bcjne r1,#01,kk1mov led_0,#05back: retkk1: mov led_0,#00ajmp backDISP: mov dptr,#tableMOV A,LED_0 ;数码显示子程序MOVC A,@A+DPTRCLR P2.3MOV P0,ALCALL DELAYSETB P2.3mov dptr,#tableMOV A,LED_1MOVC A,@A+DPTRCLR P2.2MOV P0,ALCALL DELAYSETB P2.2mov dptr,#tableMOV A,LED_2MOVC A,@A+DPTRsetb acc.7CLR P2.1MOV P0,ALCALL DELAYSETB P2.1RETDELAY: MOV R6,#10 ;延时5毫秒D1: MOV R7,#250DJNZ R7,$DJNZ R6,D1RETTABLE: D B 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHtab:db 0, 0 , 0 , 1, 0, 2, 0, 0, 3, 0 db 4, 0, 0, 5, 0, 6, 0, 0, 7, 0db 8, 0, 0, 9, 0, 0, 10, 0, 11, 0db 0, 12, 0, 13, 0, 0, 14, 0, 15, 0db 0, 16, 0, 17, 0, 0, 18, 0, 19, 0db 0, 20, 0, 0, 21, 0, 22, 0, 0, 23db 0, 24, 0, 0, 25, 0, 26, 0, 0, 27db 0, 28, 0, 0, 29, 0, 0, 30, 0, 31db 0, 0, 32, 0, 33, 0, 0, 34, 0, 35db 0, 0, 36, 0, 37, 0, 0, 38, 0, 39db 0, 0, 40, 0, 0, 41, 0, 42, 0, 0db 43, 0, 44, 0, 0, 45, 0, 46, 0, 0db 47, 0, 48, 0, 0, 49, 0, 50, 0, 0db 51, 0, 0, 52, 0, 53, 0, 0, 54, 0db 55, 0, 0, 56, 0, 57, 0, 0, 58, 0db 59, 0, 0, 60, 0, 0, 61, 0, 62, 0db 0, 63, 0, 64, 0, 0, 65, 0, 66, 0db 0, 67, 0, 68, 0, 0, 69, 0, 70, 0db 0, 71, 0, 0, 72, 0, 73, 0, 0, 74db 0, 75, 0, 0, 76, 0, 77, 0, 0, 78db 0, 79, 0, 0, 80, 0, 0, 81, 0, 82db 0, 0, 83, 0, 84, 0, 0, 85, 0, 86db 0, 0, 87, 0, 88, 0, 0, 89, 0, 90db 0, 0, 91, 0, 0, 92, 0, 93, 0, 0db 94, 0, 95, 0, 0, 96, 0, 97, 0, 0db 98, 0, 99, 0, 0, 100, 0, 0, 0 END。