毕业设计(论文)基于单片机的电容测量仪设计.doc
《毕业设计(论文)基于单片机的电容测量仪设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的电容测量仪设计.doc(43页珍藏版)》请在咨信网上搜索。
. 基于单片机的电容测试仪设计 前言 目前,随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小。 在电子产品的生产和维修中,电容测量这一环节至关重要,一个好的电子产品应具备一定规格年限的使用寿命。因此在生产这一环节中,对其产品的检测至关重要,而检测电子产品是否符合出产要求的关键在于检测其内部核心的电路,电路的好坏决定了电子产品的好与坏,而电容在基本的电子产品的集成电路部分有着其不可替代的作用。同样,在维修人员在对电子产品的维修中,电路的检测是最基本的,有时需要检测电路中各个部件是否工作正常,电容器是否工作正常。因此,设计可靠,安全,便捷的电容测试仪具有极大的现实必要性。 精选范本 . 1选题背景 1.1电容测试仪的发展历史及研究现状 当今电子测试领域,电容的测量已经在测量技术和产品研发中应用的十分广泛。电容通常以传感器形式出现,因此,电容测量技术的发展归根结底就是电容传感器的发展。由最初的用交流不平衡电桥就能测量基本的电容传感器。最初的电容传感器有变面积型,变介质介电常数型和变极板间型。现在的电容式传感器越做越先进,现在用的比较多的有容栅式电容传感器,陶瓷电容压力传感器等。电容测量技术发展也很快现在的电容测量技术也由单一化发展为多元化。现在国内外做传感器的厂商也比较多,在世界范围内做电容传感器做的比较好的公司有:日本figaro、德国tecsis、美国alphasense。中国本土测量仪器设备发展的主要瓶颈。尽管本土测试测量产业得到了快速发展,但客观地说中国开发测试测量仪器还普遍比较落后。每当提起中国测试仪器落后的原因,就会有许多不同的说法,诸如精度不高,外观不好,可靠性差等。实际上,这些都还是表面现象,真正影响中国测量仪器发展的瓶颈为: 1.测试在整个产品流程中的地位偏低。由于人们的传统观念的影响,在产品的制造流程中,研发始终处于核心位置,而测试则处于从属和辅助位置。关于这一点,在几乎所有的研究机构部门配置上即可窥其一斑。这种错误观念上的原因,造成整个社会对测试的重视度不够,从而造成测试仪器方面人才的严重匮乏,造成相关的基础科学研究比较薄弱,这是中国测量仪器发展的一个主要瓶颈。实际上,即便是研发队伍本身,对测试的重视度以及对仪器本身的研究也明显不够。 2.面向应用和现代市场营销模式还没有真正建立起来。本土仪器设备厂商只是重研发,重视生产,重视狭义的市场,还没有建立起一套完整的现代营销体系和面向应用的研发模式。传统的营销模式在计划经济年代里发挥过很大作用,但无法满足目前整体解方案流行年代的需求。所以,为了快速缩小与国外先进公司之间的差距,国内仪器研发企业应加速实现从面向仿制的研发向面向应用的研发的过渡。特别是随着国内应用需求的快速增长,为这一过渡提供了根本动力,应该利用这些动力,跟踪应用技术的快速发展。 3.缺乏标准件的材料配套体系。由于历史的原因,中国仪器配套行业的企业多为良莠不齐的小型企业,标准化的研究也没有跟上需求的快速发展,从而导致仪器的材 精选范本 . 料配套行业的技术水平较低。虽然目前已有较大的改观,但距离整个产业的要求还有一定距离,所以,还应把标准化和模块化的研究放到重要的位置。还有,在技术水平没有达到的条件下,一味地追求精度或追求高指标,而没有处理好与稳定性之间的关系。上述这些都是制约本土仪器发展的因素。 近年来我国测量仪器的可靠性和稳定性问题得到了很多方面的重视,状况有了很大改观。测试仪器行业目前已经越过低谷阶段,重新回到了快速发展的轨道,尤其最近几年,中国本土仪器取得了长足的进步,特别是通用电子测量设备研发方面,与国外先进产品的差距正在快速缩小,对国外电子仪器巨头的垄断造成了一定的冲击。随着模块化和虚拟技术的发展,为中国的测试测量仪器行业带来了新的契机,加上各级政府日益重视,以及中国自主应用标准研究的快速进展,都在为该产业提供前所未有的动力和机遇。从中国电子信息产业统计年鉴中可以看出,中国的测试测量仪器每年都以超过30%以上的速度在快速增长。在此快速增长的过程中,无疑催生出了许多测试行业新创企业,也催生出了一批批可靠性和稳定性较高的产品。 1.2现今的电容测量技术手段 电容器作为非常重要的一个电学元件在现代电子技术中有着非常广泛的用途,电容定义为:电容器所带的电荷量Q与电容器两极板间的电势差U的比值,即:。这种原始的方法必须通过测量两个物理量来计算电容的大小,而其中的Q是比较难以测量的量。目前常用的两种测量电容的实现方法:一是利用多谐震荡产生脉冲宽度与电容值成正比信号,通过低通滤波后测量输出电压实现;二是利用单稳态触发装置产生与电容值成正比门脉冲来控制通过计数器的标准计数脉冲的通断,即直接根据充放电时间判断电容值。 利用多谐震荡原理测量电容的方案硬件设计比较简单,但是软件实现相对比较复杂,而直接根据充放电时间判断电容值的方案虽然基本上没有用到软件部分,但是硬件却又十分的复杂。而且他们都无法直观的把测量的电容值大小显示出来。 根据上面两种方案的优缺点,本次设计提出了硬件设计和软件设计都相对比较简单的方案:基于AT89C51单片机和555芯片的数显式电容测量。该方案主要是根据555芯片的应用特点,把电容的大小转变成555输出频率的大小,进而可以通过单片机对555输出的频率进行测量。本方案的硬件设计和软件设计都相对简单。 精选范本 . 2 基于单片机电容测量硬件设计 2.1设计方案 本次设计中考虑了三种设计方案,三种设计方案中主要区别在于硬件电路和软件设计的不同,对于本设计三种方案均能够实现,最后根据设计要求、可行性和设计成本的考虑选择了基于AT89C51单片机和555芯片构成的多谐振荡电路的测量的方案。现在一一介绍论证如下: 方案一、利用多谐振荡原理测量电容测量原理如下图所示。电容C电阻R和555芯片构成一个多谐振荡电路。在电源刚接通时(K合上),电容C上的电压为零,多谐振荡器输出为高电平 通过R对电容C充电。当C上冲得的电压= 时,施密特触发器翻转,变为低电平,C又通过R放电,下降。当= 时施密特触发器又翻转,输出又变为高电平,如此往复产生震荡波形。 由理论分析可知 (1) (2) (3) 令 (4) 则 (5) (6) 有式(6)和测得的校准值测量值及存放的软件中的标准电容值C可得出待测电容值。实际应用中也可以通过测量和来算出V0L V0H VT+ CX C0 K0 K1 555 AT8 9C51 LED数码管 图1 电容测量原理图 VC VT- t V0 t 图2 震荡波形图 R 测量误差分析:由式(6)可以看出,经过软件校准后得出的结果与的值有关。这样单片机晶振频率的绝对精度,环境温度的变化和电源电压的绝对精度引起的误差被消除。测量结果主要受标准电容的绝对精度影响,因此应该选择精度高、稳定性好的;其他误差来源包括周期测量的量化误差,除法运算产生的余数误差,电源电压的波动造成谐振频率偏移带来的误差,因此电路要用稳压性能好的稳压电源 这种方法的利用了一个参考的电容实现,虽然硬件结构简单,软件实现却相对比较复杂。 方案二、直接根据充放电时间判断电容值 这种电容测量方法主要利用了电容的充放电特性,放电常数,通过测量与被测电容相关电路的充放电时间来确定电容值。一般情况下,可设计电路使( T为振荡周期或触发时间;A为电路常数与电路参数有关)。这种方法中应用了555芯片组成的单稳态触发器,在秒脉冲的作用下产生触发脉冲,来控制门电路实现计数,从而确定脉冲时间,通过设计合理的电路参数,使计数值与被测电容相对应。其原理框图如图3所示。 反向器 单稳态触发器 显示 窄脉冲触发器 秒脉冲发生器 译码器 锁存器 记数器 标准记数脉冲 图3 电路原理框图 误差分析:这种电容测量方法的误差主要由两部分组成:一部分是由555芯片构成的振荡电路和触发电路由于非线性造成的误差,其中最重要的是单稳态触发电路的非线性误差,(T由充放电时间决定,是被测电容值);另一部分是由数字电路的量化误差引起,是数字电路特有的误差该误差相对影响较小,可忽略不计。 这种方法硬件结构相对复杂,实际上是通过牺牲硬件部分来减轻软件部分的负担,但在具体设计中会碰到很大问题,而且硬件一旦设计好,可变性不大。 方案三、基于AT89C51单片机和555芯片构成的多谐振荡电路电容测量 这种电容测量方法主要是通过一块555芯片来测量电容,让555芯片工作在直接反馈无稳态的状态下,555芯片输出一定频率的方波,其频率的大小跟被测量的电容之间的关系是:,我们固定的大小,其公式就可以写为:,只要我们能够测量出555芯片输出的频率,就可以计算出测量的电容。计算频率的方法可以利用单片机的计数器和中断配合使用来测量,这种研究方法相当的简单。系统框图见图4。 AT89C51 555 晶振电路 被 测 电 容 LCD1602显示 复位电路 测量按键 图4 系统框图 图中给出了整个系统设计的系统框图,系统主要由四个主要部分组成,单片机和晶振电路设计,555芯片电路设计,显示电路设计,复位电路设计。 2.2 硬件设计的任务 AT89C51基本工作电路设计:使单片机正常工作; 时钟电路:为单片机提供时钟信号; 复位电路:为单片机提供高电平复位信号; 555芯片电路:把电容的大小转变成输出频率的大小; 显示电路:显示当前测量电容的大小; 按键电路:开始测量电容; 2.3基于AT89C51电容测量系统硬件设计详细分析 2.3.1 AT89C51单片机工作电路 本设计的核心是单片机电路,考虑到需要一个中断输入,存储容量、外部接口对单片机端口的需要以及兼顾到节约成本的原则,选用了常用的AT89C51单片机。AT89C51是低功耗、高性能、经济的8位CMOS微处理器,工作频率为0—24MHz,内置4K字节可编程只读闪存,128x8位的内部RAM,16位可编程I/O总线。它采用Atmel公司的非易储器制造技术,与MCS51的指令设置和芯片引脚可兼容。AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C51工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。其最简单的工作原理图如下图。 图5 AT89C51单片机工作电路 2.3.2 基于AT89C51电容测量系统复位电路 MCS-51的复位是由外部的复位电路来实现的。MCS-51单片机片内复位,复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。 复位电路通常采用上电自动复位和按钮复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。除了上电复位外,有时还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。 图6 上电复位电路 上图兼有上电复位和按钮复位的电路。在单片机设计中,若有外部扩展的I/O接口电路需初始复位,如果它们的复位端和MCS-51单片机的复位端相连,复位电路中的R、C参数要受到影响,这时复位电路中的R、C参数要统一考虑以保证可靠的复位。如果单片机MCS-51单片机与外围I/O接口电路的复位电路和复位时间不完全一致,使单片机初始化程序不能正常运行,外围I/O接口电路的复位也可以不和MCS-51单片机复位端相连,仅采用独立的上电复位电路。一般来说,单片机的复位速度比外围I/O快些。若RC上电复位电路接MCS-51单片机和外围电路复位端,则能使系统可靠地同步复位。为保证系统可靠复位,在初始化程序中应用到一定的复位延迟时间。 复位电路软件程序跑飞或者硬件发生错误的时候产生一个复位信号,控制MCS-51单片机从0000H单元开始执行程序,重新执行软件程序。此电路的输出端RESET接在单片机的复位引脚。 2.3.3 基于AT89C51电容测量系统时钟电路 时钟在单片机中非常重要,单片机各功能部件的运行都是以时钟频率为基准。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。 内部时钟方式:内部时钟方式电路图如下图所示。 图7 内部时钟电路 MCS-51单片机内部有一个用与构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器电路。 电路中的电容C1和C2典型值通常选择为30PF左右。对外接电容的值虽然没有严格的要求,但是电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率的范围通常是在1.2MHz—12MHz之间。晶体的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。为了提高温度稳定性,应采用温度稳定性能好的NPO高频电容。MCS-51单片机常选择振荡频率6MHz或12MHz的石英晶体。 外部时钟方式:外部时钟方式电路图如下图所示。 图8 外部时钟电路 外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作,以便于同步。对外部脉冲信号只要求高电平的持续时间大于20us,一般为低于12MHz的方波。 外部的时钟源直接接到XTAL2端,直接输入到片内的时钟发生器上。由于XTAL2的逻辑电平不是TTL的,因此要外接一个4.7k~10k的上拉电阻。 这次的设计采用MCS-51的内部时钟方式。因为外部时钟方式是用外部振荡脉冲信号,用于多片MCS-51单片机同时工作。在这次设计中只用一个MCS-51单片机,不需要振荡脉冲信号。 2.3.4 基于AT89C51电容测量系统按键电路 按键是实现人机对话的比较直观的接口,可以通过按键实现人们想让单片机做的不同的工作。键盘是一组按键的集合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。键盘分编码键盘和非编码键盘,案件的识别由专用的硬件译码实现,并能产生键编号或键值的称为编码键盘,而缺少这种键盘编码电路要靠自编软件识别的称为非编码键盘。在单片机组成的电路系统及智能化仪器中,用的更多的是非编码键盘。图9就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的低电平。 图9 按键电路 2.3.5 基于AT89C51电容测量系统555芯片电路 555芯片电路是一种将模拟功能与逻辑功能巧妙结合在同一硅片上的组合集成电路。它设计新颖,构思奇巧,用途广泛,备受电子专业设计人员和电子爱好者的青睐,人们将其戏称为伟大的小IC。1972年,美国西格尼蒂克斯公司(Signetics)研制出Tmer NE555双极型时基电路,设计原意是用来取代体积大,定时精度差的热延迟继电器等机械式延迟器。但该器件投放市场后,人们发现这种电路的应用远远超出原设计的使用范围,用途之广几乎遍及电子应用的各个领域,需求量极大。美国各大公司相继仿制这种电路 1974年西格尼蒂克斯公司又在同一基片上将两个双极型555单元集成在一起,取名为NF556。1978年美国英特锡尔(Intelsil)研制成功CMOS型时基电路ICM555 ICM556,后来又推出将四个时基电路集成在一个芯片上的四时基电路558 由于采用CMOS型工艺和高度集成,使时基电路的应用从民用扩展到火箭、导弹、卫星、航天等高科技领域。在这期间,日本、西欧等各大公司和厂家也竞相仿制、生产。尽管世界各大半导体或器件公司、厂家都在生产各自型号的555/556时基电路,但其内部电路大同小异,且都具有相同的引出功能端。555电路,也称555芯片电路,是一种中规模集成电路。它具有功能强、使用灵活、适用范围宽的特点。通常只要外接少量几个元件,就可构成各种不同用途的脉冲电路以及许多实用电路,如多谐振荡器、单稳态电路及施密特触发器等等。从而能够实现振荡、定时、调光、调压、调速等。555集成电路有双极型和CMOS两种。CMOS型的优点是功耗低、电源电压低、输入阻抗高。对于初学者来说,可以把555电路等效看成一个带放电开关的RS触发器,这个特殊的触发器有两个输入端:阈值端TH可看成是置零端R,要求高电平,触发端R可看成置位端低电平有效。它只有一个输出端Vo,Vo可等效为触发器的Q端。放电端DIS可看成由内部放电开关控制的一个接点,放电开关由触发器的端控制:Q=1时DIS端接地;Q=0时,DIS端悬空。此外,这个触发器还有复位端MR加上低电平(<0.3V)时可使输出为低电平。该特殊的RS触发器有两个输入端,这两个输入端的触发电平要求一高一低,其中置零端R即阈值端TH要求高电平,置位端即触发端则要求低电平,也就是使它们翻转的阈值电压值不同。当VK端不接控制电压时,对TH端(即R端)来讲,大于2/3VDD是高电平1,小于2/3VDD时是低电平0;而对TR端(即端)来讲,大于1/3VDD是高电平1,小于1/3VDD是低电平O。 555芯片电路的应用电路很多,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。在实际应用中,除了单一品种的电路外,还可组合出很多不同电路。本次设计中应用的电路是直接反馈型无稳类电路。电路如图10所示。 图10 555芯片电路 555芯片芯片输出的频率为,只要我们改变电阻R,就可以达到改变电阻量程的目的,图中提供了四组电阻,所以说有四组的电容测量量程,每个量程之间的跨度是10倍的关系。 在555芯片输出方波后,由于硬件的原因,输出的方波会有很多毛刺,为了去除这些毛刺本设计中使用了一个两输入与门(74HC08),让信号通过74HC08后会使输出的波形毛刺减少很多,使单片机的测量结果变得精确。 图11 74HC08电路 没有加74HC08之前输出的波形如下 图12 没加74HC08输出波形 加了74HC08之后的输出波形如下 图13 加了74HC08输出波形 二者的比较如下 图14 二者的比较 2.3.6 基于AT89C51电容测量系统显示电路 LCD以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里我们使用的是2行16个字的1602液晶模块。 图15 LCD1602引脚图 1602 采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度 第4 脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线, 高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW 为低电平时可以写入数据。 第6 脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A” 表1 CGROM和CGRAM中字符代码与字符图形对应关系 1602液晶模块内部的控制器共有11 条控制指令,其控制命令如下表所示。 表2 LCD1602内部11条控制指令 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1 为高电平、0 为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置 指令2:光标复位,光标返回到地址00H 指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(有些模块是 DL:高电平时为8位总线,低电平时为4位总线) 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据指令11:读数据 LCD1602液晶显示模块可以和单片机AT89C51直接接口,电路如下图所示。 图16 LCD1602与AT89C51连接图 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下表是LCD1602的内部显示地址 表3 LCD1602内部显示地址 图17 LCD1602显示电路 2.4 各部分电路连接成整个电路图 当各个部分的电路设计完成后,下面的工作就是组合成一个总的电路图。现今用的最多的电路设计软件就是Proteus,Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA 精选范本 . 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,目前已增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 图18 总电路图 精选范本 . 3 基于单片机电容测量软件设计 3.1 软件设计 软件设计是一个创造性的过程,对一些设计者来说需要一定的资质,而最后设计通常都是由一些初步设计演变而来的。从书本上学不会设计,只能经过实践,通过对实际系统的研究和实践才能学会。对于高效的软件工程,良好的设计是关键,一个设计得好的软件系统应该是可直接实现和易于维护、易懂和可靠的。设计得不好的系统,尽管可以工作,但很可能维护起来费用昂贵、测试困难和不可靠,因此,设计阶段是软件开发过程中最重要的阶段。 直到最近,软件设计在很大程度上仍是一个特定过程。一般用自然语言给定一个需求集,预先作非正式设计,常常用流程图的形式说明,接着开始编码,当系统实现时设计还需修改。当实现阶段完成后,设计往往已与起初形式相去甚远以至于设计的原始文档完全不适合对系统的描述。 3.2 软件设计任务 软件设计主要是针对硬件设计里面的控制部分的,这里指AT89C51单片机,一般的单片机均可用汇编语言和C语言进行编程。C语言直观,相对比较的简单,但占用的程序存储器的内存比较大,汇编语言是针对硬件设计的语言,如果想用汇编语言设计的话必须要对硬件有很大的了解,相对C语言就比较的复杂,但是比较的精简,占用的程序存储器的空间比较的小。作为还在学生阶段的我们,用汇编语言进行编程对我们理解单片机的内部结构、资源都有很好的帮助,但是C语言编程在以后的实际工作中将会大大简化自己的工作。因此本论文的程序都是基于C语言的。要完成的任务是:初始化程序设计、按键程序设计、中断处理程序,计数器计数程序,显示程序设计等。 3.3 软件设计的工具 本次毕业设计所选用Keil C51中的编译/连接器软件Keil uVision2作为编译器/连接工具。 3.4 程序设计算法设计 整个程序设计过程中遇到的最大的问题的如何根据测量到的方波的频率来计算所测量的电容的大小。在前面的介绍中我们知道:555时基芯片的输出频率跟所使用的电阻R和电容C的关系是: 又因为,所以 (7) 即: (8) 如果单片机采用12M的晶振,计数器T0的值增加1,时间就增加1μS ,我们采用中断的方式来启动和停止计数器T0,中断的触发方式为脉冲下降沿触发,第一次中断到来启动T0,计数器的值为,第二次中断到来停止T0,计数器器的值为,则测量方波的周期为,如何开始时刻计数器的值,则。 简单时序图如下。 T 555输出的方波 启动T0 停止T0 图19 时序图 则: (9) 单片机的计数器的值N=0-65535,为了测量的精度,N的取值一般在100~5000,当电阻R越大,电容C的值就越小。我们取不同的电阻值,就得到不同的电容测量的量程。 第一档: 1~50uF 第二档: 0.1~5 uF 第三档: 0.01~0.5 uF 第四档: 0.001~0.05 uF 为了编写程序的方便,我们只计算,后面的单位可以根据使用的量程自行添加。测量范围的大小0.001uF~655.35uF。 3.5 软件设计流程 流程图是一种传统的算法表示法,它利用几何图形的框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它简单直观,所以应用广泛,特别是在早期语言阶段,只有通过流程图才能简明地表述算法,流程图成为程序员们交流的重要手段。 本次毕业设计在软件设计方面的难度是有点大。图20为整个程序设计的流程。T0,INT0 初始化 启动555 有无中断 有无按键 有无中断 启动计数器T0 停止计数器T0 计算电容的大小 显示电容值 有无按键 N Yn N Y N Y N Y 图20 程序设计流程图 3.6 编写程序 有了前面的对整个系统的分析后画出的流程图,下面的工作就是根据流程图编写程序。编写程序是一个相当复杂的过程,要求编程人员具有很强逻辑思维,而且要在对整个系统工作原理相当熟悉的基础上面才能完成任务。在编写程序的时候要养成作注释的习惯,这样既利于自己以后的修改,又利于以后程序的维护。尤其是使用C语言编写程序的时候更是要注释,因为C语言是一门比较高级的语言,C语言比较的烦琐。当然编写程序遇到困难的时候还需要很大技巧。 根据上面的流程图,编写程序: #include "reg51.h" #include"intrins.h"//库函数 #define DATA P0 sbit RW=P2^1;//1602写数据 sbit RS=P2^0;//1602写地址 sbit EN=P2^2; //1602工作使能 sbit b_test=P3^7; //开始测量电容的按键输入 sbit _reset=P3^5; //555时基芯片工作控制信号 unsigned int T_flag,N,C,i,Dis1,Dis0; unsigned int b[6]={0X13,0X0D,0X00,0X00,0X25,0X16}; //显示C=00UF /***********延时1MS******************/ void Delay1ms(unsigned int mm) {unsigned int i; for(mm;mm>0;mm--) for(i=100;i>0;i--); } /***************检查忙否*****************/ void Checkstates() { unsigned char dat; RS=0; RW=1; do{EN=1;//下降沿 _nop_();//保持一定间隔 _nop_(); dat=DATA; _nop_(); _nop_(); EN=0; }while((dat&0x80)==1); } /**************LCD写命令函数*********/ void wcomd(unsigned char cmd) { Checkstates(); RS=0; RW=0; DATA=cmd; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0; } /**********LCD写数据函数**************/ void wdata(unsigned char dat) { Checkstates(); RS=1; RW=0; DATA=dat; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0; } /*****************初始化********************/ void LCDINIT() { Delay1ms(15); wcomd(0x38);//功能设置 Delay1ms(5); wcomd(0x38);//功能设置 Delay1ms(5); wcomd(0x01);//清屏 Delay1ms(5); wcomd(0x08);//关显示 Delay1ms(5); wcomd(0x0c);//开显示,不开光标 } /***********显示函数**************/ void Display(void) //显示函数 { unsigned char i,j; unsigned char a[12]={0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53};//显示measurements LCDINIT(); for(i=0;i<12;i++)//写显示第一行 { wcomd(0x80+i); Delay1ms(1); wdata(a[i]); Delay1ms(1); } for(j=0;j<6;j++)//写显示第二行 { wcomd(0xc0+j); Delay1ms(1); wdata(0x30+b[j]); Delay1ms(1); } Delay1ms(150); } void main() { IE=0x81; //打开全部的中断控制,并开启外部中断允许 TMOD=0x09; //T0为16位计数工作方式1 IT0=1; //设置外部中断的触发的方式为脉冲触发 TH0=0x00; TL0=0x00; T_flag=0; _reset=0; while(1) { while(!b_test) //如果有测量按键输入就往下执行 { i=0; _reset=1; //启动555时基芯片 EX0=1; //开启中断0 while(_reset) //超出等待时间,中断还没有过来,就退出 { i++; if(i>5000) //设置最长等待时间 { _reset=0; //最长等待时间到还没有中断,停止555 } } if(N<100) //如果计数值小于100,显示SM,表示应换用小一点的量程 { b[3]=0X1D; b[2]=0X23; } if(N>5000) //如果计数值大于5000,显示LA,表示应换用大一点的量程 { b[3]=0X11; b[2]=0X1C; } if(N>=100 && N<=5000) { C=N/100; //计算电容的大小 b[2]=C/10; //计算电容值的十位 b[3]=C-b[2]*10; //计算电容值的各位 } } Display(); //显示电容的大小 } } void int0(void) interrupt 0 //第一次中断开始计数,第二个中断停止计数 { T_flag=!T_flag; if(T_flag==1) { TR0=1; //开始计时 } if(T_flag==0)- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 单片机 电容 测量仪 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文