基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx

上传人:b****3 文档编号:27444349 上传时间:2023-07-01 格式:DOCX 页数:26 大小:795.42KB
下载 相关 举报
基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx_第1页
第1页 / 共26页
基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx_第2页
第2页 / 共26页
基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx_第3页
第3页 / 共26页
基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx_第4页
第4页 / 共26页
基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx

《基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx(26页珍藏版)》请在冰豆网上搜索。

基于单片机的霍尔测速报警系统课程设计正文 大学论文.docx

基于单片机的霍尔测速报警系统课程设计正文大学论文

 

传感器与测控电路课程设计报告

学生姓名:

禹振榜

指导老师:

杨书仪余以道

专业班级:

12级测控二班

所在学院:

机电工程学院

学号1203030214

课题基于单片机的霍尔测速报警系统

基于单片机的霍尔测速报警系统的设计

摘要

在生产中,电机应用十分广泛,比如汽车速度显示,设备工作时的档位,都需要我们了解电机或者机器的转速。

转速作为工程中应用的一个非常广泛的参数,它的测量方法有很多,特别是单片机对脉冲数字信号的强大处理能力,使得全数字测量系统越来越普及,越来越方便。

本设计属于码盘转速测量系统,实现转速的实时测量和显示。

本系统以STC90C51单片机为核心,旋转编码器通过用传感器测量非电量,转变成模拟电量,再通过一系列测控电路。

获得数字信号,实现实时轴转速测量,同时用四位段码式LED数码管显示模块显示电机转速,并且加入了报警模块。

详细阐述了转速测量系统的工作过程,以及硬件电路的设计、显示效果。

本文吸收了硬件软件化的思想,实现了题目要求的功能。

关键词:

转速测量,,单片机,LED显示模块,霍尔传感器。

目录

第一部分绪论

1.1设计的任务与要求————————————————1

第二部分功能分析与设计要求

2.1测控系统功能的概述———————————————1

2.2系统模块的确定—————————————————2

2.3各模块的选择——————————————————2

2.1.1传感器模块的论证与选择——————————————2

2.1.2报警模块的论证与选择———————————————3

2.1.3显示模块的论证与选择———————————————3

2.1.2单片机模块的论证与选择——————————————3

2.4小结——————————————————————3

第三部分测控系统的总体设计

3.1测控系统的总体设计———————————————4

3.1.1硬件原理图———————————————————4

3.1.2硬件电路设计总图————————————————5

3.2测控系统子模块简介———————————————5

3.2.1传感器原理及分电路析——————————————5

3.2.2报警模块————————————————————7

3.2.3LED数码管———————————————————8

3.2.4STC90C51单片机——————————————————10

第四部分软件设计

4.1程序设计步骤———————————————————12

4.2程序流程图————————————————————13

4.2.1主程序设计—————————————————————14

4.2.2中断服务程序设计——————————————————15

第五部分软件调试与仿真

5.1KEIL软件进行程序调试———————————————15

5.2PROTEUS软件仿真————————————————16

5.3硬件软件联合调试—————————————————17

5.3.1硬件电路的焊接与搭建————————————————18

5.3.2搭接检查步骤————————————————————19

第六部分结论

参考文献——————————————————————20

附录

 

第一部分绪论

1.1设计的任务与要求

本课题的任务是:

设计一套测量转速的仪器,转速在数码管上显示,且具有超速报警功能,精度到达转速个位,高低速实现报警。

要求会选用传感器并搭建测控电路,实现课题所要求的功能

本设计需要对各种测量转速的基本方法予以分析,针对不同的应用环境,利用单片机设计一种全数字化测速系统,从提高测量精度的角度出发,分析讨论其产生误差的可能原因,为今后的实际使用提供借鉴。

并从实际硬件电路出发,分析电路工作原理和软件流程。

熟悉传感器的选择,及外围电路的设计,了解测控系统设计的基本流程

第二部分功能分析与设计要求

2.1测控系统功能的概述

在电机或转轴上放置一个或多个磁钢,将霍尔传感器有规律的放置在电机或者转轴附近,当有磁场通过时,在传感器上就可以产生电信号,通过测控电路对电信号的处理得到有用信号送单片机内部,根据信号测出电机转速,并在数码管上显示,且有报警功能。

 

2.2系统模块的确定

通过对功能的分析可知,系统模块分为以下几类:

1.传感器模块,以将非电信号信号转化为电信号。

2.报警模块,当速度过低或过高时,启动此模块。

3.显示模块,通过单片机处理得出转速,送显示模块显示。

4.单片机模块,用以对脉冲计数,对外部信号进行处理。

5.电源模块,这里使用现有电源,初步确定为5v直流电源,故不再设计。

此外由于单片机有计数功能,计数模块在单片机模块中讨论

2.3各模块的选择

2.1.1传感器模块的论证与选择

霍尔传感器是根据霍尔效应制作的一种磁场传感器。

霍尔效应是磁电效应的一种,霍尔传感器具有许多优点,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHZ),耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。

广泛用于各类工程实际应用中,出于成本的考虑,在这里我们选用直插式霍尔片传感器A3144,与普通磁钢配套使用,体积小,灵敏度高,价格在1—2元左右,基本可以满足本课题的要求

2.1.2报警模块的论证与选择

方案一:

采用蜂鸣器与LED发光二极管为主要报警系统,该系统成本低,电路容易实现,编程容易。

方案二:

采用音乐语言报警,更人性化,但设计难度大,成本高。

基于现有设备器件,选用方案一。

2.1.3显示模块的论证与选择

这里课题已要求使用数码管显示,由于测量转速适中,我们采用四位位选数码管完全能满足要求。

基于现有器件选用共阴极接法,但由于数码管功耗较高,故需要加入驱动芯片,在这里我们使用51单片机开发板上现有的锁存芯片74HC573

2.1.2单片机模块的论证与选择

此系统十分简单,数据处理不大,采用8位单片机完全能满足需要,基于国内8位单片机领导厂商宏晶公司生产的STC系列单片机的低价格,高性能的优势,我选用了STC系类90C51八位单片机,编程和使用与一般80c51单片机一样。

2.4小结

通过本小计,对本设计的基本模块进行了选择,确定了显示,报警,计数,传感器,单片机选择的可行性。

并在实现仪器功能的基础上充分考虑了成本问题。

第三部分测控系统的总体设计

3.1测控系统的总体设计

3.1.1硬件原理图

系统原理图如下:

 

 

3.1.2硬件电路设计总图

系统硬件电路图如下:

3.2测控系统子模块简介

3.2.1传感器原理及转换电路分析

由霍尔效应知,霍尔电势的大小取决于:

Rh为霍尔常数,它与半导体材质有关;I为霍尔元件的偏置电流;B为磁场强度;d为半导体材料的厚度。

对于一个给定的霍尔器件,当偏置电流 I 固定时,UH将完全取决于被测的磁场强度B。

一个霍尔元件一般有四个引出端子,其中两根是霍尔元件的偏置电流 I 的输入端,另两根是霍尔电压的输出端。

如果两输出端构成外回路,就会产生霍尔电流。

在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B的匀强磁场,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压。

霍尔效应原理图

以上为alldatasheet网站关于3144的数据

外部接口

本系统采用开关型霍尔传感器A3144以及磁钢,由它们来检测电机的转速。

工作方式为:

将磁钢安装在电机的转轴上,而霍尔传感器则放在转轴的旁边,霍尔传感器连接在电路中,当磁钢随转轴经过霍尔传感器时,霍尔传感器的工作原理知,此时将输出一个低电平信号;而当磁钢离开霍尔传感器后,又将输出一个高电平。

这样通过高低电平的转换,将其送入单片机后就可以测量它的转速。

由于由霍尔传感器输出的电平未经特殊处理,且存在干扰,故不是完整的脉冲电平,在后续电路中进行改进,这里我们用到电压比较电路,选用常用的LM393双电压比较集成芯片,下图是ALLDATASHEET数据,电路中只用到4、8、1、2、3脚。

电路图也在此给出:

3.2.2报警模块

报警模块可选用无源蜂鸣器或者有源蜂鸣器,有源蜂鸣器由于内部有震荡元件,故通电后就可以报警,由于硬件设备的限制,我们选用无源蜂鸣器,但编程上需要花点心思。

3.2.3LED数码管

显示电路采用LED数码管动态显示,LED(Light-EmittingDiode)是一种外加电压从而渡过电流并发出可见光的器件。

LED是属于电流控制器件,使用时必须加限流电阻。

LED有单个LED和八段LED之分,也有共阴和共阳两种。

七段发光数码管结构

共阴极数码管的发光二极管阴极必须接低电平,当某发光二极管的阳极为高电平时(一般为+5V)时,此二极管点亮;共阳极数码管的发光二极管是阳极接到高电平,对于需要点亮的发光二极管使其阴极接低电平(一般为地)即可。

根据LED显示器可知,如果希望显示“8”字,那么除了“dp”管不要点亮以外,其余管全部点亮。

同理如果要显示“1”,只需bc两个发光二极管点亮,其余均布点亮。

通常将控制发光二极管的8位数据称为段选码,共阴极和共阳极的段选码互为补码。

LED显示器的段选码如下表所示:

LED数码管段选码

显示部分电路图如下,这里出于成本简便考虑,用到的是现有的单片机开发板,实际试验中只需用到四位数码管,且未加入单个发光二极管。

值得注意的是由于数码管功耗比较高,故在前面加入了74HC573锁存器芯片用做驱动数码管,但这里用到的并不是锁存功能。

3.2.4STC90C51单片机

STC90C51单片机是国内八位高性能单片机,选用的单片机带16K字节闪烁可编程可擦除只读存贮器,,STC的90CC51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.

P0口:

P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。

作为输出口用时,每位能驱动8个TTL逻辑门电路。

P1口:

Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流.

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流

P3口:

P3口是一组带有内部上拉电阻的8位双向I/0口。

P3

口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的

P3口将用上拉电阻输出电流(IIL).

P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,上面表已给出。

RST复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。

DISRT0位缺省为RESET

输出高电平打开状态。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效PSEN信号。

XTALl:

振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出

第四部分软件设计

4.1程序设计步骤

第一步分析问题,明确任务要求,还要将解决的问题抽象成数学化。

第二部确定算法,根据实际问题和指令系统的特点确定完成这一任务必须经历的步骤。

第三部选择所选择的算法,确定内存单元的分配:

确定解决问题的步骤和顺序,画出程序的流程图。

第四部根据流程图,编写源程序。

第五部上机对源程序进行编译、调试。

4.2程序流程图

测量过程是测量转速的传感器和电机同轴连接。

电机每转过一圈产生一个脉冲。

经电压比较器整形后成为单片机计数器的输入脉冲,控制计数的时间就可以得到相应的转速,然后确定是否在所需量程以内,在则送数码管显示,不在则启动报警器。

电机计算转速的公式为:

n=60*m/(N1*T*N)(r/min)

其中:

n为电机转速,N为栅格数,即磁钢的个数。

N1为中断次数,m为在规定时间内测得的脉冲数,T为T0的溢出时间。

外部脉冲通过单片机定时/计数器T1进行计数,内部采用T0定时,TO定时为10MS,即溢出100次则记满1秒,

在本例磁钢数为1,N1*T设定为一秒,故转速即为n=60m(r/min)

 

4.2.1主程序设计

 

4.2.2中断服务程序设计

 

第五部分软件调试与仿真

5.1KEIL软件进行程序调试

1首先创建项目。

保存

2.创建c文件,保存,加入到项目中,这里为了便于编程,采用c语言。

3.无错误,生成hex文件。

 

5.2PROTEUS软件仿真

1.首先根据原理图,画出仿真图,这里单片机默认为12MHZ.

2.由于这里没有霍尔元件,以此用555电路与脉冲产生器组合使用,产生脉冲。

3.加入hex文件,启动仿真。

4.不同时刻,显示效果如下图:

设置脉冲频率为20HZ。

则转换转速为1200r/min

由于我们设定高于6000低于400转则报警,上图可以看出,当转速为60时,P3.7口位低电平,驱动有源蜂鸣器报警。

5.3硬件软件联合调试

5.3.1硬件电路的焊接与搭建

需要物品电阻有源蜂鸣器单片机开发板发光二极管洞洞板

5.3.2搭接检查步骤

1.打开单片机电源,接上通讯线

2.确认无误烧录程序

第六部分结论

通过本次课程设计,深刻体会到,传感器在工业控制,检测方面发挥着巨大的作用,传感器可以将各种非电量装换为电量,但这并不能用来检测,控制,还需要通过一系列的测控电路,将信号进一步放大,滤波,整形等操作,以得到有用的信号,再对对相应的信号做出处理。

此外在电路搭建过程中,发现,好的软件设计能使电路大大简化,所以在以后进行测控电路设计,一定要有软硬件兼顾的思想。

参考文献

[1]蒋清明.C语言程序设计.中国矿业大学出版社,2011

[2]来清明.传感器与单片接口及实例.北京航空航天大学出版社,2008

[3]李朝青.单片机原理及接口技术.北京航空航天大学出版社,2008

[4]张国雄.测控电路.机械工业出版社,2014

[5]唐文彦.传感器,机械工业出版社,2015

附录程序代码

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

#defineLED_DATP1

sbitLED_SEG0=P2^3;

sbitLED_SEG1=P2^2;

sbitLED_SEG2=P2^1;

sbitLED_SEG3=P2^0;

sbitBeep=P3^7;

#defineK1//校准系数

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchardatalen[4];//显示缓冲区

uintTcounter=0;//时间计数器

bitFlag_Fresh=0;//刷新标志

bitFlag_clac=0;//计算转速标志

voidbeep();

voidDisplayFresh();//显示函数

voidcount();//计算转速函数

voidinit_timer0();//初始化定时器T0

voidinit_timer1();//初始化定时器T1

voidDelay(uintms);//延时函数

voidit_timer0()interrupt1

{

TF0=0;//d定时器T0用于数码管的动态刷新

TH0=0xD8;

TL0=0xF0;

Flag_Fresh=1;

Tcounter++;

if(Tcounter>100)//12M晶振,定时器10ms中断一次我们1秒计算一次转速//1000ms/10ms=100

{Flag_clac=1;//周期到,该重新计算转速了

}

}

voidinit_timer1()//初始化定时器T1

{

TMOD&=0x0F;

TMOD|=0x50;

TH1=0x00;//设置初值。

TL1=0x00;

ET1=1;

EA=1;

TR1=1;

}

voidmain(void)

{

len[0]=8;//开机时,初始化为8888

len[1]=8;

len[2]=8;

len[3]=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=0x00;//脉冲计数清零

}

//可以加报警程序

}

}

voidDisplayFresh()//显示函数

{

P2|=0x0F;

LED_SEG0=0;//数码管位选千位

LED_DAT=table[len[0]];//显示千位

Delay

(1);

P2|=0x0F;

LED_SEG1=0;//数码管位选百位

LED_DAT=table[len[1]];//显示百位

Delay

(1);

P2|=0x0F;

LED_SEG2=0;

LED_DAT=table[len[2]];

Delay

(1);

P2|=0x0F;

LED_SEG3=0;

LED_DAT=table[len[3]];

Delay

(1);

P2|=0x0F;

}

voidcount()//计算转速函数,存入Disbuf[]

{

uintspeed;

uintnum;

num=TH1*256+TL1;

speed=K*num*60;//K是校准系数,如速度不准,调节K的大小

len[0]=(speed/1000)%10;//千位

len[1]=(speed/100)%10;//百位

len[2]=(speed/10)%10;//十位

len[3]=speed%10;//个位

if(speed>6000||speed<100)

{

Beep=0;//启动报警

}

else

{

Beep=1;

}

}

voidinit_timer0()//初始化定时器

{

TMOD&=0xf0;/*Timer0mode1withsoftwaregate*/

TMOD|=0x01;/*GATE0=0;C/T0#=0;M10=0;M00=1;*/

TH0=0xD8;//定时10毫秒

TL0=0xF0;

ET0=1;

EA=1;

TR0=1;

}

voidDelay(uintms)//延时函数

{

uchari;

while(ms--)

for(i=0;i<100;i++);

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1