光电式自行车速度里程表设计,毕业论文_第1页
光电式自行车速度里程表设计,毕业论文_第2页
光电式自行车速度里程表设计,毕业论文_第3页
光电式自行车速度里程表设计,毕业论文_第4页
光电式自行车速度里程表设计,毕业论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

光电式速度里程表设计光电式自行车速度里程表设计摘要随着科技的迅速发展,单片机的应用也越来越广泛,并带动传统控制检测技术不断更新。现在的里程表大多是电子式的,用数码管或液晶显示器即时显示,显示更加直观。电子式里程表采用接触车速传感器代替软轴传动,可使里程表的安装位置不受距离限制,进一步有效地克服了机械式里程表中的诸多不足。方案采用了一种以单片机AT89C51为主控机,使用光电传感器进行自行车里程、速度测量的装置。传感器将不同车速产生的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD液晶显示模块进行显示,使得自行车的速度与里程数据能直观的显示给使用者。本设计主要包括自行车轮脉冲采集、键盘输入和数据显示等部分,主程序用C语言编写,完成各项功能及数据的处理。本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。并且可以进行扩充,更方便于使用者。关键词光电传感器单片机液晶显示器里程表I光电式速度里程表设计THEDESIGNOFPHOTOELECTRICBICYCLEODOMETERABSTRACTWiththerapiddevelopmentoftechnology,moreandmorewidespreadapplicationofmicrocomputer,promotethetraditionalcontroldetectiontechnologyconstantlyupdated.Mostofthecurrentelectronicodometer,andwiththeLEDdigitaltubeorLCDdisplayreal-time,displaymoreintuitive.Electronicodometerflexibleshaftusingthecontactspeedsensorinsteadofdriving,mileagetablescanbeinstalledwithoutdistancelimitations,andfurthertoeffectivelyovercomethemechanicaldisadvantagesofmileageinthetable.TheplanadoptsthesystemandconfigurationofcombiningthemicrocontrollerAT89C51asthemaincontrolcomputer,usingthephotoelectricsensorbicycleodometer,speedmeasuringdevices.whenDifferentspeedpulsesignalsofdifferentfrequenciesproducedbysensorareinputintothemicrocontroller,afteritscalculation,liquidcrystalwilldisplaythedatas,makingthebike'sspeedanddistancedatavisuallytotheuser.Thedesignincludesabikewheelpulseacquisition,keyboardinputanddatadisplaysection,themainprogramusingClanguage,Thispaperfirstneededto"milestones"designofequipmentindetail,ontheproblemsexistinginthedesign,explainedAndthentohardwareandsoftwaredesignandimplementationofthepartmadeearnestanalysis,Thenpresentedsystemmodelingprocessandthecorrespondingsystembasedonthismodel,thecontrolsimulation,andthesimulationresultsarecompared.KEYWORDSodometerphotoelectricsensorMCULCDII光电式速度里程表设计目录摘要...........................................................................IABSTRACT....................................................................II1绪论.........................................................................11.1问题由来...............................................................11.2课题现状...............................................................11.3设计任务...............................................................22系统原理概述..............................................................32.1系统原理总概述.......................................................32.2系统硬件组成原理....................................................32.3软件系统工作流程....................................................43系统硬件设计.............................................................53.1采集信息部分以及传感器的选择.....................................53.2轮脉冲检测与转换电路...............................................63.2.1.轮脉冲检测........................................................73.2.2.信号预处理电路....................................................73.3单片机系统部分......................................................93.3.1AT89C51单片机介绍.................................................93.3.2定时/计数器的结构及控制............................................93.3.3中断控制...........................................................113.4单片机外围电路介绍.................................................113.4.1复位电路...........................................................113.4.2晶振电路...........................................................123.5显示部分..............................................................133.5.1LCD液晶显示器.....................................................133.5.2显示接口电路设计..................................................153.6报警电路..............................................................173.7键盘控制..............................................................174软件设计..................................................................184.1测量算法概述........................................................184.2中断子程序的设计...................................................194.3数据处理子程序的设计..............................................204.3.1里程计算子程序.....................................................214.3.2.速度计算子程序....................................................21光电式速度里程表设计4.4显示子程序的设计...................................................225设计总结..................................................................245.1实现目标与特点......................................................245.2结论及不足...........................................................25致谢..........................................................................26参考文献....................................................................26附录..........................................................................28附录I系统电路原理图..................................................28附录II设计源程序......................................................29光电式速度里程表设计1绪论1.1问题由来我国是人口大国,也是自行车大国,随着生活节奏的不断加快,自行车已经不仅仅是运输、代步的工具,现在则是代表着绿色、环保、节能。因此其辅助功能也变得越来越重要。而且人们希望自行车的娱乐、休闲、锻炼的功能越来越多,能带来大家更多的健康与快乐。在这个背景下,自行车里程表作为自行车的一大辅助工具迅速发展起来。科学、美观、合理设计自行车里程表有一定的实用价值.它能合理计算出速度及公里数,使运动者运动适量,达到健康运动与代步的最佳效果。并且随着人们生活水平的逐渐提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。自行车在中国普遍作为代步工具。而在国外,自行车却是一项十分受欢迎的健身运动。因为它无污染,价位低廉,老少皆宜。而且在运动过程中可以充分享受到大自然,对于忙碌的现代人来说,无疑是一种较好的放松方法。在中国这种情况也在慢慢发生变化。因此爱好自行车运动的人需要一款里程表,以知道自己的运动情况。并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。因此需要一种装置进行对训练中各种参数的测定记录。1.2课题现状传统的机械式车速表是由旋转磁场作用于转动盘,使转动盘连同车速表指针发生同向的偏转。当电磁转矩与弹簧产生的阻力矩平衡时,指针偏转停留在某一角度上。指针偏转角与车速成正比,因而可用其表示车速。机械式车速表的缺陷是明显的。由于表盘指针偏转程度正比于软轴的转动时产生的磁力,当转速较低的时候,磁力较小,随转速变化波动较大。因此,低速时车速表指针摆动剧烈、测量及显示精度不高。对于发动机后置的车辆,要将车速表指针的偏转动力由变速箱经软轴等传至驾驶室,软轴必然布置的较长,如何将这种长长的转动软轴从结构上布置妥当,肯定是一件十分困难的事情。1光电式速度里程表设计现在的车速表大多是电子式的,用LED数码管或LCD显示,使速度显示更加直观。采用接触车速传感器代替软轴传动,可使车速表的安装位置不受距离限制,有效地克服了机械式车速表中的诸多不足。电子式车速表更加智能,车速表的功能也更加人性化,如加上了里程累计、超速提醒等功能。本设计就是针对骑自行车的人们在行进中不能很好的把握自己达到了多大的速度,行驶了多远的距离而设计的。以往的里程表只能进行测量速度,里程,时间,温度等数据,虽然能实现很多的功能,但是其中的一些功能不适合自行车业余爱好者,浪费资源,而且性价比也低,而且也不能很好的把握当前运动量,从而不能很好的实现娱乐和锻炼的效果。而本设计却能实现娱乐和锻炼的双重效果,而且相对业余爱好者性价比更高。1.3设计任务本设计要以单片机为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度的测量,最后用液晶显示器直观地将速度与里程显示出来,并且在速度高于一定的值时可自动向用户报警,从而达到智能化的目的。主要设计内容:1.传感器电路模块设计2.单片机外围电路设计3.报警电路设计4.显示电路设计2光电式速度里程表设计2系统原理概述2.1系统原理总概述本系统由信号预处理电路、单片机AT89C2051、LCD显示模块、开关按键,报警模块和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数。本设计中,计数的正确性决定了本装置的精度,如何在复杂的环境中得到正确的计数脉冲,是本设计的重点,设计中里程表显示采用LCD1602液晶模块,用液晶显示器显示是本设计的难点。并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。2.2系统硬件组成原理系统硬件由信号预处理电路、单片机AT89C2051、系统化LCD显示模块、开关按键,报警模块组成,系统的硬件组成框图如下:图2-1系统总体设计框图由于不同速度发出不同频率的脉冲,通过光电传感器检测出不同状态的脉冲信号,而一般的模拟信号都是微弱的,所以要把它放大,这就需要一个放大器。另外单片机能识别的都是TTL信号,经波形变换和波形整形电路方能将放大的信号转换成可与单片机相连的形式。当行驶达到一定的车速时,会发出报警声。不同的按键方式,液晶显示器会显示不同的数据。3光电式速度里程表设计2.3软件系统工作流程在硬件设计完毕之后,接下来就是设计中最核心和最为主要的软件部分设计。所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。图2-2系统软件流程图4光电式速度里程表设计3系统硬件设计本设计采用的是以红外传感器ST1101为传感器,以AT89C51作为系统的主控芯片,以LCD1602、128*16液晶显示器进行显示。图3-1系统硬件框图3.1采集信息部分以及传感器的选择信息采集部分可以选用的传感器种类一很多,例如磁感应传感器,光电感应传感器,金属传感器等。霍尔传感器由永久磁铁和开关型霍尔集成电路组成。霍尔集成电路由霍尔元件、放大器、整形电路及集电极开路输出等部分组成,其功能是把磁信号转换成电信号,霍尔元件为磁敏元件,当垂直于霍尔元件的磁场强度发生变化时,其两端的电压就会发生变化,经放大和整形即可输出脉冲电信号。光电编码器的工作原理与光电传感器一样,不过它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器的轴与转轴相连,就能获得多种输出信号。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度的装置和设备中。如图3-2所示,是某光电编码器的外形。光电传感器是应用非常广泛的一种器件,各种各样的形式,如透射式、反射式等,基本原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图3-1所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此可以制作一个遮光叶片如图3-3所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。而考虑到实际可操作性以及设计要求方面,本设计选用的传感器为光电传感器。5光电式速度里程表设计图3-2光电传感器的原理图图3-3遮光叶片将光敏电阻安装在自行车前又的一侧,在同等高度的另一侧安上一个高亮度的发光二极管。在同等高度的辐条上贴上一圈黑色材料,并在黑色材料上打上等间距的小孔,这样当小孔经过光敏电阻时,光敏电阻根据光电流的变化发出脉冲,从而测量里程。红外光电传感器ST1101采用高输出的红外光电二极管与高灵敏度光敏晶其特点是性能可靠,体积小,结构简单,广泛应用于里程表。表3-1主要参数发射二极管的电流大则发射功率大,但不能超过它的极限电流。根据主要参数表,它的极限电流为50mA,当两者之间有孔时,三极管导通,当两者被隔离时,三极管截止。图3-4传感器外围电路6光电式速度里程表设计3.2轮脉冲检测与转换电路本设计采用了ST1101红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。然后通过带施密特触发器的反相器DM74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号,再输入给单片机。3.2.1轮脉冲检测该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘,在这个铝盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。铝盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以在单位时间内尽可能多地得到脉冲数从而避免了因为两个过孔之间的距离过大,而车子正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。本设计在铝盘过孔的设计上采用9个过孔,从而留下了8个同等的间距这样在以后的软件设计中能够较为方便的计算出速度里程。脉冲发生源的硬件结构图如图3-5所示。图3-5脉冲发生源硬件结构图(左为正视图,右为侧视图)3.2.2信号预处理电路如图3-6所示,系统的信号预处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三7光电式速度里程表设计极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5V的正弦波和脉冲信号进行测量。其中电阻R3为输入电阻,R4为输出电阻。预处理电路的第二级采用带施密特触发器的反相器DM74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号(如图3-7所示),同时将输出信号加到单片机的P3.2口上。利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时,波形的上升沿将明显变坏;当传输线较长,而且接受端的阻抗与传输线的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号时,信号上将出现附加的噪声。无论出现上述的那一种情况,都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的VT+和VT-设置得合适,均能受到满意的整形效果。图3-6信号预处理电路图图图3-7信号处理波形图8光电式速度里程表设计3.3单片机系统部分3.3.1AT89C51单片机介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3-8AT89C51引脚图3.3.2定时/计数器的结构及控制定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。定时/计数器结构如图3-9所示:图3-9定时/计数器结构图9光电式速度里程表设计AT89S52单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请[9]。1.工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如表3-2:表3-2GATE=0时,以运行控制位TRX(X=0,1)来启动定时/计数器运行;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作;C/T计数器模式和定时器模式选择位C/T=1时,选择计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲计数;C/T=0时,选择定时器模式。M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。表3-32.TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:表3-4TF110光电式速度里程表设计T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。3.3.3中断控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。表3-5ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA(IE.7),CPU中断允许(总允许)位。3.4单片机外围电路介绍3.4.1复位电路AT89C51单片机的复位输入引脚RST为AT89C51提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。在89C51的时钟电路工作后,只要在RST引脚上出现两个机器周期以上的高电平时,11光电式速度里程表设计单片机内部则初始复位。只要RST保持高电平,则89C51循环复位。只有当RST由高电平变成低电平以后,89C51才从0000H地址开始执行程序。复位电路通常采用上电自动复位和按钮复位两种方式。本系统的复位电路是采用按键复位的电路,如图3-10所示,是常用复位电路之一。单片机复位通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RESET端,该高电平使89C51全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮即可。按下按钮,则直接把+5V加到了RESET端从而复位称为手动复位。复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零。图3-10AT89C51复位电路按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。时钟频率选用6MHZ时,C取22uF,Rs取200Ω,RK取1KΩ。3.4.2晶振电路晶振电路由晶振和两个负载电容组成。晶振电路部分电路连接如图3-11所示。图3-11晶振电路12光电式速度里程表设计晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度。比如此系统所用的12MHz晶振,单片机工作速度就是每秒12M。在调试时要注意将PC串口波特率设为1200。至于两个电容的大小,它是根据晶振厂家提供的晶振要求选值的,换句话说,晶振的频率就是在它提供负载电容下测得,能最大限度的保证频率值误差。两个电容取值都是相同的,大部分在20-30pF,没有相同电容的情况下,可以用两个相差不大电容代替,但不能相差太大,容易造成谐振不平衡,容易造成停振或者干脆不起振。晶振电路在本系统中是并联方式,连接在AT89c51的XTAL1和XTAL2引脚。3.5显示部分3.5.1LCD液晶显示器功能简介:其液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的代码。LCD1602以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。外形尺寸(LxWxH)80.0x36x12.0视域尺寸(WxHxT)64.5x13.8驱动电压(V)5.0Vor3.3V工作温度:(oC)0~50or-20~70存储温度:(oC)-10~60or-30~80显示类型:STNorFSTN颜色:蓝色(带背光)生产工艺:SMT其主要技术参数为:显示容量:4.5~5.5V;工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(WXH)mm1602采用标准的16脚接口,其管脚定义如下:13光电式速度里程表设计图3-12LCD1602实物图第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光电源接5V正电压。第16脚:背光电源接地。1602的读写操作、屏幕和光标的操作都是通过指令编程来实现的。液晶模块内部的控制器共有11条控制指令,其指令具体功能介绍如下:指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,14光电式速度里程表设计低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与LED数码管相比,液晶显示器的显示效果相对较好,液晶显示器显示不仅直观,而且界面具有人机交互美观的特点。而且具有低功耗,容易控制,占用CPU资源少这些优点,从而成为一些显示器的首选。3.5.2显示接口电路设计1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。指令集1602通过D0~D7的8位数据端传输数据和指令。15光电式速度里程表设计显示模式设置:(初始化)00110000[0x38]设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1&光标加1),N=0(读或写一个字符后地址指针减1&光标减1),S=1且N=1(当写一个字符后,整屏显示左移)S=0当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。LCD显示与单片机连接电路图如图3-13;图3-13液晶原理图16光电式速度里程表设计3.6报警电路本次报警电路采用蜂鸣器报警,当即时速度超过预定值是蜂鸣器响,指示灯闪烁,提示应该减速。报警电路图如图3-14所示。图3-14报警电路图3.7键盘控制键盘是实现人机对话的重要工具,用户可用计算机向计算机输入数据和指令,本系统采用独立键盘接口,独立式按键是指直接用I/O口线构成单个的按键电路。每一个独立式按键单独占用一根I/O口线。独立式按键接口电路配置灵活,软件结构简单。但每个按键都需要占用一根I/O口线,适用于按键数量少的键盘。电路中,按键输入低电平有效。按键未按时有上拉电阻保证此时输入为高电平。按键接口电路如图:图3-15按键接口图17光电式速度里程表设计4软件设计待测信号经预处理电路后加至单片机的P3.2引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测P3.2引脚电平来决定是否启动测量频率程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测频率。我们可从硬件的转盘上知道两个过孔之间在圆周上的距离。而这个距离M正好为计算速度和距离起到了基本的数据储备作用。同时可以从TL0寄存器知道在两秒内单片机检测到的N个脉冲。而M×N所得到的正是这两秒内铝盘在圆周上所走得距离S。(此时假设在这个两秒内车子是匀速前进的),距离S除以2秒的时间,就可以大概的算出这2秒内铝盘的线速度。再根据铝盘与自行车的轮子保持着一样的角速度,得到铝盘的线速度与轮子线速度的关系,从而算出自行车在这2秒的平均速度。至于里程的计算,根据速度计算的相加即可得到目前的总里程数。通过单片机计算出来的速度和里程的数据,通过LCD1602显示模块显示。当自行车行驶时,单片机开机经过初始化后读取并且显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。系统的软件总流程如下;基于光电传感器自行车里程表的软件设计包括上电初始化程序、中断子程序、速度调用子程序、里程调用子程序、LCD显示子程序、延时子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。4.1测量算法概述速度测量是工控系统中最基本的需求之一,最常用的是用数字脉冲测量某根轴的转速,再根据机械比、直径换算成线速度。脉冲测速最典型的方法有测频率(M法)和测周期(T法)。M法是测量单位时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有2个脉的误差。速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大,所以M法宜测量高速。如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时间,使用一次采集的脉冲数尽可能多。T法是测量两个脉冲之间的时间换算成周期,从而得到频率。因存在半个时间单位的问题,可能会有1个时间单位的误差。速度较高时,测得的周期较小,误差所占的比例变大,所以T法宜测量低速。如要增加速度测量的上限,可以减小编码器的脉冲数,或使用更小更精确的计时单位,使一次测量的时间值尽可能大。18光电式速度里程表设计设计中综合考虑测速精度和系统反应时间,本设计用测量脉冲频率来计算历程,因而具有较高的测距精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。首先我们把槽型光电传感器ST1101放在自行车的转轴上,当自行车启动时,接通电源后,光电二极管发光,通过和不通过转盘孔时,使三极管导通或截止,这种变化将会光电传感器产生脉冲电压。由于转盘共分为8个孔,转盘转动一圈将会改变8次。所以将会产生8个方波,既每输出8个方波代表自行车转动了一周。例如:我们的自行车车轮半径为0.25m时,计算得出车轮的周长为1.5m。由于每一圈光电传感器将输出8个脉冲,当自行车行驶1KM时会转动667次,这样每1千米将会产生5336个脉冲,单片机对这5336个脉冲计数,当达到这个数时单片机将会产生中断。通过单片机计算出来的速度和里程的数据,通过LCD1602显示模块直观显示。总里程数会自动保存到单片机的数据存储器,当自行车行驶,单片机开机经过初始化后显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。而速度的显示则是在计算出速度里程后立刻显示出来,体现实时性。4.2中断子程序的设计定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。定时/计数器控制寄存器TCON是8位寄存器,地址为88H,。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。中断子程序流程图如图4-1所示。19光电式速度里程表设计图4-1中断子程序流程图4.3数据处理子程序的设计待测信号经预处理电路后加至单片机的P3.2(INT0)引脚可为单片机测量信号周期提供有效的输入信号。单片机通过检测P3.2引脚电平来决定是否启动测量周期程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测周期。测量时首先将零赋给THO、TL0两个寄存器以将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0中断。然后再判断P3.2引脚是否还为低电平,如为低电平则等待,直到出现高电平再开始判断P3.2引脚是否为低电平,当其不是低电平时再等待。一旦出现低电平,则立即复位TR0终止定时器,以结束测周期程序。测周期过程中可能会发生定时器T0的中断,每发生一次中断则将R0寄存器加一,因此R0实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0三个寄存器中,然后将其转换成速度。速度是用车轮的周长除以脉冲周期得到的。20光电式速度里程表设计由于所测周期的单位是μs,因此在相除转换时应将被除数扩大10万倍,以保证得出正确的速度。4.3.1里程计算子程序外中断0服务程序用于对单片机P3.2口输入的圈脉冲进行计数,为十六进制计数器。当车轮每转一圈,通过光电传感器将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。其中阶段里程为本次行驶所走过的里程,总里程为自行车从开始使用当前行驶的总路程,两者处理程序大致相同,总里程为阶段里程的累加。将阶段里程自动与以前存储的总里程相加,再存入该存储器,当单片机断电后,阶段里程清零,当有重新开始时,单片机重新计数与计时。里程处理子程序流程图如图4-2所示。图4-2里程处理子程序流程图4.3.2速度计算子程序内部定时/计数器T0服务程序用于处理轮子转动一圈后的计时数据。定时器计出每转一圈所用的时间,用自行车车轮的周长除以时间就得出自行车的瞬时速度。阶段平均速度为阶段里程除以本次行驶的时间。下为瞬时速度处理子程序流程图:21光电式速度里程表设计图4-3速度处理子程序流程图4.4显示子程序的设计液晶显示是本设计的难点,为了让显示的内容更丰富,显示更合理,根据设计要求,里程表需要显示速度、里程、时间等。当接通电源或按Reset后,显示欢迎画面:DigitalBikeMeterWelcome….系统延时2秒后进入时钟设置画面:SetTime00:00:00依次按S1-S3调整时钟,S1设定时位,S2设定分位,S3设定秒位,待时间设定完成后按S4确认。接着进入自行车轮胎半径设置画面:SetBikeTireL=55cm按S1、S2调整轮胎直径后,按S4确认,里程表开始工作。22光电式速度里程表设计各项参数分成四屏选择显示,按动S5(Disp)按流程图所示进行切换。图4-4显示流程图阶段里程是指本次自行车所走过的路程,阶段平均速度为阶段里程与阶段时间的比值,软件编程的主要变量为:阶段行驶里程(m)、阶段时间、瞬时速度(m/s)、最大速度(m/s)、阶段平均速度(m/s)、总里程(km或m)。23光电式速度里程表设计5设计总结5.1实现目标与特点一.实现目标该课题的主要任务是开发一个以MCS-51单片机为核心的自行车的速度里程表。本设计主要分为硬件部分和软件部分,硬件部分着重考虑硬件电路的简单性,故尽可能简化硬件电路,节省线路板的空间,达到硬件电路最优化设计。软件采用C语言编写,采用模块化设计思想,程序可读性强。通过仿真、实验验证了系统的可行,能满足设计要求,达到设计的指标,实现对自行车里程/速度的计算功能,并用LCD显示,设脉冲总数为m,车轮周长为C,车轮转一周输出脉冲数为n,车轮行驶时转一圈的时间为T0,则里程(S)与速度(v)分别根据以下公式求得:S=m*C/nv=C/T0根据此公式将最终显示出里程和速度。通过仿真证明本次设计符合设计的要求,能实现对里程、速度的显示,功能性较强,具有一定的实践意义,将会在许多场合应用。但也有一些不足存在,当显示速度时,若自行车转动太快,显示器会显示过快,应该将速度定时显示,使人们能够清楚地看出速度。(1)实现了总里程的测量,并且里程当里程小于1KM时,数据的显示格式为000.0m,当里程大于1KM时,数据的显示格式为000.00KM,更便于数据的读取与测量。其中里程的值为当前行驶的里程。(2)实现了速度包括平均速度瞬时速度的测量,并规定最大速度为8m/s,当行驶速度超过该值时,报警器会发出报鸣声,提醒减速行驶。(3)实现了时钟的定时与当前时间的显示,使设计更合理。(4)发挥部分:可以显示最大加速度,在软件编程中实现。二.设计特点(1)利用红外传感器作信号采集单元,当车轮转动时,圆盘会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。其优点是测量精度高。(2)开关按键和指示灯设计,使方案更便于实践,设计更合理。(3)LCD液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富等特24光电式速度里程表设计点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。(4)测试数据全面,方案不仅能实现速度和里程的测量,还可以作为时钟使用,另外,当行驶超过一定的速度时,自行车会自动报警,提醒减速行驶。5.2结论及不足本设计以AT89C2051为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度,里程的计算及里程的累计,最后用液晶显示器直观地将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。存在的问题及不足:(1)通过T1计数时,单片机每读取一个脉冲至少需要3个机器周期的时间来完成。本系统采用的晶振为12MHz,所以一个机器周期Tcy=12/f=1us。若要使单片机准确读取外部脉冲,则脉冲的输入周期不能超过3us。如此可计算(转盘齿数为10),系统能测量的转速需低于:Vmax=60s/(3us*10)=6000000r/min。(2)当显示速度时,若自行车转动太快,显示器会显示过快,应该将速度定时显示,使人们能够清楚地看出速度。(4)测量的精度有待改善,当速度很慢时,输入的脉冲次数较少,用频率测量法则有很大的误差。综上所述,在测速过程中,虽然由于硬件的缘故,未能实现对高速的测量,但本装置结构简单、实用,在降低测速器成本,提高测速稳定性及可靠性等方面有一定价值,而且可以达到一般工业测速的测量标准,具有广泛的前景。25光电式速度里程表设计致谢在本次毕业设学生签名:日期:参考文献[1]王福瑞.单片微机测控系统设计大全[M].北京航空航天大学出版社,1999:4-9[2]邵群涛,徐余法.电机及拖动基础[M].机械工业出版社,2002:250-269[3]马西秦.自动检测技术[M].机械工业出版社,2001:210-230[4]徐丽萍.自行车测速仪[J].南京工业职业技术学院学报,2010[5]余永权,汪明慧,黄英.单片机在控制系统中的应用[M].电子工业出版社,2003[6]孙育才.ATMEL新型AT89S52系列单片机及其应用[M].清华大学出版社,2006:10-20[7]李刚,林凌.新概念单片机教程[M].天津大学出版社,2007[8]张毅刚.单片机原理及应用[M].高等教育出版社,2003:120-124[9]雷玉堂.光电检测技术(第2版)[M].中国计量出版社,2009:254-259[10]郭培源,付扬.光电检测技术与应用[M].北京航空航天大学出版,2006:221-224[11]WQYang.DMSpink,et.Animage-reconstuctionalgorithmbasedonLandweber’siterationmethodforelectrical-capacitancetomography.Meas.Sci.Technol.,1999,10:1065-1069[12]AtemlAT89S51Datasheets.website:26光电式速度里程表设计[13]杨路明.C语言程序设计[M].北京邮电大学出版社,2005:1-7[14]王为青,程国钢.单片机KeilCx51应用开发技术[M].人民邮电出版社,2007:31-38附录附录I系统电路原理图27#include<reg52.h>附录II设计源程序#defineucharunsignedchar光电式速度里程表设计28光电式速度里程表设计/****************************************************************引脚定义:P20=S1时钟设置时更改“时”,直径设置时更改十位P21=S2时钟设置时更改“分”的十位,直径设置时更改个位P22=S3时钟设置时更改“分”的个位P23=Enter确认更改设置P32=Disp正常工作时更改显示模式****************************************************************************/sbitP20=P2^0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP32=P3^2;sbitRS=P3^7;sbitRW=P3^6;sbitE=P3^5;sbitbusy=P0^7;/****************************************************************变量定义:i延时变量qsls圈数临时变量,用于判断里程显示选用m还是km作为单位qs圈数sj总行驶时间,单位为秒totallc总里程pjsd阶段平均速度ssji定时器T120ms中断次数,用于计算速度等sji本次速度对应的20ms中断次数29光电式速度里程表设计sjioldaa上次速度对应的20ms中断次数加速度sd2瞬时速度mxsd用于更新最大速度mxsd2最大速度对应的20ms次数tc轮胎周长*slinerowcomdatgwswbwqwwwswwssjcgwcswcbwcqwcwwcswwcww2MODEtr1tr2字符串显示子程序字符指针字符串显示子程序列数字符串显示子程序行数写控制字显示码字总里程、瞬时速度、总时间、最大速度、平均速度、阶段个位总里程、瞬时速度、总时间、最大速度、平均速度、阶段十位总里程、瞬时速度、总时间、最大速度、平均速度、阶段百位总里程、瞬时速度、总时间、最大速度、平均速度阶段千位总里程、总时间的万位总里程、总时间的十万位定时器T050ms中断次数,每20次sj加1当前时间(时钟)的个位当前时间(时钟)的十位当前时间(时钟)的百位当前时间(时钟)的千位当前时间(时钟)的万位当前时间(时钟)的十万位当前时间(时钟)的辅助万位显示模式轮胎设置变量1(十位)轮胎设置变量2(个位)30光电式速度里程表设计****************************************************************************/unsignedinti,qsls;unsignedlongqs,sj,totallc,pjsd,ssji,sji,sjiold,aa,sd2,mxsd,mxsd2,tc,A,B;uchar*s,line,row,com,dat,gw

温馨提示

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

评论

0/150

提交评论