节能车竞赛车(HLJIT-3A型)电器系统设计说明书.doc

节能车竞赛车(HLJIT-3A型)电器系统设计【1张CAD图纸】【汽车类】

收藏

压缩包内文档预览:(预览前20页/共82页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:399081    类型:共享资源    大小:1.24MB    格式:RAR    上传时间:2015-01-25 上传人:上*** IP属地:江苏
40
积分
关 键 词:
节能车 竞赛车 HLJIT-3A型 电器系统 设计 cad图纸
资源描述:

节能车竞赛车(HLJIT-3A型)电器系统设计

82页 20000字数+说明书+任务书+开题报告+1张CAD图纸【详情如下】

任务书.doc

封皮.doc

电路原理图.dwg

节能车竞赛车(HLJIT-3A型)电器系统设计开题报告.doc

节能车竞赛车(HLJIT-3A型)电器系统设计说明书.doc

摘  要

   本文介绍的节能车竞赛车(HLJIT-3A型)电器系统设计分为节能车车速里程表的设计和对点火系统的改进两个部分。其中,里程表设计以单片机和霍尔开关传感器为核心,再利用Keill软件进行C语言编程。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD模块进行显示,使得节能竞赛车的最大车度、平均车速、瞬时车速、里程、圈数、时间等辅助驾驶参数能直观的显示给驾驶员,能够更佳有效、可靠的帮助驾驶员完成比赛。

   对点火系统的改进则是将原来的CDI点火器(电容放电式点火器)改进成自动进角直流点火器。与原CDI点火器相比,自动进角直流点火器点火能量更大,更稳定,点火时刻更准确,增加了点燃冲程和排气冲程的点火触发次数,这样发动机混合气燃烧十分充分且更节能更节省燃料,不会出现燃烧不彻底、火花塞积碳不能正常工作等现象。并且该点火器接线简单,安装方便,性能稳定,少受外界温度与湿度的影响,有自动变角功能,变角曲线好,适应发动机转速工况等优点。

关键词:单片机;LCD显示屏;霍尔开关传感器;CDI;直流点火器

ABSTRACT 

   This article describes the energy-saving car race car (HLJIT-3A type) electrical system design into efficient car odometer ignition system design and improvement of two parts. Among them, the odometer designed to minimize the system microcontroller and Hall switch sensor at the core. Sensors into a different speed pulse signals of different frequencies to control the input to the microcontroller and calculation, and then used to display LCD module, making the race cars, the largest energy-saving vehicles, average speed, instantaneous speed, distance, laps, time and other auxiliary parameters can directly drive the display to the driver, to better and effective, and reliable help the driver to finish the game.

   Improvement of the ignition system sucked the original CDI ignition (capacitive discharge ignition) improved to automatically into the current ignition angle. Compared with the original CDI ignition, automatic ignition angle of the DC ignition energy larger, more stable, more accurate ignition timing, increasing the light stroke and exhaust stroke of the ignition trigger number, so that the mixture combustion engine and more energy is sufficient more fuel-efficient, complete combustion does not occur, carbon spark plug does not work and so on. And that the ignition wiring simple, easy installation, stable performance and less susceptible to external temperature and humidity, with automatic angle function, variable angle curve is good, adapt to engine speed condition and so on.

Key words: SCM;LCD display;Hall switch sensor;Keill;DC-CDI;

目  录


摘要I

AbstractII

第1章 绪论1

1.1 课题背景、目的及意义1

1.2系统设计概述1

1.3 各章节的安排2

第2章 节能车车速里程表的硬件设计3

2.1 车速里程表设计的总体概述3

2.2 里程表系统设计总框图3

2.3 车速传感器的选择4

2.3.1 A3144E的特性5

2.3.2 A3144E芯片的引脚及功能5

2.3.3 A3144E的磁输入检测6

2.3.4 A3144E的导通距离测量6

2.3.5 硬件电路的设计7

2.4 单片机最小系统7

2.4.1 单片机最小系统的机构8

2.4.2 单片机最小系统的性能9

2.5 LCD液晶显示模块10

2.5.1 主要技术参数和显示特性10

2.5.2 显示模块引脚说明及连接11

2.6 本章小结12

第3章 节能车车速里程表的软件设计13

3.1 软件编程的总体设计13

3.2 软件流程图13

3.3 数据处理15

3.4 里程表各部分程序15

3.4.1 主程序15

3.4.2 串口中断服务程序17

3.4.3 显示模块程序18

3.4.4 测速系统程序23

3.4.5 中断服务程序26

3.4.6 屏幕切换与LOGO程序27

3.5 本章小结31

第4章 点火系的优化与改进32

4.1 节能竞赛车点火系的现状分析32

4.1.1 当前点火系(CDI)存在的问题分析32

4.1.2 解决CDI点火器存在问题的基本思路34

4.2 改进后的自动进角直流点火器35

4.3改进后点火器的优点及安装方法38

4.3.1 点火器改进后所具备的优点38

4.3.2 点火器的安装方法38

4.4 本章小结38

结论40

参考文献41

致谢42

第1章 绪  论

1.1 课题背景、目的及意义

   为了提高我校节能竞赛车的整体设计与可以在大赛中获得更好的成绩,那么电器系统的提高和完善是具有必然意义的。电器系统的改善,可以使驾驶员获得更多的辅助驾驶参数,这些参数有助于驾驶员更好的驾驶,并且可以使驾驶员对整车的工作状况有所掌握与了解。

   目前我校的节能竞赛车电器系统是由摩托车的电器系统简单改装而来,点火系统是电容放点式点火系统(CDI),并且行驶里程表是由一块码表来代替,目前节能竞赛车的电器系统现状可以说是比较简陋和落后的,而本次设计是要改善节能车的点火系统和增加转速测量系统,即数字型里程表。

   改善后的电器系统将会给节能车的整体水平及竞技水平提升到一个新的高度,更增加了一些色彩和亮点,也将使我校的节能车在大赛中更具有竞争力,获得更好的佳绩。而在汽车技术发展日新月异的今天,“节能、环保、安全”已成为未来汽车工业发展的主题,而节能车大赛的目的便是让我们这些身在大学校园中的学子们通过实践和竞赛体会节能的意义。因此,尽早的认识到减少能源消耗与降低污染对未来的汽车发展方向具有重要的实际意义。

1.2系统设计概述

   本设计中,车速测量系统我们以STC89C52单片机为控制核心,采用霍尔开关传感器检测节能车轮胎的运转情况,通过一定的采集信号和计算后,由LCD液晶显示屏显示节能车的车速、里程、时间等辅助驾驶参数。本设计中,计数的正确性决定了本装置的精度,如何在复杂的环境中得到正确的计数脉冲,是本设计的难点,初步的解决办法是在硬件上进行合理的滤波,软件上利用Keil进行一定的算法处理和C语言的编写;而点火系统的设计中,采用自动进角直流点火器,此点火器电路由振荡器电路、控制电路、电容放电电路、提前角控制电路、触发信号处理电路等五部分组成。自动进角点火器能使发动机的性能明显提高。

结  论  

   本设计对节能竞赛车电器系统的里程表和点火系作了细致、全面、规范的分析;对总体相应的软、硬件进行了设计、制作及调试,并贯穿至设计的全过程。对文中所提到的各种算法都进行了处理,并得出结论。所做工作如下:

   (1)对设计中所需要的元件分析其原理和性能,极其应用和发展。

   (2)详细介绍了本节能竞赛车里程表硬件设计的方案,电路原理图,并附上说明等。

   (3)详细介绍软件设计方法,并给出各部分的程序清单。

   (4)给出对节能竞赛车点火系的改进方案,并说明了改进后的点火器工作原理、优点及接线方法等。

    在本设计的设计过程中,充分考虑分析了节能竞赛车的特点及要求,电源的提供、功率的损耗、竞赛车体积的大小、质量的大小、驾驶的方便性等因素。通过本次设计也让我学到了更多宝贵知识,扩充了知识含量,对软件及硬件都有了更多更强掌握的能力。

   建议未来可以把里程表的传感器换成辐条型的传感器,那样精度会更高,可以将显示屏幕再扩大几倍,可以显示更多的驾驶参数,更有利于驾驶员驾驶,这样在比赛中会更优越与其他选手。最后预祝我校节能车能在大赛中获得更好的佳绩,为我校争光! 

一、设计(论文)目的、意义

   在汽车技术发展日新月异的今天,“节能、环保、安全”已成为未来汽车工业发展的主题,汽车的轻量化设计对提高车辆动力性、减少能源消耗与降低污染具有重要的实际意义。本设计为全国大学生节能车比赛用车。在比赛原型车H2型的基础上,对车辆的电器系统进行优化。包括点火系、电源系、仪表、线束、驾驶员训练比赛辅助装置,以及其布置。

   在详细分析节能车电器系统的基础上完成系统原理图、布置图、电器系统维护手册

   随着汽车对安全、节能、环保的不断重视,电器系统决定着整车的可靠性,有助于车手的节能驾驶训练。因而对电器进行有效的优化设计计算是非常必要的。

二、设计(论文)内容、技术要求(研究方法)

   基本参数

   驱动型式:3*1

   总质量:0.12t

   最高车速:55km/h

   发动机:WH125

   车速表响应速度提高5倍

   里程记录精度提高5倍以上。

   技术要求(研究方法):

   (1)分析H2赛车电器系统,绘制原理图;

   (2)提出优化改进方案,加以分析;

   (3)设计相关点火系,优化;

   (4)设计辅助仪表;

参考文献

[1]曲家骇,王季秩.伺服控制系统中的传感器[M]. 机械工业出版社. 1998

[2]张友德,赵志英,涂时亮.单片机微机原理,应用与实验[M].上海:复旦大学出版社,2003:122-136

[3]徐爱钧 彭秀华.Keil Cx51 V7.0 单片机高级语言编程与Vision2应用实践.北京:电子工业出版社,2004.6

[4] 党卫华,柯亚仕.“摩托车用数字式CDI 点火器的研制”《摩托车技术》1999 年第1 期 (8-11)

[5]张福学。传感器使用电路150例.中国技术出版社[M].1992年

[6]邬宽民.单片机外围器件实用手册,数据传输接口器件分册.北京.北京航空航天大学出版社.2001:189-195

[7]王贵悦.新编传感器实用手册.水利电力出版社.2002:67-89

[8] 罗振宇.“直流电子点火器DC—CDI 电路分析(1)”《摩托车技术》 1999年第10 期(33,34)

[9]《数字式汽车里程表的设计》诸德宏, 潘天红,朱湘临,江苏大学电气信息工程学院 ,江苏,镇江.  

[10]《基于单片机的汽车里程表设计》刘清波 ,蔡淑珍 ,孙业歧 ,史楠1.保定师范专科学校 计算机中心,河北保定2.河北大学 物理科学与技术学院 ,河北 保定  3.河北大学 电子信息工程学院 ,河北 保定  

[11]《电子车速里程表的单片机实现方案》王锁弘.威海双丰电子传感有限公司,山东,威海.

[12] 王永兰,孙学福.“摩托车电容放电式点火器” 《摩托车技术》 2001年第8 期(29-31)

[13]《单片机在转速测量中的应用》黄继武.武汉大学空间物理与电子信息系.

[14]Adachi,S.Modelielectric,ConstansGaP,GaAs,SaSb,InP,InAs,InSb.Physical Review B35(1987):7454-7463

[15]Ateml AT89S51 Data sheets.website:

内容简介:
SY-025-BY-2毕业设计(论文)任务书学生姓名刘涛系部汽车与交通工程专业、班级车辆07-11指导教师姓名崔宏耀职称副教授从事专业车辆工程是否外聘否题目名称节能车竞赛车(HLJIT-3A型)电器系统设计一、设计(论文)目的、意义在汽车技术发展日新月异的今天,“节能、环保、安全”已成为未来汽车工业发展的主题,汽车的轻量化设计对提高车辆动力性、减少能源消耗与降低污染具有重要的实际意义。本设计为全国大学生节能车比赛用车。在比赛原型车H2型的基础上,对车辆的电器系统进行优化。包括点火系、电源系、仪表、线束、驾驶员训练比赛辅助装置,以及其布置。在详细分析节能车电器系统的基础上完成系统原理图、布置图、电器系统维护手册随着汽车对安全、节能、环保的不断重视,电器系统决定着整车的可靠性,有助于车手的节能驾驶训练。因而对电器进行有效的优化设计计算是非常必要的。二、设计(论文)内容、技术要求(研究方法)基本参数驱动型式:3*1总质量:0.12t最高车速:55km/h发动机:WH125车速表响应速度提高5倍里程记录精度提高5倍以上。技术要求(研究方法):(1)分析H2赛车电器系统,绘制原理图;(2)提出优化改进方案,加以分析;(3)设计相关点火系,优化;(4)设计辅助仪表;三、设计(论文)完成后应提交的成果(1)主要包括节能车点火系、仪表驾驶员训练比赛辅助装置,以及其布置,智能仪表相关程序设计说明书1套(1.5万字以上);(2)完成系统仪表原理图(PROTEL)、模拟电子仪表(实物)。四、设计(论文)进度安排(1)调研、资料收集、完成开题报告 第2周(2)整体方案设计,完成电器系统原理图(手绘)第3周(3)电器系统优化及仪表设计,4-8周(4)绘制设计图9-12周(5)编写设计说明书13周(6)毕业设计(论文)审核、修改 第14、15周(7)毕业设计(论文)答辩准备及答辩 第16周五、主要参考资料六、备注指导教师签字:年 月 日教研室主任签字: 年 月 日 本科学生毕业设计节能车竞赛车(HLJIT-3A型)电器系统设计院系名称: 汽车与交通工程学院 专业班级: 车辆工程07-11班 学生姓名: 刘 涛 指导教师: 崔宏耀 职 称: 副教授 黑 龙 江 工 程 学 院二一一年六月The Graduation Design for Bachelors DegreeDesign of Energy-Saving Car Race (HLJIT-3A Type) Electrical System Candidate:LiuTaoSpecialty:Traffic and TransportationClass:Vehicle Engineering B07-11Supervisor:Prof. CuiHongYaoHeilongjiang Institute of Technology2011-06HarbinSY-025-BY-3毕业设计(论文)开题报告学生姓名系部汽车工程系专业、班级车辆07-11班指导教师姓名职称副教授从事专业车辆工程是否外聘是否题目名称节能车竞赛车(HLJIT-3A型)电器系统改进设计一、课题研究现状,目的、依据和意义1、研究现状目前我校节能车竞赛车的电器系统现状 目前我校的节能竞赛车电器系统是由摩托车的电器系统简单改装而来,只有单一的点火电器系统,并且行驶里程表是由一块码表来代替,目前节能竞赛车的电器系统现状可以说是比较简陋和落后的,而本次设计是要较全面的改善整个节能车的电器系统,设计的核心内容是由LCD屏幕和单片机构成的数字显示仪表,即增加一块或数块数字显示仪表(如果所有显示参数可以由一块显示仪表显示,那么将采取一块显示仪表的方案)。改进后的节能竞赛车电器系统状况与功能要求 为了提高我校节能竞赛车的整体设计与可以在大赛中获得更好的成绩,那么电器系统的提高和完善是具有必然意义的。电器系统的改善,可以使驾驶员获得更多的辅助驾驶参数,这些参数有助于驾驶员更好的驾驶,并且可以使驾驶员对整车的工作状况有所掌握与了解,如若节能车在起动或驾驶时某一部分出现故障,可以起到及时提醒驾驶员的作用,并且可以给予一些信息,来帮助驾驶员寻找故障。 而对功能的要和电器系统的改进求如下:点火系的优化、线束的优化、设计辅助仪表,而在辅助仪表中,具有可以显示车速、转速、里程、油量、温度、时间等参数设计的依据及原理介于之前的节能竞赛车的电器系统是由摩托车的电器系统改装而来,那么此次改进的依据仍然秉承摩托车的电器系统原理,并且在次基础上再加以改进。随着科技进步,摩托车显示仪表由指针向数字式发展,那么节能车的仪表也将采用数字显示型。数字显示仪表是采用的微处理器测控和传感器测量技术,通过控制数字显示器发光二极管和发光组合来显示车速、里程、转速、最好是也可以像摩托车仪表一样可以用条段表示油量多少,并辅助显示速度大小。数字型显示仪表与普通指针式仪表相比,数字仪表具有检测准确、故障率低、结构紧凑等优点,而这些优点恰恰符合了节能车的要求,其结构简单、结构紧凑、质量小、故障率低的特点可以更好的满足节能,又满足驾驶员所需求的驾驶参数,起到辅助驾驶的功效。电子数显仪表的工作原理转速传感器的选择及原理经过收集资料,转速传感器可以选择电磁传感器和霍尔传感器。1、电磁传感器 汽车车速传感器的工作原理是半轴上有磁组轮,磁组轮转动经过传感器时,线圈里将产生交流电压信号。因为这个工作原理,传感器不能测定瞬时速度,因为速度的稳定需要花费几秒时间,加速和减速时车速变化比较大,显示会有所滞后,这时就需要养成先读的习惯。磁极的磁力弱化时,磁极和传感器之间的间距不能大于5毫米。但是,车辆转弯时,由于侧倾的缘故,车轮和车架要发生变形,磁极和电磁传感器的间隔会变小,必须防止两者撞击而导致损坏。一方面,如果二者的间隔过大,传感器便不能工作,也就不能测定速度了。特别当车速很高时,传感器探头经过齿圈时磁通量的变化很快,这时测量数据很容易出错,这种情况下一般使用强磁性材料。 2、霍尔传感器 1、速度检测 将霍尔器件与节能车前轮相连接,行驶时通过转动产生变化磁场,从而产生脉冲信号来测量速度。如已知:车轮周长s(m)、车轮转1周带动霍尔器所转圈数n(r/min)、霍尔器转1圈发出的脉冲数B1、霍尔器每秒钟发出的脉冲数B2,便可求得节能车的速度v(km/h)。由公式:B2(1000/6060)(nvB1/S)推导出:v(36s/10nB1)B2 设a=36s/10nB1,单位为“s”,速度公式可简化为:vaB2,即a秒内霍尔器件发出的脉冲数为节能车时速。 2、里程数检测 已知条件同上,可求出摩托车每行驶500m时霍尔器件发出的脉冲数B3,B3500nB1/s。油量检测的方法及原理节能车的油量检测,依然采用与摩托车油量检测相同的原理。油量越多,油压越大,油量传感器电阻越小,因此油量检测可通过油量传感器阻值的变化来确定油量的多少。根据标准规定将油量传感器电阻按大小分为7等份,相应的油量显示条段亦有7格。该数字仪表由单片机控制,使用霍尔器件完成速度的检测,霍尔器件每转动1圈发出2个方波脉冲;油压大小反映油量多少,油压不同可使油量传感器的电阻值发生变化;电源模块分别提供单片机、存储器、译码驱动器电源,光控电路、油量显示和报警电路电源。摩托车由于受点火器和起动电动机的影响,常常会出现峰值达350V以上,脉宽0.1mm的连续干扰脉冲,为保证电源的可靠性,电路采用了吸收高压窄脉冲干扰、吸收持续高频干扰等技术,使电路能抗击摩托车上的各种干扰,确保整个系统的稳定性。而节能车产生的干扰有多强,以及抗干扰的能力还需要在实验中完成,此处暂不加以说明。主控单元负责信号处理、算法、显示控制及效果处理和里程数断电保存等功能,最终实现摩托车车速、累计里程、油量、高度自动调节等功能。软件的选择及设计软件主要应用Keil进行C语言编程,将所需测得的参数通过C语言编程最终体现到显示屏上面。软件设计中最重要的就是保证数据存储的可靠性,通过大量的实验表明,单次存储数据错误绝大多数是存储期间电源不稳定造成的,为此软件设计时采用将数据进行多次保存,读出时进行两两比较,从中找出正确值来处理,这样即使有1次数据存储错误,在CPU监控芯片的作用下,单片机重新复位运行时,总能读出正确数据,多次存储数据错误的几率很小。另外,在程序关键处增加空操作指令,如在程序空白区增加复位指令等,保证单片机运行的可靠性。意义综上所述,通过对软硬件的选择,以及对整车电器系统优化的认识,将会给节能车的电器系统提升到一个新的水平,满足驾驶员所需的驾驶参数,也将使我校的节能车在大赛中更具有竞争力,获得更好的佳绩。而在汽车技术发展日新月异的今天,“节能、环保、安全”已成为未来汽车工业发展的主题,汽车的轻量化设计对提高车辆动力性、减少能源消耗与降低污染具有重要的实际意义。二、设计(论文)的基本内容、拟解决的主要问题1、研究的基本内容(1)分析H2赛车电器系统,绘制原理图;(2)提出优化改进方案,加以分析;(3)优化点火系(4)设计辅助仪表;(5)车速表响应速度提高5倍(6)里程记录精度提高5倍以上。(7)数字仪表的设计(8)程序的编写(9)传感器的选择(10)提供尽可能多的辅助驾驶参数2、拟解决的主要问题(1)数字仪表的设计(2)LCD显示屏的驱动及显示方法(3)如何使用C语言编写程序(4)优化节能车的现有电器系统(5)传感器的选择(6)单片机的选择(7)点火系的优化三、技术路线(研究方法)调查研究、收集资料软件的选择硬件的选择最小系统板传感器选择Keil软件利用C语言编程显示仪表接近开关式电磁式单片机的选择屏幕的选择确定传感器组件的连接和安装、并进行测试形成研究成果将编写好的程序写入单片机形成实物,车速里程表确定仪表四、进度安排(1)调研、资料收集、完成开题报告 第2周(2)整体方案设计,完成电器系统原理图(手绘)第3周(3)电器系统优化及仪表设计,4-8周(4)绘制设计图9-12周(5)编写设计说明书13周(6)毕业设计(论文)审核、修改 第14、15周(7)毕业设计(论文)答辩准备及答辩 第16周五、参考文献1姜志海 赵艳雷.单片机的C语言.北京:电子工业出版社出版社,2008.52徐爱钧 彭秀华.Keil Cx51 V7.0 单片机高级语言编程与Vision2应用实践.北京:电子工业出版社,2004.63周志敏 周纪海 纪爱华.LED驱动电路设计与应用.北京:人民邮电出版社,2007.124贺建波 贺展开.汽车传感器的检测.北京:机械工业出版社,2005.25李涵武 赵雨旸.汽车电器与电子技术.哈尔滨:哈尔滨工业大学出版社,2003.96李东江.现代汽车电子控制技术M.北京:科技文献出版社,1998.7贾民平 张洪亭.测试技术.M.北京:高等教育出版社,2010.28李晓莹.传感器与测试技术.北京:高等教育出版社,2005.9李朝青.单片机原理及借口技术.北京:北京航空航天大学出版社,2009.710Bentley,John P.Principles of Measurement Systems.London and New York:Longman,1983.11Adachi,S.Modelielectric Constans of GaP,GaAs,SaSb,InP,InAs,InSb.Physical Review B35(1987):7454-746312Bergh,A.A.Light Emitting Diodes.Oxford:Clarendon Press,197613Gillesen,K W.Schairer.Light Emitting Diodes:An Introduction.Prentice-Hall,1987,ASIN013536533314Schubert,E.F.Light Emitting Diodes.Cambidge,England:Cambridge UniversityPress,200315Monemar,B.G.Pozina.Group Based Herero and Quantum Structures.Progress inQuantum Electronics 24(2000):239-290 六、备注指导教师意见:签字: 年 月 日黑龙江工程学院本科生毕业设计摘 要本文介绍的节能车竞赛车(HLJIT-3A型)电器系统设计分为节能车车速里程表的设计和对点火系统的改进两个部分。其中,里程表设计以单片机和霍尔开关传感器为核心,再利用Keill软件进行C语言编程。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD模块进行显示,使得节能竞赛车的最大车度、平均车速、瞬时车速、里程、圈数、时间等辅助驾驶参数能直观的显示给驾驶员,能够更佳有效、可靠的帮助驾驶员完成比赛。对点火系统的改进则是将原来的CDI点火器(电容放电式点火器)改进成自动进角直流点火器。与原CDI点火器相比,自动进角直流点火器点火能量更大,更稳定,点火时刻更准确,增加了点燃冲程和排气冲程的点火触发次数,这样发动机混合气燃烧十分充分且更节能更节省燃料,不会出现燃烧不彻底、火花塞积碳不能正常工作等现象。并且该点火器接线简单,安装方便,性能稳定,少受外界温度与湿度的影响,有自动变角功能,变角曲线好,适应发动机转速工况等优点。关键词:单片机;LCD显示屏;霍尔开关传感器;CDI;直流点火器ABSTRACTThis article describes the energy-saving car race car (HLJIT-3A type) electrical system design into efficient car odometer ignition system design and improvement of two parts. Among them, the odometer designed to minimize the system microcontroller and Hall switch sensor at the core. Sensors into a different speed pulse signals of different frequencies to control the input to the microcontroller and calculation, and then used to display LCD module, making the race cars, the largest energy-saving vehicles, average speed, instantaneous speed, distance, laps, time and other auxiliary parameters can directly drive the display to the driver, to better and effective, and reliable help the driver to finish the game.Improvement of the ignition system sucked the original CDI ignition (capacitive discharge ignition) improved to automatically into the current ignition angle. Compared with the original CDI ignition, automatic ignition angle of the DC ignition energy larger, more stable, more accurate ignition timing, increasing the light stroke and exhaust stroke of the ignition trigger number, so that the mixture combustion engine and more energy is sufficient more fuel-efficient, complete combustion does not occur, carbon spark plug does not work and so on. And that the ignition wiring simple, easy installation, stable performance and less susceptible to external temperature and humidity, with automatic angle function, variable angle curve is good, adapt to engine speed condition and so on.Key words: SCM;LCD display;Hall switch sensor;Keill;DC-CDI;I黑龙江工程学院本科生毕业设计目录摘要IAbstractII第1章 绪论11.1 课题背景、目的及意义11.2系统设计概述11.3 各章节的安排2第2章 节能车车速里程表的硬件设计32.1 车速里程表设计的总体概述32.2 里程表系统设计总框图32.3 车速传感器的选择42.3.1 A3144E的特性52.3.2 A3144E芯片的引脚及功能52.3.3 A3144E的磁输入检测62.3.4 A3144E的导通距离测量62.3.5 硬件电路的设计72.4 单片机最小系统72.4.1 单片机最小系统的机构82.4.2 单片机最小系统的性能92.5 LCD液晶显示模块102.5.1 主要技术参数和显示特性102.5.2 显示模块引脚说明及连接112.6 本章小结12第3章 节能车车速里程表的软件设计133.1 软件编程的总体设计133.2 软件流程图133.3 数据处理153.4 里程表各部分程序153.4.1 主程序153.4.2 串口中断服务程序173.4.3 显示模块程序183.4.4 测速系统程序233.4.5 中断服务程序263.4.6 屏幕切换与LOGO程序273.5 本章小结31第4章 点火系的优化与改进324.1 节能竞赛车点火系的现状分析324.1.1 当前点火系(CDI)存在的问题分析324.1.2 解决CDI点火器存在问题的基本思路344.2 改进后的自动进角直流点火器354.3改进后点火器的优点及安装方法384.3.1 点火器改进后所具备的优点384.3.2 点火器的安装方法384.4 本章小结38结论40参考文献41致谢42黑龙江工程学院本科生毕业设计第1章 绪论1.1 课题背景、目的及意义为了提高我校节能竞赛车的整体设计与可以在大赛中获得更好的成绩,那么电器系统的提高和完善是具有必然意义的。电器系统的改善,可以使驾驶员获得更多的辅助驾驶参数,这些参数有助于驾驶员更好的驾驶,并且可以使驾驶员对整车的工作状况有所掌握与了解。目前我校的节能竞赛车电器系统是由摩托车的电器系统简单改装而来,点火系统是电容放点式点火系统(CDI),并且行驶里程表是由一块码表来代替,目前节能竞赛车的电器系统现状可以说是比较简陋和落后的,而本次设计是要改善节能车的点火系统和增加转速测量系统,即数字型里程表。改善后的电器系统将会给节能车的整体水平及竞技水平提升到一个新的高度,更增加了一些色彩和亮点,也将使我校的节能车在大赛中更具有竞争力,获得更好的佳绩。而在汽车技术发展日新月异的今天,“节能、环保、安全”已成为未来汽车工业发展的主题,而节能车大赛的目的便是让我们这些身在大学校园中的学子们通过实践和竞赛体会节能的意义。因此,尽早的认识到减少能源消耗与降低污染对未来的汽车发展方向具有重要的实际意义。1.2系统设计概述本设计中,车速测量系统我们以STC89C52单片机为控制核心,采用霍尔开关传感器检测节能车轮胎的运转情况,通过一定的采集信号和计算后,由LCD液晶显示屏显示节能车的车速、里程、时间等辅助驾驶参数。本设计中,计数的正确性决定了本装置的精度,如何在复杂的环境中得到正确的计数脉冲,是本设计的难点,初步的解决办法是在硬件上进行合理的滤波,软件上利用Keil进行一定的算法处理和C语言的编写;而点火系统的设计中,采用自动进角直流点火器,此点火器电路由振荡器电路、控制电路、电容放电电路、提前角控制电路、触发信号处理电路等五部分组成。自动进角点火器能使发动机的性能明显提高。本设计中的里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点,并且可进行扩充,加入时速表的功能,更加方便的了解驾驶员当时所处的情况;而改进后的自动进角直流点火器启动性能大大优于普通的交流点火器,具有怠速更加稳定,高速明显提高,震动降低,更省油等优点。1.3 各章节的安排第一章叙述了节能车里程表的背景、发展、意义以及本自行车里程表的概述。第二章介绍了节能车里程表的设计方法与研究,介绍了节能车里程表的总体设计思想,电路图及其原理,硬件实现。主要是对设计中所需设备的详细介绍,包括霍尔开关传感器、单片机最小系统、脉冲测量、及LCD液晶显示屏。具体为:介绍霍尔开关传感器的基本原理,单片机最小系统的基本结构,工作原理及其性能;脉冲测量的算法及其实现,LCD液晶显示屏的工作原理。第三章是节能车里程表的软件实现部分,主要介绍单片机编程实现频率测量、车速、里程、时间、行驶圈数、平均车速、最大车速的功能。第四章是对点火系的优化与改进,与现有点火系的对比,改进后的优点以及自动进角直流点火器的工作原理等。总结,是介绍了本设计实现的功能,阐述本课题的现实意义,以及对未来节能车里程表技术的展望。第2章 节能车车速里程表的硬件设计2.1 车速里程表设计的总体概述本系统是由数据采集,单片机控制系统,显示电路显示,3部分构成。其中数据的采集是由霍尔开关传感器来完成的,它的输出是0、1高低电平,经过霍尔开关传感器内部集成电路进行滤波整形后就向单片机系统提供转速信号。其中关键的处理由单片机系统来完成,单片机将对INT0脚的信号进行计数,当计数的脉冲达到设定值的时候,INT1申请中断,对外输出信号,输出的信号由显示部分送LCD显示屏进行显示,显示当前的行驶里程、车速、时间等情况。在本次行驶过后关掉电源开关,所有数据清零,以便下次驾驶员行驶时更加方便、有效的读取数据,以上所诉就是整个系统的总体设计思想。 利用霍尔元件对里程和车速进行测量。将霍尔元件安装在车前轮的一侧,在车圈侧面等间隔贴若干个磁铁。当磁铁经过霍尔元件时,霍尔元件输出端的电压发生变化产生高低电平,单片机根据脉冲数来计算里程。霍尔元件不受天气的影响,即便被泥沙或灰尘覆盖对测量也不会有任何影响。霍尔开关传感器具有输出响应快、体积小、安装方便、性能可靠、不受光线、泥水等因素影响,价格便宜的优点。该设计能实时地将所测的累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前开关型霍尔开关传感器内部的集成电路对其进行放大整形,然后通过单片机计算出里程,并由LCD显示模块交替显示所测里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。 设计时,应综合考虑测速精度和系统反应时间。本设计用测量高低电平的频率来计算速度,因而具有较高的测速精度。在计算里程时取了节能车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的里程值采用4位显示。2.2 里程表系统设计总框图如图2.1所示,为里程表设计总框图,明确了里程表的设计思路。显示电路STC89C52计数脉冲送信号至T0电源开关在线擦写程序霍尔传感器图2.1 系统总框图2.3 车速传感器的选择对车速进行检测的传感器目前被广泛使用的有三种,分别是磁电式车速传感器、霍尔式车速传感器、光电式车速传感器。磁电式车速传感器是一个模拟交流信号发生器,它们产生交变电流信号,通常由带两个接线柱的磁芯及线圈组成。这两个线圈接线柱是传感器输出的端子,当由铁质制成的环状翼轮(有时称为磁组轮)转动经过传感器时,线圈里将产生交流电压信号。磁组轮上的逐个齿轮将产生一一对应的系列脉冲,其形状是一样的。输出信号的振幅(峰对峰电压)与磁组轮的转速成正比(车速),信号的频率大小表现于磁组轮的转速大小。霍尔效应传感器(开关)在汽车应用中是十分特殊的,这主要是由于变速器周围空间位置冲突,霍尔效应传感器是固体传感器,它们主要应用在曲轴转角和凸轮轴位置上,用于开关点火和燃油喷射电路触发,它还应用在其它需要控制转动部件的位置和速度控制电脑电路中。光电式车速传感器是固态的光电半导体传感器,它由带孔的转盘两个光导体纤维,一个发光二极管,一个作为光传感器的光电三极管组成。 一个以光电三极管为基础的放大器为发动机控制电脑或点火模块提供足够功率的信号,光电三极管和放大器产生数字输出信号(开关脉冲)。 综合节能竞赛车的特点和功能需求,本次设计中选用的是霍尔开关型传感器,其型号为A3144E,也称A44E。A3144E芯片属于开关型的霍尔器件 ,其工作电压范围比较宽 ( 4. 518 V ) ,其输出的信号符合TTL电平标准可以直接接到单片机的 I/ O端口上,而且其最高检测频率可达到 1 M Hz。A3144E霍尔开关集成电路应用霍尔效应原理,采用半导体集成技术制造的磁敏电路,它是由电压调整器、霍尔电压发生器、差分放大器、史密特触发器,温度补偿电路和集电极开路的输出级组成的磁敏传感电路,其输入为磁感应强度 ,输出是一个数字电压信号。2.3.1 A3144E的特性 霍尔开关电路的输出特性见图 2.2所示。在输入端输入电压 Vcc,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生场的方向通以电流,则与这二者相垂直的方向上将会产生密特触发器整形,使其成为方波输送到 OC门输出。当施加的磁场达到工作点 (即 BOP )时,触发器输出高电压 (相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点 (即 BRP ) 时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。VOUTBHBRPBOPBVOHVOL0图2.2 A3144E输出特性在外磁场的作用下,当磁感应强度超过导通阈BOP时,霍尔电路输出管导通,输出低电平。之后,B再增加,仍保持导通态。若外加磁场的B值降低到B RP时,输出管截止,输出高电平。我们称 BOP为工作点,BRP为释放点,BOP - B RP = B H称为回差。回差的存在使开关电路的抗干扰能力增强。这样两次电压变换,使霍耳开关完成了一次开关动作。一般规定,当外加磁场的南极 ( S极)接近霍尔电路外壳上打有标志的一面时,作用到霍尔电路上的磁场方向为正,北极接近标志面时为负。2.3.2 A3144E芯片的引脚及功能霍尔传感器A44 E芯片的引脚接线图见图2.3典型应用于无触点开关、车点火器、刹车电路、位置转速检测与控制、全报警装置和纺织控制系统。霍尔传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路 ( OC) 门输出,工作电压范围宽,使用非常方便。图2.3 A44E芯片引脚接线图 引脚1是电源Vcc,引脚2是地GND,引脚3是输出OUT。霍尔器件的工作电压不得超过规定的Vcc,大部分霍尔开关均为OC输出。因此,输出应接负载电阻,其数值值取决于负载电流的大小,不得超负载使用。2.3.3 A3144E的磁输入检测A44E的磁输入为单极磁场,即施加磁场的方式是改变磁铁和A44E之间的距离。判定磁铁极性方法是:把磁铁的两个极分别靠近A44E的正面,当其OUT引脚电平由高变低时即为正确的安装位置,如图2.4所示。图2.4 A44E判别磁铁极性经过实验得知,A44E只对磁铁的S极有响应而对N级没有丝毫响应。安装时一定要让磁铁的S极对准A44 E的反应传感区。2.3.4 A3144E的导通距离测量把一块小永久磁铁固定在车轮的辐条上,A44 E在车轮辐条附近,如图 2.5 所示。图2.5 A44E导通距离测量经过实验得知,磁铁和霍尔开关A44E移近到一定距离(设此距离为 r)时,A44E芯片的OUT引脚有脉冲信号输出。当二者的距离大于r时,OUT引脚没有脉冲信号输出。反复实验得出霍尔开关A44E导通的距离r为4 mm或5 mm。2.3.5 硬件电路的设计霍尔传感器A44E在测速系统中的主要作用是车轮转速采集。车轮每转一周,磁铁经过A44 E一次。A44 E的第3脚就输出一个脉冲信号作为单片机STC89C52的外中断信号从 P3.2口输入。单片机测量脉冲信号的个数和脉冲周期。根据脉冲信号的个数计算出里程,根据脉冲信号的周期计算出速度并显示。A44E与单片机的硬件电路连接如图 2.6所示。图2.6 A44E与单片机硬件电路连接A3144E型霍尔开关传感器具有许多优点,它们的结构牢固、体积小、寿命长、灵敏度高、安装方便、功耗小、频率高、耐震动、不怕灰尘、油污及盐雾等的污染或腐蚀,位置重复精度高等优点。2.4 单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。而本设计中选用STC89C52作为最小系统板的芯片。2.4.1 单片机最小系统的机构工作电源:电源是单片机工作的动力源泉,对应的接线方法为:40脚(VCC)电源引脚,工作时接+5V电源,20脚(GND)为接地线。复位电路:由电容串联电阻构成,结合“电容电压不能突变”的性质可以知道,当系统一上电,RST脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C取10uf,R取8.2K。当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机器周期的高电平,电路如图2.7所示。图2.7 复位电路晶振电路:时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30pf。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/40MHz(产生精确的uS级时歇,方便定时操作),电路如图2.8所示。图2.8 晶振电路控制引脚EA接法。EA/VPP(31脚)为内外程序存储器选择控制引脚,当EA为低电位时,单片机从外部程序存储器取指令;当EA接高电平时,单片机从内部程序存储器取指令。STC89C52单片机内部有8KB可反复擦写1000次以上的程序存储器,因此我们把EA接到+5V高电平,让单片机运行内部的程序,我们就可以通过反复烧写来验证我们的程序了。2.4.2 单片机最小系统的性能本系统板具有串口通信方式,系统板省去了MAX232芯片,用PL2303做USB转串口(笔记本和台式机都能用),232通信的程序无需任何修改,即可于电脑的串口通信工具进行通信;复位电路,方便程序调试使用;供电方式是USB供电和外部供电(外部供电时,可以在电源电压为3.3-5V的电压范围内)。具有双工UART串行通道, 双数据指示器,电源关闭标识;下载方式是USB下载(笔记本和台式机都可以用)和十针下载方式(可以下载AT89S51,AT89S52系列的单片机)。液晶12864有亮度对比度调节电阻;单片机晶振采用11.0592Mhz和40Mhz可选择可插拔式,根据使用需求随时可更换晶振,适合不同的应用及实验场合。单片机I/O口全部引出(方便扩展各种模块实验),电源VCC和GND都通过排针引出,方便外扩电路时电源的引入和引出。实物如图2.9所示。图2.9 电路板实物2.5 LCD液晶显示模块本设计中显示模块的液晶显示屏型号为JM12864M-2,此液晶屏具有中文字库,这对显示程序的编写带来了极大的方便,并且在以后的使用中也带来了极大的益处。此外,该液晶屏幕还具有汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。2.5.1 主要技术参数和显示特性 电源:VDD 3.3V5V(内置升压电路,无需负压);显示内容:128列 64行,显示颜色:黄绿,显示角度:6:00钟直视,LCD类型:STN与MCU接口:8位或4位并行/3位串行,配置LED背光。多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。如图2.10所示,外观尺寸:937012.5mm 视域尺寸:7339mm。图2.10液晶显示屏外形尺寸图 2.5.2 显示模块引脚说明及连接该液晶屏幕的引脚说明如图2.11所示,该屏幕的逻辑工作电压(VDD):4.55.5V,电源地(GND):0V,工作温度(Ta):-10 60(常温) / -2070(宽温)。引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A(LED+5V)背光源正极20LED_K(LED-OV)背光源负极图2.11 显示屏引脚说明如图2.12所示为显示模块与单片机最小系统板的管脚连接原理图,通过该图可以明确的知道显示模块与系统板各管脚是如何连接的,这给以后为显示模块编写程序带来了极大的方便。图2.12 显示模块与最小系统板连接原理图2.6 本章小结本章系统的介绍了里程表的设计思路以及硬件的选取,通过本章可以知道节能车里程表的设计是由单片机最小系统板、STC89C52、LCD液晶显示屏、霍尔接近开关传感器等硬件组成,并且熟悉掌握了各硬件的参数、使用方法以及相互之间是如何连接的。在此基础上便可以按所需的功能进行软件编程了。第3章 节能车车速里程表的软件设计3.1 软件编程的总体设计在硬件确定的基础上就可以进行软件的编程了,本设计使用的是Keill软件进行C语言的编程。根据所需要的功能,编译相应的程序。本系统软件采用模块化设计方法。整个系统由初始化模块、频率测量模块、速度和里程计算模块、显示模块、定时器中断服务模块以及其他功能模块组成,如图3.1所示。初始化模块显示模块频率测量模块中断服务模块速度、里程计算模块时间计数模块图3.1 系统软件功能框图根据各个模块的功能,利用C语言编译出相应功能的程序,编译出各个功能模块的程序后便利用Keill软件进行调试,当调试好各个功能模块程序后,便编译主程序,通过主程序调用各个功能模块的子程序来实现总体的通能需求,最后通过软硬件的结合便可实现车速和里程的显示及测量3.2 软件流程图程序是按给定的方式运行的,我们按照合理的路径,按照C语言的方式使其达到我们所需的功能。那么,首先应该做出软件的流程图,使程序在给定的流程框架里进行循环工作。如图3.2所示,为系统软件运行的流程图。上电单片机复位初始化串口初始化液晶屏液晶屏显示延时秒液晶屏显示菜单刷新屏幕时间到了吗? 否 是重新运算速度里程等数据切换屏幕时间到了吗? 否 是显示另一个菜单刷新屏幕数据图3.2软件流程图3.3 数据处理本设计所用的霍尔传感器是一块集成芯片。首先我们把磁钢放在节能车的转轴上,而霍尔元件就放在与其水平的转轴上,当我们完成安装后,转动节能车的转轴,磁钢也就跟着一起转动,从而使霍尔传感器周围的磁场发生变化,将产生出一个高低电平。假设磁钢共分为8片,磁场将会改变8次,当磁钢经过传感器时就会产生一个高电平,否则为低电平。所以将会产生8个高电平,既每输出8个高电平代表自行车转动了一周。比如我们的车轮在R=0.25m时,通过C=2*R计算得出车轮的周长C=1.5m。由于每一圈霍尔传感器将输出8个高电平,当自行车行驶1KM时会转动667次,这样每1KM将回产生5336个脉冲,单片机对这5336个脉冲计数。3.4 里程表各部分程序3.4.1 主程序Void Main( )函数,即主函数。主函数部分经过延时、初始化串口、初始化液晶显示屏、初始化测速系统、初始化所有参数,调用各个模块的子程序,使整个系统循环执行。程序如下:/Main.C /节能行车里程表主程序/单片机:STC89C52RC 11.0592MHz/传感器:P3.2(INT0)void main(void) Delayms(200); Init_UART();/初始化串口,波特率9600bps,8位数据,1起始位,1停止位,无校验 Uart_sentstr(rn复位,已经初始化串口!); LCD12864_initial(); /液晶初始化LCD12864_clear();Uart_sentstr(rn液晶初始化OK!);ShowMenu(MENU_INDEX_LOGO);Delayms(1000);ShowMenu(MENU_INDEX_1);InitSystem();/初始化测速系统while(1) if(Flag_Fresh) Flag_Fresh =0; ClcSpeed();/计算所有运行参数 MenuMize+; if(MenuMizeMENU_SWAP_MIZE)/该切换到下一屏了 MenuMize = 0; if(CurMenu=MENU_INDEX_1)/现在是第1屏,那就切换到第2屏 ShowMenu(MENU_INDEX_2); else/否则,切换到第1屏 ShowMenu(MENU_INDEX_1); else FreshScreen();/刷新LCD屏幕数据 3.4.2 串口中断服务程序 /Serial.cvoid Init_UART(void) RCLK=1; TCLK=1; TH2 = 0x0FF;TL2 = 0x0DC; RCAP2H=0xFF; RCAP2L=0xDC; /定时器2自动装入8位 /波特率9600 TR2=1; IE=0x00; SCON=0x50; /向串口发送一个字符 void send_char_com(unsigned char ch) TI=0;SBUF=ch;while(TI=0);TI=0;void Uart_sentstr(uchar str)/串口以查询方式发送数据1个字符串 while(*str) send_char_com(*str);str+; /Common.C#include Common.H/*函数名称: Delayus功 能: 延时指定微秒(11.0592M晶振)参 数: US-延时的微秒数(大约,不是很精确,MS越大越准确)返回值 : 无/*/void Delayus(uchar US) while(US-); /4是在11.0592MHz晶振下,通过软件仿真反复实验得到的数值/*函数名称: Delayms功 能: 延时指定毫秒(11.0592M晶振)参 数: MS-延时的毫秒数返回值 : 无/*/void Delayms(uint MS) uint i,j; for( i=0;iMS;i+) for(j=0;j19) /够一秒了,秒钟加1SensorPlusBak = SensorPlus; SensorPlus = 0;Flag_Fresh = 1;/置刷新屏幕标志Ms50 = 0;Second+;if(Second59)/若够一分钟了,分钟加1 Second = 0; Minute+; if(Minute59)/若够一小时了,小时加1 Minute=0; Hour+; if(Hour23)/若够24小时了,小时归零 Hour = 0; InitSystem();/重新初始化测速系统 3.4.5 中断服务程序/INT0中断服务程序void IE0_srv(void) interrupt IE0_VECTOR using 2 SensorPlus+;/计算所有运行参数void ClcSpeed(void) float time; /总时间,单位小时/ SensorPlusBak = 20.0+Minute; /计算里程 /Distance = Distance + DisPerPlus*SensorPlusBak/1000*100; Distance = Distance + DisPerPlus*SensorPlusBak/10.0; /计算圈数 Cycles = Distance*10/LEN_PER_CYCLE; /计算最新速度 /CurSpeed = DisPerPlus*SensorPlusBak*3600/1000*100;/单位,是0.01km/h CurSpeed = DisPerPlus*SensorPlusBak*360.0;/单位,是0.01km/hif(CurSpeed=0) /最高速度 MaxSpeed = 0; /平均速度清零AvgSpeed = 0;else /判断最高速度if(CurSpeedMaxSpeed) MaxSpeed = CurSpeed; /计算平均速度,平均速度 = 里程/总时间time = Hour + Minute/60.0 + Second/3600.0;AvgSpeed = Distance/time;3.4.6 屏幕切换与LOGO程序 /LCD.C#include LCD.H#include JM12864M.H#include BikeSpeed.H#include Serial.Huchar CurMenu = MENU_INDEX_NULL;/当前菜单uint MenuMize = 0; /切换菜单的累加器void ShowMenu(uchar new_menu)/显示一个菜单 if(CurMenu=new_menu)/如果应经在这个菜单,返回 return; switch(new_menu) case MENU_INDEX_LOGO:/显示LOGO CurMenu = MENU_INDEX_LOGO; LCD12864_clear(); LCD12864_sendstrXY(1,0,黑龙江工程学院); LCD12864_sendstrXY(2,0,导师:崔宏耀); LCD12864_sendstrXY(3,0,作者:刘涛); LCD12864_sendstrXY(4,0,07车辆11班); Delayms(500); LCD12864_sendstrXY(1,0, 车速测量系统 ); break; case MENU_INDEX_1:/显示第1屏 CurMenu = MENU_INDEX_1; LCD12864_clear(); LCD12864_sendstrXY(1,1,车速测量系统); LCD12864_sendstrXY(2,0,时间 00:00:00); LCD12864_sendstrXY(3,0,车速 00.00 km/h); LCD12864_sendstrXY(4,0,里程 00.00 km); FreshScreen();/刷新LCD屏幕数据 break; case MENU_INDEX_2:/显示第2屏 CurMenu = MENU_INDEX_2; LCD12864_clear(); LCD12864_sendstrXY(1,1,车速测量系统); LCD12864_sendstrXY(2,0,圈数 0000); LCD12864_sendstrXY(3,0,均速 00.00 km/h); LCD12864_sendstrXY(4,0,最快 00.00 km/h); FreshScreen();/刷新LCD屏幕数据 break; default: break; /刷新LCD屏幕数据void FreshScreen(void) uchar buf9;uint distance;/刷新第一屏/ Uart_sentstr(rn时间=);/组织时间格式buf0 = Hour/10+0; /小时的十位buf1 = Hour%10+0; /小时的个位buf2 = :; /buf3 = Minute/10+0; /分钟的十位buf4 = Minute%10+0; /分钟的个位buf5 = :; /buf6 = Second/10+0; /秒钟的十位buf7 = Second%10+0; /秒钟的个位buf8 = 0;/字符串结束标志 Uart_sentstr(buf);if(CurMenu=MENU_INDEX_1) LCD12864_sendstrXY(2,3,buf);Uart_sentstr(t当前速度=);/组织当前速度格式buf0 = (CurSpeed/1000)%10+0; /速度的十位buf1 = (CurSpeed/100)%10+0; /速度的个位buf2 = .; / /小数点buf3 = (CurSpeed/10)%10+0; /速度的十分位buf4 = CurSpeed%10+0; /速度的百分位buf5 = 0;/字符串结束标志 if(CurMenu=MENU_INDEX_1) LCD12864_sendstrXY(3,3,buf);Uart_sentstr(buf);Uart_sentstr( km/h);/组织累计里程格式distance = Distance;Uart_sentstr(t累计里程=);buf0 = (distance/1000)%10+0; /里程的十位buf1 = (distance/100)%10+0; /里程的个位buf2 = .; / /小数点buf3 = (distance/10)%10+0; /里程的十分位buf4 = distance%10+0; /里程的百分位buf5 = 0;/字符串结束标志 if(CurMenu=MENU_INDEX_1) LCD12864_sendstrXY(4,3,buf);Uart_sentstr(buf);Uart_sentstr( km);/刷新第二屏/ Uart_sentstr(t跑道圈数=);/组织跑道圈数格式buf0 = (Cycles/1000)%10+0; /圈数的百位buf1 = (Cycles/100)%10+0; /圈数的百位buf2 = (Cycles/10)%10+0; /圈数的十位buf3 = Cycles%10+0; /圈数的个位buf4 = 0;/字符串结束标志 if(CurMenu=MENU_INDEX_2) LCD12864_sendstrXY(2,3,buf);Uart_sentstr(buf);Uart_sentstr(t平均速度=);/组织平均速度格式buf0 = (AvgSpeed/1000)%10+0; /平均速度的十位buf1 = (AvgSpeed/100)%10+0; /平均速度的个位buf2 = .; / /小数点buf3 = (AvgSpeed/10)%10+0; /平均速度的十分位buf4 = AvgSpeed%10+0; /平均速度的百分位buf5 = 0;/字符串结束标志if(CurMenu=MENU_INDEX_2) LCD12864_sendstrXY(3,3,buf);Uart_sentstr(buf);Uart_sentstr( km/h);Uart_sentstr(t最高速度=);/组织最高速度格式buf0 = (MaxSpeed/1000)%10+0; /最高速度的十位buf1 = (MaxSpeed/100)%10+0; /最高速度的个位buf2 = .; / /小数点buf3 = (MaxSpeed/10)%10+0; /最高速度的十分位buf4 = MaxSpeed%10+0; /最高速度的百分位buf5 = 0;/字符串结束标志 if(CurMenu=MENU_INDEX_2) LCD12864_sendstrXY(4,3,buf);Uart_sentstr(buf);Uart_sentstr( km/h);3.5 本章小结本章介绍了里程表设计的软件部分,软件设计的思路及设计所需的功能,利用Keill软件实现C语言的程序编写。里程表的程序分为主程序、显示程序、测速程序、中断程序等模块,各模块程序都由主程序调用,最后实现测速、测里程等,最终将想要的信息在显示屏上显示出来,供给驾驶员作为驾驶参数。第4章 点火系的优化与改进4.1 节能竞赛车点火系的现状分析目前,我校节能竞赛车的点火器为CDI形式的,即无触点电容放电式点火器,如果想我校的节能车在竞赛中可以得到更好的成绩,那么点火系是必须要改进的。此次设计中对点火系改进的是为使节能车竞赛车更加节能省油和使发动机燃烧更充分,具有大而稳定的点火能量,提高点火效率等。由于本节能竞赛车的发动机型号是本田摩托车WH125,所以改进点火器的时候以摩托车点火器为主进行讨论与改进。本章首先对原有点火器进行研究分析,提出原有点火器的不足与缺点,然后对原有点火器的缺点进行分析和改善,根据节能竞赛车的特点和使用规范,进而改进为更适合节能竞赛车使用的点火器。4.1.1 当前点火系(CDI)存在的问题分析节能竞赛车目前的点火器为无触点电容放电式点火器(以下简称CDI),其原理是由磁电机充电线圈的感应电压向点火器中的电容器充电,电容器的充电电压可至几百伏。在点火时刻由晶闸管SCR 的通断控制电容器通过点火线圈初级侧放电,从而在二次侧线圈上感应出几十千伏的二次高压,使火花塞放电点火。电容放电式点火器具有以下优点:结构简单,工作可靠,使用方便,无需调整,自动提角等优点得到广泛应用。但CDI存在在低速及高速状态下,电容充电电量不足,导致点火能量不足这个问题,这是由CDI本身的电路特性决定的。磁电机直接供电的CDI电路示意图如图4.1所示。图4.1 磁电机直接供电的CDI电路示意图图中高压点火线圈每次放电的能量,由充电电容及磁电机充电线圈电压共同决定,即: (1.1)式中:点火能量 充电电容储存能量 C 电容电量 电容充电电压在实际电路中,电容容量选定后就不会再变化。因此,定量讨论充电线圈电压对充电电容储存能量的影响,是分析CDI在不同转速下,点火能量变化情况的关键。根据电磁感应定律,充电线圈感应电动势为: (1.2)式中:线圈感应电动势 线圈匝数 磁通量即感应电动势E与线圈匝数N及磁通变化率成正比。当匝数N固定时,感应电动势E由即发动机转速n唯一确定。那么,电容充电电压是否直接等于感应电动势E,充电电压是否随转速n上升而上升呢?事实上,由于自感电动势存在,的变化情况变得复杂。 (1.3)式中:自感电动势 感抗 转速 通过线圈的电流 旋转角度且有 (1.4) 即(1.2)式与(1.3)式通过(1.4)共同决定,由于E及都是转速n的函数,都随转速n上升而增大但E及随转速n的变化率不相同,在转速n大于某一值后,电容充电电压不会继续上升,反而下降。另外,由于电容器本身的充电时间特性,充电时间随转速n上升而减少,也会导致在高速段下降。综合各方面的因素,的充电电压随转速n的变化曲线如图4.2所示。图4.2 CDI 点火器储能电容端电压随转速的变化曲线从图中可以看到,在低速区充电电压随发动机转速的增加而迅速增加,在某一转速下,充电电压达到最大值,之后随发动机转速继续增加,充电电压逐渐减小,这样就会导致在低速及高速状态下,电容充电能量不足,导致点火能量不足,从而造成低速启动困难,高速性能下降,影响发动机的性能。4.1.2 解决CDI点火器存在问题的基本思路由图4.2曲线可以看到,电容电压在低速及高速段下降严重,通过上述分析,产生这种现象是由磁电机充电线圈本身的物理特性决定的。要彻底解决这个问题,只有取消这种供电方式,采用其它方式向充电电容供电,使充电电压成为与转速n无关的常数,即在低、中、高速等各种转速情况下,电容充电电压不变,形成如图4.3所示的曲线。图4.3 理想充电电压曲线实现图4.3所示理想曲线,就能获得充足、均匀的各转速下的点火能量,使低速起动及高速性能得到良好的改善。若取消磁电机直接向CDI供电,则只能由蓄电池向CDI提供能量。因此,解决磁电机直接供电CDI存在问题的方法,就是采用由蓄电池直流供电的电子点火器(以下简称DC-CDI)。4.2 改进后的自动进角直流点火器点火时刻或点火提前角是影响发动机性能的重要参数之一,每个给定的发动机运行工况都对应着一个最佳点火提前角,过早或过迟点火,都会直接影响到摩托车的燃油经济性和动力性。为此,获取发动机的最佳点火提前角,并控制发动机尽量按最佳时刻点火是设计关键。因此我们选择自动进角直流点火器,该点火器采用新型点火控制专用集成电路,是晶体管点火与CDI点火的精妙结合,既克服了晶体管点火耗电量大(30W)、CDI点火低速与高速火力不足的缺点,又结合了晶体管点火低速与高速火力强、点火时间准确、CDI点火脉冲尖、功耗小的优点。 通过图4.4可以看出,蓄电池的电压首先经二极管(防止电源极性接反)进入震荡电路,将直流“变为”高频“交流电”,经电流放大电路将信号放大,再经过小变压器升压至200V左右(这三部分可共用元器件,简化电路),从而替代原CDI的磁电机部分,后面的部分与前面介绍的CDI工作原理相同。图4.4 自动进角的DC-CDI工作方框图保护电路是在电容器充满电荷以及触发点火时,控制震荡电路停止工作,防止:1.电容器充电电压过高;2.电容器放电时,放大电路过载;3.降低低转速时DC-CDI的电源消耗。霍尔器件替代了原来的磁电机触发线圈。霍尔的原理是:当有磁铁经过霍尔“窗口”时,控制脚输出一个脉冲信号,该信号经过整型、放大后,触发可控硅SCR导通,使充满电的电容器,经高压点火线圈次级瞬间放电,在高压点火线圈的次级感应出22KV左右的高压,使火花塞点火。点火正时电路:自动进角的DC-CDI,霍尔安装的位置向前提“一小段”,设置在汽油机点火最大提前角处,霍尔器件输出的脉冲信号,经整型、放大,在原与触发可控硅SCR之间,插入一个检测、延迟电路。根据霍尔器件输出的脉冲信号,电路判“读”汽油机实时转速的高、低,在霍尔感应到点火信号时,如果是中、低转速,电路根据实时的转速,自动的延时一小段时间点火,从而达到汽油机点火正时。霍尔元件在实物中的安装位置如图4.5所示。图4.5 安装位置图图4.6是一种电路简单高效的自动进角DC-CDI的原理图。其该电路由T1、R1、R2、D3、B1组成的自激振荡、电流放大、交流升压电路,R2是该振荡电路的正反馈电阻。通过T1的导通和截至,使变压器B1的初级L1的电流通和断,从而在变压器的次级L2感应出脉动的交流电压,由于变压器L2绕圈与L1的比例是200:24,L2的电压峰值可以达几百伏。其波形入图4.7。图4.6 自动进角的DC-CDI原理图振荡的频率直接影响到电能的大小和充电次数,由于模型用汽油机的转速远远高于摩托车汽油机的转速,我们取最高不低于10000转分,振荡的频率应高于20KHz。B1除了合理的匝数以外,其两磁芯间要垫隔离物,隔离物的厚度直接影响的磁通量的大小,调节振荡频率,影响点火能量的输出。图4.7 震荡输出波形图L2输出的脉冲交流电压经快速恢复二极管D2的整流成脉动直流后,给电容器C充电。DW1、DW2、R4是过压检测电路,T2、R3构成了强行停振的保护电路。在振荡、升压、电容C充电的过程中,如果电容器C上的充电电压高于设计值时,稳压管DW1、DW2就会反向击穿,电流通过R3、R4使T2导通,T2饱和导通将T1的基极电位拉下,使T1截至停振,起到保护的作用。当霍尔器件感应到点火触发信号时,霍尔输出一负电平信号,经C6 、R8 、T3整型放大后,该信号分两路,一路通过D6触发晶闸管SCR导通,电容器C放电;另一路通过D5使振荡电路停振,在SCR触发导通,电容器C放电后,SCR能迅速截至,保证下一个充电、触发、放电的过程。C5是过滤霍尔输出信号中可能附带的干扰信号,R6是霍尔的保护电阻。该电路的充电、放电电路的设计非常的高效。与图4.1的充电回路相比:D2输出的直流充电电流直接通过C而不通过高压点火线圈的初级L3到地(尽管L3的绕圈很少,电感量很低)。触发放电的初始阶段,SCR的导通,使得电容器C上的电荷快速通过L3放电,但C上的电荷瞬间通过L3放完后,根据法拉第电磁感应的定律,L3上会产生一个反电动势,它的极性与电容器C加载在L3的极性正好相反。这个反电动势使D4导通,通过C再次构成回路放电,使能量得到充分高效的利用。D1构成极性保护,C2、C3系整个电路的滤波、退耦电路。4.3改进后点火器的优点及安装方法4.3.1 点火器改进后所具备的优点改进后的点火器具有以下优点:启动性能得到改善,启动非常容易,发动机转动一两个压缩行程就可启动,怠速低且很稳,可以延长输出点火时间,点火提前角可以在10度到33度的范围变化。节油和加速效果非常明显,由电瓶直接提供直流电,点火能量强而稳定。并且采用直流点火器,不需要磁电机内部安装点火线圈,为节能竞赛车节省了空间,减轻了质量。4.3.2 点火器的安装方法该点火器安装方便,接线简单,需要一个12V蓄电池,差头形状一致即可,安装时找好安装位置,换下原点火器,直接对插车插头,将点火器上单独的电源线接至起动开关的正极线上即可,如图4.8所示。图4.8 点火器连接示意图4.4 本章小结本章首先介绍了节能竞赛车原有的CDI形式的点火器,然后经过对原有的点火器的电路分析和工作原理进行了研究分析,找出了原有点火器的不足与缺陷。进而在此基础上,根据节能竞赛车的特点和需求对点火器进行了改进,并且讨论分析了改进后的点火器的特点,与原有点火器进行了对比。对改进后自动进角点火器的工作原理和电路进行了分析,充分证明了改进后点火器的优良性能,最后介绍了点火器的安装及接线方法。结论本设计对节能竞赛车电器系统的里程表和点火系作了细致、全面、规范的分析;对总体相应的软、硬件进行了设计、制作及调试,并贯穿至设计的全过程。对文中所提到的各种算法都进行了处理,并得出结论。所做工作如下:(1)对设计中所需要的元件分析其原理和性能,极其应用和发展。(2)详细介绍了本节能竞赛车里程表硬件设计的方案,电路原理图,并附上说明等。(3)详细介绍软件设计方法,并给出各部分的程序清单。(4)给出对节能竞赛车点火系的改进方案,并说明了改进后的点火器工作原理、优点及接线方法等。 在本设计的设计过程中,充分考虑分析了节能竞赛车的特点及要求,电源的提供、功率的损耗、竞赛车体积的大小、质量的大小、驾驶的方便性等因素。通过本次设计也让我学到了更多宝贵知识,扩充了知识含量,对软件及硬件都有了更多更强掌握的能力。建议未来可以把里程表的传感器换成辐条型的传感器,那样精度会更高,可以将显示屏幕再扩大几倍,可以显示更多的驾驶参数,更有利于驾驶员驾驶,这样在比赛中会更优越与其他选手。最后预祝我校节能车能在大赛中获得更好的佳绩,为我校争光!参考文献1曲家骇,王季秩.伺服控制系统中的传感器M. 机械工业出版社. 19982张友德,赵志英,涂时亮.单片机微机原理,应用与实验M.上海:复旦大学出版社,2003:122-1363徐爱钧 彭秀华.Keil Cx51 V7.0 单片机高级语言编程与Vision2应用实践.北京:电子工业出版社,2004.64 党卫华,柯亚仕.“摩托车用数字式CDI 点火器的研制”摩托车技术1999 年第1 期 (8-11) 5张福学。传感器使用电路150例.中国技术出版社M.1992年6邬宽民.单片机外围器件实用手册,数据传输接口器件分册.北京.北京航空航天大学出版社.2001:189-1957王贵悦.新编传感器实用手册.水利电力出版社.2002:67-898 罗振宇.“直流电子点火器DCCDI 电路分析(1)”摩托车技术 1999年第10 期(33,34) 9数字式汽车里程表的设计诸德宏, 潘天红,朱湘临,江苏大学电气信息工程学院 ,江苏,镇江 10基于单片机的汽车里程表设计刘清波 ,蔡淑珍 ,孙业歧 ,史楠1.保定师范专科学校 计算机中心,河北保定2.河北大学 物理科学与技术学院 ,河北 保定 3.河北大学 电子信息工程学院 ,河北 保定 11电子车速里程表的单片机实现方案王锁弘威海双丰电子传感有限公司,山东,威海 12 王永兰,孙学福.“摩托车电容放电式点火器” 摩托车技术 2001年第8 期(29-31)13单片机在转速测量中的应用黄继武武汉大学空间物理与电子信息系14Adachi,S.Modelielectric,ConstansGaP,GaAs,SaSb,InP,InAs,InSb.Physical Review B35(1987):7454-746315Ateml AT89S51 Data sheets.website:致谢在本文完成之际,首先向我最尊敬的导师崔宏耀老师致以最诚挚的敬意和最衷心的感谢。几个月以来,他不遗余力地对我的设计进行了指导。在我毕业设计这段时间,无论是在学习还是在生活上,恩师都给予了我无微不至的关怀。崔老师平易近人,学识渊博,治学严谨,处理问题认真求实的作风一直影响着我,他必是我一生的楷模,对我的帮助和教导我将谨记一生!再过一个月我们就要离开这个学习、生活了四年的校园了,同时自已也将告别学生时代。毕业设计可以说是我最后一次向老师们学习的机会了,也正是因为老师的教导,设计才得以完成。毕业设计虽已完成了,但由于知识水平的局限,实际经验缺乏,设计还存在许多不足,有很多地方需要改进。对于这些不足,我会在今后的工作、生活中努力去改正,并利用自已所学到的知识,为社会作更多的贡献,成为一个对社会有用的人。 此外还要感谢那些给予过我关心、帮助的老师和同学,正是有了大家的关怀、鼓力和我自己的努力,此设计才得以顺利完成。最后预祝黑龙江工程学院发展越来越好,前程似锦!附录 附录内容主要是车速里程表的软件设计部分的程序,所有源代码如下:/Main.C /车速里程表主程序/单片机:STC89C52RC 11.0592MHz/传感器:P3.2(INT0)void main(void) Delayms(200); Init_UART();/初始化串口,波特率9600bps,8位数据,1起始位,1停止位,无校验 Uart_sentstr(rn复位,已经初始化串口!); LCD12864_initial(); /液晶初始化LCD12864_clear();Uart_sentstr(rn液晶初始化OK!);ShowMenu(MENU_INDEX_LOGO);Delayms(1000);ShowMenu(MENU_INDEX_1);InitSystem();/初始化测速系统while(1) if(Flag_Fresh) Flag_Fresh =0; ClcSpeed();/计算所有运行参数 MenuMize+; if(MenuMizeMENU_SWAP_MIZE)/该切换到下一屏了 MenuMize = 0; if(CurMenu=MENU_INDEX_1)/现在是第1屏,那就切换到第2屏 ShowMenu(MENU_INDEX_2); else/否则,切换到第1屏 ShowMenu(MENU_INDEX_1); else FreshScreen();/刷新LCD屏幕数据 /Main.H#ifndef _MAIN_H_#define _MAIN_H_#include Common.H /公用头文件#include Serial.H /串口库文件#include JM12864M.H /液晶屏库文件#include LCD.H#include BikeSpeed.H /测速库文件#endif/Common.C#ifndef _COMMON_H_#define _COMMON_H_#include /包含型号头文件#include #include Serial.H#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define TRUE 1#define FALSE 0#define H1#define L0#define FAILD1#define SUCESS0#define ON0#define OFF1#define NOP _nop_()/*- Interrupt Vectors: Interrupt Address = (Number * 8) + 3 -*/ #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */ #define TF0_VECTOR 1 /* 0x0B Timer 0 */ #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ #define TF1_VECTOR 3 /* 0x1B Timer 1 */ #define SIO_VECTOR 4 /* 0x23 Serial port */ /union Supper_intint dat_int;uchar dat_buf2;union Supper_uintuint dat_uint;uchar dat_buf2;union Supper_ulongulong dat_ulong;uchar dat_buf4;union Supper_floatfloat dat_f;uchar dat_buf4;union Supper_doubledouble dat_d;uchar dat_buf8;void Delayus(uchar US);/延时US微妙void Delayms(uint MS);/延时MS微妙#endif/Serial.H#ifndef _SERIAL_H_#define _SERIAL_H_#include Common.H#define uint unsigned int#define uchar unsigned char#define INBUF_LEN 20 /数据长度/延时函数void Delay(uint ms);/初始化串口9600bps/11.0592MHZvoid Init_UART(void);/向串口发送一个字符 void send_char_com(unsigned char ch);void Uart_sentstr(uchar str);/串口以查询方式发送数据1个字符串#endif/JM12864M.H#ifndef _JM12864M_H_#define _JM12864M_H_#include Common.H/*12864液晶常量及操作*/#define iDat1/数据标志#define iCmd0/指令标志#define LCDb_L10x80/第一行的地址#define LCDb_L20x90/第二行的地址#define LCDb_L30x88/第三行的地址#define LCDb_L40x98/第四行的地址#define LCDb_CGRAM_ADDR0x40/CGRAM的开始地址#define LCDb_CGMAX 64/CGRAM存储的最大字节数#define LCDb_SET_RS LCD_RS=1/四个控制管脚的控制操作#define LCDb_SET_RW LCD_RW=1#define LCDb_SET_E LCD_E=1#define LCDb_SET_RST LCD_RST=1#define LCDb_SET_PSB LCD_PSB=1#define LCDb_CLR_RS LCD_RS=0#define LCDb_CLR_RW LCD_RW=0#define LCDb_CLR_E LCD_E=0#define LCDb_CLR_RST LCD_RST=0#define LCDb_CLR_PSB LCD_PSB=0#define LCDb_DOP1/输出数据总线端口定义#define LCDb_DIP1/输入数据总线端口定义#define LCDb_FUNCTION0x38 / 液晶模式为8位#define LCDb_BASCMD0x30/ 基本指令集#define LCDb_CLS0x01/ 清屏#define LCDb_HOME0x02/ 地址返回原点,不改变DDRAM内容#define LCDb_ENTRY 0x06/ 设定输入模式,光标加,屏幕不移动#define LCDb_C2L0x10/ 光标左移#define LCDb_C2R0x14/ 光标右移#define LCDb_D2L0x18/ 屏幕左移#define LCDb_D2R0x1C/ 屏幕又移#define LCDb_ON0x0C/ 打开显示#define LCDb_OFF0x08/ 关闭显示#define LCDb_EXTCMD10x34/ 扩充指令集,关闭绘图显示#define LCDb_EXTCMD20x36/ 扩充指令集,打开绘图显示#define LCDb_EXTCLS0x01/ 清屏#define LCDb_REVL10x04/ 反显第1行#define LCDb_REVL20x05/ 反显第2行#define LCDb_REVL30x06/ 反显第3行#define LCDb_REVL40x07/ 反显第4行/=/以下是字模工具取出的图片数组extern uchar code GDRAM;/*函数名称: LCD12864_readbyte功 能: 从12864液晶读出一个字节数据或者指令参 数: DatCmd-为iDat时是数据,为iCmd时是指令返回值 : dByte-读回的数据或者指令/*/uchar LCD12864_readbyte(uchar DatCmd);/*函数名称: LCD12864_sendbyte功 能: 向12864液晶写入一个字节数据或者指令参 数: DatCmd-为iDat时是数据,为iCmd时是指令 dByte-为写入12864的数据或者指令返回值 : 无/*/void LCD12864_sendbyte(uchar DatCmd, uchar dByte);/*函数名称: LCD12864_sendstr功 能: 在指定坐标,向12864液晶写入一个字符串参 数: ptString-字符串指针 Row-指定的行 Col-指定的列返回值 : 无/*/void LCD12864_sendstrXY(uchar Row, uchar Col, uchar *ptString);/*函数名称: LCD12864_clear功 能: 12864液晶清屏参 数: 无返回值 : 无/*/void LCD12864_clear(void);/*函数名称: LCD12864_readBF功 能: 12864液晶清屏参 数: 无返回值 : busy-为1时忙,为0时可以接收指令/*/uchar LCD12864_readBF(void);/*函数名称: LCD12864_gotoXY功 能: 移动到指定位置参 数: Row-指定的行 Col-指定的列返回值 : 无/*/void LCD12864_gotoXY(uchar Row, uchar Col);/*函数名称: LCD12864_initial功 能: 12864液晶初始化参 数: 无返回值 : 无/*/void LCD12864_initial(void);/*函数名称: LCD12864_opGDRAM功 能: 向GDRAM写入数据,并显示(完成绘图功能)参 数: ptGDRAM-GDRAM数据指针返回值 : 无/*/void LCD12864_opGDRAM(const uchar *ptGDRAM);#endif/LCD.H#ifndef _LCD_H_#define _LCD_H_#include Common.H#define MENU_INDEX_NULL 0xFF /没被初始化的菜单#define MENU_INDEX_LOGO 0xA0 /LOGO菜单#define MENU_INDEX_1 0xA1 /菜单1#define MENU_INDEX_2 0xA2 /菜单2#define MENU_SWAP_MIZE 5 /两个菜单的切换时间,单位秒钟extern uchar CurMenu;/当前菜单extern uint MenuMize; /切换菜单的累加器void ShowMenu(uchar menu_index);/显示一个菜单/刷新LCD屏幕数据void FreshScreen(void);#endif/BikeSpeed.H/测速主文件#ifndef _BIKE_SPEED_H_#define _BIKE_SPEED_H_#define LEN_PER_CYCLE 400.0 /每圈400米#define PLUS_PER_ROUND 8.0 /车轮每转一圈,传感器发出的脉冲数#define WHEEL_DIAM_SIZE 0.800 /车轮的直径,单位米 extern uchar Hour;/小时extern uchar Minute;/分钟extern uchar Second;/秒钟extern uint CurSpeed;/当前速度,单位0.01km/h extern float Distance;/累计里程,单位0.01km extern uint Cycles; /跑道圈数extern uint AvgSpeed;/平均速度extern uint MaxSpeed;/最高速度extern bit Flag_Fresh;/刷新屏幕标志 void InitSystem(void);/初始化测速系统void ClcSpeed(void);/计算所有运行参数#endif/Serial.cvoid Init_UART(void) RCLK=1; TCLK=1; TH2 = 0x0FF;TL2 = 0x0DC; RCAP2H=0xFF; RCAP2L=0xDC; /定时器2自动装入8位 /波特率9600 TR2=1; IE=0x00; SCON=0x50; /向串口发送一个字符 void send_char_com(unsigned char ch) TI=0;SBUF=ch;while(TI=0);TI=0;void Uart_sentstr(uchar str)/串口以查询方式发送数据1个字符串 while(*str) send_char_com(*str);str+; /Serial.H#ifndef _SERIAL_H_#define _SERIAL_H_#include Common.H#define uint unsigned int#define uchar unsigned char#define INBUF_LEN 20 /数据长度/延时函数void Delay(uint ms);/初始化串口9600bps/11.0592MHZvoid Init_UART(void);/向串口发送一个字符 void send_char_com(unsigned char ch);void Uart_sentstr(uchar str);/串口以查询方式发送数据1个字符串#endif/Common.C#ifndef _COMMON_H_#define _COMMON_H_#include /包含型号头文件#include #include Serial.H#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define TRUE 1#define FALSE 0#define H1#define L0#define FAILD1#define SUCESS0#define ON0#define OFF1#define NOP _nop_()/*- Interrupt Vectors: Interrupt Address = (Number * 8) + 3 -*/ #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */ #define TF0_VECTOR 1 /* 0x0B Timer 0 */ #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ #define TF1_VECTOR 3 /* 0x1B Timer 1 */ #define SIO_VECTOR 4 /* 0x23 Serial port */ /union Supper_intint dat_int;uchar dat_buf2;union Supper_uintuint dat_uint;uchar dat_buf2;union Supper_ulongulong dat_ulong;uchar dat_buf4;union Supper_floatfloat dat_f;uchar dat_buf4;union Supper_doubledouble dat_d;uchar dat_buf8;void Delayus(uchar US);/延时US微妙void Delayms(uint MS);/延时MS微妙#endif/Common.C#include Common.H/*函数名称: Delayus功 能: 延时指定微秒(11.0592M晶振)参 数: US-延时的微秒数(大约,不是很精确,MS越大越准确)返回值 : 无/*/void Delayus(uchar US) while(US-); /4是在11.0592MHz晶振下,通过软件仿真反复实验得到的数值/*函数名称: Delayms功 能: 延时指定毫秒(11.0592M晶振)参 数: MS-延时的毫秒数返回值 : 无/*/void Delayms(uint MS) uint i,j; for( i=0;iMS;i+) for(j=0;j524;j+);/524是在11.0592MHz晶振下,通过软件仿真反复实验得到的数值/JM12864M.C/液晶屏的驱动程序#include JM12864M.H/*JM12864M-2 端口定义*/#define LCD_data P1 /数据口sbit LCD_RS = P24; /寄存器选择输入 sbit LCD_RW = P23; /液晶读/写控制sbit LCD_E = P22; /液晶使能控制sbit LCD_PSB = P25; /串/并方式控制sbit LCD_RST = P27; /复位控制/*函数名称: LCD12864_readbyte功 能: 从12864液晶读出一个字节数据或者指令参 数: DatCmd-为iDat时是数据,为iCmd时是指令返回值 : dByte-读回的数据或者指令/*/uchar LCD12864_readbyte(uchar DatCmd) uchar dByte;if (DatCmd = iCmd) /指令操作LCDb_CLR_RS;elseLCDb_SET_RS;LCDb_SET_RW; /读操作LCDb_SET_E;dByte=LCDb_DI; /读数据或者指令Delayms(1); /时序调整LCDb_CLR_E;return dByte;/*函数名称: LCD12864_sendbyte功 能: 向12864液晶写入一个字节数据或者指令参 数: DatCmd-为iDat时是数据,为iCmd时是指令 dByte-为写入12864的数据或者指令返回值 : 无/*/void LCD12864_sendbyte(uchar DatCmd, uchar dByte)if (DatCmd = iCmd)/指令操作LCDb_CLR_RS;elseLCDb_SET_RS;LCDb_CLR_RW;/写操作LCDb_SET_E;LCDb_DO = dByte;/写入数据Delayus(100);LCDb_CLR_E;/*函数名称: LCD12864_sendstr功 能: 在指定坐标,向12864液晶写入一个字符串参 数: ptString-字符串指针 Row-指定的行 Col-指定的列返回值 : 无/*/void LCD12864_sendstrXY(uchar row, uchar col, uchar *ptString)LCD12864_gotoXY(row,col);while(*ptString)!=0) /字符串未结束一直写LCD12864_sendbyte(iDat, *ptString+);/*函数名称: LCD12864_clear功 能: 12864液晶清屏参 数: 无返回值 : 无/*/void LCD12864_clear(void)LCD12864_sendbyte(iCmd,LCDb_CLS);Delayms(2);/ 清屏指令写入后,2ms 的延时是很必要的!/*函数名称: LCD12864_readBF功 能: 12864液晶清屏参 数: 无返回值 : busy-为1时忙,为0时可以接收指令/*/uchar LCD12864_readBF(void) uchar busy;busy=LCD12864_readbyte(iCmd);/读回BF标志和地址if(busy&0x80)/如果忙,返回忙状态busy=1;else /不忙,可以写入busy=0;return busy;/*函数名称: LCD12864_gotoXY功 能: 移动到指定位置参 数: Row-指定的行 Col-指定的列返回值 : 无/*/void LCD12864_gotoXY(uchar Row, uchar Col)switch (Row) /选择行case 2:LCD12864_sendbyte(iCmd, LCDb_L2 + Col); break;/写入第2行的指定列case 3:LCD12864_sendbyte(iCmd, LCDb_L3 + Col); break;/写入第3行的指定列case 4:LCD12864_sendbyte(iCmd, LCDb_L4 + Col); break;/写入第4行的指定列default:LCD12864_sendbyte(iCmd, LCDb_L1 + Col); break;/写入第1行的指定列/*函数名称: LCD12864_initial功 能: 12864液晶初始化参 数: 无返回值 : 无/*/void LCD12864_initial(void)Delayms(100);/ 等待内部复位LCD12864_sendbyte(iCmd, LCDb_FUNCTION);/功能、模式设定while(LCD12864_readBF(); LCD12864_sendbyte(iCmd, LCDb_ON);/打开显示while(LCD12864_readBF();LCD12864_clear();/清屏while(LCD12864_readBF();LCD12864_sendbyte(iCmd, LCDb_ENTRY);/ 输入模式设定/JM12864M.H#ifndef _JM12864M_H_#define _JM12864M_H_#include Common.H/*12864液晶常量及操作*/#define iDat1/数据标志#define iCmd0/指令标志#define LCDb_L10x80/第一行的地址#define LCDb_L20x90/第二行的地址#define LCDb_L30x88/第三行的地址#define LCDb_L40x98/第四行的地址#define LCDb_CGRAM_ADDR0x40/CGRAM的开始地址#define LCDb_CGMAX 64/CGRAM存储的最大字节数#define LCDb_SET_RS LCD_RS=1/四个控制管脚的控制操作#define LCDb_SET_RW LCD_RW=1#define LCDb_SET_E LCD_E=1#define LCDb_SET_RST LCD_RST=1#define LCDb_SET_PSB LCD_PSB=1#define LCDb_CLR_RS LCD_RS=0#define LCDb_CLR_RW LCD_RW=0#define LCDb_CLR_E LCD_E=0#define LCDb_CLR_RST LCD_RST=0#define LCDb_CLR_PSB LCD_PSB=0#define LCDb_DOP1/输出数据总线端口定义#define LCDb_DIP1/输入数据总线端口定义#define LCDb_FUNCTION0x38 / 液晶模式为8位#define LCDb_BASCMD0x30/ 基本指令集#define LCDb_CLS0x01/ 清屏#define LCDb_HOME0x02/ 地址返回原点,不改变DDRAM内容#define LCDb_ENTRY 0x06/ 设定输入模式,光标加,屏幕不移动#define LCDb_C2L0x10/ 光标左移#define LCDb_C2R0x14/ 光标右移#define LCDb_D2L0x18/ 屏幕左移#define LCDb_D2R0x1C/ 屏幕又移#define LCDb_ON0x0C/ 打开显示#define LCDb_OFF0x08/ 关闭显示#define LCDb_EXTCMD10x34/ 扩充指令集,关闭绘图显示#define LCDb_EXTCMD20x36/ 扩充指令集,打开绘图显示#define LCDb_EXTCLS0x01/ 清屏#define LCDb_REVL10x04/ 反显第1行#define LCDb_REVL20x05/ 反显第2行#define LCDb_REVL30x06/ 反显第3行#define LCDb_REVL40x07/ 反显第4行/=/以下是字模工具取出的图片数组extern uchar code GDRAM;/*函数名称: LCD12864_readbyte功 能: 从12864液晶读出一个字节数据或者指令参 数: DatCmd-为iDat时是数据,为iCmd时是指令返回值 : dByte-读回的数据或者指令/*/uchar LCD12864_readbyte(uchar DatCmd);/*函数名称: LCD12864_sendbyte功 能: 向12864液晶写入一个字节数据或者指令参 数: DatCmd-为iDat时是数据,为iCmd时是指令 dByte-为写入12864的数据或者指令返回值 : 无/*/void LCD12864_sendbyte(uchar DatCmd, uchar dByte);/*函数名称: LCD12864_sendstr功 能: 在指定坐标,向12864液晶写入一个字符串参 数: ptString-字符串指针 Row-指定的行 Col-指定的列返回值 : 无/*/void LCD12864_sendstrXY(uchar Row, uchar Col, uchar *ptString);/*函数名称: LCD12864_clear功 能: 12864液晶清屏参 数: 无返回值 : 无/*/void LCD12864_clear(void);/*函数名称: LCD12864_readBF功 能: 12864液晶清屏参 数: 无返回值 : busy-为1时忙,为0时可以接收指令/*/uchar LCD12864_readBF(void);/*函数名称: LCD12864_gotoXY功 能: 移动到指定位置参 数: Row-指定的行 Col-指定的列返回值 : 无/*/void LCD12864_gotoXY(uchar Row, uchar Col);/*函数名称: LCD12864_initial功 能: 12864液晶初始化参 数: 无返回值 : 无/*/void LCD12864_initial(void);/*函数名称: LCD12864_opGDRAM功 能: 向GDRAM写入数据,并显示(完成绘图功能)参 数: ptGDRAM-GDRAM数据指针返回值 : 无/*/void LCD12864_opGDRAM(const uchar *ptGDRAM);#endif/Common.C#ifndef _COMMON_H_#define _COMMON_H_#include /包含型号头文件#include #include Serial.H#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define TRUE 1#define FALSE 0#define H1#define L0#define FAILD1#define SUCESS0#define ON0#define OFF1#define NOP _nop_()/*- Interrupt Vectors: Interrupt Address = (Number * 8) + 3 -*/ #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */ #define TF0_VECTOR 1 /* 0x0B Timer 0 */ #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ #define TF1_VECTOR 3 /* 0x1B Timer 1 */ #define SIO_VECTOR 4 /* 0x23 Serial port */ /union Supper_intint dat_int;uchar dat_buf2;union Supper_uintuint dat_uint;uchar dat_buf2;union Supper_ulongulong dat_ulong;uchar dat_buf4;union Supper_floatfloat dat_f;uchar dat_buf4;union Supper_doubledouble dat_d;uchar dat_buf8;void Delayus(uchar US);/延时US微妙void Delayms(uint MS);/延时MS微妙#endif/BikeSpeed.C/测量速度周期50毫秒,20次测量(1秒)对这些速度值做数字滤波#include BikeSpeed.Huchar Hour=0;/小时uchar Minute=0;/分钟uchar Second=0;/秒钟uchar Ms50 = 0;/50毫秒值(用于累计Timer0的溢出次数)bit Flag_Fresh = 0;/刷新屏幕标志uint SensorPlus = 0;/传感器脉冲计数器uchar SensorPlusBak = 0;/传感器脉冲计数器的备份uint CurSpeed = 0;/当前速度,单位0.01km/h float Distance = 0;/累计里程,单位0.01km uint Cycles = 0; /跑道圈数uint AvgSpeed = 0;/平均速度uint MaxSpeed = 0;/最高速度 float DisPerPlus;/ 每个脉冲对应的长度,单位:米/脉冲/sbit pin_Sensor = P32;/初始化定时器Timer0void init_timer0(void)TMOD &= 0xF0; /* Timer 0 mode 1 with software gate */TMOD |= 0x01; /* GATE0=0; C/T0#=0; M10=0; M00=1; */TH0 = 0x4C; /* init values */TL0 = 0x00;ET0=1; /* enable timer0 interrupt */EA=1; /* enable interrupts */TR0=1; /* timer0 run */初始化外部中断INT0 void init_int0(void)EX0=1; / 允许外部中断IT0=1; /下降沿触发EA =1;/初始化测速系统void InitSystem(void) Hour=0;/小时 Minute=0;/分钟 Second=0;/秒钟 Ms50 = 0;/50毫秒值(用于累计Timer0的溢出次数) Flag_Fresh = 0;/刷新屏幕标志 SensorPlus = 0;/传感器脉冲计数器 SensorPlusBak = 0;/传感器脉冲计数器的备份 CurSpeed = 0;/当前速度,单位0.01km/h Distance = 0;/累计里程,单位0.01km Cycles = 0; /跑道圈数 AvgSpeed = 0;/平均速度 MaxSpeed = 0;/最高速度/计算运算系数,运算系数 = 周长/辐条数 = *车轮直径/辐条数DisPerPlus = 3.14159266*WHEEL_DIAM_SIZE/PLUS_PER_ROUND; init_int0();/初始化中断INT0init_timer0(); /初始化定时器Timer0,定时50毫秒/Timer0溢出中断服务程序void TF0_srv(void) interrupt TF0_VECTOR using 1 /* interrupt address is 0x000b */TF0 = 0;TH0 = 0x4C; /* init values */TL0 = 0x00;Ms50+;if(Ms5019) /够一秒了,秒钟加1SensorPlusBak = SensorPlus; SensorPlus = 0;Flag_Fresh = 1;/置刷新屏幕标志Ms50 = 0;Second+;if(Second59)/若够一分钟了,分钟加
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:节能车竞赛车(HLJIT-3A型)电器系统设计【1张CAD图纸】【汽车类】
链接地址:https://www.renrendoc.com/p-399081.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!