智能转速测量系统的软件设计说明_第1页
智能转速测量系统的软件设计说明_第2页
智能转速测量系统的软件设计说明_第3页
智能转速测量系统的软件设计说明_第4页
智能转速测量系统的软件设计说明_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 . . . 本业科毕设计(论文)题目:智能转速测量系统的软件设计院 (系): 光电工程学院专 业: 测控技术与仪器班 级: 050105学 生: 牟红宇学 号: 050105112指导教师: 杜玉军2009年 06月33 / 39智能转速测量系统的软件设计摘 要转速是工程中应用非常广泛的一个参数,其测量方法较多,随着单片机对脉冲数字信号的处理能力越来越强大,使得全数字量系统越来越普与,并且使转速测量系统也可以用全数字化处理。本文在对了解转速测量理论与掌握单片机原理的基础上,根据硬件设计,提出系统程序设计方案,构建软件系统,以实现智能转速测量与显示的功能。本设计根据基于AT89C51单片机的测

2、速测量电路,设计出转速测量软件系统,此系统包含系统初始化程序的设计、键盘扫描程序的设计、数据接收和处理程序的设计、显示程序的设计四个模块。对所设计的软件系统通过Vision3软件对其进行程序调试。最后,对构建的系统利用设计的电路进行调试,对测量指标进行了分析、比较并提出改进方案。在设计中测量方法采用M法进行测量,编译语言采用C语言进行编译。本课题完成了软件系统的设计,实现了智能转速系统的转速计算、显示功能,同时实现键盘的开始/停止功能,完成了设计的要求。关键词:单片机 转速测量 软件设计Intelligent rotational speed measurement system of sof

3、tware designAbstractRotational speed is the engineering of a very wide range of parameters, its measurement more, with the SCM digital signal on the pulse of more and more powerful processing capability, making the volume of all-digital system is becoming increasingly popular, and so rotational spee

4、d measurement system can be used to deal with all-digital.In this paper,the understanding of the theory and master rotational speed measurement based on the principle of SCM, the system program design, to build software systems, compiler, in order to achieve intelligent Rotational speed measurement

5、and display functions. In this paper,accroding to the tachometric survey system based on the SCM of AT89C51,I designed the software part of it.This system includes four module:the initializer code design,the keyboard scanning code design,the data receiving and processing code design and the displayi

6、ng code design.I set up them using the software ofVision3.At last,the builded system is setted up through circuit.The measured index were analysed and compared and the improved programmes were proposed.M method was adopt in the measuring and the language of C was adopt to comple.The design of softwa

7、re system of this project is completed. The function of calculating and displaying the speed of rotation and the beginning and stoping of keyboard are finished. Finally I achevie the requirment of design. Key words: SCMtachometric survey Software Design目录中文摘要I英文摘要II1 绪论111课题研究目的和意义112转速测量在国外研究情况113主

8、要容和存在的问题2131研究的主要容2132需解决的问题22 基于单片机的转速测量方法与原理32.1单片机测量转速的方法32.2转速测量原理42.2.1测周期法“T法”42.2.2测频法“M法”42.2.3测频测周法M/T法53 智能转速测量系统的硬件结构73.1系统的硬件结构73.2硬件电路中主要部件的介绍94 智能转速测量系统的软件设计114.1单片机C51的介绍114.1.1单片机C语言与汇编语言114.1.2 C51对标准C语言的扩展124.2程序设计124.2.1工作方式与控制字设置124.2.2变量分配与程序的初始化144.2.3显示功能的实现154.2.4键盘的功能的实现与设计1

9、74.3系统流程175 程序调试与固化1851单片机开发平台简介1852本系统开发平台185.2.1keil C51软件集成开发环境185.2.2程序调试186 结论226.1主要研究结论226.2研究展望23参考文献24致26附录 1 电路图29附录 2 源程序301 绪论11课题研究目的和意义随着超大规模集成电路技术提高,尤其是单片机应用技术以其功能强大,价格低廉的显著特点,使全数字化测量转速系统得以广泛应用。由于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受到企业用户的青睐。转速是工程中应用非常广泛的一个参数,其测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方

10、法,这种测量方技术已不能适应现代科技发展的要求,在测量围和测量精度上,已不能满足大多数系统的使用。随着大规模与超大规模集成电路技术的发展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字量系统越来越普与,其转速测量系统也可以用全数字化处理。在测量围和测量精度方面都有极大的提高。常用的检测方法有机械式,光电式,霍尔式,频闪法,高压油管应变法等,本课题主要是针对智能转速测量系统的软件系统的设计。运用51系列单片机设计一种全数字化测速系统,从提高测量精度的角度出发,分析讨论其产生误差的可能原因。同时从实际硬件电路出发,分析电路的工作原理,根据仿真情况提出修改方案和解决办

11、法。本课题以单片机为核心,设计的全数字化测量转速系统,在工业控制和民用电器中都有较高使用价值。一方面它可以应用于工业控制中的某一部分,如数控车床的电机转速检测和控制、水泵流量控制以与需要利用转速检测来进行控制的许多场合,如车辆的里程表、车速表等。另一方面由于该转速测量系统采用全数字结构,因而可以很方便的和工业控制机进行连接,实行远程管理和控制,进一步提高现代化水平。并且,几乎不需做很大改变就能直接作为单独的产品使用。总之,转速测量系统的研究是一件非常有意义的课题1。 12转速测量在国外研究情况转速是能源设备与动力机械性能测试中的一个重要的特性参量,因为动力机械的许多特性参数是根据它们与转速的函

12、数关系来确定的,例如压缩机的排气量、轴功率、燃机的输出功率等等,而且动力机械的振动、管道气流脉动、各种工作零件的磨损状态等都与转速密切相关。转速测量的方法很多,测量仪表的型式也多种多样,其使用条件和测量精度也各不一样。根据转速测量的工作方式可分为两大类:接触式转速测量仪表与非接触式转速测量仪表。前者在使用时必须与被测转轴直接接触,如离心式转速表、磁性转速表与测速发电机等;后者在使用时不需要与被测转轴接触,如光电式转速表、电子数字式转速表、闪光测速仪等。测量发动机转速的传统方法是使用光电式转速表测量。用这种方法测量时,既要在发动机转动轴上粘贴光标纸,又要求测量人员把转速表与光标纸的距离控制在很近

13、的围,测量十分不方便。随着科学技术的迅速发展,转速测量仪表已步入现代化、电子化的行列。过去曾经使用过的接触式测量仪表, 如离心式转速表、磁性转速表、微型发电机转速表与钟表是定时转速表,均已先后受到冷落;而利用已知频率的闪光与被测轴转速同步的方法来测速的闪光测速仪,虽属非接触式仪表,目前仍有应用,但也退居次要地位。代之而起的是非接触式的电子与数字化的测速仪表。这类转速仪表大多具有体积小、重量轻、读数准确、使用方便等优点,容易实现电脑荧屏显示和打印输出,能够连续的反映转速变化,既能测定发动机稳定情况下的平均转速,也能够用来在足够小的时间间隔这一特定条件下测定发动机的瞬时转速。 转速测量的应用系统在

14、工业生产、科技教育、民用电器等各领域的应用极为广泛,往往成为某一产品或控制系统的核心部分,其各种参数在不同的应用中有其侧重,但转速测量系统作为普遍的应用在国民经济发展中,有重要的意义2。13主要容和存在的问题131研究的主要容1.详细分析转速的测量理论,对转速的周期测量法“T”法、频率测量法“M”法以与周期频率“M/T”测量法,三种具体测量方法的转速计算、各自的测量精度和误差进行阐述。定性地比较三种方法所针对的转速特征,分析高、中、低转速情况下各自的适用状况,从而,在保持一定的测量精度情况下,应用“M”法,说明转速测量原理3。2.根据单片机硬件系统的设计,构建软件系统,分别对硬件系统的配置予以

15、估计,使其能够对转速进行测量。同时分析接口电路,显示转速。3.对单片机定时/计数器进行设置,设计和说明定时/计数器在“M”法测量中的作用和使用方法,讨论测量精度的问题。4.根据系统要求设置各控制字,用A51汇编语言编制程序,包括主程序流程,显示中断程序流程。并用软件的方法对计数和定时进行同步,力求在不增加硬件的条件下,使同步达到满意的效果。5.利用Keil51软件的Vision3集成环境对系统对工作软件进行编译、调试和仿真。132需解决的问题1单片机在系统运行过程中,中断设置问题;2转速测量与LED显示的实现;3键盘功能的实现;4软件的调试。2 基于单片机的转速测量方法与原理2.1单片机测量转

16、速的方法转速是工程中应用非常广泛的一个参数,早期模拟量的模拟处理一直是作为转速测量的主要方法,这种测量方法在测量围和测量精度上,已不能适应现代科技发展的要求。而随着大规模与超大规模集成电路技术的发展,数字测量系统得到普遍应用,利用单片机对脉冲数字信号的强大处理能力,应用全数字化的结构,使数字测量系统的越来越普与。在测量围和测量精度方面都有极大的提高。下面对测量系统进行探讨4。一般转速测量系统有以下几个部分构成,转速测量框图如图2.1所示。转速信号拾取整形倍频单片机显示接口芯片显示键盘驱动电路图2.1 转速测量框图1转速信号拾取转速信号拾取是整个系统的前端通道,目的是将外界的非电参量,通过一定方

17、式转换成电量,这一环节可以通过敏感元件、传感器或测量仪表等来实现。2整形和倍频前向通道中,将传感器输出的信号转换成计算机输入要求的信号。3单片机单片机是整个测量系统的主要部分,担负对前端脉冲信号的处理、计算、以与信号的同步,计时等任务,其次,将测量的数据经计算后,将得到的转速值传送到显示接口中,用数码管显示数值。在本系统中考虑到计数的围、使用的定时/计数器的个数与I/O口线,选用AT89C51单片机。4驱动和显示由于LED数码管具有亮度高、可靠性好等特点,工业测控系统中常用LED数码管作为显示输出。本系统也采用数码管作显示。2.2转速测量原理2.2.1测周期法“T法”转速可以用两脉冲产生的间隔

18、宽度TP来决定。用以采集数据的码盘,可以是单孔或多孔,对于单孔码盘测量两次脉冲间的时间,就可测出转述数据,TP也可以用时钟脉冲数来表示。对于多孔码盘,其测量的时间只是每转的1/N,N为码盘孔数。如图2.2“T”法脉宽测量所示。TP通过定时器测得。定时器对时基脉冲(频率为fc)进行计数定时,在TP计数值若为m2,则 计算公式为: n=60/PTp (2.1)即:n=60fc/Pm2 (2.2)P-为转轴转一周脉冲发生器产生的脉冲数;fc-为硬件产生的基准时钟脉冲频率:单位(Hz);n-转速单位:(转/分);m2-时基脉冲。输入脉冲 时基脉冲图2.2 “T”法脉宽测量由“T”法脉宽测量可知“T”法

19、测量精度的误差主要有两个方面,一是两脉冲的上升沿触发时间不一致而产生的;二是计数和定时起始和关闭不一致而产生的。因此要求脉冲的上升沿(或下降沿)陡峭和计数和定时严格同步。测周法在低转速时精度较高,但随着转速的增加,精度变差,有小于一个脉冲的误差存在5。2.2.2测频法“M法”在一定测量时间T,测量脉冲发生器(替代输入脉冲)产生的脉冲数m1来测量转速,如图2.3“M”法测量转速脉冲所示,设在时间T,转轴转过的弧度数为X,则转速n可由下式表示:n=60X/2T (2.3)转轴转过的弧度数X可用下式所示X=2m1/p (2.4)图2.3 “M”法测量转速脉冲将(2-4)式代入(2-3)式得转速n的表

20、达式为: n=60m1/TP (2.5)n-转速单位:(转/分);T-定时时间单位:(秒)。在该方法中,测量精度是由于定时时间T和脉冲不能保证严格同步,以与在T能否正好测量外部脉冲的完整的周期,可能产生的1个脉冲的量化误差。因此,为了提高测量精度,T要有足够长的时间。定时时间可根据测量对象情况预先设置。设置的时间过长,可以提高精度,但在转速较快的情况下,所计的脉冲数增大(码盘孔数已定情况下),限制了转速测量的量程。而设置的时间过短,测量精度会受到一定的影响6。2.2.3测频测周法M/T法所谓测频测周法,即是综合了“T”法和“M”法分别对高、低转速具有的不同精度,利用各自的优点而产生的方法,精度

21、位于两者之间,如图2.4“M/T”法定时/计数测量所示。“M/T”法采用三个定时/计数器,同时对输入脉冲、高频脉冲(由振荡器产生)、与预设的定时时间进行定时和计数,m1反映转角,m2反映测速的准确时间,通过计算可得转速值n。该法在高速与低速时都具有相对较高的精度。测速时间Td由脉冲发生器脉冲来同步,即Td等于m1个脉冲周期。由图可见,从a点开始,计数器对m1和m2计数,到达b点,预定的测速时间时,计算机发出停止计数的指令,因为TC不一定正好等于整数个脉冲发生器脉冲周期,所以,计数器仍对高频脉冲继续计数,到达c点时,脉冲发生器脉冲的上升沿使计数器停止,这样,m2就代表了m1个脉冲周期的时间7。“

22、M/T”法综合了“T”和“M”两种方法,转速计算如下:设高频脉冲的频率为fC,脉冲发生器每转发出P个脉冲,由式(2.2)和(2.5)可得M/T法转速计算公式为:n=60fcm1/pm2 (2.6)n-转速值。单位:(转/分);fc-晶体震荡频率:单位(Hz);m1-输入脉冲数,反映转角;m2-时基脉冲数。图2.4 “M/T”法定时/计数测量通过误差和精度分析可知,M法适合于高速测量,当转速越低,产生的误差会越大。T法适合于低速测量,转速增高,误差增大。M/T这种转速测量方法的相对误差与转速n无关,只与晶体振荡产生的脉冲有关,故可适合各种转速下的测量。保证其测量精度的途径是增大定时时间T,或提高

23、时基脉冲的频率fc。因此,在实际操作时往往采用一种称变M/T的测量方法,即所谓变M/T法,在M/T法的基础上,让测量时间Tc始终等于转速输入脉冲信号的周期之和。并根据第一次的所测转速与时调整预测时间Tc,兼顾高低转速时的测量精度。基于M法测量速度,电路和程序均较为简单,且可以在一定的条件下满足精度的要求,所以本设计中采用M法进行测量,误差和精度的具体分析过程在此不做复述8。3 智能转速测量系统的硬件结构3.1系统的硬件结构本转速测量系统有以下几个部分构成,如图3.1转速测量系统方框图所示。显示键盘单片机信号调理电路光电传感器测速齿盘图3.1 转速测量系统方框图本系统的硬件主要由光电传感器、信号

24、处理电路、单片机AT89C51、键盘、LED显示等组成。如图3.1,当测速齿盘转动时,将会产生正弦脉冲电信号,然后把信号送入放大电路、整形与三极管整形电路进行处理,将正弦波信号转化为TTL电平输出到单片机进行转速计数,最后通过数码管显示其数值。硬件电路图如图附件1所示9。1转速信号拾取的结构本设计中采集信号部分是通过光电传感器来实现,利用测速圆盘将光信号转变成单片机能够处理的电信号。测速圆盘位于红外线发光二极管(规格HG11)和红外线接收三级管(规格3DU5C)之间,采用+5V电压供电,选用合适的电阻值来配合该其工作。红外线发光二极管发出的光信号通过测速圆盘的孔,到达红外线接收三级管表面,它将

25、接收到的光信号转变成电信号输出。通过改变测速圆盘的旋转速度来控制输出电信号的频率值,并将其输出。如图3.2转速传感器电路图所示。图3.2 转速传感器电路图2.显示部分的结构本系统采用四位LED共阳极型数码管作为显示部分, AT89C51单片机的I/O口输出特性是有较大的灌入电流能力,但只有很弱的“吐”电流的能力,因此本系统中选用共阳极数码管。P2口的P2.0P2.7口作为数码管的段驱动,中间通过缓冲器74LS245进行数据缓冲。74LS245是8路3态双向缓冲驱动,也叫做总线驱动门电路或线驱动,主要使用在数据的双向缓冲,常见51的数据接口电路,使用一片245作为数据缓冲电路,增强驱动能力。P0

26、口的P0.0P0.3口通过反向驱动器74LS04构成位驱动。将所有位的段选线相应地并联在一起,由一个8位I/O控制,形成段选线的多路复用。而各位的共阳极分别由相应的I/O线控制,实现各位的分时选通。由于各位的段选线并联,段选码的输出对各位都是一样的。因此,同一个时刻,某一位的显示与该位的位选线选通状态有关,若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式10。3.单片机与PC机数据的传输基于单片机的测控系统在获取传感器的数据后,还需要将所得数据传送到PC上。因此,本系统在设计时,做了一些考虑,在硬件设计时增加了串行通信口,采用MAX232电平转换芯片,将PC机串行口的RS-

27、232电平与AT89C51单片机使用的TTL电平进行转换,实现了单片机和PC机之间的数据传送。如图3.3 MAX232引脚图所示、3.4AT89C51管脚图所示11。图3.3 MAX232引脚图 图3.4 AT89C51管脚图4.键盘功能的实现本设计使用的键盘主要为完成一个功能转速测量的启动/停止;我们将开关直接与AT89C51单片机的P1.0接口相连,通过读I/O口,判定各I/O线的电平状态,即可识别出按下的按键。操作员通过键盘可以输入数据或指令,实现简单的人机通信12。5.复位功能的实现单片机除本身需要复位以外,外部扩展的I/O接口电路等也需要复位。因此,为了控制的方便,本设计中采用人工按

28、钮复位的方式。AT89C51单片机的RST端通过10k电阻接地,10电容直接和一个接有按键的200电阻并联接入电源端,上电按钮复位电路。当开关未按下时,由于电容的滤波作用,干扰信号不会进入到单片机中,起到抗干扰的作用;当按下开关一定时间就能使RST引脚端变为高电平,从而使单片机复位13。3.2 硬件电路中主要部件的介绍a.AT89C51:随着智能仪表的发展,用单片机构成的多路数据采集系统已经普与,该系统它不仅采集数据而且还能对采集到的模拟信号进行数据处理。AT89C51是一款低功耗高性能的CMOS 8-bits微处理器,它具有4KB的可编程或擦除的闪存(EPROM)。该器件使用ATMEL公司的

29、高密度非易失性存储器制造技术,并且与工业标准MCS-51TM的指令系统和管脚配置兼容。片闪存的存在使程序存储器能够在系统中或者使用专门的程序烧录器来重新写入20。这一器件将通用的8bitsCPU和闪存结合起来,集成在一个芯片上,使该芯片成为不少控制系统的高度灵活和经济的解决方案。AT89C51是ATMEL公司生产的一款51单片机,它有如下的特点:(1)与MCS-51TM系列产品兼容;(2)4K片可编写程序存储器(FLASH),可以被重写1000次;(3)存储数据保存时间为10年;(4)宽工作电压围为:VCC2.7V6V;(5)工作主时钟频率在0HZ24MHZ之间;(6)1288bits部RAM

30、;(7)程序存储器具有3级加密保护;(8)32条可编程的I/O引脚;(9)2个16bits可编程定时器/计数器;(10)6个中断源;(11)可编程全双工串行通信;(12)低功耗空闲状态和低功耗停机状态;b. MAX232:RS-232(ANSI/EIA-232标准)是IBM-PC与其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。计算机的串口采用的是RS-232电平,是12V

31、的电压,而我们单片机系统则采用的是TTL电平,是0+5V的电压。因此需要将TTL电平转换成RS-232电平。在我们的硬件图里使用互换器MAX232来进行TTL电平和RS-232电平的转换。+5V电平RS-232传送/发送模块,包含TTL/CMOS到RS-232电平的转换以与RS-232到TTL/CMOS电平的转换器各2个。MAX232的引脚说明为:VCC:供电电压;GND:地;C+、C-:外围电容;T1IN:第一路TTL/CMOS驱动电平输入;T1OUT:第一路RS-232电平输出;R1IN:第一路电平输入;R1OUT:第一路TTL/COMS驱动电平输出;T2IN:第二路TTL/CMOS驱动电

32、平输入;T2OUT:第二路RS-232电平的输出;R2IN:第二路RS-232电平输入;R2OUT:第二路TTL/COMS驱动电平输出。MAX232的主要性能参数如下:工作电压:单电源+5V;双通道接收和发送;与所有EIA/TIA-232E以与V.28协议兼容;三态门接收和发送。4 智能转速测量系统的软件设计4.1单片机C51的介绍4.1.1单片机C语言与汇编语言在单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。对用惯了汇编语言的人来说,高级语言的可控行不好,不如汇编语言那样能够随心所欲。但是使用汇编语言会遇到很多问题,首先它的可读性和可维护性不强,特别是当呈现没有很好的标注时,

33、其次就是代码的可重用性也比较低。使用C语言就可以很好的解决这些问题18。C语言具有良好的模块化,容易阅读和维护等优点。由于模块化,用C语言编写的程序有很好的可移植性,功能化代码能够很方便地从一个工程移植到另一个工程,从而减少开发时间。用C语言编写程序比用汇编编写程序更符合人们的思考习惯,开发者可以更专心地考虑算法而不是考虑一些细节问题,这样就减少了开发和调试时间。使用像C这样的语言,编写者不必十分熟悉处理器的运算过程。很多处理器支持C编译器,这意味着对新的处理器也能很快上手,而不必知道处理器的具体部结构,这使得用C语言编写的程序比汇编程序有更好的可移植性。C语言的特点就是可以使编写者尽量少地对

34、硬件进行操作,它是功能性和结构性很强的语言。对大多数51系列单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:(1)不需要了解处理器的指令集,也不必了解存储器结构;(2)寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的 寻址和数据类型等细节;(3)指定操作的变量选择组合提高了程序的可读性;(4)可使用与人的思维更相近的关键字和操作函数;(5)与使用汇编语言编程相比,程序的开发和调试时间大大缩短;(6)C语言中的库文件提供许多标准的方程,例如:格式化输出、数据转换和浮点运算等;(7)通过C语言可实现模块编程技术,从而可将已编制好的程序加入到新程序中;(8)C语言可移植

35、性好且非常普与,C语言编译器几乎适用于所有的目标系统,已完成的软件项目可以很容易地转换到其它的处理器或环境中。所以在本毕业设计数据采集系统的软件设计中我选用单片机C语言来进行程序代码的编写。4.1.2 C51对标准C语言的扩展1.在51系列单片机中使用的C语言与标准C语言还有一些不同,或者说C51对标准C语言有一些扩展。C51语言的特色主要体现在以下几个方面:(1)C51虽然继承了标准C语言的绝大部分的特性,而且基本语法一样,但是本身又在特定的硬件结构上有所扩展,如关键字sbit、data、idata、pdata、xdata、code等。(2)应用C51更要注重对系统资源的理解,因为单片机的系

36、统资源相对PC机来说很贫乏,对于RAM、ROM中的每一字节都要充分利用。可以通过看编译生成的.m51文件来了解自己程序中资源的利用情况。(3)程序上应用的各种算法要精简,不要对系统构成过重的负担。尽量少用浮点运算,可以用unsigned无符号型数据的就不要用有符号型数据,尽量避免多字节的乘除运算,多使用移位运算等。2.C51相对于标准C语言的扩展直接针对51系列CPU硬件,大致有以下几个方面:(1)数据类型C51具有标准C语言所具有的标准数据类型,除此之外,为了更加有效地利用8051的结构,还加入了以下特殊的数据类型。(2)存储区C51编译器支持8051与其扩展系列,并提供对8051所有存储区

37、的访问。存储区可分为部数据存储区、外部数据存储区以与程序存储区。8051CPU部的数据存储区是可读写的,8051派生系列最多可有256字节的部数据存储区,其中低128字节可直接寻址,高128字节(从0x80到0xFF)只能间接寻址,从20H开始的16字节可位寻址。部数据区又可分为3个不同的存储类型:data、idata、bdata。外部数据区也是可读写的。但是访问起来比较慢,因为外部数据区是通过数据指针加载地址来间接访问的。 (3)特殊功能寄存器(SFR)51单片机提供128字节的SFR寻址区,地址为80HFFH。51单片机中除了程序计数器PC和4组通用寄存器组之外,其它所有的寄存器均为SFR

38、,并位于片特殊寄存器区。4.2程序设计根据硬件电路设计,进行程序设计,在程序设计之前,首先要确定定时器的工作方式,方式控制字,确定串行口的工作模式等,下面分别讨论。4.2.1工作方式与控制字设置1定时/计数器T0本系统设计中,T0被用于计数,我们当然希望计数量越大越好,这样,可以获得较大的测量围,因此,T0选定为工作方式1(16位的计数方式),设计中,没有使用外部控制端,仅用指令置位/清零TR0来进行计数的启动/停止,这样,电路较为简单,但精度会受到一定的影响,但在本设计中,认为采用这种方式,精度可达到要求,因此,T0采用自由计数的方式,不用预置初值。2定时/计数器T1定时器T1每10ms中断

39、一次,用以进行数码管显示和每一秒读取一次计数器T0中的数值。这里选用T1的工作状态为1。要使T1设定正确的定时时间,首先要计算其初值,定时时间为:t=(216-T1的初值)晶振周期12 (4.1) 定时时间10ms:10ms=(216-T1的初值)1/12*10-612 则: T1的初值=216-104 因此,TH1=D8, TH1=F0;确定了定时/计数器T1的定时时间以后,就要计算定时初值,本系统用了12M的晶振,恰好是一个机器周期为1s,因此,1ms定时时间意味着只要计数1000次即可,由于定时/计数器T1是向上计数,因此,要化为16进制,并分别送入T1的高8位和低8位。这里,采用的ke

40、il汇编软件有较强的预处理功能,能够处理较复杂的运算,因此,计数程序中可写为:PlusCounter = TH0*256 + TL0。这里用PlusCounter作为转化为10进制数值的数值存储器,TH0和TL0分别是二进制计数值的高8位和低8位。由于AT89C51单片机在中断时,会附加延时3-8个周期,在满足一定条件的情形下,验证这个数值是否正确,可以在进入仿真调试时通过观察Keil提供的有关变量看到,如果不正确,可以根据实际情况略作调整,保证定时时间尽量准确。3定时/计数器的方式控制字定时/计数器的方式控制字TMOD,其地址为89H,复位值00H,不可位寻址。其8位控制。如图4.1工作模式

41、寄存器TMOD的位定义所示。GATEC/M1M0GATEC/M1M0 T1 T0图4.1 工作模式寄存器TMOD的位定义图说明:GATE:门控位。由GATE、软件控制位TR0/1和INT0/1共同决定定时/计数器0/1的打开或关闭。当GATE=0,只要用指令置TR0/1=1即可启动定时/计数器0/1工作。GATE=1,只有INT0/1引脚为高电平且用指令置TR0/1=1时,才能启动定时/计数器0/1的工作。C/T:定时器/计数器选择位。C/T=1,工作于计数器方式;C/T=0工作于定时器方式。M1M0:定时/计数工作模式选择位。M1M0=00,13位计数;M1M0=01,16位计数;M1M0=

42、10,自动再装入8位计数;M1M0=11,工作于模式3状态。根据前面的描述,可以确定TMOD的控制字应为00010101B。程序如下:void init_timer0() / T0、T1分别定义TMOD=0xF1;void init_timer1()TMOD = 0x50;将控制字分别送入TMOD。4定时/计数控制寄存器TCONTCON地址88H,可进行位寻址,复位值00H。如图4.2控制寄存器TCON的位定义图所示。TF1 TR1 TF0 TR0 IE1 IT1 IE0IT0图4.2 控制寄存器TCON的位定义图TF0、TF1分别为定时器T0和计数器T1的溢出标志位,TR0和TR1在正常情况

43、下,都没有溢出标志,只有当计数值或定时值超过65536时,才能有溢出中断请求,这两位是由硬件置位和硬件清零,不需另行设置。可在T0和T1的溢出中断服务程序中,以供使用。TR1、TR0分别用于开启T1和T0的开关位,其中TR1由系统开启时,直接置位,打开T1,开始定时,经运行判断后,打开TR0。4.2.2变量分配与程序的初始化在程序开始之前,首先进行变量的分配,程序的初始化,根据硬件电路的要求,将各硬件电路置于其规定的状态;根据需要,对定时器、计数器、串行口等设置工作状态,预置初值等。以下是程序定义变量与进行初始化的程序行。uint Tcounter = 0; /时间计数器bit Flag_Fr

44、esh = 0; /刷新标志bit Flag_clac = 0; /计算转速标志bit Flag_Err = 0; /超量程标志Disbuf0 = 0; /开机时,初始化为0000Disbuf1 = 0;Disbuf2 = 0;Disbuf3 = 0;init_timer0(); /T0、T1分别初始化init_timer1();4.2.3显示功能的实现定时计数器T1每10ms中断一次,用以进行数码管显示和每1秒读取一次计数器T0中的数值。1 秒信号的产生中断产生后:#define TIME_CYLC 100Tcounter+; if(TcounterTIME_CYLC) Flag_clac

45、= 1; 判断Tcounetr是否到达100了,如果到达100,则说明1秒时间已到,程序将关闭T0计数器,然后对T0中已计得的数据进行处理,然后再去进行显示,否则直接转去显示。这部份的程序流程图如图4.3秒信号子程序流程图所示。到100了吗停止T0工作读T0计数值 清T0值进入显示部分置位计算请求标志清秒计数器秒计数器加1开始图4.3 秒信号子程序流程图2数码管的显示数码管显示采用动态方式,即通过延迟程序使数码管分时点亮,依次循环。由于数码管共有4位,延迟5ms,因此,每20ms即可轮流点亮每个数码管一次,利用人的视觉暂留现象,可以稳定地显示各位数码管的值。显示计数器自加查字形码表显示计数器回

46、0取该显示缓冲区的值加计数值 取显示缓冲区地址到N了么退出查位码重置定时初值送往Pn口重取计数值字行码送往Pn开始如图4.4数码管显示流程图所示,从图中可以看出,程序中利用了一个延时函数,在函数中由计数器自加来实现延时的(自加速度由晶振频率决定),当计数值到5000时,计数值清零,点亮下一个数码管,从而使第一至第四位数码管按设定逐个点亮。下面以显示182为例,即速度为182R/min加以说明。当数码管显示182时,意味着第4位数码管显示2,第三位显示8,第二位显示1,第四位显示0。图4.4 数码管显示流程图程序如下: 当转速为182时,即Disbuf0 = 0;Disbuf1 = 1;Disb

47、uf2 = 8;Disbuf3 = 2;送入显示缓冲区P2 |= 0xF0; /初始化,关闭所有位选开关LED_SEG0 = 0; /选通第一位数码管LED_DAT = tableDisbuf0;/查位码表,将其由P0输出Delay(5) /延时5ms,等待下一位显示以此规律进行显示,直至四位全部显示完毕,等待下一次循环。4.2.4键盘的功能的实现与设计本课题的硬件设计中使用了2个按键,功能分别是实现转速测量的启动/停止和复位。启动停止可通过P1.0接口进行控制,当按键按下时,按键端口接地,I/O接口P1.0输入低电平,程序可表示为P10=0,通过此条件便可实现开关功能;复位键则不需要软件支持

48、。在按键过程中会有按键抖动,因此我们一般通过软件延迟程序将按键命令延迟5-10ms再执行,便可减少抖动造成的误差。程序如下:if(!P10) Delay(10); /防按键抖动if(!P10) 4.3系统流程本系统的主程序参考图如图4.5主程序流程图所示,在完成初始化工作以后,即循环等待,每1s时间到之后,T1中断程序将会读取T0中的计数值,并将其放入约定的存储单元中,并且判断是否有键按下,当P1.0被按下时,主程序即转入计算,第一步判断是否有键按下,第二步将16进制数的结果转化为BCD码,第三步,将BCD码转化并送入显示缓冲区。开始行计数器,断口,中断,初始化计算转速送显示缓冲区结束等待P1

49、.0是否有键按下 N Y图4.5 主程序流程图5 程序调试与固化单片机应用系统的程序必须有调试好的应用程序,系统才能运行。通常,单片机的开发工具至少需要仿真机和编程器两种,前者用以调试程序,后者用于将调试完成后的程序代码写入单片机芯片中。51单片机开发平台简介单片机开发工具的作用有这样一些:(1)有较齐全的开发软件工具,如配置有汇编语言,用户可用汇编语言编制应用软件。开发工具能自动生成目标文件;配有反汇编软件,能将目标程序转换为汇编语言程序文本;有丰富的子程序库可供用户调用。(2)有全速跟踪调试、运行的能力开发装置占用单片机硬件资源少。并具有单步运行、设断点运行、状态查询等功能。(3)能进行系

50、统硬件电路的诊断与检查;为了方便模快化软件调试,还应配置软件转储、程序文本打印、能将程序固化到单片机芯片或系统FLASH ROM芯片中。52本系统开发平台5.2.1keil C51软件集成开发环境随着单片机开发技术的不断发展,单片机的开发软件也在不断发展,Keil软件是目前流行的用于开发51系列单片机的软件。该软件提供了包括C编译器、宏汇编、器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20MB以上空闲的硬盘空间、Win98、NT、Win2000、WinX

51、P等操作系统。5.2.2程序调试1.源文件建立使用菜单file/new在项目窗口右侧打开一个文本编辑界面,可在其中写入指令或将已编辑完成的程序调入,保存。本程序保存为*. C。如图5.1程序的保存界面所示。图5.1 程序的保存界面2.建立工程文件点菜单Project/New Project出现对话框,给工程命名为test保存,在弹出的对话框选择CPU的型号,选择Atmel公司的89C51,确定回到主界面,在工程窗口文件页中右击Target1/Source Group1,如图5.2程序的加载界面所示,左击Add Files to Group source Group 1后会出现选择文件的对话框,

52、选择文件,点击Add。图5.2 程序的加载界面3.编译连接选择菜单Project/Build target进行连接,此时编译过程的信息将出现在编译窗口中,出现的语法错误会有提示,根据提示,修改源程序,直到编译通过。图5.3 系统程序编译界面4.进入调试编译通过后的源程序,只表示没有语法错误,但是否能够存在逻辑或其他错误,还需要进行仿真才行。在调试之前应先修改晶振的频率,打开菜单Project/options for TargetTarget 1会现一个对话框,在Target修改晶振频率。修改完成后,打开菜单Debeg/Start/Stop Session对软件模拟调试。如图5.4调试界面所示。

53、在调试中,可以采用单步运行对程序进行检查,修改错误,并通过各参数窗口,观察数值是否与设定值一样。在调试中,可以采用单步运行对程序进行检查,修改错误,并通过各参数窗口,观察数值是否与设定值一样。图5.4 调试界面调试还可以使用设置断点的方式,在定时器T1的中断服务程序的起点处设了一个断点,记录下运行时间为16.78123900(s),如图5.5断点设置界面(1)所示,再次运行并停止后,可看到,时间为16.7712100(s),如图5.6断点设置界面(2)所示,计算可知,中断时间为10.029(ms),可以根据这一结果,对定时常数略作修改,使得定时时间最接近于10(ms)。图5.5 断点设置界面(

54、1)反复修改,直到所有功能完全正确,即可产生.hex文件,该文件可用编程器烧录到单片机芯片中。注:如果要生成.hex文件,需将Project/options for TargetTarget 1/Output中Create HEX Fi对话框选中。如图5.7生成.hex文件所示。图5.6断点设置界面(2)图5.7 生成.hex文件选择界面6 结论6.1主要研究结论本文根据智能转速测量系统的硬件设计和要求,设计出相应软件系统。文中首先对单片机用于转速测量的理论、原理进行了简单的分析、比较,并对基于AT89C51单片机的转速测量电路做了简单的介绍,详细阐述了软件的设计,编译程序,最终实现转速测量、显示的功能,再通过调试使程序通过编程器写入芯片。本设计的具体研究成果如下:1测量方法在本设计测量原理上采用先进的M的测量方法,保证了高转速的测量中获得较高的精度。应用围广泛,可通过扩展进行二次开发。2软件系

温馨提示

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

评论

0/150

提交评论