基于单片机数字电压表的硬件设计_第1页
基于单片机数字电压表的硬件设计_第2页
基于单片机数字电压表的硬件设计_第3页
基于单片机数字电压表的硬件设计_第4页
基于单片机数字电压表的硬件设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE3论文题目:基于单片机数字电压表的硬件设计专业:微电子学本科生:韦晓艳(签名)____指导教师:王媛彬(签名)____摘要本系统主要采用AT89C52芯片和ADC0809芯片来完成一个数字电压表设计,能够对输入的0~5V的模拟直流电压进行测量,并通过一个4位一体的8段LED数码管进行轮流显示或单路选择显示,测量误差约为0.02V。还可以与PC进行串行通信。该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89C52来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还通过P2端口控制着ADC0809芯片的模拟通道地址、A/D转换控制信号和时钟信号。显示模块主要由8段数码管组成,显示测量到的电压值。最终,该系统达到设计的目的,高精度的显示了所测量的电压值,并可以通过按键开关准确无误的轮流或单路显示8(IN0~IN7)个通道。关键词:数字电压表,单片机,A/D转换,LED数码管,数据处理Subject:Basedonsingle-chipdigitalvoltagemeterofthehardwaredesignSpecialty:MicroelectronicsName:WeiXiaoYan(Signature)____Instructor:WangYuanBin(Signature)____ABSTRACTInthesystemAT89C52chipandADC0809chiparemainlyusedtocompletethedesignofadigitalvoltagemeter,Themeasurementfromthedigitalvoltagemetercanbecarriedoutatthearrangeoftheinput0~5VanalogDCvoltage,and4throughaoneparagraph8digitaltubeLEDtaketurnstodisplaytaketurnsorone-waychoosetodisplay,themeasurementerrorisabout0.02V.ThesystemcanalsocommunicatewithPCserially.Itmainlyconsistsofthreemodules:A/Dconvertermodule,dataprocessingmoduleandthedisplaycontrolmodule.ADC0809chipisemployedforA/Dconversion,anditisresponsibleforcollectinganalogsignalandconvertingtheanalogsignaltodigitalsignalandsendsdigitaldata-processingmodule.AT89C52isthecontrollerandinchargeofdataprocessing,theADC0809isresponsiblefortransmissiontodigitalbyacertaindegreeofdataprocessing;AnalogchanneladdressofADC0809chip,A/DconversioncontrolsignalandclocksignalareallcontrolledbytheP2port.Displaymodulemainlycomposesof8digits,indicatingthevoltagevaluethatismeasured.Infinal,thedesigngoalisachieved,Thevoltagemeasuredisdisplayedaccurately.the8(IN0~IN7)channelsalternativedisplayorone-waychoicedisplaycanbecarriedoutbybuttoncorrectly.Keywords:Digitalvoltagemeter,Single-chipMicrocomputer,A/Dconverter,LEDdigitaltube,Dataprocessing前言1.研究意义在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。电学参量测量技术涉及范围广,适用于学校、工业、科研、国防等各种领域,供实验室和工业现场测试用。而且随着电子技术的发展,在数字化、智能化、科技化为主的今天。数字电压表已成为电压表设计的主要方向,在当前电压测量系统中占有非常重要的位置。更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。在电气测量中,电压是一个很重要的参数。如何准确地测量模拟信号的电压值,一直是电测仪器研究的内容之一。数字电压表是通用仪器中使用较广泛的一种测试仪器,很多电量或非电量经变化后都用可数字电压表完成测试。因此,数字电压表被广泛地应用于科研和生产测试中。2.研究现状最近十几年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的日新月异,并不断出现新的类型。

数字电压表自1952年问世以来,大致经历了五代产品。第一代是电子管数字电压表,第二代属于晶体管数字电压表,第三代是中小规模集成电路的DVM。由大规模集成电路或超大规模集成电路构成的数字电压表、智能数字电压表,分别属于第四代、第五代产品。经历了不断改进的过程,从最早采用继电器、电子管的型式发展到了现在的全固态化、集成化(IC化〕,另一方面,精度也从0.1%提高到了现在的0.01%—0.005%,而且从实验空用的高价的所谓的样品开始已发展到了现在厂矿企业广为利用的所谓的廉价型,进而出现了能够用于安装板上作指示仪表的安装型。近年来,国内许多厂家通过积极引进,吸收国外先进技术,努力赶超先进水平,现以能够大批量生产多种高、精、尖的数字电压表以及相应的标准源、校验仪。新型单片数字电压表以其高准确度、高可靠度、高分辨力、高性价比等优良特性倍受人们的青睐。本设计在分析研究和总结了单片机技术的发展历史及趋势的基础上,以实用、可靠、经济、精度高等设计原则为目标,设计出基于单片机的数字测量电压表。单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是PAGEPAGE5单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可用软件控制来实现,并能够实现智能化。由于单片机具有功能强、体积小、功耗低、价格便宜、工作可靠、使用方便等特点,因此,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。正因为单片机技术的广泛应用,使得高精度的电子测量成为可能。数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计、湿度计、酸度计、重量、厚度仪等),几乎覆盖了电子电工测量、工业测量、自动化仪表等各个领域。而且数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点。因此对数字电压表作全面深入的了解是很有必要的。3.研究内容在数字电压表的设计中,控制系统采用AT89C52单片机,A/D转换器采用ADC0809高精度、8位逐次逼近式转换电路,测量范围直流0~5伏,并在四位8段LED数码管上轮流显示或单路选择显示,可以与PC机进行串行通信。本文中该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化。系统除能确保实现要求的功能外,还可以方便地进行8路A/D转换量的测量,远程测量结果传送等扩展功能。目录TOC\o"1-3"\u第1章数字电压表 11.1电压表的发展概况 11.2数字电压表的设计背景 11.3数字电压表的特点 11.4数字仪表的发展趋势 3第2章系统硬件设计 52.1功能要求 52.2方案论证 52.2.1核心芯片的选择 52.2.2模数转换芯片的选择 52.2.3设计方案 52.3系统硬件电路的设计 6第3章系统主要硬件模块介绍 83.1AT89C52控制模块 83.1.1AT89C52的主要性能 83.1.2AT89C52的引脚结构及功能 93.2A/D转换模块 11PAGE63.2.1ADC0809的主要性能 123.2.2ADC08089的内部逻辑结构 123.2.3ADC0809的引脚 123.3LED显示模块 133.4电源电路 153.5晶振电路 153.6复位电路 16第4章单片机与PC之间的串行通信 174.1串行通信原理 174.2RS232的介绍 174.2.1主要信号线定义 184.2.2电气特性 184.2.3接口的典型应用 194.3串行通信硬件电路的实现 194.4单片机端的串行通信 194.4.1串行接口的特殊功能寄存器 204.4.2串行通信波特率的计算 24第5章系统调试及性能分析 245.1硬件的调试 245.1.1排除逻辑故障 245.1.2排除元器件失效 245.1.3排除电源故障

26PAGE7TOC\o"1-3"\u5.2单片机汇编语言的调试 245.3硬件、软件仿真调试和测试 255.4性能分析 26总结 27致谢 28参考文献 29附录 30第1章数字电压表1.1电压表的发展概况电压测量是电子测量的一个重要内容。随着电子技术的发展,对电压测量提出了一系列的要求,主要可概括为:第一应有足够宽的电压测量范围;第二应有足够高的测量准确度;第三应有足够高的输入阻抗;第四应具有高的抗干扰能力。

电压测量仪器总的可分为两大类:即模拟式和数字式的。模拟式电压表是指针式的。用磁电式电流表作为指示器,并在电流表表盘上以电压(或db)刻度。数字式电压表首先将模拟量通过模/数(A/D)变换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。模拟式电压表由于电路简单、价廉,特别是在测量高频电压时,其测量准确度不亚于数字电压表,因此,在电压测量中仍将占有重要地位。数字式电压表在近年来已成为极其精确,灵活多用的电子仪器,并且价格正在逐渐下降。数字式电压表能很好地与其它数字仪器相交接,因此在电压测量系统的发展中是非常重要的。讨论数字式电压表的主要内容可归结为电压测量的数字化方法。模拟量的数字化测量,其关键是如何把随时间作连续变化的模拟量变换成数字量,完成这种变换的电路叫模/数变换器。所以,数字式电压表可以简单理解为模/数变换。1.2数字电压表的设计背景

随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。传统的模拟电压表,已有百年的发展历史,虽然经过改进,但是仍然远远不能满足测量的需要。近几十年来随着电子技术的发展,经常需要测量高精度的电压,因此数字电压表应运而生,发展的数度很快。数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计、湿度计、酸度计、重量、厚度仪等),几乎覆盖了电子电工测量、工业测量、自动化仪表等各个领域。而且数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点。因此对数字电压表作全面深入的了解是很有必要的。1.3数字电压表的特点数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。数字电压表的特点:1.显示清晰直观,读数准确

传统的模拟式仪表必须借助于指针和刻度盘进行读数,在读数过程中不可避免的会引入人为的测量误差。数字电压表则采用先进的数显技术,使测量结果一目了然,只要仪表不发生跳读现象,测量结果就是唯一的。

新型数字电压表还增加了标志符显示功能,包括测量项目、符号单位和特殊符号、为解决DVM不能反映被测电压的连续变化过程以及变化趋势这一难题,一种“数字/模拟条图”仪表业已问世。“模拟图条”(AnalofBargraph)有双重含义:第一,被测量为模拟量;第二,利用条状图形来模拟被测量的大小及变化趋势。这类仪表将数字显示与高分辨率模拟条图显示集于一身,兼有DVM与模拟电压表之优点。智能数字电压表均带微处理器和标准接口,可配合计算机和打印机进行数据处理或自动打印,构成完整的测试系统。2.显示位数显示位数通常为31/2位、32/3位、33/4/位、41/2位、43/4位、51/2位、61/2位、71/2位、81/2位共9种。判定数字仪表的位数有两条原则:①能显示0~9所有数字的位是整数位;②分数位的数值是以最大显示值中最高位数字为分子,用满量程时最高数字作分母。例如,某数字仪表的最大显示值为1999,满量程计数值为2000,这表明该仪表有3个整数位,而分数位的分子为1,分母是2,故称之为31/2位,读作三位半。3.准确度高准确度是测量结果中系统误差与随机误差的综合。4.分辨率高数字电压表在最低电压量程上末位1个字所代表的电压值,称为仪表的分辨力,它反映仪表灵敏度的高低。分辨力随显示位数的增加而提高。分辨率是指所能显示的最小数字(零除外)与最大数字的百分比。例如31/2位DVM的分辨率为1/1999≈0.05%。需要指出,分辨力与准确度属于两个不同的观念。从测量角度看,分辨力是“虚”指标(与测量误差无关),准确度才是“实”指标(代表测量误差的大小)。5.测量范围宽多量程DVM一般可测量0~1000V直流电压,配上高压探头还可测上万伏的高压。6.扩展能力强在数字电压表的基础上,还可扩展成各种通用及专用数字仪表、数字多用表(DMM)和智能仪表,以满足不同的需要。7.测量速度快数字电压表在每秒钟内对被测电压的测量次数,叫测量速率,单位是“次/S”。它主要取决于A/D转换器的转换速率,其倒数是测量周期。8.输入阻抗高数字电压表具有很高的输入阻抗,通常为10MΩ~10000MΩ,最高可达1TΩ。9.集成度高,微功耗

新型数字电压表普遍采用CMOS大规模集成电路,整机功耗很低。10.抗干扰能力强51/2位以下的DVM大多采用积分式A/D转换器,其串模抑制比、共模抑制比各别可达100dB、80~120dB。高档DVM还采用数字滤波、浮地保护等先进技术,进一步提高了抗干扰能力,共模抑制比可达180dB。1.4数字仪表的发展趋势采用新技术、新工艺,由LSI和VLSI构成的新型数字仪表及高档智能仪器的大量问世,标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。新型数字仪表的发展主要有五个方向:

1.广泛采用新技术,不断开发新产品

2.向模块化发展

新一代数字仪表正朝着标准模块化的方向发展。预计在不久的将来,许多数字仪表将由标准化、通用化、系列化的模块所构成,给电路设计和安装调试、维修带来极大方便。表面安装技术(SMT)和表面安装元器件(SMD)将获得普遍应用。这项技术被誉为世界电子工艺技术的一项重要突破。所谓表面安装是将微型化的表面安装集成电路(SMIC)和表面安装元件,用粘贴工艺直接安装在印刷板上,再用波峰焊接机焊接,由此取代传统的打孔焊接工艺,使印刷板安装密度大为增加,可靠性得到明显提高。

3.多重显示仪表

为彻底解决数字仪表不便于观察连续变化量的技术难题,“数字/模拟条图”双显示仪表已成为国际流行款式,它兼有数字仪表准确度高、模拟式仪表便于观察被测量的变化过程及变化趋势的两大优点。模拟条图大致分成三类:①液晶(LCD)条图,呈断续的条状,这种显示器的分辨力高、微功耗,体积小,低压驱动,适于电池供电的小型化仪表。②等离子体(PDP)光柱显示器,其优点是自身发光,亮度高,显示清晰,观察距离远,分辨力较高,缺点是驱动电压高,耗电较大。③LED光柱,它是又多只发光二极管排列而成。这种显示器的亮度高,成本低,但象素尺寸较大,功耗高,驱动电路复杂。4.安全性仪器仪表在设计和使用中的安全性,对于生产厂家和广大用户都是至关重要的问题。一方面厂家必须为仪表设计安全保护电路,并使之符合国际标准(例如美国UL认证,欧洲GS认证,ISO9001国际标准质量认证);另一方面用户必须安全操作,时刻注意仪表上的各种安全警告指示。仪表的保护电路在于最大限度的减小或防止因误操作而造成的危害。以DMM为例,常见的误操作是用电流档或电阻档去测量电压。5.操作简单化

第2章系统硬件设计2.1功能要求数字电压表可以测量0~5V的输入电压值,并在四位LED数码管上轮流显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为0.02V。2.2方案论证2.2.1核心芯片的选择AT89C52单片机价格低廉,输入输出口丰富,无需再另外扩展,简化了外围电路。256B内部RAM,8kB内部ROM,程序存储空间大,防止由于字模过多而造成存储空间不够。另外由于前期开发需要多次的写入、擦除,而89C52可以完成1000次写/擦,故满足要求。2.2.2模数转换芯片的选择ADC0809是8位的A/D转换芯片,为逐次逼近型。由单一的+5V电源供电,片内带有所存功能的8路模拟多路开关,可对8路0~5V的输入模拟电压信号分时进行转换,完成一次转换约需100μs;片内的地址译码和锁存电路,将单片机的三条地址信号译码生成选择八路模拟通道。输出具有TTL三态锁存缓冲器,可以直接接到单片机的数据线上。2.2.3设计方案按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809.系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送的扩展功能。实验证明,采用AT89C52开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点。数字电压表系统设计方案框图如图2-1所示:图2-1数字电压表系统设计方案2.3系统硬件电路的设计数字电压测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图2-2所示。A/D转换由集成电路0809完成。0809具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2S宽高电平脉冲时,就开始A/D转换。7脚为转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0809的时钟输入端。单片机P1、P3.2~P3.5的端口作为四位数码管显示控制;P3.0端口用作串行口输入端,P3.1端口用作串行口输出端;P2.6端口用作单路显示/循环显示转换按钮,P2.7端口用作单路显示时选择通道;P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。图2-2数字电压表电路原理图第3章系统主要硬件模块介绍本系统主要包括三大模块:AT89C52控制模块、A/D转换模块、LED显示模块。这三大模块的共同作用最后完成数字电压表的设计。3.1AT89C52控制模块控制模块是由AT89C52单片机来实现数据的处理和控制的。AT89C52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C52此外,AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬复位,同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3.1.1AT89C52的主要性能AT89C52具有如下特点:与MCS_51产品兼容;具有8K字节可在系统编程的Flash内部程序存储器,可擦/写100次;4.0V~5.5V的工作电压范围;全静态操作:0HZ~24MHZ;三级程序存储器加密;256×8bit内部RAM;32根可编程I/O线;三个16位定时器/计数器;8个中断源;全双工异步串行通信通道;低功耗空闲和掉电保护;通过中断中止掉电方式;看门狗定时器;两个数据指针;时钟频率0~33MHZ;全双工UART串行中断口线;(17)灵活的ISP字节和分页编程。3.1.2AT89C52的引脚结构及功能(1)AT89C52引脚结构图如下图3-1所示:图3-1AT89C52引脚结构图(2)此设计用到的主要管脚及功能XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3-1所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。表3-1P3口第2功能表引脚第2功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2(外部中断0输入端)P3.3(外部中断1输入端)P3.4T0(定时计数器0输入端)P3.5T1(定时计数器1输入端)P3.6(外部数据存储器写选通信号输出端)P3.7(外部数据存储器读选通信号输出端)下面对此系统要用到的功能进行简单的描述:存储结构介绍:1.程序存储器如果引脚接地,系统寻址外部程序存储器。对于AT89S52,如果引脚接至VCC,CPU。执行内部存储器0000H到1FFFH的程序,外部程序存储器寻址空间为2000H到FFFFH。2.数据存储器 AT89C52具有256字节的片内RAM。高128字节与专用寄存器地址空间重叠,亦即高128字节与专用寄存器空间有相同的地址,而物理上与专用寄存器是分开的。若采用直接寻址方式,则是访问特殊功能寄存器;若采用间接寻址方式,则是访问高128字节的RAM。堆栈操作也是间接寻址,所以,高128字节的数据RAM中断介绍:AT89C52共有6个中断源:两个外部中断,三个定时器中断(T0、T1、T2)和一个串行口中断。通过专用寄存器IE置位或清0,可分别控制这些中断源中每一个允许或禁止中断。IE也有一个总禁止位EA中断请求源:外部中断请求源:即外中断0和1,经由外部管脚引入的,在单片机上有两个管脚,名称为INT0、INT1,也就是P3.2、P3.3这两个管脚。在内部的TCON中有四位是与外中断有关的。IT0:INT0触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。这两种方式的差异将在以后再谈。IE0:INT0中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。IT1、IE1的用途和IT0、IE0相同。中断响应过程:(1)中断响应的条件:MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是“1”,如果是1,就说明有中断请求了,下列三种情况之一时,CPU将封锁对中断的响应:CPU正在处理一个同级或更高级别的中断请求。现行的机器周期不是当前正执行指令的最后一个周期。当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。当前正执行的指令是返回批令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才能响应中断。(2)在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。中断得到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要用软件清除),将断点即程序计数器之值(PC)压入堆栈(以备恢复用);然后把相应的中断入口地址装入PC,使程序转入到相应的中断服务程序中去执行。各个中断源在程序存储器中的中断入口地址如下:

中断源入口地址

INT0(外部中断0)0003H

TF0(TO中断)000BH

INT1(外部中断1)0013H(此中断口为本系统所用到的中断口)

TF1(T1中断)001BH

RI/TI(串行口中断)0023H3.2A/D转换模块A/D转换模块是由ADC0809芯片来完成的。ADC0809芯片是典型的8位8通道逐次逼近式A/D转换器,采用CMOS工艺制造。3.2.1ADC0809的主要性能:(1)8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。(2)带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。(3)输出具有三态锁存功能。(4)分辨率:8位,转换时间:100μs。(5)不可调误差:±1LBS,功耗:15mW。(6)工作电压:+5V,参考电压标准值+5V。(7)片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。3.2.2ADC08089的内部逻辑结构ADC0809的内部逻辑结构如图3-2(a)所示。图(a)中多路模拟量开关可选通8个模拟通道,允许8路模拟量分时输入,并公用1个A/D转换器进行转换。ADC0809的内部结构:ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。3.2.3ADC0809的引脚ADC0809芯片为28引脚双列直插式封装,其引脚排列见图3-2(b)所示。IN7~IN0:模拟量输入通道。0809对输入模拟量的要求主要有:信号单极性、电压范围0~5V、若输入信号过小还需进行放大。另外,模拟量输入在A/D转换过程中其值不应变化,而对变化速度快的模拟量,在输入前应增加采样保持电路。ADDA、ADDB、ADDC:模拟通道地址线。这3根地址线用于对模拟通道进行选择,ADDA为低位地址,ADDC为高位地址。ALE:地址锁存信号。对应于ALE上跳沿时,ADDA、ADDB、ADDC地址状态送入地址锁存器中。START:转换启动信号。在START信号上跳沿时,所有内部寄存器清0;在START下跳沿时,开始进行A/D转换。在A/D转换期间,START信号应保持低电平。该信号可简写为ST。D7~D0:数据输出线。该数据输出线为三太缓冲输出形式,可以和单片机的数据总线直接相连。OE:输出允许信号。它用于控制三太输出锁存器向单片机输出转换后的数据。OE=0时输出数据线呈高阻状态;OE=1时输出允许。CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号有外界提供,通常使用频率微500KHZ的时钟信号。EOC:转换结束状态信号。当EOC=0时,表示正在进行转换;EOC=1时,表示转换结束。实际使用中该状态信号即可作为查询的状态标志,还可作为中断请求信号使用。(a)ADC0809的内部逻辑结构图(b)ADC0809的引脚图图3-2LED显示模块LED数码显示模块是由8段共阳的LED数码管来显示电压值和通道的。LED数码显示器是一种由LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中七个用于显示字符,一个用于显示小数点,故通常称为7段(也有称作8段)发光二极管数码显示器。其内部结构图3-3所示:图3-3LED数码管结构图LED显示器的扩展(结构)单片机系统扩展LED数码管时多用共阳LED:共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻。LED数码管分类:(1)按其内部结构可分为共阴型和共阳型;(2)按其外形尺寸有多种形式,使用较多的是0.5"和0.8";(3)按显示颜色也有多种形式,主要有红色和绿色;(4)按亮度强弱可分为超亮、高亮和普亮。正向压降一般为1.5~2V,额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示,可加大脉冲电流,但一般不超过40mA。共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地,每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。显示数转换为显示字段码的步骤:[1]从显示数中分离出显示的每一位数字方法是将显示数除以十进制的权。[2]将分离出的显示数字转换为显示字段码的方法是查表。在本次设计中,就采用的是共阳极接法。下面在简单介绍本设计中所用到的电源电路、晶振电路以及复位电路。3.4电源电路众所皆知,电源电路设计,乃是在整体电路设计中最基础的必备功夫。可以说,有电器的地方就有电源。所有的电子齐备都离不开可靠的电源为其供电。现代电子设备中的电路使用了大量半导体器件,这些半导体器件需要几伏到几十伏的直流供电,以便得到正常工作所必需的能源。这些直流电源有的属于化学电源,如采用交流电源经过变压、整流、滤波、稳压等变换为所需的直流电压。完成这种变换任务的电源称为直流稳压电源。本设计涉及的就是这类电源。它是通过变压器(直流稳压电压)提供一个5V的电源电压。3.5晶振电路晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。因价格等因素,实际应用中多采用无源晶振设计的电路居多,除非电路设计时序极其敏感或芯片内部无振荡器的情况(如一些型号的DSP或精密仪器中)。51开发板晶振采用的是单片机通用的11.0592M的无源晶振,输出时钟到单片机P18和P19。其电路图如下图3-4所示:图3-4晶振电路3.6复位电路一个芯片,尤其是可编程芯片,通常在上电的瞬间需要一个短暂的时间进行内部参数的初始化,这个时候芯片无法立即进入工作状态。通常称上电初始化这些工作为复位,完成这个功能的电路称之为复位电路。MCS—51单片机在时钟电路工作以后,在RST端持续给出2个机器周期的高电平就可以完成复位操作(一般复位正脉冲宽度大于10ms)。复位分为上电复位和外部复位两种方式。上电复位是在单片机接通电源时,对单片机的复位。上电复位电路如图3-5所示。在上电瞬间RST端与Vcc电位相同,随着电容上电压的逐渐上升,RST端电位逐渐下降。上电复位所需的最短时间是振荡器振荡建立时间加2个机器周期。复位电路的阻容参数通常由实验调,在RST端提供足够的高电平脉冲,使单片机能够可靠地上电自动复位。图3-5上电复位电路在该系统设计中用的就是上电复位电路,高电平有效。第4章单片机与PC之间的串行通信4.1串行通信原理所谓“串行通信”是指外设和计算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。相比之下,由于高速率的要求,处于计算机内部的CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位(bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。串行通信有三种通信方式:单工、半双工、全双工。串行端口的本质功能是作为CPU和串行设备间的编码转换器.当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据,在Windows环境(WindowsNT、Win98、Windows2000)下,串口是系统资源的一部分。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。4.2RS232的介绍一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座。25芯和9芯的主要信号线相同。以下的介绍是以9芯的RS-232C为例。设计中采用了9芯的。MAX232的引脚图如图4-1所示:图4-1MAX232引脚图4.2.1主要信号线定义:引脚1:保护地;引脚2:发送数据TXD;引脚3:接收数据RXD;引脚4:请求发送RTS;引脚5:清除发送CTS;引脚6:数据设备就绪DSR;引脚7:信号地;引脚8:数据载波检测DCD;4.2.2电气特性:数据传输速率最大可到20Kbps,最大距离仅15m.注:看了微软的MSDN6.0,其WindowsAPI中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通讯设备?但不管怎样,一般主机和单片机的串口通讯大多都在9600bps,可以满足通讯需求。4.2.3接口的典型应用:大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线。(当然,在程序中也需要对相应的信号线进行设置。)

图4-2单片机与计算机的连接以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行检测或设置。)4.3串行通信硬件电路的实现一般说来,计算机都有一个或多个串行端口,他们依次为COM1、COM2,……这些串口还提供了外部设备与PC机进行数据传输和通信的通道,这些串口在CPU和外设之间充当解释器的角色。当字符数据从计算机发送给外设时,这些字符数据将被转换为比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU。单片机串口输入输出电平为TTL电平,而计算机串口符合RS232C串行总线标准,采用的是负逻辑,逻辑“1”为-5V~-15V,逻辑0为+5V~+15V。这两种电平是不一样的,因此不能直接连在一起,在本设计中,采用了电平转换芯片MAX232来实现了单片机电平与RS232电平之间的统一。4.4单片机端的串行通信单片机AT89C52内部有一个功能很强的全双工串行口,可以同时发送和接收数据,它有四种工作方式可供不同场合使用。波特率由软件设置,通过片内的定时/计数器产生。接收和发送均可工作在查询方式或中断方式。串行口有两个独立的接收、发送缓冲器SBUF(属于特殊功能寄存器)。一个用作发送,一个用于接收,发送缓冲器只能写入不能读出,接受缓冲器只能读出不能写入,两者共用一个字节地址99H。在发送数据时,CPU由一条写发送缓冲区的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,然后从TXD端1位1位地向外发送。与此同时,接收端RXD也可1位1位地接收数据,直到接收到一个完整的字符数据后通知CPU,再用一条指令把接收缓冲器SBUF(收)的内容读入累加器。4.4.1串行接口的特殊功能寄存器(1)串行口数据缓冲器SBUFSBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,两个缓冲器共用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。CPU写SBUF就是修改发送缓冲器;读SBUF就是读接收缓冲器,串行口对外也有两条独立的收发信号线RXD(P3.0)和TXD(P3.1)。因此可以同时发送、接收数据,实现全双工传送。(2)串行口控制寄存器SCONSCON寄存器用来控制串行口的工作方式和状态,它可以是位寻址。在复位时所有位被清零,字节地址为98H,SCON的格式如图4-3所示。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI98H图4-3SCON格式(3)特殊功能寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H不能为寻址,其格式如图4-4所示。D7D6D5D4D3D2D1D0SMODGF1GF0PDIDL87H图4-4PCON格式在HMOS单片机中,该寄存器除最高位外,其它位都是虚设的。最高位SMOD为串行口波特率选择位,当SMOD=1,方式1、2、3的波特率加倍;当SMOD=0时,系统复位。AT89C51的串行端口有4种工作方式,通过编程设计,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1主要用于双机之间或外设电路的通信;方式2、3除有方式1的功能外,还可用作多机通信,以构成多微机系统,方式2、3的区别在于波特率的不同。串行口有四种工作方式,它是由SCON中的SM0、SM1来定义的如下表4-1所示:表4-1SM0SM1工作方式方式简单描述波特率000移位寄存器I/O主振频率/120118位UART可变1029位UART主振频率/32或主振频率/641139位UART可变串行通信的波特率可以程控设定,在不同的工作方式下,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定。

单片机的串行端口有2个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率以及中断标志TI和RI。

串行端口有1个数据寄存器SBUF,该寄存器为发送和接收所共有,在一定条件下,向SBUF写入数据就启动了发送过程,读SBUF就启动了接收过程。

单片机可以采用循环方式或中断方式实现串行数据的传送。在循环方式下,单片机循环对数据寄存器SBUF进行读写来实现数据的接收和发送;在中断方式下,对方式1、2来说,1帧数据发送或接收完后,TI/RI自动置1,请求串行中断,若CPU响应中断,则执行串行中断服务程序,并把TI/RI清0以再次响应中断。对在方式2、3下的接收,还要视串口控制寄存器SCON的设置才可确定RI是否被置位以及串口中断是否开放。

实时控制中,由于事件的突发性,常采用中断的方式进行数据传送,中断方式能更大限度地提高资源的利用率,使CPU在不进行数据通信时做其他的工作。下面重点介绍单片机在方式1下的中断方式编程。

方式1是10位异步通信方式,其中包括1个起始位,8个数据位和1个停止位。波特率由定时器T1的溢出率和串口控制寄存器SMOD的状态确定,在CPU的晶振为11.0592MHz时,波特率常采用9600b/s。

对SBUF进行写操作就可启动发送,在发送移位时钟的同步下,从TXD先送出起始位,然后是8位数据位,最后是停止位,这样,1帧数据发送完,中断标志TI置位。

在允许接收的条件下(REN=1),当RXD出现由1到0的负跳变时,即被当成是串行发送来的1帧数据的起始位,从而启动1次接收过程。当8位数据接收完,并检测到高电平停止位后,即把收到的8位数据装入SBUF,置位RI,1帧数据的接收过程就完成了。

设计中单片机是以方式1在直接传送下的中断接收和发送程序。由于没有使用通信握手,所以通信双方都应做好通信准备。在计算机发送、单片机接收时,计算机发送1帧数据,单片机响应中断,接收数据。4.4.2串行通信波特率的计算串行通信的四种工作方式对应着3种波特率。方式0,为单片机时钟的十二分之一,即fosc/12方式2,波特率由两种可供选择,即fosc/32和fosc/64。对应于以下公式:波特率=fosc*2smod/64方式1和方式3,波特率由定时器T1的溢出率决定,对应于以下公式:波特率=(2smod/32)*(定时器T1的溢出率)而定时器T1的溢出率则和所采用的定时器的工作方式有关,并可用下面的公式计算:定时器T1的溢出率=fosc/12*(2n-X)其中X为定时器T1的计数初值,n为定时器T1的位数,对定时器方式0,取n=13;对定时器方式1,取n=16;对定时器方式2、3,取n=8;对设计中川口初始化设置的计算如下:单片机的时钟采用12M的晶振,定时器T1采用工作方式2,串行通信采用方式1,波特率选用2400。取SMOD=0,则定时器T1的溢出率=波特率*32/2smod=2400*32/20=76800计数初值X=2n-(fosc/T1的溢出率*12)=28-(12*106/76800*12)=243=F3H特殊寄存器的初值的确定:对于SCON,SM0、SM1=01时为方式1,在SM2=0和REN=1的条件下,允许接收数据,其余各位均取0则:SCON=01010000B=50H对于PCON:由于SMOD=0,所以PCON=00H对于TMOD:由于只用T1,且为定时方式2,所以TMOD=00100000=20H第5章系统调试及性能分析单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段。5.1硬件的调试5.1.1排除逻辑故障

这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。经过检查,发现与P1口相连的8个排阻和LED数码管的8个管脚未一一对应起来。此外,应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路等故障。为了保护芯片,先对各管座的电位进行检查,确定其无误后再插入芯片检查。必要时利用数字万用表的短路测试功能,可以缩短排错时间。

5.1.2排除元器件失效

造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。通过检查,发现电解电容买来就已坏了,因为它是在复位电路里的,所以到最后达不到复位的效果。5.1.3排除电源故障

在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。

5.2单片机汇编语言的调试新学习了单片机的汇编语言的编译软件Keil,在Keil软件的环境下,进行了如下的操作:新建工程选择芯片AT89C52新建文件加载程序保存.asm文件编译调试改错编译通过生成.HEX文件在Keil软件的编译环境下,在程序调试的过程中,利用调试工具,再单步运行和全速运行的情况下察看各寄存器和各存储单元地址的值。最后,把修改后的程序生成.Hex文件之后烧入控制芯片AT89C52后便可以进行整个系统的调试了。5.3硬件、软件仿真调试和测试经过硬件、软件单独调试后,即可进入硬件、软件联合仿真调试阶段,找出硬件、软件之间不相匹配的地方,反复修改和调试。在仿真调试时,发现数码管的显示有问题,通道显示很正常,但是电压显示不是很正常,刚上电时,电压值应该是全零,但是它显示的却有电压值,而且电压在1V~3V之间变动,不过,用它测电压还是挺精确的。在这种情况下,硬件和软件都可能有错误。因此,我再次检查电路板是否还有错误,经过一一排查,硬件没问题。就只有检查程序了,最后发现在编写复位时没有全部清零。修改后再次烧入程序,数字电压表显示很正常。采用keil软件进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧好程序后进行软硬件联调,最后进行端口电压的对比测试,测试对比表见表5-1所示,图中标准电压值采用数字万用表测得。表5-1该数字电压表与“标准”数字电压表对比测试值标准值/V0.000.150.851.001.251.982.65测得值/V0.000.170.861.021.262.002.66绝对误差/V0.00+0.02+0.01+0.02+0.01+0.02+0.01标准值/V3.003.453.554.004.504.704.90测得值/V3.013.473.564.014.524.724.92绝对误差/V+0.01+0.02+0.01+0.01+0.02+0.02+0.02从表中可以看出,该数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可完全满足要求。5.4性能分析●该电压表的最大分辨率(精度)只能达到0.0196V。测试时电压数

温馨提示

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

评论

0/150

提交评论