基于单片机的霍尔测速报警系统方案_第1页
基于单片机的霍尔测速报警系统方案_第2页
基于单片机的霍尔测速报警系统方案_第3页
基于单片机的霍尔测速报警系统方案_第4页
基于单片机的霍尔测速报警系统方案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 . 26/32传感器与测控电路课程设计报告学生: 禹 振 榜 指导教师:书仪 余以道 专业班级:12级测控二班 所在学院:机电工程学院 学 号 1203030214 课 题基于单片机的霍尔测速报警系统基于单片机的霍尔测速报警系统的设计摘要在生产中,电机应用十分广泛,比方汽车速度显示,设备工作时的档位,都需要我们了解电机或者机器的转速。转速作为工程中应用的一个非常广泛的参数,它的测量方法有很多,特别是单片机对脉冲数字信号的强大处理能力,使得全数字测量系统越来越普与,越来越方便。本设计属于码盘转速测量系统,实现转速的实时测量和显示。本系统以STC90C51单片机为核心,旋转编码器通过用传感器测量

2、非电量,转变成模拟电量,再通过一系列测控电路。获得数字信号,实现实时轴转速测量,同时用四位段码式LED数码管显示模块显示电机转速,并且参加了报警模块。详细阐述了转速测量系统的工作过程,以与硬件电路的设计、显示效果。本文吸收了硬件软件化的思想,实现了题目要求的功能。关键词:转速测量,,单片机, LED显示模块,霍尔传感器。 目 录第一局部 绪 论1.1 设计的任务与要求 1第二局部 功能分析与设计要求2.1 测控系统功能的概述 12.2系统模块确实定 22.3各模块的选择 2 2 3 3 32.4 小结 3第三局部 测控系统的总体设计3.1 测控系统的总体设计 4 4 53.2 测控系统子模块简

3、介 5 5 7 810第四局部 软件设计4.1 程序设计步骤 124.2 程序流程图 13 14 15第五局部 软件调试与仿真5.1 KEIL软件进展程序调试 155.2 PROTEUS软件仿真 165.3 硬件软件联合调试 17 18 19第六局部 结论参考文献 20附录 第一局部 绪 论1.1 设计的任务与要求本课题的任务是:设计一套测量转速的仪器,转速在数码管上显示,且具有超速报警功能,精度到达转速个位,上下速实现报警。要求会选用传感器并搭建测控电路,实现课题所要求的功能 本设计需要对各种测量转速的根本方法予以分析,针对不同的应用环境,利用单片机设计一种全数字化测速系统,从提高测量精度的

4、角度出发,分析讨论其产生误差的可能原因,为今后的实际使用提供借鉴。并从实际硬件电路出发,分析电路工作原理和软件流程。熟悉传感器的选择,与外围电路的设计,了解测控系统设计的根本流程 第二局部 功能分析与设计要求2.1 测控系统功能的概述 在电机或转轴上放置一个或多个磁钢,将霍尔传感器有规律的放置在电机或者转轴附近,当有磁场通过时,在传感器上就可以产生电信号,通过测控电路对电信号的处理得到有用信号送单片机部,根据信号测出电机转速,并在数码管上显示,且有报警功能。2.2系统模块确实定通过对功能的分析可知,系统模块分为以下几类:传感器模块,以将非电信号信号转化为电信号。报警模块,当速度过低或过高时,启

5、动此模块。显示模块,通过单片机处理得出转速,送显示模块显示。单片机模块,用以对脉冲计数,对外部信号进展处理。电源模块,这里使用现有电源,初步确定为5v直流电源,故不再设计。 此外由于单片机有计数功能,计数模块在单片机模块中讨论2.3各模块的选择霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,霍尔传感器具有许多优点,体积小,重量轻,寿命长,安装方便,功耗小,频率高可达1MHZ,耐震动,不怕灰尘、油污、水汽与盐雾等的污染或腐蚀。广泛用于各类工程实际应用中,出于本钱的考虑,在这里我们选用直插式霍尔片传感器A3144,与普通磁钢配套使用,体积小,灵敏度高,价格在12元左右,根本

6、可以满足本课题的要求方案一:采用蜂鸣器与LED发光二极管为主要报警系统,该系统本钱低,电路容易实现,编程容易。方案二:采用音乐语言报警,更人性化,但设计难度大,本钱高。基于现有设备器件,选用方案一。这里课题已要求使用数码管显示,由于测量转速适中,我们采用四位位选数码管完全能满足要求。基于现有器件选用共阴极接法,但由于数码管功耗较高,故需要参加驱动芯片,在这里我们使用51单片机开发板上现有的锁存芯片74573此系统十分简单,数据处理不大,采用8位单片机完全能满足需要,基于国8位单片机领导厂商宏晶公司生产的系列单片机的低价格,高性能的优势,我选用了系类9051八位单片机,编程和使用与一般80c51

7、单片机一样。2.4 小结通过本小计,对本设计的根本模块进展了选择,确定了显示,报警,计数,传感器,单片机选择的可行性。并在实现仪器功能的根底上充分考虑了本钱问题。 第三局部 测控系统的总体设计3.1 测控系统的总体设计模拟量转换为数字量电压比拟器霍尔传感器单片机数码管显示电机驱动电路计数脉冲输入非电量转换为模拟电量声光报警系统原理图如下:系统硬件电路图如下:3.2 测控系统子模块简介由霍尔效应知,霍尔电势的大小取决于:Rh为霍尔常数,它与半导体材质有关;I为霍尔元件的偏置电流;B为磁场强度;d为半导体材料的厚度。对于一个给定的霍尔器件,当偏置电流I固定时,UH将完全取决于被测的磁场强度B。一个

8、霍尔元件一般有四个引出端子,其中两根是霍尔元件的偏置电流I的输入端,另两根是霍尔电压的输出端。如果两输出端构成外回路,就会产生霍尔电流。在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B的匀强磁场,那么在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压。 霍尔效应原理图 以上为alldatasheet关于3144的数据外部接口本系统采用开关型霍尔传感器A3144以与磁钢,由它们来检测电机的转速。工作方式为:将磁钢安装在电机的转轴上,而霍尔传感器那么放在转轴的旁边,霍尔传感器连接在电路中,当磁钢随转轴经过霍尔传感器时,霍尔传感器的工作原理知,此时将输出一个低电平信号;而当

9、磁钢离开霍尔传感器后,又将输出一个高电平。这样通过上下电平的转换,将其送入单片机后就可以测量它的转速。由于由霍尔传感器输出的电平未经特殊处理,且存在干扰,故不是完整的脉冲电平,在后续电路中进展改良,这里我们用到电压比拟电路,选用常用的LM393双电压比拟集成芯片,下列图是ALLDATASHEET数据,电路中只用到4、8、1、2、3脚。电路图也在此给出:报警模块可选用无源蜂鸣器或者有源蜂鸣器,有源蜂鸣器由于部有震荡元件,故通电后就可以报警,由于硬件设备的限制,我们选用无源蜂鸣器,但编程上需要花点心思。显示电路采用LED数码管动态显示,LEDLight-Emitting Diode是一种外加电压从

10、而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。七段发光数码管结构共阴极数码管的发光二极管阴极必须接低电平,当某发光二极管的阳极为高电平时(一般为+5V)时,此二极管点亮;共阳极数码管的发光二极管是阳极接到高电平,对于需要点亮的发光二极管使其阴极接低电平(一般为地)即可。根据LED显示器可知,如果希望显示“8字,那么除了“dp管不要点亮以外,其余管全部点亮。同理如果要显示“1,只需bc两个发光二极管点亮,其余均布点亮。通常将控制发光二极管的8位数据称为段选码,共阴极和共阳极的段选码互为补码。LED显示器的段选

11、码如下表所示: LED数码管段选码显示局部电路图如下,这里出于本钱简便考虑,用到的是现有的单片机开发板,实际试验中只需用到四位数码管,且未参加单个发光二极管。 值得注意的是由于数码管功耗比拟高,故在前面参加了74HC573锁存器芯片用做驱动数码管,但这里用到的并不是锁存功能。90单片机是国八位高性能单片机,选用的单片机带16K字节闪烁可编程可擦除只读存贮器,STC的90C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路。P1口:Pl是一个带部上拉电阻的

12、8位双向IO口,Pl的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对端口写“l,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流.P2口:P2是一个带有部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对端口写“1,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流P3口:P3口是一组带有部上拉电阻的8位双向I0口。P3口输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对P3口写入“l时,它们被部上

13、拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流IIL.P3口除了作为一般的I0口线外,更重要的用途是它的第二功能,上面表已给出。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0位地址8EH可翻开或关闭该功能。DISRT0位缺省为RESET输出高电平翻开状态。PSEN:程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令或数据时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效PSEN信号。X

14、TALl:振荡器反相放大器与部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出 第四局部 软件设计4.1 程序设计步骤第一步分析问题,明确任务要求,还要将解决的问题抽象成数学化。第二部确定算法,根据实际问题和指令系统的特点确定完成这一任务必须经历的步骤。第三部选择所选择的算法,确定存单元的分配:确定解决问题的步骤和顺序,画出程序的流程图。第四部根据流程图,编写源程序。第五部上机对源程序进展编译、调试。4.2 程序流程图测量过程是测量转速的传感器和电机同轴连接。电机每转过一圈产生一个脉冲。经电压比拟器整形后成为单片机计数器的输入脉冲,控制计数的时间就可以得到相应的转速,然后确定是否在所需量

15、程以,在那么送数码管显示,不在那么启动报警器。电机计算转速的公式为:n=60*m/(N1*T*N) (r/min其中:n为电机转速,N为栅格数,即磁钢的个数。N1为中断次数,m为在规定时间测得的脉冲数,T为T0的溢出时间。 外部脉冲通过单片机定时/计数器T1进展计数,部采用定时,定时为10MS,即溢出100次那么记满1秒,在本例磁钢数为1 ,N1*T设定为一秒,故转速即为n=60m (r/min) 开 始初始化定时计数器定时刷新数码管显示否计数器是否循环100次是计算转速是否超速是 报 警否 返 回数码管显示开T0中段是否中断 100次否中断返回记电机转速转存至缓存区是T0中断入口置初始值开T

16、0中段是否中断 100次否是中断返回记电机转速转存至缓存区是第五局部 软件调试与仿真5.1 KEIL软件进展程序调试1首先创立项目。保存创立c文件,保存,参加到项目中,这里为了便于编程,采用c语言。无错误,生成hex文件。5.2 PROTEUS软件仿真首先根据原理图,画出仿真图,这里单片机默认为12MHZ .由于这里没有霍尔元件,以此用555电路与脉冲产生器组合使用,产生脉冲 。参加hex文件,启动仿真。不同时刻,显示效果如下列图:设置脉冲频率为20HZ。那么转换转速为1200r/min由于我们设定高于6000低于400转那么报警,上图可以看出,当转速为60时,P3.7口位低电平,驱动有源蜂鸣

17、器报警。5.3 硬件软件联合调试需要物品 电阻 有源蜂鸣器 单片机开发板 发光二极管 洞洞板1.翻开单片机电源,接上通讯线2. 确认无误烧录程序 第六局部 结 论通过本次课程设计,深刻体会到,传感器在工业控制,检测方面发挥着巨大的作用,传感器可以将各种非电量装换为电量,但这并不能用来检测,控制,还需要通过一系列的测控电路,将信号进一步放大,滤波,整形等操作,以得到有用的信号,再对对相应的信号做出处理。此外在电路搭建过程中,发现,好的软件设计能使电路大大简化,所以在以后进展测控电路设计,一定要有软硬件兼顾的思想。参考文献 1 清明. C语言程序设计. 中国矿业大学, 2011 5 唐文彦.传感器

18、,机械工业,2015附录 程序代码#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long#define LED_DAT P1sbit LED_SEG0 = P23;sbit LED_SEG1 = P22;sbit LED_SEG2 = P21;sbit LED_SEG3 = P20;sbit Beep = P37;#define K 1 /校准系数unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0

19、 x7d,0 x07,0 x7f,0 x6f;uchar data len4;/ 显示缓冲区 uint Tcounter = 0; /时间计数器bit Flag_Fresh = 0; / 刷新标志 bit Flag_clac = 0; /计算转速标志 void beep();void DisplayFresh(); /显示函数void count(); /计算转速函数void init_timer0();/初始化定时器T0void init_timer1();/初始化定时器T1void Delay(uint ms);/延时函数void it_timer0() interrupt 1 TF0 =

20、 0; /d定时器 T0用于数码管的动态刷新 TH0 = 0 xD8; TL0 = 0 xF0; Flag_Fresh = 1; Tcounter+; if(Tcounter100)/12M晶振,定时器10ms 中断一次 我们1秒计算一次转速 / 1000ms/10ms = 100 Flag_clac = 1;/周期到,该重新计算转速了 void init_timer1() /初始化定时器T1TMOD &= 0 x0F; TMOD |= 0 x50; TH1 = 0 x00; /设置初值。TL1 = 0 x00; ET1=1; EA=1; TR1=1; void main(void)len0

21、= 8; /开机时,初始化为8888len1 = 8; len2 = 8;len3 = 8;init_timer0();init_timer1();while(1) if(Flag_Fresh) Flag_Fresh = 0; DisplayFresh(); / 定时刷新数码管显示 if(Flag_clac) Flag_clac = 0; count(); /计算转速,并把结果放入数码管缓冲区 Tcounter = 0;/周期定时 清零 TH1=TL1 = 0 x00;/脉冲计数清零 /可以加报警程序 void DisplayFresh() /显示函数P2 |= 0 x0F;LED_SEG0 = 0; /数码管位选千位LED_DAT = tablelen0; /显示千

温馨提示

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

最新文档

评论

0/150

提交评论