应用电子毕业设计论文基于AT89S51单片机的智能型数字式多用表

上传人:仙*** 文档编号:78042568 上传时间:2022-04-21 格式:DOC 页数:34 大小:741.50KB
返回 下载 相关 举报
应用电子毕业设计论文基于AT89S51单片机的智能型数字式多用表_第1页
第1页 / 共34页
应用电子毕业设计论文基于AT89S51单片机的智能型数字式多用表_第2页
第2页 / 共34页
应用电子毕业设计论文基于AT89S51单片机的智能型数字式多用表_第3页
第3页 / 共34页
点击查看更多>>
资源描述
届普通本科毕业论文(设计) 存档编号: 毕业论文(设计)智能数字万用表设计专 业: 应用电子技术 院 系: 航空电子电气工程系 年 级:电子0901 学 号:200900041008 姓 名: 指导教师: 目 录摘要3ABSTRACT3文献综述3第1章 前 言61.1 数字万用表简介61.2 单片机发展与应用7第2章 智能型数字式多用表设计原理72.1 系统设计方框图82.2 系统设计方案8第3章 智能型数字式多用表硬件设计83.1 A/D转换电路83.2 直流电压测量电路103.3 交流/直流转换电路123.4 电流/电压转换电路133.5 电阻/电压转换电路143.6 单片机控制与显示电路143.7自动量程转换模块15第4章 智能型数字式多用表软件设计164.1 程序流程图164.2 程序源代码17第5章智能型数字式多用表系统测试175.1 直流电压测试175.2 交流电压测试175.3 直流电流测试185.4 电阻测试19结束语19致谢词23参考文献23附 录25附录A:整机硬件电路图25附录B:程序源代码26摘要 本文介绍一种基于AT89S51单片机的智能型数字式多用表,该系统采用MC144333 1/2位A/D转换器和LED数码显示,可以测量直流电压、交流电压、直流电流和电阻,并且具有键盘选择测量对象、量程和自动量程转换功能。关键词:A/D转换器,单片机,转换电路,模拟开关AbstractThis paper presents a AT89S51 MCU-based intelligent digital multimeter, the system uses the MC14433 - 3 1/2 bit A/D converter and LED digital display, can measure DC voltage, AC voltage, DC current and resistance, and has a keyboard to choose measurement object, measurement range and automatic range conversion functions.Key Words: A/D converter,SCM,converting circuit,analog switch文献综述 我选择的课题是智能数字万用表,为了实现这个系统的功能,我查阅了大量的文献资料。这些资料主要分为三类:一类是芯片说明书,一类是数字万用表的设计分析,一类是数字万用表的扩展功能。1数字万用表(DMM)背景简介 自从1977年世界上首台手持式数字万用表问世以来,研究者在万用表的功能和设计上不断创新,新品迭出。 数字万用表是电测技术中的一种常用仪表,它把电子技术、计算技术、自动化技术的成果和电测技术结合在一起,以其操作方便、读数准确、体积小巧、携带方便等优点成为现代测量中不可缺少的仪器,它可以测量直流电流、交流电流、直流电压、交流电压、电阻、电容、二极管的正向压降等,正在许多领域取代模拟式(即指针式)万用表。具有使用方便、灵敏度高、测量速度快、量程宽、过载能力强、输人阻抗高、指示值具有客观性(不存在视觉误差)、扩展能力强等优点。2.数字万用表设计分析本设计可以分为直流电压测量电路;交流/直流转换电路;电流/电压转换电路;电阻/电压转换电路;功能控制和数据显示电路这五个的主要电路模块。在设计各个模块时,文献中有很多不同的方法,我仔细研究了资料中述说的方法,并自己加以改进,设计出可行方案,通过在实践中检验,在老师的指导下加以改进以达到设计任务书中的要求。在设计直流电压测量电路时,我利用华成英、童诗白 主编,模拟电子技术基础(第四版)M.高等教育出版社,2006年第325页所介绍的反相比例运算电路,加上自己设计的四选一模拟开关,组成了一个直流电压测量电路。但该电路在实践中存在问题,不能实现预期的结果。在老师的指导下,我将该电路做了适当的修改,改为由电阻、模拟开关和运放组成放大倍数可调的比例电路,从而达到了任务书的要求。在设计A/D 转换器时,余孟尝 主编,数字电子技术基础简明教程(第二版) 北京:高等教育出版社1999(2006重印)第400页至第410页讲述了三种A/D 转换器,但该书只是以基本逻辑电路讲述了A/D 转换器的基本工作原理,及其转换过程,并未介绍如何利用具体的芯片设计A/D 转换器。为此,我又查阅了黄海萍、陈用昌 编 微机原理与接口技术实验指导M.北京:国防工业出版社,2004年,杨立、邓振杰、荆淑霞 微型计算机原理与接口技术M.中国铁道出版社,2006年及 1/2位数字电压表。但是ICL7106是以静态方式驱动LCD转换器,无BCD码输出端,因此不能直接获得降量程信号。而MC14433采用动态扫描显示,有多路调制的BCD码输出端和超量程信号输出端,便于与单片机相连构成智能控制系统。我最终确定采用MC14433设计A/D 转换器,并成功的在实践中完成了任务书的要求。由于无论是指针式万用表还是普通的真有效值或平均值响应的数字万用表,其交流电压档的频率特性都较差,一般只能测量几十赫兹到几千赫兹的低频电压。但设计任务书在频率特性方面要求并不高,为简单起见,在我的系统中,并未采取特别的提高频率特性的措施。但在查阅万用表频率特性改善方法王翠珍 唐金元,海军航空工程学院青岛分院 山东青岛 一文中,我发现对于指针式万用表造成频率特性较差的原因主要是万用表的分压电阻采用精密电阻器,其本身的分布电容较大,在对高频电压信号进行测量时,由于分布电容的容抗大为减少使得测量值明显低于实际电压值,而对于数字万用表除上述原因以外,另一主要原因是受平均值响应,转换器本身频率特性的限制。但此缺陷可通过采用宽频带运算放大器加以改善。因此,消除分压电阻器分布电容的影响就可以提高万用表工作频率的上限,大大改善其频率特性。虽然在我的设计中,没有用到这一方法,但这个发现无疑仍是具有很高实用价值的。 3万用表的功能扩展: 随着科技的发展,更多的创新将应用在万用表上,在查阅这些资料时,我大开眼界。数字万用表增加测温功能辽宁 薛福连 介绍了一种将一只温度传感器LM35D,与一块976130型数宇万用表连接的方法,使数字万用表即成为一台精密的数显式温度测量仪,测量温度范围为0-100摄氏度,温度误差与标准温度计相比不大于士0.5摄氏度。宁夏电力2008年第1期数字万用表的扩展应, 政.马 龙 (宁夏银南供电局,吴忠市 751100) 介绍了利用数字万用表进行二次交流电压相序的测量和音频通道电压电平的测量。语音数字万用表的单片机实现 吴 宁 (安徽机械工业学校, 安徽 淮南 232052)介绍了利用数字万用表里的单片机,设计自动语音播放单元,提高仪表的智能化的简单方法。为数字万用表增加磁悬挂功能湖南 易永丰介绍的增加磁悬挂功能也颇为新奇易用。4小结由于条件有限,我的毕业设计里并未将数字智能万用表做的很复杂,在认真研究整理手头的文献,并在实验室进行实践操作后,我设计出了一个满足设计任务书要求的数字智能万用表。该系统采用MC144333 1/2位A/D转换器和LED数码显示,以A/D转换器(MC14433)为核心,设计一个多档的直流电压测量电路,再在此基础上对电路进行扩展,使其能多量程的测量交流电压、直流电流和电阻的测量电路。然后通过单片机(AT89S51)编程对各个主要模块的进行智能控制和数据处理,实现对直流电压、交流电压、直流电流和电阻测量对象切换;具有键盘选择测量对象、量程和自动量程转换功能手动和自动量程转换等功能,并将测量数据转换为人们日常习惯的十进制数字形式显示在LED显示器上。第1章 前 言1.1 数字万用表简介数字万用表(DMM)亦称数字多用表,是目前在电子检测及维修工作中最常用、最得力的一种工具类数字仪表。它采用的数字化测量技术,通过对连续的模拟量(直流输入电压)的采样将其转换成不连续、离散的数字量,并以十进制数字形式显示出来。由于内部采用了运放电路,内阻可以做得很大,往往在1M欧或更大(即可以得到更高的灵敏度)。这使得对被测电路的影响可以更小,测量精度较高。传统的指针式万用表功能单一、精度低,已经不能满足数字化时代的需求,而采用单片A/D转换器构成的数字万用表,具有读数方便、精度高,测试功能强、集成度高、微功耗、抗干扰能力强等特点,另外带有单片机的智能型数字万用表更是具有自动校准,自动测量,自动数据处理和实时通讯等多种功能。目前,数字万用表已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DMM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。1.2 单片机发展与应用早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列 单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的 应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。 单片机比专用处理器更适合应用于嵌入式系统, 因此它得到了最多的应用。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、 家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有单片机。事实上单片机是世界上数量最多的计算机。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。第2章 智能型数字式多用表设计原理2.1 系统设计方框图 系统测量时,单片机与控制电路控制输入电路进行功能转换,将输入信号转换为符合A/D转换器的输入信号,然后A/D转换器将其输出数据传送到单片机,单片机对数据进行智能处理,最后显示在LED显示器上。图2.1 系统设计方框图2.2 系统设计方案首先以A/D转换器(MC14433)为核心,设计一个多档的直流电压测量电路,再在此基础上对电路进行扩展,使其能多量程的测量交流电压、直流电流和电阻的测量电路。然后通过单片机(AT89S51)编程对各个主要模块的进行智能控制和数据处理,实现对直流电压、交流电压、直流电流和电阻测量对象切换;手动和自动量程转换等功能,并将测量数据转换为人们日常习惯的十进制数字形式显示在LED显示器上。所以本设计可以分为直流电压测量电路;交流/直流转换电路;电流/电压转换电路;电阻/电压转换电路;功能控制和数据显示电路这五个的主要电路模块。第3章 智能型数字式多用表硬件设计3.1 A/D转换电路A/D 转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。所以我依据设计性能指标要求,并综合A/D转换器的性能指标和价格选择了ICL7106和MC14433这两个A/D转换器作为候选芯片。ICL7106的输入阻抗为1010,转换速率为0.1-15次/s,转换准确度为0.05%1个字;MC14433的输入阻抗为109,转换速率为3-10次/s,转换准确度为0.05%1个字,因此这两块芯片的性能指标大大超过设计要求的性能指标。方案一:采用ICL7106。ICL7106是CMOS大规模集成电路芯片,它将模拟电路与数字电路集成在一个有40个功能端的电路内,所以只需外接少量元件就可组成一个3 1/2位数字电压表。但是ICL7106是以静态方式驱动LCD转换器,无BCD码输出端,因此不能直接获得降量程信号。方案二:采用MC14433。MC14433是一个低功耗3 1/2位双积分式A/D转换器,与ICL7106相比,MC14433采用动态扫描显示,有多路调制的BCD码输出端和超量程信号输出端,便于与单片机相连构成智能控制系统。鉴于此,采用方案二。MC14433是美国摩托罗拉(Motorola)公司生产的COMS单片3 1/2位A/D转换器,也是目前国内外数字式多用表中普遍采用的一种芯片。MC14433的主要特点:(1) 工作电压为4.5-8V。一般选典型值5V,工作电流小于2mA,功耗为8mW。(2) 输入阻抗为109,转换速率为3-10次/s,转换准确度为0.05%1个字。(3) 采用CMOS工艺制成的大规模集成电路(LSI)。(4) 芯片内部设有时钟振荡器,使用时仅需外接一只振荡电阻。亦可采用外部时钟输入方式,时钟频率范围大约为48kHz-160kHz。(5) 有多路调制的BCD码输出,可直接配微型计算机或打印机。(6) 具有超量程、欠量程指示信号,便于实现自动量程转换。(7) 能增加读数保持功能。(8) 采用动态扫描显示方式。如图3.1所示,MC1403提供输出可调基准电压Vref(大小为2V),被测信号(0-2V的直流电压)从MC14433的Vin引脚输入A/D转换器MC14433,每次当A/D转换结束时,MC14433的EOC引脚会输出一个高电平脉冲送给单片机,然后单片机会对MC14433的DS1-DS4引脚进行动态扫描,读取MC14433的Q0-Q3引脚的数据。A/D转换相关理论推导:双积分过程可以由下面的式子表示:图3.1 A/D转换电路图 因为,故,式中=4000,是定时时间,是变时间,由确定斜率,若用时钟脉冲数N来表示时间,则被测电压就转换成了相应的脉冲数,实现了A/D转换。 的参数计算: (式1)式中为积分电容上充电电压具有自动调零和自动转换极性功能。幅度,=,且=0.5V, =4000。假定=0.1,=5V,=66kHz。当=2V时,代入式1,可得=480 ,取标称值470。3.2 直流电压测量电路 如图3.2.1所示,被测电压(0-200V)从DC V端输入,通过单片机控制模拟开关CD4052选择相应的量程,将被测电压值衰减到0-200mV,然后在经过由精密运算放大器OP07组成的放大电路,将电压值放大10倍后输入到A/D转换器MC14433的Vin端。分压电阻采用误差为0.5%的精密金属膜电阻。图3.2.1 直流电压测量电路在实践中采用该方案时,若输入信号小于正5伏,结果正确,但是当输入信号大于正5伏时,模拟开关CD4052和集成运放OP07CP均工作不正常。向老师请教后,得知该方案中,输入信号不经过任何衰竭直接加在模拟开关的1脚,使模拟开关处于不受保护的状态,当输入信号为大信号时,可能会使模拟开关工作不正常,甚至烧毁模拟开关,且模拟开关与运放直接相连,导致运放处于不受保护的工作状态。为了解决这些问题,我修改了设计电路。如下图3.2.2所示,该电路输入信号经过100千欧的电阻,从集成运放的反相输入端输入,由电阻、模拟开关和运放组成放大倍数可调的比例电路,并且这个100千欧的电阻还可以起到限流的作用,成功的解决了原电路的弊端。实践证明,该电路可以达到任务书的要求。图3.2.2 改进后的直流电压测量电路3.3 交流/直流转换电路方案一:半波整流电路。利用二极管的单向导电性,可以很容易的得到直流电压,且能满足设计要求。方案二:采用真有效值转换芯片,性能参数方面也都能满足设计要求,并且还能测量非正弦波,但一般真有效值转换芯片价格比较贵。鉴于此,故采用方案一。如图3.3所示,这个电路是利用低漂移单运算放大器TL062与二极管D1 1N4148组成平均值响应的线性半波整流电路。该电路可避免二极管在小信号整理时所引起的非线性误差,使交流/直流转换电路的输入电压与输出电压成线性关系,适合测量40-400Hz的正弦电压,测量准确度优于1%。图3.3 交流/直流转换电路图3.4 电流/电压转换电路如图3.4所示,普通模拟开关可以通过的电流很微小,所以通过单片机控制继电器来控制线路导通断开,将被测电流信号(0-500mA)转换为相应的电压信号(0-200mV),然后经过OP07将信号放大10倍,最后输入A/D转换器MC14433的Vin端。1A/250V的熔丝管FU为限流保护电路,两个二极管1N4007构成保护为过压保护电路。阻值为90、9的电阻采用误差为0.5%的精密金属膜电阻,而阻值为0.4、0.6的电阻通过的电流很大必须采用误差为0.5%的精密绕线电阻。图3.4 电流/电压转换电路图 3.5 电阻/电压转换电路方案一:利用运算放大器采用反相比例运算的方法进行测量。该方法实现比较简单,且能满足设计要求。方案二:采用分压原理,利用流过标准电阻R0和被测电阻Rx的电流基本相等来得到电压与电阻的关系,但当电阻很小时电流过大。鉴于此,故采用方案一。如图3.5所示。稳压二极管1N4730A的稳压值为3.9V(即B点处电压值),采用运算放大器反相比例运算的方法,将B点处的电压值衰减到2V(即A点处电压值),单片机通过控制模拟开关MAX4618(超低导通电阻)选择适当的标准参照电阻R1 ,再利用运算放大器反相比例运算的方法,将被测电阻RX的阻值转换成与之相对应的电压量,输入A/D转换电路。电阻/电压转换电路的计算公式:UA/R1=Uin/Rx,推得:Rx=R1* Uin/ UA。图3.5 电阻/电压转换电路图3.6 单片机控制与显示电路AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 如图3.6所示,单片机采用12MHz时钟晶振,LED显示电路采用共阳极动态法连接,占有I/O接口少,连线较简单。开关K1为功能选择开关,K2为量程选择开关,K3为选择确认开关(在读数显示时,K3为数据显示与单位显示切换开关)。P3.1-P3.5为模拟开关控制信号。开机自动复位。图3.6 单片机控制与显示电路图3.7自动量程转换模块方案一:采用软件来实现。通过单片机读取MC14433的数字信号来控制模拟开关,从而改变反馈电阻的大小实现档位的不同选择,能够很容易满足测量范围的要求。此方案是电路比较简单,实现也较容易。方案二:采用硬件实现。电路的核心是一块双向移位寄存器CC40194,移位方向由MC14433过量程信号控制,并且还要外接一些数字电路才能实现换档,电路比较复杂,不方便。鉴于此,故采用此方案一。第4章 智能型数字式多用表软件设计4.1 程序流程图程序的主要功能:1、 直流电压、交流电压、直流电流和电阻测量对象切换功能;2、 手动量程和自动量程功能(超量程和欠量程判断);3、 超量程指示功能;4、 数据显示功能(十进制数字形式,无效位消隐,小数点控制);5、 单位显示功能(正负极,数据单位)。图4.1 程序流程图4.2 程序源代码 见附录B。第5章智能型数字式多用表系统测试5.1 直流电压测试测试方案:通过按钮开关选择直流电压档,由直流稳压源提供电压进行测量,然后由单片机显示输出。档 位输入电压实际电压误差(%)200mV50 mV50.4 mV0.84100 mV100.7 mV0.782 V0.5 V0.501 V0.231 V1.003 V0.2620 V5 V5.02 V0.3110 V10.03 V0.25200V50 V50.1 V0.24100 V100.2 V0.23结果分析:测量误差大部分在-0.2%+0.2%范围内,在200mV档测量时,由于没有精密电阻,实践所用1M欧电阻误差较大,所以误差较大。测量结果基本满足设计任务书的要求。5.2 交流电压测试测试方案:通过按钮开关选择交流电压档,由函数信号发生器提供一个50赫兹左右的正弦交流电压,输入到交流端进行测量。档 位输入电压实际电压误差(%)200mV50mV50.7 mV1.31100mV101.3 mV1.322 V0.5V0.504 V0.891.0V1.008 V0.7820 V5.0V5.04 V0.8410.V10.09 V0.86输入电压频率为:50Hz结果分析:交流电压:0.220V ,误差2 %2个字,满足任务书的精度要求。5.3 直流电流测试测试方案:通过按钮开关选择直流电流档,由于实验室没有直流电流源,我采用正5伏的稳压源,串联不同的电阻来提供不同的待测电流。该电流的理论值,由电压与电阻的比值计算得到。档 位输入电流实际电流误差(%)2mA0.5mA0.508 mA1.611mA1.017 mA1.6820mA5mA5.07 mA1.3410mA10.15 mA1.46结果分析:直流电流:020mA ,误差2 %2个字,满足任务书的精度要求。因实验室找不到电流转电压电路所需的600毫欧和400毫欧特殊精密电阻,实践中没有连接200毫安和500毫安档位的测量电路。5.4 电阻测试测试方案:通过按钮开关选择电阻档,将待测电阻接入测量端,然后选择合适的档位进行测量。档 位理想电阻值测得的电阻值误差(%)2k0.5k0.512 k2.311k1.022 k2.220k5k5.07 k1.3110k10.15 k1.45200k50k51.1 k2.26100k102.2 k2.212M500 M0.513 M2.681 M1.025 M2.45结果分析:电阻0 2M比任务书的0 200k多一个测量档位,误差3 %2个字,满足设计要求。结束语本系统完成了任务书的所有内容,如下:1、测量对象、范围及误差范围:电压 DC:0200V 误差1 %2个字AC:0.220V 误差2 %2个字 电流 DC:0500mA 误差2 %2个字 电阻0200K 误差3 %2个字 2、采用LED数码显示,分辨率优于0.05%,具有符号判别和过量程显示3、直流电压档最小输入阻抗1M。 4、具有键盘选择测量对象、量程和自动量程转换功能。在选择这个题目以后,我查阅了大量的资料,设计出了可以实现的方案,然后在EWB中画出电路图并进行电路仿真。由于实验室没有单片机小系统,我采用AT89S51进行单片机的控制和显示,并编写了C51的程序,用keil编译,在Proteus 7里连接程序进行仿真。仿真成功以后,我开始连面包板。由于这个电路比较复杂,我使用了两块面包板。在连电路的时候,一个模块一个模块的连接,每连好一个模块就测试一个模块,最后将所有的模块连接在一起。在连面包板时,我遇到了许多问题。连电压测量电路时,在实验室找不到需要阻值的精密电阻,我只好实际测量最接近的电阻,这导致最后的误差比设计要大很多。连好电路测试时,我将输入信号加为+5伏,按照放大10倍来计算,输出应该是50伏,但是实际测量的时候输出是+5伏。查阅资料后发现这里是一个错误,OP07的工作电压是正负5伏,它不可能输出比电源电压更大的电压。而电压测量电路实际上是将所有的信号都处理成200mV后,再进行放大。所以测试时输入信号应该不超过200mV.在连交流转直流电路时,测得的实际输出与理论值相反,后来检查面包板发现所有的二极管都接反了。在连电流转电压电路时,由于找不到需要的精密电阻,我只好将设计图简化,只采用了一个继电器,简化为两个档的电流转电压。但连好电路进行测试时,却发现始终只有一条支路是通的,也就是说继电器没有工作。检查电路,并没有连线错误,换了一个继电器后,结果还是不对。在网上搜索相关现象时,有一个网页提醒了我,可能是电源电压小于继电器的动作电压,导致继电器不工作。改正之后,结果果然正确了。在连单片机部分的电路时,开始时没有借到单片机芯片的通用编程器,无法烧制芯片。连好电路后,我采用人工给定信号,检测数码管是否点亮。结果与预期一致。向老师借到EasyPRO 800通用编程器后,我用keil将C程序编译成hex文件,但是编程器总是提示程序超出芯片末端。即使编写极为简短的程序,也仍然出现该提示。在网上查阅资料后,我改用Tks仿真器,将Tks仿真器装入keil,然后再次将C程序编译成hex文件,这一次编程器不再显示错误信息,提示烧制成功。但我将烧好的芯片放入面包板后,电路工作不正常。每次加电启动后,数码管的显示都不一样。换了芯片重新烧制,结果仍然一样。不知道是不是编程器不支持C语言,为了确定,我又编写了一个短小的汇编程序,但烧制后,结果还是不正确,每次加电启动后,数码管都是随即显示,好像单片机并未工作。为了进一步检测,我将单片机从电路中取出,单独连了一个单片机最小系统,编写了一个向P1口输送数据的汇编程序。用电压表测引脚电压发现是正常的。这说明单片机工作正常。难道是C语言烧制的不正确吗?为了证实,我又写了一个向P1口输送数据的C语言程序,烧制后,结果也是正确的。这说明程序确实是正确的烧进芯片了,也就是说,原先放置芯片的面包板部分可能有问题。我又将芯片放入原先的位置,再次测引脚电压,发现确实又不正常了。于是我将单片机换了一个位置,将电路重新连好。烧好程序后,结果正确。在连A/D转换电路的时候,由于买芯片的时候,没有买到MC1403,我用TL431代替,但是在调制参考电压的时候,发现电流突然增大。立即断电后,测滑动变阻器,发现滑动变阻器几乎调到底。但是这个过程中,电压一直没有降到我要的2伏。查阅TL*的资料发现,它的参考电压是2.5伏,无法达到2伏。实验室只有LM366芯片和IN4730A,而LM366也是参考电压2.5伏。我决定用电阻进行分压,分别连好LM366和IN4730A的电路后发现,LM366的稳压效果并不好,浮动太大,而IN4730A产生的参考电压小于2伏。于是我决定先用IN4730A产生小于2伏的参考电压,然后再用放大器(NE5532)和滑动变阻器组成的正比例放大电路将信号放大成2伏。这个电路的稳压效果基本满足要求。连好并测试完每个模块后,就要开始进行模块之间的连接了。由于在连电路时,不小心烧坏了AT89S51芯片,我找来了AT89C91芯片代替。根据CD4052的真值表,我确定了每个功能模块的信号控制线。用单片机的P3.0和P3.1做功能选择线,选择电压档,电流档和欧姆档。用P3.2做交直流选择线,用P3.3,P3.4做电压档和电流档量程的选择。首先做直流电压档的测试,发现输入信号为+5伏以下时,手动量程输出基本满足要求,但是当输入信号大于+5伏时,提供工作电压的稳压源的值就会随着输入信号值的增大而增大。做电流档测试时,刚刚一接通电源,就发现电流过大。及时断电检查线路后,并没有发现有短路情况。分析原理图,猜想,可能是继电器工作时,需要大电流导致整个电路电流过大。将串联的1千欧电阻换为一个更大的电阻后,电流基本正常。并且,由于测电流时,万用表需串联到电路中,要求万用表内阻较小。但我在设计之初,未考虑该情况,采用了阻值较大的电阻。特将原900欧和100欧电阻换为9欧和1欧电阻。由于整个电路中只有电阻转电压电路中有一个+15伏工作电压,为了方便,将电路作了调整,将该电压改为+5伏,首先用稳压二极管,将电压稳压在+2伏以下,然后用集成运放与滑动变阻器组成正比例放大电路,将电压放大到+2伏。猜想直流电压档信号异常的原因,可能是由于电路中模拟地与数字地混接,造成模拟信号被数字信号中的高频分量吞噬,我将电路中的模拟地与数字地分开接,只在一点会合,流入电源地。但是当信号加大时,提供芯片工作电压的稳压源的输出电压依然随着增大。因为提供输入信号与提供芯片工作电压的稳压源是同型号的两个独立的稳压源,我将它们不连入电路,发现一个输出增大时,另一个的输出仍然稳定。为了检查原因,我单独将信号加在电压测量电路。即:将由CD4052和OP07CP构成的电压测量电路与其它电路断开,信号从CD4052的1脚输入,从OP07CP的6脚输出。结果干扰现象仍然存在。不知道是否是由于其中某个芯片没有正常工作引起的,我将CD4052与OP07CP断开,信号从CD4052的1脚输入,3脚输出。用万用表测量,发现数据正确。接着,将信号从OP07CP的3脚输入,6脚输出,用万用表检测,发现OP07CP也是正常工作的。分析原理图,由于不论输入信号有多大,经过电阻组成的分压器分压后,CD4052的输出电压理论上都会变为0至200mV之间,而OP07CP组成的比例放大电路的放大倍数为10倍,则理论上,它的输出会在0至2伏之间,小于它的工作电压正负5伏。而实际电路中,当从CD4052的1脚输入100mV电压信号,将CD4052的3脚与OP07CP的3脚相连,用万用表检测,发现CD4052的3脚电压变为2.7伏超过200mV,与理论值相悖,断开CD4052与OP07CP的3脚连线,CD4052的3脚电压回到100mV,与理论值一致。只要CD4052与OP07CP相连,不论它们的公共地接到模拟地上还是数字地上,当CD4052的输入信号大于+5伏时,为两芯片提供工作电压的稳压源的输出信号都会随着输入信号的变大而变大,就好像稳压源不再稳压。询问老师后,得知我的设计图有一个原理上的缺陷,就是直流电压输入信号直接加在CD4052的1脚,这样,当信号大于5伏时,CD4052的1脚承受了过大的电压,进入自动保护状态,不能正常工作。同时,CD4052和OP07CP的引脚直接相连,导致OP07CP处于无保护状态,信号增大时,互相干扰。为了解决这些问题,我修改了原先的设计图,将输入信号直接通过一个保护电阻,从OP07CP的3脚引入,将电阻与CD4052组成的分压器接在OP07CP的2脚与1脚之间。修改后调试,结果正确。致谢词 在整个毕业设计中,我得到了电子工程系实验室的大力支持,为我提供了各种所需的仪器设备,以及设计的所需经费。也十分感激费名瑜、王金庭等老师,对我实验设计中所遇到的各种问题给予耐心的解答,完稿之后在百忙之中仔细阅读,给出修改意见。参考文献1 徐爱钧 智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,2004年;2 吴金戌、沈庆阳、郭庭吉 8051单片机实践与应用M.北京:清华大学出版社,2002年;3 谢自美 电子线路设计实验测试(第三版)M.武汉:华中科技大学出版社,2006年;4 谢维成、杨加国 主编 单片机原理与应用及C51程序设计M.北京:清华大学出版社,2006年;5 杨立、邓振杰、荆淑霞 微型计算机原理与接口技术M.中国铁道出版社,2006年;6 黄智伟 全国大学生电子设计竞赛技能训练 M.北京:北京航空航天大学出版社,2007年7 高峰,单片微型计算机与接口技术M.北京:科学出版社,2003;8 华成英、童诗白 主编,模拟电子技术基础(第四版)M.高等教育出版社,2006年.9 阎 石,数字电子技术基础M.高等教育出版社,1983年10 张永瑞 电子测量技术M.西安电子科技大学出版社,2000年3月11 王翠珍 唐金元,万用表频率特性改善方法海军航空工程学院青岛分院 山东青岛12 黄海萍、陈用昌 编 微机原理与接口技术实验指导M.北京:国防工业出版社,2004年13 李 华,MCS51系列单片机实用接口技术M.北京航空航天大学出版社,1993年14 余孟尝 主编,数字电子技术基础简明教程(第二版) 北京:高等教育出版社1999(2006重印)15 薛福连数字万用表增加测温功能辽宁 16 政.马 龙宁夏电力2008年第1期数字万用表的扩展应,(宁夏银南供电局,吴忠市 751100)17 为数字万用表增加磁悬挂功能湖南 易永丰18 吴 宁语音数字万用表的单片机实现(安徽机械工业学校, 安徽 淮南 232052)19 20 http:/www.ic-21 22 附 录附录A:整机硬件电路图图6.1 整机硬件电路图附录B:程序源代码#include#define uchar unsigned char#define uint unsigned int sbit ds1=P14; /测量数据选择位sbit ds2=P15;sbit ds3=P16;sbit ds4=P17;sbit ado=P20; /A/D转换结束指示uint dso1;dso2;dso3;dso4;uint data1;data2;data3;data4; /分别为千位,百位,十位,个位的测量数据缓冲区sbit ls1=P24; /显示器选择位sbit ls2=P25;sbit ls3=P26;sbit ls4=P27;uint led1;led2;led3;led4; /分别为千位,百位,十位,个位的显示缓冲区uchar led= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff,0xbf,0xc1,0Xc8,0x7f ; /编码09,全黑,-,U,小数点sbit key1=P23; /控制开关sbit key2=P22;sbit key3=P21;uint k1=0;k2=0;k3=0;s=0;sw_d=0; /s为单位判断信号;sw_d为模拟开关控制信号缓冲区uint sw= 0x83, /模拟开关常态 0x80,0x84,0x82,0x86, / 直流电压200mV,2V,20V,200V 0xb0,0xb4,0xb2, / 交流电压200mV,2V,20V 0x42,0x40, / 直流电流2mA,20mA, 0x00,0x02,0x06,0x04 ; / 电阻 2k,20k,200k,2Mkuint j;k;g;h=0;ing=0;L=0;N=0;Z=0;/ing指示数据是否正在处理,1为真;L为A/D转换指示;Z为自动量程转换指示/*名称:delay*功能:延时*输入: 延时时间*返回值:无*/ void delay(int i) /延时 for(j=i;j0;j-) for(k=120;k0;k-);/*名称:display*功能:动态显示数码管, led1,led2,led3,led4依次为千位,百位,十位,个位的显示内容*调用: delay()*返回值:无*/ void display(void) ls1=ls2=ls3=ls4=1; P0=led1; ls1=0; delay(1); ls1=1; P0=led2; ls2=; delay(1); ls2=1; P0=led3; ls3=0; delay(1); ls3=1; P0=led4; ls4=0; delay(1); ls4=1; /*名称:measure*功能:单位显示控制,根据s的值显示不同的单位,根据千位数据data1的值显示正负*返回值:无*/ void measure(void) if(s=1|s=5) /mV显示为0V led1=led0;led2=led12;led3=led4=led10; if(s=2|s=3|s=4|s=6|s=7) /V显示为1V led1=led1;led2=led12;led3=led4=led10; if(s=8|s=9) /mA显示为0A led1=led0;led2=led11&led13;led3=led4=led10; if(s9&s13) /k显示为0 led1=led0;led2=led13;led3=led4=led10; if(s=13) /M显示为1 led1=led1;led2=led13;led3=led4=led10; if(data1&4)=0) led4=led0; /负极个位显示“0” if(data1&4)=4) led4=led1; /正极个位显示“1” /*名称:datadisplay*功能:测量数据显示控制,根据data1的值判断是否超量程*返回值:无*/ void datadisplay(void) if(data1=7|data1=3) /超量显示“0-” led1=led0;led2=led3=led4=led11; else if(data1=4|data1=0) led1=led1;led2=leddata2;led3=leddata3;led4=leddata4; if(s=1|s=4|s=5|s=12) led3=led3&led14; if(s=2|s=6|s=8|s=10|s=13) led1=led1&led14; if(s=3|s=7|s=9|s=11) led2=led2&led14; else led1=led0;led2=leddata2;led3=leddata3;led4=leddata4; if(s=2|s=6|s=8|s=10|s=13) led1=led1&led14; if(s=3|s=7|s=9|s=11) led1=led10;led2=led2&led14; if(s=1|s=4|s=5|s=12) led1=led10;led3=led3&led14; if (data2=0) led2=led10; /*名称:process*说明:ing指示数据是否正在处理,ado为A/D转换结束指示, L为A/D转换指示;Z为自动量程转换指示*功能:读取测量数据*调用:display(),datadisplay(),delay()*返回值:无*/ void process(void) P3=sw_d; if(ing=1) /数据处理时千位显示“.”,其它位消隐。 led1=led14;led2=led3=led4=led10; display(); if(L=0|Z=1) for(g=0;g100;g+) display(); delay(1); L=dso1=dso2=dso3=dso4=1; if(L=1) while(dso1=1|dso2=1|dso3=1|dso4=1) if(ds1=1) data1=P1&0x0f;dso1=0; /读取测量数据的千位 if(ds2=1) data2=P1&0x0f;dso2=0; /读取测量数据的百位 if(ds3=1) data3=P1&0x0f;dso3=0; /读取测量数据的十位 if(ds4=1) data4=P1&0x0f;dso4=0; /读取测量数据的个位
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!