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

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

单片机数字电压表课程设计实验心得在进行单片机数字电压表课程设计实验的过程中,我通过实践学习了单片机的基本原理、数字电压测量方法以及编程技巧。
这次实验对于我的学习和成长有着重要的意义,下面我将就此次实验的设计过程、实施情况以及心得体会进行详细总结。
一、设计过程1. 实验目标确定:在进行实验之前,我首先明确了实验的目标,即设计一个能够准确测量电压值并显示的数字电压表。
2. 硬件选择:根据实验要求,我选择了一块适合的单片机开发板作为硬件平台,并购买了一些必要的电子元件,如电阻、电容、显示屏等。
3. 电路设计:在实验开始之前,我进行了电路设计,包括模拟电路和数字电路。
模拟电路主要负责电压的采样和放大,数字电路则负责将采样到的电压值转化为数字信号,并将其显示在显示屏上。
4. 编程实现:在电路设计完成后,我开始进行编程实现。
通过学习单片机的编程语言和相关知识,我成功地将电路和单片机进行了连接,并编写了相应的程序代码。
在编程过程中,我主要使用了C语言来进行程序设计。
5. 测试和调试:在完成编程后,我对整个系统进行了测试和调试。
通过不断地调整参数和修改代码,最终成功实现了一个能够准确测量电压值并显示的数字电压表。
二、实施情况在实施实验的过程中,我遇到了一些困难和问题,但通过不断地学习和探索,我最终克服了这些困难,并成功完成了实验。
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 转换得到的数字量转换为实际的电压值,并进行精度处理。
单片机课程设计——数字电压表

单片机预习报告--------------电压表一.题目分析根据题目要求,系统设计需要基于自动控制原理,实现电压量程的自动切换、数据采样、电压显示等功能。
主要来说,系统由信号调理电路、A/D转换电路、单片机控制系统、数码显示系统等几个模块组成。
二.系统总体设计与框图系统框图如图下图所示。
该过程是:首先通过系列比较器检测输入电压的极性与范围,单片机根据电压极性与范围对继电器阵列进行相应的动作,实现了输入量程的全自动转换。
经过调理后的电压信号由AD转换后送出数码显示。
系统总体设计与框图三.各模块方案1)A/D采样系统采用ADC08322)自动量程切换量程切换电路包括电压衰减变换电路和无零漂小信号放大电路。
智能数字电压表中关键技术之一为自动量程转换问题。
用单片机控制多组继电器进行量程切换。
特点是简单实用,缺点是机械噪声大。
3)电压检测为了实现对输入的微小信号或大信号进行精确测量,我们拟采用信号放大或衰减预处理电路,即需要对被测量电压的极性、范围进行判断和确定,从而将被测电压的基本信息传递给单片机系统。
用多组比较器进行电压范围的分段检测,实现对输入电压的粗略测量。
为了粗略地得到被测量的电压范围采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。
4)显示部分采用LED数码管动态扫描显示。
采用3个位LED动态扫描显示的优点是能改善外部信号对显示的干扰,但单片机在工作时要求CPU不停地对LED更新,这将会降低系统的运行速度,且占用资源比较多。
5)信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路、继电器模块四部分组成。
7)继电器模块单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.四.元件清单五.程序设计程序流程图如下。
单片机课程设计报告数字电压表

单片机课程设课题名称:数字电压表课程原理:1、模数转换原理:试验中,我们选用ADC0809作为模数转换的芯片,其为逐次逼近式AD转换式芯片,其工作时需要一个稳定的时钟输入,根据查找资料,得到ADC0809的时钟频率在10KHZ~1200KHZ,我们选择典型值640KHZ。
课题要求测量电压范围是0到5V,又ADC0809的要求:V ref+<=Vcc,V ref->=GND,故我们取V ref+=+5V,V ref-=0V。
由于ADC0809有8个输入通道可供选择,我们选择IN0通道,直接使ADC0809的A、B、C接地便可以了,在当ADC0809启动时ALE引脚电平正跳变时变可以锁存A、B、C 上的地址信息。
ADC0809可以将从IN0得到的模拟数据转换为相应的二进制数,由于ADC0809输出为8位的二进制数,转换时将0到5V分为255等分,所以我们可以得到转换公式为x/255*5化简为:x/51,x为得到的模拟数据量,也就是直接得到的电压量。
在AD转换完成后,ADC0809将在EOC引脚上产生一个8倍于自身时钟周期的正脉冲,以此来作为转换结束的标志。
然后当OE引脚上产生高电平时,ADC0809将允许转换完的二进制数据输出。
2、数据处理原理:由ADC0809的转换原理可以知道我们从其得到数据还只是二进制数据,我们还需要进一步处理来的到x的十进制数,并且对其进行精度处理,也就是课题要求的的精确到小数点后两位,在这里我们用51单片机对数据进行处理。
我们处理数据的思路是:首先将得到的二进制数直接除以十进制数51,然后取整为x的整数部分,然后就是将得到的余数乘以10,然后再除以51,再取整为x的十分位,最后将得到的余数除以5得到x的百分位。
3、数据显示原理:试验中我们用到四位一体的七段数码管,所以我们只能考扫描显示来完成数码管对x的显示,我们用的是四位数码显示管,但是x只是三位的,故我们将将第四位显示为单位U,通过程序的延时,实现四位数码管的稳定显示。
单片机课程设计(数字电压表,数字温度计,计时器设计)资料

《单片机原理与应用》课程设计目录第1章简易数字电压表的设计..........................1第2章DS18B20数字温度计的设计......................4第3章秒表/时钟计时器的设计.........................12第一章简易数字电压表的设计1.1 功能要求简易数字电压表的设计可以测量0~5V的8路输入电压值,并在四位上轮流显示或单路选择显示。
测量最小分辨率为0.019V,测量误差为±0.02V。
1.2 方案论证按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。
系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。
数字电压表系统设计方案框图如图1.1。
1.3 系统硬件电路的设计简易数字电压测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图1.2所示。
A/D转换由集成电路0809完成,0809具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。
22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。
6脚为测试控制,当输入一个2μs宽高电平脉冲时,就开始A/D转换。
7脚为A/D转换结束标志,当A/D 转换结束时,7脚输出高电平。
9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。
单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。
P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。
P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。
1.4 系统程序的设计1.4.1 初始化程序系统上电时,初始化程序将70H~77H内存单元清0,P2口置0。
单片机数字电压表课程设计报告

单片机数字电压表课程设计报告单片机数字电压表课程设计报告摘要:本次课程设计采用单片机来实现数字电压表的设计,通过对市场上常见单片机的选型和开发工具的使用,实现了数字电压表的硬件和软件设计。
该数字电压表具有分辨率高、测量精度高、响应速度快等特点,可广泛应用于测量高压、低压、直流电压等领域。
关键词:单片机、数字电压表、驱动电路、计数器一、课程设计目的本次课程设计旨在让学生了解数字电压表的设计方法和原理,通过使用单片机来实现数字电压表的设计,提高学生的实践能力和创新能力。
同时,通过本次课程设计,还可以让学生了解单片机的使用方法和开发工具的使用,加深对单片机应用的理解。
二、课程设计内容本次课程设计采用单片机来实现数字电压表的设计,具体包括以下内容:1. 对市场上常见单片机的选型和开发工具的使用。
2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。
3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。
4. 将数字电压表与单片机连接,进行测试和调试。
三、课程设计原理数字电压表的设计原理是利用单片机的计数器来实现对电压值的计数和显示。
单片机通过外部时钟信号来控制计数器的计数频率,将计数器的计数值累加到显示寄存器中,从而实现对电压值的显示。
同时,通过对电压值的测量和计算,可以实现对高压、低压、直流电压的测量和显示。
四、课程设计步骤1. 对市场上常见单片机的选型和开发工具的使用。
2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。
3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。
4. 将数字电压表与单片机连接,进行测试和调试。
五、课程设计成果通过本次课程设计,学生可以独立完成数字电压表的硬件和软件设计,掌握单片机的应用和开发技巧,提高实践能力和创新能力。
同时,学生还可以根据实际应用需求,对数字电压表进行改进和创新,提高其实用性和市场竞争力。
简易数字电压表单片机课程设计

一、设计任务与要求1、设计任务:简易数字电压表的设计2、设计要求:1)0—5V电压2)8路输入电压3)4位LED或LCD显示4)结果按十进制显示,芯片自选。
二、硬件硬件框图与说明(元件选择依据即功能说明)根据MUC-8088/8086H单片机的内部结构特点本文提出以MCS-51单片机为核心的电压测量系统。
该系统以8088/8086和ADC0809核心内件,能够在单片机的控制下监测八路的输入电压值,用8位串行A/D转换器进行0-5V量程自动转换,并且测量的电压值可通过四位数码管。
整个系统的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。
单片机8088/8086是整个系统的核心,实现输入端的分路选择,模数转换后数据的处理及在数码管上数据的显示等功能。
正文着重给出了软硬件系统的各部分电路,介绍了该系统的工作原理,MCS-51单片机特点,8088/8086的功能和应用,ADC0809的功能和应用等。
芯片介绍1)8051芯片8051是在8031的基础上,片内集成有4K ROM,作为程序存储器,是一个程序不超过4K字节的小系统。
ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。
所以8051适合与应用在程序已定,且批量大的单片机产品中。
8051单片机简介8051单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]。
如果按功能划分,它由如下功能部件组成,即中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口、中断系统和时种电路,其基本结构依旧是CPU加上外围芯片的传统结构模式。
但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。
8051单片机的硬件结构具有功能部件种类全,功能强等特点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.程序设计及仿真
2.C语言程序源代码 void ADC0808() { if(!EOC)//如果EOC为低电平,则产生一个脉冲,脉冲的下降 沿用于启动A/D转换 { START=0; START=1; START=0; } while(!EOC);//等待A/D转换结束 START=1;//转换结束后,再产生一个脉冲,脉冲下降沿用于 将EOC设置为低电平,为下一次转换做准备 START=0; while(EOC); }
4.程序设计及仿真
2.C语言程序源代码 void display() //显示子程序 { P2=0xfe; P0=table[b]; delay_display(1); P2=0xfd; P0=table[d]; delay_display(1); P2=0xfd; P0=table[10]; delay_display(1); P2=0xfb; P0=table[f]; delay_display(1); P2=0xf7; P0=table[g]; delay_display(1); }
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; int b,c,d,e,f,g; //定义长度为7的字符串 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0 x7f,0x6f,0x80} ; void delay_display(unsigned int z)//延时子程序 { unsigned int x,y; for (x=z;x>0;x--) for(y=110;y>0;y--); }
4.程序设计及仿真
2.C语言程序源代码 void main() { EA=1; TMOD=0X02; TH0=216; TL0=216; TR0=1; ET0=1; while(1) { bianma(); yima(); display(); } } void t0()interrupt 1 using 0 { CLK=~CLK; }
51单片机数字电压表课程设计
指导教师:么么哒 班级:电气工程及其自动化12(1)班 姓名:Gentle Van
1.数字电压表简介 2.设计要求 3.ADC0809简介
4.程序设计及仿真
5.实物制作与感悟
1.数字电压表简介
数字电压表定义: 数字电压表(Digital Voltmeter , DVM)是采用数字化测量技 术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形 式并加以显示的仪表 数字电压表特点:
4.程序设计及仿真
3.Proteus仿真
4.程序设计及仿真
3.Proteus仿真
滑动变阻器在100%位置时
4.程序设计及仿真
3.Proteus仿真
滑动变阻器在80%位置时
4.程序设计及仿真
3.Proteus仿真
滑动变阻器在50%位置时
4.程序设计及仿真
3.Proteus仿真
滑动变阻器在0%位置时
4.程序设计及仿真
2.C语言程序源代码 void bianma() { START=0; ADC0808(); a=P1*100; a=a/51; } void yima() { b=a/1000; //取出千位 c=a-b*1000;//取出百、十、个位 d=c/100;//取出百位 e=c-d*100;//取出十、个位 f=e/10;//取出十位 g=e-f*10;//取出个位 }
时钟脉冲信号 A/D转换启动信 号,正脉冲有效 转换结束信号, 高电平有效 8 路模拟输入,通 过 3 根 地 址 线 ADDA 、 ADDB 、 ADDC来选通一路 模拟通道选择地址 信号,ADDA为低 位,ADDC为高位 地址锁存允许信 号,高电平有效 输出允许信号, 高电平有效 ADC0809仿真引脚图 正负参考电压 输入端
5.附件:proteus仿真源文件+c语言源程序
ห้องสมุดไป่ตู้
★显示清晰直观、读数准确
★准确度高、分辨率高 ★测量范围宽、扩展能力强 ★抗干扰能力强等
2.设计要求
此次课程设计的设计要求是: 利用AT89C52与A/D转换器ADC0809设 计一个数字电压表,使其能够测量0~5v直流电 压,4位数码管显示。
3.ADC0809简介
1.ADC0809:是采样分辨率为8位的、以逐次逼近原理进行A/D转换的器件。
A/D转换后的 数据输出
3.ADC0809简介
2.ADC0809时序图分析
ADC0809时序图
4.程序设计及仿真
1.程序设计流程图
开始 开始 选择ADC0809的转换通道 设置定时器,为ADC0809提供时钟信号 启动A/D转换 否
转换是否结束? 是 输出转换结果 数值转换 显示
4.程序设计及仿真