单片机课程设计报告数字电压表(共23页).doc

上传人:飞****2 文档编号:13485291 上传时间:2022-04-29 格式:DOC 页数:23 大小:1.24MB
返回 下载 相关 举报
单片机课程设计报告数字电压表(共23页).doc_第1页
第1页 / 共23页
单片机课程设计报告数字电压表(共23页).doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《单片机课程设计报告数字电压表(共23页).doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告数字电压表(共23页).doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上 University of South China单片机课程设计报告设计课题: 基于单片机的数字电压表设计专业班级: 电卓103班 学生姓名: 李文帅 指导教师: 朱卫华 设计时间: 2012年1月10日 内 容 摘 要电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、数码管显示器为主体,设计了一款简易的数字电压表,能够测量05V的直流电压,最小分辨率为0.02V。该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下:1、单片机部分。使用常见的80

2、51单片机,同时根据需要设计单片机电路。2、测量部分。该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。根据需要本设计采用逐次逼近型AD转换器ADC0809进行模数转换。3、数码管显示部分。其中一位为整数部分,其余位小数部分。索引关键词:8051 模数转换 数码管显示Contents AbstractThe voltmeter is indispensable in measuring instruments and equipment, is widely used digital voltmeter AS

3、IC implementation. 8051, successive approximation type A / D converter ADC0809 digital tube display as the main design of a simple digital voltmeter capable of measuring 0 to 5V DC voltage, minimum resolution of 0.02V .The design is divided into several parts, each part of the main components select

4、ed for use are determined as follows: 1, microcontroller part. Using a common 8051, according to the need to design a microcontroller circuit. 2, the measurement section. This part is the focus of the experiment, require external acquisition of the analog signal is converted into a digital signal th

5、rough the microcontroller of the processing and display on the display, the portion determines the main technical indicators such as the precision of the digital voltmeter. According to the needs of the design using successive approximation type A / D converter ADC0809 analog-to-digital conversion.3

6、, the digital display section. One for the integer part, the remaining bits of the fractional part.Index Keywords: 8051 Analog-to-digital Conversion digital display.目 录内容摘要2Contents Abstract 3一 概述 5 1.1概述5二、设计题目及要求 6 2.1、题目及设计要求6 2.2、主要技术指标 6三、方案论证及选择73.1主要设计方框图如下 73.2方案论证:7 四、电路设计原理8 4.1设计原理介绍: 8 4

7、.2、模数转换9 4.3、 数据处理及控制10五、主要元器件的介绍11 5.1、AT89C51单片机简介11 5.2、ADC0808模数转换芯片简介12 5.3、四位共阴极数码管简介13六、部分电路介绍14 6.1、晶振电路14 6.2、复位电路14 6.3模拟输入电路14 6.4、显示电路15 6.5总电路如下:15 6.6仿真结果如下:16七、程序设计17八、硬件制作与测试21 8.1、主要仪器及使用方法:21 8.2、硬件制作步骤:21九、设计过程中的问题及解决方案22十、心得体会23一、 概述1.1概述:数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相

8、应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。逐次逼近式A/D转换器分为比较式和斜坡电压式,

9、根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以8051单片机为核心,以逐次比较型A/D转换器ADC0809、数码管显示为主体,构造了一款简易的数字电压表,能够测量1路05V直流电压,最小分辨率0.02V。二、设计题目及要求2.1、题目及设计要求采用51系列单片机和ADC设计一个数字电压表,输入为05V线性模拟信号,输出通过数码管显示,要求显示两位小数。2.2、主要技术指标1、数字芯片A/D转换技术2、单片机控制的数码管显示技术3、单片机的数据处理技术三、方案

10、论证及选择3.1主要设计方框图如下:数码管显示单片机处理模数转换电压采集 3.2方案论证:1、主控芯片方案1:选用专用转化芯片INC7107实现电压的测量和实现,用四位数码管显示出最后的转换电压结果。缺点是精度比较低,内部电压转换和控制部分不可控制。优点是价格低廉。方案2:选用单片机AT89C51和A/D转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示部分可以控制。 基于课程设计的要求,我选用了:方案2。2、显示部分方案1:选用4个单体的共阴极数码管。优点是价格比较便宜;缺点是焊接时比较麻烦,容易出错。

11、方案2:选用一个四联的共阴极数码管,外加四个三极管驱动。这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。基于课程设计的要求和美观性,我选用了:方案2。四、电路设计原理4.1设计原理介绍:模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进行A/D转换。然后送到单片机中进行数据处理。处理后的数据送到LED中显示。同时通过串行通讯与上位通信。硬件电路及软件程序。而硬件电路又大体可分为A/D转换电路、数码管显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程,利用Keil和PROTEUS 软件对其编译和仿真。一般I/O接口芯片的驱动能

12、力是很有限的,在数码管显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时选择数码管显示便有了极大的优点。 本实验采用AT89C51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。该电路通过ADC0809芯片采样输入口IN0输入的05 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0D7传送给AT89C51芯片的P0和P2.1口。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1和P2口传送给数码管。同时它还通过其三位I/O口产生位选信号,控制数码管的亮灭

13、。另外,AT89C51还控制着ADC0809的工作。其P2.4口为ADC0809提供了100KHz工作的时钟脉冲;P2.3控制ADC0808的地址锁存端(ALE);P2.3控制ADC0809的启动端(START);P2.0控制ADC0809的输出允许端(OE);P2.2控制ADC0809的转换结束信号(EOC)。数据处理及控制模块AT89C51P0P2显示模块4位一体LED数码管数据采集模块ADC0809控制信号输出显示AnalogDigitalLED位控制信号P1P34.2、模数转换电路原理图如下所示,三个地址位ADDA,ADDB,ADDC均接低电平,因而所需测量的外部电压可由ADC0809

14、的IN0端口输入。由于ADC0809在进行A/D转换时需要有CLK信,本设计中利用AT89C51的定时中断产生一个100KHZ的脉冲,由P2.4口送给ADC0809的时钟端,通过软件给其输入一个正脉冲,可立即启动A/D转换。在软件设计中,由于我们对单片机知识还没能很熟练的掌握,用中断方式较复杂,且这个程序CPU工作量不大,查询方式对速度不会产生影响,所以我们采用查询方式,确保仿真的进度和准确度。系统原理图51系列单片机数据显示A/D电压放大电压输入在A/D转换开始之前,逐次逼近寄存器的SAR的内容为0,在A/D转换过程中,SAR存放“试探”数字量,在转换完毕后,它的内容即为A/D转换的结果数字

15、量。逻辑控制与定时电路在START正脉冲启动后工作,没来一个CLK脉冲,该电路就可能告知向SAR中传送一次试探值,对应输出U0与U1比较,确定一次逼近值,经过8次逼近,即可获得最后转换的结果数字量。此处,EOC端口的信号显示ADC0808的状态,开始A/D转换时,EOC为低电平,转换结束后,输出高电平。4.3、 数据处理及控制A/D转换完毕后,单片机的P2.3口接收到一高电平,立马通过P2.0将OE置1,ADC0809的三态输出锁存器被打开,转换完的数字信号经过与D0D7相连的P0口进入AT89C51。AT89C51根据公式1-1将数字信号转换为模拟量,然后利用程序获取模拟量的每一位,分别通过

16、P1口输出到LED上。与此同时,AT89C51会通过P1.0P3.2口选择用哪一段LED显示所传出的数据。例如,当S4位选信号为高时,则LED接收到的数据会在第四段LED上显示。 另外,AT89C51一旦获得了数据后便会将ST置0,即模数转换器停止转换,知道LED获得新的数据并显示出来,ST才会重新置1.由于AT89C51转换速率很快(微妙量级),所以不会影响其接收新的数据。 五、主要元器件的介绍5.1、AT89C51单片机简介AT89C51是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C51是一个低电压、高性能CMOS 8位单片机。将通用的微处理器和Flash存储器结合在一起

17、,可反复擦写的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级加密位。5.2、ADC0808模数转换芯片简介 ADC0809是采样分辨率为8位的、以逐次逼近

18、原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。引脚功能(外部特性)ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降

19、沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路。5.3、四位共阴极数码管简介 数码管有两种:一种共阴极、另一种为共阳极,本次课程设计用

20、的是共阴极。下面比较详细说明共阴极与共阳极的共同点与区别:图(b)的左边为共阴极数码管,也就是数码管的阴极管接地。那时某段亮,这段就必须接高电平。共阴极数码管09的C51编码为:1、 uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f;2、 uchar code table=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;其中1不带小数点,2带小数点。共阳极就是数码管的每段都接高电平,这样要是哪段亮就这段就得接地。六、部分电路介绍6.1、晶振电路接12MHz晶振,根据芯片

21、手册,适合并联22pf微调电容,从而构成并联谐振,帮助和稳定输出波形。6.2、复位电路AT89C51单片机要求至少两个高电平,以便单片机做好准备工作。当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,就会输出低电平,单片机利用输出高电平的这段时间复位。电阻和电容的值选择要合适。在这要求R1R2,所以选取R1=1,R2=10。6.3模拟输入电路通过可变电阻一端接电源+5v,一端接地GND,通过改变电阻的阻值,从而改变所测电压值,实现电压的模拟信号输入。6.4、显示电路通过P1口控制四位共阴极数码管段选,通过具体接口的低四位控制位选。值得注意的是P0需要接上拉电阻,否则P0会处

22、于高阻态。6.5总电路如下:设计原理:将模拟量通过IN0输入,经过ADC0809芯片转换,得到数字量输出到单片机P0口,经过单片机处理后,送到四位共阴极数码管上显示。6.6仿真结果如下:七、程序设计为了在C语言源程序中直接编写中断服务函数的需要,KeilCx51编译器对函数的定义进行了扩展,增加了一个扩展关键字interrupt,它是函数定义是的一个选项,加上这个选项即可以将一个函数定义成中断服务函数。定义中断服务函数的一般形式为: 函数类型 函数名(形式参数表) interrupt n using n由于ADC0808的CLOCK的时钟频率不高于640KHZ,在这利用定时器T0的中断产生时钟

23、频率,则可设置为:void t0(void) interrupt 1 using 0ADC0809的时序图如下:由时序图可知,只有在转换期间,EOC处于低电平,因此在AD转换开始前EOC置为低电平,START在上升沿期间将芯片内的所有寄存器清零,在下降沿来临时开始转换,由于所用的时钟为100KHz,比较的缓慢不需要再延时,在此等待转换结束,结束后将其数字量输出。根据上述分析及原理,可设计程序流程图如下:设计程序如下:#include#include#define uchar unsigned char#define uchar unsigned char#define uint unsigne

24、d intsbit START=P30;sbit OE=P31;sbit EOC=P32;sbit P07=P07;sbit CLK=P34;uchar data led4;uint data tvdata; uchar code tv=0xfe,0xfd,0xfb,0xf7;uchar code a=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f; void delay(void) /延时程序 uint i; for(i=0;i5000) tvdata=5000; led0=tvdata%10; led1=tvdata/10%10; le

25、d2=tvdata/100%10; led3=tvdata/1000; for(k=0;k4;k+) P2=tvk; i=ledk; P0=ai; if(k=3) P07 =1; delay(); void main(void) ET0=1; EA=1; TMOD=0x02; TH0=216; TL0=216; TR0=1; while(1) START=1; START=0; /启动转换 while(EOC=0); OE=1; tvdata=P1; tvdata*=20-0.01; OE=0; ledxianshi(); delay(); void t0(void) interrupt 1

26、using 0CLK=CLK;八、硬件制作与测试8.1、主要仪器及使用方法:主要仪器:5v直流电源,剥线钳,数字万用表,通用版电路板,电烙铁,镊子,USB转串口线。其中5v电源可以从电脑的USB接口引出,使用电烙铁时注意不要手直接触摸。调试电路的方法和技巧:(1)目测 检查外部的各种元件或者是电路是否有断点,有无虚焊(2)用万用表测试 先用万用表符合目测中有疑问的点,再检查各种电源线与地线之间是否有短路现象(3)加电检测 给板子加电,检测所有的插座或是器件的电源端的电压是否符合要求的值注意事项 在通电检查前,一定要确保电路板没有短路8.2、硬件制作步骤:(1)将单片机的最小系统焊接出来,进行调

27、试,检验是否能下载程序、进行电路复位、晶振是否起振。(2)扩展部分的焊接,在这我采用了ADC0809作为扩展芯片,并利用单片机驱动数码管显示。(3)焊接完后对电路进行调试,检查结果是否正确。焊接的电路图如下:九、设计过程中的问题及解决方案(1)单片机的最小系统完成后,接上发现显示灯不亮。 检查发光二极管是否接地或接电源,若都接了则检查晶振是否起振,电路是否短路或断路,结果发现忘记将发光二极管接地。(2)通电后发现数码管显示亮度不均匀 检查与数码连接电路是否有误、短路或短路(3)下载程序到单片机后,通电运行,发现怎么改变电压都没有变化且显示5 检查ADC0809所对应的各个引脚有没有接错,观察各

28、个线路的显示结果,发现ADC0809芯片有问题,换了芯片后可正常显示。(4)发现每个数码管显示相同的数字 检验段扫描连接是否正确,若无误,在检查程序是否正确,最后发现延时函数有一个地方写错,以致不能扫描,显示相同的数,修改程序后,即可进行扫描。(5)现数码管显示的数字比较闪 修改程序,调整扫描延时时间,即可改正。十、心得体会本次课程设计让我温习了单片机的基本原理、功能以及构造,以及ADC0808/ADC0809的基本工作原理,学会了使用KeilCx51和Protuse这两个软件的基本使用方法,利用C语言在KeilCx51下进行编程实现所需要的功能,同时在Protuse软件上画电路图并进行仿真,

29、通过硬件的制作提高了动手能力和分析问题的能力。软件部分的编程,主要是通过看芯片的基本资料进行编写的,所以我意识到了当你需要某个东西时,一定要去了解它,弄清楚其工作原理、实现方案以及需要注意的地方,特别是像一些芯片工作的时序图,这是编程之前必须去了解的。对于硬件部分,我收获颇多。首先,让我对单片机的最小系统有了深刻的理解,特别是通过串口通信将程序下载到单片机中,明白了将程序下载到单片机的方法和原理。其次,对一些基本电路检测问题,能够做到独立解决,像我在实验过程中遇到了各种不同的问题,其实是对自己能力的体现,其实问题多还更加好,那样你可以更加发现自己的不足之处,这样才能够提高。最后,此次设计提高了我的焊接技术,比起以前的课程设计焊的电路图,真的发现自己提高了很多,比如在布局上更加地合理、简洁、美观。我很早就把电路给焊好了,可是后面的调试花了比较长的时间,在此我领悟到遇到问题时不要心燥、心烦,而是要静下心来认真分析问题之所在,想出各种有效的解决方法,这样才会很好的解决问题,同时提高自己独立思考的能力。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com