




免费预览已结束,剩余18页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆三峡学院单片机原理及应用课程设计报告书学院(系): 应用技术学院 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 成 绩: 制作日期 2012 年 11 月18日基于TLC549串行A/D转换器的简易电压表的设计摘要:数字电压表是对电子电路进行现场检测的常用仪表,本文介绍了一种基于 TLC549 的数字电压表的设计方法。本系统主要包括三大模块:转换模块、数据处理模块及显示模块。电压表的控制系统采用 AT89C51 单片机,A/D 转换器采用 TLC549。单片机对转换的结果进行运算处理,通过一个四位一体的7段数码管显示出来。本设计实现简易数字式直流电压表的硬件电路与软件设计,可以测量0-5V的1路模拟直流输入电压值,误差范围为0.01V。具有一定的实用价值。关键词:TLC549,AT89C51,数字电压表1 引言1.1 设计背景在电量的测量中,电压、电流和频率是最基本的三个被测量。其中电压量的测量最为经常。在日常生活及工业生产中经常要用到直流电压的检测。随着电子技术的发展,更是经常需要测量高精度的电压,所以,数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。1.2核心器件介绍目前,由单片机和A/D 转换器构成的数字电压表已被广泛应用于电子测量、工业自动化仪表、自动测试系统等智能化测量领域中。数字电压表的内部核心部件是A/D转换器,传统的 A/D 转换器主要有ADC0808、ADC0809等,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。这些 A/D 转换器采用并口与单片机相连,大量占用单片机的 I/O 口资源。为此,采用 TLC549 设计的数字电压表,能够较好地解决以上问题。TLC549 是 TI 公司推出的一种 A/D 转换器,具有以下特点:(1)TLC549 是一种 8 位串行 A/D 转换器;(2)可通过三线串行通信与单片机连接;(3)具有 4MHz 片内系统时钟和软、硬件控制电路;(4)转换时间最长 17s ;(5)允许的最高转换速率为 40000 次 / s ;(6)总失调误差最大为0.5LSB;(7)典型功耗值为 6mW;(8)采用差分参考电压高阻输入,抗干扰能力强,可按比例量程校准转换范围;(9)当 VREF接地, VREF+ VREF1V ,可用于较小信号的采样。 2 总体设计方案2.1设计要求 1) 以TLC549串行A/D转换器和AT89C51单片机设计一个5V的数字电压表,电压值由电位器模拟。2) 采用3位LED显示器,显示格式为“.”V。2.2总体设计框图本系统主要包括三大模块:转换模块、数据处理模块及显示模块。电压表的控制系统采用 AT89C51 单片机,A/D 转换器采用 TLC549。先将待测模拟量信号输入到TLC549进行模数转换,通过其将数字信号传送到单片机。单片机对转换的结果进行运算处理,将显示结果通过一个四位一体的7段数码管显示出来。模拟量电压信号TLC549 单 片 机4位一体八段数码管3 硬件系统设计硬件实现总体框图: 下图是本系统的硬件框图,单片机采用AT89C51。AT89系列单片机是美国 ATMEL 公司继承 INTEL 公司 80C31 的核心技术并和自身先进的闪电存储器(FLASH MEMORY)技术相结合而产生的FLASH 单片机系列。它是一种低功耗、高性能、内含 4K/8K 字节闪电存储器、用 CHMOS 工艺制作的 8 位单片机。3.1模数转换电路模数转换电路的核心部分是数模转换芯片,标准参考电压Vref+为+5伏, Vref-为0伏。A/D转换器TLC549是以8位开关电容逐次逼近A/D转换器为基础而构造的CMOS A/D转换器。 3.1.1 TLC549介绍TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过CLK、CS、DATA OUT三条口线进行串行接口。使用IIC总线工作。具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17s,TLC548允许的最高转换速率为45500次/s,TLC549为40000次/S。总失调误差最大为0.5LSB,典型功耗值为6mW。采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+VREF-1V,可用于较小信号的采样。3.1.2 TLC549 的引脚排列与使用方法TLC549 的引脚排列如下图所示,其中 ANA-LOG IN为模拟输入端,CS 为片选端,DATA OUT为A/D 转换结果的串行输出端,I/O CLOCK 为 I/O时钟端,REF+为正基准电压端,REF为负基准电压端,VCC 为电源端,GND 为地。TLC549 的内部结构图如图二所示,其内部包含有时钟电路、8 位模数转换器等单元电路。TLC549 的极限参数为:(1)电源电压:6.5V ;(2)输入电压范围:0. 3VVCC + 0. 3V;(3)输出电压范围:0. 3VVCC + 0. 3V;(4)峰值输入电流(任一输入端):10mA ;(5)总峰值输入电流(所有输入端):30mA;(6)工作温度:070。TLC549具有片内系统时钟,该时钟与 I/ OCLOCK是独立工作的, 无须特殊的速度或相位匹配,其工作时序如下图。 当片选端为高时,数据输出端(DATA OUT)处于高阻状态,此时 I/ O CLOCK 不起作用。这种控制作用允许在同时使用多片TLC549 时,共用 I/ O CLOCK,以减少多路(片) A/ D 并用时的 I/ O 控制端口的数量,节省 I/O 口资源。 从上图中可以看出,当 CS 变为低电平后,TLC549 芯片被选中,同时前次转换结果的最高有效位MSB(A7)自 DATA OUT 端输出。接着要求自I/O CLOCK 端输入 8 个外部时钟信号,前 7 个 I/O CLOCK信号的作用是配合 TLC549 输出前次转换结果的A6A0 的 7 位,并为本次转换做准备。在第4 个 I/O CLOCK 信号由高至低的跳变之后,片内采样 / 保持电路对输入模拟量采样开始,第 8 个 I/O CLOCK信号的下降沿使片内采样 / 保持电路进入保持状态并启动 A/D 转换。转换时间为 36 个系统时间周期,最大为 17us。直到 A/D 转换完成前的这段时间内,TLC549 的控制逻辑要求或者保持高电平,或者 I/O CLOCK 时钟端保持36个系统时钟周期的低电平。由此可见,在自 TLC549 的 I/O CLOCK 端输入8 个外部时钟信号期间需要完成以下工作:读入前次 A/D 转换结果,对本次转换的输入模拟信号采样并保持,启动本次 A/D 转换。3.1.3 TLC549与单片机的连接图:DATA OUT 与P1.7相连,CS与P1.0相连,SCLK即I/O CLOCK 与P1.6相连。3.2 显示驱动电路LED显示系统设计 本设计数字电压表的显示采用普通的数码管动态扫描显示的方式,采用 4 位一体的数码管作为显示器件,每位数码管轮流点亮,延时5ms,具有良好的视觉效果。3.4.1 LED基本结构LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED引脚排列如下图8所示:图8 LED引脚排列本设计用共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端。图9 4位LED引脚3.4.4 LED显示器与单片机接口设计由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口的驱动能力,使得LED能按照正常的亮度显示出数字。 单片机的 P0 口通过 74LS240反向驱动器驱动数码管8位数据端,单片机的P3口的低4位连接数码管的控制端进行点亮控制。 如下图:3.2.3复位电路: 连接到AT89C51的RST端晶体振荡电路: 两端分别连接到XTAL1,XTAL2端 Proteus中硬件电路设计全图:4软件系统设计与局部调试根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如下图所示。4.1模块电路设计4.1.1A/D转换电路设计开始其转换流程图如下: 启动转换转换结束?输出转换结果标度变换显示结束4.2.2 动态扫描程序设计显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率。程序设计流程如下:4.2系统局部调试:在Keil中建立新的项目,命名为dyb,选择AT89C51。如下:1、新建文件:选择FILE下的NEW,输入源程序,以JIABIAODU.ASM命名,程序如下:;*;* 初始化程序 *;*SDA EQU P1.7 ;DATA OUTSCL EQU P1.6 ;I/O CLOCKCS EQU P1.0 ;/CS片选MTD EQU 30H ;发送缓冲区首址MRD EQU 40H ;接收缓冲区首址;*;* 电压表实验主程序 *;* ORG 0000H LJMP SE11 ORG 0590HSE11:MOV SP,#53H MOV 7CH,#10H ;显示缓冲区赋初值 MOV 7BH,#14H MOV 7AH,#10H MOV 79H,#10H LO18:LCALL SSEE ;调用显示子程序 CLR CS ;选中TLC549器件 LCALL RDBYTE ;读取采样/保持的数字量,并送到寄存器A SETB CS ;等待A/D转换结束 NOP NOP NOP NOP NOP NOP LCALL BIAODUSJMP LO18 ;*;* 显示扫描子程序 *;* ORG 0D50HSSEE:SETB RS1 ;换工作区 MOV R5,#05HSSE2:MOV 30H,#08H ;位控码 MOV 31H,#7CH ;显示缓冲区,最高位 MOV R7,#04HSSE1: MOV A,30H ;取位控 CPL A ;低电平位控,共阳数码管 MOV P3,A ;输出位控码 MOV R0,31H MOV A,R0 MOV DPTR,#DDFF MOVC A,A+DPTR ;取字形代码 JB P3.2 , LL1 ;有整数位 CLR ACC.7 ;加小数点LL1: MOV P0 , A LCALL DELY5MS MOV A,30HRR A ;位控码右移MOV 30H,ADEC 31HMOV A,#0ffH ;全灭MOV P3 , ADJNZ R7,SSE1 ;4位显示完了吗?DJNZ R5,SSE2 ;5次显示完了吗?CLR RS1RETDDFF:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH;共阳数码管代码:0到9,A到F,灭 DELY5MS: MOV R2, #5 D5: MOV R3,#248 DJNZ R3,$ DJNZ R2,D5 RET ;*;* 读取字节子程序,读出的值在ACC *;*RDBYTE: MOV R0,#08HRLP: SETB SDA SETB SCL ;时钟线为高,接收数据位 MOV C,SDA ;读取数据位 MOV A,R2 CLR SCL ;将SCL拉低 RLC A ;进行数据位的处理 MOV R2,A CLR SCL DJNZ R0,RLP ;未够8位,再来一次 MOV A, R2 ;MODIFIED RET;*;* 标度变换子程序 *;显示数据转为三位BCD码,存入7BH、7AH、79H(最大值5.00V);* BIAODU: MOVB,#51 DIV AB ;255/51=5.00V运算 MOV7BH,A ;个位数放入7BH MOVA,B ;余数大于19H(25),F0为0,乘法溢出,结果加5 CLR F0SUBBA,#1AHMOVF0,CMOVA,#10MULABMOVB,#51DIVABJBF0,LOOP2ADDA,#5LOOP2:MOV7AH,A ;小数后第一位放入7AH MOVA,B CLR F0SUBBA,#1AHMOVF0,CMOVA,#10MULABMOVB,#51DIVABJB F0,LOOP3ADDA,#5 LOOP3:MOV 79H , A;小数后第二位放入79H RET END编译通过后进行局部调试。2、局部调试:动态扫描子程序:建立名为xianshi.asm的汇编源程序:;*;* 显示扫描子程序 *;* ORG 0000H LJMP SE11 ORG 0590HSE11:MOV SP,#53H MOV 7CH,#10H MOV 7BH,#14H ;显示缓冲区赋初值 MOV 7AH,#10H MOV 79H,#10HLO18:LCALL SSEE ;调用显示子程序SJMP LO18SSEE:SETB RS1 ;换工作区 MOV R5,#05HSSE2:MOV 30H,#08H ;位控码 MOV 31H,#7CH ;显示缓冲区,最高位 MOV R7,#04HSSE1: MOV A,30H ;取位控 CPL A ;低电平位控,共阳数码管 MOV P3,A ;输出位控码 MOV R0,31H MOV A,R0 MOV DPTR,#DDFF MOVC A,A+DPTR ;取字形代码 JB P3.2 , LL1 CLR ACC.7LL1: MOV P0 , A LCALL DELY5MS MOV A,30H RR A ;位控码右移 MOV 30H,A DEC 31H MOV A,#0ffH ;全灭 MOV P3 , A DJNZ R7,SSE1 ;4位显示完了吗? DJNZ R5,SSE2 ;8次显示完了吗? CLR RS1 RETDDFF:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH;数码管共阳代码 DELY5MS: MOV R2, #5 D5: MOV R3,#248 DJNZ R3,$ DJNZ R2,D5 RET END 将此文件添加进dyb项目中,首先编译,并生成后缀名为.hex的可执行文件。Output window中显示内容如下:点击菜单中Debug,选择Debug/Start Debug Session,进行调试:调试界面如下:程序执行到 MOV R7,#04H时调试窗口与内存窗口情况:输出第一个位控码情况,P3.3为低电平,表示选中第一个数码管:程序执行到输出字形代码即段控码时,采用查表法,因为7C初始化时为10H对应DDFF中的0FFH,为全灭,P0口全为1。位控右移一个,变为04H,显示缓冲区为次高位7BH:点亮一个数码管5ms,位控输出全灭0FFH,第一个数码管灭掉:R7减到0时,4个数码管扫描完毕一遍,R5减到0时,4个数码管扫描完5遍。全速运行时点击工具栏上,界面如下,P0的最高位和低三位、P3的低四位闪烁,调试是通过的。5系统仿真 系统电路图的绘制和仿真用的是Proteus软件,而程序的调试在上一章已用KEIL进行了编译与局部调试。1、在有仿真图的界面中点击菜单栏中“源代码”,选择添加/删除源文件,添加进源程序,名为JIABIAODU.ASM,界面如下:点击“源代码”下的“全部编译”,进行源程序的编译:编译通过,进行调试。2、调试界面如下:单步调试时,显示如下,第一个显示区7CH点亮:3、 仿真界面:当电压输入量为0V时,仿真如下:当电压输入量为1.50V时,仿真如下:误差分析:通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表的对比,误差在0.01V之间。 单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车赛事信息平台创新创业项目商业计划书
- 农林复合系统与节水创新创业项目商业计划书
- 农畜产品安全追溯与认证服务创新创业项目商业计划书
- 2025年国家公务员考试模拟题及解析
- 2025年市场营销经理招聘考试秘籍案例分析模拟题及策略解析
- 2025年医学专业执业医师资格认证考试预测题
- 2025年乡村康养初级运营师考试试题及答案详解
- 2025年农村手工艺合作社档案员招聘考试试题详解与策略指导
- 2025年创业公司CEO职位招聘面试预测题及解析
- 矿山机械螺杆清洗和保养标准流程
- 2023-2024学年湖南省耒阳市小学语文六年级下册期末自测测试题
- 12YJ4-1 常用门窗标准图集
- GB/T 12190-1990高性能屏蔽室屏蔽效能的测量方法
- 高血压的危害-课件
- ISO15189医学实验室认可概况课件
- 轻钢龙骨、双层石膏板吊顶施工方案
- 安全网(平网)张挂安全技术要求
- 危险品管理台帐
- 政务云收费标准 云托管收费标准
- 计算机辅助翻译实用教程ppt课件(完整版)
- 研学旅行概论教学课件汇总完整版电子教案
评论
0/150
提交评论