已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南华大学毕业设计论文题目:装置设计自行车速度与里程表设计院 系: 学生姓名: 指导教师: 专 业: 班 级: 2017年 01月目 录摘 要IIIAbstractIV第一章 前 言51.1课题意义及背景51.2课题发展现状51.3研究内容及目标61.4研究方法及难点7第二章 总体方案设计82.1 常用里程表简介82.1.1机械式里程表82.1.2 基于能变磁阻式的传感器里程表82.1.3 基于霍尔效应式传感器里程表92.2总体方案分析及选择92.3总体方案确定102.3.1速度测量原理102.3.2总体方案概述10第三章 硬件电路设计113.1 单片机选择113.1.1 单片机简介113.1.2单片机选择123.2信号采集电路及传感器选择133.3供电电路设计143.4显示电路设计143.4.1 LCD液晶显示器143.4.2 显示接口电路设计163.5 报警电路设计173.6 整体硬件电路17第四章 控制程序设计及仿真194.1总体程序方案194.2 中断子程序的设计214.3 数据处理子程序的设计224.4 显示子程序的设计234.5程序清单244.6 protus仿真39第五章 总结41致谢42参 考 文 献43全套设计加扣 3012250582自行车速度与里程表设计摘 要本文介绍的速度与里程表设计以单片机最小系统和霍尔传感器为核心。传感器将不同的车速转变为不同频率的脉冲信号输录到单片机进行控制与计算,再采用1602模块进行显示,使得自行车的速度与里程数据直观的显示给使用者。本系统以 AT89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用LED实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。软件部分用汇编语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。本文先对里程表设计当中所需的设备作了详细的介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析,在此基础上进行了仿真。本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。 关键词:里程表 霍尔传感器 单片机 LED显示模块AbstractThis paper describes the design speed and odometer to SCM system and the smallest Holzer sensor as the core. The sensor pulse signal of different frequency input record to the MCU control and calculation for different speed change, then the 1602 display module, the speed and mileage of the bicycle data directly displayed to the user.This system uses AT89C52 microcontroller as the core, measuring speed sensor of A44E Holzer, the bicycle mileage / speed measurement and statistics, can save mileage information when the power is off, and the bicycle mileage and speed LED real-time display. This paper introduces the hardware circuit and software design of the bicycle speed odometer. Hardware part of the use of Holzer components will be the number of cycles per turn of the bicycle into the single-chip microcomputer system, and then the microcontroller system will signal processing to display. The software is programmed in assembly language, and the modular design is adopted. The hardware circuit of the system is simple, and the subroutine is universal.This paper first to design the odometers required equipment are introduced in this paper, the existing problems in design are described; then the design and implementation of hardware and software parts carefully analyzed, on the basis of the simulation.Odometer the design has the advantages of simple structure, low cost, clear display, stable and reliable.Keywords: Odometer hall sensor Singlechip LED display module IV第一章 前 言1.1课题意义及背景随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车。在中国自行车普遍作为代步工具。而在国外,自行车却是一项十分受欢迎的健身运动。因为它无污染,价位低廉,老少皆宜。而且在运动过程中可以充分享受到大自然,对于忙碌的现代人来说,无疑是一种较好的放松方法。在中国这种情况也在慢慢发生变化。因此爱好自行车运动的人需要一款里程表,以知道自己的运动情况。并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。1.2课题发展现状随着微型计算机可靠性提高和价格的下降用单片机测量电机转速已日趋普遍我们知道欲提高测量精度必须先测出准确的转速而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求必须采用数字测速的方法转速的测量方法很多根据脉冲计数来实现转速测量的方法主要有M法测频法T法测周期法和MPT法频率周期法该系统采用了M法测频法转速检测方式采用霍尔脉冲法测量转速有两种简单的方式本文采用频率法检测的是输入脉冲数这种方式又称频率法它测出一定时间内输入的脉冲的个数在控制系统中占有非常重要的地位对测速装置的要求是分辨能力强高精度和尽可能短的检测时间所设计的基于霍尔元件的脉冲发生器要求成本低构造简单性能好在电气控制系统中存在着较为恶劣的电磁环境因此要求产品本身要具有较强的抗干扰能力由于需要采用霍尔传感器的应用领域如汽车电机手机和电脑都已经采用了该器件而且这些市场在未来几年的增长较为稳定而其他一些新的应用市场又不足以与上述几个市场相比因此霍尔传感器在全球总的市场容量是较为稳定的每年的增长率保持在5到10之间因为各种应用电机的部件节气门位置的检测各种阀体位置的检测都会用到霍尔传感器而且在中国市场中国外厂商为了降低成本陆续将零部件拿到中国进行设计和生产这也进一步提升了中国市场霍尔传感器的应用量随着它在消费电子市场上的应用越来越广如何控制功耗和成本将是厂商面临的挑战而且它还面临生产测试技术方面的挑战 国内外现在都有生产销售类似的自行车测速仪里程表有些简单的产品就是单单只有测速或里程的功能比较复杂的产品除了测速和里程功能外还加入了GPS全球定位单词行车里程平均速度时钟行车时间车轮转数未来的发展趋势可能还加入MP3和短信收发功能使得自行车测速仪更加的人性化相信会受到更多人的青睐。转速传感器的类型有很多,因为霍尔传感器具有坚固、无触点、结构简单、长寿命、无火花、温度性能好、无自激振荡、体积小、抗污染能力强、可靠性高、耐冲击力强等优点,所以采用霍尔效应式传感器作为设计用转速传感器。该传感器是开关元件,直接输出脉冲频率信号,但是由于存在一些电磁噪声干扰,必须将信号采取过滤无用波以及矫正,提升信号波的精确度和抵抗干扰的能力。处理过的信号则转变成了所需要的方波型信号,然后经过单片机的输入采取能力就能准确的获得他脉冲所产生时间,为了控制单位运算以及提供转速和上截止点的基准信号。用霍尔元件做成的速度传感器,在车辆速度范围内信号的幅度变化不大。并且,还可以利用这些输出信号另有用途,如可以控制牵引力,对车辆的导航系统和发动机以及变速器进行管理等。霍尔传感器的好处还在于:信号的输出电压比较高,从而使用因为两端收到的腐蚀和电磁干扰等这些外接因素引起的问题不大;抗气体敏感度能力强,受质量和空气的影响较小等。1.3研究内容及目标本设计的任务是:以通用MCS-51单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过MCS-51的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LED显示器显示出来。本系统总体思路如下:假定轮圈的周长为L,在轮圈上安装m个永久磁铁,则测得的里程值最大误差为L/m。经综合分析,本设计中取m=1。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数n轮圈的周长为L的乘积为里程值。计数器T1计算每转一圈所用的时间t,就可以计算出即时速度v。当里程键按下时,里程指示灯亮,LED切换显示当前里程,与当速度键按下时,速度指示灯亮,LED切换显示当前速度,若自行车超速,系统发出报警信号,指示灯闪烁。预期目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。1.4研究方法及难点首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;其次,具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后,阐述该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后,进行仿真并对仿真结果进行具体说明与分析。据此,本文的重点如下:(1)所设计的自行车里程/速度计必须能够自动显示自行车行驶的总里程数及行车速度,而且里程数据能够自动记忆;(2)具有自行车超速发声报警提醒的功能;(3)设计任务必须能在proteus软件中调试实现,如有可能就做成实物。第二章 总体方案设计2.1 常用里程表简介传统的自行车里程表一般使用基于磁电传感器和单片机。磁电式转速传感器结构简单、成本低,但是存在以下缺点:一是其输出信号的幅值会随着转速的变化而变化。如果车速过快,其输出信号电压值过高,则会出现次脉冲,检测结果与真实转速不符;二是抗电磁波干扰能力较差。所以这种里程表受到磁电式传感器的影响,不能克服以上缺点。2.1.1机械式里程表机械里程表原理很简单,因为汽车车轮的直径已知,车轮的圆周长便是恒定不变的。由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了。这样简单的原理古人就已经发现,并且开始使用了。“记里鼓车”就是这样的装置,它是利用上述原理,再加上巧妙的机构使得车轮每转一定圈数就自动敲一下鼓,此时只要有专人把它记下了,就可以得到所走里程。汽车发动机的轴把动力传给变速箱,从变速箱的输出轴到车轮的传动比是不变的。在变速箱的输出轴上装有一根“软轴”,一直通到驾驶员面前的里程表里去。所谓“软轴”就是像自行车线闸用的拉线那样有钢丝芯的螺旋管,管壁和内芯之间有润滑油,外管固定而内芯可以转动,这个内芯的转速与车轮的转速有着恒定的比例关系。软轴通到车速表,使得指针能把车的行驶速度指示出来。同时,软轴旋转还经过蜗轮蜗杆传到车速表中间的滚轮计数器上,把车轮的转数所代表的里程数累计了下来,因为车速和里程都是靠同一根软轴传来的旋转动作驱动的,所以这两个表在一起,前者用指针指示,后者由滚轮计数器累计。机械电磁式的价格比较便宜,在目前用得仍然使用比较多,本设计要求电子显示历程和速度,很明显机械式里程表不满足本设计要求。2.1.2 基于能变磁阻式的传感器里程表能变磁阻式传感器也称电磁感应式传感器,会产生磁脉冲信号,该信号的产生是由于传感器内的转子的传动从而使磁通量的大小发生了变化从而使线圈中的感应电动势也改变了。基于这种里程表的优点则是价格低、形状小、不用外接电源就能产生交流信号、而且温度的稳定性高:不过不好的地方是转子在不转动的时候就没有信号的输出,信号跳动的范围取决于传感器里面转轴的旋转速度,需要专门的处理信号的电路,而且传感器内的气体空间必须要小于2mm。2.1.3 基于霍尔效应式传感器里程表霍尔效应式(Hall Effect)传感器所获得的电压信号,是因为传感器内转轴的传动令磁通量的大小发生了变化。转轴经过传感器中的霍尔器件和永磁铁,磁通量的改变与可变化磁阻式的传感器差不多,不过和可变磁阻式不一样的是霍尔器件所测量的是磁通量的大小而不是变化率。霍尔器件是用介于导体和绝缘之间的材料制成,需要偏置电流,此传感器随着作用于霍尔器件的磁场的磁通量的增大而增大。霍尔传感器使用了两极半导体做法,使变大、热量的补充以及信号的处理全部集中在一张芯片上。基于霍尔传感器里程表的优点则是:价格较便宜、形状小、能测出无转速、有着很好的线条;不过敝处是:温度承受力不高(要低于200),传感器的气体间隔要小于2.5mm,承压力较小。但对于自行车的工作环境,霍尔式里程表受温度极限、压力敏感方面的影响则较小。2.2总体方案分析及选择霍尔效应传感器里程表装置具有诸多优点,他们无减少了质量触点,结构坚固,质量轻,寿命长,安装方便,功耗小,耐振动。同时,装置当中的器件的耐温范围高。抗震能力强,而且传感器当中的磁场的存在不受介质的影响,所以霍尔器件能暴露在空气中,所以能在环境因素不太好的地方进行工作。另外此传感器的变换器能与处理信号的电路集成在同一个硅片上,体积较小,成本低,同时具有较好的抗电磁干扰性能。基于霍尔效应式转速传感器和单片机的里程表则能克服上述两个缺点。自行车工作环境较为恶略,震动性大,油污较多而霍尔传感器具有无触点、高寿命、高可靠性、无火花、无自激振荡、温度性好、抗污染能力强、结构简单、坚固、体积小、耐冲击等优点,确定以霍尔传感器的里程表作为本设计总体方案。2.3总体方案确定2.3.1速度测量原理 测量自行车的速度的原理有两种:测量一定时间间隔t,自行车车轮转过的圈数q。假设车轮周长为c,则速度V=c*q/t测量自行车车轮转过一圈的时间t,则速度V=c/t本里程表是根据第一个原理计算速度的。 2.3.2总体方案概述整个设计系统以单片机作为核心,有液晶1602显示、电源、霍尔传感器等器件组成。从霍尔传感器得到脉冲信号,经过信号的处理,转变成单片机能够接受到的信号,通过单片机的计算和控制,就可以实现车速和里程的显示。以实现车速、里程、时间的直观显示。如上所述,总体方案如下图所示:图2.1 总体方案框图第三章 硬件电路设计3.1 单片机选择3.1.1 单片机简介单片机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU(Central Processing Unit)、随机存储器RAM(Random Access Memory)、只读存储器ROM(Read-only Memory)、基本输入/输出(Input/Output)接口电路。定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机从而实现微型计算机的基本功能。单片机内部结构示意图如图所示。图3.1 单片机内部结构示意图1.中央处理器(CPU)中央处理器是单片机最核心的部分,主要完成运算和控制功能。2.内部存储器内部存储器包括内部数据存储器(内部RAM)和内部程序存储器。存储器是由大量的寄存器所组成,其中每一个寄存器就称为一个存储单元。3.定时/计数器单片机的定时器和计数器是同一结构,只是计数器记录的是单片机外部发生的事件,由单片机的外部电路提供计数信号;而定时器是由单片机内部提供一个非常稳定的计数信号。4.中断系统中断系统在计算机中起着十分重要的作用,是现代计算机系统中广泛采用的一种实时控制技术,能对突发事件进行及时处理,从而大大提高系统的实时性能。5.串行I/O接口串行I/O口的数据各位按顺序传输,其特点是需要一对传输线,成本低;但速度慢,效率低,适合静态显示。6.并行I/O接口并行I/O接口的数据所有位同时传送。其特点是传输速度快,效率高;但传送多少位就需要多少根传输线,因此传送成本高,适合动态显示。3.1.2单片机选择目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子与航空航天器电子系统以及单片机的多机系统等领域。在设计中选用的是AT89C52单片机。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。引脚如下图所示。图3.2AT89C52引脚图3.2信号采集电路及传感器选择当一块通有电流的金属或半导体薄片垂直地放在磁场中时,薄片的两端就会产生电位差,这种现象就称为霍尔效应。两端具有的电位差值称为霍尔电势U,其表达式为 U=KIB/d,其中K为霍尔系数,I为薄片中通过的电流,B为外加磁场的磁感应强度,d是薄片的厚度,由此可见,霍尔效应的灵敏度高低与外加磁场的磁感应强度成正比的关系。而利用霍尔效应制成的元件叫做霍尔元件,霍尔元件接线图如下图所示。图3.3接线图霍尔传感器检测转速示意图如下图3-2示。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲,通过单片机测量产生脉冲的频率就可以得出圆盘的转速。 图3.4测速原理图综上所述,采用A44E集成霍尔传感器作为本设计传感器,A44E集成霍尔开关由稳压器A、霍尔电势发生器(即硅霍尔片)B、差分放大器 C、施密特触发器D和OC门输出E五个基本部分组成,如图3.2(a)所示。(1)、(2)、(3)代表集成霍尔开关的三个引出端点。在电源端加电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。接线电路如下图所示。图3.5 集成霍尔开关接线图3.3供电电路设计采集电路及单片机需要5V供电,蓄电池供电为12V故而采用如下图6.15所示7805稳压电路,12V接到7805的输入端正极,负极接地共用,7805输电容接在输出端与地之间,其最小为,输入电容大于输出电容,这样即可输出比较稳定的5V电源。图3.6 电源电路设计3.4显示电路设计3.4.1 LCD液晶显示器功能简介:其液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的代码。LCD1602以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。外形尺寸(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脚接口,其管脚定义如下:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光电源接5V正电压。第16脚:背光电源接地。1602的读写操作、屏幕和光标的操作都是通过指令编程来实现的。液晶模块内部的控制器共有11条控制指令,其指令具体功能介绍如下:指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与LED数码管相比,液晶显示器的显示效果相对较好,液晶显示器显示不仅直观,而且界面具有人机交互美观的特点。而且具有低功耗,容易控制,占用CPU资源少这些优点,从而成为一些显示器的首选。3.4.2 显示接口电路设计1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。 以下是1602的16进制ASCII码表地址: 读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。 图3.71602接口电路设计3.5 报警电路设计本次报警电路采用蜂鸣器报警,当即时速度超过预定值是蜂鸣器响,指示灯闪烁,提示应该减速,其供电可采用7805供电模块的5V供电。报警电路图如图所示。图3.8 报警电路图3.6 整体硬件电路综上所完成以上各电路设计之后得到如下所示整体电路图。图3.9 整体电路图第四章 控制程序设计及仿真4.1总体程序方案本设计是基于霍尔传感器自行车的速度里程表的软件设计包括上电初始化程序、中断子程序、速度调用子程序、里程调用子程序、LED显示子程序、延时子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操作。P1.0和P1.1口分别用于显示里程状态和速度状态。P1.2、P1.3、P1.6和P1.7口分别用于设置轮圈的大小,低电平有效。P3.0是用于里程和速度切换的,低电平为显示速度,高电平为显示里程。中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的内容计算和判断出行驶里程数。中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器T1的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。其程序流程如图4.1所示。调用速度处理子程序开始初始化P1.2=1?P1.3=1?P1.6=1?NNNYYYP1.7=1?提示出错将车圈周长调入21H开中断,启动定时器P3.0=1?调用里程处理子程序YNYN图4.1 控制流程图4.2 中断子程序的设计定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。关中断开始现场保护开中断中断处理关中断现场恢复开中断中断返回定时/计数器控制寄存器TCON是8位寄存器,地址为88H,可以位寻址。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。中断子程序流程图如图4.2所示。 图4.2中断子程序流程图4.3 数据处理子程序的设计1. 里程计算子程序点亮里程指示灯开始将车圈数转换成里程显示里程值返回外中断0服务程序用于对单片机P3.2口输入的圈脉冲进行计数,为十六进制计数器。60H为低位,62H为高位。每次计数一次后,对里程数据进行一次存储操作。当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。里程处理子程序流程图如图4.3所示。 图4.3 里程处理子程序流程图2.速度计算子程序外中断1服务程序用于处理轮子转动一圈后的计时数据。当标志位(00H)为1时,计数溢出,放入最大时间值(为#0FFH);当标志位为0时,将计数单元(TL1、TH1、6CH、6DH)的值放入68H6BH单元。定时器计出每转一圈所用的时间,用自行车车轮的周长除以时间就得出自行车的速度。开始开速度指示灯计算速度报警显示速度NY是否超速?返回 图4.4 速度处理子程序流程图4.4 显示子程序的设计采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。本设计P2.0、P2.1、P2.2、P2.3信号一起组成位选通的位选信号,P0.0P0.7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个LED,逐步完成四个LED的显示。 开始显示单元首址取显示数据送段码到P0口取段码表首址调用延时送位选到P2口4位显示结束返回YN修改显示单元地址求下一位位选码图4.5 显示子程序流程图4.5程序清单#include#define uchar unsigned char#define uint unsigned int#include Data.h#include DS1302.h#include AT24C02.hsbit COUNT_IN=P32;/定义1602相关管脚sbit rs=P14;sbit en=P10;/键盘定义sbit K1=P34;/设置时间sbit K3=P36;/减按键sbit K2=P35;/加按键sbit K4=P37;/设置半径安全距离sbit BEEP=P30;uint count;unsigned long Velocity,Mileage;uchar code tab1= / / : ; /14/09/10 16:34 3 uchar code tab2= 0.000km 00km/h;/000.000km 00km/huchar code tab3=Wheel Radius cm;uchar code tab4=Safe Speed km/h;uchar code tab5=Sec : ; uchar Mode=0;uchar bike_set=0;uchar a;char RADIUS,SAFE_SPEED;bit LED_SEC;uchar before_sec;/自定义字符uchar code num=0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/1 0x1f,0x01,0x01,0x1f,0x10,0x10,0x1f,0x00,/20x1f,0x01,0x01,0x1f,0x01,0x01,0x1f,0x00,/3 0x11,0x11,0x11,0x1f,0x01,0x01,0x01,0x00,/40x1f,0x10,0x10,0x1f,0x01,0x01,0x1f,0x00,/5 0x1f,0x10,0x10,0x1f,0x11,0x11,0x1f,0x00,/60x1f,0x01,0x01,0x01,0x01,0x01,0x01,0x00,/7 ;void READS();void SETS();void delay(uint x)uint i,j;for(i=0;ix;i+)for(j=0;j110;j+);void init()IT0=1;/INT0负跳变触发 TMOD=0x01;/定时器工作于方式1TH0=0x3c; /50msTL0=0xb0;EA=1; /CPU开中断总允许ET0=1;/开定时中断EX0=1;/开外部INTO中断 TR0=1;/启动定时/*液晶写入指令函数与写入数据函数,以后可调用*/void write_1602com(uchar com)/*液晶写入指令函数*rs=0;/数据/指令选择置为指令P0=com;/送入数据delay(1);en=1;/拉高使能端,为制造有效的下降沿做准备delay(1);en=0;/en由高变低,产生下降沿,液晶执行命令void write_1602dat(uchar dat)/*液晶写入数据函数*rs=1;/数据/指令选择置为数据P0=dat;/送入数据delay(1);en=1; /en置高电平,为制造下降沿做准备delay(1);en=0; /en由高变低,产生下降沿,液晶执行命令/自定义字符集void Lcd_ram() uint i,j,k=0,temp=0x40; for(i=0;i7;i+) for(j=0;j8;j+) write_1602com(temp+j); write_1602dat(numk); k+; temp=temp+8;void lcd_init()/*液晶初始化函数*Lcd_ram();write_1602com(0x38);/设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据write_1602com(0x0c);/开显示不显示光标write_1602com(0x06);/整屏不移动,光标自动右移write_1602com(0x01);/清显示write_1602com(0x80);/显示固定符号从第一行第1个位置之后开始显示for(a=0;a16;a+)write_1602dat(tab1a);/向液晶屏写固定符号部分write_1602com(0x80+0x40);/显示固定符号写入位置,从第2个位置后开始显示for(a=0;a16;a+)write_1602dat(tab2a);/写显示固定符号void display()/1km/h=100m/0.1h 360s/10km/h=100m/0.01h 36s/100km/h=100m/0.001h 3.6sif(Mode=0&bike_set=0)/读时间Ds1302_Read_Time();/显示时间write_1602com(0x80);write_1602dat(0x30+time_buf11/10);write_1602dat(0x30+time_buf11%10);write_1602com(0x80+3);write_1602dat(0x30+time_buf12/10);write_1602dat(0x30+time_buf12%10);write_1602com(0x80+6);write_1602dat(0x30+time_buf13/10);write_1602dat(0x30+time_buf13%10);write_1602com(0x80+9);write_1602dat(0x30+time_buf14/10);write_1602dat(0x30+time_buf14%10);write_1602com(0x80+12);write_1602dat(0x30+time_buf15/10);write_1602dat(0x30+time_buf15%10);write_1602com(0x80+15);write_1602dat(time_buf17-1);if(before_sec!=time_buf16)before_sec=time_buf16;write_1602com(0x80+11);write_1602dat(:);LED_SEC=1;if(LED_SEC=0)write_1602com(0x80+11);write_1602dat( );write_1602com(0x80+0x40);if(Mileage/1000000=0)write_1602dat( );elsewrite_1602dat(0x30+Mileage/1000000);/数字+0x30得到该数字的LCD1602显示码if(Mileage%1000000/100000=0)write_1602dat( );elsewrite_1602dat(0x30+Mileage%1000000/100000);/数字+0x30得到该数字的LCD1602显示码write_1602dat(0x30+Mileage%1000000%100000/10000);/数字+0x30得到该数字的LCD1602显示码 write_1602com(0x80+0x40+4);write_1602dat(0x30+Mileage%1000000%100000%10000/1000);/数字+30得到该数字的LCD1602显示码write_1602dat(0x30+Mileage%1000000%100000%10000%1000/100);/数字+30得到该数字的LCD1602显示码write_1602dat(0x30+Mileage%1000000%100000%10000%1000%100/10);/数字+30得到该数字的LCD1602显示码SETS();write_1602com(0x80+0x40+10);write_1602dat(0x30+Velocity/10);write_1602dat(0x30+Velocity%10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南住院医师-河南住院医师儿科历年参考题库含答案解析
- 2026年江苏住院医师-江苏住院医师中医全科历年参考题库含答案解析
- 2026年材料能源行业技能考试-城镇天然气操作工考试历年参考题库含答案解析
- 2026年机械制造行业技能考试-制齿工历年参考题库含答案解析
- 土壤采样岗位操作规程
- 高中化学教资学科知识笔试真题解析
- 心肌损伤标志物临床应用中国专家共识(2026版)
- 海洋保护地巡护监测工作规程
- 剧组租用酒店合作合同范本
- 医院工作劳务派遣合同范本
- 中国银行培训员工制度
- 镇海区国资系统招聘笔试题库2026
- 蒸汽锅炉安全培训教育课件
- 检验工作台管理制度规范
- 心内科实习生入科宣教
- 养鸡场转让合同范本
- 产业路施工方案
- 电子秤用电培训试题及答案
- 《福建省城市轨道交通工程工程量清单计量规则(2024版)》
- 2025届贵州省金太阳高三下学期10月联考-数学试题(含答案)
- 围棋教学课件下载
评论
0/150
提交评论