自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc

上传人:文库蛋蛋多 文档编号:4142245 上传时间:2023-04-07 格式:DOC 页数:51 大小:2.54MB
返回 下载 相关 举报
自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc_第1页
第1页 / 共51页
自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc_第2页
第2页 / 共51页
自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc_第3页
第3页 / 共51页
自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc_第4页
第4页 / 共51页
自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc》由会员分享,可在线阅读,更多相关《自动化毕业设计基于单片机的8路输入模拟信号数值显示器设计.doc(51页珍藏版)》请在三一办公上搜索。

1、西 安 邮 电 学 院 毕 业 设 计(论 文) 题 目: 8路输入模拟信号数值显示器的设计 系 别: 专 业: 班 级: 学生姓名: 导师姓名: 职称: 起止时间: 2007年3月19日 至 2007年 6月 24日 目 录摘 要IABSTRACTII1 引言12 系统概述12.1 硬件电路简介12.2 软件设计简介23 系统方案的选择和论证33.1 系统设计方案的选择33.2 各模块方案选择和论证33.3 系统各个模块的最终方案114 系统的硬件设计114.1 硬件电路各模块简介114.2 系统的仿真215 系统的软件设计215.1 主程序的设计225.2 各子程序的设计226 系统调试2

2、56.1 调试过程中出现的问题256.2 问题分析与解决257 结 论26致 谢27参考文献28附录29摘 要本文主要论述了基于单片机的A/D转换的硬件结构,并在此基础上进行了软件设计。以AT89C52 单片机及模数转换芯片ADC0809为核心,该系统有两个部分:A/D转换,数据处理和显示。具体包括控制、显示、A/D转换器等。设计中用ADC0809进行8路数据的采样,利用AT89C52单片机的串行口发送和接收数据。显示部分由LED数码显示器构成。硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。关键词: AT89C52,单片机,模数转换,ADC0809,LED数码管 Abstract

3、The hardware structure of data collection system based on SCM is primarily presented in the paper.And its software is designed secondly. Take the AT89C52 SCM and a/d conversion chip ADC0809 as a core, this system has two parts: A/D transforms, data processing and demonstration. Specifically includes

4、 the control, the demonstration, the A/D switch and so on. In the design carries on 8ways with ADC0809 according to the sampling, uses the AT89C52 SCM the serial mouth transmission and thereceive data. Demonstrated partially constitutes by the LED numericalcode monitor. The hardware design applicati

5、on electron design automation tool, the software design uses the modular programmingmethod.Key Words: AT89C52,SCM,A/d conversion,ADC0809,LED numerical code tube1 引言 随着计算机技术的飞速发展及普及,多路输入模拟信号数值显示系统在多个领域有着广泛的应用。多路输入模拟信号数值显示是工、农业控制系统中至关重要的一环,在医药、化工、食品、等领域的生产过程中,往往需要随时检测各生产环节的温度、湿度、流量及压力等参数。同时,还要对某一检测点任意

6、参数能够进行随机查寻,将其在某一时间段内检测得到的数据经过转换提取出来,以便进行比较,做出决策,调整控制方案,提高产品的合格率,产生良好的经济效益。随着工、农业的发展,多路输入模拟信号数值显示势必将得到越来越广泛的应用,为适应这一趋势,作这方面的研究就显得十分重要。在科学研究中,运用多路输入模拟信号数值显示系统可获得大量的动态信息,也是获取科学数据和生成知识的重要手段之一。总之,不论在哪个应用领域中,数据采集与处理将直接影响工作效率和所取得的经济效益。在本论文中,主要讨论以单片机为主控技术的8路输入模拟信号数值显示电路的实现。把由电压表输出的05V的模拟电压信号送给模数转换器,然后A/D转换器

7、将该模拟信号转换为00HFFH的数字信号,当转换结束时发送转换结束信号给单片机AT89C52,单片机对其转换后的结果进行处理,处理后的结果送往LED数码管进行显示。2 系统概述8路输入模拟信号数值显示器实际上就是一个数据采集系统,任务是把由电压表输出的05V的模拟电压信号送给模数转换器,然后A/D转换器将该模拟信号转换为00HFFH的数字信号,当转换结束时发送转换结束信号给单片机AT89C52,单片机对其转换后的结果进行处理,处理后的结果送往LED数码管进行显示。8路输入模拟信号数值显示系统可以分为两大模块:l 硬件电路模块l 软件设计模块2.1 硬件电路简介根据系统的设计要求,可以将系统硬件

8、电路模块划分为以下三个部分:l 主控制器模块l 数据采集模块l 显示模块2.1.1 主控制器模块主控制器模块是8路输入模拟信号数值显示器的核心控制部分,该模块主要由单片机构成,通过单片机的各个I/O口对外围设备的控制,以达到A/D转换,显示数据等功能。2.1.2 数据采集模块 工程实践中经常遇到被测对象的一些物理参数,如温度、流量、压力、位移、速度等,这些参数都是模拟量。虽然这些模拟量已经由传感器、变送器变换成标准的电压或电流信号,但还需要通过A/D转换器,将其转换成计算机能处理的相应的数字信号。所以,单片机与A/D转换接口技术是构成单片机测控系统的重要内容之一。 在本论文中,数据采集模块主要

9、是模数转换器ADC0809。通过单片机提供的时钟频率,通过一个I/O口送入ADC0809的CLOCK引脚,使ADC0809得到一个能够可靠工作的时钟脉冲。并且通过START引脚启动转换,将转换得到的数字信号利用8位数据输出线传输给单片机的P0口。2.1.3 显示模块显示器是单片机应用系统常用的设备,包括LED、LCD等。LED显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的二极管导通,就能显示出对应字符。本论文中,显示模块主要有七段共阳极LED数码管构成,显示电路采用的是动态显示接口电路。通过单片机的P1口进行数码管的输出显示口,P3口作为数码管的位选

10、择口。 2.2 软件设计简介该系统的软件设计也可以相应的分为以下两部分:l A/D转换程序设计l 显示程序设计2.2.1 A/D转换程序设计A/D转换程序的设计是该系统实现的核心部分,通过设计A/D转换程序驱动单片机向模数转换器ADC0809输入指令开启模数转换,以达到系统设计的主要功能。2.2.2 显示程序设计我们要的是一个能够用眼睛直接接受的一个结果,而不是眼睛看不到,需要在各种仿真软件里才能看到结果的设计,所以数码管显示程序的设计也是该系统设计环节的主要部分。这部分程序也主要是对单片机进行编程来驱动LED数码管进行正常的显示工作。3 系统方案的选择和论证8路输入模拟信号数值显示器,采用A

11、T89C52单片机控制,由集成电路0809完成模数转换。本显示器可自动轮流显示8路输入模拟信号的数值,最小分辨率为0.02V,最大显示数值为255(输入为5V时),模拟输入最大值为5V,可作为数字电压表用。3.1 系统设计方案的选择8路输入模拟信号数值显示器的硬件电路可以分为三个模块:1、主控制器模块;2、数据采集模块;3、显示模块。其中系统的主控制器采用AT89C52单片机,直接驱动LED数码管,数据采集模块由AT89C52与ADC0809组成。3.2 各模块方案选择和论证根据该设计所完成的功能,可以将系统分为3个模块:单片机模块、数据采集模块、显示模块。系统框图如图3-1所示图3-1 系统

12、模块框图3.2.1 主控制器模块的分析与选择用单片机作为这一控制系统的核心,接收来自ADC0809的数据,经处理后通过串口传送,由于系统功能简单,单片机通过与LED数码显示器相连,驱动显示器显示相应通道采集到的数据。考虑到该数据采集系统所需的程序空间(ROM)和数据空间(RAM)较小,选用AT89C52单片机作为该系统的核心,它含有8K字节的EPROM和256字节的RAM足够本设计所用,并且功能强大的AT89C52单片机可提供许多高性价比的应用场合,所以采用AT89C52单片机作为本设计的主控制器。时钟电路的选择: AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和X

13、TAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈的元件的片外石英晶体和陶瓷谐振器一起构成自激振荡器。方案一:内部时钟方式,如图3-1图3-1 内部时钟方式外接石英晶体(或陶瓷谐振器)及电容C1, C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1, C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF士10pF,而如使用陶瓷谐振器建议选择40pF士l0pF。 方案二:外部时钟方式,如图3-2图3-2 外部时钟方式外部振荡器信号的接法与芯片类型有关。CMOS工艺的MCU

14、其XTAL1端接外部时钟信号,XTAL2端可悬空。HMOS工艺的MCU则XTAL2端接外部时钟信号,XTAL1端须接地。由于外部时钟方式常用于多片单片机同时工作,以便于各单片机同步。所以时钟电路采取内部时钟方式。3.2.2 数据采集模块的分析与选择根据设计要求,该设计需要对8路模拟信号进行采样,并且最小分辨率为0.02V。a 转换原理的选择随着大规模集成电路技术的迅速发展,A/D转换器新品不断推出。按工作方式原理分,ADC的主要种类有:逐次逼近式和双积分式。方案一:逐次逼近式ADC的转换原理图3-3是逐次逼近式ADC的工作原理图。由图可见,ADC由比较器、D/A转换器、逐次逼近寄存器和控制逻辑

15、组成。图3-3 逐次逼近式ADC原理图 在时钟脉冲的同步下,控制逻辑先使N位寄存器的D7位置1(其余位为0)。此时该寄存器输出的内容为80H,此值经DAC转换为模拟量输出为VN,与待转换的模拟输入信号VIN相比较,若VIN大于等于VN,则比较器输出为1。于是在时钟脉冲的同步下,保留D7=1,并使下一位D6=1,所得新值(C0H)再经DAC转换得到新的VN,再与VIN比较,重复前述过程。反之,若使D7=1后,经比较,若VIN小于VN,则使D7=0,D6=1,所得新值VN再与VIN比较,重复前述过程。以此类推,从D7到D0都比较完毕,转换便结束。转换结束时,控制逻辑使EOC变为高电平,表示A/D转

16、换结束,此时的D7D0即为对应于模拟输入信号VIN的数字量。方案二:双积分式ADC的转换原理 图3-4是双积分式A/D转换器 。图3-4 双积分式A/D转换器图3-5是双积分式ADC的工作原理图。控制逻辑先对未知的输入模拟电压VIN进行固定时间T的积分,然后转为对标准电压进行反向积分,直至积分输出返回起始值。对标准电压的积分时间t2(或t2)正比于模拟输入电压VIN。输入电压大,则反向积分时间长。用高频率标准时钟脉冲来测量积分时间t2(或t2),即可得到对应于模拟电压VIN的数字量。图3-5 双积分式ADC工作原理b 转换时间的选择转换速度是指完成一次A/D转换所需时间的倒数,是一个很重要的指

17、标。A/D转换器型号不同,转换速度差别很大。通常,8位逐次比较式ADC的转换时间为100us左右。由于本系统的控制时间允许,可选8位逐次比较式A/D转换器。c ADC位数的选择A/D转换器的位数决定着信号采集的精度和分辨率。对于该8个通道的输入信号,8位A/D转换器,其精度为输入为05V时,分辨率为A/D转换器的满量程值 ADC的二进制位数量化误差为ADC0809是TI公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。用它可直接将8个单端模拟信号输入,分时进行A/D转换,在多点巡回监测、过程控制

18、等领域中使用非常广泛,所以本设计中选用该芯片作为A/D转换电路的核心。d ADC0809与单片机的接口 ADC0809与单片机的接口方式是该系统的核心部分,选择好的接口方式是实现该系统功能的重要步骤。方案一:经典接口方式。ADC0809与单片机的接口电路如图3-6所示。图3-6 ADC0809与MCS-51的接口电路由于ADC0809无片内时钟,时钟信号可由单片机的ALE信号经D触发器二分频后获得。ALE引脚得脉冲频率是AT89C52时钟频率的1/6。单片机时钟频率采用12MHz,则ALE输出的频率是2MHz,二分频后为1MHz,符合ADC0809对频率的要求。由于ADC0809内部设有地址锁

19、存器,所以通道地址由P0口的低3位直接与ADC0809的A、B、C相连。通道基本地址为0000H0007H。其对应关系如表3-1所示。表3-1 0809输入通道地址地址码输入通道CBA000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7控制信号:将P2.7作为片选信号,在启动A/D转换时,由单片机的写信号和P2.7控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。在读取转换结果时,用单片机的读信号和P2.7引脚经或非门后,产生正脉冲作为OE信号,打开三态输出锁存器。方案二:简易接口方式。

20、ADC0809转换的必要条件就是CLOCK引脚得到一个能够正常工作的时钟脉冲,以经典接口方式来看,是由单片机的ALE引脚经分频器给CLOCK一个时钟脉冲,通过硬件电路直接给CLOCK引脚一个时钟脉冲。所以,只要能让ADC0809的CLOCK引脚得到一个能够工作的时钟脉冲,那么A/D转换也就基本能实现。但是直接利用单片机的任意的一个I/O口与CLOCK引脚连接,通过软件编程的方法给CLOCK引脚送入一个时钟脉冲,那么ADC0809也就可以满足A/D转换的必要条件了。这样,不仅可以节省了器件,而且又不会出现因为硬件问题而产生错误。所以,方案二成为该设计首选的ADC0809与单片机接口的方式。 3.

21、2.3 数据显示模块分析与选择用单片机作为这一控制系统的核心,接收来自ADC0809的数据,经处理后通过串口传送,由于系统功能简单,单片机通过与LED数码显示器相连,驱动LED显示器显示相应通道采集到的数据。要求最大显示数值为255,并且要对8个通道进行轮流显示,所以需要4个LED数码管对其进行显示,1个显示通道数,其余3个显示采样值。用单片机驱动LED数码管有很多方法,按译码方式可分为硬件译码和软件译码;按显示方式可分为静态显示和动态(扫描)显示。a 译码方式方案一:硬件译码硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD码即可,硬件接线有一定标准。方案二:软件译码软件译码是

22、用软件来完成硬件的功能,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。由于采样信号非固定值,所以采用软件译码方式对LED数码管进行显示驱动。b 显示方法方案一:静态显示静态显示,显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后停止传送,直到下一次显示数据需要更新时再传送一次数据。编程容易,管理简单,显示亮度高,显示数据稳定,占用很少的CPU时间。但引线多,线路复杂,硬件成本高。方案二:动态显示动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次,需要CPU时刻对显示器件进行数据刷新,显示数据会有闪烁感,占用的CPU时间多。

23、这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。当显示装置中有多个多段LED时,通常采用动态扫描驱动电路,节省开销。所以采用动态显示方式对LED数码管进行显示控制。3.3 系统各个模块的最终方案 经上述一系列的理论分析,本系统最终采用AT89C52单片机,数据采集核心采用模数转换器ADC0809,采用7段共阳LED数码管动态显示采集到的数据。4 系统的硬件设计4.1 硬件电路各模块简介4.1.1 AT89C52单片机AT89C52是美国ATME

24、L公司生产的低电压 ,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器(EPROM)和256 bytes的随机存取数据存储器(RAM ),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域a 技术指标及功能特性AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内RAM,32个可编程I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一

25、个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至OHz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。主要特性参数:与MCS-51产品指令系统完全兼容8k字节可重擦写Flash闪速存储器1000次擦写周期全静态操作:OHz-24MHz三级加密程序存储器256*8字节内部RAM32个可编程I/O口线3个16位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式b 引脚功能说明 引脚图如图4-1

26、图4-1 AT89C52引脚图引脚功能说明: Vcc:电源电压 GND:地P0口:PO口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写”1”可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。 在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节校验时,要求外接上拉电阻. Pl口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写”1”,通过内部的上拉

27、电阻时把端口拉到高电平,此时叫一作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I).Flash编程和程序校验期间,P1接收低8位地址 P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写”1” ,通过内部的上拉电阻时把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I) 在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行M

28、OVX RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR )区中 R2寄存器的内容),在整个访问期间不改变. Flash编程或校验时,P2亦接收高位地址和其它控制信号 P3口:P3口是一组带有内部上拉电阳的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(I).P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如表4-1所示:表4-1 P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(

29、外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6(外部数据存储器写选通)P3.7 (外部数据存储器读选通) P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对Fl

30、ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8FH单元的DO位置位,可禁止操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效 程序储存允许()输出是外部程序存储器的读选通信号,当 AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的信号不出现。 EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为OOOOH-FFFFH), EA端必须保持低电平(接地)。需注

31、意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态 如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。 Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端4.1.2 模数转换器ADC0809把连续变化量变成离散量的过程称为量化,也可理解为信号的采样。 把以一定时间间隔T逐点采集连续的模拟信号,并保持一个时间t,使被采集的信号变成时间上离散、幅值等于采样时刻该信号瞬时值的一组方波序列信号,即采样信号。a. A/D转换的知

32、识概要(1) 采样-保持为了能不失真的恢复原模拟信号,采样频率应不小于输入模拟信号的频谱中最高频率的两倍,这就是采样定理,即 由于A/D转换需要一定的时间,所以在每次采样结束后,应保持采样电压在一段时间内不变,直到下一次采样的开始。实际中采样-保持是做成一个电路。(2) 量化与编码模拟信号经采样-保持电路后,得到了连续模拟信号的样值脉冲,他们是连续模拟信号在给定时刻上的瞬时值,并不是数字信号。还要把每个样值脉冲转换成与它幅值成正比的数字量。以上为A/D转换的一般步骤,在本电路中由ADC0809芯片完成。b. ADC0809内部功能与引脚分辨率和精度是A/D转换器的两个主要的性能指标,这两个性能

33、指标在前文中已作了相应的计算和分析,这里就不再赘述。ADC0809八位逐次逼近式AD转换器是一种单片CMOS器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。8路转换开关能直接连通8个单端模拟信号中的任何一个。其内部结构如图4-2所示。图4-2 ADC0809内部结构(1) ADC0809主要性能u 逐次比较型u CMOS工艺制造u 单电源供电u 无需零点和满刻度调整u 具有三态锁存输出缓冲器,输出与TTL兼容u 易与各种微控制器接口u 具有锁存控制的8路模拟开关u 分辨率:8位u 功耗:15mWu 最大不可调误差小于1LSB(最低有效位)u 转换时间()128usu 转换精

34、度:ADC0809没有内部时钟,必须由外部提供,其范围为101280kHz。典型时钟频率为640kHz(2) 引脚排列及各引脚的功能,引脚排列如图4-3所示。图4-3 ADC0809引脚图各引脚的功能如下:IN0IN7:8个通道的模拟量输入端。可输入05V待转换的模拟电压。D0D7:8位转换结果输出端。三态输出,D7是最高位,D0是最低位。A、B、C:通道选择端。当CBA=000时,IN0输入;当CBA=111时,IN7输入。ALE:地址锁存信号输入端。该信号在上升沿处把A、B、C的状态锁存到内部的多路开关的地址锁存器中,从而选通8路模拟信号中的某一路。START:启动转换信号输入端。从STA

35、RT端输入一个正脉冲,其下降沿启动ADC0809开始转换。脉冲宽度应不小于100200ns。EOC:转换结束信号输出端。启动A/D转换时它自动变为低电平。OE:输出允许端。CLK:时钟输入端。ADC0809的典型时钟频率为640kHz,转换时间约为100s。REF(-)、REF(+):参考电压输入端。ADC0809的参考电压为5V。VCC、GND:供电电源端。ADC0809使用5V单一电源供电。当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行A/D转换,此期间START应保持低电平。在START下降沿后1

36、0us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,为高电平时,表示转换结束。OE为低电平时,D0D7为高阻状态,OE为高电平时,允许转换结果输出。ADC0809时序图如图4-4。图4-4 ADC0809时序图4.1.3 LED数码管显示器a. LED数码管显示器的结构通常使用的LED是由7个发光二极管排列成的,七段LED的阳极连在一起称为共阳极接法,而阴极接在一起的称为共阴极接法。每段LED的笔画分别称为a、b、c、d、e、f、g,另外有一段构成小数点。一位显示器数码管的结构如图4-5所示。 (a)数码管结构 (b)共阳极接法 (c)共阴极接法图4-5 LED数码管原理图b.

37、 LED数码管显示器的工作原理在选用共阴极的LED是,只要在某一发光二极管加上高电平,该段即点亮,反之则暗。而选用共阳极的LED时,要使某一段发光二极管发亮,则需加上低电平,反之则暗,为了保护各段LED不被损坏,需要外加限流电阻。为了要显示某个字形,则应使此字形的相应段点亮,也即送一个不同的电平组合代表的数据来控制LED的显示字形,此数据称为字符的段码。数据字位数与LED段码的关系如表4-2。表4-2 数据字位数与LED段码的关系 常用字符共阴极、共阳极时的段码即编码表,如表4-3。表4-3 常用字符显示编码表c. LED显示接口电路设计数码管显示接口电路如图4-6所示。图4-6 数码管显示接

38、口电路4.2 系统的仿真该系统是利用仿真软件proteus进行仿真,proteus6.5是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR,PIC等常用的MCU及其外围电路。但是,在仿真的时候,虽然有模数转换器ADC0809,但是在接好电路后,将程序烧录进去,却发现系统无法进行仿真,困惑许久,发现该仿真软件不支持ADC0809芯片的仿真,于是在仿真过程中我采用了相同类型的模数转换器ADC0808进行仿真工作。图4-7就是该系统的仿真电路图。图4-7 系统的仿真电路图5 系统的软件设计 软件采用模块化程序设计方法,由主程序、显示子程序、A/D转换测量子程序等几部分组成。详细的程序源代

39、码见附录部分。5.1 主程序的设计 整个系统上电后,启动A/D转换,待转换完毕后,系统将转换数据从P0口存入到单片机内部寄存器70H中,然后再将转换数据进行数码转换,并将转换代码存入显示缓冲区78H-7AH,最后系统调用显示子程序进行电压显示,当前显示完毕进行通道转换并进行下次转换。主程序在调用显示程序和测试程序之间循环,其流程图如图5-1所示。图5-1 主程序流程图5.2 各子程序的设计5.2.1 A/D转换子程序的设计A/D转换子程序是用来控制对ADC0809 8路模拟输入电压的A/D转换,其程序流程图如图5-2所示。图5-2 A/D转换子程序流程图5.2.2 数据转换子程序的设计 数据转

40、换子程序是将8位转换的数字量进行BCD码转换,并将转换数据存入显示缓冲区内。程序流程图如图5-3所示。图5-3 数据转换子程序流程图5.2.3 显示子程序的设计 显示子程序主要是将转换数据通过译码,然后在数码管进行显示。其程序流程图如图5-4所示。图5-4 显示子程序流程图5.2.4 定时计数脉冲中断子程序的设计 定时计数器脉冲中断子程序主要是利用定时器T0为ADC0809提供时钟脉冲。程序流程图如图5-5所示。图5-5 定时计数脉冲中断子程序6 系统调试在整个系统调试的过程中,硬件和软件方面都遇到了一些问题,下面就是该设计中的问题与解决方法小结。6.1 调试过程中出现的问题:l 硬件电路无法

41、在PROTEUS中进行仿真。l 数码管不工作。l 给定一个模拟量输入,无数字量产生。l 数码管显示杂乱。6.2 问题的分析与解决:l 硬件电路无法在PROTEUS中仿真主要有2个原因:一、电路原理图有问题,可能在PROTEUS中接错或漏接。二、本身这个仿真软件不支持。 经过分析与查阅资料,发现原理图并没有什么问题,而是PROTEUS仿真软件不提供ADC0809芯片的仿真,属于仿真软件不支持的类型。所以在后期仿真的过程中,我采用了与ADC0809功能与引脚相同的ADC0808来进行仿真工作。l 数码管不工作可能有以下几个原因:一、电路焊接有问题,出现虚焊、漏焊或者是直接焊接错误。二、软件编程出现

42、问题。三、数码管已经损坏。检查数码管自身是否已经损坏可直接通过万用表进行检测,经检测并未损坏,而且同时也对连接数码管的三极管和单片机的P1,P3口进行了检测,也未发现问题。最后,问题只能归结到软件编程方面,由于数码管显示采用的是动态扫描方式,直接是利用软件进行控制,所以只要软件编程出现错误,数码管相应的也就不予显示。但是,经过程序检测,也并未出现什么错误,究竟是什么原因导致数码管无法工作呢?问题持续了好久,但是就在一次向同学求助的同时,总算发现了问题的所在,原来是我一直没有将程序烧录进单片机,这主要是因为没有掌握好软件仿真工具的使用方法。我使用的软件仿真软件是Keil C软件,利用它可以进行软

43、件的编程和仿真,同时也能生成.HEX文件烧录到单片机内。我的问题就出现在生成HEX文件这步,通过编译,虽然成功,但是我并没有把程序加载到生成HEX文件的目录下,导致最后生成的HEX文件是Keil C软件内部提供的芯片初始程序的HEX文件。经过修改重新烧录,数码管开始正常工作。l 给定一个模拟量输入,无数字量产生,主要有2个原因:一、ADC0809已损坏。二、单片机没有给ADC0809的CLOCK引脚提供一个正常工作的时钟脉冲。经检查,ADC0809芯片并未出现问题,但是开启电源,测量CLOCK引脚的电平,发现电平属于不高不低的数值,在2.6V左右,并未处在高电平,从而导致ADC0809无法进行

44、A/D转换。要想给CLOCK引脚提供一个时钟脉冲,按照原理图的实现方法就是利用单片机的ALE引脚提供的2MHz的时钟脉冲经过二分频送入CLOCK引脚,但是现在却实现不了,经过老师和同学的帮助,我们又采取了另外一种方法,就是直接利用单片机的P3口给CLOCK一个方波计数脉冲,这样的话,不仅省掉了二分频器的使用,而且可以直接加一个方波计数中断处理程序就可以简单实现了。 l 数码管显示杂乱主要有两个原因:一、软件程序出现问题;二、显示接口电路出现问题。 经过检查,软件程序并未出现问题,而是接口电路出现了一些问题,由于我用的LED数码显示器属于一种低功率的共阳极数码管,但是我经过三极管连接LED数码管的COM端,这样使得电流放大,导致数码管的各段都发亮,只是亮度不同。因此,不需要三极管的放大,在COM段加个限流电阻,该显示器就能显示正常。7 结 论经过二个多月的不断学习与设计,在指导老师的悉心指导下,我终于顺利的完成了我的毕业设计。我所设计的8路输入模拟信号数值显示器已经顺利的实现了A/D转换的功能,而且其精度也达到了要求,在实验中,对于其测量范围内的电压都能正确地测量并显示。由于时间的关系,我并没有对此设计进行扩展,这个设计还有很大的修改空间。比如可以添加一个按键电路对通道选择进行控制,可以对任意通道进行固定测量。在这次毕业设计的过程中,我的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号