我用单片机产生一个50赫兹的信号但是用逻辑分析仪测显示是48赫兹,这个属于正常误差吗?

《基于单片机的电机转速测量系统设计(附图及源程序)》由会员分享,可在线阅读,更多相关《基于单片机的电机转速测量系统设计(附图及源程序)(47页珍藏版)》请在人人文库网上搜索。

要在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。本文便是运用AT89C51单片机控制的智能化转速测量仪。电机在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。本系统就是对电机转速进行测量,并可以和PC机进行通信,显示电机的转速,并观察电机运行的基本状况。本设计主要用AT89C51作为控制核心,由霍尔传感器、LED

2、数码显像管、HIN232CPE电平转换、及RS232构成。详细介绍了单片机的测量转速系统及PC机与单片机之间的串行通讯。充分发挥了单片机的性能。本文重点是测量速度并显示在5位LED数码管上。其优点硬件是电路简单,软件功能完善,测量速度快、精度高、控制系统可靠,性价比较高等特点。关键字:MSC-51(单片机); 转速; 传感器目 录摘 要1Abstract21 序 言12 系统功能分析22.1 系统功能概述22.2 系统要求及主要内容23 系统总体设计43.1 硬件电路设计思路43.2 软件设计思路44 硬件电路设计64.1 单片机模块64.1.1 处理执行元件64.1.2 时钟电路104.1.

硬件调试296.2 软件调试306.3 综合调试326.4 故障分析与解决方案336.5 结论与经验34参考文献36致 谢37附 录38附录1 电路原理图38附录2 元器件清单391 序 言智能化转速测量可以对电机的转速

4、进行测量,电机在运行的过程中,需要对其平稳性进行监测,适时对转速的测量有效地可以反映电机的状况。本系统主要由传感器,单片机AT89C51构成。可以对大范围转速进行测量,测量的转速精度高,还可以和PC机时时通信,实现对电机转速的测量。单片机的英文名称是Micro Controller unit,缩写为MCU,又称为微控制器,它是一种面向控制的大规模集成电路芯片。它具有功能强、体积小、可靠性高、应用简单灵活,因而使用非常广泛,有力地推动各行业的技术发展和更新换代。 本文首先在第二章绪论介绍了此系统的功能、技术指标以及主要内容等;在第三章论述了总体设计过程,确定了技术指标及器件的选择;第四章着重描述

5、了系统硬件电路设计、硬件设计框图及所使用的各种芯片功能与特性;在第五章中重点剖析了软件设计的过程;最后在第六章中具体论述单片机、电平转换电路、通信的处理及调试。由于本人水平有限,加之时间仓促,论文中难免会有错误和不足之外,不够理想、许多方面还需要继续完善和改进。在这里恳请指导老师和各位专家老师批评指正。在此特别感谢我的指导老师郭顺京老师的大力指导。2 系统功能分析2.1 系统功能概述功能:系统主要实现功能是:AT89C51单片机接收霍尔传感器传来的脉冲信号,单片机根据外部中断,以及内部定时器进行记数计算出电机转速送到LED显示,同时数据传给PC机,并在PC机屏幕上显示出来。记录各时段的转速,画

6、出V-T坐标图。组成及框图:本系统通信部分是单片机经电平转换电路HIN232CP之后,通过串口RS-232发送数据,由PC微机接收,微机部分用Visual Basic软件编写的界面作为PC机部分与单片机进行串口之间通信。传感器电路、转速测量、LED显示、电平转换电路设计等将在以下章节作详细地设计。传感器电 平 转 换电 路单 片 机 AT89C51 送PC机界面驱动电路LED显示 图2-1 系统硬件电路应用:从实用的角度看,评价一个系统实用价值的重要标准,就是这个系统对社会生活和科技观念有多大的贡献。转速测量系统具有大范围、高精度等优点、测量速度快,这种系统将会有良好的应用。2.2 系统要求及

7、主要内容将霍尔传感器产生的脉冲信号输出入到单片机的外部中断0口,单片机工作在内部定时器工作方式0,对周期信号进行内部记数,调用计算公式算出转速,调用显示程序显示在LED上,同时通过串口向上位机发送转速数据。主要内容:(1)单片机部分主要完成电机转速的测量(2)LED部分主要是把转速显示出来,显示范围60-36000r/min(3) 发送部分主要是完成电平转换,送RS232向PC发送数据。(4) PC机部分主要完成将数据显示在界面并描绘出V-T图2.3 系统技术指标系统主要完成以下功能:测量系统:1.设计并制作单片机的转速测量的硬件系统;2.用汇编语言完成转速测量的软件系统;3.要求把转速显示在

8、5位LED上,精度为0.1%;4.能向上位机发送数据;5.用9针RS-232即可;通信部分:1.在微机部分采用Visual Basic编制RS232通信软件;2.通信软件具有数据接受编辑框;3.通信软件要适时对数据的记录,用时间曲线表示;根据系统要实现的功能以及要求,要实现单片机的转速测量主要是各个模块的设计,定时器记数功能、以及LED驱动、电平转换及PC机之间的通信。单片机可通过编程控制外围部件,能实现较高的自动化程度。以它为系统核心的控制模块可实现主从控制,完成预定的任务。3 系统总体设计3.1 硬件电路设计思路硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用

9、的元器件,设计出系统的原理框图、电路原理图。89C51单片机通过INT0输入传感器的脉冲信号,P0口P2口接LED动态显示。另由于PC系列微机串行口为RS232C标准接口,与输入、输出均为TTL电平的89C51单片机在接口规范上不一致,因此TTL 电平到RS232接口电平的转换采用HIN232CP接口芯片,该芯片可以用单电压(+5V)实现RS232接口逻辑“1”(-3V-15V)和逻辑“0”(+3V+15V)的电平转换。转速测量部分的硬件设计思路:本次设计单片机部分的硬件框图如 图21所示。CPU执行单元显示电路复位电路 发送电路时钟电路 图3-1 单片机部分硬件框图具体详细的叙述将在下面的章

10、节中逐一介绍。3.2 软件设计思路软件需要解决的是定时器0的记数和外部中断0的设定、由于测量的转速范围大,所以低速和高速都要考虑在内,关键在于一个四字节除三字节程序的实现。显示部分、需要有一个二进制到十进制的转化程序,以及转换成非压缩BCD 的程序后、才能进行调用查表程序送到显示。PC机串口和单片机串行口的工作方式,包括串行口的通讯速率、奇偶校验位、停止位等均由通信部分的软件部分实现。软件工作流程:霍尔传感器利用磁电效应产生一周期脉冲向单片机的外部中断0(P3.2)口发送一个中断信号,定时器工作在内部定时,TH0、TL0设定初值为0,作为除数的低两字节,利用软件记数器、定时器0中断的次数作为除

11、数高字节。中断完毕读取内部记数值作为除数,调用除法程序计算转速,再对二进制数进行一系列变换后调用查表显示程序,显示在LED上。(同时调用传送程序向上位机送数据,这里不是本文重点)转速部分软件设计思路: AT89C51单片机的P3.2口接收传感器的信号。主要编写一个外部中断服务程序INT_0,读取记数值的三个字节,并再次清0记数初值以便下次的记数和计算。调用两字节二进制-三字节十进制(BCD)转换子程序BCD,再调用十进制转换成非压缩BCD程序CBCD、最后调用查表程序送显示。为了和PC通信,系统要求单片机晶振11.0592MHZ。软件的具体设计我们将在下面的章节中作详细介绍。4

12、件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性,以及工艺结构的设计加工、印制板的制作、样机的组装等。整个单片机测量转速系统为单片机控制模块、霍尔传感器模块、发送模块,各个模块都承担着各自的任务。设计单片机模块,考虑到单片机本身的外围电路较多,所以在单片机模块方面需要极为小心。在整个电路设计时要考虑电平转换电路,具体每一部分的设计将在以下章节中详细分析。4.1 单片机模块根据系统功能要求以及单片机硬件电路设计思路(如图31)对单片机模块进行设计,要使单片机准确的测

13、量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为传感器电路、时钟电路、复位电路、执行元件以及显示电路五个部分。4.1.1 处理执行元件单片机我们采用AT89C51(其引脚图如图41),相较于INTEL公司的8051它本身带有一定的优点。AT89C51是一种带4K字节闪烁可编程可擦除只读存贮器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存

14、储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图4-1 AT89C51引脚图主要特性:与MCS-51 兼容4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路管脚说明:1.VCC:供电电压;2.GND:接地;3.P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时

15、,被定义为高阻输入。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”时,其管脚被内部上拉电阻拉高,

16、且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。6.P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51

17、的一些特殊功能口,如下表41所示:7.RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。8.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。表4-1

18、3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行数据接收串行数据发送外部中断0请求外部中断1请求定时器/计数器0计数输入定时器/计数器1计数输入外部RAM写选通外部RAM读选通P3口同时为闪烁编程和编程校验接收一些控制信号。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 9./PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 10./E

19、A/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 11.XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 12.XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外

20、部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。4.1.2 时钟电路时钟电路是计算机的心脏,它控制着计算机的

21、工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZMCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。CMOS型单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图42为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达

22、到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。图4-2 CMOS型单片机时钟电路框图4.1.3 复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引脚上出现2

23、个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。单片机采用的复位方式是自动复位方式。对于MOS(AT89C51)单片机只要接一个电容至VCC即可(见图43)。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。10MHZ时约为1m

24、s,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。RC时间常数越大,上电RST端保持高电平的时间越长。若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。图4-3 上电复位电路4.1.4 显示电路显示电路采用LED数码管动态显示,LED(Light-Emitting Diode)是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。显示器结构:常用的七段显示器的结构如图44所示。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的

25、称为共阴极显示器。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来,如图4-5所示,为七段数码管的管脚图。图4-4 七段发光显示器的结构图4-5 七段发光显示器管脚的结构驱动方式:采用的数码管驱动为7407,它的全名为7407 TTL 集电极开路六正相高压驱动器,其结构简单,使用方便,图4-6为7407的图以及各个引脚的分布功能

7407管脚的结构显示方式:为了节省I/O口线,我们采用的动态显示方式。所谓动态显示,就一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需8位口(称为扫描口),控制各位显示器所显示的字形也需一个8位口(称为段数据口)。本次设计要求的转速测量范围60r/min-36000r/min,所以只需要5位数码管即可。5位共阴极显示器和AT89C51的接口逻辑如图4-7所示。AT89C51的P0口

27、作为段数据口,接上拉电阻到显示器的各个段;P2口作为扫描口,经同相驱动器7407接显示器公共极。对于图4-7中的5位显示器,在AT89C51RAM存贮器中设置五个显示缓冲器单元30H35H,分别存放5位显示器的显示数据,AT89C51的P2口扫描输出总是只在一位为低电平,即5位显示器中仅有一位公共阴极为低电平,其它位为高电平,AT89C51的P0口相应位(阴极为低)的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P2口输出为高的位,P0口输出对应的段数据,5位显示器就显示出由缓冲器中显示数据所确定的字符。图4-7 五位动态显示电路4.2 霍尔传感器简介4.2.1 霍尔器件概述霍

28、尔元件是一种基于霍尔效应的磁传感器,已发展成一个品种多样的磁传感器产品族,并已得到广泛应用。霍尔元件是一种磁传感器。要他们可以检测磁场及其变化,可以在各种与磁场有关的场合中。霍尔器件以霍尔效应为其工作基础。霍尔期间具有许多优点,他们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHZ),耐震动,不怕灰尘、水汽及烟雾等污染或腐蚀。霍尔线性器件的精度高、线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回调、位置重复精度高(可达um级)。采用了各种补偿措施的霍尔器件的工作温度范围广,可达55-150度。按照霍尔器件的功能可将他们分为:霍尔线性器件和霍尔开关器件。前

29、者输出模拟量,后者输出数字量。按被检测的对象的性质可将它们分为:直接应用和间接应用。前者是直接检测出被测对象本身的磁场或磁特性,后者是检测被检测对象上人为设置的磁场,用这个磁场作为被检测信息的载体,通过它,将许多非电、非磁的物理量例如力、力矩、压力、应力、位置、位移、加速度、角度、角速度、转速、转数以及工作状态发生变化的时间等,转换成电量来进行检测和控制。集成霍尔传感器是利用硅集成电路工艺将霍尔元件和测量线路集成在一起的一种传感器。它取消了传感器和测量电路之间的界限,实现了材料、元件、电路三位一体。集成霍尔传感器与分立相比,由于减少了焊点,因此显著地提高了可靠性。此外,它具有体积小、重量轻、功

30、耗低等优点,正越来越爱到众的重视。集成霍尔传感器的输出是经过处理的霍尔输出信号。按照输出信号的形式,可以分为开关型集成霍尔传感器和线性集成霍尔传感器两种类型。开关型集成霍尔传感器是把霍尔元件的输出经过处理后输出一个高电平或低电平的数字信号。霍尔开关电路又称霍尔数字电路,由稳压器、霍尔片、差分放大器,斯密特触发器和输出级组成。4.2.2 霍尔传感器的应用使用霍尔器件检测磁场的方法极为简单,将霍尔器件做成各种形式的探头,放在被测磁场中,因霍尔器件只对垂直于霍尔片表面的磁感应强度敏感,因而必须令磁力线和器件表面垂直,通电后即可由输出电压得到被测磁场的磁感应强度。若不垂直,则应求出其垂直分量来计算被测

31、磁场的磁感应强度值。而且,因霍尔元件的尺寸极小,可以进行多点检测,由计算机进行数据处理,可以得到场的分布状态,并可对狭缝,小孔中的磁场进行检测用磁场作为被传感物体的运动和位置信息载体时,一般采用永久磁钢来产生工作磁场。例如,用一个542.5(mm3)的钕铁硼号磁钢,就可在它的磁极表面上得到约2300高斯的磁感应强度。在空气隙中,磁感应强度会随距离增加而迅速下降。为保证霍尔器件,尤其是霍尔开关器件的可靠工作,在应用中要考虑有效工作气隙的长度。在计算总有效工作气隙时,应从霍尔片表面算起。在封装好的霍尔电路中,霍尔片的深度在产品手册中会给出。 因为霍尔器件需要工作电源,在作运动或位置传感时,一般令磁

32、体随被检测物体运动,将霍尔器件固定在工作系统的适当位置,用它去检测工作磁场,再从检测结果中提取被检信息。4.2.3 AH41霍尔开关AH41霍尔开关电路最适于响应变化斜率陡峭的磁场并在磁通密度较弱的场合使用,适用于单极或多对磁环工作,它由反向电压保护器、电压调整器、霍尔电压发生器、信号放大器、史密特触发器和集电极开路的输出级组成。工作温度范围为-40 150(存储温度为150),可适用于各种机及机电一体化领域。 电参数: 参数 符号 测试条件 量值 单位 最小 典型 最大电源电压VCC4.5-24V输出低电平电压 Vout Iout=20mA BBOP-200-400mV输出高电平电流 IOF

产品特点:.电源电压范围宽.可用市售的小磁环来驱动.无可动部件、可靠性高.尺寸小.抗环境应力.可直接同双极和MOS逻辑电路接口应用:.高灵敏的无触点开关.直流无刷电机.直流无刷风机. 霍尔开关元件的电路图:图4-8 霍尔传感器的电路图4.3 发送模块根据系统功能要求,要使单片机测量的转速能够向上位机发送数据,硬件电路中必须要考虑到单片机的发送部分,由于单片机通过串口发送

34、出来的是TTL逻辑电平(0V和5V),而计算机RS-232总线上输入、输出数据和控制信号为+12V左右的电压,单片机要和PC的上位机通信就必须是电平一致,所以发送部分关键的部分是电平转换和串口发送,电平转换可以用模拟器件进行转换,但是为了方便起见,本次设计采用的是集成芯片,一个芯片加上它的外围电路即可完成电平的转换的工作。结构简单、方便容易,精确度高。本次所采用的是HIN232CP,我们要对其外围电路进行设计,下面我们将详细的叙述。数据的传输:当电路工作于发送数据状态时,PC机的RTS端输出高电平,经IC1电平转换打开IC3(74LS08)的与门B1,使PC机TXD端输出的数据经红外发射电路发

35、射出去;RTS信号IC1反相后作为CTS信号送入计算机,同时还关闭与门B2;使计算机不接收其它数据信号。该必发器的数据传输速率最好设在9600b/s为宜,以确保数据传输的可靠性。器件的介绍:1、RS-232CRS-232C是美国电气工业协会推广使用的一种串行通信总路线标准,是DCE(数据通信设备,如微机)和DTE(数据终端设备,如CRT)间传输串行数据的接口总线。RS-232C最大传输距离为15m,最高传输速率约20kbps,信号的逻辑0电平为+3V+15V。逻辑1电平为-3V-15V。电气特性:EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定;在TxD和RxD上:逻辑1(

RTSCTSRI接收信号载波检测数据接收线数据发送线DTE装置数据就绪公共地DCE装置就绪请求发送清除发送振铃指示图410电平转换电路原理图3、电平转换器HIN232CPE由于RS-232C总线上传输的信号逻辑电平与TTL逻辑电平差异很大,所以就存在这两种电平的转换问题,下面就介绍一下电平转换器HIN232CPE。HIN232CPE能将RS-232C电平转换成TTL电平,也能将TTL电平转换成RS-232C电平,只需单+5V供电,由内部升高电路产生10V+12V。内部有两个发送器(TTL电平转换为RS-232C电平)和两个接收器(RS-232电平转换为TTL电平)

38、。HIN232CPE芯片引脚排列和外部元件连接线路如图411所示。图 411HIN232CPE 电平转换器及外接元件图5 软件设计本章重点阐述测量转速的汇编语言。以及软件设计的过程。软件需要解决的是单片机中断服务程序的设计、计算程序的设计、显示部分的程序设计以及在我们这里非重点介绍的通信程序设计。5.1 单片机转速程序设计思路及过程单片机测量转速可以分为若干模块,然后在主程序中调用各个模块, 流程图如下图所示。开始初 始 化计算程序BCD码转换非压缩BCD转换显 示 程 序返 回图 51主程序流程图5.1.1 单片机程序设计思路计算转速公式: n=60/NTc (r/min)其中,N是内部定时

39、器的计数值,为三字节,分别由TH0,TL0,VTT构成;Tc为时基,由于采用11.0592M的晶振,所以Tc不在是1um,而是12M/11.0592M约为1.08um,带入上面公式,即可得到转速的精确计算公式: N=60*N=/N再将化为二进制存入单片机的内存单元。下面我们将介绍除数是如何获得的:单片机的转速测量完成,定时器T0作为内部定时器,外部中断来的时候读取TH0,TL0,并同时清零TH0、TL0,使定时器再次循环计内部脉冲。此外,对于低速情况下,我们还要设定一个软件计数器VTT,当外部中断还没来而内部定时器已经溢出,产生定时器0中断

40、时,增加VTT,作为三字节中的高字节。三字节组成除数,上面的常数为四字节,所以计算程序实际上就是调用一个四字节除三字节商为两字节(最高转速36000r/min足够)的程序。为数码管能够显示出来,需将二进制转换为十进制,在将十进制转换为非压缩BCD码后,才能调用查表程序,最后送显示。5.1.2 单片机转速计算程序由于本次设计的系统要实现的功能是将霍尔传感器的信号送到单片机的外部中断口,再对周期方波进行内部计数,调用计算程序把转速测出来。可以说是核心部分,流程图如图所示:开 始被除数初始化读取定时值调用除法程序返 回图52 计算程序流程图计算程序中又再次调用了除法程序,这里的除法为四字节除三字节商

41、为两字节,除法的程序的编程思想可以和手工计算的除法相似,比较减法的思想,流程图如图5-3所示具体程序见附录。5.1.3 二-十进制转换程序计算程序计算出来的数据为二进制,存到50H、51H单元中以便发送程序中调用传送数据到计算机,计算机可识别二进制,然而,我们需要在LED上显示,查表程序需要拆分的BCD码,所以二进制必须先转换成BCD后才能拆分。这里介绍将(R2R3)中的16位二进制数转换为压缩BCD码十进制整数送R4、R5、R6。除 法移位次数 计数器上商1,减去除数返回被除数左移1位被除数 除数上商0 Y N计数器减1计数器=0?图53除法程序流程图开始C(R2R3)左移1位(移出位bi在

54双字节整数二翻十程序流程图单片机显示部分可以用来显示计算出来的数据的。在程序设计中,在AT89C51RAM存贮器中的四个显示缓冲器单元30H34H,分别存放着由计算出来的转速的BCD码进行拆分后的非压缩BCD码数据,AT89C51的P1口扫描输出总是只有一位为低电平、其它位为高电平,AT89C51的P0口相应位的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P1口输出为低高的位,P0口输出对应的段数据,5位LED显示器就

43、显示出由缓冲器中显示数据所确定的字符。显示部分程序分为两部分:十进制BCD转换成非压缩BCD码;查表程序显示数据。双字节整数拆分程序流程图如图5-5开 始高字节R4送30HR5与 0F0H相与交换后送31HR5与0FH相与后送32HR6与 0F0H相与交换后送33HR6与0FH相与后送34H返 回图 55双字节整数拆分程序流程图显示程序流程图如图5-6所示:5.2 程序设计根据以上设计思路和各个模块的流程图即可编写出本次毕业设计的程序,注意其中各个模块间的参数传递以及堆栈指针等问题,程序设计的任务即可完成,写出初始的程序,再进行上机调试,这些我们将具体在下章中加以详细叙述。开始30H-R0,表

44、首地址-DPTR,(R1)=0FEH(R0)赋值给A(R1)=0DFH?A+DPTR赋值给P0(R1)=P1,(R1)=A,RL AINC R0 ,A=(R1)N 结束图 56显示程序流程图6 系统调试电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。6.1 硬件调试硬件调试主要是针对我的转速测量系统的单片机硬件电路分别进行调试。这一部分硬件调试主要分成两大块:上电前的调试和上电后的调试。上电前的调试在上电前,我们必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,

45、用来完成检测电路中是否存在断路或者短路情况等。特别是数码管的连接部分,有PROTEL制作的PCB确保要和原理图上的图一致,有些在电路板上没法连接的线路,要用短接线把接好,对照着原理图部分,一部分一部分地用万用表测量,注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。上电后的调试在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次课程设计中,上电调试主要只转速测量系统的单片机控制部分、数码管点亮部分、和上位机通信是的电平转换和串口通信部分的硬件调试。1、单片机控制部分硬件调试:这一部分

46、调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其他的一些管脚的接法。看单片机通电后能否可以正常工作等这一系列问题。2、数码管LED电路调试:由于数码管采用的是动态扫描的方式点亮的。数码管的公共端(COM)接在7407驱动再接到单片机的P2口作为位选信号,字型是接在P0口。电路上电检查7407是否接上电源和地让其正常工作。在这一前提下,查看数码管能否点亮。只需要接仿真机上编写一个小程序让5位LED全亮,或者让它们其中的某位点亮,也可以显示不同的数字,根据要求给P0口,P2口分别赋值。即可检查数码管的硬件电路是否正确,即可判断显示驱动电路整个完整,首先排除这里的故障。3

47、、发送部分硬件电路调试:这一部分电路硬件调试主要完成任务是使得通过HIN232CPE电平转换器转换前后的电平关系。可以用示波器和万用表检查电平转换前后的关系,这里不在赘述。6.2 软件调试单片机程序调试思路:单片机部分调试工作的完成主要应用LCA51软件来完成,这一部分工作首先将转速测量系统中的各个模块计算程序中的除法程序、双字节的二-十进制数制转换程序,压缩BCD码十进制数转换为非压缩BCD码的程序以及显示部分程序调试好,不断调试,不断修改直到正确为止。LCA51软件是一种非常实用的多窗口编辑、调试软件。 LCA51软件全面支持汇编语言,C51语言,PL/M51语言的编译/连接、调试。软件支

48、持单文件方式和工程化管理两种模式。用户可自定义各种语言的关键词.软件完全支持源语句级在线调试。高级语言还支持源文件调试和汇编语言指令行对照调试。用户可同时打开多个窗体编辑、调试、变量观察.用户可在线对原文件直接编辑、编译、连接、加载和调试,软件支持编译错误源文件定位。调试时用户可动态观察、修改设定变量(包括CPU片内寄存器、特殊寄存器及外部寄存器、内存)的值。调试主要方法和技巧: 通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。1.跟踪调试 调试应用程序所提供的重要性能也许就是跟踪应用程序。跟踪应用程序使用户能够在运行应用程序时,看到PC指针在应用源代码程序中的确切位置,

49、LCA51提供以下方法对程序的执行进行跟踪。 跟踪型单步执行一条源语句程序。但是,如果调用一函数,则进入函数中,再执行函数的第一条源语句行前停止。 通过型单步仅执行下一条源语句程序,然后又停止。如果是调用一函数,运行完整个函数并停止在函数返回处。2.断点调试 如果已知程序中某块代码实际运行正常的情况下,仍用跟踪调试方法,将大大浪费时间,而且很枯燥,因此调试中第二个重要工具是在源代码中预定处设置断点,大多数调试程序通过使用断点中止程序执行。注意:如果用户调试高级语言,因为系统要占用2个断点,所以可设置的断点数为最大断点个数减2。 LCA51调试软件还提供一次性断点:执行到光标所在行。如果用户按热

50、键F4,调试程序继续执行程序代码,直到它到达光标行处或调试程序遇到另一个断点。3.查看变量 显然,通过一系列指令查看应用程序,了解导致某一错误的执行也是一种非常有效的方法。LCA51软件提供了以下几种方法对变量进行查看。 通过添加观察项菜单可以将用户希望观察的变量添加到观察窗口中,长期进行观察。用户程序在单步或断点停下时,将更新变量的取值。 用户可以直接移动鼠标到相应的变量名上,点击鼠标左键,将出现一个提示窗口,显示这个变量的当前值。 用户还可以打开程序空间窗口、内部数据窗口、外部数据窗口进行数据块观察。4.更改数值 如果用户在调试过程中了解到变量的内容(超值、未定义等)会对程序性能产生影响或

51、引起异常时,立即更改变量的内容是很有效的方法,以确保该值在正确范围内不会产生错误。LCA51软件提供一系列更改变量数值的方法,以便用户能检查程序对整个变量值范围的反应,而无需为设置每个值而重新加载调试。在更改对话框中用户输入要更改的取值,点击确定按钮。用户可以在输入框中输入十六进制或十进制数据。程序调试过程: 整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。首先要对计算程序进行调试,其中关键就是那个四字节除三字节的程序显得尤为重要,在整个程序中,四字节的被除数

52、是确定的常数,而除数是测量记数的值,当各个模块调试时,我们可以先对除数先赋不同的值,利用查看内部数据的数据窗口观察出计算出来的结果和用计算器算得的结果是否一致,可以举例多次数据,确保程序正确,才能得到想得到的数据。其次、二进制到十进制的转换,我们依然可以利用上述列举的方法,多次给出数据,然后运行程序,可以设置观察变量,观察出程序转换的结果。最后、拆分压缩BCD码十进制以及最后的显示程序,可以利用上述提到的各种方法,观察30-34H内部的数据,缓冲数据的观察检查完毕后,调用显示程序,观察数码管上显示的数据是否是内存缓冲中需要显示的数据。6.3 综合调试在硬件和软件单独调试成功后进行软硬件综合调试

53、,它可以分成以下几个步骤:1.使霍尔传感器有方波信号输出;2.使单片机获得中断信号,计算出转速值并存储;3.通过LED数码管把测量的数据显示出来。4.通过通信使得PC机与单片机之间的通信成功。6.4 故障分析与解决方案故障出现情况:1、霍尔传感器不能产生有效的TTL电平,产生波形不稳2、单片机的中断服务程序不能执行,不管是定时中断还是外部中断;3、中断执行低速情况也就是软件记数功能不对;4、测得的转速不准确,而且在波形频率变化下显示转速却不变5、单片机显示部分无法工作,显示不稳定;6、信号发生器模拟转速测量正确,接电机不稳定7、通信时单片机接收显示数据不正常,PC机接收乱码;解决方案(针对上述

54、故障一一对应的解决方案):(1)硬件电路中霍尔传感器应工作在5V电压,中间引脚接地,数据线接单片机的外部中断0。在电机的转轴上还要贴上一粒磁钢,利用霍尔效应产生方波。利用万用表检查时发现接5V和地的PCB上的线都坏了,重新用线接在电路板上。当波形出来后,显示的波形不稳,而且不够理想,后来在信号线与地之间接了472的瓷片电容滤波。波形得到了大大改善;(2)首先检查程序中的开头,中断入口地址,发现中断定时0的地址写成中断定时1的入口地址了。外部中断没有执行跟没有中断信号加入有关系。在前面还没有解决的时候,我们暂时用信号发生器来代替外部中断9的输入,由于中断执行与否我们没法看到,可以用设置中断点的方

55、法或者利用示波器,在中断服务程序中重新编写一些程序观察单片机的某一输出口的波形变换或者中断程序中让数码管点亮等直观可以看到的方法来检查中断的执行情况;(3)中断服务程序中程序设计有问题,要先读去反映转速的TH0,TL0,再去清0,软件记数的高字节VTT应该在定时中断0中的服务程序中自增的同时清TH0,TL0,在外部中断程序中要读取三字节的记数值后同时清三个记数器,再从中断返回;(4)在确定转速计算程序的正确性的 条件下出现了转速不准确,就是在调用转换程序时出现了问题,观察程序时发现调用子程序是传送的参数不对,在用寄存器R的时候出现了重复现象,导致转换过程中出现了混乱。在波形频率改变而转速不改变

56、由于在调用显示程序时候在调用之后在显示这里死循环,不能适时进行计算了。(5)由于显示部分的程序是动态显示,是一位一位的显示,在位选信号这里出现了问题,在左移的时候出现问题,以及显示完一个字型后调用的延时时间不合理导致显示不稳定,出现闪烁现象,改变时间到1毫秒左右就差不多对了。(6)后来在接信号发生器时候要是接正弦波时候一样发生不稳定跳转的现象,由此可以推测,在传感器输入的信号不是理想的方波,而且电平值不够大,所以在霍尔传感器信号输出端接滤波电容以及一个10K的上拉电阻就可以解决问题了。(7)由于单片机与PC机之间的设置以及电平转换不一致具体参见通信部分的毕业设计。6.5 结论与经验结论:通过各

57、方面努力,本次毕业设计任务完成,系统各部分功能均已实现,单片机能够测量出电机的转速并能显示在LED数码管上,并能向上位机发送数据;测量范围也是比较宽的60r/min-36000r/min,精度也在0.1%,都达到了比较理想的状态。经验:1、由于本系统采用5V直流电源供电,霍尔传感器要选用工作电压的范围包含5V电压的可以省去再用一个电源的麻烦,单片机等都是工作在TTL电平的,霍尔传感器输出的波形应为TTL电平,以便单片机能够识别。2、数码管要采用共阴数码管,因为数码管的灌电流可以大些达到几十毫安,但是拉电流比较小,采用共阳数码管可能因为电流过小而数码管不能点亮数码管,还有就是接在上拉电阻再接5V

58、上,最好采用1K的排阻。3、在制作印制电路板的过程中,由于经验不足,没有考虑在高频电路中平行线之间的干扰,导致当电路上电工作时就发生串扰的现象,选择的焊盘过小,布线是线的宽度不够,稍微大点的电流,就可以把电路烧坏了,还有不稳定,发生干扰等现象,使得连接PC机的电路工作不稳定,在以后的设计过程中需要注意。参考文献1.何立民.单片机应用技术选编.北京:北京航空航天大学出版社,1997,102.张有德.单片微机原理、应用与实验.上海:复旦大学出版社,1997,83.李朝青.单片机&DSP外围数字IC技术手册.北京:北京航空航天大学出版社,1998,44.梁廷贵、王裕琛 .现代集成电路实用手册.北京:

59、科学技术文献出版社,1999,65.于海生.微型计算机控制技术选编.北京:清华大学出版社,1999.36.徐爱钧.智能化测量控制仪表原理与设计. 北京:北京航空航天大学出版社,.周兴华.手把手教你学单片机.北京:北京航空航天大学出版社,1996,78.神龙工作室.Protel 2004 实用培训教程.北京:人民邮电出版社,1995,19.扈啸,周旭升编著.单片机数据通信技术从入门到精通.西安:西安电子科技大学出版社,2002,9致 谢本文介绍的应用于单片机系统在电机转速这一领域的应用,具有硬件电路简单、成本低廉、编程方便、通信可靠性高的特点,实现了单片机对电机转速的测量以及和P

60、C通信的数据传送。可以对电机转速的平稳性做个分析。关于本次毕业设计,感受颇多。总的来说是可以的,富有收获的,尽管其中充满了艰辛与困难。但看到自己的成果时,所有的艰辛与疲倦都抛到了九霄云外。一种成就感在心头油然而生。另外一方面,在自己的亲身实践中,也发现了自己的一些不足的地方,有待进一步提高与改善。此次毕业设计任务是高精度大范围的电机转速测量系统,在实际调试中遇到的种种问题使我在设计与调试中学习到了许多知识。整个毕业设计过程是对自己大学四年所学知识归纳总结和应用,也就是把理论知识用到实践之中去。让理论和实践相结合,以此产生实际的成果。而这正是我们学习理论知识的目的之所在。除此之外,我们要在拥有扎实的专业知识的前提条件下,在整个设计与调试过程中要

周文昊;刘斐;曾志;;[J];世界电子元器件;2006年11期
陈家杰;;[J];电子测量与仪器学报;1989年03期

我要回帖

更多关于 单片机输出脉冲信号 的文章

 

随机推荐