数字电压表报告Word版

上传人:每**** 文档编号:50178757 上传时间:2022-01-20 格式:DOC 页数:21 大小:184KB
收藏 版权申诉 举报 下载
数字电压表报告Word版_第1页
第1页 / 共21页
数字电压表报告Word版_第2页
第2页 / 共21页
数字电压表报告Word版_第3页
第3页 / 共21页
资源描述:

《数字电压表报告Word版》由会员分享,可在线阅读,更多相关《数字电压表报告Word版(21页珍藏版)》请在装配图网上搜索。

1、 单片机课程设计设计报告设计题目: 数字电压表 班级学号: 5081016 姓 名: 刘正 设计时间: 2010-12-30 备 注: 推荐精选目 录第1章 绪论 .3第2章 设计任务与要求 2.1 设计任务.4 2.2 设计要求.4第3章 方案设计 3.1 方法选择.5 3.2 方案设计.5第4章 硬件设计4.1 模块设计电路.6 4.1.1 电路时钟.6 4.1.2 控制电路.7 4.2 逐次逼近式A/D转换模块设计.74.2.1ADC0808简介.74.2.2 ADC0808内部结构图.84.2.3A/D转换电路设计.94.3 8255端口扩展模块.94.4 LED显示模块.104.5P

2、rotues仿真电路设计4.5.1电路仿真图.104.5.2电路工作原理.11第5章系统软件设计5.1 系统主程序设计.125.2 系统源程序说明.13第6章 调试与测试结果分析.15第7章 结论.16附录1 源程序代码.17附录2 设计原理图.18推荐精选第1章 绪 论数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字

3、电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的数字电压表。一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以AT89C52单片机为核心,以逐次比较型A/D转换器ADC

4、0809、数码管显示器为主体,构造了一款简易的数字电压表,能够测量1路05V直流电压,最小分辨率0.019V。推荐精选第2章 设计任务与要求2.1设计任务利用ADC0809, AT89C52单片机及显示电路,设计一个数字电压表,能够测量05V之间的直流电压值,能够实时检测显示。2.2设计要求测量最小分辨率为0.019V,能够实时检测显示。推荐精选第3章 方案设计3.1 方法设计设计方法主要采用ADC0809+AT89C52+8255+液晶显示实现电路,通过程序设计,将被测信号由ADC0809模拟输入1端口输入,经过转换将数据采集到单片机,经过数据转换,将转换数据经8255扩展口PA,PB口送出

5、,其中PA口输出位选码,PB口输出相应的字形码,在5个共阳数码管扫描显示。3.2 方案设计经过以上方法设计,采用如图3-1所示方案逻辑图。逐次逼A/D转换模块单片机控制模块数码管显示模块模拟量图3-1方案逻辑图AT89C52A/D转换ADC0808电压信号8255数码管显示图3-2设计方案原理框图设计模块说明:本设计方案主要有四大模块:1、 AT89C52单片机控制模块2、 ADC0808数模转换模块3、 8255端口扩展模块推荐精选4、 LED显示模块第4章硬件设计由上可知数字电压表主要分为四个模块:AT89C52单片机控制模块,ADC0808数模转换模块、8255端口扩展模块、LED显示模

6、块4.1单片机控制模块设计单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路组成。4.1.1 时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器和对振荡频率有微调作用,通常取(3010)pF石英晶体选择6MHz或12MHz都可以。时钟电路如所示。图4-1时钟晶振推荐精选4.1.2 单片机控制模块电路图 图4-2 单片机控制电路4.2逐次逼近式A/D转换模块设计4.2.1ADC0808简介1ADC0808引脚功能推荐精选图4-2.1 ADC0808引脚图 IN0

7、IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。D0D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。4.2.2 ADC0808内部结构图推荐精选图4.2.2 ADC0808内部结构逐次逼近

8、型A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。4.2.3 A/D转换电路设计图4.2.3ADC0808转换电路设计4.3 8255端口扩展模块 8255芯片主要用于I/O端口的扩展,在此主要将PA、PB口用做输出端口,接数码管的位选和段选。电路设计图如下:推荐精选图4.3.1 8255扩展端口电路4.4 LED显示模块 主要用于显示数据,为共阴数码管,与8255的接线图如下:图4.3.1 显示电路4.5Protues仿真电路设计4.5.1电路仿真图推荐精选图4.5 Protues仿真电路原理图4.5.2电路工作原理D

9、j-52EHA/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(2325脚)可决定对哪一路模拟输入作A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2S宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出,10脚为0808的时钟输入端,利用393分频芯片将8MHZ脉冲进行分频得到1MHz时钟。8255的PA、PB端口作为五位LED数码管显示控制。推荐精选第5章系统软件设计5.1 系统主程序设计 初始化程序

10、初始化程序,主要为对8255写控制字,启动A/D转换芯片。 主程序初始化之后,系统等待A/D转换结束,结束之后,将一通道的A/D转换值送入单片机,之后进行相应的数据处理,调用显示子程序在数码管上显示,主程序在调用显示子程序和测试子程序之间循环,程序流程图见图5-1推荐精选开 始初始化调用A/D转换子程序调用显示子程序图5-1 程序流程图 显示子程序显示子程序采用动态扫描法实现五位数码管的数值显示(四位有效值,一位小数点)。测量所得的A/D转换数据赋值给data1变量,经过相应的运算处理,分离出个位十分位,百分位,千分位的有效值,通过查询显示表,显示相应的值,通过调节频率,实现动态扫描。 模/数

11、转换测量子程序模/数转换测量子程序,主要为控制通道1来采集电压值,启动转换,并将对应的数值送入单片机。5.2 系统源程序编写a.程序的相关头文件及变量定义#include#include#define uchar unsigned char#define uint unsigned intuchar ge,shifen,baifen,qianfen;double sum; /定义相关变量 uchar zhengshu; uint xiaoshu; uchar xdata wei _at_ 0xff20; /Pa port on 8255 /定义8255端口指针uchar xdata duan

12、_at_ 0xff21;/Pbport on 8255uchar xdata ctrl _at_ 0xff23;/control port on 8255推荐精选uchar xdata abc _at_ 0xff80; /定义A/D端口指针unsigned char data1;uchar code table= 0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0x7f,/*小数点*/; /定义数码管显示数值 b.延时子程序

13、void delayms(unsigned char ms) uchar i; while(-ms!=0) for(i = 0; i 50; i+); c.显示子程序void changs() sum=data1*(5.00/256); /将二进制数转换为电压值 zhengshu=(unsigned int)sum; /分离整数变量 xiaoshu=(sum-zhengshu)*1000; /提取小数部分的3位有效值 ge=zhengshu; shifen=xiaoshu/100; /分离十分位的小数值 baifen=xiaoshu/10%10; /分离百分位的小数值 qianfen=xiao

14、shu%10; /千分位 wei=0xdf; /打开位选,选第一位数码管 duan=tablege; /打开段选,显示整数部分的电压值 delayms(10); wei=0xef; duan=table10; delayms(10); wei=0xf7;/ 1111 1101duan=tableshifen; delayms(10); wei=0xfb; /1111 1011推荐精选duan=tablebaifen; delayms(10); wei=0xfd; duan=tableqianfen; d初始化子程序void sys() abc=0; ctrl=0x80; delayms(3);

15、 e.数据采集子程序void getdata() data1=abc; f.主函数void main() sys(); while(1) getdata(); changs(); abc=0; 第6章 调试与测试结果分析(1)实验系统连线图 8MHz激励源经393分频器接到ADC0809的CLOCK端; ADC0809的0通道IN0接到模拟信号输出端; I/O接口FF80H通过或非门单元74LS02控制ADC0809的启动。(2)程序调试 采用程序编译软件KEIL VESION 2和DJ-52EH 单片机综合开发实验仪联机在线调试。(3)实验结果与分析推荐精选实验结果:试验仪上的5个数码管显示

16、当前电压值,并能实现动态显示;分析:第一个数码管显示电压值的整数部分;第二个数码管显示小数点;第三到五数码管显示电压值得小数部分。仿真测试表明,系统性能良好。实际调试时,测量读数稳定易读、更新速度合理,随着调节电位器数字电压表能随时显示测量电压。直流电压测量范围为04.980V,最小分辨率为0.0196V(5/255),满足任务书指标要求。但是,该系统也存在一定程度的不足,相关分析如下: (1)输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度; (2)

17、输出量可用平均值算法来改善,使测量准确度更高。 (3)若能将测量的电压值实时保存,使用时将更方便。 (4)ADC0809可实现对8个通道的输入信号轮流转换,本设计仅仅使用了其中一个通道,造成了较大的资源浪费。若能对电路稍加改进,实现对多路信号的轮流测量并自动保存相应结果,其应用价值将会更大。 (5)由于ADC0809为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH),因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压表的最大分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以0.02的电压幅度变化,如要获得更高的精度要求,应采用12位、13

18、位的A/D转换器。 (6)简易电压表测得的值基本上均比标准值偏大0.010.02V。这可以通过校正0809的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。另外可以用软件编程来校正测量值。第7章 结论推荐精选附录1源程序程序:#include#include#define uchar unsigned char#define uint unsigned intuchar ge,shifen,baifen,qianfen;double sum; /定义相关变量 推荐精选uchar zhengshu; uint xiaoshu; uchar xdata we

19、i _at_ 0xff20; /Pa port on 8255 /定义8255端口指针uchar xdata duan _at_ 0xff21;/Pbport on 8255uchar xdata ctrl _at_ 0xff23;/control port on 8255uchar xdata abc _at_ 0xff80; /定义A/D端口指针unsigned char data1;uchar code table= 0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*

20、/ 0x80,/*8*/ 0x90,/*9*/ 0x7f,/*小数点*/; /定义数码管显示数值void delayms(unsigned char ms) uchar i; while(-ms!=0) for(i = 0; i 50; i+); void changs() sum=data1*(5.00/256); /将二进制数转换为电压值 zhengshu=(unsigned int)sum; /分离整数变量 xiaoshu=(sum-zhengshu)*1000; /提取小数部分的3位有效值 ge=zhengshu; shifen=xiaoshu/100; /分离十分位的小数值 baif

21、en=xiaoshu/10%10; /分离百分位的小数值 qianfen=xiaoshu%10; /千分位 wei=0xdf; /打开位选,选第一位数码管 duan=tablege; /打开段选,显示整数部分的电压值 delayms(10); wei=0xef; duan=table10; delayms(10); wei=0xf7;/ 1111 1101推荐精选duan=tableshifen; delayms(10); wei=0xfb; /1111 1011duan=tablebaifen; delayms(10); wei=0xfd; duan=tableqianfen; void sys() abc=0; ctrl=0x80; delayms(3); void getdata() data1=abc; void main() sys(); while(1) getdata(); changs(); abc=0; 附录2推荐精选 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!