基于单片机的超速报警器的设计讲解_第1页
基于单片机的超速报警器的设计讲解_第2页
基于单片机的超速报警器的设计讲解_第3页
基于单片机的超速报警器的设计讲解_第4页
基于单片机的超速报警器的设计讲解_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

郑州轻工业学院本科毕业设计(论文)基于单片机的超速报警器的设计基于单片机的超速报警器的设计(2)复位电路复位电路通常采用上电自动复位和按钮复位两种方式。本次设计的复位电路就综合以上两种方式的优点,在开始上电后供电端给电容 C充电,RST引脚会接收到一个时间很短的高电平信号,因为电容本身的特性隔直通交,供电端对电容C的不断充电,在此过程中短暂的高电平信号而逐渐回降。把按钮并联在电容两端,当程序跑飞或使用者需要时按钮按下, RST引脚变成高电平实现手动复位。电路图如图3-9。R110K复位按提C2阿10LFR110K复位按提C2阿10LF图3-9复位电路完整的STC89C51单片机最小系统电路图如图3-10所示。,'ll,'ll图3-10单片机最小系统霍尔电路的设计

在本设计中通过采用方案一的霍尔传感器进行感应磁轮转动的信息, 由于霍尔传感器输出的信号接入单片机的外部中断 INT0供单片机进行检测,整个测速过程的信号转变如图3-11所示。霍尔元件的实际电路引脚连接如图 3-12所示图3-12霍尔元件引脚连接图报警电路的设计报警的电路设计的简单明了,采用磁式蜂鸣器和发光二极管进行报警,当前车速超过预设定值时,单片机的引脚P2.4输出高电平使三极管导通,磁式蜂鸣器和二极管通电,磁式蜂鸣器振动膜片振动发声同时二极管亮。如图3-13所示。图3-13报警电路引脚图按键电路的设计本设计中设置有按键电路,通过几个独立按键进行报警速度上限值的设置。当按键按下时,单片机引脚P33或P34变成低电平,单片机执行相应的程序对速度上限值进行设计。如图3-14所示。 Q O-0-——

图3-14按键电路显示电路的设计本设计采用LCD1602作为显示器,LCD1602与单片机的之间的硬件连接电路简单,且显示对比度可通过滑动变阻器调节。 RS是数据和指令引脚,RS为高电平和低电平时分别对应数据寄存和指令寄存。本设计因为只需向LCD液晶显示器写数据并不需要读数据,所以直接把R/W引脚接地实现写信号功能即可,这样就简化了硬件电路的设计,节省成本。如图3-15所示。图3-15LCD电路连接图

4系统软件设计对于要开发一款实用性的产品,其程序设计的也是重要的一环,程序设计的优化性好才能充分发挥硬件的能力,程序设计一般可以从以下几方面加以考虑:⑴根据软件功能要求将系统分成若干相对独立的部分,设计出合理的总体结构。(2)各程序实行模块化、子程序化。既便于调试、修改和移植。⑶应在软件程序编写前绘制出程序流程图。程序流程图决定这源程序的编辑和调试时间的长短。(4)合理分配系统资源。此次设计软件部分模块化设计,由主程序模块、功能实现模块和运算控制模块组成。主程序流程图如图4-1所示。初始化开始定时器开始工作中断等待调用中断子程序计算并显示当前速度声光报警结束初始化开始定时器开始工作中断等待调用中断子程序计算并显示当前速度声光报警结束图4-1主程序流程图4.1主程序的设计一个完整的单片机系统程序的编写离不开各部分子程序的调用, 各个子程序相互协助来系统的功能。系统的主程序主要分为硬件电路的初始化和程序调用两部分,合理的主程序的编写是系统功能实现的一半, 当初始化完成后,定时器开始工作,按键扫描程序开始,INTO检测外部中断,当中断响应计数加 1,单片机进行数据处理并在LCD1602上显示速度。按键按下时判断键值,当设置键按下开始后续子程序的调用,循环扫描按键程序直到设置键按下,进入上限速度设置子程序设置速度上限值,单片机判断是否超速,如果超速就调用报警子程序进行报警。/***************主函数***************/voidmain(){init(); //单片机的初始化lcd_init();//LCD1602液晶显示屏的初始化while(1){display。; //显示当前车速display_shangxian();//f1示驾驶者自己设定的速度上限值key(); //检测上限速度设置键按键是否按下alarm(); //单片机执行报警程序}}中断服务程序设计此次设计使用的是单片机的INT0中断口和单片机内部的定时器同时工作。由霍尔传感器检测到的脉冲信号传给单片机INT0口,下降沿触发中断响应然后计数加一,定时器响应中断开始定时,定时器采用方式 1,方式1为16位的的工作方式,定时时间设定为1ms。当中断响应10此时,计算当前车速。/*************中断服务和定时函数*************/voidEXINT0()interrupt0

count++; 〃脉冲计数加1flag=1; //标志位为1n=0;if(count>=10){RPM=600000/m;60*1{RPM=600000/m;60*1m=0;count=0;}}voidtime0()interrupt1{TH0=0xfc;TL0=0x18;if(flag==1){ n++;m++;if(n==6000){RPM=0;m=0;n=0;count=0;flag=0;}}}//00/m m单位为ms所以乘以1000//脉冲计数清零//定时器溢出中断//单片机定时器开始,采用16位方式1定时//定时1ms,1m后定时溢出,执行定时中断程序//当无速度时,6ms后LCD1602液晶显示屏//显示速度为零//计数脉冲清零//标志位清零按键调速程序的设计按键输入程序包括按键扫描、按键去抖动处理、判断键值,调用相关程序,

然后把更改过的速度上限值显示在1602LCD显示屏上。为了避免单片机对一次按键执行多次,就必须按键消抖动,常用的都是软件延时程序去抖动,且实用性强。编写简单***/{uintpress_num;ucharp;if(add==0){delay(20);if(add==0){while(!add){press_num++;if(press_num>=20){press_num=0;while(!add)编写简单***/{uintpress_num;ucharp;if(add==0){delay(20);if(add==0){while(!add){press_num++;if(press_num>=20){press_num=0;while(!add)//当add®下时速度加1//当按下不松时,上限值一次加//一直想上加,知道按键松开10{shangxian=shangxian+10;if(shangxian>20000) //设置上限速度最高设定shangxian=0; 〃的最大值display_shangxian(); 〃显示上限速度display。;delay(10);}if(press_num!=0){press_num=0; //按键按下一次上限速度值加1shangxian++;if(shangxian>20000)shangxian=0;}}if(dec==0){ //当de嗷下时速度减1delay(20);if(dec==0){while(!dec){press_num++;if(press_num>=20){press_num=0; 〃当按下不松时,上限值一次减 10while(!dec){shangxian=shangxian-10;if(shangxian<0) //设置上限速度低于0时重新从最高开始减shangxian=20000;display_shangxian();}}display。;delay(10);}if(press_num!=0) //按键按下一次上限速度值减1{press_num=0;shangxian--;if(shangxian<0)shangxian=20000;}}}}

显示程序的设计LCD1602的指令输入共有11条,包括清屏指令、显示开光指令指令、光标字符移动指令、读忙标志的判断指令、数据的读写指令指令等。在开始任务前都要先执行清屏指令,把之前的指令和数据全部擦除以便接下来的指令和数据的写入,写指令先控制写入的字符或数字在LCD1602液晶显示屏中显示的位置,然后在由数据指令写入数据。液晶显示在显示速度方面有时并不能及时跟上单片机的指令的输入,导致某些指令再输入时失效,所以在指令的执行前都应该先检查液晶显示器是否处于忙碌状态,如果处于忙碌状态就等待直到不忙再执行指令。/***********LCD1602显示函数*/***********LCD1602显示函数**********/ucharcodetablh口={"VH:ucharcodetablh口={"VH:ucharcodetab2h[]={"RV:r/min"}; //转速显示的固定字符voidwrite_1602comzl(ucharcom){rs=0; //数据/指令引脚的电平设为低电平P0=com;delay(5);en=1;delay(5);en=0; //下降沿产生时执行命令}voidwrite_1602datsj(uchardat){rs=1; 〃数据/指令弓I脚的电平设为高电平P0=dat;delay(5);en=1;delay(5);en=0;}voidlcd_init(){uchara;whte_1602comzl(0x38);write_1602comzl(0x0c);write_1602comzl(0x06);write_1602comzl(0x01);write_1602comzl(0x80); 〃显示内容从设定的位置开始显示for(a=0;a<16;a++){write_1602datsj(tab1[a]); //写入固定符号部分}write_1602comzl(0x80+0x40);for(a=0;a<16;a++){write_1602datsj(tab2[a]);}}报警程序的设计当当前速度超过预先设定的报警速度时,进行报警。//************报警程序****************//voidalarm(){if(RPM>=shangxian) //判断当前车速是否超过预设值BUZZ=0; //超速,引脚为低电平,三极管PNP导通elseBUZZ=1;}

5系统仿真调试测试所需的工具:Keil软件[何17]、ProtueS18]、系统硬件、PL2303下载器等。当硬件电路搭配好后,接下来就要进入软件编写的部分了,关于单片机软件的编写,有专门的keil软件负责编写调试,首先我们要先创建一个项目如图6-1所示,IQI111-pVi«ionJFileEditViewPrujedLIF也由DebugPeripheralsJoabSVC5WindowHelp(5>日七Target1二口SourceGroup1TtKt?Simulation图5-1keil设置选项界面接下来再点击目标选项按键弹出设置框。在设置框中我们可以根据自己的需要更改配置,例如:所选择的芯片的晶振频率,在输出界面设置是否生成 1TtKt?Simulation图5-1keil设置选项界面一般情况下我们都要勾选此生成HEX这个选项,因为在方案设计初期我们为了达到理想效果要不断调试改进功能,所以直接连接硬件电路进行调试会很麻烦且浪费时间,中途说不定还要检查电路的连接问题,使用仿真的话就可以减少很多不必要的麻烦。在后期的仿真电路中因为要导入HEX文件,所以必须要生成HEX文件,才能使仿真运行。在软件编写时要依循系统框图的设计, 从整体到部分进行软件编写,在软件编写的过程中我们难免不会遇到困难, 中途产生各种错误和警告,这时我们就要仔细检查程序,在keil软件下方有个buildoutput的窗口,

它会及时反映出程序的出错点和警告点,我们可以双击错误的信息就会自动跳转到出现错误的代码行。有时编译总是提示某个参数未定义,但我们给过定义了,这时就要考虑子程序的顺序,也许调换一下子程序的顺序就可以解决这个问题。当程序全部编写完成后,将编写好的程序生成.HEX文件如图5-2所示。mrpm-pVi54on4fileEdit»ewErodedFl必h口23Peripherah憎JVCSwindowHelpPfr-oject日曰Target1B白日曰Target1B白SourceGroup1…国STARTUP,附&哥rpm.c…图reg52,h001|#include<reg52.h>M2003unsignedcnar004■tdefineuiA'ClanBigTied005♦defineRKEYPl00G007008009“定义i石醛相关管唧010suit19二口厂七011sbiten-P2^e?012013“技舞定义Q14售butadd=P3rt3;015abitdec-P3A4;016tn?018019uintcount,nPn;020nnsignedlongB.PH;02uc^ar022bitflag;iTbitflaa2=l;Prograir.Size3:dataw30.2xdata™0cade»1506 %crea^xnghex.filefrom4txpmL,一"rpm0-0Error(£)r0Earning(3).SiimulationiBuildtaraetfilesSiimulationi图5-2keil程序图然后再搭建Protues仿真电路图如图5-3所示,把HEX文件导入仿真。Protues是一款功能强大的基于单片机的仿真软件,其自带有强大的元件库供使用者使用,Protues和keil联调使用[19],实现程序的快速更改。当仿真成功后通过PL2303下载器下载到单片机中。通过观察整个系统运行的状态,然后进行反复的修改调试程序,最终得到一个完善的程序。

E3R™-l£l£PTcJ—gnH1访一■,J — □X宓琳>WB<V)编・旧工UH) i»代码㈤调试⑻JRU1■画MjK;维(V)U聊用口e3・值电旧・|]囱屈1*1+飞办8*|]>9?»f1>»f1>fIII■IO5He^anet:) 显示当mUllEi的元件图5-3仿真电路图然后再搭建Protues仿真电路图如图6-3所示,把HEX文件导入仿真。Protues是一款功能强大的基于单片机的仿真软件,其自带有强大的元件库供使用者使用,Protues和keil联调使用[20],实现程序的快速更改。当仿真成功后通过PL2303下载器下载到单片机中。通过观察整个系统运行的状态,然后进行反复的修改调试程序,最终得到一个完善的程序。最终的模拟实际情况的电路图正面如图 5-4(a)所示,反面图如5-4(b)所示。I定断刀期■ S-0评抬 启LUEAT9SC51BUTTONfeUZZEALMOlgLNOTPHPRE5RE与网CKB古沙比30"切牙\33口0抬 启LUEAT9SC51BUTTONfeUZZEALMOlgLNOTPHPRE5RE与网CKB古沙比30"切牙\33口0A5*BUZ1■UEZHT■rTETT-UH:10S00r-^Hin@L/ninbKTAil用工"口0闻i^j^aXTTM2mswxPQgdHASTHJJjhDl»ZIA9I2JUQ.DIKEM・工珑11M.IIFPIJP3JYHXDA1.1lnMTHiPI2i32ifnrrA1J■eHTi-1>1.LRXUID*14P1J5p^wwif-冏r而厂JI■fT3.mrq1a券.而占m■卢灯如L#■由(a)(a)(b)图5-4模拟电路图(a)电路板正面 (b)电路板反面本次毕业设计选到这个题目一开始感觉很简单,单真正上手才会感觉到并不容易,在硬件软件方面都遇到不少问题,多亏在我的导师给我们解惑难题,合理安排我们的时间,每周的周二和周四都会定期去见老师,汇报工作进展,同时老师给我们定制学习任务和工作内容,让我们一步一步完成小的目标,没有老师的精心规划和指导帮助毕业设计难以顺利进行,从选题到硬件电路的排版、焊接再到软件编程等等各个方面,导师给予了我他的想法以及建议,在我遇到了自己无法独立解决的问题时,导师也会抽出时间来给我解答以及指导。当自己一个人在学习遇到的不会的问题时同学给我帮助,我的同学也给与了我很大的支持,当我遇到硬件调试方面以及软件编写方面的问题时他们总是和我一起想办法解决, 一起动手查资料,他们总能够给我提供力所能及的帮助,感谢他们,很难想象在没有导师和同学的帮助下,我的毕业设计能否如期的完成。结论本论文致力于设计一款性价比高的超速报警器。采用最具性价比的元器件设计出的一款成本低但在测量方面精度不低的良心产品。在当前的超速报警器的市场上,一般的都卖的比较贵,本论文设计的超速报警器的出现打开了低端的市场的销量,因为成本低所以在功能方面可能不会有那么强,但在实用性方面还不错。经过制作设计这段时间的努力终于将本设计方案要求基本实现。由于时间、水平和经验有限,设计的作品还存在着一些的不足之处,本论文设计的超速报警器的功能上的不完善加之低频段的精度不高,这两方面的短板也是受到成本的限制。这次毕业设计在两个多月的多的时间里通过不断地学习, 上网查阅资料,图书馆翻阅文献资料,一点一点的学习和积累并结合已学过的专业知识来规划本次的毕业设计,不断地进行方案设计和论证,在这个学习和实践过程中我深刻意识到自己经验的不足,以前都是学习知识点没有太多的实践的机会,根本意识不到实际动手中可能遇到的问题,没有老师不断的给出珍贵的意见和规划方向,自己一个人很难上手。直至逐步完善方案,最终实现要达到功能。通过这次的真枪实战让我学到了之前从没接触过的知识,让我本身的能力也更加扎实。参考文献[1]孙璐,郁炮顾文钧.基于PCA和HMM的汽车保有量预测方法.[J].交通运输工程学报,2013,04:93-94.[2]陈育中.霍尔传感器测速系统的设计 [J].科学技术与工程,2010,30:7529-7532.[3]阮毅,陈伯时.电力拖动自动控制系统[M].机械工业出版社,2009,08:42-44.[4]JaeinLim,BrajalalSinha,ToratiSriRamulu,KunWooKim,Dong-YoungKim,CheolGiKim.NiCosensinglayerforenhancedsignalsinplanarhalleffectsensorsJ].MetalsanMaterialsInternational,2013,194.[5]李连生.电动车超速报警器设计[J].科技广场,2013,12:50-53.[6]卢长根,周友佳.磁电式速度传感器设计与应用[J].机车电传动,2008,05:48-50.[7]丁芝琴.基于霍尔传感器的电机测速装置设计 [J].农机化研

温馨提示

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

评论

0/150

提交评论