《光电式自行车速度里程表设计论文.doc》由会员分享,可在线阅读,更多相关《光电式自行车速度里程表设计论文.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 . 光电式自行车速度里程表设计摘要随着科技的迅速发展,单片机的应用也越来越广泛,并带动传统控制检测技术不断更新。现在的里程表大多是电子式的,用数码管或液晶显示器即时显示,显示更加直观。电子式里程表采用接触车速传感器代替软轴传动,可使里程表的安装位置不受距离限制,进一步有效地克服了机械式里程表中的诸多不足。方案采用了一种以单片机AT89C51为主控机,使用光电传感器进行自行车里程、速度测量的装置。传感器将不同车速产生的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD液晶显示模块进行显示,使得自行车的速度与里程数据能直观的显示给使用者。本设计主要包括自行车轮脉冲采集、键盘输入和数据显示
2、等部分,主程序用C语言编写,完成各项功能与数据的处理。本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。并且可以进行扩充,更方便于使用者。关键词 光电传感器 单片机 液晶显示器 里程表 THE DESIGN OF PHOTOELECTRICBICYCLE ODOMETERABSTRACTWith the rapid development of technology, more and more widespread application of microcomputer, promote the traditional control detection technology
3、 constantly updated. Most of the current electronic odometer, and with the LED digital tube or LCD display real-time, display more intuitive. Electronic odometer flexible shaft using the contact speed sensor instead of driving, mileage tables can be installed without distance limitations, and furthe
4、r to effectively overcome the mechanical disadvantages of mileage in the table. The plan adopts the system and configuration of combining the microcontroller AT89C51 as the main control computer ,using the photoelectric sensorbicycle odometer, speed measuring devices. when Different speed pulse sign
5、als of different frequencies produced by sensor are input into the microcontroller,after its calculation, liquid crystal will display the datas, making the bikes speed and distance data visually to the user. The design includes a bike wheel pulse acquisition, keyboard input and data display section,
6、 the main program using C language, This paper first needed to milestones design of equipment in detail, on theproblems existing in the design, explained And then to hardware and software design and implementation of the part made earnest analysis, Then presented system modeling process and the corr
7、esponding system based on this model, the control simulation, and the simulation results are compared. KEY WORDSodometerphotoelectric sensor MCU LCD 49 / 54目 录摘要IABSTRACTII1绪论11.1问题由来11.2课题现状11.3设计任务22系统原理概述32.1系统原理总概述32.2系统硬件组成原理32.3软件系统工作流程43 系统硬件设计53.1采集信息部分以与传感器的选择53.2轮脉冲检测与转换电路63.2.1. 轮脉冲检测73.2
8、.2. 信号预处理电路73.3 单片机系统部分93.3.1 AT89C51单片机介绍93.3.2定时/计数器的结构与控制93.3.3中断控制113.4单片机外围电路介绍113.4.1复位电路113.4.2晶振电路123.5显示部分133.5.1 LCD液晶显示器133.5.2 显示接口电路设计153.6报警电路173.7键盘控制174软件设计184.1测量算法概述184.2中断子程序的设计194.3 数据处理子程序的设计204.3.1里程计算子程序214.3.2.速度计算子程序214.4显示子程序的设计225设计总结235.1实现目标与特点245.2 结论与不足25致26参考文献27附录28附
9、录I 系统电路原理图28附录II 设计源程序291 绪论1.1 问题由来我国是人口大国,也是自行车大国,随着生活节奏的不断加快,自行车已经不仅仅是运输、代步的工具,现在则是代表着绿色、环保、节能。因此其辅助功能也变得越来越重要。而且人们希望自行车的娱乐、休闲、锻炼的功能越来越多,能带来大家更多的健康与快乐。在这个背景下,自行车里程表作为自行车的一大辅助工具迅速发展起来。科学、美观、合理设计自行车里程表有一定的实用价值.它能合理计算出速度与公里数,使运动者运动适量,达到健康运动与代步的最佳效果。并且随着人们生活水平的逐渐提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。自行车在中国普遍
10、作为代步工具。而在国外,自行车却是一项十分受欢迎的健身运动。因为它无污染,价位低廉,老少皆宜。而且在运动过程中可以充分享受到大自然,对于忙碌的现代人来说,无疑是一种较好的放松方法。在中国这种情况也在慢慢发生变化。因此爱好自行车运动的人需要一款里程表,以知道自己的运动情况。并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。而对于自行车运动员来说,最为关心的莫过于一段时间的训练效果。因为教练要根据一段时间运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。因此需要一种装置进行对训练中各种参数的测定记录。1.2课题现状传统的机械式车速表是由旋转磁场作用于转动盘,使
11、转动盘连同车速表指针发生同向的偏转。当电磁转矩与弹簧产生的阻力矩平衡时,指针偏转停留在某一角度上。指针偏转角与车速成正比,因而可用其表示车速。机械式车速表的缺陷是明显的。由于表盘指针偏转程度正比于软轴的转动时产生的磁力,当转速较低的时候,磁力较小,随转速变化波动较大。因此,低速时车速表指针摆动剧烈、测量与显示精度不高。对于发动机后置的车辆,要将车速表指针的偏转动力由变速箱经软轴等传至驾驶室,软轴必然布置的较长,如何将这种长长的转动软轴从结构上布置妥当,肯定是一件十分困难的事情。现在的车速表大多是电子式的,用LED数码管或LCD显示,使速度显示更加直观。采用接触车速传感器代替软轴传动,可使车速表
12、的安装位置不受距离限制,有效地克服了机械式车速表中的诸多不足。电子式车速表更加智能,车速表的功能也更加人性化,如加上了里程累计、超速提醒等功能。本设计就是针对骑自行车的人们在行进中不能很好的把握自己达到了多大的速度,行驶了多远的距离而设计的。以往的里程表只能进行测量速度,里程,时间,温度等数据,虽然能实现很多的功能,但是其中的一些功能不适合自行车业余爱好者,浪费资源,而且性价比也低,而且也不能很好的把握当前运动量,从而不能很好的实现娱乐和锻炼的效果。而本设计却能实现娱乐和锻炼的双重效果,而且相对业余爱好者性价比更高。1.3设计任务本设计要以单片机为核心,通过光电传感器来检测自行车的运转情况进而
13、实现电动自行车的速度的测量,最后用液晶显示器直观地将速度与里程显示出来,并且在速度高于一定的值时可自动向用户报警,从而达到智能化的目的。主要设计容:1.传感器电路模块设计2.单片机外围电路设计3.报警电路设计4.显示电路设计2系统原理概述2.1系统原理总概述本系统由信号预处理电路、单片机AT89C2051、LCD显示模块、开关按键,报警模块和系统软件组成。其号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使部定时器T1对脉冲输入引脚T0进行控制,这样能精
14、确地算出加到T0引脚的单位时间检测到的脉冲数。本设计中,计数的正确性决定了本装置的精度,如何在复杂的环境中得到正确的计数脉冲,是本设计的重点,设计中里程表显示采用LCD1602液晶模块,用液晶显示器显示是本设计的难点。并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。2.2 系统硬件组成原理系统硬件由信号预处理电路、单片机AT89C2051、系统化LCD显示模块、开关按键,报警模块组成,系统的硬件组成框图如下:图2-1 系统总体设计框图由于不同速度发出不同频率的脉冲,通过光电传感器检测出不同状态的脉冲信号,而一般的模拟信号都是微弱的,所以要把它放大,这就需要一个放大器。另外单片
15、机能识别的都是TTL信号,经波形变换和波形整形电路方能将放大的信号转换成可与单片机相连的形式。当行驶达到一定的车速时,会发出报警声。不同的按键方式,液晶显示器会显示不同的数据。2.3软件系统工作流程在硬件设计完毕之后,接下来就是设计中最核心和最为主要的软件部分设计。所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题。所以说,
16、在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。图2-2 系统软件流程图3系统硬件设计本设计采用的是以红外传感器ST1101为传感器,以AT89C51作为系统的主控芯片,以LCD1602、128*16液晶显示器进行显示。图3-1 系统硬件框图3.1采集信息部分以与传感器的选择信息采集部分可以选用的传感器种类一很多,例如磁感应传感器,光电感应传感器,金属传感器等。霍尔传感器由永久磁铁和开关型霍尔集成电路组成。霍尔集成电路由霍尔元件、放大器、整形电路与集电极开路输出等部分组成,其功能是把磁信号转换成电信号,霍尔元件为磁敏元件,当垂直于霍尔元件的磁场强度发生变化时,其两端的电压就会发生变化
17、,经放大和整形即可输出脉冲电信号。光电编码器的工作原理与光电传感器一样,不过它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器的轴与转轴相连,就能获得多种输出信号。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度的装置和设备中。如图3-2所示,是某光电编码器的外形。光电传感器是应用非常广泛的一种器件,各种各样的形式,如透射式、反射式等,基本原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图3-1所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此可以制作一个遮光叶片如图3-3所示,安装在转轴上,
18、当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。而考虑到实际可操作性以与设计要求方面,本设计选用的传感器为光电传感器。图3-2光电传感器的原理图图3-3 遮光叶片将光敏电阻安装在自行车前又的一侧,在同等高度的另一侧安上一个高亮度的发光二极管。在同等高度的辐条上贴上一圈黑色材料,并在黑色材料上打上等间距的小孔,这样当小孔经过光敏电阻时,光敏电阻根据光电流的变化发出脉冲, 从而测量里程。红外光电传感器ST1101采用高输出的红外光电二极管与高灵敏度光敏晶其特点是性能可靠,体积小,结构简单,广泛应用于里程表。表3-1 主要参数输入正向电流IF50mA反向电压Vr6v耗散功率
19、P75mW输出集-射电压Vceo25V射-集电压Veco6V集电极功耗Pc50mWST1101外围电路如图3-4所示,R1、R2均为限流电阻,限制发射二极管的电流,发射二极管的电流大则发射功率大,但不能超过它的极限电流。根据主要参数表,它的极限电流为50mA,当两者之间有孔时,三极管导通,当两者被隔离时,三极管截止。图3-4 传感器外围电路3.2轮脉冲检测与转换电路本设计采用了ST1101红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。然后通过带施密特触发器的反相器D
20、M74LS14 来把放大器生成的单相脉冲转换成与COMS 电平相兼容的方波信号,再输入给单片机。3.2.1 轮脉冲检测该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘,在这个铝盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。铝盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以在单位时间尽可能多地得到脉冲数从而避免了因为两个过孔之间的距离过大,而车子正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差
21、。本设计在铝盘过孔的设计上采用9个过孔,从而留下了8个同等的间距这样在以后的软件设计中能够较为方便的计算出速度里程。脉冲发生源的硬件结构图如图3-5所示。图3-5 脉冲发生源硬件结构图(左为正视图,右为侧视图)3.2.2信号预处理电路如图3-6所示,系统的信号预处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低
22、了对待测信号的幅度要求,因此,系统能对任意大于0.5V 的正弦波和脉冲信号进行测量。其中电阻R3为输入电阻,R4为输出电阻。预处理电路的第二级采用带施密特触发器的反相器DM74LS14 来把放大器生成的单相脉冲转换成与COMS 电平相兼容的方波信号(如图3-7所示),同时将输出信号加到单片机的P3.2口上。利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时,波形的上升沿将明显变坏;当传输线
23、较长,而且接受端的阻抗与传输线的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号时,信号上将出现附加的噪声。无论出现上述的那一种情况,都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的VT+ 和VT- 设置得合适,均能受到满意的整形效果。图3-6信号预处理电路图图图3-7信号处理波形图3.3单片机系统部分3.3.1AT89C51单片机介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memo
24、ry)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3-8 AT89C51引脚图3.3.2定时/计数器的结构与控制定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止与设置溢出标志。定时/计数器结构如图3-9所示:
25、图3-9 定时/计数器结构图AT89S52单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请9。1.工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如表3-2:表3-2 位号D7D6D5D4D3D2D1D0符号GATEC/TM1M0GATEC/TM1M0GATE:门控位。GATE0时,以运行控制位TRX(X=0,1)来启动定时/计数器运行;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作;C/T计数器模式和定时器模式选
26、择位C/T=1时,选择计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲计数;C/T=0时,选择定时器模式。M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。表3-3M1 M0 工作方式功能0 0工作方式013位计数器0 1工作方式116位计数器1 0工作方式2自动再装入8位计数器 1 1工作方式3定时器0:分成两个8位计数器定时器1:停止计数2.控制寄存器TCON TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:表3-4位D7D6D5D4D3D2D1D0字节地址:88HTF1T
27、R1TF0TR0IE1IT1IE0IT0TF1(TCON.7):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
28、 中断控制CPU对中断系统所有中断以与某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。表3-5位76543210字节地址:88HEAESET1EX1ET0EX0IEEX0(IE.0),外部中断0允许位;ET0(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提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0
29、000H地址单元开始执行程序。在89C51的时钟电路工作后,只要在RST引脚上出现两个机器周期以上的高电平时,单片机部则初始复位。只要RST保持高电平,则89C51循环复位。只有当RST由高电平变成低电平以后,89C51才从0000H地址开始执行程序。复位电路通常采用上电自动复位和按钮复位两种方式。本系统的复位电路是采用按键复位的电路,如图3-10所示,是常用复位电路之一。单片机复位通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RESET端,该高电平使89C51全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮即可。按下按钮
30、,则直接把+5V加到了RESET端从而复位称为手动复位。复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零 。图3-10 AT89C51复位电路按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。时钟频率选用6MHZ时,C取22uF,Rs取200,RK取1K。3.4.2晶振电路晶振电路由晶振和两个负载电容组成。晶振电路部分电路连接如图3-11所示。图3-11晶振电路晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度。比如此系统所用的12MHz晶振,单片机工作速度就是每秒12M。在调试时要注意将PC串口波特率设为1200。至于两个
31、电容的大小,它是根据晶振厂家提供的晶振要求选值的,换句话说,晶振的频率就是在它提供负载电容下测得,能最大限度的保证频率值误差。两个电容取值都是一样的,大部分在20-30pF,没有一样电容的情况下,可以用两个相差不大电容代替,但不能相差太大,容易造成谐振不平衡,容易造成停振或者干脆不起振。晶振电路在本系统中是并联方式,连接在AT89c51的XTAL1和XTAL2引脚。3.5显示部分3.5.1 LCD液晶显示器功能简介:其液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的代码。LCD1602以其微功耗、体积小、显示容丰富、超薄轻巧的诸多优点,在袖
32、珍式仪表和低功耗应用系统中得到越来越广泛的应用。外形尺寸(LxWxH) 80.0x36x12.0视域尺寸(WxHxT) 64.5x13.8驱动电压(V) 5.0V or 3.3V工作温度:(oC) 050 or -2070存储温度:(oC) -1060 or -3080显示类型: STN or FSTN颜色: 蓝色(带背光)生产工艺: SMT其主要技术参数为:显示容量:4.55.5V;工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WXH)mm1602采用标准的16脚接口,其管脚定义如下:图3-12LCD1602实物图第1脚:VSS为地电源。第2脚:VDD
33、接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光电源接5V正电压。第16脚:背光电
34、源接地。1602的读写操作、屏幕和光标的操作都是通过指令编程来实现的。液晶模块部的控制器共有11条控制指令,其指令具体功能介绍如下:指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时
35、移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与LED数码管相比,液晶显示器的显示效果相对较好,液晶显示器显示不仅直观,而且界面具有人机交互美观的特点。而且具有低功耗,容易控制,占用CPU资源少这些优点,从而成为一些显示器的
36、首选。3.5.2显示接口电路设计1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。 以下是1602的16进制ASCII码表地址: 读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的AS
37、CII为0x42(前面加0x表示十六进制)。指令集 1602通过D0D7的8位数据端传输数据和指令。 显示模式设置: (初始化) 0011 0000 0x38 设置162显示,57点阵,8位数据接口; 显示开关与光标设置: (初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写一个字符后,整屏显示左移) S=0 当写一个字符后,整屏显示不移动 数据指针设置: 数据首地址为80H,所以数据地址为80H+地
38、址码(0-27H,40-67H) 其他设置: 01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。LCD显示与单片机连接电路图如图3-13;图3-13液晶原理图3.6报警电路本次报警电路采用蜂鸣器报警,当即时速度超过预定值是蜂鸣器响,指示灯闪烁,提示应该减速。报警电路图如图3-14所示。图3-14报警电路图3.7键盘控制键盘是实现人机对话的重要工具,用户可用计算机向计算机输入数据和指令,本系统采用独立键盘接口,独立式按键是指直接用I/O口线构成单个的按键电路。每一个独立式按键单独占用一根I/O口线。独立式按键接口电路配置灵活,软件结构简单。但每个按键都需要占用一根
39、I/O口线,适用于按键数量少的键盘。电路中,按键输入低电平有效。按键未按时有上拉电阻保证此时输入为高电平。按键接口电路如图:图3-15按键接口图4 软件设计待测信号经预处理电路后加至单片机的P3.2引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测P3.2引脚电平来决定是否启动测量频率程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出 现低电平时才开始测频率。我们可从硬件的转盘上知道两个过孔之间在圆周上的距离。而这个距离M正好为计算速度和距离起到了基本的数据储备作用。同时可以从TL0寄存器知道在两秒单片机检测到的N个脉冲。而MN所得到的正是这两秒铝盘在圆周上所走得距离S。(
40、此时假设在这个 两秒车子是匀速前进的),距离S除以2秒的时间,就可以大概的算出这2秒铝盘的线速度。再根据铝盘与自行车的轮子保持着一样的角速度,得到铝盘的线速度与轮子线速度的关系,从而算出自行车在这2秒的平均速度。至于里程的计算,根据速度计算的相加即可得到目前的总里程数。通过单片机计算出来的速度和里程的数据,通过LCD1602显示模块显示。当自行车 行驶时,单片机开机经过初始化后读取并且显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。系统的软件总流程如下;基于光电传感器自行车里程表的软件设计包括上电初始化程序、中断子程序、速度调用子程序、里程调用子程序、LCD显示子程序、延时
41、子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。4.1 测量算法概述速度测量是工控系统中最基本的需求之一,最常用的是用数字脉冲测量某根轴的转速,再根据机械比、直径换算成线速度。脉冲测速最典型的方法有测频率(M法)和测周期(T法)。M法是测量单位时间的脉数换算成频率,因存在测量时间首尾的半个脉冲问题,可能会有2个脉的误差。速度较低时,因测量时间的脉冲数变少,误差所占的比例会变大,所以M法宜测量高速。如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时间,使用一次采集的脉冲数尽可能多。T法是测量两个脉冲之间的时间换算成周期,从而得到频率。因存在半个时
42、间单位的问题,可能会有1个时间单位的误差。速度较高时,测得的周期较小,误差所占的比例变大,所以T法宜测量低速。如要增加速度测量的上限,可以减小编码器的脉冲数,或使用更小更精确的计时单位,使一次测量的时间值尽可能大。设计中综合考虑测速精度和系统反应时间,本设计用测量脉冲频率来计算历程,因而具有较高的测距精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。首先我们把槽型光电传感器ST1101放在自行车的转轴上,当自行车启动时,接通电源后,光电二极管发光,通过和不通过转盘孔时,使三极管导通或截止,这种变化
43、将会光电传感器产生脉冲电压。由于转盘共分为8个孔,转盘转动一圈将会改变8次。所以将会产生8个方波,既每输出8个方波代表自行车转动了一周。例如:我们的自行车车轮半径为0.25m时,计算得出车轮的周长为1.5m。由于每一圈光电传感器将输出8个脉冲,当自行车行驶1KM时会转动667次,这样每1千米将会产生5336个脉冲,单片机对这5336个脉冲计数,当达到这个数时单片机将会产生中断。通过单片机计算出来的速度和里程的数据,通过LCD1602显示模块直观显示。总里程数会自动保存到单片机的数据存储器,当自行车行驶,单片机开机经过初始化后显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。而
44、速度的显示则是在计算出速度里程后立刻显示出来,体现实时性。4.2 中断子程序的设计定时中断是为满足定时或计数的需要而设置的。在单片机部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请在单片机芯片部发生的,因此无须在芯片上设置引入端。定时/计数器控制寄存器TCON是8位寄存器,地址为88H,。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。中
45、断子程序流程图如图4-1所示。图4-1中断子程序流程图4.3 数据处理子程序的设计待测信号经预处理电路后加至单片机的P3. 2( INT0) 引脚可为单片机测量信号周期提供有效的输入信号。单片机通过检测P3.2引脚电平来决定是否启动测量周期程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测周期。测量时首先将零赋给THO、TL0 两个寄存器以将定时器T0 的运行控制位TR0 置位,同时也将ET0 置位以允许定时器T0 中断。然后再判断P3. 2 引脚是否还为低电平,如为低电平则等待,直到出现高电平再开始判断P3. 2 引脚是否为低电平,当其不是低电平时再等待。一旦出现
46、低电平,则立即复位TR0终止定时器,以结束测周期程序。测周期过程中可能会发生定时器T0 的中断,每发生一次中断则将R0 寄存器加一,因此R0 实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0 三个寄存器中,然后将其转换成速度。速度是用车轮的周长除以脉冲周期得到的。由于所测周期的单位是s,因此在相除转换时应将被除数扩大10万倍,以保证得出正确的速度。4.3.1里程计算子程序外中断0服务程序用于对单片机P3.2口输入的圈脉冲进行计数,为十六进制计数器。当车轮每转一圈,通过光电传感器将脉冲数输入单片机,通过计数器计出脉冲数,再用乘法子程序算出里程数。其中阶段里程为本次行驶所走过的里程,总里程为自行车从开始使用当前行驶的总路程,两者处理程序大致一样,总里程为阶段里程的累加。将阶段里程自动与以前存储的总里程相加,再存入该存储器,当单片机断电后,阶段里程清零,当有重新开始时,单片机重新计数与计时。里程处理子程序流程图如图4-2所示。图4-2 里程处理子程序流程图4.3.2速度计算子程序部定时/计数器T0服务程序用于处理轮子转动一圈后的计时数据。定时器计出每转一圈所用的时间,用自行车车轮的周长除以时间就得出自行车的瞬时速度。