数字电压表设计说明书.docx
《数字电压表设计说明书.docx》由会员分享,可在线阅读,更多相关《数字电压表设计说明书.docx(17页珍藏版)》请在冰豆网上搜索。
![数字电压表设计说明书.docx](https://file1.bdocx.com/fileroot1/2023-1/7/d6bfa32f-ca71-44a5-a1ab-69a18ca18e9d/d6bfa32f-ca71-44a5-a1ab-69a18ca18e9d1.gif)
数字电压表设计说明书
引言 2
1系统总体设计及方案 3
1.1设计题目、内容、要求 3
1.2概述 3
1.3系统原理及基本框图 4
1.4方案说明 4
1.5方案论证 4
1.5.1显示部分 4
1.5.2A/D转换部分 5
2电路设计 5
2.1输入电路 5
2.2A/D转换电路 5
2.3双积A/D转换器的工作原理 5
2.4A/DC0808的转换流程图 7
2.5液晶显示部分 7
2.6设计调试及性能分析 8
2.6.1调试与测试 8
2.6.2性能分析 8
2..6.3程序的编写及电路的实现 8
3芯片及软件介绍 9
3.1ADC08083 9
3.1.1引脚功能(外部特性) 9
3.1.2内部结构 9
3.289C51 10
3.2.1主要特性 10
3.2.2管脚说明 10
3.374LS161 11
3.4KeilC51软件介绍 12
3.5ISIS6Professional软件介绍 12
4警报系统的设计 13
5数字电压表设计电路 14
5.1数字电压表完整的设计电路图 14
5.2电路的仿真 15
6设计总结 16
附录 17
参考文献 21
引言
随着微电子技术的不断发展,微处理器芯片的集成度越来越高,单片机亦可以在一片芯片集成CPU、存储器、定时器|计数电路,这就很容易将计算机技术和测控技术结合,组成智能化测量控制系统。
在电路设计中我们时常会用到电压表,过去大部分电压表还是模拟的,虽然精度较高但模拟电压表采用用指针式,里面是磁电或电磁式结构,所以响应较慢。
为适应许多高速信号领域目前已广泛使用数字电压表。
本设计是基于Atmel51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。
该系统采用Atmel89C52单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用共阴极数码管显示被测电压.
然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。
但数字电压表由于存在采样误差,精度不是很高。
不过目前可以通过技术手段来缩小误差。
使其精度达到与模拟电压表一样精确甚至更高。
可见将来数字电压表必将取代模拟电压表。
现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义.本章将重点介绍单片A/D转换器以及有它们构成的基于单片机的数字电压表的工作原理。
1系统总体设计及方案
1.1设计题目、内容、要求
设计题目:
数字电压表的设计。
设计内容及要求:
(1)可以测量0~5V的8路直流电压。
(2)在LED数码管上显示测量电压值,显示范围为0.00V~5.00V,一位LED数码管显示路数。
(3)通过控制键可以改变显示模式,8通道轮流显示或单路选择显示。
(4)设定每一路的上限值,超过界限值时警报喇叭发声,以示警告。
(5)其他功能,创新部分。
1.2概述
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
1.3系统原理及基本框图
如图1.1所示,模拟电压经过滑动变阻器切换到不同的分压电路后,送到A/D
转换器进行A/D转换,然后送到单片机中进行数据处理。
处理后的数据,通过P1口传输送到LED中显示。
1.4方案说明
系统首先通过按键逐路选择八路通道中的一路或是循环显示,将该路某一路电压送入ADC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的EO端口置为高电平,单片机将转换后结果存片内RAM。
系统调出计算子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调用显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。
1.5方案论证
1.5.1显示部分
系统通过对LED灯的动态显示及不停的轮流给数码管位选端加驱动电压,因为在给其中一个数码管位选段加驱动电压的时候它才能变亮,而其他的是暗的,由于数码管暗下来需要一定的时间,人眼具有视觉暂留特点,同时系统又给其它的施加驱动电压,所以我们看到的就是稳定的亮着的数字了。
1.5.2A/D转换部分
通过A/D转换器将输入的模拟信号转换成数字信号,然后进行处理。
为了达到这一目的,使用调试简单,能与微处理机或其他数字系统兼容的A/D转换器ADC0808芯片。
ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
2电路设计
2.1输入电路
输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。
本电路设计所用电压为0-5V,其大小通过滑动变阻器调节。
2.2A/D转换电路
A/D转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。
本设计采用双积A/D转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。
在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。
2.3双积A/D转换器的工作原理
如图2.1所示:
对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进积分,将其变换成与输入模拟电压成正比的时间间隔T1,再利用计数器测出。
此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。
2.4A/DC0808的转换流程图
数字量电压值输入89C51
启动ADC0808
等待转换是否结束
将结果转换成BCD码并输出
图2.3A/DC0808的转换流程图图2.3A/DC0808的转换电路图
其软件中实现其数字量电压转换为三位模拟量电压的部分程序如下:
MOV A,#0FFH
MOV P0,A
MOV A,P0 ;读取AD转换结果
CLR P2.7
MOV B,#51 ;AD转换结果转换成BCD码
DIV AB
MOV R1,A ;A中为电压数值第一位,存放在R1中
MOV A,B
MOV B,#2
MUL AB
MOV B,#10
DIV AB ;A中存放电压数值第二位,并存放入R2中
MOV R2,A
MOV R3,B ;余数B中存放电压数值第三位
2.6设计调试及性能分析
2.6.1调试与测试
采用KeiluVision4编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧好程序后进行软硬件联调,最后进行端口电压的对比测试,要求测试对比中标准电压值采用数字万用表测得。
简易数字电压表与“标准”数字电压表测得的绝对误差应在0.02V以内。
2.6.2性能分析
由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH),因此单片机最大的数值分辨率为0.0196V(5/255)。
这就决定了该电压表的最大分辨率(精度)只能达到0.0196V。
测试时电压数值的变化一般以0.02的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器。
简易电压表测得的值基本上均比标准值偏大0.01~0.02V。
这可以通过校正0809的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。
另外可以用软件编程来校正测量值。
ADC0808的直流输入阻抗1MΩ,能满足一般的电压测试需要。
另外,经测试ADC0808可直接在2MHz的频率下工作,这样可省去分频器14024。
2..6.3程序的编写及电路的实现
在本次课设中使用ISIS6Professional软件进行对电路进行绘制、模拟及仿真,使用keilc51软件编写单片机89C51的程序,以下将对SIS6Professional软件及keilc51软件进行介绍。
3芯片及软件介绍
3.1ADC0808
3.1.1引脚功能(外部特性)
ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。
各引脚功能如下:
1~5,26~28(IN0~IN7):
8路模拟量输入端。
8,14,15,17~21:
8位数字量输出端。
22(ALE):
地址锁存允许信号,输入,高电平有效。
6(START):
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
7(EOC):
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9(OE):
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
12(VREF(+))、16(VREF(-)):
参考电压输入端。
11(Vcc):
主电源输入端。
13(GND):
地。
23~25(ADDA、ADDB、ADDC):
3位地址输入线,用于选通8路模拟输入中的一路。
3.1.2内部结构
ADC0808是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近。
极限参数电源电压(Vcc):
6.5V。
控制端输入电压:
—0.3V~15V。
其它输入和输出端电压:
-0.3V~Vcc+0.3V。
贮存温度:
—65℃~+150℃功耗(T=+25℃):
875mW。
引线焊接温度:
①气相焊接(60s):
215℃;②红外焊接(15s):
220℃抗静电强度:
400V。
3.289C51
单片机该系列单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存 储器,全部支持12 时钟和6 时钟操作。
P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线3 个16 位。
定时/计数器6 输入4 优先级嵌套中断结构1 个串行I/O 口可用于多机通信I/O 扩展或全双工UART。
以及片内振荡器和时钟电路89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.2.1主要特性
与MCS-51兼容;4K字节可编程闪烁存储器;寿命:
1000写/擦循环;
数据保留时间:
10年;全静态工作:
0Hz-24MHz;三级程序存储器锁定;128*8位内部RAM;32可编程I/O线;5个中断源,两个16位定时器/计数器;可编程串行通道;低功耗的闲置和掉电模式,片内振荡器和时钟电路。
3.2.2管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0RXD(串行输入口);P3.1TXD(串行输出口);P3.2/INT0(外部中断0);P3.3/INT1(外部中断1);P3.4T0(记时器0外部输入);P3.5T1(记时器1外部输入);P3.6/WR(外部数据存储器写选通);P3.7/RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.374LS161
161为可预置的4位二进制同步计数器,共有54/74161和54/74LS161两种线路结。
74LS161的清除端是异步的。
当清除端CLEAR为低电平时,不管时钟端CLOCK状态如何,即可完成清除功能。
74LS16的预置是同步的。
当置入控制器LOAD为低电平时,在CLOCK上升沿作用下,输出端QA-QD与数据输入端A-D相一致。
161的计数是同步的,靠CLOCK同时加在四个触发器上而实现的。
当ENP、ENT均为高电平时,在CLOCK上升沿作用下QA-QD同时变化,从而消除了异步计数器中出现的计数尖峰。
3.4KeilC51软件介绍
KeilC51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。
工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。
建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。
调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。
在工具栏下面,默认有三个窗口。
左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。
右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。
下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。
如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。
MCS-51单片机软件KeilC51开发过程为:
1.建立一个工程项目,选择芯片,确定选项;
2.建立汇编源文件或C源文件;
3.用项目管理器生成各种应用文件;
4.检查并修改源文件中的错误;
5.编译连接通过后进行软件模拟仿真或硬件在线仿真;
6.编程操作;
7.应用。
3.5ISIS6Professional软件介绍
ISIS6Professiona软件是它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
ISIS6Professiona软件具有的功能:
原理布图;PCB自动或人工布线;SPICE电路仿真
4警报系统的设计
图4.1 报警装置
为防止电压表所测电压值过大而烧毁电压表,添加一个报警装置来提醒使用者,如上图4-1.当电压表所测电压值超过4伏时speaker装置就会自动发出声响,而且红灯亮起。
这就对电表的性能进一步进行了完善,以便提高产品的使用寿命,从而提高产品的使用价值。
5数字电压表设计电路
5.1数字电压表完整的设计电路图
图5.1数字电压表设计电路
系统工作过程:
首先通过按键或开关选择要测量的电压地址,即几路电压,若通过按键逐路选择,则要通过计数器74LS161记录按键次数,从而对电压地址加一,从而实现地址的转移,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,之后数据经过处理,就可以在数码管上显示系统通过调节滑动变阻器可以调节测量电压,测试电路图5.2:
图5.2数字电压表测试电路
5.2电路的仿真
若通过ISIS6Professional软件画出改课设的电路图,运行无误,并通过KeilC51软件编写程序编译无误并生成“HEX”格式的目标文件之后,将其加载入单片机使其运行。
具体方法为:
右击工作区并选中使用的89C51单片机,左击出现“EditComponent”对话框,点击“ProgramFile”选项选择KeilC51软件中已经生成的.HEX文件确定。
启动软件,观察其仿真结果如图5.2所示。
通过电路中的自锁开关闭合实现电路中电压的循环显示各路的电压值,通过断开自锁开关,则每按一次不自锁开关,则路数数加一并显示该路电压值。
6设计总结
本次设计的是数字电压表,我的设计可以满足老师所给的设计要求,本设计可以做到:
1.循环状态,可以实现八路电压的循环测量显示,并且当其中任何一路超过3v报警系统启动,并将显示电压停留在报警支路上,通过关报警可使其继续循环。
2.单路显示,通过按钮控制所显示的支路。
优点:
控制方便,使用简单,测量精确的较高。
缺陷:
ADC0808芯片需输入参考电压,若以5伏为参考电压只能显示0到5伏电压,虽满足要求但若超5伏电压则只能显示5伏。
为期2周的单片机电压表设计即将结束,这期间,由于刚从寒假的放松状态中回来,还有点不适应紧张的学习生活,开始2天很放松,觉得设计应该是很简单的,并没有放在心上。
可是后来发现还有很多的东西没有弄懂,现在所掌握的知识对于完成设计来说还很不够,这才从放松中回过神来,抓紧时间查阅资料,通过各种的途径来搜寻有用的信息,进而开始一步步的设计。
开始时是一头雾水,后来多和同学交流,阅读资料,终于有点头绪了,基于已经学习的Protues及Keil软件的应用,根据要求设计,终于在两周的时间里把我的作品圆满的完成了,基本达到了设计要求。
在这次课程设计中让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,同学们就会相互讨论或者帮助。
团对协作就是创造力,无论在现在的学习中还是在以后的工作中,团队都是至关重要的,有了团队会有更多理念、更多的思维、更多的情感。
单片机是很重要的一门课程,我们在课堂学到的内容很有限,所以在以后的学习或是工作中还需要好好的深入研究和学习,学好了单片机也就多了一项生存的技能。
这是一次令人难忘的经历。
附录
源码:
ORG 0000H
SJMP START
START:
MOV DPTR,#TAB ;段码表首地址
WAIT:
MOV A,#0FFH
MOV P3,A
MOV A,P3
ANL A,#07H
JNB P3.3,LOOP1
MOV R0,A
SWAP A
MOV P3,A
CLR P2.5
SETB P2.5
CLR P2.5 ;启动AD转换
JNB P2.6,$ ;等待转换结束
SETB P2.7
MOV A,#0FFH ;读取AD转换结果
MOV P0,A
MOV A,P0
MOV 65H,A
CLR P2.4
CLR Cy
SUBB A,#99H
JC LP
SETB P2.4
LP:
MOV A,65H
CLR P2.7