版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机技术及其应用 课程设计报告题 目: 数字电压表的设计 班 级: 11通信本2班 学 号: 1011028432 姓 名: 段苓苓 同组人员: 钟梦为 梅韶田 赵赫宇 周洋 指导教师: 刘少敏 薛莲 2014年06月26日目 录1 引言11.1 设计意义11.2 系统功能要求12 设计内容12.1 设计思路12.2 主要功能23 方案论证23.1 程序设计23.2 电路设计原理33.3 软件设计方案43.4 硬件设计方案44 单元电路设计54.1 数码管显示器54.2 单片机的晶振电路64.3 显示模块64.4 ADC0808模数转换芯片74.5 复位电路84.6 AT89C52单片机的
2、引脚介绍94.7 模拟输入电路104.8 总电路设计105 系统软件程序的设计115.1 主程序115.2 A/D转换子程序115.3 显示子程序116 调试及性能分析116.1 调试方法及步骤116.2 实物调试数据126.3 误差分析137 心得体会148 指导老师意见15附录:15数字电压表的设计1 引言1.1 设计意义我们学习的是单片机这门课程,这门课程最显著的特点就是它是一门实用技术课程,它要求我们不仅仅要掌握扎实的理论基础,更重要的是要学会如何去真真利用它为我们的电路设计服务,也只有通过课程设计这样的动手实践才是我们掌握这门技术的最佳途径,因此,我们开设这样的实践是很重要的,也是我
3、们努力去学习钻研的动力。 数字电压表是采用数字化检测技术,把连续的模拟量(直流输入电压)换成不连续的、离散的数字形式并加以现实的仪表,克服了传统模拟电压表的读书不方便和不精确等问题。不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强集成方便,还可以与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已广泛应用于电子电工测量、工业自动化仪表、自动测试系统等智能化测量领域,展现了强大的生命力。与此同时,由数字电压表扩展而成的各种通用及专用数字化仪器,也把电量及非电量测量技术提高到了崭新的水平,因此,通过这次课程设计能让我们了解这些知识,为以后研究相关
4、技术打下坚实的基础。1.2 系统功能要求采用51系列单片机和ADC设计一个数字电压表,测量05V范围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示,要求显示两位小数。2 设计内容2.1 设计思路(1)根据设计要求,选择AT89C51单片机为核心控制器件。(2)A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。(3)电压显示采用4位一体的LED数码管。(4)LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。2.2 主要功能(1)以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表(2)1路模拟量输入,能够测量0
5、-5V之间的直流电压值。(3)电压显示用4位一体的LED数码管显示,至少能够显示两位小数。3 方案论证3.1 程序设计为了在C语言源程序中直接编写中断服务函数的需要,KeilCx51编译器对函数的定义进行了扩展,增加了一个扩展关键字interrupt,它是函数定义是的一个选项,加上这个选项即可以将一个函数定义成中断服务函数。定义中断服务函数的一般形式为: 函数类型 函数名(形式参数表) interrupt n using n由于ADC0809的CLOCK的时钟频率不高于640KHZ,在这利用定时器T0的中断产生时钟频率,则可设置为:void t0(void) interrupt 1 using
6、 0ADC0809的时序图如下:图3-1 ADC0808的时序图由时序图可知,只有在转换期间,EOC处于低电平,因此在AD转换开始前EOC置为低电平,START在上升沿期间将芯片内的所有寄存器清零,在下降沿来临时开始转换,由于所用的时钟为100KHz,比较的缓慢不需要再延时,在此等待转换结束,结束后将其数字量输出。根据上述分析及原理,可设计程序流程图如下:图3-2 程序流程图3.2 电路设计原理模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进行A/D转换。然后送到单片机中进行数据处理。处理后的数据送到LED中显示。同时通过串行通讯与上位通信。硬件电路及软件程序。而硬件电
7、路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS 软件对其编译和仿真。一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。驱动电路有多种,常用的是TTL或MOS集成电路驱动器,在本设计中采用了74LS244驱动电路。本实验采用AT89C51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。该电路通过ADC0809芯片采样输入口IN0输入的0
8、5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0D7传送给AT89C51芯片的P0口。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口传送给数码管。同时它还通过其三位I/O口P1.0、P1.1、P1.2、P1.3产生位选信号,控制数码管的亮灭。另外,AT89C51还控制着ADC0809的工作。其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.4控制ADC0809的地址锁存端(ALE);P2.1控制ADC0809的启动端(START);P2.3控制ADC0809的输出允许端(OE);P2.0控制ADC0808的转
9、换结束信号(EOC)。3.3 软件设计方案系统刚上电时,初始化程序主要执行70H-77H内存单元清0和P2口置0等准备工作 。在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1S左右。主程序在调用显示子程序与测试子程序之间循环。 图3-3 A/D 转换测试子程序流程图 A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H77H内存单元。3.4 硬件设计方案3.4.1 主控芯片选用单片机AT89C52和A/D转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后
10、的转换电压结果。缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示部分可以控制。3.4.2 显示部分基于课程设计的要求和实验室所能提供的仪器,选用一个四联的共阴极数码管,外加四个三极管驱动。这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。图3-4 数字电压表系统设计方框图4 单元电路设计4.1 数码管显示器 数码管的驱动方式的不同,可以分为静态式和动态式两类。 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/
11、O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。图4-1 共阴极数码管及其接口电路4.2 单片机的晶振电路 晶振是晶体振荡器的简称,在电气上它可以等
12、效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器
13、(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。 本设计采用12MHz晶振,并联两个30pF电容构成晶振电路。图4-2 单片机晶振电路4.3 显示模块 该模块为数字电压表的显示模块,主要由4位7端共阳LED数码管和PNP三极管构成的选通电路构成。其中,我们需注意共阳数码管的数字0-9的编码,另外,每个位选管要与程序对应。位选是通过单片机P3.0-P3.3口控制三极管的基极从而控制每位数码管的选通。图4-3 显示模块电路4.4 ADC0808模数转换芯
14、片图4-4 ADC0808的引脚ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。引脚功能(外部特性)ADC0809芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入
15、,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC)
16、:3位地址输入线,用于选通8路模拟输入中的一路。4.5 复位电路 AT89C52单片机要求至少两个高电平,以便单片机做好准备工作。当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,就会输出低电平,单片机利用输出高电平的这段时间复位。电阻和电容的值选择要合适。在这要求R61000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能4.7 模拟输入电路图4-7
17、模拟输入电路图通过可变电阻一端接电源+5v,一端接地GND,通过改变电阻的阻值,从而改变所测电压值,实现电压的模拟信号输入。4.8 总电路设计图4-8 总电路设计原理:将模拟量通过IN0输入,经过ADC0809芯片转换,得到数字量输出到单片机P0口,经过单片机处理后,送到四位共阴极数码管上显示。5 系统软件程序的设计多路数字电压表的系统软件程序由主程序、A/D转换子程序和显示子程序组成。5.1 主程序主程序包含初始化部分、调用A/D转换子程序和调用显示程序,如图13所示。初始化部分包含存放通道数据缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制。初始
18、化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示。00H位通过单路/循环按键控制。5.2 A/D转换子程序A/D转换子程序用于对ADC0809的8路输入模拟电压进行A/D转换,并将转换的数值存入8个相应的存储单元中,如图14所示。A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。5.3 显示子程序LED数码管采用软件译码动态扫描方式。在显示子程序中包含多路循环显示和单路显示程序。多路循环显示把8个存储单元的数值依次取出送到4位数码管上显示,每一路显示1秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示需经过转换变成十进制BCD码,放于4个数码管的显示
19、缓冲区中。单路显示或多路循环显示通过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。6 调试及性能分析 6.1 调试方法及步骤a.软件仿真调试:首先将电路原理图用Proteus7.0仿真软件画出来,再用Keil单片机编程软件将数字电压表程序编写出来,通过Proteus7.0仿真软件中与Keil软件的联调功能,将编好的程序导入单片机中,在Proteus7.0中实现软件仿真。 仿真结果如下:图6-1 电路图仿真b.实物调试:将硬件电路都连接完好后,将单片机编号的数字电压表程序通过ISP程序烧入软件烧入到单片机中,用直流可调电压源给ADC0809的模拟输入端口通以不
20、同电压值的电压,将数字电压表装置上的数码管上读出的电压值记录下来,与可调电压源上显示的标准值进行比较并分析。 6.2 实物调试数据(1)当IN0口输入电压值为0V时,显示结果如图11所示,测量误差为0V。图6-2 输入电压为0V时,LED的显示结果(2)当IN0输入电压值为1.50V时,显示结果如图12所示。测量误差为0.01V。图6-3 输入电压为1.50V时,LED的显示结果(3)当IN0口输入电压值为3.50V时,显示结果如图13。测量误差为0.01V。图6-4 输入电压为3.50V时,LED的显示结果6.3 误差分析通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表
21、,如下表6-1所示:表6-1 简易数字电压表与“标准”数字电压表对比测试表标准电压值/V数字电压表测量值/V绝对误差/V0.000.000.000.500.510.011.001.000.001.501.510.012.002.000.002.502.500.003.003.000.003.503.500.004.004.000.004.895.000.11由于单片机AT89C52为8位处理器,当输入电压为5.00V时,ADC0809输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一
22、般以0.01V的幅度变化。从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。7 心得体会本次课程设计让我温习了单片机的基本原理、功能以及构造,以及ADC0808/ADC0809的基本工作原理,学会了使用KeilCx51和Protuse这两个软件的基本使用方法,利用C语言在KeilCx51下进行编程实现所需要的功能,同时在Protuse软件上画电路图并进行仿真,通
23、过硬件的制作提高了动手能力和分析问题的能力。软件部分的编程,主要是通过看芯片的基本资料进行编写的,所以我意识到了当你需要某个东西时,一定要去了解它,弄清楚其工作原理、实现方案以及需要注意的地方,特别是像一些芯片工作的时序图,这是编程之前必须去了解的。对于硬件部分,我收获颇多。首先,让我对单片机的最小系统有了深刻的理解,特别是通过串口通信将程序下载到单片机中,明白了将程序下载到单片机的方法和原理。其次,对一些基本电路检测问题,能够做到独立解决,像我在实验过程中遇到了各种不同的问题,其实是对自己能力的体现,其实问题多还更加好,那样你可以更加发现自己的不足之处,这样才能够提高。最后,此次设计提高了我的焊接技术,比起以前的课程设计焊的电路图,真的发现自己提高了很多,比如在布局上更加地合理、简洁、美观。8 指导老师意见附录:C语言源程序清单#include unsigned
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地技术托管合同范本
- 大型农地转租合同范本
- 园林维保劳务合同范本
- 地形测量测绘合同范本
- 域名续费管理合同范本
- 喷绘制作公司合同范本
- 外出茶艺活动合同范本
- 外贸食品加盟合同范本
- 城管中心劳动合同范本
- 外墙合作伙伴合同范本
- 玉雕理论考试题库及答案
- 2025年新团员入团考试试题及答案
- 第2课《中国人首次进入自己的空间站》课件-2025-2026学年统编版语文八年级上册
- 灵山县病死禽畜无害化处理项目环评报告
- 2025至2030年中国城市排水系统行业发展潜力分析及投资方向研究报告
- 院感紫外线消毒培训课件
- 2025年安全教育平台登录入口与模拟试题集
- 公司注销原合同补充协议
- 2025-2030中国区块链技术在供应链金融中的信用穿透效应
- 护理学用药安全知识培训课件
- 肿瘤中心质控汇报
评论
0/150
提交评论