《单片机原理及应用》课程设计报告-基于单片机的数字电压表设计.doc_第1页
《单片机原理及应用》课程设计报告-基于单片机的数字电压表设计.doc_第2页
《单片机原理及应用》课程设计报告-基于单片机的数字电压表设计.doc_第3页
《单片机原理及应用》课程设计报告-基于单片机的数字电压表设计.doc_第4页
《单片机原理及应用》课程设计报告-基于单片机的数字电压表设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用课程设计报告设计题目: 基于单片机的数字电压表设计 所属系部: 资源与环境工程学院 专 业: 计算机应用矿井监测 班 级: 101班 姓 名: 学号: 指导教师: 成绩: 完成日期: 2011 年 12 月 21 日 【摘要】随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。AT89C51单片机的一种电压测量电路,该电路采用ADC0808本文介绍一种基于A/D转换电路,测量范围直流 05V 的4路输入电压值,并在四位LED数码管上显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为正负0.02V。本次设计就是为了更好地掌握单片机及相关的电子技术,在参阅一些资料的基础上利用ADC0808而设计的数字电压表。关键词:单片机,ADC0808,数字电压,A/D转换目 录一、设计任务和性能指标41.1设计任务41.2性能指标4二、设计方案42.1系统总体设计方案5三、硬件系统设计53.1 AT89C51的功能介绍63.2 ADC0808的引脚及功能介绍73.3 74LS374介绍8 3.4 部分电路的介绍 93.5 LED数码管的控制显示9四、系统软件设计103.1 主程序113.2 A/D转换子程序123.3 中断显示程序13五、数字电压表仿真图14六、课程设计体会15参考文献16附录1系统原理图17附录 2源程序代码18一、设计任务和性能指标本设计是利用单片机AT89C51与ADC0808设计一个数字电压表,测量05V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。1.1设计任务 ADC0808是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。ADC0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。LED数码管显示采用软件译码动态显示。通过按键选择可对8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。可以测量05V范围内的3路直流电压值。在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V5.00V,1位LED数码管显示路数,3路分别为0-2。要求测量的最小分辨率为0.02V。1.2性能指标数字电压表是将被测模拟电压量转换为数字量,核心器件是一个间接型A/D转换器,并进行实时数字显示的测试仪表。正确选择出电路中的A/D转换器、显示译码器、三极管、电阻、等元器件,性能优越强,能为很多领域,工作的敬群性和可靠性较高,能提高较好的实时转换。二、设计方案2.1 系统总体设计方案本系统由以下几个模块组成:AT89C51、ADC0808、LED数码管、部分电路多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由外部电源提供为500kHz的方波。由于ADC0808的参考电压VREFVCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF) ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压05V进行采集,所以D对应的电压为V0,我们的目的就是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后的结果高八位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0的情况进行存取数据,得到的结果个位放入R0,十位放入R1,通过查表使之显示在LED显示器。简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。电路原理图见附录2。A/D转换由集成电路0808完成。0808具有8路模拟输入端口,地址(23-25)脚可决定对哪路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0808的时钟输入端,由外部信号源提供。单片机的P1、P3.0-P3.3端口作为四位LED数码管现实控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A/D转换数据读入用,P2端口用作0808的A/D转换控制。三、硬件系统设计3.1 AT89C51单片机简介AT89C51是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压、高性能CMOS 8为单片机。将通用的微处理器和Flash存储器结合在一起,可反复擦写的Flash存储器可有效地降低开发成本。AT89C51有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。主要功能特性:1、 低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。2、 兼容MCS51指令系统,8K可反复擦写(1000次)Flash ROM。3、 3个16位可编程定时/计数器中断,时钟频率0-24MHz。4、 32个双向I/O口,256B内部RAM。5、 2个串行中断,可编程UART串行通道。6、 2个外部中断源,共6个中断源。7、 2个读写中断口线,3级加密位。3.2 ADC0808的引脚及功能介绍ADC0808是一种典型的A/D转换器。它是由8位A/D转换器,一个8路模拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组成; +5V单电源供电,转化 时间在100us左右;内部没有时钟电路,故需外部提供时钟信号。芯片模型如图3-4所示。图ADC0808芯片模型(1) IN0IN7:8路模拟量输入端。(2) D0D7:8位数字量输出端口。(3) START:A/D转换启动信号输入端。(4) ALE:地址锁存允许信号,高电平有效。(5) EOC:输出允许控制信号,高电平有效。(6) OE: 输出允许控制信号,高电平有效。(7) CLK:时钟信号输入端。(8)A、B、C:转换通道地址,控制8路模拟通道的切换。A、B、C分别与地址线或数据线相连,三位编码对应8个通道地址端口,A、B、C=000111分别对应IN0IN7通道的地址端口。ADC 0808 采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。片内带有锁存功能的8路选1的模拟开关,由A、B、C的编码来决定所选的通道。ADC0809完成一次转换需100s左右,它具有输出TTL三态锁存缓冲器,可直接连接到AT89C51的数据总线上。通过适当的外接电路,ADC0808可对05V的模拟信号进行转换。3.3 74LS374的介绍74LS374为具有三态输出的八 D 边沿触发器,共有 54/74S374 和 54/74LS374 两种线路结构型式,374 的输出端 O0O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当时钟端 CP 脉冲上升沿的作用下,O 随数据 D 而变。由于 CP 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。引出端符号:D0D7 数据输入端OE 三态允许控制端(低电平有效)CP 时钟输入端O0O7 输出端3.4 部分电路的介绍1、晶振电路接12MHz晶振,根据芯片手册,适合并联30pf微调电容,从而构成并联谐振,帮助和稳定输出波形。2、复位电路AT89C51单片机要求至少两个高电平,以便单片机做好准备工作。当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,就会输出低电平,单片机利用输出高电平的这段时间复位。电阻和电容的值选择要合适。在这要求R1R2,所以选取R1=8.2k,R2=2003、 模拟输入电路通过可变电阻一端接电源+5v,一端接地GND,通过改变电阻的阻值3.5 LED数码管的控制显示介绍LED数码管模型如图所示。LED 的段码端口AG分别接至74LS374的QOQ7口.四、系统软件设计 4.1 主程序主程序包含初始化部分、调用A/D转换子程序和相应外部0中断显示电压数值程序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过单路、循环按键控制。 开始 显示子程序 A/D转换子程序 初始化4.2 A/D转换子程序A/D转换子程序用于对ADC0808的4路输入模拟电压进行A/D转换,并将转换的数值存入4个相应的存储单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。 进行十六进制调整 开始A/D转换调用延时存转换后的十六进制数数据指针加一入栈保护4路转换次数减一显示电压值NY 判断是否为04.3 中断显示程序设计中采用中断的方式来读取转换完成的数据能节省CPU的资源当系统设置好后,一旦数据转换完成,便会进入外部中断0,然后在中断中读取转换的数值,处理数据并送数码管显示输出。 LED 数码管采用软件译码动态扫描的方式。在中断程序中包含多路循环显示程序和单路显示程序,多路循环显示程序把4个存储单元的数值依次取出送到4个数码管上显示,每一路显示一秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示时需经过转换变成十进制BCD码,放于4个数码管显示缓冲区中。单路或多路循环显示通过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键的判断。数字量送P1口取段码地址P3.1=1?调用循环显示程序调用单路显示程序显示的是第4路重新调用显示程序NYNY五、Proteus软件仿真调试与测试本设计应用Proteus7软件,首先根据自己设计的电路图用Proteus7软件画出电路模型,关于这个软件的使用通过查一些资料和自己的摸索学习;然后我们用KEIL51软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试,测试的第一路对比见图4-1中标准电压值采用Proteus7软件中的模拟电压表测得。从图中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可以完全满足要求。由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH)因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压表的最大分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以0.02V的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器。简易数字电压表测得的值基本上均比标准值偏大0.01-0.02V。这可以通过校正0808的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。另外可以用软件编程来校正测量值。ADC0808的直流输入阻抗为1M欧姆,能满足一般的电压测试需要。另外,经测试ADC0808可直接在2MHz的频率下工作,这样可省去分频率14024。六、课程设计体会经过两周的努力终于设计成功,LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。由于仪器误差,LED显示最大值只能是4.9V,离标准最大值5.0V已经不远,达到预期目的,设计成功。 本设计参考了AT89C51与ADC0809转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时四个数码管根本不显示,后来发现用的是共阳极的数码管,而设计是共阴极的,更换后数码管终于显示,但问题又出现了,单路显示和循环显示的开关不能控制电路的单路显示和循环显示,经过仔细地检查电路和修改程序,采用中断的方法,产生一次外部中断0,程序转移到单路显示,按一次单路显示开关,地址加一,转换的模拟通道相应的加一,如果按下循环按键就返回循环显示的程序,功夫不负有心人,最后终于调试成功。在此再次向带领我们这次课程设计的老师说声:谢谢! 参考文献1 蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:重庆大学出版社.出版时间:2005年1月第2次印刷2 8051实验指导书电子电气综合实训系统.出版社:北京精仪达盛科技有限公司3 徐爱钧.智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,20044 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用M.北京:清华大学出版社,20025 张国勋.缩短ICL7135A/D采样程序时间的一种方法J.电子技术应用.1993.第一期6 高峰.单片微型计算机与接口技术M.北京科学出版社,2003.7 刘伟,赵俊逸,黄勇.一种基予C8051F单片机的SOC型数据采录器的设计与实现附录1: 系统原理图附录2:源程序代码#include#include #define uchar unsigned char#define uint unsigned int#define ADC 0x7fff/定义ADC0808端口地址#define DISP 0xfeff/定义显示端口地址sbit D1=P10;sbit D2=P11;sbit D3=P12;sbit D4=P13;sbit DIN=P33;uchar RESULTat4 _at_ 0x30;uchar DISPat4 _at_ 0x34;code char

温馨提示

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

评论

0/150

提交评论