为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

风扇测速

2017-09-20 23页 doc 259KB 37阅读

用户头像

is_037433

暂无简介

举报
风扇测速目  录 摘  要    2 Abstract    3 引  言    4 第一章  系统功能分析    5 §1.1 系统功能概述    5 第二章  系统总体设计    6 §2.1 硬件电路设计思路    6 §2.2 软件设计思路    6 §2.3转速测量原理     7 §2.4 风扇测速方法    7 第三章 硬件电路设计    8 §3.1 单片机模块    8 §3.1.1 处理执行元件    8 §3.1.2 时钟电路    12 §3.1.3 复位电路    12 §3.1.4 显示电路    15 §...
风扇测速
目  录 摘  要    2 Abstract    3 引  言    4 第一章  系统功能    5 §1.1 系统功能概述    5 第二章  系统总体设计    6 §2.1 硬件电路设计思路    6 §2.2 软件设计思路    6 §2.3转速测量原理     7 §2.4 风扇测速方法    7 第三章 硬件电路设计    8 §3.1 单片机模块    8 §3.1.1 处理执行元件    8 §3.1.2 时钟电路    12 §3.1.3 复位电路    12 §3.1.4 显示电路    15 §3.2 霍尔传感器简介    16 §3.2.1 霍尔传感器的应用    17 第四章 系统软件设计    18   §5.1 主程序初始化    18 第五章 系统调试    20   §5.1 硬件调试    20   §5.2 软件调试    21   §5.3 综合调试    21   §5.4 故障分析与解决方案    21   §5.5 结论与经验    21 参考文献    22 附    录    23 附录1 电路原理图    23 附录2 元器件清单    24 致    谢    29 基于单片机的风扇转速测量系统 摘 要:在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。 本文便是运用AT89C51单片机控制的转速测量仪。风扇在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。本系统就是对风扇转速进行测量,显示风扇的转速。并介绍了霍尔传感器测速的原理,设计了基于单片机AT89C51的风扇转速测量系统。完成了风扇转速测量系统的硬件电路设计、霍尔传感器测量电路的设计、显示电路的设计。测量转速的霍尔传感器和风扇同轴连接,风扇每转一周,产生一定量的脉冲个数,由霍尔器件电路部分输出幅度为12V的脉冲。经光电隔离器后成为输出幅度为5V转数计数器的计数脉冲。控制定时器计数时间,即可实现对风扇转速的测量。在显示电路设计中,通过1602实现在LCD上直观地显示电机的转速值。并对电机转速测量系统的硬件电路、显示电路进行了调试。仿真实验表明所设计的硬件电路及软件程序是正确的,满足设计要求。 关键词:风扇转速测量;霍尔传感器;单片机;89C51;LCD Abstract:In engineering practice, often meet various needs of occasions measuring the rotation speed, speed measurement method for analog and digital two. Analog tachometer generator for the detection element, the signal is analog quantity. Digital usually adopts the photoelectric encoder, Holzer and other components for detecting element, the signal is a pulse signal. With the wide application of computer, especially the high performance price compared to the appearance of single chip microcomputer, measuring speed is generally used to MCU as the core of digital measuring method. This paper is to use AT89C51 SCM intelligent rotational speed measuring instrument. The motor in the operation process, needs to carry on the control, speed is an essential one parameter. This system is the simulation of motor for fan speed measurement, display fan speed. And introduced the Holzer sensor measuring principle, design based on single chip computer AT89C51fan speed measurement system. Completion of the fan speed measurement system hardware circuit design, the Holzer sensor measuring circuit design, circuit design. Measurement of rotational speed sensor and coaxially connected Holzer fan, fan one week per revolution, resulting in a certain amount of pulse number, by Holzer device circuit portion of the output amplitude of 12V pulse. The photoelectric isolator after becoming an output amplitude of5V revolution counter for counting pulses. Control timer counting time, can realize the fan rotation speed measurement. In the design of display circuit, by1602the realization of the LCD to visually display the motor speed value. And the motor speed measurement system hardware circuit, the display circuit debugging. Simulation experiments show that the designed hardware circuit and software program are correct, and meet the design requirements. Key words: fan speed measurement; Holzer sensor; SCM;89C51; LCD 引  言 在工程实践中,经常会遇到各种需要测量转速的场合, 例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。要测速,首先要解决是采样问题。在使用模技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。为了能精确地测量转速外,还要保证测量的实时性,要求能测得瞬时转速方法。因此转速的测试具有重要的意义。    这次设计包含知识全面,对传感器测量发电机转速的不同的方法及原理设计有较多介绍,在测量系统中能学到关于测量转速的传感器采样问题,单片机部分的内容,显示部分等各个模块的通信和联调。全面了解单片机和信号放大的具体内容。进一步锻炼我们在信号采集,处理,显示发面的实际工作能力。转速测量可以对风扇的转速进行测量,风扇在运行的过程中,需要对其平稳性进行监测,本实验就是用风扇模拟对电机转速的测量,对转速的测量有效地可以反映电机的状况。 本系统主要由传感器,单片机AT89C51构成。单片机的英文名称是Micro Controller unit,缩写为MCU,又称为微控制器,它是一种面向控制的大规模集成电路芯片。它具有功能强、体积小、可靠性高、应用简单灵活,因而使用非常广泛,有力地推动各行业的技术发展和更新换代。  本文首先在第二章绪论介绍了此系统的功能、技术指标以及主要内容等;在第三章论述了总体设计过程,确定了技术指标及器件的选择;第四章着重描述了系统硬件电路设计、硬件设计框图及所使用的各种芯片功能与特性;在第五章中重点剖析了软件设计的过程;最后在第六章中具体论述单片机、电平转换电路、通信的处理及调试。 由于本人水平有限,加之时间仓促,中难免会有错误和不足之外,不够理想、许多方面还需要继续完善和改进。在这里恳请指导老师和各位专家老师批评指正。在此特别感谢我的指导老师齐盛老师的大力指导。 第一章  系统功能分析 §1.1 系统功能概述 功能: 系统主要实现功能是:AT89C51单片机接收霍尔传感器传来的脉冲信号,单片机根据外部中断,以及内部定时器进行记数计算出风扇转速送到LED显示。 组成及框图: 传感器 放大、整形、 电路 传感器电路、转速测量、LED显示等将在以下章节作详细地设计。                                                                                                   LED显示 单 片 机 AT89C51 图1.1 系统硬件电路 应用: 从实用的角度看,评价一个系统实用价值的重要,就是这个系统对社会生活和科技观念有多大的贡献。转速测量系统具有大范围、高精度等优点、测量速度快,这种系统将会有良好的应用。 各部分模块的功能: ①传感器:用来对信号的采样。 ②放大、整形电路:对传感器送过来的信号进行放大和整形,在送入单片机进行数据的处理转换。 ③单片机:对处理过的信号进行转换成转速的实际值,送入LED ④LED显示:用来对所测量到的转速进行显示。 第二章  系统总体设计 §2.1 硬件电路设计思路 硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。 89C51单片机通过INT0输入传感器的脉冲信号,P0口P2口接LED动态显示。转速测量部分的硬件设计思路:本次设计单片机部分的硬件框图如 图2-1所示。 CPU 执行单元 显示电路 复位电路                                                                                               发送电路 时钟电路 图2.1 单片机部分硬件框图 具体详细的叙述将在下面的章节中逐一介绍。 §2.2 软件设计思路 软件需要解决的是定时器0的记数和外部中断0的设定、由于测量的转速范围大,所以低速和高速都要考虑在内,关键在于一个四字节除三字节程序的实现。显示部分、需要有一个二进制到十进制的转化程序,以及转换成非压缩BCD 的程序后、才能进行调用查表程序送到显示。 软件工作流程:霍尔传感器利用磁电效应产生一周期脉冲向单片机的外部中断0(P3.2)口发送一个中断信号,定时器工作在内部定时,TH0、TL0设定初值为0,作为除数的低两字节,利用软件记数器、定时器0中断的次数作为除数高字节。中断完毕读取内部记数值作为除数,调用除法程序计算转速,再对二进制数进行一系列变换后调用查表显示程序,显示在LED上。 转速部分软件设计思路: AT89C51单片机的P3.2口接收传感器的信号。主要编写一个外部中断服务程序INT_0,读取记数值的三个字节,并再次清0记数初值以便下次的记数和计算。调用两字节二进制-三字节十进制(BCD)转换子程序BCD,再调用十进制转换成非压缩BCD程序CBCD、最后调用查表程序送显示。为了和PC通信,系统要求单片机晶振11.0592MHZ。软件的具体设计我们将在下面的章节中作详细介绍。 §2.3转速测量原理 一般的转速长期测量系统是预先在轴上安装一个有60 齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转60 倍转速脉冲,再用测频的办法实现转速测量。而临时性转速测量系统,多采用光电传感器,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。即通过速度传感器,将转速信号变为电脉冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。即: n=N/ (mT)                  (1) ◆n ———转速、单位:转/ 分钟; ◆N ———采样时间内所计脉冲个数; ◆T———采样时间、单位:分钟; ◆m ———每旋转一周所产生的脉冲个数(通常指测速码盘的齿数) 。 如果m=60, 那么1 秒钟内脉冲个数N就是转速n, 即: n=N/ (mT) =N/60 ×1/60=N        (2) ◆通常m为60。 §2.4风扇测速的方法 1, 首先用感应器获取车轮发出的信号脉冲,计算1秒内有多少脉冲过来.假定车轮转1圈产生10个脉冲,那么转10圈就是100个脉冲. 2, 将获取的脉冲数/10,得到车轮的转数. 3, 转数* 车轮直径*3.14,即是1秒内车子行驶的距离(单位:米) 4, 1秒内行驶的距离*3600,即是1小时内车辆的行驶的距离(单位:米) 5,1小时行驶的距离/1000,即得到车辆每小时行驶的公里数. 第三章  硬件电路设计 硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性,以及工艺结构的设计加工、印制板的制作、样机的组装等。 整个单片机测量转速系统为单片机控制模块、霍尔传感器模块、发送模块,各个模块都承担着各自的任务。 设计单片机模块,考虑到单片机本身的外围电路较多,所以在单片机模块方面需要极为小心。在整个电路设计时要考虑电平转换电路,具体每一部分的设计将在以下章节中详细分析。 §3.1 单片机模块 根据系统功能要求以及单片机硬件电路设计思路(如图3-1)对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为传感器电路、时钟电路、复位电路、执行元件以及显示电路五个部分。 §3.1.1 处理执行元件 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。   下图是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。             图3.1 AT89C51 实物图 图3.2 AT89C51引脚图 主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器  寿命:1000写/擦循环     ·数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 管脚说明: 1.VCC:供电电压; 2.GND:接地; 3.P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 4.P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 5.P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 6.P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表4-1所示: 7.RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 8.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。 表3.3 P3口的第二功能 Tab.4-1 The second feature I P3 引    脚 第二功能 信 号 名 称 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INT0 INT1 T0 T1 WR RD 串行数据接收 串行数据发送 外部中断0请求 外部中断1请求 定时器/计数器0计数输入 定时器/计数器1计数输入 外部RAM写选通 外部RAM读选通 P3口同时为闪烁编程和编程校验接收一些控制信号。 此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。     9./PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。     10./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。     11.XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。     12.XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 §3.1.2 时钟电路 时钟电路是计算机的心脏,它控制着计算机的工作节奏。51单片机允许的时钟频率是因型号而异的典型值为12MHZ MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。 CMOS型单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图3.4为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD=0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。 图3.4 CMOS型单片机时钟电路框图 §3.1.3 复位电路 51 单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。 图3.5复位电路 ①复位功能:  复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。 单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位(如图3.6 (a))和按钮复位(如图3.6(b))两种方式。 图3.6 RC复位电路 ②单片机复位后的状态:     单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表1。          值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。                                      说明:表3.7中符号*为随机状态: 表3.7  寄存器复位后状态表 特殊功能寄存器 初始状态 特殊功能寄存器 初始状态 A B PSW 00H 00H 00H TMOD TCON TH0 00H 00H 00H SP DPL DPH P0—P3 IP IE 07H 00H 00H FFH ***00000B 0**00000B TL0 TH1 TL1 SBUF SCON PCON 00H 00H 00H 不定 00H 0********B PSW=00H,表明选寄存器0组为工作寄存器组; SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出 。IP=×××00000B,表明各个中断源处于低优先级; IE=0××00000B,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。 51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。 §3.1.4 显示电路 显示电路采用LED数码管动态显示,LED(Light-Emitting Diode)是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。 显示器结构: 常用的七段显示器的结构如图3.8所示。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器由八个发光二极管组成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。 此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来,如图3.9所示,为七段数码管的管脚图。 图3.8 七段发光显示器的结构 图3.9 七段发光显示器管脚的结构 驱动方式: 采用的数码管驱动为7407,它的全名为7407 TTL 集电极开路六正相高压驱动器,其结构简单,使用方便,图3.10为7407的图以及各个引脚的分布功能介绍。 图3.10 §3.2 传感器简介     霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。 图3.21  CS3020外形图 使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。 缺点:采用霍尔传感器在信号采样的时候,会出现采样不精确,因为它是靠磁性感应才采集脉冲的,使用时间长了会出现磁性变小,影响脉冲的采样精度。 §3.2.1 霍尔传感器的应用 使用霍尔器件检测磁场的方法极为简单,将霍尔器件做成各种形式的探头,放在被测磁场中,因霍尔器件只对垂直于霍尔片表面的磁感应强度敏感,因而必须令磁力线和器件表面垂直,通电后即可由输出电压得到被测磁场的磁感应强度。若不垂直,则应求出其垂直分量来计算被测磁场的磁感应强度值。而且,因霍尔元件的尺寸极小,可以进行多点检测,由计算机进行数据处理,可以得到场的分布状态,并可对狭缝,小孔中的磁场进行检测用磁场作为被传感物体的运动和位置信息载体时,一般采用永久磁钢来产生工作磁场。例如,用一个5×4×2.5(mm3)的钕铁硼Ⅱ号磁钢,就可在它的磁极表面上得到约2300高斯的磁感应强度。在空气隙中,磁感应强度会随距离增加而迅速下降。为保证霍尔器件,尤其是霍尔开关器件的可靠工作,在应用中要考虑有效工作气隙的长度。在计算总有效工作气隙时,应从霍尔片表面算起。在封装好的霍尔电路中,霍尔片的深度在产品手册中会给出。 因为霍尔器件需要工作电源,在作运动或位置传感时,一般令磁体随被检测物体运动,将霍尔器件固定在工作系统的适当位置,用它去检测工作磁场,再从检测结果中提取被检信息。 第四章  系统软件设计     硬件电路完成以后,进行系统软件设计。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。     根据设计的要求,单片机的任务是:内部进行计数,在计算出速度后显示。软件编程用C语言完成的,需要能掌握C语言,还要熟练AT89C51单片机。从程序流程图、编写程序、编译,到最后的调试,是很复杂的。下面作简单介绍:系统软件主程序的功能是完成系统的初始化、显示程序。 §4.1 主程序初始化 (1)定时器的初始化       AT89C51有两个定时器/计数器T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。     定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断身请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。   定时器有4种工作方式:方式0、方式2、方式2和方式3,在此对工作方式不做具体介绍。 工作方式寄存器TMOD的设定: GATE C/T M1- M0 GATE C/T M1 M0 TMOD各位的含义如下: ◆GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。 ◆C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。 M1、M0为工作方式选择位 ,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下表4.1:M1M0=00为方式0;M1M0=01为方式1;    表4.1  M1、M0为工作方式选择位 MO M1 工作方式 方式说明 0 0 1 1 0 1 0 1 0 1 2 3 13位定时/计数器 16位定时/计数器 8位自动重置定时/计数器 两个8位定时/计数器(只有T0有) (2)中断允许控制 MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。中断允许寄存器IE的字节地址为A8H,可以进行位寻址. 表4.2 中断位寻址表 IE D7 D6 D5 D4 D3 D2 D1 D0 (A8H) EA ET2 ES ET1 EX1 ET0 EX0 ◆EA:中断允许总控位。EA=0,屏蔽所有的中断请求;EA=1,开放中断。 ◆ET2:定时器/计数器T2的溢出中断允许位 ◆ES:串行口中断允许位。 ◆ET1:定时器/计数器T1的溢出中断允许位。 ◆EX1:外部中断 INT1的中断允许位。 ◆ET0:定时器/计数器T0的溢出中断允许位。 ◆EX0:外部中断 INT0的中断允许位。 第五章 系统调试 电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。 §5.1 硬件调试 硬件调试主要是针对我的转速测量系统的单片机硬件电路分别进行调试。这一部分硬件调试主要分成两大块:上电前的调试和上电后的调试。 上电前的调试 在上电前,我们必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。 特别是数码管的连接部分,有PROTEL制作的PCB确保要和原理图上的图一致,有些在电路板上没法连接的线路,要用短接线把接好,对照着原理图部分,一部分一部分地用万用表测量,注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。 上电后的调试 在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次课程设计中,上电调试主要只转速测量系统的单片机控制部分、数码管点亮部分、和上位机通信是的电平转换和串口通信部分的硬件调试。 1、单片机控制部分硬件调试:这一部分调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其他的一些管脚的接法。看单片机通电后能否可以正常工作等这一系列问题。 2、数码管LED电路调试:由于数码管采用的是动态扫描的方式点亮的。数码管的公共端(COM)接在7407驱动再接到单片机的P2口作为位选信号,字型是接在P0口。电路上电检查7407是否接上电源和地让其正常工作。在这一前提下,查看数码管能否点亮。只需要接仿真机上编写一个小程序让LED全亮,或者让它们其中的某位点亮,也可以显示不同的数字,根据要求给P0口,P2口分别赋值。即可检查数码管的硬件电路是否正确,即可判断显示驱动电路整个完整,首先排除这里的故障。 §5.2 软件调试 整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。 §5.3 综合调试 在硬件和软件单独调试成功后进行软硬件综合调试,它可以分成以下几个步骤: 1.使霍尔传感器有方波信号输出; 2.使单片机获得中断信号,计算出转速值并存储; 3.通过LED数码管把测量的数据显示出来。 §5.4 故障分析与解决方案 故障出现情况: 1、霍尔传感器不能产生有效的TTL电平,产生波形不稳 2、单片机的中断服务程序不能执行,不管是定时中断还是外部中断; 3、中断执行低速情况也就是软件记数功能不对; 4、测得的转速不准确,而且在波形频率变化下显示转速却不变 5、单片机显示部分无法工作,显示不稳定; §5.5 结论与经验 结论: 通过各方面努力,本次毕业设计任务完成,系统各部分功能均已实现,单片机能够测量出电机的转速并能显示在LED数码管上。 经验: 1、由于本系统采用5V直流电源供电,霍尔传感器要选用工作电压的范围包含5V电压的可以省去再用一个电源的麻烦,单片机等都是工作在TTL电平的,霍尔传感器输出的波形应为TTL电平,以便单片机能够识别。 2、数码管要采用共阴数码管,因为数码管的灌电流可以大些达到几十毫安,但是拉电流比较小,采用共阳数码管可能因为电流过小而数码管不能点亮数码管,还有就是接在上拉电阻再接5V上,最好采用1K的排阻。 参考文献 [1].何立民.单片机应用技术选编.北京:北京航空航天大学出版社,1997,10 [2].张有德.单片微机原理、应用与实验.上海:复旦大学出版社,1997,8 [3].李朝青.单片机&DSP外围数字IC技术手册.北京:北京航空航天大学出版社, 1998,4 [4].梁廷贵、王裕琛 .现代集成电路实用手册.北京:科学技术文献出版 社,1999,6 [5].于海生.微型计算机控制技术选编.北京:清华大学出版社,1999.3 [6].徐爱钧.智能化测量控制仪表原理与设计. 北京:北京航空航天大学出版 社,1995.11 [7].周兴华.手把手教你学单片机.北京:北京航空航天大学出版社,1996,7 [8].神龙工作室.Protel 2004 实用培训.北京:人民邮电出版社,1995,1 [9].扈啸,周旭升编著.单片机数据通信技术从入门到精通.西安:西安电子科技 大学出版社,2002,9 附    录 附录1 电路原理图 附录2 源程序 #include #include #define  uchar unsigned char//宏定义 #define  uint unsigned int//宏定义 long  dist,i,licheng;//定义距离,变量,里程 sbit    k3=P1^0;//时速按键 sbit    k2=P1^1;//里程按键 sbit    k1=P1^2;//车轮转速按键 uchar    jishu,ds1,ds2,ds3,ds4,ds5,ds6,count,flag; uchar    shisu,shisu_1,shisu_2,shisu_3; uchar    code tab[]=         {0xc0,0xf9,0xa4,0xb0,0x99,         0x92,0x82,0xf8,0x80,0x90};//字型表 /*****************11us延时函数*************************/ void delay2(uchar x) { uchar a,b; for(a=0;a<20;a++)   { for(b=x;b>0;b--); } } //*************初始化定时器0,1****************** void init_tm() {EA=1;//总中断开 ET0=1;//定时器中断0开 TMOD=0X51;//定时器模式 TH0=0X3C; TL0=0XB0; IT0=1;//下降沿触发 TH1=0; TL1=0;//清除数值 TR0=1;//开T0 TR1=1;//开T1 } void disp_speed()//显示转速函数 { P2=0XFB; P0=tab[ds1]; delay2(20); P2=0XFD; P0=tab[ds2]; delay2(20); P2=0XFE; P0=tab[ds3]; delay2(20); } void disp_dist()//显示里程函数 { P2=0XFB; P0=tab[ds4];// delay2(20); P2=0XFD; P0=tab[ds5]; delay2(20); P2=0XFE;; P0=tab[ds6]; delay2(20); } void disp_shisu()//显示时速 { P2=0XFB; P0=tab[shisu_1];// delay2(20); P2=0XFD; P0=tab[shisu_2]; delay2(20); P2=0XFE;; P0=tab[shisu_3]; delay2(20); } void main() { init_tm();//初始化定时器 while(1) {   if(k1==0)   flag=0;//速度显示标志   if(k2==0)   flag=1;//里程显示标志   if(k3==0)   flag=2;   if(flag==0)   disp_speed();//速度显示   if(flag==1)   disp_dist();//里程显示    if(flag==2)   disp_shisu();//里程显示    } } void intt0() interrupt 1//定时器0中断 { TH0=0X3C; TL0=0XB0;//恢复初直 count++; if(count==20)//到1秒时间   {count=0;     TR1=0;//关闭T1     jishu=TH1*256+TL1;//计算车轮转数     i=jishu*0.4*3.14;//转数* (车轮直径*PI)     shisu=(jishu*0.4*3.14*3600)/1000;     dist=dist+i;//计算距离     if(dist>1000)//如果距离到1千米       { licheng++;//里程加1           dist=0;//清0         if(licheng==100)//里程到100             licheng=0;//清0       }      ds1=jishu/100;//计算转数百位     ds2=jishu%100/10;//计算转数十位     ds3=jishu%100%10;//计算转数个位     ds4=licheng/100;////计算里程百位     ds5=licheng%100/10;//计算里程十位     ds6=licheng%100%10;//计算转数个位     shisu_1=shisu/100;      shisu_2=shisu%100/10;     shisu_3=shisu%100%10;     TH1=0;     TL1=0;//清除计数器1数值     TR1=1;//开T1           } } 致    谢 经过几个月的忙碌,本次毕业设计已经接近尾声,通过这次学校组织的毕业设计,端正了自己学习的态度,锻炼了自己独立动手的能力,在此,我要感谢每一个帮助过我的人。   首先,我要感谢的是我的导师齐盛老师。齐盛平日里工作繁多,但在我做毕业设计的每个阶段,都给予我悉心的指导和帮助。可以说,没有齐盛的悉心指导和帮助,我是不可能顺利完成我的毕业设计的。另外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 再次,我要感谢的是我的同学和舍友们在我毕业设计期间,他们给了我不少的关心和帮助。理论与实践的结合,是对知识较好牢固掌握的一种方法,这次的毕设就有这种理念.基于改变高分低能的现状.对于即将毕业的我们,社会更迫切需要的是能力而不是以往的高分.学校看出了这种现状,所以安排了毕业生的最后一门课:理论实践相结合.所以作为毕业生的我表示深切感谢.这次真的是机不可失,失不在来.最后我要感谢的是我亲爱的浙江商业是职业技术学院的每一位老师和同学。 总之,感谢每一位关心过我,爱护过我的人。滴水之恩,当涌泉相报。
/
本文档为【风扇测速】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索