《毕业论文基于单片机的电子车速里程表的设计说明.doc》由会员分享,可在线阅读,更多相关《毕业论文基于单片机的电子车速里程表的设计说明.doc(79页珍藏版)》请在课桌文档上搜索。
1、邮电大学移通学院毕业设计任务书设计题目基于单片机的电子车速里程表的设计学生系别自动化系专业电气工程及其自动化班级七班指导教师职称副教授 联系教师单位邮电大学移通学院 下任务日期 年12 月 28 日主要研究容、方法和要求主要有车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器,可以显示自行车的总里程和一段时间的阶段里程,还可显示当前车速以及超速报警。目标:设计一种基于单片机的电子车速里程表,能够实现显示自行车的行驶时间、速度、路程功能。主要容。思路和方法:1、 学习并理解脉冲计算原理;2、 使用Protel DXP软件绘制电路原理图与PCB图;3、 熟悉单片机C语言编程;4、 设计系
2、统软件程序。进度计划第一周至第四周:查阅文献,进行课题调研,写出开题报告。第五周:拟出目录,根据目录准备写论文。第六周至第七周:第一次初稿完成,交予老师查看。第八周至第九周:修改初稿论文,第二次交予老师查看。准备查重。第十周:第二次修改初稿论文,交予老师查看,继续修改论文,准备答辩。第十一周:准备论文答辩PPT。主要参考文献1 火良,森STM32库开发实战指南P机械工业,2013062 王锁弘电子车速里程表的单片机实现方案J国外电子元件,2004063 丁敏电动自行车里程速度计的设计J机械管理开发,2012064 家国,董秀成单片机原理与应用及C51程序设计D清华大学,2006085 罗四维传
3、感器应用电路详解P电子工业,1996指导教师签字:年月日教研室主任签字:年月日备注:此任务书由指导教师填写,并于毕业设计开始前下达给学生。- 66 - / 79摘 要自行车自1868年引入我国已有一百多个年头。随着国人均GDP的增长,自行车从普通的运输、代步工具发展成为人们休闲娱乐与锻炼的首选。自行车凭借着高科技带来的高配置和它自身的优势,逐渐的又吸引了大家的眼球。随着周边环境的破坏污染,自行车必然会有着大好的发展空间。人们可以通过一些简单的仪器仪表了解实时里程、速度。可是现在的汽车或者摩托车的仪表片都是机械式的,不方便驾驶员直接捕捉信息。所以在此次设计中我们将想办法把速度时间等数据通过LED
4、显示出来。本论文主要阐述一种基于单片机的自行车速度/里程计的设计。以 AT89C51单片机为核心,采用ITR-9707光电传感器测转,AT24C02 实现在系统掉电的时候保存里程信息。通过频率测量模块和转换模块将数据递给MCS,再通过数据存取模块与LED 模块显示速度和里程。完成此次的测量显示。文章详细介绍了自行车速度/里程计的硬件电路和软件设计。在设计硬件电路的时候,将光电传感器采集的脉冲信号给单片机处理并显示出来。在此还增加了时间显示功能和超速报警功能。软件系统设计部分采用C+软件对每一个模块进行编程。最终达到设计目的。关键词:里程速度光电传感器单片机ABSTRACTBicycle has
5、 been introduced to our country more than one hundred years since 1868. As the growth of the domestic per capital the GDP, the bicycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. Bicycle with high-tech bri
6、ngs high configuration and its own advantages, gradually attracted everybodys eyes again. With the destruction of the surrounding environment, bicycle is bound to have good development space. But now the car or motorcycle instrument are mechanical, the driver could not directly capture information.
7、So we will think of some way to put speed in the design time, such as data displayed by LED.In these paper, the bicycle speed/mileage design based on the Hall element is Single Chip Microcomputer. By AT89C51 as kernel, using ITR-9707 Photoelectric sensor to measure revolution, the measure and statis
8、tic are achieved. The range information are saved by AT24C02 when the power is off. The date through frequency measurement module and data conversion module be passed to the MCS, and then the speed and mileage were displayed by access module and LED module. Complete the measurement display.In this a
9、rticle, the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware, the pulse number is transmitted of one second of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent
10、 to display scream. And an increase of time display and speed alarm. Software system design part adopts C+ software for programming each module. Finally, we can achieve the design purpose.Key words: Mileage speed Photoelectric sensor Single Chip Microcomputer目 录前 言1 第一章 计速里程表概述2 第一节 课题研究背景2 第二节 车速里程
11、表的发展3一、传统车速里程表3 二、电子车速里程表3 第三节 设计的主要任务和容4 第二章 系统控制方案设计5 第一节 设计任务的分析与实现5 一、任务分析 5二、实现方法5第二节 主控单片机AT89C51 6 第三章 系统的硬件电路设计8 第一节 频率测量模块8 一、光电传感器的测量原理8二、信号的转换9 第二节 初始化模块10 一、初始化的概述10 二、电路原理说明10 第三节 定时/中断服务模块12一、中断基本概念12二、MCS-51单片机的中断系统12 三、单片机定时/计数功能介绍15 第四节 数据存取模块17 一、AT24C02简要介绍17 二、工作方式17 第五节 显示模块18 一
12、、外界芯片74LS245/74HC13818 二、工作原理19第六节 超速报警电路模块20 第七节 其他模块20 一、时钟电路的设计20 二、工作电源的设计21三、开关电路的设计22 第四章 系统的软件设计23 第一节 测量算法概述23 第二节 中断子程序的设计23 第三节 数据处理程序设计25 一、里程计算服务程序25 二、速度计算服务程序26第四节 显示服务程序的设计27 第五章 系统可靠性设计和功能实现29 第一节 硬件系统的可靠性设计方法29 第二节 软件系统的可靠性设计30第三节 功能实现31 结 论32 致 33 参考文献34附 录35 一、英文原文35 二、英文翻译39 三、电路
13、图42 四、PCB图43 五、源程序44 前 言在人们不断的创新下,越来越多的高科技产品和技术被更新。但是某些技术的更新换代并非全是好事,带来的则是人们的过度消费和产品的非高品质,在生产和生态环境之间得不到平衡。人们自我保护意识越来越强,对产品安全性能要求也越来越高,这是未来科技发展必须考虑的因素之一。但是要想长久的发展,必须还得重视对生态环境的保护,保护环境,使用清洁能源逐渐成为当今世界的主题。自行车凭借着高科技带来的高配置和它自身的优势,逐渐的又吸引了大家的眼球。随着越来越多的人对环境的重视,相信自行车也会得到越来越多的人的亲睐。第一章 计速里程表概述第一节 课题研究背景随着人们不断地创新
14、发展,越来越多以前只能在想象中或者在电视机里面出现的东西出现在我们的日常生活。一个国家要有大的发展,工业发展至关重要,而与工业息息相关的则是交通运输。随着第一辆燃机驱动三轮汽车的问世,很快将全世界带入了汽车社会。由于汽车发展速度过快,而人们又不能够很好地解决发展过快导致的一些遗留问题,两者之间不能协调。在各个发达国家,许多城市要求限购、限行。我国的、等地,也逐一的加入限购、限行的的队伍中。在这种大环境下,无疑是给了清洁环保的自行车行业一个证明自身价值和发展机会。而21世纪的人们也不仅仅满足于自行车的代步功能。在功能上,除了代步,更有锻炼、比赛、娱乐等功能。为了赢得大众的亲睐,开发商引入了速度显
15、示,时间显示,里程显示,超速报警,更有甚者GPS导航系统都可以安装实现。一定意义上可以和现在的汽车媲美,除了动力方式上的不一样。因为这些功能的引入,大众可以更直观方便的使用。特别是运动员可以通过这些功能实时了解掌控情况,分析过程和结果,调整自身训练节奏。随着控制要求的增加,单片机部数据总线也在不断增加,以达到控制要求。在90年代消费电子产品的大量增加的刺激下,16位的单片机也逐步被新出现的32位的单片机所取代。而工控领域也正是看中了单片机的小体积、低功耗、易扩展、性价比高等特点,将其作为设备控制的首选。MCS也因此占领了当时的主流市场。我们日常所用的家电、手机、计算机等里面都配置的有单片机芯片
16、,可见它应用之广泛功能之强大。此次设计我们选用的就是单片机。第二节 车速里程表的发展一、传统车速里程表一原理以前的车速表和里程表都是机械式的,全机械式的,由各个零部件构成的。车速表主要由齿轮、钢丝缆、磁铁、游丝和指针组成。变速器的齿轮通过软轴钢丝缆与软轴的另一端的罩圈的磁铁相连,磁铁带动游丝,游丝带动指针。汽车不动的时候指针是置零的,当汽车行驶带动此轮转动以后,指针也被带动从而现实显示当前的速度。对于里程表,它是利用表盘转动实现里程累加,而不是指针。通过传动齿轮与蜗杆啮合使计数机鼓轮转动,它的特点是如果上一级转了10圈,那么下一级只转了1圈。二优劣势这种传统的机械式里程表为人们提供了一个速度里
17、程的参考值,在一定程度上确实保障了司机的驾驶安全。但由于全是机械式的,日常磨损误差较大,而且不好保养。变速器齿轮高速运转时,通过软轴带动罩圈磁铁,由于软轴的迟滞性,使实时速度产生误差显示不准确。如果汽车使用不当或者不保养,超出钢丝缆所能承受的极限拉力,会造成钢丝缆断裂,使速度表功能失效。也就是不耐用,特别是摩托车的仪表盘,我深有体会。人们的出行受到了一定程度的限制。所以近年也渐渐地退出了市场。二、电子车速里程表一原理其原理是利用传感器输入给MCS的脉冲数从而计算出当下的速度和里程。在车轮上变速箱蜗轮组件的蜗杆上安装电磁式或者光电式的传感器,变速箱的齿轮带动传感器的磁钢作圆周运动,单位是N/周。
18、速度通过光电传感器或者霍尔传感器向MCS发送的脉冲信号经微控制器处理后显示出来,根据汽车行驶时间计算出行程。二优劣势与传统的速度里程表比较,电子式的核心部分是用传感器替代了有日常损耗的软轴,解决了由于传统车速里程表指针不稳定,摆动过大和软轴钢丝易因疲劳断裂等缺点所带来的不方便的问题。相比之下,比指针显示速度更直接明了。但也有不好的地方,因为传感器与被动轮直接接触,所以传感器易损坏。同样的,有机械磨损,就会减少传感器的正常工作时间。本次设计采用的时光电式脉冲传感器。第三节 设计的主要任务和容电子测速仪,顾名思义就是由车速表、里程表、显示这三部分组成,本课题研究的主要容是以MCS为主,以光电传感器
19、和显示器为辅,基于光电脉冲信号的速度里程测量仪。通过软件C+和protel的辅助,达到显示速度、里程、行驶时间,显示总里程、阶段里程,显示当前车速以及车速报警的目的。通过此次的设计,必须掌握传感器脉冲的计算原理,以及protel DXP的使用和单片机C语言编程。通过对每个功能模块的理解剖析,设计出符合题目要求的电路原理图以及源代。第二章 系统控制方案设计第1节 设计任务的分析与实现一、任务分析本次设计主要根据三个原则来的,及简易、直观、可靠性高。为了使单片机能够更多的应用在复杂、体积要求较高的工业设备中,单片机把CPU和更多的外围设备集成在一个芯片上,使其更好更快的适应设备环境。分析此次的任务
20、要求,完全可以通过一个单片机,一个脉冲发生装置,一个显示器即可完成。单片机发展至今已经很成熟,体积小、价格低、功能强、功耗低、扩展灵活、微型化已经是现有单片机共有的特性。因为此次任务的里程和时间是通过单片机软件程序直接计算得出的,所以简化了硬件电路。体积小和低损耗也大大满足了本次设计特殊使用场合和条件的要求。如今的传感器,在灵敏度、精度控制和抗外界环境干扰能力等方面做得越来越好。因为是利用传感器采集来的脉冲数来计算速度的,因此测量误差较低。实际中的误差控制在几米,比较整个行程来说,误差不大。而数据读取采用的是LED直接显示,用户可以直接读取数据,作出判断,更方便省时。通过它们的搭配将计算机技术
21、和控制技术结合在了一起,完成整个测量系统,满足简易、直观、可靠性的要求。2、 实现方法设计中的最核心部分是将采集的信号给单片机经过计算得出我们想要的数据。我们面临的主要问题是怎么实现这个过程。也就是怎么采集信号,怎么将信号递给单片机,单片机要怎么识别信号,单片机怎么将这些信号怎么计算显示。我们在下面一一分析解决这些问题。在采集信号部分在这里不多介绍,在后面的文章中有讲到,主要讲后面的部分。我们先不考虑外界环境的干扰,传感器正常工作,将获取到的车速信息转换成脉冲,通过外围电路传递给单片机。但是单片机是并不能够识别这些信号的,而且在传送的整个过程当中,容易被外界的干扰信号,致其衰减。要做的第一步是
22、将脉冲信号放大,目的是当信号受到干扰导致信号波形幅值变小时依然能够被检测出来。因为单片机并不能识别这样的信号,所以要通过处理将现有的放大信号转换为单片机能够识别的TTL电平信号。这里简单的介绍一下TTL信号,TTL电平信号可直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路。再者,计算机处理器控制的设备部的数据传输是在高速下进行的,而TTL接口的操作恰能满足这个要求。因为TTL电平信号使用二进制规则进行换算的输入电压为正,等价于逻辑1,为负或者0,等价于逻辑0,满足设备部之间的通信标准。所以我们这里也采用这项技术将其转换为单片机可是别的逻辑信号。再通过软件程序对信号进行分析整理计算,
23、通过显示电路,就可以得到我们要的数据了。系统的整个流程图如图2.1所示。波行整形波行变换放大器信号数字存储电路单片机LED显示图2.1 过程流程图第二节 主控单片机AT89C51AT89C51标准功能有,4K字节Flash 闪速存储器,128字节部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电时保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作直到
24、下一个硬件复位。引脚图如图2.2所示。图2.2 AT89C51芯片引脚图第三章 系统的硬件电路设计第一节 频率测量模块一、光电传感器的测量原理一传感器的工作原理常见的红外线光电开关有对射式和反射式两种,这里就对反射式就不多讲了。对射式光电开关是通过对射式本身的发射器向本身的接收器发送红外线信号完成触点动作的,通过阻隔红外线信号来控制触点的开和关。换而言之,回到本次设计中来,我们采用的是ITR-9707对射式光电传感器。当发射器和接收器之间刚好被我们的铝盘隔开时,接收器没有采集到对应的信号,传感器将会输出一个低电平。当发射器向接收器发送的信号刚好透过铝盘上的小孔,没有被隔开时,传感器会输出一个高
25、电平,从而形成一个脉冲。我们就是利用这个脉冲计算得出数据的。二测量系统描述对于脉冲信号采集这部分,只需利用一块铝盘和传感器就可以完成。铝盘与车后轮固定在一起,与自行车的转轴垂直。在后轮转动的时侯铝盘也要跟着转动。该铝盘上挖有小孔,其目的就是在自行车转动的时候让传感器产生脉冲,再经过波形整形,整形成单片机可识别的TTL信号。小孔孔径应该比红外线宽度略大。为了保证整套系统的准确性,原则上是铝盘外围的小孔数量越多越好,传感器可以捕捉到更多的脉冲信号。穿孔数量越多,它们之间的距离越小。可以有效地避免停车时因为孔距而隔断红外线信号所带来的误差。在此次任务中选用的是11个过孔的铝盘,测量系统描述图如图3.
26、1所示。图3.1 测量系统描述结构图二、信号的转换一放大部分信号放大部分采用的是开关三极管组成的零偏置放大器。当输入端为低电压时,由于基极没有电流流过,所以集电极也不会有电流流过。致使连接于集电极端的负载也没电流,此时三极管处于截止区,由于上拉电阻的存在,电路输出高电平。反之则三极管导通。输出电压随着输入电压的上升而下降。一般为了能够确保三极管工作在截止区,通常会使工作电压小于0.3V,也就是说系统能对任意大于0.3V 的正弦波和脉冲信号进行测量。二信号整形部分此处将运用带施密特触发器的反相器DM74LS14将放大信号转换为TTL信号,将其加到单片机的P3.4 口上。施密特触发器有一个正向的阀
27、值电压和一个负向的阀值电压。在输入脉冲信号的波形中,一个周期的输入电压幅值单调递增部分,只要达到了正向阀值电压,则输出电压就会发生突变;在输入电压幅值单调递减部分,只要输入电压达到负向阀值电压,则输出电压也会发生突变。在这个过程中,输出电压有一个滞后现象,刚好适用于我们初始化电路中的延时过程。通过输出电压的突变可以将三角波和正弦波转化为矩形波,实现波形转换。在矩形波传输过程中往往会发生波形畸变、振荡、附加噪声等状况,都可以用DM74LS14通过整形得到理想的矩形脉冲。电路原理图如图3.2所示。图3.2 信号转换电路图第二节 初始化模块一、初始化的概述系统初始化也可以说成是对系统的复位,复位电路
28、就是为了防止系统出现死机和程序飞走的状况的状况而设计的,为系统提供了保障。也相当于是对单片机的重启过程,实际中我要重新测量,清空MCS里面的数据的时后就可以复位。另一方面,复位电路给了单片机一个延时,为了让刚上电的单片机电压稳定。因为在上电的那一瞬间,电压有一个直线上升阶段,不能直接跳变到5V,单片机有会一个几毫秒的延迟。2、 电路原理说明复位部分,可以通过手动复位来实现,也可以通过上电复位来实现。我们一般采用的都是手动复位。上电复位顾名思义就是通电以后就复位了,此处电容的作用也主要在此。根据电容电流超前电压的特性,在通电的一瞬间,给单片机RST引脚一个高电平,使其复位,单片机也完成了上电复位
29、功能。伴随着时间,电容的两端会不断地储存异种电荷,充电时间完成时,C7两端的等量异种电荷会形成与电源电压相等的电压。此时是不会有电流通过C7的。当按钮按下时,整个回路接通,电容一端的负电荷会向另一端移动,最终与正电荷相互抵消完成放电。即使在整个行车过程中不按按钮,由于电容自身容抗的存在会消耗掉一部分功率,使得电容两端的电压不等于电源电压,从而形成压差。当我们复位以后,再次开启电源电压,由电容电流超前电压的特性,只要有压差存在,上电以后还是可以根据上电复位的原理对MCS瞬间复位。在行驶过程中我们都通过按钮复位,复位电路图如图3.3所示。图3.3 初始电路原理图第三节 定时/中断服务模块一、中断基
30、本概念中断系统被广泛的应用在各个控制程序系统中,以下谈谈我个人对中断的理解分析。一个成熟的控制系统都是由几大模块共同拼凑完成的。这样做使控制任务更加简单明了,可以帮助我们分析完成对外部电路部分的设计和对软件编程部分的设计。但所有的模块并不是依次完成的,有些模块是用来处理紧急情况,有些模块是为了实现系统的实时性。对于这一部分模块的执行,就是靠我们的中断系统来完成的。当这些问题产生了需要我们去执行这些备用的模块时,系统会产生一个中断源。当CPU接收到被允许的中断请求以后,系统会停止当前模块的程序任务,将当前的断点地址存起来,去执行该情况下对应模块所对应的服务程序。服务程序完成以后,系统会自动的回到
31、起初中断的地方,继续完成前面没有完成的程序。这整个过程就称为系统的中断。二、MCS-51单片机的中断系统整个系统分为中断源、中断允许控制、优先级控制和中断响应这几个部分,下面我们一一对这几个部分进行介绍。(1) 中断源总的来说,MCS-51系列单片机提供5个硬件中断源,52子系列提供6个中断源。其中包括了外部中断源INT0;外部中断源INT1,定时/计数器T0的溢出中断TF0和TF1;定时/计数器T1的溢出中断TF0和TF1;1个串行口发送RI和TI中断。定时/计数器控制寄存器TCON各位定义如下表3.1所示。表3.1 定时/计数器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1
32、TF0TR0IE1IT1IE0IT0溢出T1启动溢出T0定时器启动外部中断1触发方式1外部中断0触发中断0P3.2/P3.3=0,则IE0/IE1置1,请求中断IT0/IT1=1,则为边沿触发P3.2/P3.3=1,则IE0/IE1清零IT0/IT1=0,则为电平触发二中断允许控制中断事件发生,请求执行对应中断模块服务程序时,如果此中断源被系统设置成中断允许时,CPU可能会响应。因为当系统正在响应高优先级的中断时,同优先级和低优先级的中断源是被屏蔽的,CPU不会马上响应。如果中断源被设置成了中断屏蔽,那么不管有没有中断请求,CPU都不会响应。中断源有两种状态,允许或屏蔽。IE寄存器各位对中断源
33、状态控制定义如表3.2所示。表3.2 中断允许寄存器IED7D6D5D4D3D2D1D0EAESET1EX1ET0EX0中断允许总控位串行口中断允许位T1溢出中断允许位INT1中断允许位T0溢出中断允许位INT0中断允许位EA=0,屏蔽中断;EA=1,开中断ES=0,禁止中断;ES=1,允许中断ET1=0,禁止T1中断;ET1=1,允许T1中断EX1=0,禁止INT1中断;EX1=1,允许INT1中断ET0=0,禁止T0中断;ET0=1,允许T0中断EX0=0,禁止INT0中断;EX0=1,允许INT0中断三优先级控制每一个中断源都是由高优先级和低优先级控制的,通过设置IP寄存器各位来控制优先
34、级,IP各位定义如下表3.3所示。表3.3 中断优先权寄存器IPD7D6D5D4D3D2D1D0PSPT1PX1PT0PX0串行口的中断优先级控制器T1的中断优先级控制器外部中断INT1的中断优先级控制器T0的中断优先级控制器外部中断INT0的中断优先级控制器四中断响应1. 中断响应的条件 总中断允许开关接通; 该中断源发出中断请求; 该中断源中断允许位置1; 没有同级或者更高级的中断正被服务。2. 中断响应过程其流程图如图3.4所示。中断服务子程序入口关中断保护现场开中断中断处理关中断现场恢复开中断中断返回图3.4 中断流程图三、单片机定时/计数功能介绍MCS-51系列中51子系列有两个16
35、位的可编程定时/计数器:定时/计数器T0和定时/计数器T1;52子系列有三个,比51子系列多一个定时/计数器T2。根据要求,通过C+编程,使定时/计数器T0,T1完成整个系统中定时部分和计数部分的定时计数。它的结构图如图3.5所示。图3.5 定时/计数器T0、T1结构框图定时/计数器的核心是16位加法计数器,在图中用特殊功能寄存器TH0、TL0及TH1、TL1表示。TH0是定时/计数器T0的高8位,TL0是定时/计数器T0低8位。TH1是定时/计数器T1的高8位,TL1是定时/计数器T1的低8位。定时/计数器T0和T1通过设定控制寄存器TCON来实现启动、停止的控制,通过设定方式寄存器TMOD
36、来确定工作方式的。方式寄存器TMOD的格式如表3.4所示。表3.4 定时/计数器的方式寄存器TMODT1方式字段T0方式字段D7D6D5D4D3D2D1D0GATEC/M1M0CATEC/TM1M2其中M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如表3.5所示。表3.5 定时/计数器的工作方式M0M1工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器只有T0有 C/T:定时或计数方式选择位。当C/T1时工作于计数方式;当C/T0时工作于定时方式。 GATE:门控位。如果GATE=
37、1,芯片外部中断请求信号引脚INT0控制定时器/计数器T0的启动,芯片外部中断请求信号引脚INT1控制定时器/计数器T1的启动,只有向外部中断请求信号引脚INT0或INT1输入高电平时,MCS才开始启动计数。如果GATE0,定时/计数器T0、T1的启动与外部中断请求信号引脚INT0和INT1无关。一般情况下GATE0。第四节 数据存取模块一、AT24C02简要介绍AT24C02是电可擦除PROM,采用了2568-bit的组织结构以及两线串行接口。电压可允许低至1.8V,待机电流和工作电流分别为1A和1mA。AT24C02具有页写能力,每页为8bit。通过I2C两线式串行总线与单片机通信。有2K
38、的储存空间。引脚功能介绍如表3.6所示。表3.6 AT24C02引脚功能引脚名称引脚功能A0A2器件地址输入SDA串行数据输入输出SCL串行时钟输入WP写保护VCC电源GND地二、工作方式传感器将采集来的经信号整形以后传送给单片机,单片机通过软件程序运算得出里程数,通过AT24C02实现数据的存取。在存取之前CPU都会给AT24C02一个确认信号,在存储数据过程中,一旦信号确认,MCS就会通过SCL口将自身存储单元的数据传给AT24C02的部地址。当要提取总里程时,MCS要给外部存储器一个读信号,一经确定,就会通过SDA口从AT24C02的地址单元中取出数据,累加显示。电路图如图3.6所示。图
39、3.6 数据存取模块电路图第五节 显示模块一、外界芯片74LS245/74HC13874LS245是双向总线驱动器,可双向传输数据,用来驱动LED或者其他的设备。在所有的实际应用中,控制系统的外围电路都需要总线驱动。除此之外它还有一个特殊的功能,即可以同时输入、输出数据。因为CPU功率有限,如果单片机信号被外接负载或者干扰拉下到某个电压下,就得接入总线驱动器来驱动执行。74HC138是一个8字节的高速COMS器件,E1和E2是低电平有效的使能输入端,E3是高电平有效使能输入端。Y0到Y7是DATA线,都是低有效输出。那些锁存器的控制信号G就是数据输出OE,当OE有效时,ROM中对应该地址的那个
40、字节就被读到Y0到Y7这8根DATA线上。二、工作原理单片机将数据输出以后,由74LS245来驱动LED显示数据。LED谁灭谁亮则是由MCS的P2.0、P2.1、P2.2口来控制的,但在此之前得先经过74HC138编译。显示部分一共由四个数码管组成,四个数码管分两次分别显示时间,速度。而里程则是有按键K2实现的。电路图如图3.7所示。图3.7 显示模块电路图第六节 超速报警电路模块此模块采用三极管驱动蜂鸣器作为报警器,蜂鸣器采用有源蜂鸣器。即当P2.7输入高电平时,蜂鸣器提示超速报警。电路中R9,R10组成串联分压电路,R9是三极管基极限流电阻,R10可以使三极管截止可靠。电路图如图3.8所示
41、。图3.8 超速报警模块电路图第七节 其他模块一、时钟电路的设计时钟电路是单片机有序执行程序的依据,计算机每一步需要做什么都是由它来掌控的。系统的每一个模块都是通过时序电路发出的控制信号完成对于工作的。51系列的单片机分有部时钟和外部时钟。在此我们采用的是部时钟方式,下面我们也只介绍这种时钟方式。所谓部时钟方式并不是说就不用在MCS外围引脚X1和X2接什么了。振荡器它由单片机部的高增益反相放大器和外接晶振组成,当使用单片机部振荡电路时,这两个引脚用来外接石英晶体和微调电容。这里我们接的是电容C1、C2。如图3.9所示。图3.9 时钟电路由于振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定
42、性会受电容大小的影响,因此电路中的C1、C2的值取30P适中。因为单片机型号的不一样所以其工作频率也不一样,而外接的晶体的振荡频率的大小受限于单片机的最大工作频率。只要不超出它的围,单片机都可以正常的工作。在此电路中晶体振荡频率采用12MHz,其计数周期如3.6-1式所示。 3.6-1二、工作电源的设计本系统的AT89C51单片机工作电源为+5V稳定直流电源,电路中采用IN4148进行保护避免电源电流反相,其电路图如图3.10所示。图3.10 电源模块电路三、开关电路的设计该设计有四个开关三个功能:K1用于调节时间,K2用于里程显示开启时显示单次里程,按下时显示累加里程,K3用于清除AT24C
43、02的数据,时里程归零从新累计单片机正常工作下,开关都被5K的电阻上拉到了高电平,而对应单片机的P2.3、P2.4、P2.5端口相应会检测到低电平。选开关电路如图3.11所示。图3.11 开关按钮模块电路第四章 系统的软件设计第1节 测量算法概述对于此设计的计算方法,主要得掌控好单片机的的定时/计数器T0、T1的结构和工作方式,以及中断系统,在两者配合下共同完成。T0、T1的结构在前面我们已经详细的讲过了,这里就不过多的讲。在这里我们将传感器ITR-9707采集到的经过放大整形的信号传递给单片机的P3.4T0口,我们在程序中将其设置成计数器。每输入一个脉冲信号,T0加1。将T1做设置成1s溢出
44、中断,计数器T0工作的同时定时器T1也开始工作并开中断。在各个模块循环运行的过程中等待T1溢出中断,统计在这个过程中T0得到的脉冲数,根据脉冲数就可以算出里程和速度了。具体的算法是:自行车后轮1s所转圈数1s的脉冲数/铝盘小孔数11自行车1s路程/速度自行车后轮1s所转圈数后轮周长里程自行车1s路程/速度中断数这样就可以实时的看到速度和里程了,这里的里程显示的是这一段时间的里程数,总里程通过AT24C02的存取来实现的,在开关部分及通过按钮K2实现,按下及显示总里程。第2节 中断子程序的设计在整个设计中,计算速度/里程的时候要用到中断,其用法也很简单,下面我们简单的介绍一下这个中断的流程。起初
45、我们将T0设置为1s溢出中断,定时/计数器T1用作定时器。中断处理涉及到以下几个方面:中断源及中断请求、中断优先权控制、中断允许与中断屏蔽、中断响应与中断返回。中断请求和响应之间的关系是一对一的。CPU只能响应被允许状态下的中断请求,如果是,CPU就会响应,如果不是,中断请求无效。因为这里只有一个中断源,所有不存在中断优先权控制的问题。CPU响应时会把当前正在执行的程序入栈保护起来,计算好当前速度以后先存入缓冲区,在计算里程之前,单片机会先判断当前的速度是否超速,超速以后系统会报警。通过速度计算出单次里程,通过时间处理函数的调用实现实时显示速度时间。初始化计数器T0、定时器T1,T1开中断最后用RETI指令返回断点位置。其结构流程图如图4.1所示,更清晰简单,帮助理解。中断入口地址关计数器T0,关定时器T1中断计算当前速度并存入速度缓冲区计算单次里程并存入单次里程缓冲区调用时间处理函数clock;是否超速?置P2.7=1报警初始化计数器T0、定时器T1,T1开中断P2.7=0消除报警