1、毕业论文(设计)题 目 高精度风速仪设计二七 年 五 月 三十 日目 录1 引言 .32 设计原理 .33 技术介绍 .43.1 8031 单片机 .532 系统扩展、接口技术 .533 三总线概述 .634 中断技术 .74 软件设计 .84.1 测频法与测周法 .842 程序结构 .115 硬件设计 .145.1 硬件结构图 .145.2 地址所存器扩展电路 .155.3 扩展程序存储器电路 .165.4 扩展 8155 可编程外围并行接口芯片 .185.4.1 8155 的结构与引脚 .185.4.2 8155 的 RAM 和 I/O 口地址 .185.4.3 8155 的寄存器 .19
2、5.4.4 8155 芯片的使用 .205.4.5 8031 与 8155 的连接 .205.5 显示电路 .2126 结论 .21参考文献 .22致谢 .22ABSTRACT.23附录: .24高精度风速仪设计摘要:本文介绍了一种基于 Inter 8031 单片机的风速仪的设计,它利用测旋转体的转速测得风速。本设计中采用 8031 单片机主要由于其内部资源较为丰富,处理速度较快,因而可以在不扩充计数器的情况下实时的测量脉冲信号并转化为转速数据, 进 而可以转变成线速度输出。此外,本设计的主要目的虽然为风速测量,但是当对外部传动部件做简单修改以后不仅可以应用在风速的测量当中,也可在转速测量控制
3、, 车辆行驶速度测定,流速流量 测量等方面发挥 作用。关键字:8031 单片机,风速仪,测周法与测频法1 引言在对气象学越加重视的今天,气象数据的采集更显重要。风速是气象数据中的一个重要的参数,对它的测量,将会极大的影响到气象预报的准确性。同时,风速、风力的测量在某些行业,譬如煤炭,飞机,汽车,电力等都十分重要。最初的风速仪,靠人工测量,精度差,数据不及时。目前,国内使用的风速仪,多数沿用机械传动,灵敏度低,误差大,对于较多的测风点常采用一个计数器测量,而野外自然风阵性变化较大,这样会引起失真和较大误差。基于单片机的风速仪,可以克服目前风速仪的弊端,作为目前风速仪的有益补充。 3本系统借助传统
4、风速仪测量设备,以单片机为处理信号的工具,使风速的测量精确,及时。并且,由于单片机的使用,使本设计的体积较小,适合外出携带,操作方便,可推广到工业生产中,具有较高的经济效益。因此,本文设计了基于单片机的风速仪。2 设计原理测量的系统框图如图 1 所示。 传感器 整形放大 单片机处理输出结果图 1 测量系统框图图中传感器部分包括金属圆盘和红外光电开关。金属圆盘上均匀的开出 60360 个槽,固定在旋转轴上。旋转体每转一圈红外光电开关便可以输出 60360 个脉冲信号,该脉冲信号经过整形放大,送给 8031 单片机进行处理,便可显示结果。8031 单片机属于 MCS-51 系列单片机是功能极强的
5、8 位高档单片机,它既适用于简单的测控系统,又适用于复杂的测控系统,他的性价比高,组成应用系统灵活。8031 单片机在这里的作用是采样信号脉冲,并按照一定的计算公式求得所需要的被测量。首先测量转速,可由下式计算: Nn=tZ其中: n转速,单位:转/秒Z金属圆盘开槽数t采样时间, 后文中或称为闸门时间,单位:秒N在闸门时间内传感器输出的脉冲个数在测量旋转轴径向某点的线速度,即所求风速:v=2Rn= 2RZNt其中:v线速度,单位:米/秒R被测点距轴心的距离即金属盘半径,单位:米由于采用单片机进行处理,使其比采用数字电路成本更低,精度更高。关键是本设计可以扩充几个功能,使其在生产运用上更加方便。
6、比如,可以设定转速上下限报警。加入控制信号,可以选侧测量的数值为瞬时速度,或者为平均速度,这样可以进一步计算出瞬时加速度,并且可以保存一段时间的测量平均值等等。由上述两测量公式可知,对于某一确定系统,Z 和 R 都是常量,因此测量转速 n 或线速度 v 需要测量的只有两个量闸门时间 t 和在 t 时间内输入的脉冲个数 N。8031 单片机内含有两个 16 位定时/计数器,既可以对内部机器周期计数产生定时信号,也可以对外部输入脉冲进行计数。其数控方式如下:表 1 数控方式表TMOD:GATE C/TM1 M0 GATE C/TM1 M04用于定时/计数器 1 用于定时/计数器 0当 =0 时为定
7、时方式, =1 时为计数方式,本系统中 8031 的两个定时计数器皆CTC/T工作于 16 位定时方式,用于产生测量的闸门时间,对信号脉冲的计数则由软件完成,即两路传感器输出接入 8031 的两个外部中断输入引脚 和 ,当 引脚上出现一INT10ITX个负跳变时引起中断,在中断服务程序中计数输入脉冲个数,具体如下:M1M0=01 时处在工作方式 1 为 16 位计数器:选择定时或计数模式。当 =1 时为计数模式,当 =0 时为定时模式C/TC/ C/GATE:选通控制。当 GATE=1 时只有当 端口为高电平且 TRx 置位为 1 时才选通定时m2/计数器 x;当 GATE=0 时,只需 TR
8、x 置位为 1,即选通定时/计数器 x。P3.3 和 P3.4 分别是外部中断 0,中断 1 请求端口,低电平有效。当 I/O 端口作为输入使用时,需要先向端口写入“1”使内部的 FET 截止,再读入引脚状态。3 技术介绍本系统在设计过程中需要用到 8031 单片机,系统扩展、接口技术,三总线,中断技术等。3.1 8031 单片机8031 单片机是 Intel 公司生产的 MCS-51 系列单片机中的一种,除无片内 ROM 外,其余特性与 MCS-51 单片机基本一样。HMOS 制造工艺的 MCS-51 单片机都采用 40 引脚的直插封装(DIP 方式)芯片的引脚描述:(1) 主电源引脚 VC
9、C 和 VSS(2) 外接晶体引脚 XTAL1 和 XTAL2(3) 控制或与其它电源复用引脚 RST/VPD、ALE/PROG、PSEN 和 EA/VPP (4)输入/输出(I/O)引脚 P0、P1、P2、P3(共 32 根)访问外部程序存储器时序操作过程如下:(时序图略)(1)在 S1P2 时刻产生 ALE 信号。(2)由 P0、P2 口送出 16 位地址,由于 P0 口送出的低 8 位地址只保持到 S2P2,所以要利用 ALE 的下降沿信号将 P0 口送出的低 8 位地址信号锁存到地址锁存器中。而 P2 口送出的高 8 位地址在整个读指令的过程中都有效,因此不需要对其进行锁存。从 S2P
10、2 起,ALE 信号失效。(3)从 S3P1 开始,开始有效,对外部程序存储器进行读操作,将选中的单元中的指令代码从 P0 口读入,S4P2 时刻,失效。(4)从 S4P2 后开始第二次读入,过程与第一次相似。访问外部数据存储器的操作过程如下:(1)从第 1 次 ALE 有效到第 2 次 ALE 开始有效期间,P0 口送出外部 ROM 单元的低 8位地址,P2 口送出外部 ROM 单元的高 8 位地址,并在有效期间,读入外部 ROM 单元中的指5令代码。(2)在第 2 次 ALE 有效后,P0 口送出外部 RAM 单元的低 8 位地址,P2 口送出外部RAM 单元高 8 位地址。(3)在第 2
11、 个机器周期,第 1 次 ALE 信号不再出现,此时也失效,并在第 2 个机器周期的 S1P1 时,信号开始有效,从 P0 口读入选中 RAM 单元中的内容。 对单片机还要进行系统扩展,诸如,地址锁存、存储器扩展、可编程外围并行接口的扩展等。这样才能完整实现单片机的功能。32 系统扩展、接口技术(1) 系统扩展:单片机虽然各功能部件齐全,但容量较小,如:片内 ROM、RAM、I/O 口,不够用时需要扩展,扩展三总线、ROM、RAM、I/O 口。(2) 系统接口 微机与外设连接因速度不匹配、信号类型不同(脉冲、模拟) 、传输方式不同(串、并), 接口是计算机与外设信息交换的桥梁。接口电路应具备如
12、下功能:(1)输入有缓冲、输出有锁存;(2)有应答联络信号; (3)有片选、控制信号;(4)有编程选择工作方式功能。本系统 8031 单片机系统的扩展接口原理图如下:图 2 8031 单片机系统的扩展接口原理图33 三总线概述三总线为:地址、数据、控制总线。(1)总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中 ,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之6间的工作必须相互协调。所以就需要的连线就很多了,如果仍如同模拟电路一样 ,在各微处理器和各器件间单独连线线,
13、则线的数量将多得惊人,所以在微处理机中引 入了总线的概念,各个器件共同享用连线,所有器件的 8 根数据线全部接到 8 根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为 0,一个为 1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的。所以,要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收) 。器件的数据线也就被称为数据总线,器件所有的控制线被称:控制总线。 在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能 用,分配地址也是以电信号的形式给出的,由于存储单元比较多,所以 ,
14、用于地址分的线也较多,这些线被称为地址总线。(2)地址总线:由 P2 口提供高 8 位地址线(A8A15) ,此口具有输出锁存的功能,能保留地址信息。由 P0 口提供低 8 位地址线。由于 P0 口是地址、数据分时使用的通道口,所以为保存地址信息,需外加地址锁存器锁存低 8 位的地址信息。一般都用 ALE 正脉冲信号的下降沿控制锁存时刻(3)数据总线:由 P0 口提供。此口是双向、输入三态控制的通道口。(4)控制总线:扩展系统时常用的控制信号为地址锁存信号 ALE,片外程序存储器取指信号以及数据存储器 RAM 和外设接口共用的读写控制信号等。 单片机与数据存储器的连接方法和程序存储器连接方法大
15、致相同,简述如下:A.地址线的连接,与程序存储器连法相同。B.数据线的连接,与程序存储器连法相同。C.控制线的连接,主要有下列控制信号:存储器输出信号和单片机读信号相连即和 P3.7 相连。存储器写信号和单片机写信号相连即和 P3.6 相连。ALE:其连接方法与程序存储器相同。 使用时应注意,访问内部或外部数据存储器时,应分别使用 MOV 及 MOVX 指令。三总线的扩展:如下图所示:7图 3 8031 扩展的三总线34 中断技术引发中断请求的源头称为中断源,中断源的多少反映计算机处理中断的能力,终端系统必须具备正确判断中断源的功能,一般有两种识别方式:查询终端和向量中断。查询中断的方式是通过
16、软件逐个查询各中断源的中断请求标志,其查询顺序反映出中断源的优先顺序。先查询的优先级高,后查询的优先级低,顺序排队。其缺点是软件查询循环占用一定的时间,每次必须经过从优先级最高的中断源查询开始,逐级向低优先级查询,影响主机响应中断的效率。外部中断源:外部中断 0 请求输入端口(P3.2) ,低电平或负跳变激活中断请求 IE0 位,当INT中断请求有效,0采用中断技术一般具有以下优点:可使多种功能或设备同时工作,只有需占用主机时才等待主机安排处理,因此大大提高了计算机系统的速度和主机的效率。有利于实时处理,有利于随机故障处理。在实际应用中注意:由于中断的发生随机,因而使得由中断驱动的中断服务程序
17、难以把握、检测和调试,这就要求在设计中断中力求谨慎。在输入/输出的数据处理频度很高或实时处理要求很高时,不宜采用中断方式。MCS-51 系列单片机提供的 56 个中断源中,两个中断请求信号由外部产生并输入请求信号,称之为外部中断源。本设计外部传感器产生的脉冲信号输入就如此,其余的中断请求信号均由内部产生并激活中断请求信号,故称为内部中断源。各中断请求信号分别由中断控制寄存器 TCON 进行控制。中断均可通过软件对其中断请求标志位进行置位/复位,这与内部硬件自动置位/复位的效果一样,亦即可通过软件产生中断请求或将挂起的中断请求撤销,此即所谓的软件中断。在禁止中断情况下,可采用软件查询方式进行处理
18、。MSC-51 系列单片机的中断是可编程的,即通过软件可实现对中断系统功能的设置与控制。 ,其中断响应为两级控制,EA 为总的中断响应控制位,各中断源还有相应得中断响应控制位。外部中断电平触发方式:对于电平触发方式的外部中断,其中断请求信号应持续保持请求有效(低电平)直至主机响应该中断请求为止,这是因为中断系统对中断请求不做记忆。而且还必须在该中断服务程序返回前撤销中断请求( 变为高电平) ,以免再次INTX进入中断而出错。为保证能被正确采样, 端口中断请求有效信号(低电平)应至少I保持两个机器周期。中断响应一般分为如下几个步骤:(1)保护断点,即保存下一将要执行的指令的地址,就是把这个地址送
19、入堆栈。(2)寻找中断入口,根据 5 个不同的中断源所产生的中断,查找 5 个不同的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这 5 个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能8被执行到) 。(3)执行中断处理程序。(4)中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。4 软件设计4.1 测频法与测周法在软件上为了在测量精度和相应速度两方面都取得较好的效果,本设计采取测频法和测周法相结合的技术。(1)测频法:在非智能数字式仪器中经常采用的方法。它是固定采样闸门时间 t,计算脉冲个数 N,通过设定小数点位
20、置,取得正确的显示结果。测频法时充分利用 8031 单片机的的两个定时/计数器,一个作为定时器,给出闸门信号,另一个作为计数器,对外界脉冲信号进行计数。测频法由于闸门信号的启闭与信号脉冲不同步,存在计数误差。如图 4所示:闸门信号被测信号图 4 测频法波形示意图最大相对计数误差为:1r=Nft由此可以看出,当信号频率较高时,误差较小,但当信号频率变低时,误差就增大。同时可以看出,若增大闸门时间 t,便可以减小误差,这样就不能准确地测出瞬时风速。这就形成一对矛盾:提高精度和瞬时值的取得。尤其是对于 10Hz 以下的信号,很难提高测量精度。因此测频法适用于高频信号的测量,对于低频信号,精度低,采样
21、时间也显得过长。在智能化仪器中,往往采用测周法提高对低频信号测量精度。(2)测周法:是以被测信号单个(或 N 个)周期作为闸门信号,在闸门时间内对时标脉冲计数,从而得到被测信号周期 T(或 N*T),再求出 f=1/T( )Nf=T如下图所示:9图 5 测周法的波形示意图时标信号作为时间基准,一般由高精度的高频晶振产生。8031 单片机定时器的时标信号就是机器周期,由系统晶振 12 分频得到,显然测周法的误差是对时标的计数误差,最大的相对计数误差为: t1r=ssffT式中,f 为被测信号的频率, 为时标信号的频率。f若采用多周期平均,相对误差更小表示为: Tfr=sN上两式可以看出,时标信号
22、频率越高误差越小,对于 8031 单片机,如果采用 12MHz 晶振则 =12MHz。另外被测信号频率越低误差越小,被测信号频率高时测量误差较大。sf(3)测频法和测周法的比较:测频法适用于高频,测周法适用于低频,测周法微机运算所花费的时间较之测频法要多得多,所以如果对高频信号采用测周法,会影响系统对被测信号的响应速度。(4)测频法测量:将 8031 单片机的两个定时/计数器分别定义:T0 为定时器,T1 为计数器,均为 16 位,即采用方式 1,其方式控制字为 51H。如果单片机晶振采用 12MHz,其机器周期为 1 ,最大定时时间 65.536ms 可通过对定时器赋初值改变定时时间(下文s
23、介绍) 。当 T0 开始定时计数同时,打开计数器 t1,对外部脉冲技术,当 T0 达到定时值时,响应中断,关计数器 T1。(5)测周法测量:适用于较低频率的信号。采用单片机内的一个定时/计数器,以单片机内标准机器周期作为标准时间信号,被测量信号的周期作为闸门,由程序控制开关对标准时间信号进行计数。将单片机内定时/计数器 T0 定位 16 位定时器,对内部机器周期计数,即方式控制字为 01H。定时器的开关由程序根据 P5.2 口上的状态进行控制,检测到下降沿时开定时/计数器 T0,当紧接着的另一个下降沿被检测到时关 T0 计数。综上所述,本设计测频法与测周法相结合的方案。在被测信号频率较高时,采
24、用测频法,闸门时间 t 可以选择为 2 的整数次幂数,以简化二进制除法的运算,提高系统得响应速度,为了保证测频法的测量精度,程序中设计了一个计数门槛值 ,当闸门时间到时,GN若对信号脉冲计数值 N ,则进行测频法计算;否则转入测周法。这样就保证了相对计G10数误差小于 ,而且同时实现了由测频法向测周法的自动转换,这是本仪器软件设计1GN的关键之一。程序流程图如下图所示:中断入口到达设定时间NG保护 N 赋初值关定时器检测到下降沿开计数器下一个下降沿到,关计数器保护 TE TH TL 值置测频计算标志置测周计算标志中断返回N NYY图 6 定时/计数器中断程序流程图42 程序结构由于双路信号的测量完全独立,所以下面以单路测量为例说明程序结构,该程序包含三大任务模块:闸门时间控制模块,信号脉冲计数模块,计算显示模块。各任务模块之间相互独立,同时或交叉的执行各自任务,三者之间的相互联系由三个标志位完成,十分有效的利用了 CPU 的时间,这是软件设计的又一关键之处。闸门时间控制是由定时/计数器配合软件实现的,8031 单片机在 12MHz 晶振时最大定时时间为 =65.536ms,为了获得更长的闸门时间,扩展一个软件定时/计数器162sTE,当硬件定时/计数器溢出中断时,在中断服务程序中加 1,然后进行改任务模块(闸门