基于单片机的RLC测试仪设计论文_第1页
基于单片机的RLC测试仪设计论文_第2页
基于单片机的RLC测试仪设计论文_第3页
基于单片机的RLC测试仪设计论文_第4页
基于单片机的RLC测试仪设计论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、 PAGE39 / NUMPAGES44 毕业设计(论文) 基于单片机的RLC测试仪设计Design of RLC Instrument Based on SCM : 孟 松 : 电气与信息学院 : 电子信息工程 : 0441 : 张 学 敏 : 讲 师 : 2008年 6月 20日 学生XX所在院系所学专业所在班级指导教师教师职称完成时间长 春 工 程 学 院摘 要随着电子技术的发展,产品智能化、数字化已成为人们追求的一种趋势,尤其对电子设备的精密度和稳定度最为关注。现在使用的RLC测试仪大都是硬件电路往往比较复杂,体积比较庞大,不便携带,而且价格比较昂贵,而且对初学者来说很不方便。所以本设

2、计设计了基于AT89S51单片机控制的RLC测试仪。利用单片机的运算和控制功能,方便地实现对R、L、C的参数的测量。可在硬件结构不变的情况下,同时用软件程序代替一些硬件测量电路。能够很好的完成对RLC参数的测量。本设计通过插值算法使测量结果精度得到了有效的提高,同时通过数字惯性滤波法避免了读数的跳动,使得读取测量结果更加方便。本设计正是应社会发展的要求,研制出一种价格便宜和操作简单、自动转换量程、体积更小、功能强大、便于携带的RLC测试仪。关键词单片机 RLC测试仪 插值算法 数字滤波AbstractWith the develop of electronic technology,the p

3、roductsintelligentize and digitized has become a trend which is pursued by human ,Especially for electronic equipment precision and stability .TheRLC testers now are used mostly hardware circuits ,which are complex, large volume comparison, inconvenience to carry, and price is more expensive and inc

4、onvenient for beginners.Therefore, the design of the RLC tester based on AT89C51 SCM is necessary. using the SCMs operation and control functions to realize the measure of the R, L, C parameters expediently.In the case of the hardware structure remain unchangable, using a software program to replace

5、 some hardware measuring circuit,which can complete the measure of RLC parameters very well.The design improves the resultsmeasuring accuracy by using the interpolation algorithm effectively, at the same time through a filtering method to avoid reading the beat, making it more convenient to read the

6、 measuring results. The design is conformed to the social development, developed a cheap and simple, automatic conversion range and smaller size, and portable RLC Tester.Key word:Single chip microRLC measuring meterInterpolation algorithmDigital filtering目 录 TOC o 1-2 h z u HYPERLINK l _Toc170881564

7、1 引言1 1.HYPERLINK l _Toc1708815641 课题设计目的意义1HYPERLINK l _Toc1708815641.2 课题设计容1HYPERLINK l _Toc1708815641.3 技术要求1 1.4 拟解决关键问题2 1.5 课题的来源HYPERLINK l _Toc1708815722 1.6 课题的围HYPERLINK l _Toc1708815722HYPERLINK l _Toc1708815652 总体方案设计2HYPERLINK l _Toc1708815652.1 方案一22.HYPERLINK l _Toc1708815722 方案二4HYP

8、ERLINK l _Toc1708815722.3 方案选择4HYPERLINK l _Toc1708815722.4 系统原理框图4HYPERLINK l _Toc1708815723 硬件设计5HYPERLINK l _Toc1708815723.1 测电阻Rx的RC振荡电路53.2 测量电容Cx的RC振荡电路HYPERLINK l _Toc1708815726HYPERLINK l _Toc1708815723.3 测量电感Lx的电容三点式振荡电路7HYPERLINK l _Toc1708815723.4 模拟开关8HYPERLINK l _Toc1708815723.5 89C81单片

9、机113.6 LED数码管显示器HYPERLINK l _ToYPERLINK l _Toc1708815724 软件设计21HYPERLINK l _Toc1708815724.1 主程序流程图21HYPERLINK l _Toc1708815724.2 频率的测量方法和误差分析21HYPERLINK l _Toc1708815724.3 稳定读数24HYPERLINK l _Toc1708815725 总结25HYPERLINK l _Toc170881572参考文献26HYPERLINK l _Toc170881572致 27附 录HYPERLINK l _To

10、c170881572281引言1.1 课题的目的和意义现在我们所使用过的RLC测试仪最典型的就是万用表,但是万用表在使用过程中如果操作不当非常容易产生误差,随着社会的发展测试仪的应用越来越广泛,我们发现仪表模式的测试仪使用起来越来越不方便。随着电子技术的发展,数字电路应用领域的扩展,软件技术的高度发展与其在电子测量技术与仪器上的应用,新的测试理论、新的测试方法、新的测试领域以与新的仪器结构不断出现,产品智能化、数字化已成为人们追求的一种趋势,设备的性能,价格,发展空间等备受人们的关注,尤其对电子设备的精密度和稳定度最为关注。在许多方面已经冲破了传统仪器的概念,电子测量仪器的功能和作用发生了质的

11、变化。当今社会,对RLC的测试虽然已经很成熟了,但是价格和操作简单特别是智能方面有待发展,价格便宜和操作简单、智能化的仪表开发和应用存在巨大的发展空间,本设计正是应社会发展的要求,研制出一种价格便宜和操作简单、自动转换量程、体积更小、功能强大、便于携带的RLC测试仪,充分利用现代单片机技术,研究了基于单片机的智能RLC测试仪,人机界面友好、操作方便的智能RLC测试仪,具有十分重要的意义。本设计是用振荡电路把RLC的参数转换成频率,再用单片机计算频率,然后对其值进行补偿后再显示RLC的值,所以用起来非常方便而且价格便宜、精确度高,测量误差保持在5%以。本设计是基于8051单片机控制的智能RLC测

12、试仪,利用单片机对R、L、C的参数进行测量,可以充分利用单片机的运算和控制功能,方便地实现测量,使测量精度得到提高。同时用软件程序代替一些硬件测量电路。能够很好的完成对RLC参数的测量,以满足现代测控系统的需要。本仪表通过插值算法使测量结果精度得到了有效的提高,同时通过数字惯性滤波法避免了读数的跳动,使得读取测量结果更加方便。1.2 课题设计容设计一个带数字显示的电阻,电容和电感测试仪。采用89C51单片机为主要控制环节,通过振荡电路把参数转换成频率信号,再由模拟开关控制输入信号,并通过单片机对输入的信号进行计数和运算,最后在LED数码显示管上显示出被测原件的大小。并通过发光二极管指示出原件的

13、类别和单位。1.3 技术要求测量围:电阻100欧姆到1M欧姆,电容100pF到10000pF,电感100uH到10mH。测量精度:+5%用4位数码显示器,显示测量数值,并用发光二极管分别指示所测原件的类别和单位。测量量程能够自动转换。有设计方案比较,理论分析和计算,测试结果分析。1.4 拟解决关键问题对RC震荡和LC三点式振荡的振荡器的设计和相关计算。在设计中要把电子元件的集中参数R、C、L转换成频率信号,而实现这一转换的原理分别是RC震荡和LC三点式振荡。所以要对振荡器进行设计。只有实现了转换才能进行下面的工作。8051单片机的软件程序的设计和调试。经过转换后的信号要经过计数和运算才能得到我

14、们所需要的数值,这就需要我们根据需要利用8051单片机进行编程,同时这个程序对整个系统也起着控制作用。这是一个重要的环节,要经过反复的编写程序和调试。测量量程的自动转换减小测量的误差。1.5 课题的来源随着社会发展的需求,测试仪应用的广发,老式的测试仪越来越不能满足社会的需求,基于这这一触发点需要完成一套智能型的适应需求的RLC测试仪。1.6 课题的围依据不同的划分依据,可以将课题的围划分为如下几种:以课题涵盖的知识分类来说,课题涉与到模拟电子学、数字电子学、单片机等学科,各学科的交织在一起,各自完成着各自的功能,再有机的整各在一起,就形成了一个完整的具备RLC测试功能的系统。以课题设计电路的

15、类别来说,包涵硬件电路和软件电路。现时代的各种先进仪器设备,均具备一样的一个特点,那就是软硬件电路的整合。传统意义上的硬件电路已经不能满足当今社会日益发展的功能要求,而只有两者相互结合的设计,各取所长,才能满足设计的要求。以课题设计的用途来说,精度高,稳定性好,体积小、随身携带性强、重量轻巧的系统更适用于各领域测试的需求。2总体方案设计2.1方案一RLC参数的测量方法主要有电桥法、谐振法和伏安法2.11 电桥法 电桥法是能同时测量电器元件R、L、C最典型的方法,如图1所示。电阻R可用直流电桥测量,电感L、电容C可用交流电桥测量。电桥平衡的条件为GZ1Z2ZxZn图2-1 RLC测量电桥通过调节

16、阻抗Z1、Z2使电桥平衡,这时电表读数为零。根据平衡条件与一些已知的电路参数就可以求出被测参数。用这种测量方法,参数的值还要通过联立方程求解,调节电阻值一般只能手动,电桥平衡的判别亦难以用简单的电路实现。这样,电桥法不易实现自动测量。2.12谐振法谐振法可以用来测量L、C值,如图2所示。它可以在工作频率上进行测量,使测量的条件更接近使用情况。但是,这种测量方法要求的频率连续可调,直至谐振。因此它对震荡器要求较高,另外,和电桥法一样,调节和平衡判断很难实现智能化。图2-2 谐振法测量L、C原理图2.13 伏安法 伏安法是测量电阻的最基本方法,如图2-3所示。分别用电流表和电压表测出通过电阻的电流

17、和电压,根据公式R=U/I求得电阻。这种测量方法要同时测出两个模拟量,不易实现自动化。而指针式万用表欧姆挡是把被测电阻与标准电阻与电池串联,用电流表测出电流,由于被测电阻与电流一一对应,由此就可读出被测电阻阻值,如图2-4所示。这种测量的方法的精度变化大,若要较高的精度,必须较多的量程,电路复杂。AVRx图2-3 伏安法测量电阻原理图图2-4 万用表测量电阻原理图以上各种方法都难以实现智能化,因此没有被本设计采用。很多测试仪都是把较难测量的物理量转变精度较高且较容易测量的物理量。基于此思路,我们把电子元件的集中参数R、C、L转换成频率信号f,然后用单片机计数后再运算求出R、C、L的值 ,并显示

18、,转换的原理分别是RC震荡和LC三点式振荡。其实,这种转换就是把模拟量近似地转化为数字量,另一方面也避免了由指针读数引起的误差。2.2方案二利用振荡器把电子元件的集中参数R、C、L转换成频率信号,通过模拟开关输入,然后通过单片机的计数和运算求出RLC的值,最终在显示器上显示出来。2.3方案选择方案二与方案一相比较,方案二的产品比方案一的产品体积小,操作简单,应用更加广泛。而且成本也较低,功能强大、便于携带。且精度高,适应仪器发展的需求。基于以上,我们选择第二种方案。2.4系统原理框图系统原理框图如图2-5所示。单片机模拟开关频率功能选择按键LED显示器RC振荡器RC振荡器电容三点式振荡器被测电

19、阻被测电容被测电感图2-5 系统原理框图3 硬件设计3.1测电阻Rx的RC振荡电路图6是一由555电路构成的多谐振荡电路。它的振荡周期为即 (1)式中,。为了避免直接采用式(1)来计算时由于某种原因引起的非线性误差,本设计引入了直线插值算法,做法如下:用本设计去测量标准电阻R0、R1Rn,记下测得相应的周期T0、T1Tn,得到基准点(R0,T0)、(R1,T1)(Rn,Tn),则有(i=0,1,n)测量未知电阻Rx时,测得的周期为T,若,则联立以上三式,得(2)用式(2)计算Rx时,结果与电路中的元件参数无关,这样可以避免电路元件带来的误差。通过选用高精度的基准电阻和增加基准点的个数,便可使测

20、量结果的误差在允许的围。图3-1 测电阻Rx的RC振荡电路3.2 测量电容Cx的RC振荡电路如图7所示,测量Cx的RC振荡电路与测Rx的振荡电路完全一样。取R1=R2,则式中。与测量电阻的过程相似,通过标准电容的测量可以得到基准点,当测量未知电容得到相应的脉冲周期为T时,有 (3)图3-2 测量电容Cx的RC振荡电路3.3 测量电感Lx的电容三点式振荡电路 如图8所示,在电容三点振荡电路中,C1、C2分别采用1000pF和2200pF的独石电容,其电容值远大于晶体管极间电容,可以把极间电容忽略。这样根据振荡频率公式: (4)其中对于10uH的电感由于单片采用12MHz晶振晶,最快只能计几百kH

21、z的频率,因此在测电感这一档时,应分频后再送单片机计数。由式(4)得,其中通过对一些标准电感的测量,可得到一些基准点,,当测量未知电容得到相应的脉冲周期的平方为时,由直线插值法可得(5)图3-3 测量电感Lx的电容三点式振荡电路3.4 模拟开关模拟开关是一种三稳态电路,它可以根据选通端的电平,决定输人端与输出端的状态。当选通端处在选通状态时,输出端的状态取决于输人端的状态;当选通端处于截止状态时,则不管输人端电平如何,输出端都呈高阻状态。模拟开关在电子设备中主要起接通信号或断开信号的作用。由于模拟开关具有功耗低、速度快、无机械触点、体积小和使用寿命长等特点,因而,在自动控制系统和计算机中得到了

22、广泛应用。3.41模拟开关的电路组成与工作原理 图3-4 模拟开关的电路组成模拟开关电路由两个或非门、两个场效应管与一个非门组成,如图一所示。模拟开关的真值表如下表3-1 模拟开关的真值表EAB10011100高阻状态01高用状态模拟开关的工作原理如下: 当选通端和输人端同为1时,则S2端为,1端为,这时1导通,2截止,输出端输出为,=,相当于输入端和输出端接通。 当选通为0时,而输人端为时,则S2端为1,S1端为,这时1截止,VT2导通,输出端为,也相当于输人端和输出端接通。 当选通端为时,这时1和2均为截止状态,电路输出呈高阻状态。 从上面的分析可以看出,只有当选通端为高电平时,模拟开关才

23、会被接通,此时可从向传送信息;当输人端为低电平时,模拟开关关闭,停止传送信息。 3.42 常用的CMOS模拟开关集成电路 根据电路的特性和集成度的不同,模拟开关集成电路可分为很多种类。现将常用的模拟开关集成电路的型号、名称与特性列入表3-2中。表3-2 常用的模拟开关类别型号名称特点模拟开关CD4066四双向模拟开关四组独立开关,双向传输多路模拟开关CD40518选1模拟开关电平位移,双向传输,地址选择CD4052双4选1模拟开关电平位移,双向传输,地址选择CD4053三路2组双向模拟开关电平位移,双向传输,地址选择CD4067单16通道模拟开关电平位移,双向传输,地址选择CD4097双8通道

24、电路模拟开关电平位移,双向传输,地址选择CD4529双四路或单八路模拟开关电平位移,双向传输,地址选择3.43单八路模拟开关CD4051根据设计需求我们选用的是CD4051模拟开关图3-5 CD4051CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定。其真值表见表1。“INH”是禁止端,当 “INH”=1时,各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的 CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15V的交流信号。例如,若模拟开关的供电电源VD

25、D=5V, VSS=0V,当VEE=5V时,只要对此模拟开关施加05V的数字控制信号,就可控制幅度围为5V5V的模拟信号。 表3-3 输入状态与接通通道输入状态INH000000001C000001111B00110011A01010101接通通道01234567均不接通在设计中我们只需用3个通道即可。3.5 89C51单片机3.51单片机综述微处理器CPU微处理器是微型电子计算机的心脏或指挥中心,所以人们又称这个关键部件叫中央处理器,简称为CPU。现在人们可以把CPU、存储器、I/O接口等功能部件都集成到,一块芯片上。这神芯片能够完成微机相应部分的功能,人们称它为单片微型计算机,简称单片机。

26、单片机目前还没有一个确切的定义。普遍以为单片机是将CPU,RAM,ROM、定时器/计数器以与输入/输出(I/O)接口电路等计算机主要部件集成在一块芯片上,这样所组成的芯片级微型计算机称为单片微型计算机(Single Chip Microcomputer),简称为单片机微型机或单片机。由于单片机的硬件结构与指令系统都是按工业控制要求设计的,常用于工业的检测、控制装置中、因而也称为微控制器(Micro-Cotroller)或嵌入式控制器(Ebeddsed-Controller)。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片含4k bytes的可反复擦写的Flash只

27、读程序存储器和128 bytes的随机存取数据存储器(RAM ),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。本设计选用的单片机是Intel 公司生产的AT89C51,其具备微型化、低功耗、高速化、集成资源多、性能优异而且价格便宜等优点。在本设计中利用单片机主要目的是为了,实现广告灯的智能闪烁,从而实现多种花样显示,同时也用于控制固态继电器的开通与关断。利用单片机实现的有利条件是价格便宜,而且容易实现便于修改。3.52

28、 AT89C51单片机功能特性概述AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片振荡器与时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口与中断系统继续工作。掉电方式保存RAM中的容,但振荡器停工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51单片机引脚图3.3如下所示:图3-6 AT89C51单片机引脚图AT89C51单片机引脚功能说明:Vcc:电源电压

29、GND:地P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。Pl口:P1是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过部的上拉电阻时把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻

30、,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,P1接收低8位地址。P2口:P2是一个带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令) 时,P2口线上的容(也即特殊功能寄存器(SFR )区中R2寄存

31、器的容),在整个访问期间不改变Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3口:P3口是一组带有部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阳输出电流(IIL)。P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表3-4所示:表3-4 P3引脚的第二功能表P3.0 RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时计数器1)P3.6

32、(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(FRZG)如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁ALE操作。该位置位后,只有一条MOVX和MOV

33、C指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。:程序储存允许()输出是外部程序存储器的读选通信号,当 AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次T触发下有效,即输出两个脉冲。在此期间,访问外部数据存储器,这两次有效的信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源

34、Vpp,,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放人器的与部时钟发生器的输入端。XTAL2:振荡器反相放人器的输出端3.53 部分模块介绍(1)时钟振荡器:AT89051中有一个用于构成部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或瓷谐振器一起构成自激振荡器,振荡电路参见图3.7。外接石英晶体(或瓷谐振器)与电容C1, C2接在放人器的反馈回路中构成并联振荡电路。对外接电容C1, C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序与

35、温度稳定性,如果使用石英晶体,推荐电容使用30pF10pF,而如使用瓷谐振器建议选择40pFl0F。用户也可以采用外部时钟。采用外部时钟的电路如图3.7右图所示。这种情况下,外部时钟脉冲接到XTAL1端,即部时钟,发生器的输入端,XTAL.2则悬空。 部振荡电路 外部振荡电路 石英晶体时:C1,C2=30pF10pF 瓷谐振器:C1,C2=40pF10pF图3-7振荡器电路图由于外部时钟信号是通过一个2分频触发器后作为部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。(2)空闲节电模式:AT89C51有两种可用软件编程的省

36、电模式,它们是空闲模式和掉电工作模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的即(PCON. 1)和IDL. (PCON.0)位来实现的。即是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL.是空闲等待方式,当IDI=1,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。在空闲工作模式状态,CPU保持睡眠状态而所有片的外设仍保持激活状态,这种方式由软件产生。此时,片RAM和所有特殊功能寄存器的容保持不变。空闲模式可由任何允许的中断请求或硬件复负位终止。(3)终止:空闲工作模式的方法有两种,其一是任

37、何一条被允许中断的事件被激活,IDL. ( PCON. 0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI,(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后而的一条指令。其二是通过硬件复位也可将空闲工作模式终止需要注意的是,当硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,部禁止CPU访问片RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令

38、不应是一条对端口或外部存储器的写入指令。(4)掉电模式: 在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片RAM和特殊功能寄存器的容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件负位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。空闲和掉电模式外部引脚状态如下表3-5所示:表3-5 空闲和掉电模式外部引脚状态模 式程序存储器ALEP0P1P2P3空闲模式部11数据数据数据数据空闲模式外部11浮空数据地址数据掉电模式部00数据数据数据数据掉电模式外部00浮空数据数据数

39、据(5) 定时/计数器在单片机应用系统中,常需要对外部脉冲进行计数或者每隔特定时间执行某一操作,因此定时/计数器是单片机控制系统重要的外设部件之一,几乎所有的单片机控制系统均有一个到数个定时/计数器。51系列单片机置了三个16位的定时/计数器,分别称为T0,T1,T2。 定时/计数器的核心部件是一个加法(或减法)计数器,可工作在定时方式或计数方式,因此称为定时/计数器。不过这两种工作方式没有本质的区别,只是计数脉冲来源不同而已:如果计数脉冲是频率相对稳定的系统时钟信号(一般是系统时钟的分频信号)时,则称为定时方式;反之,当计数脉冲取自CPU I/O引脚的外部信号时,称为计数方式。单片机定时/计

40、数器属于可编程部件,除了加法计数器(部分单片机芯片采用减法计数器 )外,尚有工作方式控制寄存器,一般具有如下特点:工作方式寄存器。定时/计数器有多种定时或计数方式,使用前必须初始化工作方式寄存器,设置定时/计数器的工作方式(定时还是计数;硬件启动还是软件启动;计数长度即作为16计数器使用还是8位计数器使用等)可以从0开始计数,也可以从特定值开始计数,因此定时/计数器是一个可读写的寄存器,使用前一般需要设置定时/计数器的初值。对于每来一个脉冲加1的定时/计数器,当计数器溢出时,可向CPU发出中断请求(定时时间到),以便CPU处理。(6) 寄存器 通用寄存器 R0R7,分成四组,共占据32个单元(

41、片RAM),由程序状态字PSW的第4、第3位选择。表3-6 RS1、RS0对工作寄存器的选择RS1、RS0R0R7 组号地址00100H07H01208H0FH10310H17H11418H1FH 专用寄存器SFR累加器A(Accumulator):地址EOH,运算指令的目标寄存器,存放操作数和运算结果:也是用于访问外部存储器的唯一寄存器。B寄存器(B Register):地址FOH,专用于乘除法指令,存储数据、乘/除数;亦用作通用寄存器。程序状态字PSW:又称为标志寄存器,地址DOH,可位寻址。定义为:Cy: 进位标志:有进/借位时,Cy=1.亦为位操作累加器。Ac:半进位标志。FO: 用户

42、标志,由用户自行设置,在程序运行中标识某种状态。OV: 溢出标志:指示是否溢出,用于判断A中运算结果是否正确。最高进位CP=0,次高位进位CS=1,OV=CPCS=1,溢出(D7=1为负数,于事实不符) P: 奇偶标志(标识Acc中当前奇偶状态,为A中1的个数之和,P1为奇)。RS1、RS0:当前工作寄存器组编号值,可在程序中设定。F0,RS1,RS0均由用户设定。复位后PSW0。若执行前F0=0,RS1=0,RS0=0,则上例PSW(CyACF0RS1RS0OVP)=0100 0100B(d) 堆栈指针SP(Stack Pointer ):地址81H。复位后SP07H,占用了通用寄存器堆Rn

43、的位置。主要作用,保存断点地址。注意:数据压栈前SPSP1,先入后出。PUSH ACC;SP=SP+1, (SP)ACC。表3-7 MCS-51堆栈特点堆栈特性MCS-518086部/外部部外部堆栈指针位数8位16位操作方式单字节操作字操作堆栈方向上堆式 入栈SP+1,出栈SP-1下推式 入栈SP-2,出栈SP+2栈指针复位状态07H(建议设置为60H)(e) 数据指针DPTR(Data Pointer):16位寄存器,由两个八位寄存器DPH(82H)和DPL(83H)组成。作用:保存访问外部数据存储器或I/O端口的地址。DPH与DPL可作为通用寄存器使用。程序计数器PC(Program Co

44、unter):又称程序指针。16位寄存器,为CPU提供当前待取指令的地址。CPU每读取一个字节的指令容,PC即自动加1(PCPC+1)。复位后PC0。不能在程序中直接读或修改PC的容。端口03锁存器(P0P3): 地址:80H,90H,AOH,BOH.串口数据缓冲器SBUF(Serial Data Buffer):地址:99H其它控制寄存器:中断优先IP,中断允许IE,定时器方式TMOD,定时器控制TCON,串口控制SCON,电源控制PCON等6个。MCS51 时序 时钟(主频)振荡器产生的方波脉冲信号,是CPU工作时序中最小的时间单位。标准频率为12MHz,即T0。083S。 机器周期实现特

45、定功能(如一条指令)所需时间。一个机器周期12个时钟(振荡)周期,分成6个状态( S1S6),每个状态分成P1、P2两拍:S1P1,S1P2,S6P1,S6P2; 指令周期执行一条指令所需时间,随指令不同而变。如单周期指令,双周期指令等。上图为单字节单周期读指令波形示意图。 指令时序单字节单周期指令时序:一个机器周期完成一条指令,读一次操作码。双字节单周期指令时序:一个机器周期完成一条指令,读两次。单字节双周期指令时序:两个机器周期完成一条指令,读一次。访问片外ROM/RAM时序:读片外ROM时序MOVC A, A+DPTR准备(无效状态),操作码地址送P0、P2口,锁存低8位地址,CPU读指

46、令码,译码,发控制命令,操作数地址送P0、P2口,锁存低8位地址,读操作数,送至A。读片外RAMMOVX A, DPTR操作码(MOVX)地址送P0、P2口,锁存低8位地址;CPU读指令码,译码,发控制命令;操作数地址(存于DPTR中)送P0、P2口,锁存低8位地址;读RAM中操作数(低有效),送至A。3.6 LED数码管显示器LED数码管是单片机控制系统中最常用的显示器件之一,LED数码管在单片机系统中的地位类似于CRT(阴极射线管)显示器在台式微机系统中的地位。在单片机系统中,常用一只到数只,甚至十几只LED数码管现实CPU的处理结果、输入/输出的状态或大小。LED数码管的外观、引脚与笔段

47、排列如图13(a)所示,其中a到g段用于显示数字、字符的笔画,dp显示小数点,而3、8引脚连通,作为公共端。一英寸以下的LED数码管,每一笔段含有一只LED发光二极管,导通压降为1.2到2.5V;而一英寸与以上LED数码管的每一笔段由多个LED发光二极管以串、并联方式连接而成,笔段导通电压与笔段包含的LED发光二极管的数目和连接方式有关。在串联方式中,确定电源电压VCC时,每个LED工作电压通常以2.0V计算,根据LED数码管各笔段LED发光二极管的连接方式,可以将LED数码管分为共阴极个共阳极两大类。在共阴极LED数码管中,所有笔段的LED发光二极管的负极连在一起,而在共阳极LED数码管中,

48、所有笔段的LED发光二极管的正极连在一起。如图3.8(b)(c)依据显示驱动方式的不同,可将LED数码显示电路分为静态显示方式和动态显示方式。(a)(b)(c)图3-8 数码显示管4 软件设计4.1 主程序流程图图4-1 主程序流程图不管是电阻、电容还是电感,都是转为频率后再测量的,因此频率或周期的测量是本软件的核心,其精度会直接影响到本测试仪的精度。频率或周期的测量可以利用单片的计时和计数功能来实现。4.2 频率的测量方法和误差分析设在时间t检测到n个脉冲,则脉冲周期 (6)T对t和n的全微分 (7)T的相对误差 (8) 测量脉冲周期的测量,有定时计数和定数计时两种方法,利用AT89C51单

49、片机里的T0和T1两个定时器/计数器可以实现,下面分别讨论这两种方法的测量精度。4.21 定时计数法 定时计数法的具体做法是:将T0设为定时器,T1设为计数器。设定T0的定时中断时间t并允许中断,将T1清0。同时启动T0和T1,等待T0中断。在T0的中断服务子程序中读出T1的计数值n。将t和n代入式(6)求出脉冲周期T。采用定时计数法时,计时误差t可忽略,可认为dt=0,最大计数误差为一个脉冲,即,代入式(8)得, (9)若要保证其相对误差不超过0.1%,即,则有或 (10)若T0设为50ms中断,则由式(6)得或 (11) 上式表明,定时计数法宜用在被测频率较高的场合。4.22 定数计时法将

50、T0设为定时器,T1设为计数器。设定T1的计数中断次数n并允许中断,将T0清0。同时启动T0和T1,等待T1中断。在T1的中断服务子程序中读出T0的计时值t。将t和n代入式(6)求出脉冲周期T。采用定数计时法时,计数误差dn=0,最大计时误差为一个机器周期,本系统采用了12M晶振,机器周期为1us,故us,代入式(8)得, (12)若要保证其相对误差不超过0.1%,即,则有或us=1ms (13)由式(6)得(ms)或(KHz) (14)上式表明,定数计时法宜用在被测频率较低的场合。为了增大本设计的测量围,应尽量增大频率的测量围,本设计将频率测量围定在1Hz-200KHz。为保证测量精度和缩短

51、测量时间,应将频率测量围进行分量程,在不同的量程采用不同的测量方法。根据式(11)和式(14),可将频率测量的围分为以下几量程量程1:1Hz-1KHz,采用1次定数计时法测量量程2:1KHz-20KHz,采用20次次定数计时法测量量程3:20KHz-200KHz,采用50ms定时计数法测量频率的测量主要由T0中断和T1中断来完成,其流程图分别如图4-2和图4-3所示。图4-2 T0中断子程序流程图 图4-3 T1中断子程序流程图量程自动转换原理:单片机在某次测量频率后,若发现频率不在本次测量的量程,就根据所测量到的频率所在的围选择相应的测量方法,达到自动转换量程的目的。4.3 稳定读数要使振荡

52、器输出的频率绝对不变是很难做到的,这将会使在测量的过程中读数不停地跳动而影响读数,待别是在某个整数附近跳动时(比如在5000跳动时,读数就会在4999至5001中不停地跳动,每一位数字都是在变化的)读数就更难看清楚了,因此很有需要去使读数稳定下来。在模拟电路中,用RC低通滤波电路可以使输出信号的波动减小,若用软件的方法模拟RC低通滤波电路,同样可以使输出的数值变得稳定一些,这就是数字惯性滤波法。RC低通滤波电路如图4-4所示,为输入信号,为输出信号。图4-4 RC低通滤波电路建立图4-4的微分方程得,将上式离散化,得或令得 (15)由上式可知,越大,就越平稳,但响应时间会增大。在本设计中,若采

53、用式(15)进行稳定读数,仍会存在一些问题。为了使读数足够稳定,应选择较大的值,这必然会增大了读数的时间。为了克服这个问题,可将式(15)进行如下改进(16)式(16)用流程图描述如图13所示。当系统测量到了一个精度高、稳定性好的频率值后,利用相应的公式即可准确地求出待测元件的值。图4-5 稳定读数子程序流程图5、总结在这次设计的过程中,我们深切体会到,实践是理论运用的最好检验。本次设计是对我们四年所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我们对网络资源认识,大大提高了查阅资料的效率,使我们有充足的时间投入到电路设计当中。本设计主要应用到了模拟电

54、子技术、数字电子技术、单片机控制技术、电子工艺等多方面的知识,本设计达预期的要求,操作方便、价格便宜、精确度高,误差保持在%5以。同时此系统通过软件设计,减少误差的存在,大大提高了系统的精度。本次设计,为我们提供了展示自我能力的舞台,也使我们深切认识到自身知识能力尚存在许多不足,更让我们体会到了电子技术与设计的趣味,以与其强大深远的实用性。今后,我们将更加努力学习,提高自己,为社会贡献自己的一份力量。由于我自身在电子设计方面以与单片机方面的知识和经验的欠缺,此设计还存在一些错误和漏洞,望各位老师多指点,希望通过老师的指点和我以后的努力能过对它进行完善。参考文献1 曾喆昭,文卉.数值计算(第二版

55、).M :清华大学,2006,2 高吉祥.模拟电子技术.M :电子工业,2005,3守义单片机应用技术.M:电子科技大学,2002,4王福瑞单片微机测控系统设计大全M :航空航天大学,1998,5义府模拟电子技术基础M :国防科技大学,2004,6全国大学生电子设计竞赛组委会。M 全国大学生电子设计竞赛获奖作品选编1999,理工大学。2000,7全国大学生电子设计组委会。第一届(1994)第六届(2003)全国大学生电子设计竞赛题目M,8 高吉祥,黄智伟,丁文霞,数字电子技术,M ;电子工业,2003,9 吴金戌,庆阳,郭庭吉 8051单片机实践与应用。M清华大学,2002,10 康华光.数字

56、电子技术. M 高等教育,11 亮、候过锐.单片机C语言编程与实例. M:人民邮电,2003.9,12 何立民.单片机应用技术选编(1). M:航空航天大学,1998,13 何立民.单片机应用技术选编(2). M:航空航天大学,1999,14 胡烨,鹏翼,明等 Protel99SE原理图与PCB设计教程。M 机械工业,2006 ,15 熊伟,侯传教,梁清,孟涛。 Multisim7电路设计与仿真应用。M : 清华大学,2005 ,16 曾喆昭,文卉。数值计算(第二版)。M :清华大学,2006,17 楼然苗,光飞。51系列单片机设计实例(第二版)。M : 白净航空航天大学,2006。致 时光飞

57、逝,大学四年的生活伴随着毕业设计的完成也即将结束了,这次设计的完成,我要感学敏老师在论文选题以与整个设计过程中对我的细心指导和帮助,使我在设计中少走了不少弯路,此外,感林海波副教授、谷树忠教授、周文良副教授、于新副教授、学敏老师、航老师、丹老师、吕晓丽老师对我学业的帮助。同时感函,磊,长江等同学对我平时的帮助,在设计中遇到很多困难和问题,感他们给以我与时帮助个解答。附录一、部分程序#include xdata unsigned char PA _at_ 0 x8800; xdata unsigned char PB _at_ 0 x8801; xdata unsigned char PC _a

58、t_ 0 x8802; xdata unsigned char PCT _at_ 0 x8803; unsigned char LEDBuf; unsigned char mode=0; void delay10ms() unsigned char i; for(i=0 xff;i0;i-);unsigned char kbscan() unsigned char sccode,recode; P1=0 xf0; /发全“0”行扫描,列线输入 if(P1&0 xf0)!=0 xf0) /有键按下 delay10ms(); /延时去抖动 if(P1&0 xf0)!=0 xf0) sccode =

59、0 xf0; /逐行扫描初值 while(sccode&0 x10)!=0) P1=sccode; /输出行扫描码 if(P1&0XF0)!=0XF0) /本行有键按下 recode=(P1&0 xf0)|0 xf0; return(sccode)+(recode) ; /返回特征码 else sccode=(sccode1)|0 x01; /行扫描码左移一位 return 0; /无键按下,返回0 void interrupt0() interrupt 0 /中断函数 unsigned char key; key=0; key=kbscan(); /键盘扫描函数 delay10ms(); /

60、健消除抖动的延时函数 mode=key; void delay() unsigned char i,j; i = 50;j = 20; do do while(-j !=0);while( -i != 0 ); void delay1() unsigned char i,j; i = 25;j = 20; do do while(-j !=0);while( -i != 0 ); void rest() PA=0;PB=0;PC=0; void List1(void) / 从右到左逐点加 unsigned char i,j; PCT=0 x80; j=0 x80; for(i=0;i8;i+)

温馨提示

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

评论

0/150

提交评论