数显示电容测量电路的设计.doc_第1页
数显示电容测量电路的设计.doc_第2页
数显示电容测量电路的设计.doc_第3页
数显示电容测量电路的设计.doc_第4页
数显示电容测量电路的设计.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

江苏广播电视大学五年制(高职)毕业设计任务书设计课题 数显示电容测量电路的设计 学 校 江苏广播电视大学 年 级 专 业 姓 名 学 号 指导教师 职称 二一 零 年10 月目录第一章引言1.1 电容测量在现实生活中的意义和作用11.2 电容测量技术现在在国内国外的发展概况11.3 现今和未来电容测量技术的手段1-2第二章 基于单片机电容测量硬件设计2.1设计方案3-42.2 硬件设计的任务42.3 基于AT89C2051电容测量系统硬件设计详细分析5 2.3.1 系统电源设计5-62.3.2 AT89C51单片机工作电路6 2.3.3 基于AT89C2051 电容测量系统复位电路6-7 2.3.4 基于AT89C2051 电容测量系统时钟电路7-8 2.3.5 基于AT89C2051 电容测量系统按键电路8 2.3.6 基于AT89C2051 电容测量系统555时基9 2.3.7 基于AT89C2051 电容测量系统显示电9-112.4 各部分连接成整个电路图11第三章 基于单片机电容测量软件设计 3.1 软件设计123.2 软件设计任务123.3 软件设计的步骤123.4 软件设计的工具123.4.1 MedWin集成开发环境的特点12-133.4.2 MedWin开发133.4.3 不使用项目管理方式开发应用13-143.4.4 使用项目管理方式开发应用程序15-18 3.5 程序设计算法设计18-193.6 软件设计流程193.7 编写程序20-22第四章 主要元器件介绍 4.1 微控制器AT89C205123 4.1.1 主要性能参数23 4.1.2 功能特性概述23 4.1.3 引脚功能说明23-24参考文献25致谢26摘要电容测量技术在现今的电子产品的制造和维护中有着重要的现实意义及广泛的应用。本文主要介绍了电容测量的发展概况和当今常用的几种测量方法及各自的优缺点。结合课题要求选择合适的设计方法基于AT89C2051单片机的电容测量的硬件设计和软件设计。本文详细介绍了硬件设计过程和软件设计过程。本设计最终目的实现了电容测量,并可以通过按键改变测量电容的量值,并通过显示屏显示当前测量电容大小的功能。通过实际证明,该系统具有硬件设计简单,软件可调整性大,系统稳定可靠等优点。第一章引言1.1 电容测量在现实生活中的意义和作用随着科学技术的飞速发展,工业自动化日趋走向成熟,以传统的手工控制生产工艺和生产过程的方式,已经满足不了现代企业高质量、高效益的要求,渐渐成为企业扩大生产规模、提高产品质量、降低生产成本的一个障碍。只有采用现代的电容测量技术和以计算机技术为主体的测控系统,开发先进的生产检测设备与系统,才是行之有效的解决方案在电子产品的生产和维修中,电容测量这一环节至关重要,一个好的电子产品应具备一定规格的使用寿命。因此在成产这一环节中,对其产品的检测至关重要,而检测电子产品是否符合出产要求的关键在于检测其内部核心电路,电路的好坏决定了电子产品的好与否,而电容在基本的电子产品的集成电路部分有着其不可代替的作用。同样,维修人员在对电子产品的维修中,电路的检测是最基本的,有时需要检测电路中各个不见是工作正常。1.2电容测量技术现在在国内国外的发展概况 电容测量技术是随着科学技术的发展而发展的,它是科学发展的产物。电容器以传感器形式出现,因此电容测量技术的发展归根结底就是电容传感器的发展。由最初的交流不平衡电桥就能测量基本的电容传感器。现在的电容式传感器越做越先进,现在用的比较多的有容栅式电容传感器,陶瓷电容压力传感器等。传感器早已渗透到诸如工业生产、宇宙开发、海洋探测、环境保护、资源调查、医学诊断、生物工程、甚至文物保护等等极其之泛的领域。可以毫不夸张地说,从茫茫的太空,到浩瀚的海洋,以至各种复杂的工程系统,几乎每一个现代化项目,都离不开各种各样的传感器。电容测量技术发展也很快现在的电容测量技术也由单一化发展为多元化。现在国内外做传感器的厂商也比较多,在国内做电容传感器比较好的有:深圳的仕达威公司(STAR VIEW );在国外做电容传感器比较好的公司有:日本的figaro、德国的tecsis和美国的alphasense。1.3现今和未来电容测量技术的手段电容器通常简称其为电容,用字母C表示。定义1:电容器,顾名思义,是装电的容器,是一种容纳电荷的器件。英文名称:capacitor。电容是电子设备中大量使用的电子元件之一,广泛应用于隔直,耦合,旁路,滤波,调谐回路, 能量转换,控制电路等方面。 电容式传感器具有结构简单、灵敏度高、动态响应快、易实现非接触测量等优点。虽然易受外界干扰和寄生电容的影响,但随着电子技术的迅速发展,以及驱动电缆技术的出现,这些缺点正逐步被克服,可用于激光法、超声波法等测量手段所不能完成的许多场合。另外,虚拟仪器技术是当今计算机辅助测试(CAT)的重要手段,集成了仪器的所有采集、控制、数据分析、结果输出等功能,使传统仪器的某些硬件乃至整个仪器都被计算机软件所代替,具有灵活性、开放性、低成本、高效率等优点,是未来电容测量设计发展的方向。目前常用的两种测量电容的方法实现:1、利用多谐振荡产生脉冲宽度与电容值成正比信号,通过低通滤波后测量电容的方法实现;2、利用单稳态触发装置产生与电容值成正比门脉冲来控制通过计数器的标准计数脉冲的通断,即直接充放电时间判断电容值。利用多谐振荡原理测量电容的方案硬件比较简单,但是软件实现起来比较复杂,而直接根据充放电时间判断电容值的方案虽然基本上没有涉及到软件部分,但是硬件却十分的复杂,而且它们都不能直接的把测量值大小显示出来。根据上面两种方案的优缺点,本次设计提出了硬件设计和软件设计都相对比较简单的方案:基于AT89C2051单片机和555时基芯片的数显示电容测量第二章基于单片机电容测量硬件设计基于AT89C2051单片机电容测量系统的硬件设计是整个设计过程中的重要的部分,也是困难的部分设计,硬件设计需要充分了解设计的各种需求,确定合适的解决方案。启动一个硬件开发项目,原始的推动力会来自于很多方面,比如市场的需求。基于整个系统构架的需要,提高系统某方面能力的需要等等,所以作为一个硬件系统的设计者,要主动的去了解各个方面的需求,并且综合起来,提出最适合的硬件解决方案。2.1 设计方案本次设计中考虑了三种设计方案,三种设计方案中主要区别在于硬件电路和软件设计的不同,对于本设计三种方案均能实现,最后根据设计要求、可行性和设计成本的考虑选择了基于AT89C2051单片机和555时基芯片的数显式电容测量的方案。现在一一介绍论证如下:方案一、基于单片机和555时基芯片的数显式电容测量这种电容测量方法主要是通过一块555时基芯片来测量电容,让555时基芯片工作在直接反馈无状稳态的状态下,555时基芯片输出一定频率的方波,其频率的大小跟被测的电容之间的关系是:f=0.772/(R*Cx),我们固定R的大小,其公式可以写为:f=k/Cx,只要我们能够测量出555时基芯片的频率,就可以计算出测量的电容。计算频率的方法可以利用单片机的计数器To和中断INTO配合使用来测量,这种研究方法相当的简单。系统图见图2-1所示:图2-1数显电容测量系统框图图中给出了整个系统设计的系统框图,系统主要由四个部分组成,单片机及复位电路和晶振电路设计,数显电路设计,按键电路设计。方案二、直接根据充放电时间判断电容值3这种电容测量方法主要利用了电容的充放电特性Q=UC,放电常数=RC,通过测量与被测量电容相关的充放电时间来确定电容值。一般情况下,可设计电路使T=ATC(T为振荡周期或触发时间:A为电路常数,与电路参数有关)。这种方法运用了555定时器组成的单稳态触发器,在秒脉冲的作用下产生触发脉冲,来控制门电路实现计数,从而确定脉冲时间,通过设计合理的电路参数,使计数值与被测电容对应。器原理框图和时序如图2-2和图2-3所示:图2-2电路原理框图图2-3 误差分析:这种电容测量方法的误差主要由两部分组成:一部分是由555定时器构成的振荡电路和触发电路由于非线性造成的误差,其中最主要的是单稳态触发器的非线性误差,Co/Co=T/T(T由充放电时间决定:Co是被测电容值);另一部分是由数字电路的量化误差引起,是数字电路特有的误差该误差相对影响较小,可忽略不计。方案三:利用多谐振荡原理测量电容测量原理如图2-4所示。电容C(Co或Cx)电阻R和施密特触发器(74IS14)构成一4个多谐振荡器。6 图2-4电容测量原理图在电源刚接通(Ko或K1合上)时,电容C上的电压为0,多谐振荡器输出Vo为高电平。Vo通过R对电容C充放电。当C上冲得的电压Vc=VT+时,施密特触发器翻转,Vo变成低电平。C又通过R放电,Vc下降。当Vc=VT时施密特触发器又翻转,输出Vo又变成高电平。如此往返发生振荡。由理论分析可知:tPH=RC ln(VOHVT-)/(VOHVT+)tPH=RC ln(VOLVT+)/(VOLVT-) T=tPH+tPL化简为:Cx=(Tx/To)Co由式(3)和测得的校准值To测量值Tx及存放在软件中的标准电容值Co可得出待测电容值Cx。2.2 硬件设计的任务系统电源设计:为整个系统提供不同大小的电源;AT89C2051基本工作电路设计:使单片机正常工作;复位电路:为单片机提供高电平复位信号;时钟电路:为单片机提供时钟信号;555时基电路:把电容大小转变成输出频率的大小;2-4译码电路:为显示提供片选;按键电路:开始测量电容;换挡电路:更换测量电容的量程;显示电路:显示当前测量电容的大小2.3 基于AT89C2051电容测量系统硬件设计详细分析2.3.1系统电源设计 对于现在一个电子系统来说,电源部分的设计也越来越重要。对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要仔细考虑到总的功耗,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的5容忍范围以及相应的允许的电源波纹,还有散热问题等等。功耗和功率是密切相关的,效率提高了,在负载功耗相同的情况下总功耗就减少,对于整个系统的功率预算就非常有利了。同时,评估效率不仅仅是看在满负载的时候电源电路的效率,还要关注轻负载的时候效率水平。一般来说,要求的电源实际值的大小5%,所以可以据此计算出允许的电源纹当然要预留余量的。 本次设计基于AT89C51数显示电容测量系统中使用到了+5V的电源,电源设计的原理如图2-5,输入是+6V+9V的直流电源。电路中使用到的芯片是7805,7805是5V的稳压芯片,这种芯片的好处是应用的比较简单,只需要接上几个电容就可以使用了。图2-5电源实现原理图2.3.2 AT89C51 单片机工作电路 本设计的核心是单片机电路,考虑到需要一个中断输入,储存容量、外部接口和对单片机端口的需要以及兼顾节约成本的原则,选用了常用的AT89C51 单片机。AT89C51 是低工耗、高性能、经济的8位CMOS微处理器。 AT89C51 工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。其简单的工作原理图如下图2-6所示: 图2-6 AT89C51单片机工作电路2.3.3 基于AT89C51 电容测量系统复位电路 MCS-51 的复位的由外部的复位电路来实现的。MCS-51 单片机片内复位,复位引脚RS6通过一个斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。 复位电路通常采用上电自动复位和按钮复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现。只要Vcc是上升时间不超过1ms,就可以实现自动上电复位。除了上电复位外,有时候还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。按键脉冲复位则是利用RC微分电路产生的正脉冲来实现。如图2-7所示:图2-7 上电复位电路 上图兼有上电复位和按钮复位的电路。在单片机设计中,若有外部扩展的I/O接口电路需初始复位,如果他们的复位端和MCS-51单片机的复位端相连,复位电路中的R、C参数要受影响,这时复位电路中的R、C参数要统一考虑以保证可靠的复位。2.3.4 基于AT89C51 电容测量系统时钟电路 时钟在单片机中非常重要,单片机各功能部件的运行都是以时钟频率为标准。时间频率直接影响单片机的速度,时间电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。 内部时钟方式:8 图2-8 内部时钟电路 MCS-51 单片机内部有一个用与构成振荡器的高增益反向放大器,该高增益放大器的输入端的芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器电路。 外部时钟电路图如下图2-9所示:图2-9 外部时钟电路 外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作,以便于同步。对外部脉冲信号只要求高电平的持续时间高于20us,一般为低于12MHz的方波。 这次的设计采用MCS-51 的内部时钟方式。因为外部时钟方式是用外部振荡脉冲信号,用于多片MCS-51 单片机同时工作。在这次设计中只用一个MCS-51单片机,不需要振荡脉冲信号。2.3.5 基于AT89C2051 电容测量系统按键电路 按键是实现人机对话的比较直接的接口,可以通过按键实现人们想让单片机做的不同工作。键盘是一组按键的结合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。 键盘分编码键盘和非编码键盘,按键的识别由专用的硬件译码实现,并能产生键编号键值的称为编码键盘,而缺少这种键盘编码电路要靠自编软件识别的称为非编码键盘。在单片机组成的电路系统智能化仪器中,用的更多的是非编码键盘。图2-10就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的是低电平。图2-10 按键电路2.3.6 基于AT89C2051 电容测量系统555时基电路 555时基电路是一种将模拟功能与逻辑功能巧妙结合在同一硅片上的组合集成电路。它设计新颖,构思奇巧,用途广泛,备受电子专业设计人员和电子爱好者的青睐,人们将其戏称为伟大的小IC。1972年,美国西格尼蒂斯公司(signetics)研制出Tmer NE555双极时基电路,设计愿意是用来取代体积大,定时精度差 的热延迟继电器等机械式延迟器。但该器件投放市场后,人们发现这种电路的应用远远超出原设计的使用范围,用途之广几乎遍及电子应用的各个领域,需求量极大。美国各大公司相继仿制这种电路1974年西格尼蒂克斯公司又在同一基片上将两个双极型555单元集合在一起,取名为NF556。1978年美国英特锡尔(Intelsil)研制成功CMOS型时基电路ICM555ICM566,后来又推出将四个时基集合在一个芯片上的四时基电路558。由于采用CMOS型工艺和高度集成,使时基电路的应用从民用扩展到火箭、导弹、卫星、航天等高科技领域。在这期间,日本、西欧等各大公司和厂家也竟相仿制、生产。555时基电路的应用电路很多,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。在实际应用中,除了单一品种的电路外,还可组合出很多不同电路。本次设计中应用的电路是直接反馈型无稳态类电路。电路如图2-11所示:9图2-11 555时基电路555时基芯片输出的频率为f=0.772(R*Cx),只要我们改变电阻R,就可以达到改变电阻量程的目的,图中提供了四组电阻,所以说有四组电阻的电容测量量程,每个量程之间的跨10度是10倍的关系。2.3.7 基于AT89C2051电容测量系统显示电路 译码器是一种组合逻辑电路。它的输出代码的组合将在某一个输出端产生特定信号。译码是编码的逆过程,在编码时,每一种二进制代码状态都赋予了特定的含义,既都表示了一个特定的信号或者对象。把代码状态的特定含义翻译出来的过程称为译码,实现译码操作的电路称为译码器,或者说译码器是将二进制代码的状态翻译成输出信号,以表示其含义的电路.实际上,译码器就是把一种代码转换为另一种代码的电路。译码器的种类很多,但这种译码器的工作原理类似,设计方案也相同.按用途来分,译码器大体上有三类:变量译码器、码制变换译码器和显示译码器。用来表示输入变量状态的译码器称为译码器。它是一种二进制译码器,输入输出之间的关系可由真值表表示。表2-12给出它的功能。ABY0Y1Y2Y3000111101011011101111110图2-12二输入变量译码器功能表(无使能输入)由功能表可直接写出Yo、Y1、Y2、Y3,表达式:Yo=AB;Y1=AB-;Y2=AB;Y3=AB由Yo-Y3的表达式,我们可画出它的逻辑图。如下图2-13所示: 图2-13 二输入变量译码器逻辑图 由图2-13可以看到,输入端A、B分别均要驱动三个“与非”门,为了减轻前一级电路驱动A、B端的负担,设置了A、B输入缓冲反相门。如图2-14所示,以形成译码器所需的A和A、B和B的互补输入。使前级电路驱动译码器时,只要驱动一个“与非”门。此外还增设了“使能”端E。当1时。译码器的四个输出均为1,译码器的工作被禁止;只有当E=0时,译码器才处于正常的译码工作状态。增设了E端的二输入译码器的功能表。11输入输出EABYoY1Y2Y30XX11110000111010101100111010111110图2-14 二输入变量译码器功能表8段数码管属于LED发光器件的一种。LED发光器件一般常用的有两类:数码管和点阵。如图2-15所示: 图2-15 LED的管脚和电路原理从电路上,数码管又分为共阴和共阳两种。用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示。动态扫描用分时的方法轮流控制各个显示器的COM端,是各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管11的余晖效应,给人的印象就是稳定的显示数据。本次毕业设计测量电容的大小,最后显示电容单位F,前面的显示测量电容的大小,采用的显示方式是动态显示的方法。数码管采用共阴的LED,位选信号通过2-4译码器来实现。2.4 各部分点亮连接成整个电路图当各个部分的电路设计完成后,下面的工作就是组合成一个总的电路图。当今用的最多的电路设计软件就是protel,protel是澳大利亚protel technology公司推出的一个全32位的电路板设计软件,该软件功能强大,人机界面友好,易学易用,使用软件设计者可以容易地设计电路原理图,画元件图,设计电路板图,画元件封装图和电路仿真,是业内人士手选的电路板设计环境。常见的几种LED电路连接方式LED在商业化的具体应用时,经常需要数十个甚至上百个LED组合在一起,制成发光元件,LED负载电路的连接方式,直接关系到LED元器件可靠性和使用寿命。这是因为能够安全工作的LED电路,它的基本功能主要有两个方面:一是尽可能保持恒定的电流。二是驱动电路应保持较低的自身功耗,这样才能使LED的系统效率保持较高水平。 目前应用比较广泛的LED连接电路的形式主要有串联、并联、串联/并联组合等。第三章 基于单片机电容测量软件设计3.1 软件设计软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。建议用数学语言来抽象事务和问题,因为数学是最好的抽象语言,并且它的本质就是抽象。将复杂的问题分解成可以管理的片断会更容易。将问题或事物分解并模块化这使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。 软件设计是一个创造性的过程,对一些设计者来说需要一定的资质,而最后设计通常都是一些初步设计演变而来的。从书本上学不会设计,只能通过实践,通过对实际系统的研究才能学会。对于高效的软件工程,良好的设计是关键,一个设计得好的软件系统应该是可直接实现和易于维护、易懂和可靠的。因此,设计阶段是软件开发过程中最重要的阶段。 软件设计一般用自然语言给定一个需求集,预先作非正式设计,常常用流程图的形式说明,接着开始编码,当系统实现时设计还需修改。3.2 软件设计任务软件设计主要是针对硬件设计里的控制部分,这里指AT89C2051单片机,一般的单片机均可用汇编语言和C语言进行编辑。C语言相对汇编语言就比较简单,但占用内存比较大,而汇编语言就比较的精简,占用空间比较小。作为还在学生阶段的我们,用汇编语言能够更有效的帮助我们理解单片机的内部结构,但是C语言编程在以后的实际工作中将会大大简化12自己的工作。3.3 软件设计的步骤大型的软件设计是一个庞大的系统工程,需要前期的市场调查、需求分析,还需要各个行业的支持。本次毕业设计的程序是一个简单的过程,所以步骤也相应的简单了不少。第一步:分析整个系统可以由几个子系统组成,并考虑其内在的关系。第二步:编写各个子系统的过程,最后组在一起,得到整个系统。第三步:编译,差错,改错(包括语法错误、逻辑错误)。第四步:把编译,看是否得到我们需要的结果,如果得不到结果就回到第三步,直到最后得到我们想要的结果。3.4 软件设计的工具 本次毕业所选用万利公司Medwin 软件作为集成开发环境。它是万利电子有限公司Insight 系列仿真开发系统的高性能集成开发环境。集编辑、编译/汇编、在线及模拟调试为一体,VC风格的用户界面,内嵌自主版权的宏汇编辑器和连接器,并完全支持Frank/KeilC扩展OMF格式文件,支持左右变量类型及表达式,配合Insight系列仿真器,是您开发80C51系列单片机的理想开发工具。3.4.1 MedWin集成开发环境的特点 1、 完美的Windows 版集成开发环境 MedWin.2、 内嵌自主版权的宏汇编器A51和连接器L51,并支持Keil/Franklin编译、连接13工具。 3、 具有分别独立控制项目文件的工程项目管理器。 4、 在工程项目管理下,实现多模块的混合语言编程调试。 5、 在VC风格的窗口停驻、窗口切分和工作簿模式界面。 6、 在线编辑、编译/汇编、连接下载运行和错误关联定位。 7、 符合编程语言语法的彩色文本显示。 8、 完全的表达式分析,支持左右数据型变量的观察。 9、 无需点击的感应式鼠标提示功能。 10、外部功能部件编程向导。 11、不限制打开数据区观察窗目的数目。 12、调试状态下用户程序自动重装功能。 13、提供真实的软件模拟仿真开发环境。3.4.2 MedWin 开发方式 MedWin 集成开发环境提供了一下两种方式开发用户应用程序:1、 使用MedWin集成开发环境项目管理方式对源程序文件直接进行汇编/连接,兼容传统开发习惯。2、 使用MedWin集成开发环境项目管理方式可进行多模块、混合语言编程的,同样也适合单模块程序的开发。用户无论是单模块或多模块的程序开发,我们都建议使用项目管理方式管理应用程序。3.4.3 不使用项目管理方式开发应用程序不使用MedWin集成开发环境项目管理方式,只能对单模块方式下的应用程序开发,具有很多的局限性。以下是不使用MedWin集成开发环境项目管理方式开发应用程序的步骤:第一步:关闭当前项目文件不使用MedWin集成开发环境项目管理方式,只能对单模块方式下的应用程序开发,具有很多的局限性。如果使用MedWin集成开发环境项目管理方式开发程序,则使用于各种方式下的单模块和多模块方式应用程序。命令:【项目管理/关闭当前项目】第二步:在文件菜单下打开应用程序命令:【文件/新建】或【文件/打开】单模块方式下的文件调试可以按照以下方法新建或打开文件。1、单击【文件/新建】,输入文件名或扩展名,新建文件2、点击【文件/打开】,选择文件捡取框中的文件将其打开14第三步:编译/汇编命令:【项目管理/编译/汇编】MedWin集成开发环境根据文件的扩展名,自动对当前激活的文件选择调用外部编译器或汇编器。1、如果当前的扩展名为ASM或系统定义的扩展名,编译/汇编命令调用外部汇编命令对当前文件汇编。142、如果当前的扩展名为C或系统定义的扩展名,编译/汇编命令调用外部C编译命令对当前文件编译。执行【项目管理/编译/汇编】命令后产生的结果显示在消息框中。如果需要设置文件编译/汇编的命令行参数,可以选择【项目管理/文件属性】命令设置。第四步:错误信息关联MedWin集成开发环境调用外部命令编译/汇编产生的结果,显示在消息窗口中,消息窗可由热键Ctrl+9激活。当编译/汇编发生错误时,消息窗口中的错误信息自动与源文件关联,提示出错的位置。在消息窗口中错误提示处双击。鼠标左键或键回车,可将错误信息与源文件的错误位置关联。1、如果编译/汇编没有出错,可进行第五步操作2、如果编译/汇编出现错误,在修改源文件后重复进行第三步操作。第五步:产生代码并装入仿真器调试命令:【项目管理/产生代码】或【项目管理/产生代码并装入】产生代码或产生代码并装入命令对经过编译/汇编无误后产生OBJ文件进行连接产生用于下载的代码。此命令自动地对修改过的源程序进行编译或汇编,对没修改过的出现将越过编译或汇编过程,然后连接OBJ,LIB文件,再装载代码到仿真器,完成调试程序所需的准备工作。装载完成后,出现“Loading program“(项目名)”.Completed”的字样。3.4.4 使用项目管理方式开发应用程序使用MedWin集成开发环境项目管理方式开发程序,使用于各种方式下的单模块和多模块方式应用程序。以下是MedWin集成开发环境项目管理方式开发应用程序的步骤:1、建立一个新的项目进入第一步新建项目文件2、打开已经存在的项目文件进入第三步打开项目文件第一步:新建项目文件命令:【项目管理/新建项目文件】项目名称MedWin集成开发环境的项目器是按项目名称管理的,项目管理器的项目名称不可以相同。在项目名称输入栏内,用户必须输入项目名称,并且项目名不能超过8个字符,不可以使用汉字以及“-,?,*,/”等DOS文件名所不可以使用的字符,也可以输入盘符和路径。高级设置 高级设置是用户程序所处路径与当前工作目录不同时,选择存放项目文件路径的过程。通常,当用户源程序文件存放在当前工作目录时,不需要进行高级设置。如果源程序文件不在当前工作目录时,用户必须选择高级设置,将项目文件存放到用源程序所处的目录。 如果源文件与项目文件不在同一目录时,将会出现不能进行源文件调试的情况发生。 选择添加文件选项,表示在项目建立后会自动打开文件捡取框,供用户选择文件添加到项目管理器中。存储器属性 存储器属性Small/Compact/Large,此属性为C编译器所需,如果项目文件中包含C程序,用户必须设置存储器属性。RAM尺寸:128/256,此属性为连接器所需的控制项。系统默认128字节。系统默认标准80C51汇编选项,此选项为汇编器所需的控制项。选中时,汇编器默认SFR为80C51。项目头文件路径为该项目所定义的头文件所处的路径。该路径与系统定义的头文件路径16在DOS环境设置的关系是Set c51 inc=(系统定义的头文件);(项目定义的头文件路径)项目库文件路径为该项目所定义的库文件所处的路径,该路径与系统定义的头文件路径在DOS环境设置的关系是:Set c51 lib=(统定义的库文件路径);(项目定义的库文件路径)在项目的编译和连接过程中,MedWin自动加入以上环境变量的设置。通常用户需要设置项目定义的头文件和克文件路径,只有在高级应用时才需设置。调试信息15建立新的项目后,系统默认为产生调试信息,能够进行源文件调试。更多的文件属性关于编译/汇编程序的更多的文件属性,可在【项目管理/文件属性】中设置。如果在多模块调试中需要关闭一个或多个文件的源文件调试,可在文件属性对话框中,分别关闭产生调试信息选项。第二步:添加文件命令:【项目管理/添加文件项】添加文件命令用于将各类文件添加至项目管理器,新建项目文件后集成环境会自动打开添加文件对话框,提供选择。请根据:1、如果文件不存在,在文件捡取框中选择并打开文件添加2、如果文件不存在,必须输入文件名(包含扩展名),建立新文件。建立新文件。建新文件后,键入命令【项目管理/添加文件项】,将新建文件添加到项目中。第三步:打开项目文件 命令;【项目管理/打开项目文件】17对于已存在的项目文件,可以直接打开项目文件进入第四步操作。第四步:编辑,编译/汇编/连接 命令:【项目管理/编译/汇编】MedWin集成开发环境根据环境的扩展名,自动对激活的文件选择调用外部编译器或汇编器:1、如果当前文件的扩展名为ASM或系统定义的扩展名,编译/汇编命令调用外部汇编命令对当前文件汇编。2、如果当前文件的扩展名为C或系统定义的扩展名,编译/汇编命令调用外部C编译命令对当前文件编译,文件编译/汇编的命令行参数由【项目管理/文件属性】确定。第五步:错误信息关联文件经过编译/汇编后的结果显示于消息窗口,出现错误后错误信息与文件关联。在消息窗口中错误之处双击鼠标左键或键入回车,即可将错误与文件关联:1、如果没有错误,进入第六步操作。2、如果出现错误,修改文件后重复进行第四步操作。第六步:产生代码并装入仿真器命令:【项目管理/产生代码】23 命令:【项目管理/产生代码并装入】 命令:【项目管理/重新产生全部代码】 产生代码或产生代码并装入命令,对经过编译/汇编无误后产生的OBJ文件进行连接,产生用于下载的代码。此命令对修改过的源程序自动进行编译或汇编,否则将越过编译或汇编过程过程进行连接,并装载代码到仿真器,完成调试文件所需的准备工作。 1、使用产生代码命令,项目管理器会自动判别文件是否需要重新编译/汇编,提高调试效率。 2、使用产生代码并装入命令,项目管理器会自动判别文件是否需要重新编译/汇编,并将连接产生的代码下载到仿真器,提供调试运行。3.5程序设计算法设计 整个程序过程中遇到最大的问题是如何根据测量到的方波频率来计算所测量的电容的大小。 在前面的介绍中我们知道:555时基芯片的输出频率跟所使用的电阻R和电容C的关系是: f=0.772/R*C 又因为 T=1/F 所以 T=R/0.772*C 即C=T*(0.772/R)如果单片机采用12M的晶振,计数器T0的增值加1,时间就增加1us,我们采用中断的方式来启动和停止计数器T0,中断的触发方式为脉冲下降沿触发,第一次中断到来启动T0,计数器的值为N1.第二次中断到来停止T0,计数器的值为N2,则测量方波的周期为T=(N2-N1)*1us,如何开始时刻计数器的值为N1=0,则T=N*10。19简单时序图如下: 图3-1则:C=N*(0.772/R)*10-6单片机的计数器的值N=063535,为了测量的精度,N的取值一般在1005000,当电阻R越大,电容C的值就越小。我们取不同的电阻值,就得到不同的电容测量的量程。第一档:R1=77.2 C=N/100*10-6第二档:R2=772 C=N/100 *10-1*10-6 C=N/100*10-1*1uF第三档:R3=7.72K C=N/100 *10-2*10-6 C=N/100*10-2*1uF第四档:R4=77.2K C=N/100 *10-3*10-6 C=N/100*10-3*1uF 为了编写程序的方便,我们值计算N/100,后面的单位可以根据使用的量程自动添加。3.6 软件设计流程流程图是一种传统的算法表示法,它利用几何图形的框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它简单直观,所以应用广泛,特别是在早期语言阶段,只有通过流程图才能简明地表述算法,流程图成为程序员们交流的重要手段。本次毕业设计在软件设计方面的难度是有点大。图3-2为程序软件流程图20 图3-2 程序设计流程图3.7 编写程序有了前面的对整个系统的分析后面画出的流程图,下面的工作就是根据流程图编写程序。编写程序是一个相当复杂的过程,要求编写人员具有很强的逻辑思维,而且要在对整个系统工作原理相当熟悉的基础上面才能完成任务。在编写程序的时候要养成做注释的习惯,这样既有利于自己以后的修改,又有利于以后程序的维护。尤其是使用汇编语言编写程序的时候更需要注释,因为汇编语言是一门比较低级的语言,跟我们高级语言相比较烦琐。根据上面的流程图,编写程序:#includeSb i t add () =P3 0;Sb i t add1 =P3 1;Sb i t b _ test =P3 7;Sb i t _reset=P3 7;Void Display (void);Void delay (j);UnsignedConver12=0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x79;/ /0-9/ / 0 1 2 3 4 5 6 7 8 9 全灭 E段码共阴Unsigned int T_flag ,N, C, I, Disl, Diso;Void mian()IE=0x81; / /打开全部的中断控制,并开启外部中断允许TMOD=0x03; / /T0为16位计数工作方式1IT0=1; / /设置外部中断的触发的方式为脉冲触发THO=OXOO;TLO=OXOO;T_flag=0;_reset=0; While(1) While(!b_test) / / 如有测量按键输入就往下执行 i=o; _reset=1; / / 启动555时基芯片21 EXO=1; / / 开启中断022 While(_reset) / /超出等待时间,中断还没有出来,就退出 i+; if(i5000) / / 设置最长等待时间 _reset=0; / / 最长等待时间到还没有中断,停止555时基 If(N5000) / / 如果计数值大于5000,显示E,表示应换大一点的量程 Disl=0;Dis0=11; If(N=100&N=5000) C=N/100; / / 计算电容的大小Dis1=C/10; / / 计算电容值的十位Dis0=C-Disl*10; / / 计算电容值的各位Display(); / / 显示电容的大小Void int() (void) interrupt0 / / 第一次中断开始计数,第二个中断停止计数 T_flag=!T_flag; If(T_flag=1) TRO=1; / /开始计时If(T_flag=0) TRO=0; / / 停止计时 EXO=0; / / 关闭中断21_reset=0; / / 停止发出方波N=THO*256+TLO; / / 计算计数器的值THO=0x00; / / 恢复初值TLO=0x00;Void Display()If(Dis1=0) / / 如果十位为0就不显示 Disl=10;add 1=0;add 0=1;P1=converDis1; / / 显示电容大小的十位delay(200);add 1=1;add 0=0;P1=converDis0; / / 显示电容大小的个位delay(200);Void delay(j) While(-j);25第四章 主要元器件介绍4.1 微控制器AT89C2051AT89C2051是美国ATMEL公司生产的低电压,高性能的CMOS 8位单片机,片含2K BYTES的反复擦写的只读程序存储器(PEROM)和128 BYTES的随即存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,功能强大AT89C2051可为设计者提供许多高性价比的应用场合。4.1.1 主要性能参数与MCS-51产品指令系统完全兼容2K字节可重擦写闪速存储器1000次擦写周期2.76V的工作电压范围全静态工作:OHZ-24MHZ两极加密程序存储器128*8字节内部RAM15个可编程I/O口线两个16位定时/计数器6个中断源可编程串行UART通道可直接驱动LED的输出端口内置一个模拟比较器低功耗空闲和掉电模式 4.1.2 功能特性概述AT89C2051提供一下标准功能:2K字节FLASH闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,一个5向量两极中断结构,一个双工串行通信口,内置一个精密比较器,片内振荡器及时钟电路,同时,AT89C2051可降至OHZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉点方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 4.1.3功能说明PDI/SOIC24 图4-1

温馨提示

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

最新文档

评论

0/150

提交评论