单片机测速仪的设计_第1页
单片机测速仪的设计_第2页
单片机测速仪的设计_第3页
单片机测速仪的设计_第4页
单片机测速仪的设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、changzhou institute of technology 科研实践题目:基于单片机的测速器设计二级学院(直属学部): 延陵学院 专业: 电气工程及其自动化 班级: 10电y1 学生姓名: 张凯强 学号: 10120733 指导教师姓名: 范力旻 职称: 副教授 2013年12月30日至2014年1月10日目录1.绪论21.1 课题研究背景及意义21.2 课题研究的内容22.测速器的系统概论42.1 系统的主要功能42.2 系统需求分析42.3 测速器的工作流程43总体设计方案73.1 单片机的选择73.1.1单片机的引脚功能介绍73.2测速器方案论证83.2.1方案的提出83.2.2

2、方案的比较及确定94.软件设计104.1主程序流程图104.2按键分析114.3数码管显示电路124.4速度比较与报警144.5测速程序分析155.proteus和keil仿真175.1 proteus软件的介绍及使用175.2测速器proteus软件的仿真196.实物制作216.1电路板焊接216.2电路板调试227.总结和展望237.1科研实践总结237.2对未来的展望24附录251.参考文献252.元器件清单263原理图274.程序代码(c语言):275实物图361.绪论1.1 课题研究背景及意义近年来随着科技的飞速本设计是发展,为了克服传统模拟车速显示仪表显示数不准确及没有超速提示的缺

3、点,数字化仪表迅速的进入汽车仪表行业,成为一种趋势,本文从驾驶员自身安全角度出发,设计了一种检测车辆超速的报警系统。该报警系统允许驾驶员通过自带键盘设置本车辆安全行驶的最高速度 当车辆处于行驶状态中,该系统通过速度传感器时刻监测机动车辆。并通过led显示车辆的实际车速和用户设置的安全参数当发现车辆速度超过驾驶员设置的最高值时,蜂鸣器开始报警,警告灯不断闪烁,提醒驾驶员减速。达到防患于未然的目的。单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。此设计就是一种利用8051单片机对机动车超速行驶情况进行蜂鸣

4、报警和灯光报警的系统。该系统结构简单,可靠性高,操作方便,可广泛应用于摩托车、汽车等机动车辆。1.2 课题研究的内容本文要求设计一个具有数字显示功能的单片机系统,实现车辆当前速度输出,当达到所设定的速度上限时并报警,以保证驾驶人员的人身安全。首先要进行系统的总体方案设计,在设计中一般应考虑以下几点:(1) 遵循从整体到局部的设计原则。在过程中,应遵循从整体到局部的设计原则,把复杂难处理的问题分为若干个较为简单的、容易处理的问题,分别加以解决。(2) 经济性要求。为了获得较高的性能价格比,设计时不应盲目追求复杂高级的方案。在满足性能指针的前提下,应尽可能采用简单的方案,因为方案简单意味着所用的元

5、器件少,可靠性高,而且比较经济。(3) 可靠性要求。所谓可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。可靠性指针除了可用完成功能的概率表示外,还可以用平均无故障时间、故障率、失效率或平均寿命等来表示。2.测速器的系统概论2.1 系统的主要功能软件分为主程序、数据处理子程序、按键子程序、中断服务子程序、led数码显示子程序、声光报警器报警程序等。主程序主要完成硬件初始化、子程序调用以及显示、报警等功能。数据处理子程序主要完成监测车辆速度即主要是计算出车辆的时速,为报警子程序提供参考数据;按键中断子程序主要实现合法参数的输入;报警子程序主要实现在车辆超速行驶状态下发出报警信号,包括

6、speaker输出子程序和警报灯的闪烁子程序;显示子程序设计采用数字化显示用户设定的最高时速和车辆实际时速,用max7219芯片驱动led进行动态显示2.2 系统需求分析1. 利用霍尔传感器产生里程数的脉冲信号。2. 对脉冲信号进行计数。实现:利用单片机自带的计数器t1对霍尔传感器脉冲信号进行计数。3. 对数据进行处理,要求用led显示里程总数和即时速度。实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。2.3 测速器的工作流程对于本课题所研制的车速报警系统而言,其基本出发点就是利用现有工

7、艺条件,采用现代计算机软件处理技术,提高系统的精度等级和工作的稳定性,拓展其功能,并赋予其智能化特征,使报警器不仅能够及时准确地显示车辆的当前速度信息,同时尽可能地减少不必要的人工操作,使报警能随时随地不间断进行并保证报警的工作效率。有鉴于此,同时根据系统的要求,确定系统总设计方案如图所示:抢答器工作流程图如图2-1所示yes开始初始化初始化t0关中断按键输入vm声光报警结束显示计算车速开中断接收传感信号vvmyn 图2-1 速度仪工作流程图3总体设计方案3.1 单片机的选择由于单片机的种类很多,在选择单片机时要依据实际设计要求选择合适的单片机。例如当设计仅仅需要一个单片机定时器那么选择89c

8、1051或89c2051即可,而不选择89c52,因为后者的价格较高一些。当然若程序和数据区的要求较高那么选择的单片机还要满足程序空间的要求。表3-1 51和52的比较 数据存储器程序存储器定时器中断51系列128b4kb2552系列256b8kb38在本课题中,由于程序代码生成的.hex格式的文件大小可能大于4kb,所以选用52系列单片机,即选用atmel公司的at89c52。3.1.1单片机的引脚功能介绍 at89c52是美国atmel公司生产的低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(eprom)和256 字节的随机存取数据存储器(ram),

9、器件采用atmel公司的高密度、非易失性存储技术生产,与标准mcs-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(cpu)和flash存储单元,功能强大,at89c52单片机适合于许多较为复杂控制场合应用。at89c52提供以下标准功能:8k字节flash闪速存储器,256字节内部ram,32个i/o口线,3个16位定时/计数器,5个中断源,一个全双工串行通信口,片内具有振荡器及时钟电路。3.2测速器方案论证车速报警系统系统组成主要由单片机控制模块、霍尔传感器、led数码显示器及声光报警器组成。针对任务要求,我们发现此项设计在单片机接口芯片以及按键电路上有不同的选择。因此,设计

10、方案的比较主要对此展开。3.2.1方案的提出方案一:采取通过带有i/o接口和计时器的静态ram8155芯片与设定速度的键盘电路,速度显示电路,8155芯片具有256个字节的ram,两个8位、一个6位的可编程i/o口和一个14为计数器。霍尔传感器用来产生脉冲方波,键盘输入用来设定限制速度,当车速超过最大速度vm时,声光报警电路将发出报警信号。单片机外部中断口接霍尔传感器的输出,车轮每转一圈产生一次int0中断请求,单片机对int0中断请求的次数进行计数。并将在1秒内的计数值转换成机动车的时速,送至显示缓冲区以供显示程序调用。具体算法如下:设单片机每秒计数值为n,即n r/s。设机车车轮的周长为d

11、 m,则机车的时速v=dn36km/h。硬件电路方框图霍尔传感器的输出信号经at89c51的int0口输入并存储在内部r0m 中,at89c51外扩一片8155芯片,其pb口作为led数码管的段选线,pa4pa0作为led的位选线和键盘的列线,pco和pc1口作为键盘的行线,从而组成10个按键的键盘。at89c51的p26口外接三极管放大器用来驱动声光报警电路,p26不断地输出101010 的高低电平,驱动声光报警电路报警。只要使声光报警电路报警重复输出256hz及350hz的叫声各073s,便可以模拟警车的叫声,产生警示作用。机车的上限速度vm通过键盘设置并存储起来。单片机检测霍尔传感器输出

12、的信息,计算出机车当前的速度v,并送led显示。当vvm时,控制声光报警电路报警发出警示音。方案二:利用高集成化的串行输入/输出的共阴极led驱动显示器max7219及按键电路实现。max7219芯片用来显示当前及设定速度,当速度超过最大速度vm时,声光报警电路发出报警,按键设定用来设定报警速度(最大速度vm)。3.2.2方案的比较及确定方案一和方案二比较,方案一采用8155芯片使用单片机引脚较多,采用键盘电路较复杂,而且只能显示当前速度,驾驶员对速度上限透明度不高,总体电路较复杂;方案二采用的max7219是一个高集成化的串行输入/输出的共阴极led驱动显示器,每片可驱动8位7段加小数点的共

13、阴极数码管,可以数片级联,而与微处理器的连接只需3根线,且速度设定只需通过几个按钮实现即可,并且可以实时实现速度上限的增减,因而硬件电路简单,人眼视觉效果好,可以方便的为驾驶员提供信息,易于实现维护,且max7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了mcu有限的运行时间和程序资源。4.软件设计4.1主程序流程图图4-1 主程序流程图4.2按键分析模式键扫描部分:由于单片机扫描的速度很快,所以依次用if判断每一个按键即可,当有一个按键被按下时实现对输出信号变量赋值,同时跳出循环即可。按键功能分析功能键是控制系统功能的按键,由于电压和电流都比较小所以

14、选择普通的按钮开关,如型号为:td-03b,可以满足条件。功能键及对应的功能见表4-2:表4-2 功能键及对应功能序号字符功能1start开始2n左起3p加14e/c测速5push暂停6useing中断7stop停止4.3数码管显示电路速度设置键按下mode=1扫描减1、加1键修改个位mode=2扫描减1、加1键修改十位mode=0系统处于等待状态按键测速按下 显示当前速度 图4-3 设置显示时间数函数流程图/显示秒void display_s(uchar s)write_com(0x80);write_date(0+s/10);write_date(0+s%10);/显示分void disp

15、lay_f(uint f1,uint f2)write_com(0x80+0x05);write_date(0+f1/100);write_date(0+f1/10%10);write_date(0+f1%10);write_date(0+f2/100);write_date(0+f2/10%10);write_date(0+f2%10);/显示里程void display_lc(uint l1,uint l2,uint l3,uint l4)write_com(0x80+0x40+0x01);write_date(0+l1%10);/显示湿度write_date(0+l2/1000);wri

16、te_date(0+l2/100%10);write_date(0+l2/10%10);write_date(0+l2%10);write_date(0+l3/1000);write_date(0+l3/100%10);write_date(0+l3/10%10);write_date(0+l3%10);write_date(0+l4/1000);write_date(0+l4/100%10);write_date(0+l4/10%10);write_date(0+l4%10);4.4速度比较与报警图4-4速度比较与报警当手动按键测速未达到预先设置速度,显示速度当手动按键测速超过预先设置速度,

17、显示并报警4.5测速程序分析/lcd写命令void write_com(uchar com)rs=0;lcden=0;p0=com;delay(1);lcden=1;delay(1);lcden=0;/lcd写数据void write_date(uchar date)rs=1;lcden=0;p0=date;delay(1);lcden=1;delay(1);lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);write_com(0x01);write_com(0x80)

18、;for(num=0;num16;num+)write_date(table0num);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table1num);计时器使用一个中断计算每100毫秒的中断输出,所以在这种情况下,计时器程序计算的数字将是400,被除数是600000,结果是1500这就是每分钟转数。这些数字显示在4位七段数码管上。子过程udiv32被调用,这是一个8051系列32位数字除以16位数字的标准过程。该测速仪的误差为6000rpm+/-5rpm。5.proteus和keil仿真5.1 proteus软件的介绍及使用5.

19、1.1什么是proteus软件proteus软件是labcenter electronics公司的一款电路设计与仿真软件,它包括isis、ares等软件模块,ares模块主要用来完成pcb的设计,而isis模块用来完成电路原理图的布图与仿真。proteus的软件仿真基于vsm技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如mcs-51系列、pic系列等等,以及单片机外围电路,比如按键、led、数码管等等。通过proteus仿真软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.1.2 怎样操作proteus仿真软件我使用的proteus软件是7.

20、10版本的,仿真时只需在at89c52单片机中加载keil软件生成的.hex格式文件,即可启动仿真。keil仿真:(1)程序编译(2)生成hex文件5.2测速器proteus软件的仿真绘制抢答器的软件仿真图步骤分一下四步:(1)查找所需要的元器件;(2)根据电路图进行连线;(3)是用来写线所对应的坐标,即下图所示的p11等坐标;(4)加载所写完的c程序生成的.hex文件即可以仿真。通过以上步骤,来实现抢答器设计的仿真实现,仿真如下图所示:仿真开始时的仿真如图6-1:图5-1 开始时的proteus仿真图测速器开始时用按键来调制速度上限的仿真如图5-2: 5-2 设置速度上限的proteus仿真

21、图测速器开始按键测速仿真如图5-3: 图5-3 测速器按键测速的proteus仿真图测速器速度超过速度上限的仿真如图5-4: 图5-4 测速器速度超过速度上限的proteus仿真图6.实物制作6.1电路板焊接一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下

22、有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对形成的黑膜,要吃净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。6.2电路板调试 最小系统的电路不工作,首先应该确认电源电压是否

23、正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否符合电源电压,常用的是5v左右。接下来就是检测复位引脚的电压是否正常,ea引脚的电压要正常为5v左右。 如果补焊电源后最小系统还是不能工作,有可能是at89c52单片机坏掉了,重新选择一个at89c52单片机焊接。如果是工作但是不能按需要的功能执行,也可用更换at89c52单片机方法调试,但在此之前可以选择检查对应的模块是否有焊接问题,若没有再进行更换。7.总结和展望7.1科研实践总结本次课程设计是我到目前为止觉得最有意义也是收获最大的一次实践,可以说是有苦也有甜。身为电气工程系的学生,设计是我们将来必须的技能。而这次课程设计恰恰给我们提供

24、了一个应用自己所学知识的平台。从通过理论设计,到确定具体方案,再到仿真软件仿真,最后到调试电路、显示结果。整个过程都需要我充分利用所学的知识进行思考、借鉴。可以说,本次课程设计是针对前面所学知识进行的一次比较综合的检验。总的来说,这次课程设计虽然很累,但非常充实。在这次实践中,正确的思路是很重要的,只要设计思路是正确的,那么才有可能成功。因此我们在设计前必须做好充分的准备,认真查找详细的资料,为我们设计的成功打下坚实的基础。如果说前面的电路的理论设计是多么令人头痛的事,那么安装、调试过程则是一个考验人的耐心的过程,对电路的安装、分析调试要一步一步来,不能急躁。这次课程设计对以前学过的理论知识起

25、到了很好的回顾作用,同时还弥补了之前对单片机知识的相关漏洞。刚开始,我对课程设计是一无所知,就连按照硬件图来写汇编程序,都是一个很大的问题。后来在范老师的耐心指导下,我终于知道了如何使用proteus软件,以及如何用visio绘图工具栏来画流程图。在设计过程中,遇到了很多疑难点,通过组员的讨论, 并在教师指导下,综合运用所学知识,最终完成基于单片机的篮球比赛计时器设计。是一个24秒和3秒计时电路,并具有时间显示的功能。 当然,要做好本次的课程设计,熟练地掌握课本上的理论知识是前提。而且这次的课程设计老师在验收时还要求学生进行现场操作,答辩。这就更加促进了我们去认真的去完成这次课程设计,同时也只

26、有这样才能督促学生对设计中出现的问题进行一定的分析和调试。虽然这次课程设计过程中我们遇到了很多问题,比如说程序、流程图以及proteus的仿真,我们还不能如鱼得水,还不是很熟练,经常熬夜对程序进行修改和仿真调试,但是我仍然非常感谢有这么一个机会,老师的耐心指导也让我们懂得了不少知识。总体来说,这次课程设计让我受益匪浅。在摸索改如何设计电路使之实现所需功能的过程中培养了我的设计思维,增加了实际动手能力,在让我体会到了设计电路的艰辛的同时,更让我体会到了成功的喜悦.7.2对未来的展望单片机的应用还是很广泛的,使用比较灵活,尤其是在对成本要求较为苛刻的地方,可以说在中国的社会主义初级阶段时间里,单片

27、机还是能够占有一席之地的。经过两周的科研实践,我深刻明白了理论知识与社会实践相结合的道理,也得到了以前书本知识所不曾得到的知识,更加明白了如今信息时代电子技能知识的重要性。 本设计增强了我对单片机、c语言等技能方面的认识,掌握了分析、处理问题的方法、逻辑思维能力等基本技能的训练,具有了一定程度的实际工作能力。 面对如此激烈的市场竞争体系,只有努力掌握好单片机知识方可在竞争中立于不败之地,我对从事电子设计、c语言编程和研究产生了浓厚的兴趣。希望自己以后能通过自己的不懈努力取得更大的进步。 从上述单片机计术的发展现状与趋势来看,可以认为单片机又一次进入了蓬勃发展的新高潮。而这一次发展高潮涉及的范围

28、更广,技术更新更难,影响力和影响面也更宽,势必对整个信息产业产生更加深远的影响,也将对下一世纪的社会经济发展产生巨大影响,值得密切注视和研究。附录1.参考文献1范力旻.单片机原理及应用技术.电子工业出版社.2张齐 朱宁西.单片机应用系统设计实验(c51).电子工业出版社,2013年.3高伟.单片机原理及应用m.北京:国防工业出版社,2008年.4 李增生.对抢答器的改进j.电子制作,2008年.5 蔡朝阳.单片机控制实习与专题制作6.北京:北航出版社,2006年. 胡文金 杨健.单片机应用技术实训教程.重庆大学出版社. 7 杨加国.单片机原理与应用及c51程序设计.清华大学出版社,2006年.

29、8 胡汉才.单片机原理与接口技术m.北京:清华大学出版社,1998年.9 郭培源.电子电路及电子器件.高等教育出版社,2003年.10何立民.单片机实验与实践教程. 北京:北京航空航天大学出版社,出版年:2004年11童诗白.模拟电子技术基础m. 北京:北京高等教育出版社,出版年:2001年12李朝青.单片机原理及接口技术. 北京:北京航空航天大学出版社,出版年:1999年2.元器件清单序号文字标号名称数量规格型号备注1r1-r8电阻器81k2r9电阻器110k3r10电阻器14k4r11电阻器14k5c1 c2电容230pf无极性6c3 电容110uf无极性7u1单片机1at89c527lc

30、d显示器1lmo16l8d1-d8二极管8led-red9sw1-sw8按钮8td-03b10start等按钮8td-03b11x1晶振1crysta12vcc电源15v13key1开关1控制电源3原理图4.程序代码(c语言):/电机测速/宏定义#define uchar unsigned char#define uint unsigned int /头函数声明#include #include lcd.h/光耦sbit go=p33;/键盘定义sbit k=p12;/采集转速完成标志uchar dok=0;uchardfok=0;/时间/suint time=0;/fuint time_f=

31、0;/电机转速uint dz1=0;uint dz2=0;uint dz3=0;uint dz4=0;/uchar dz_s=0;/每秒钟圈数uchar qs=0;/每分钟圈数uint qf1=0;uint qf2=0;void init(void);/主函数void main()uchar i=0;/寄存器初始化init();init_lcd();while(1)if(dok=1)dok=0;time=0;display_s(qs);qs=0;if(dfok=1)dfok=0;time_f=0;display_f(qf1,qf2);qf1=0;qf2=0;display_lc(dz1,dz2

32、,dz3,dz4);if(k=0)delay(100);while(k=0);dz1=0;dz2=0;dz3=0;dz4=0;qs=0;qf1=0;qf2=0;/初始化void init(void)/定时器0开tmod = 0x01;/50msth0 = 0x3c;tl0 = 0x0b0;et0 = 1;tr0 = 1;/总中断开ea = 1;/t0计数器优先级最高pt0=1;/低电平有效it1=0;/外部中断1开ex1=1; /外部中断1void int1_init() interrupt 2dz4+;if(dz4=10000)dz4=0;dz3+;if(dz3=10000)dz3=0;dz

33、2+;if(dz2=10000)dz2=0;dz1+;/数据读取完毕if(dok=0)qs+;/数据读取完毕if(dfok=0)qf2+;if(qf2=1000)qf2=0;qf1+;if(qf1=1000)qf1=0;/等待中断结束while(go=0);/t0计数器中断void t0_init() interrupt 1 /0初始化50ms th0 = 0x4c; tl0 = 0x00; time+; time_f+; if(time=20&dok=0)/1s转速采集完毕 time=0;dok=1; if(time_f=1200&dfok=0)/1fen转速采集完毕 time_f=0;dfok=1; /此函数提供与屏幕显示相关的函数及声明/管脚定义sbit rs=p27;sbit lcden=p26;/屏幕初始化/待机开始寻找温湿度传感器uchar code table0=00r/s 00000r/min;uchar code table1= 0000000000000r ;/等待函数void delay(uint z)uint x,y;for(x=z;x0;x-)for(

温馨提示

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

评论

0/150

提交评论