自动化毕业设计-基于单片机的8路输入模拟信号数值显示器设计_第1页
自动化毕业设计-基于单片机的8路输入模拟信号数值显示器设计_第2页
自动化毕业设计-基于单片机的8路输入模拟信号数值显示器设计_第3页
自动化毕业设计-基于单片机的8路输入模拟信号数值显示器设计_第4页
自动化毕业设计-基于单片机的8路输入模拟信号数值显示器设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

西安邮电学院毕业设计(论文)题目8路输入模拟信号数值显示器的设计系别专业班级学生姓名导师姓名职称起止时间2007年3月19日至2007年6月24日目录摘要IABSTRACTII1引言12系统概述121硬件电路简介122软件设计简介23系统方案的选择和论证331系统设计方案的选择332各模块方案选择和论证333系统各个模块的最终方案114系统的硬件设计1141硬件电路各模块简介1142系统的仿真215系统的软件设计2151主程序的设计2252各子程序的设计226系统调试2561调试过程中出现的问题2562问题分析与解决257结论26致谢27参考文献28附录29摘要本文主要论述了基于单片机的A/D转换的硬件结构,并在此基础上进行了软件设计。以AT89C52单片机及模数转换芯片ADC0809为核心,该系统有两个部分A/D转换,数据处理和显示。具体包括控制、显示、A/D转换器等。设计中用ADC0809进行8路数据的采样,利用AT89C52单片机的串行口发送和接收数据。显示部分由LED数码显示器构成。硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。关键词AT89C52,单片机,模数转换,ADC0809,LED数码管ABSTRACTTHEHARDWARESTRUCTUREOFDATACOLLECTIONSYSTEMBASEDONSCMISPRIMARILYPRESENTEDINTHEPAPERANDITSSOFTWAREISDESIGNEDSECONDLYTAKETHEAT89C52SCMANDA/DCONVERSIONCHIPADC0809ASACORE,THISSYSTEMHASTWOPARTSA/DTRANSFORMS,DATAPROCESSINGANDDEMONSTRATIONSPECIFICALLYINCLUDESTHECONTROL,THEDEMONSTRATION,THEA/DSWITCHANDSOONINTHEDESIGNCARRIESON8WAYSWITHADC0809ACCORDINGTOTHESAMPLING,USESTHEAT89C52SCMTHESERIALMOUTHTRANSMISSIONANDTHERECEIVEDATADEMONSTRATEDPARTIALLYCONSTITUTESBYTHELEDNUMERICALCODEMONITORTHEHARDWAREDESIGNAPPLICATIONELECTRONDESIGNAUTOMATIONTOOL,THESOFTWAREDESIGNUSESTHEMODULARPROGRAMMINGMETHODKEYWORDSAT89C52,SCM,A/DCONVERSION,ADC0809,LEDNUMERICALCODETUBE1引言随着计算机技术的飞速发展及普及,多路输入模拟信号数值显示系统在多个领域有着广泛的应用。多路输入模拟信号数值显示是工、农业控制系统中至关重要的一环,在医药、化工、食品、等领域的生产过程中,往往需要随时检测各生产环节的温度、湿度、流量及压力等参数。同时,还要对某一检测点任意参数能够进行随机查寻,将其在某一时间段内检测得到的数据经过转换提取出来,以便进行比较,做出决策,调整控制方案,提高产品的合格率,产生良好的经济效益。随着工、农业的发展,多路输入模拟信号数值显示势必将得到越来越广泛的应用,为适应这一趋势,作这方面的研究就显得十分重要。在科学研究中,运用多路输入模拟信号数值显示系统可获得大量的动态信息,也是获取科学数据和生成知识的重要手段之一。总之,不论在哪个应用领域中,数据采集与处理将直接影响工作效率和所取得的经济效益。在本论文中,主要讨论以单片机为主控技术的8路输入模拟信号数值显示电路的实现。把由电压表输出的05V的模拟电压信号送给模数转换器,然后A/D转换器将该模拟信号转换为00HFFH的数字信号,当转换结束时发送转换结束信号给单片机AT89C52,单片机对其转换后的结果进行处理,处理后的结果送往LED数码管进行显示。2系统概述8路输入模拟信号数值显示器实际上就是一个数据采集系统,任务是把由电压表输出的05V的模拟电压信号送给模数转换器,然后A/D转换器将该模拟信号转换为00HFFH的数字信号,当转换结束时发送转换结束信号给单片机AT89C52,单片机对其转换后的结果进行处理,处理后的结果送往LED数码管进行显示。8路输入模拟信号数值显示系统可以分为两大模块硬件电路模块软件设计模块21硬件电路简介根据系统的设计要求,可以将系统硬件电路模块划分为以下三个部分主控制器模块数据采集模块显示模块211主控制器模块主控制器模块是8路输入模拟信号数值显示器的核心控制部分,该模块主要由单片机构成,通过单片机的各个I/O口对外围设备的控制,以达到A/D转换,显示数据等功能。212数据采集模块工程实践中经常遇到被测对象的一些物理参数,如温度、流量、压力、位移、速度等,这些参数都是模拟量。虽然这些模拟量已经由传感器、变送器变换成标准的电压或电流信号,但还需要通过A/D转换器,将其转换成计算机能处理的相应的数字信号。所以,单片机与A/D转换接口技术是构成单片机测控系统的重要内容之一。在本论文中,数据采集模块主要是模数转换器ADC0809。通过单片机提供的时钟频率,通过一个I/O口送入ADC0809的CLOCK引脚,使ADC0809得到一个能够可靠工作的时钟脉冲。并且通过START引脚启动转换,将转换得到的数字信号利用8位数据输出线传输给单片机的P0口。213显示模块显示器是单片机应用系统常用的设备,包括LED、LCD等。LED显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的二极管导通,就能显示出对应字符。本论文中,显示模块主要有七段共阳极LED数码管构成,显示电路采用的是动态显示接口电路。通过单片机的P1口进行数码管的输出显示口,P3口作为数码管的位选择口。22软件设计简介该系统的软件设计也可以相应的分为以下两部分A/D转换程序设计显示程序设计221A/D转换程序设计A/D转换程序的设计是该系统实现的核心部分,通过设计A/D转换程序驱动单片机向模数转换器ADC0809输入指令开启模数转换,以达到系统设计的主要功能。222显示程序设计我们要的是一个能够用眼睛直接接受的一个结果,而不是眼睛看不到,需要在各种仿真软件里才能看到结果的设计,所以数码管显示程序的设计也是该系统设计环节的主要部分。这部分程序也主要是对单片机进行编程来驱动LED数码管进行正常的显示工作。3系统方案的选择和论证8路输入模拟信号数值显示器,采用AT89C52单片机控制,由集成电路0809完成模数转换。本显示器可自动轮流显示8路输入模拟信号的数值,最小分辨率为002V,最大显示数值为255(输入为5V时),模拟输入最大值为5V,可作为数字电压表用。31系统设计方案的选择8路输入模拟信号数值显示器的硬件电路可以分为三个模块1、主控制器模块;2、数据采集模块;3、显示模块。其中系统的主控制器采用AT89C52单片机,直接驱动LED数码管,数据采集模块由AT89C52与ADC0809组成。32各模块方案选择和论证根据该设计所完成的功能,可以将系统分为3个模块单片机模块、数据采集模块、显示模块。系统框图如图31所示MCUADCLED8路输入模拟信号图31系统模块框图321主控制器模块的分析与选择用单片机作为这一控制系统的核心,接收来自ADC0809的数据,经处理后通过串口传送,由于系统功能简单,单片机通过与LED数码显示器相连,驱动显示器显示相应通道采集到的数据。考虑到该数据采集系统所需的程序空间ROM和数据空间RAM较小,选用AT89C52单片机作为该系统的核心,它含有8K字节的EPROM和256字节的RAM足够本设计所用,并且功能强大的AT89C52单片机可提供许多高性价比的应用场合,所以采用AT89C52单片机作为本设计的主控制器。时钟电路的选择AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈的元件的片外石英晶体和陶瓷谐振器一起构成自激振荡器。方案一内部时钟方式,如图31图31内部时钟方式外接石英晶体或陶瓷谐振器及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30PF士10PF,而如使用陶瓷谐振器建议选择40PF士L0PF。方案二外部时钟方式,如图32图32外部时钟方式外部振荡器信号的接法与芯片类型有关。CMOS工艺的MCU其XTAL1端接外部时钟信号,XTAL2端可悬空。HMOS工艺的MCU则XTAL2端接外部时钟信号,XTAL1端须接地。由于外部时钟方式常用于多片单片机同时工作,以便于各单片机同步。所以时钟电路采取内部时钟方式。322数据采集模块的分析与选择根据设计要求,该设计需要对8路模拟信号进行采样,并且最小分辨率为002V。A转换原理的选择随着大规模集成电路技术的迅速发展,A/D转换器新品不断推出。按工作方式原理分,ADC的主要种类有逐次逼近式和双积分式。方案一逐次逼近式ADC的转换原理图33是逐次逼近式ADC的工作原理图。由图可见,ADC由比较器、D/A转换器、逐次逼近寄存器和控制逻辑组成。图33逐次逼近式ADC原理图在时钟脉冲的同步下,控制逻辑先使N位寄存器的D7位置1(其余位为0)。此时该寄存器输出的内容为80H,此值经DAC转换为模拟量输出为VN,与待转换的模拟输入信号VIN相比较,若VIN大于等于VN,则比较器输出为1。于是在时钟脉冲的同步下,保留D71,并使下一位D61,所得新值(C0H)再经DAC转换得到新的VN,再与VIN比较,重复前述过程。反之,若使D71后,经比较,若VIN小于VN,则使D70,D61,所得新值VN再与VIN比较,重复前述过程。以此类推,从D7到D0都比较完毕,转换便结束。转换结束时,控制逻辑使EOC变为高电平,表示A/D转换结束,此时的D7D0即为对应于模拟输入信号VIN的数字量。方案二双积分式ADC的转换原理图34是双积分式A/D转换器。D/A转换器锁存缓存器N位寄存器控制逻辑VINVNSTAREOCVREFOE数据输出图34双积分式A/D转换器图35是双积分式ADC的工作原理图。控制逻辑先对未知的输入模拟电压VIN进行固定时间T的积分,然后转为对标准电压进行反向积分,直至积分输出返回起始值。对标准电压的积分时间T2(或T2)正比于模拟输入电压VIN。输入电压大,则反向积分时间长。用高频率标准时钟脉冲来测量积分时间T2(或T2),即可得到对应于模拟电压VIN的数字量。图35双积分式ADC工作原理B转换时间的选择转换速度是指完成一次A/D转换所需时间的倒数,是一个很重要的指标。A/D转换器型号不同,转换速度差别很大。通常,8位逐次比较式ADC的转换时间为100US左右。由于本系统的控制时间允许,可选8位逐次比较式A/D转换器。CADC位数的选择A/D转换器的位数决定着信号采集的精度和分辨率。对于该8个通道的输入信号,8位A/D转换器,其精度为80392输入为05V时,分辨率为85161FSNVVA/D转换器的满量程值FSVADC的二进制位数N量化误差为850981212FSNQVVADC0809是TI公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。用它可直接将8个单端模拟信号输入,分时进行A/D转换,在多点巡回监测、过程控制等领域中使用非常广泛,所以本设计中选用该芯片作为A/D转换电路的核心。DADC0809与单片机的接口ADC0809与单片机的接口方式是该系统的核心部分,选择好的接口方式是实现该系统功能的重要步骤。方案一经典接口方式。ADC0809与单片机的接口电路如图36所示。图36ADC0809与MCS51的接口电路由于ADC0809无片内时钟,时钟信号可由单片机的ALE信号经D触发器二分频后获得。ALE引脚得脉冲频率是AT89C52时钟频率的1/6。单片机时钟频率采用12MHZ,则ALE输出的频率是2MHZ,二分频后为1MHZ,符合ADC0809对频率的要求。由于ADC0809内部设有地址锁存器,所以通道地址由P0口的低3位直接与ADC0809的A、B、C相连。通道基本地址为0000H0007H。其对应关系如表31所示。表310809输入通道地址地址码CBA输入通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7控制信号将P27作为片选信号,在启动A/D转换时,由单片机的写信号和P27控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。在读取转换结果时,用单片机的读信号和P27引脚经或非门后,产生正脉RD冲作为OE信号,打开三态输出锁存器。方案二简易接口方式。ADC0809转换的必要条件就是CLOCK引脚得到一个能够正常工作的时钟脉冲,以经典接口方式来看,是由单片机的ALE引脚经分频器给CLOCK一个时钟脉冲,通过硬件电路直接给CLOCK引脚一个时钟脉冲。所以,只要能让ADC0809的CLOCK引脚得到一个能够工作的时钟脉冲,那么A/D转换也就基本能实现。但是直接利用单片机的任意的一个I/O口与CLOCK引脚连接,通过软件编程的方法给CLOCK引脚送入一个时钟脉冲,那么ADC0809也就可以满足A/D转换的必要条件了。这样,不仅可以节省了器件,而且又不会出现因为硬件问题而产生错误。所以,方案二成为该设计首选的ADC0809与单片机接口的方式。323数据显示模块分析与选择用单片机作为这一控制系统的核心,接收来自ADC0809的数据,经处理后通过串口传送,由于系统功能简单,单片机通过与LED数码显示器相连,驱动LED显示器显示相应通道采集到的数据。要求最大显示数值为255,并且要对8个通道进行轮流显示,所以需要4个LED数码管对其进行显示,1个显示通道数,其余3个显示采样值。用单片机驱动LED数码管有很多方法,按译码方式可分为硬件译码和软件译码;按显示方式可分为静态显示和动态(扫描)显示。A译码方式方案一硬件译码硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD码即可,硬件接线有一定标准。方案二软件译码软件译码是用软件来完成硬件的功能,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。由于采样信号非固定值,所以采用软件译码方式对LED数码管进行显示驱动。B显示方法方案一静态显示静态显示,显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后停止传送,直到下一次显示数据需要更新时再传送一次数据。编程容易,管理简单,显示亮度高,显示数据稳定,占用很少的CPU时间。但引线多,线路复杂,硬件成本高。方案二动态显示动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次,需要CPU时刻对显示器件进行数据刷新,显示数据会有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。当显示装置中有多个多段LED时,通常采用动态扫描驱动电路,节省开销。所以采用动态显示方式对LED数码管进行显示控制。33系统各个模块的最终方案经上述一系列的理论分析,本系统最终采用AT89C52单片机,数据采集核心采用模数转换器ADC0809,采用7段共阳LED数码管动态显示采集到的数据。4系统的硬件设计41硬件电路各模块简介411AT89C52单片机AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8KBYTES的可反复擦写的FLASH只读程序存储器(EPROM)和256BYTES的随机存取数据存储器RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS51指令系统及8052产品引脚兼容,片内置通用8位中央处理器CPU和FLASH存储单元,功能强大的AT89C52单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域A技术指标及功能特性AT89C52提供以下标准功能8K字节FLASH闪速存储器,256字节内RAM,32个可编程I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至OHZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。主要特性参数与MCS51产品指令系统完全兼容8K字节可重擦写FLASH闪速存储器1000次擦写周期全静态操作OHZ24MHZ三级加密程序存储器2568字节内部RAM32个可编程I/O口线3个16位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式B引脚功能说明引脚图如图41图41AT89C52引脚图引脚功能说明VCC电源电压GND地P0口PO口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写”1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址低8位和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,PO口接收指令字节,而在程序校验时,输出指令字节校验时,要求外接上拉电阻PL口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对端口写”1”,通过内部的上拉电阻时把端口拉到高电平,此时叫一作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流IILFLASH编程和程序校验期间,P1接收低8位地址P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对端口写”1”,通过内部的上拉电阻时把端口拉到高电平,此时可作输入口作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流IIL在访问外部程序存储器或16位地址的外部数据存储器例如执行MOVXDPTR指令时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器如执行MOVXRI指令时,P2口线上的内容也即特殊功能寄存器SFR区中R2寄存器的内容,在整个访问期间不改变FLASH编程或校验时,P2亦接收高位地址和其它控制信号P3口P3口是一组带有内部上拉电阳的8位双向I/O口。P3口输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对P3口写“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流IILP3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如表41所示表41P3口的第二功能端口引脚第二功能P30RXD串行输入口P31TXD串行输出口P32外中断0P33外中断1P34T0定时/计数器0P35T1定时/计数器1P36外部数据存储器写选通P37外部数据存储器读选通P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE地址锁存允许输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲PROG。如有必要,可通过对特殊功能寄存器SFR区中的8FH单元的DO位置位,可禁止操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效程序储存允许输出是外部程序存储器的读选通信号,当PSENPSENAT89C52由外部程序存储器取指令或数据时,每个机器周期两次有效,即PSEN输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的信号不出现。EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器地址为OOOOHFFFFH,EA端必须保持低电平接地。需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平接VCC端,CPU则执行内部程序存储器中的指令。FLASH存储器编程时,该引脚加上12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1振荡器反相放大器的及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端412模数转换器ADC0809把连续变化量变成离散量的过程称为量化,也可理解为信号的采样。把以一定时间间隔T逐点采集连续的模拟信号,并保持一个时间T,使被采集的信号变成时间上离散、幅值等于采样时刻该信号瞬时值的一组方波序列信号,即采样信号。AA/D转换的知识概要(1)采样保持为了能不失真的恢复原模拟信号,采样频率应不小于输入模拟信号的频谱中最高频率的两倍,这就是采样定理,即SIMAX2F由于A/D转换需要一定的时间,所以在每次采样结束后,应保持采样电压在一段时间内不变,直到下一次采样的开始。实际中采样保持是做成一个电路。(2)量化与编码模拟信号经采样保持电路后,得到了连续模拟信号的样值脉冲,他们是连续模拟信号在给定时刻上的瞬时值,并不是数字信号。还要把每个样值脉冲转换成与它幅值成正比的数字量。以上为A/D转换的一般步骤,在本电路中由ADC0809芯片完成。BADC0809内部功能与引脚分辨率和精度是A/D转换器的两个主要的性能指标,这两个性能指标在前文中已作了相应的计算和分析,这里就不再赘述。ADC0809八位逐次逼近式AD转换器是一种单片CMOS器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。8路转换开关能直接连通8个单端模拟信号中的任何一个。其内部结构如图42所示。(1)ADC0809主要性能逐次比较型CMOS工艺制造单电源供电无需零点和满刻度调整具有三态锁存输出缓冲器,输出与TTL兼容易与各种微控制器接口图42ADC0809内部结构具有锁存控制的8路模拟开关分辨率8位功耗15MW最大不可调误差小于1LSB(最低有效位)转换时间()128US50CLKFHZ转换精度4ADC0809没有内部时钟,必须由外部提供,其范围为101280KHZ。典型时钟频率为640KHZ(2)引脚排列及各引脚的功能,引脚排列如图43所示。图43ADC0809引脚图各引脚的功能如下IN0IN78个通道的模拟量输入端。可输入05V待转换的模拟电压。D0D78位转换结果输出端。三态输出,D7是最高位,D0是最低位。A、B、C通道选择端。当CBA000时,IN0输入;当CBA111时,IN7输入。ALE地址锁存信号输入端。该信号在上升沿处把A、B、C的状态锁存到内部的多路开关的地址锁存器中,从而选通8路模拟信号中的某一路。START启动转换信号输入端。从START端输入一个正脉冲,其下降沿启动ADC0809开始转换。脉冲宽度应不小于100200NS。图44ADC0809时序图EOC转换结束信号输出端。启动A/D转换时它自动变为低电平。OE输出允许端。CLK时钟输入端。ADC0809的典型时钟频率为640KHZ,转换时间约为100S。REF、REF参考电压输入端。ADC0809的参考电压为5V。VCC、GND供电电源端。ADC0809使用5V单一电源供电。当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行A/D转换,此期间START应保持低电平。在START下降沿后10US左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,为高电平时,表示转换结束。OE为低电平时,D0D7为高阻状态,OE为高电平时,允许转换结果输出。ADC0809时序图如图44。413LED数码管显示器ALED数码管显示器的结构通常使用的LED是由7个发光二极管排列成的,七段LED的阳极连在一起称为共阳极接法,而阴极接在一起的称为共阴极接法。每段LED的笔画分别称为A、B、C、D、E、F、G,另外有一段构成小数点。一位显示器数码管的结构如图45所示。A数码管结构B共阳极接法C共阴极接法图45LED数码管原理图BLED数码管显示器的工作原理在选用共阴极的LED是,只要在某一发光二极管加上高电平,该段即点亮,反之则暗。而选用共阳极的LED时,要使某一段发光二极管发亮,则需加上低电平,反之则暗,为了保护各段LED不被损坏,需要外加限流电阻。为了要显示某个字形,则应使此字形的相应段点亮,也即送一个不同的电平组合代表的数据来控制LED的显示字形,此数据称为字符的段码。数据字位数与LED段码的关系如表42。表42数据字位数与LED段码的关系常用字符共阴极、共阳极时的段码即编码表,如表43。表43常用字符显示编码表CLED显示接口电路设计数码管显示接口电路如图46所示。图46数码管显示接口电路42系统的仿真该系统是利用仿真软件PROTEUS进行仿真,PROTEUS65是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR,PIC等常用的MCU及其外围电路。但是,在仿真的时候,虽然有模数转换器ADC0809,但是在接好电路后,将程序烧录进去,却发现系统无法进行仿真,困惑许久,发现该仿真软件不支持ADC0809芯片的仿真,于是在仿真过程中我采用了相同类型的模数转换器ADC0808进行仿真工作。图47就是该系统的仿真电路图。图47系统的仿真电路图5系统的软件设计软件采用模块化程序设计方法,由主程序、显示子程序、A/D转换测量子程序等几部分组成。详细的程序源代码见附录部分。51主程序的设计整个系统上电后,启动A/D转换,待转换完毕后,系统将转换数据从P0口存入到单片机内部寄存器70H中,然后再将转换数据进行数码转换,并将转换代码存入显示缓冲区78H7AH,最后系统调用显示子程序进行电压显示,当前显示完毕进行通道转换并进行下次转换。主程序在调用显示程序和测试程序之间循环,其流程图如图51所示。开始初始化调用A/D转换子程序调用数据转换子程序调用显示子程序调用通道选择子程序结束图51主程序流程图52各子程序的设计521A/D转换子程序的设计A/D转换子程序是用来控制对ADC08098路模拟输入电压的A/D转换,其程序流程图如图52所示。开始启动ADC0809判断P371数据输入结束YN图52A/D转换子程序流程图522数据转换子程序的设计数据转换子程序是将8位转换的数字量进行BCD码转换,并将转换数据存入显示缓冲区内。程序流程图如图53所示。开始取8位转换数字量进行BCD码转换将转换数据存入显示缓冲区结束图53数据转换子程序流程图523显示子程序的设计显示子程序主要是将转换数据通过译码,然后在数码管进行显示。其程序流程图如图54所示。开始取转换数据进行译码显示译码数据结束图54显示子程序流程图524定时计数脉冲中断子程序的设计定时计数器脉冲中断子程序主要是利用定时器T0为ADC0809提供时钟脉冲。程序流程图如图55所示。开中断给TO设定初值启动计时给T0设定初值取反中断图55定时计数脉冲中断子程序6系统调试在整个系统调试的过程中,硬件和软件方面都遇到了一些问题,下面就是该设计中的问题与解决方法小结。61调试过程中出现的问题硬件电路无法在PROTEUS中进行仿真。数码管不工作。给定一个模拟量输入,无数字量产生。数码管显示杂乱。62问题的分析与解决硬件电路无法在PROTEUS中仿真主要有2个原因一、电路原理图有问题,可能在PROTEUS中接错或漏接。二、本身这个仿真软件不支持。经过分析与查阅资料,发现原理图并没有什么问题,而是PROTEUS仿真软件不提供ADC0809芯片的仿真,属于仿真软件不支持的类型。所以在后期仿真的过程中,我采用了与ADC0809功能与引脚相同的ADC0808来进行仿真工作。数码管不工作可能有以下几个原因一、电路焊接有问题,出现虚焊、漏焊或者是直接焊接错误。二、软件编程出现问题。三、数码管已经损坏。检查数码管自身是否已经损坏可直接通过万用表进行检测,经检测并未损坏,而且同时也对连接数码管的三极管和单片机的P1,P3口进行了检测,也未发现问题。最后,问题只能归结到软件编程方面,由于数码管显示采用的是动态扫描方式,直接是利用软件进行控制,所以只要软件编程出现错误,数码管相应的也就不予显示。但是,经过程序检测,也并未出现什么错误,究竟是什么原因导致数码管无法工作呢问题持续了好久,但是就在一次向同学求助的同时,总算发现了问题的所在,原来是我一直没有将程序烧录进单片机,这主要是因为没有掌握好软件仿真工具的使用方法。我使用的软件仿真软件是KEILC软件,利用它可以进行软件的编程和仿真,同时也能生成HEX文件烧录到单片机内。我的问题就出现在生成HEX文件这步,通过编译,虽然成功,但是我并没有把程序加载到生成HEX文件的目录下,导致最后生成的HEX文件是KEILC软件内部提供的芯片初始程序的HEX文件。经过修改重新烧录,数码管开始正常工作。给定一个模拟量输入,无数字量产生,主要有2个原因一、ADC0809已损坏。二、单片机没有给ADC0809的CLOCK引脚提供一个正常工作的时钟脉冲。经检查,ADC0809芯片并未出现问题,但是开启电源,测量CLOCK引脚的电平,发现电平属于不高不低的数值,在26V左右,并未处在高电平,从而导致ADC0809无法进行A/D转换。要想给CLOCK引脚提供一个时钟脉冲,按照原理图的实现方法就是利用单片机的ALE引脚提供的2MHZ的时钟脉冲经过二分频送入CLOCK引脚,但是现在却实现不了,经过老师和同学的帮助,我们又采取了另外一种方法,就是直接利用单片机的P3口给CLOCK一个方波计数脉冲,这样的话,不仅省掉了二分频器的使用,而且可以直接加一个方波计数中断处理程序就可以简单实现了。数码管显示杂乱主要有两个原因一、软件程序出现问题;二、显示接口电路出现问题。经过检查,软件程序并未出现问题,而是接口电路出现了一些问题,由于我用的LED数码显示器属于一种低功率的共阳极数码管,但是我经过三极管连接LED数码管的COM端,这样使得电流放大,导致数码管的各段都发亮,只是亮度不同。因此,不需要三极管的放大,在COM段加个限流电阻,该显示器就能显示正常。7结论经过二个多月的不断学习与设计,在指导老师的悉心指导下,我终于顺利的完成了我的毕业设计。我所设计的8路输入模拟信号数值显示器已经顺利的实现了A/D转换的功能,而且其精度也达到了要求,在实验中,对于其测量范围内的电压都能正确地测量并显示。由于时间的关系,我并没有对此设计进行扩展,这个设计还有很大的修改空间。比如可以添加一个按键电路对通道选择进行控制,可以对任意通道进行固定测量。在这次毕业设计的过程中,我的知识面得到了很大的拓展,以前在书本上看到的仅仅是理论知识,并没有用于实践,现在通过亲自动手实践,让我更加深入地理解了理论知识的内涵,明白了理论在实际中的使用方法,同时让我明白了理论与实际的差别,理论值在实际应用中的误差问题使得问题变得复杂,在处理这种复杂问题的时候,将使用到很多的知识,所以,不断地拓展自己的知识面在以后的生活中是必须的。致谢在这次毕业设计过程中,指导老师从资料的收集到硬件电路的设计、程序的编写,再到毕业设计报告的整体架构都给了我许多有益的建议。她时刻都在关注我们毕业设计的进程、督促我们抓紧时间,并适时给我们一些好的意见,这些都为毕业设计的最终成功奠定了强有力的基础。她严谨治学的态度和和蔼可亲的性格都给我留下了深刻的印象,没有张老师的悉心指导,我是不可能如此从容的完成这次毕业设计的,在此我向她表示衷心的感谢。同时,在毕业设计过程中同学之间的交流也是必不可少的,其中。给我传授了不少电子设计的经验,使我少走了不少弯路,再此对他表示感谢。参考文献1张国勋,孙海单片机原理与应用2003年北京北京航空航天大学出版社2李全利,迟荣强单片机原理及接口技术2005年北京高等教育出版社3楼然苗,李光飞51单片机设计实例2003年北京北京航空航天大学出版社4诸昌钤LED显示屏系统原理及工程技术2000年成都电子科技大学出版社5张毅刚MCS51单片机应用技术1997年哈尔滨哈尔滨工业出版社6何立民单片机高级教程2000年北京北京航天航空大学出版社附录程序清单;8路模拟数据采集显示电路;70H存放的是A/D转换的数据,78H7BH为显示缓冲区(78H7AH为数据的BCD码,7BH为通道码)ORG0000HLJMPSTARTORG000BHLJMPINT_0ORG0030HINITIAL初始化子程序,清除内部显示缓冲区及ADC0809芯片时钟脉冲初始化CLRCMOVP2,00HMOVA,00HMOVR7,0CHMOVR0,70HCLEARMOVR0,AINCR0DJNZR7,CLEARMOVTMOD,01HMOVTH0,0FFHMOVTL0,0E0HSETBEASETBET0SETBTR0RETINT_0P35为ADC0809提供系统时钟PUSHACCPUSHPSWCPLP35MOVTH0,0FFHMOVTL0,0E0HPOPPSWPOPACCRETISTARTLCALLINITIAL调用初始化子程序LOOPLCALLTEST调用测试子程序LCALLDISPLAY调用显示子程序LCALLCHANGE_CHANLE调用通道转换子程序LJMPLOOPDISPLAYMOVR0,70H显示子程序,数据处理子程序,对所测得的二进制数据进行数BCD码转换MOVA,R0MOVB,2MULABMOVR3,AMOVA,BMOVR2,ADCDTHCLRABCD码转换程序MOVR4,AMOVR5,AMOVR6,AMOVR7,16BCDCHCLRCMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,AMOVA,R6ADDCA,R6DAAMOVR6,AMOVA,R5ADDCA,R5DAAMOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,ADJNZR7,BCDCH转换完毕MOVR0,78HBCD码存储MOVA,R6ANLA,0FHMOVR0,A存储个位INCR0MOVA,R6ANLA,0F0HSWAPAMOVR0,A存储十位INCR0MOVA,R5ADDA,10MOVR0,AMOVR2,0EEHDISLOOPLCALLDISP调数码管显示DJNZR2,DISLOOPRETDISPMOVR1,78H取通道数MOVDPTR,TABLEPLAYLED显示MOVA,R1MOVCA,ADPTRMOVP1,ASETBP30LCALLDL1MSCLRP30INCR1MOVA,R1MOVCA,ADPTRMOVP1,ASETBP31LCALLDL1MSCLRP31INCR1MOVA,R1MOVCA,ADPTRMOVP1,ASETBP32LCALLDL1MSCLRP32INCR1MOVA,R1MOVCA,ADPTRMOVP1,ASETBP33LCALLDL1MSCLRP33RET标准的共阳极代码TABLEDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H带有小数点的共阳极代码DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10HDL1MSMOVR4,0200延时程序10MSD1DJNZR4,D1MOVR4,050D2DJNZR4,D2RETTEST测试子程序,进行AD转换MOVR0,70HTESTARCLRP25CLRP23CLRP24NOPNOPSETBP23SETBP24NOPNOPNOPCLRP23CLRP24NOPNOPNOPWAITJNBP37,WAITSETBP25NOPNOPNOPMOVA,P0MOVR0,ACLRP25RETCHANGE_CHANLE通道转换子程序MOVA,P2INCAJBACC4,NEXTMOVP2,AMOV7BH,AAJMPENDCHANGENEXTMOVA,00HMOVP2,AMOV7BH,AENDCHANGERETEND学校毕业设计论文任务书学生姓名指导教师职称系别专业自动化题目8路输入模拟信号数值显示器的设计任务与要求一任务设计一个8路输入模拟信号数值显示器,采用AT89C52单片机控制,由集成电路0809完成模数转换。本显示器可自动轮流显示8路输入模拟信号的数值,最小分辨率为002V,最大显示数值为255(输入为5V时),模拟输入最大值为5V,可作为数字电压表用。二要求1、熟练掌握0809模数转换的实际应用原理。2、设计硬件电路,配合软件编程,完成8路输入模拟信号数值显示的功能。3、能自动轮流显示模数转换的数值,最大显示数值为255。要求熟悉单片机系统设计,熟悉汇编语言或C语言编程,硬件电路知识扎实,具有较强的软件编程能力,要熟练掌握硬件电路的焊接技术,提高动手能力。用PROTUSE软件画出电路原理图。开始日期2007年3月19日完成日期2007年6月24日系主任签字年月日西安邮电学院毕业设计论文工作计划学生姓名指导教师职称系别专业自动化题目8路输入模拟信号数值显示器的设计_工作进程第1周319325完成知识储备,认真复习单片机知识。第2周32641查阅相关资料,了解所设计的内容,提交毕业设计开题报告。第3周4248学习PROTEUS仿真工具的使用。第4周49415初步确立系统的硬件设计。第5周416422编写相应的软件程序。第6周423429利用PROTEUS对系统进行仿真。第7周43056提供中期报告,并进行中期检查。第8周57513继续对系统进行仿真工作。第9周514520准备元器件,进行电路板的焊接工作。第10周521527开始进行系统调试。第11周52863继续调试,并准备进行后期检查。起止时间工作内容第12周64610开始撰写毕业设计论文。第13周611617完成毕业设计论文,进行毕业答辩。第14周618624登录毕业论文答辩成绩。主要参考书目资料主要参考书目资料张国勋,孙海单片机原理与应用北京北京航空航天大学出版社,2003李全利,迟荣强单片机原理及接口技术北京北京航空航天大学出版社,2003楼然苗,李光飞51单片机设计实例北京北京航空航天大学出版社,2003诸昌钤LED显示屏系统原理及工程技术成都电子科技大学出版社,2000主要仪器设备及材料1、PC机一台2、示波器一台3、数字万用表一块4、单片机集成编译环境、实验板、焊接工具5、芯片、阻容器件若干6、PROTEUS软件论文设计过程中教师的指导安排按计划书中的工作内容要求,每周两次定时指导学生设计,同时检查设计进度情况。学生有问题也可随时联系指导。对计划的说明学校毕业设计论文开题报告系专业级班课题名称8路输入模拟信号数值显示器的设计学生姓名学号指导教师报告日期2007年3月28日1本课题所涉及的问题及应用现状综述本课题所涉及的主要问题就是将8路的模拟输入信号转换成数

温馨提示

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

评论

0/150

提交评论