基于单片机转数测量设计报告_第1页
基于单片机转数测量设计报告_第2页
基于单片机转数测量设计报告_第3页
基于单片机转数测量设计报告_第4页
基于单片机转数测量设计报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、 课 程 名 称 传 感 器 项 目 名 称基于霍尔传感器的电机转速测量系统设计年 级 电 科121班 专 业 电子信息科学与技术 学生姓名 岑万双 学 号 1207010032 2015 年 12月 21日目 录摘要2引言31系统设计411硬件设计411.1原理图4112硬件电路4(一)霍尔传感器5(二)处理器6(三)LCD显示和报警612软件设计61.21主程序6(一)工作过程6(二)流程图7(三)程序7122中断程序8(一)外部计数中断8(二)定时器中断91.2.3 显示模块相关程序102. PROTUES仿真结果14结论17摘要本设计以对电机转速的测量为目的,以51单片机作为主控制器,

2、使用霍尔传感器对电机转速进行测量。采用仿真软件Protues进行硬件搭接,并利用Keil软件对所写C程序进行编译、仿真,利用LCD1602显示其具体转速。首先介绍了霍尔传感器的基本概念及其原理,其次阐述了霍尔传感器测速系统的工作过程,利用脉冲计数法实现了对转速的测量,通过LCD1602直观地显示转速值,仿真结果表明所设计的系统是正确的。引言 在生产过程中,经常会遇到各种需要和显示其转速的场合。测量转速的方法分为模拟式和数字式两种。 模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器、霍尔元件等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格

3、比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法,智能化微处理器代替了一般机械式或模拟式结构。 1系统设计 把霍尔传感器和机轴同轴连接,利用开关型霍尔传感器将电动机转速转化为单片机可以识别的脉冲信号,将脉冲信号送入单片机,外部中断计数并设置定时器中断时间,每1s读一次外部中断计数值,此值为脉冲信号的频率,最后由电机转速计算公式得到转速。在正常的情况下,通过LCD显示当前的转速数值,同时时刻更新,保证测量的实时性:当电机的转速超出一定的范围后,通过蜂鸣器进行报警。 11硬件设计 11.1原理图 以单片机AT89C51为控制核心,霍尔集成传感器作为测量转速的检测元件,最后用字符型液

4、晶显示器1602显示转速数值,当转速超过一定值或停止时报警。原理图如图1所示:图1 112硬件电路 在原理图基础上对硬件电路进行了详细的设计,硬件电路图如图2 所示: 图2(一)霍尔传感器利用霍尔传感器将电机转速转化为脉冲信号。测量用霍尔器件A3144为开关型霍尔集成电路,是将霍尔元件、稳压电路、放大器、施密特触发器、OC门等电路做在同一个芯片。当外加磁场强度超过规定的工作点时,OC门由高阻态变为导通状态,输出变为低电平;当外加磁场强度低于释放点时,OC门重新变为高阻态,输出高电平。通过上拉电阻可将其输出接入逻辑电路。该芯片具有尺寸小、稳定性好、灵敏度高等特点,有两种封装形式,一种是3脚贴片微

5、小型封装,后缀为“LT”:另一种是3脚直插封装,后缀为“UA”。霍尔器件A3144管脚及其接线如图3所示:图3(二)处理器处理器采用的是89C51单片机。通过89C51,单片机完成对电转速脉冲计数的控制,读取寄存器完成转速频率的确定。而电机脉冲信号连到INTO引脚。INTO中断对转速脉冲计数。定时器T0工作于定时方式,工作于方式l。每到ls读一次外部中断INTO计数值,此值即为脉冲信号的频率。根据下式可计算出电机的转速,电机转速计算公式: 其中n为电机转速,f为电机脉冲信号频率,z为转轴旋转一霍尔传感器产生的脉冲数。(三)LCD显示和报警在正常的情况下,通过LCD显示当前的转速数值,当电机的转

6、超出一定的范围后,产生一个控制信号控制相应模块进行报警。12软件设计 1.21主程序 (一)工作过程 先初始化,设置各中断初值,检测脉冲到来后,启动外部中断,每来一个脉冲中断一次,记录脉冲个数;同时启动T0定时器工作,每1秒定时中断一次,读取记录的脉冲个数,即电机脉冲信号频率,根据公式计算出电机的转速,再进行数值的判断,若数值高于1000则报警,否则就进行正常速度液晶显示。 (二)流程图如图4所示:图4 (三)程序 main() LED=1; Lcd1602_Delay1ms(1000); LED=0; LcdInit(); do TMOD=0x01;/定时器0方式1 TH0=0x3C;/装载

7、50ms定时初值 TL0=0xB0; TCON=0x11; /启动定时中断和外中断0下降沿触发 IE=0x83;/允许定时和外部中断响应 while(fb=0); if(zs>=1000) LED=1;/转数大于1000R/S控制灯亮 Lcd1602_Delay1ms(1000); display1(); while(1); 122中断程序 (一)外部计数中断 1工作过程 每来一个电机脉冲信号,INTO产生中断计数。2流程图如图5所示:图53 程序void countv(void) interrupt 0 /外部中断程序 count+; if(count%6=0) zs+; (二)定时器

8、中断 1工作过程 TTO定时器每1秒定时中断一次,读取记录的脉冲个数。 2流程图 如图6所示:图63、 程序void tim0(void) interrupt 1 /定时中断程序 TH0=0x3C;/50ms定时 TL0=0xB0; msec+; if(msec%20=0)/20*50ms=1s,1s定时到 EA=0; fb=1; 1.2.3 显示模块相关程序 在对液晶模块的初始化中要先设置其显示模式,在液晶模块不显示字符时光标是自动右移的,无需人工干预。显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。向LCD输入的数据有两种,一种是指令,一种是数据。指令是负责初始化LCD和显示

9、字符在什么位置。数据是告诉该显示什么。命令与数据是RS端的高低电平来确定。/* 函 数 名 : data_chang* 函数功能 : 将转数的每一位依次存到数组中* 输 入 : 无* 输 出 : 无*/void data_chang()/数据转换程序 SZ0=(zs/1000%10+'0');/转换转数的千位 SZ1=(zs/100%10+'0');/转换转数的白位 SZ2=(zs/10%10+'0');/转换转数的十位 SZ3=(zs%10+'0');/转换转数的个位 zs=0; msec=0; count=0; /* 函 数

10、名 : display1* 函数功能 : 将数组中的每一个依次显示* 输 入 : 无* 输 出 : 无*/ void display1 ( ) /显示子程序 int i;data_chang();/数据处理LcdWriteCom(0xc4); for(i=0;i<5;i+) LcdWriteData(SZi);Lcd1602_Delay1ms(1000); /* 函 数 名 : Lcd1602_Delay1ms* 函数功能 : 1ms延时* 输 入 : c* 输 出 : 无*/void Lcd1602_Delay1ms(uint c) /误差 0us uchar a,b;for (; c

11、>0; c-) for (b=199;b>0;b-) for(a=1;a>0;a-); /* 函 数 名 : LcdWriteCom* 函数功能 : 向LCD写入一个字节的命令* 输 入 : com* 输 出 : 无*/void LcdWriteCom(uchar com) /写入命令LCD1602_RS = 0; /选择发送命令LCD1602_RW = 0; /选择写入 LCD1602_E = 1; /使能LCD1602_DATAPINS = com; /放入命令Lcd1602_Delay1ms(5);/等待数据稳定LCD1602_E = 0; /写入时序 void Lcd

12、WriteData(uchar dat)/写入数据LCD1602_RS = 1;/选择输入数据LCD1602_RW = 0;/选择写入LCD1602_E = 1; /写入时序LCD1602_DATAPINS = dat; /写入数据Lcd1602_Delay1ms(5); /保持时间LCD1602_E = 0;/* 函 数 名 : LcdInit()* 函数功能 : 初始化LCD屏* 输 入 : 无* 输 出 : 无*/ void LcdInit(void) /LCD初始化子程序(8位传输)int i; LcdWriteCom(0x38); /开显示LcdWriteCom(0x0c); /开显

13、示不显示光标LcdWriteCom(0x06); /写一个指针加1LcdWriteCom(0x01); /清屏LcdWriteCom(0x83); /设置数据指针起点for(i=0;i<10;i+)LcdWriteData(Pai);LcdWriteCom(0xc9); LcdWriteData('R');LcdWriteData(0x2f);LcdWriteData('S');2、 PROTUES仿真结果 对于本系统的霍尔传感器产生的脉冲信号,利用软件中信号脉冲代替,其频率的值就代表霍尔传感器产生的频率,霍尔传感器6个脉冲信号表明转一圈,即转数N=f/6。当频率为f=1k:理论值N=1000/6=166.667,测量值N=166,没有误差。图7图8当频率为f=5k:理论值N=4000/6=833.3,测量值N=667,没有误差。图9当频率为f=4.8k:理论值N=4800/6=800,测量值N=790,测不准,有误差。图10当频率为f=4.9k:理论值N=4900/6=816.6,测量值N=1099,测不准,误差较大。图11当频率为f=5k:理论值N=5000/6=833.3,测量值N=2265,结果与实际值不服,不能测量。图11 由以上测试结果可以看出,当转数高于

温馨提示

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

评论

0/150

提交评论