基于单片机的电动车里程记录仪的设计

合集下载

基于单片机的车速里程表的设计

基于单片机的车速里程表的设计

黑龙江东方学院毕业论文(设计)题目:基于单片机的车速里程表的设计学生姓名学号专业班级指导教师学部答辩日期2012年5月19日黑龙江东方学院本科生毕业论文(设计)任务书基于单片机的控制车速里程表的设计摘要里程表广泛应用于各类机车,传统的机械式里程表虽然稳定可靠,但功能单一、易受磨损。

随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程表,本设计介绍一种基于单片机的智能电子里程表。

该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器。

它不仅可显示车辆行驶的总里程,也可显示一段时间的阶段里程,还可显示车速,以及实现超速报警等功能,并具有较强的再开发能力。

它的实现方式是,通过安装在汽车转轴上的测量盘,用霍尔传感器检测使转速物理量变换成脉冲电量,通过单片机测量产生脉冲的频率就可以得出圆盘的转速,再通过计算,从而得出里程、车速的信息,并由LED显示器显示出来。

并且该电子式里程表累积的里程数字存储在非易失性的EEPROM存储器内,在无电状态下数据也能保存。

关键词:AT89C52,数码管显示器,霍尔传感器,存储器Speed odometer design based on single chip microcomputercontrolAbstractPermeate in the social realm along with the calculator in recent years, single slice the application of the machine just at constantly alignment thorough, arouse a traditional control an examination a day a new moon benefit renewal in the meantime.In solidly the hour the examination the single slice that controls with auto the machine the application the system, single slice machine usually Be a core parts to use, only single slice the machine aspect knowledge is not enough, return should according to concrete the hardware structure, and aim at concrete application the software of[with] the object characteristics combine to make perfect. Imitating many passage pressure systemses is to make use of pressure to spread the feeling machine to collect current pressure combine the reflection is on the display, it can analyze the pressure surfeit distance, erupting to report to the bine the adoption electronics steelyard principle can according to input the amount of money that the unit price computes an object accuratelyThis thesis discuss that pour the design and creation of the timer in brief, for pour four LED figures displays in the timer to say, I am for the sake of the simplification circuit,decline low cost, adopt to take software as the connect of lord a people's method, do not use specialized hardware to translate the code machine namely, but adopt the software procedure to carry on translating codeKeywords:AT89C52, digital tube display, countdown timer, Holzer sensor目录摘要 (I)Abstract ........................................................................................................................................ I I 第1章绪论.. (3)1.1课题背景 (3)1.2国内外研究现状 (3)1.3主要研究内容 (3)第二章车速里程表总体设计 (6)2.1 总体设计思路 (6)2.2 子程序和主函数的设计 (7)2.3车速里程表的简介组成及原理 (9)第三章系统硬件设计 (12)3.1 AT89C52单片机的的介绍 (12)3.2 AT89C52单片机的硬件结构 (10)3.3 主要性能参数 (11)3.4 霍尔传感器电路 (11)3.5 LED显示模块电路及74 LS07驱动器 (16)第四章软件设计 (18)4.1 主程序设计流程图 (21)4.1.1 初始化模块 (21)4.1.2 主程序模块 (21)4.1.3 中断处理模块 (21)4.2 车速测量子程序流程图 (21)第五章软件调试 (23)5.1 程序的检测与调试 (23)5.2 PROTEUS仿真过程 (25)结论 (28)参考文献 (29)致谢 (30)基于单片机的控制车速里程表的设计第1章绪论1.1 课题背景本题目根据车速、里程的测量原理,以AT89C52系列单片机为核心器件,组成点阵式的液晶显示屏,通过编程显示车速里程。

(整理)基于单片机和光电传感器的显示电动自行车速度里程表设计

(整理)基于单片机和光电传感器的显示电动自行车速度里程表设计

基于单片机与光电传感器的电动自行车速度/里程表设计作者:发布时间:2009-04-20 00:15:34来源:繁体版访问数:34张怀强周通陆坤何为民从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。

目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。

如果能用led直接显张怀强周通陆坤何为民从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。

目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。

如果能用led直接显示出来里程数或速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。

本文介绍的速度与里程表设计以单片机和光电传感器为核心。

传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用led模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。

系统概述本系统由信号预处理电路、单片机at89c2051、系统化led显示模块、串口数据存储电路和系统软件组成。

其中信号预处理电路包含信号放大、波形变换和波形整形。

对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的ttl信号;通过单片机的设置可使内部定时器t1对脉冲输入引脚t0进行控制,这样能精确地算出加到t0引脚的单位时间内检测到的脉冲数;设计中速度显示采用led模块,通过速度换算得来的里程数采用i2c总线并通过e2prom来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。

系统的原理框图如图1所示。

图1 系统的原理框图工作原理该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由led显示模块交替显示所测速度与里程。

电动车里程表课程设计报告书

电动车里程表课程设计报告书

目录第 1 章概述2第 2 章硬件设计22.1 系统组成框图22.2 具体硬件电路及工作原理32.3 AT89C2051单片机介绍42.3.1 芯片概述42.4 其他外围硬件电路52.4.1 电源电路52.4.2 霍尔传感器62.4.3 4位串行静态显示电路6第 3 章软件设计73.1 主程序设计73.2 外部中断0和T1时序溢出中断服务子程序设计8 3.3 速度/里程显示控制子程序设计83.4 系统完整源程序8总结10参考文献11附录12附录1 整体电路图12附录 2 源程序13第一章概述本设计中引入的速度和里程表设计基于微控制器和光电传感器。

传感器将不同车速转换成的不同频率的脉冲信号输入单片机进行控制计算,再通过LED模组进行显示,从而将电动自行车的速度和里程数据直接显示给用户。

该设计可以实时显示实测车速和累计里程,主要是通过实时测量传感器输入到单片机的脉冲信号的频率(传感器将不同的车速转换成不同频率的脉冲信号),考虑到信号衰减、干扰等影响,信号在致到单片机前应进行放大整形,然后由单片机计算速度和里程,将得到的数据存入串口端口数据记忆,测得的速度和速度由LED显示模块交替显示。

里程。

本设计中设计的里程算法是一种近似算法(假设自行车在某个时间匀速行驶,平均速度与时间的乘积就是里程)。

该系统由信号预处理电路、单片机AT 89C2051、系统LED显示模块、串行数据存储电路和系统软件组成。

其数字预处理电路包括信号放大、波形变换和波形整形。

对被测信号进行放大的目的是为了降低对被测信号的幅度要求;波形变换和波形整形电路,用于将放大后的信号转换为可连接单片机的TTL信号;控制脉冲输入引脚T0,可以准确计算单位时间内检测到的脉冲数2C。

存储,既省去了所需的单片机接口线和外围设备,又简化了显示部分的软件编程。

设计时应综合考虑测速精度和系统响应时间。

本设计采用测量脉冲频率计算速度,具有较高的速度测量精度。

计算里程时采用自行车的理想状态。

单片机课程设计:里程计数器

单片机课程设计:里程计数器

Part Six
单片机课程设计中 里程计数器的未来
发展
技术发展趋势与展望
智能化:里程计数器将更加智能化,能够自动识别和记录行驶里程 集成化:里程计数器将与其他车载设备集成,实现信息共享和协同工作 安全性:里程计数器将更加注重安全性,防止数据篡改和泄露 环保性:里程计数器将更加注重环保性,减少能源消耗和污染排放
06 单 片 机 课 程 设 计 中 里 程 计数器的未来发展
Part One
里程计数器概述
里程计数器的定义和作用
定义:里程计数器是一 种用于记录车辆行驶距 离的电子设备,通常安 装在车辆的仪表盘上。
作用:里程计数器可以 提供车辆的行驶距离、 行驶时间等信息,帮助 车主了解车辆的行驶状 况,同时也可以作为车 辆保养和维修的依据。
单片机课程设计-里程计 数器
,a click to unlimited possibilities
汇报人:
目录
01 里 程 计 数 器 概 述 03 里 程 计 数 器 的 实 现 过 程
02 单 片 机 课 程 设 计 中 的 里 程计数器
04 里 程 计 数 器 的 性 能 优 化
05 单 片 机 课 程 设 计 中 里 程计数器的实际应用
程序编写:根据项目需求编写里程 计数器的程序代码,包括主程序、 中断服务程序等
传感器选择与接口电路
传感器类型: 霍尔传感器、 光电传感器等
传感器性能: 精度、响应时 间、稳定性等
接口电路设计: 信号调理、信 号放大、信号
滤波等
接口电路与单 片机的连接方 式:串行通信、
并行通信等
数据存储和处理
数据采集:通过传感器获取里程数据 数据存储:将采集到的数据存储在存储器中 数据处理:对存储的数据进行计算和处理,得到里程数 数据显示:将处理后的里程数显示在屏幕上

基于单片机的电动车里程表设计说明

基于单片机的电动车里程表设计说明

《基于单片机的电动车里程表设计》目录引言 (1)1.总体设计 (2)2.设计任务与要求 (2)3.电路原理 (2)4.硬件系统模块 (3)4.1芯片的选择 (6)4.2结构框图 (7)5.软件系统设计 (7)5.1控制系统源程序 (11)6.调试 (13)7.参考文献 (13)引言里程表广泛应用于各类机车,传统的机械式里程表虽然稳定可靠,但功能单一、易受磨损。

随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程表,从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。

目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。

如果能用液晶显示屏直接显示出来里程数和速度值,就可节省用户的时间与精力处理自行车行进过程中的突发事件。

本设计介绍一种基于单片机的智能电子里程表。

该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器。

传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用液晶显示器模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。

它不仅可显示车辆行驶的总里程,还可显示当前车速,以与实现超速报警等功能,并具有较强的再开发能力。

它的实现方式是,通过安装在汽车转轴上的测量盘,用光电式转速传感器检测转速的脉冲信息,在脉冲状态下,将转速的变化转换成光通量的变化,再通过光电转换元件将光通量的变化转换成电量的变化,接着通过频率测量电路将脉冲信号输入到单片机中,然后依据电量与转速的函数关系实现转速测量,再通过计算,从而得出里程、车速的信息,并由液晶显示器显示出来。

一、设计任务与要求以AT89C51单片机为核心,采用霍尔传感器,实现对自行车行驶里程、速度的测量,并能选择显示自行车行驶里程值和当前速度。

可以实现对自行车车轮大小的设置等。

自行车超过一定限速时可以进行声光报警提示。

基于单片机的光电式自行车速度里程表设计

基于单片机的光电式自行车速度里程表设计

光电式自行车速度里程表设计摘要随着科技的迅速发展,单片机的应用也越来越广泛,并带动传统控制检测技术不断更新。

现在的里程表大多是电子式的,用数码管或液晶显示器即时显示,显示更加直观。

电子式里程表采用接触车速传感器代替软轴传动, 可使里程表的安装位置不受距离限制,进一步有效地克服了机械式里程表中的诸多不足。

方案采用了一种以单片机AT89C51为主控机,使用光电传感器进行自行车里程、速度测量的装置。

传感器将不同车速产生的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD液晶显示模块进行显示,使得自行车的速度与里程数据能直观的显示给使用者。

本设计主要包括自行车轮脉冲采集、键盘输入和数据显示等部分,主程序用C语言编写,完成各项功能及数据的处理。

本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。

并且可以进行扩充,更方便于使用者。

关键词光电传感器单片机液晶显示器里程表THE DESIGN OFBICYCLE ODOMETERABSTRACTWith the rapid development of technology, more and more widespread application of microcomputer, promote the traditional control detection technology 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 further to effectively overcome the mechanical disadvantagesof 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 signals of different frequencies produced by sensor are input into the microcontroller,after its calculation, liquid crystal will display the datas, making the bike's speed and distance data visually to the user.The design includes a bike wheel pulse acquisition, keyboard input and data display section, 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 corresponding system based on this model, the control simulation, and the simulation results are compared.ODOMET ER录摘要 (I)ABSTRAC..T (II)1 绪论. (1)1.1 问题由来. (1)1.2 课题现状. (1)1.3 设计任务. (2)2 系统原理概述 (3)2.1 系统原理总概述 (3)2.2 系统硬件组成原理 (3)2.3 软件系统工作流程 (4)3 系统硬件设计 (5)3.1 采集信息部分以及传感器的选择. (5)3.2 轮脉冲检测与转换电路 (6)3.2.1. 轮脉冲检测 (7)3.2.2. 信号预处理电路 (7)3.3 单片机系统部分 (9)3.3.1 AT89C51 单片机介绍 (9)3.3.2 定时/计数器的结构及控制. (9)3.3.3 中断控制 (11)3.4 单片机外围电路介绍. (11)3.4.1 复位电路 (11)3.4.2 晶振电路 (12)3.5 显示部分. (13)3.5.1 LCD 液晶显示器. (13)3.5.2 显示接口电路设计 (15)3.6 报警电路. (15)3.7 键盘控制. (15)4 软件设计 (16)4.1 测量算法概述 (18)4.2 中断子程序的设计 (19)4.3 数据处理子程序的设计. (18)4.3.1 里程计算子程序. (21)4.3.2. 速度计算子程序 (19)4.4 显示子程序的设计 (20)5 设计总结 (22)5.1 实现目标与特点 (22)5.2 结论及不足. (23)致谢 (23)参考文献 (24)附录 (28)附录I 系统电路原理图 (28)附录II 设计源程序 (29)1 绪论1.1 问题由来我国是人口大国,也是自行车大国,随着生活节奏的不断加快,自行车已经不仅仅是运输、代步的工具,现在则是代表着绿色、环保、节能。

基于单片机的电动自行车速度历程计设计

基于单片机的电动自行车速度历程计设计

基于单片机的电动自行车速度里程计设计摘要随着居民生活水平的不断提高,电动自行车不再仅仅是运输、代步的工具,而是成为人们娱乐、休息、锻炼的首选。

电动自行车的速度里程表能够让人们清楚的知道当前的速度、里程等物理量,方便了人们的生活。

本系统使用了七段LED 显示器的设计,能自动显示车辆行驶的总里程数及行车速度。

本文首先概述速度里程计的基本原理和特性,并且阐述选择霍尔旋转传感器的原因。

然后,本文讲述本系统中AT89C51的的基本工作原理和特性。

其次,本文详细阐述EEPROM存储器24C01的结构和原理。

在最后,详细的描述了系统主要程序的设计。

关键词:单片机AT89C51;霍尔传感器;EEPROM型存储器24C01;七段LED灯..目录1 引言 (1)2 系统总体概述 (2)2.1 工作原理 (2)2.11 原理框图 (2)2.12 原理介绍 (3)2.13 原理框图 (3)3 硬件介绍 (5)3.1 霍尔元件 (5)3.11霍尔器件 (5)3.12霍尔效应 (5)3.13 霍尔开关电路 (5)3.14旋转传感器 (6)3.2 LED数码管 (6)3.3 T89C51简介 (7)3.4 24C01简介 (10)4 软件设计 (14)4.1 系统内存的规划 (14)4.2程序介绍 (14)4.3主程序流程图 (15)4.4主程序 (15)结论 (29)1 引言自行车被发明及使用到现在已经有两百多年的历史了,这两百多年间人类在不断的尝试和研发过程中,就在最近十年的时间里,人们发明了电动自行车,因而,在世界引发了一场电动车的推广的热潮。

本课题所设计的电动车速度里程表的目的是为了让驾驶者能看到当前的行车速度和车辆累计行使的路程,并且能提醒驾驶者行车速度的限制和能达到在超出行驶速度时鸣叫报警以保证行车安全的目的。

本设计是基于单片机的车速里程表,采用霍尔型非接触式转速传感器。

控制器采用AT89C51单片机,传感器采用霍尔元件,显示器用AT89C51的P0口和P2口扩展。

基于单片机的电子式汽车里程表设计

基于单片机的电子式汽车里程表设计

基于单片机的电子式汽车里程表设计【摘要】本文介绍了一种以霍尔元件为基础的汽车车速和里程计的设计方法。

利用AT89C51单片机作为控制核心,利用A44E型霍尔计测转速,通过1602液晶显示器显示车辆行驶的里程和车速。

文中对车速和里程计的硬件电路进行了详细的阐述。

在硬件上,采用霍尔元件,将车辆每次运行所产生的脉冲个数输入到单片机中,再由单片机对这些信号进行处理后,输出到显示器上。

系统的软件部分,采用了模块化的设计思路,用 C语言编写程序。

本系统的硬件结构简单,各子程序的通用性强,达到了设计的要求。

【关键词】里程速度霍尔元件单片机 LCD1系统方案设计1.1设计要求1.设计一种数码里程计,可应用于所有车辆,并可显示里程、车速等信息。

2.系统应能够准确计算行驶里程,并将其显示在终端上。

3.系统应具备稳定性和可靠性,能够长时间运行并正常工作。

4.设计应考虑易于安装和操作,方便驾驶员使用。

5.系统应具备良好的用户界面,能够清晰、直观地显示各项信息。

6.设计应符合相关的安全标准和规范,确保驾驶员的行车安全。

7.设计应具备一定的扩展性和可升级性,方便后续的功能扩展和升级。

8.设计应考虑成本控制,力求实现性价比最优的方案。

9.设计应具备一定的抗干扰能力,能够在复杂的环境中正常工作。

1.2设计说明1.主要采用AT89C51微控制器作为核心芯片;2.将采用1602显示装置,可以实现行车速度、行车路程、时钟和温度等信息的显示。

3.为了感应温度,将使用DS18B20感应器进行温度的监测。

4.时钟功能将由DS1302时钟晶片提供。

它能够准确计时,确保车辆行驶过程中的时间显示准确无误。

5.利用A44E霍尔传感器检测车速;6.可通过按钮进行时钟数值的修改,设定车速和温度的闹钟数值;7.当超速或温度超过设定值时,蜂鸣器将发出警报信号。

2系统硬件设计2.1 总体设计方案说明本文介绍了一种基于普通MCS-51单片机的轮毂转速信号处理系统该系统通过使用传感器将车轮速度转换为电脉冲信号,并通过处理后发送给微控制器进行处理。

毕业设计(论文)-基于单片机的自行车里程表的设计[管理资料]

毕业设计(论文)-基于单片机的自行车里程表的设计[管理资料]

摘要本文介绍的速度与里程表设计以STC89C52单片机系统和霍尔传感器为核心。

传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD液晶显示模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。

本系统由霍尔传感器、单片机ST8C9C52RC、LCD1602液晶显示模块、数据存储电路和键盘控制组成。

通过单片机的设置可对霍尔传感器输入的脉冲信号进行计数和处理,这样能精确地算出加到引脚的单位时间内检测到的脉冲数;设计里程和速度显示采用LCD模块,里程数通过EEPROM来存储。

本文先对里程表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析;然后给出了系统的建模过程及相应的系统模型,在此基础上进行了控制仿真,并对仿真效果进行了比较。

本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。

并且可进行扩充,加入时速表的功能,更加方便的了解你现在所处的情况。

关键词:STC89单片机 LCD1602液晶显示霍尔传感器 EEPROM存储器目录第1章绪论 (1)课题背景、发展及意义 (1)系统设计概述 (1)各章节的安排 (2)第2章自行车里程表的设计方法与基本原理 (3)霍尔传感器 (3)STC89C52单片机 (3)频率测量法 (4)LCD1602 (5)存储器EEPROM (5)键盘控制 (6)第3章硬件实现的设计方法与原理 (7)系统概述 (7)功能实现 (8)系统总框图 (8)各部分硬件图 (8)3.4.1 显示部分 (8)3.4.2 按键控制部分 (11)3.4.3 霍尔传感器 (7)3.4.4 复位电路 (7)3.4.5 电源电路 (7)3.4.6 EEPROM掉电存储器电路 (7)第4章自行车里程表软件实现方法 (9)软件编程实现 (13)4.1.1 系统软件框图 (13)4.1.2 数据处理 (14)4.1.3 键盘控制 (14)程序源代码与流程图 (16)4.2.1 程序流程图 (14)4.2.2 程序源代码 (14)PCB印刷电路板图 (40)第5章总结 (16)参考文献 (40)致谢 (41)1霍尔传感器霍尔传感器是一种能实现磁电转换的传感器,用它们可以检测磁场及其变化。

电子车速里程表的单片机实现方案

电子车速里程表的单片机实现方案

电子车速里程表的单片机实现方案【摘要】本文主要介绍了电子车速里程表的单片机实现方案。

在文章从背景介绍和研究意义两方面入手,为读者提供了基本的背景信息和研究动机。

在文章详细介绍了电子车速里程表的硬件设计、单片机的选择、传感器接口设计、显示模块设计以及里程计算算法。

在文章评价了实现效果,并展望了未来的发展方向。

通过本文的阐述,读者可以深入了解电子车速里程表的单片机实现方法,以及其在实际应用中的一些考虑和技术挑战。

本文对于研究领域的同行和相关从业者具有一定的参考价值。

【关键词】电子车速里程表、单片机、硬件设计、传感器接口、显示模块、里程计算算法、实现效果评价、未来展望1. 引言1.1 背景介绍电子车速里程表作为现代汽车上的一项重要装备,能够实时准确地显示车辆的速度和里程信息。

传统的机械式车速里程表已经逐渐被电子式车速里程表所取代,其具有精度高、体积小、功耗低等优点,受到广泛的应用。

随着社会的发展和科技的进步,人们对车辆的安全性和功能性要求越来越高,车辆配备电子车速里程表已经成为一种标配。

随着车载电子设备的普及,电子车速里程表也在不断地进行改进和创新,以提升用户体验和功能性。

本文将介绍电子车速里程表的单片机实现方案,着重探讨其硬件设计、单片机的选择、传感器接口设计、显示模块设计以及里程计算算法等方面内容,旨在为该领域的研究和应用提供参考和借鉴。

通过对电子车速里程表的研究,可以更好地理解其原理和功能,为未来的研究和实践工作奠定基础。

1.2 研究意义车速里程表作为车辆的重要配件,可以实时准确地显示车辆行驶的速度和里程,对驾驶员和车辆管理者都有着重要的意义。

在传统的机械车速里程表逐渐被电子车速里程表取代的今天,研究电子车速里程表的实现方案显得尤为重要。

电子车速里程表的出现不仅提高了车辆信息的准确性和可靠性,还能够实现更多功能的拓展,比如实时监测车辆的行驶状态、记录行驶路线等。

单片机作为电子车速里程表的核心控制器,通过精确的算法和稳定的硬件设计,可以实现对车速和里程的高效监测和计算。

基于单片机的电动自行车智能里程表的设计

基于单片机的电动自行车智能里程表的设计

绪论由于机械仪表具有不能修复、体积大、重量大、性能不可靠等一系列的缺陷。

因此需要一种具有体积小、重量轻、性能可靠的仪表来取代机械仪表。

本设计就是为了解决这一问题而进行的。

本次所设计的智能电动自行车里程表,不仅解决了上述问题,而且具有一定的智能化。

目前智能化已被广泛应用于工业、农业、军事、医疗保健等行业。

现在世界上许多国家在智能研究与应用上大力投资,以取得高端科技的领先地位。

本设计属于采集方面的问题,数据采集和控制系统是对生产过程或科学实验中各种物理进行实时采集、测试和反馈控制的闭环系统。

它在工业控制、军事、电子设备、医学监护等许多领域发挥着重要的作用。

数据采集和控制系统各种各样,但其基本工作过程相似:汇集被测控对象各种被测模拟量,把它们转成数字信号,经过加工处理后显示出来,实现所需的控制。

因模块化设计可以单独实现各个模块,在设计时能同时进行。

因此本设计中采用了模块化的设计,各模块设计好以后,只要进行良好地电气连结,就能可靠地实现整体系统的功能。

该系统有测量模块、显示模块、供电模块、报警模块和单片机小系统构成。

功能选择后启动测量,单片机实时采集、处理后显示。

本设计的智能电动自行车里程表主要考虑现在人们的日常生活电动自行车逐渐受到人们的欢迎,所以说这个产品具有开发价值。

现代科技的发展与人们的日常生活消费观念的提高和改变,我相信这种产品一旦进入市场定会受的人们的青睐。

所以这种产品具有开发和改进的潜力。

随着我们人们的要求越来越高,我们设计的这种表必须具有智能方面开发的潜力。

为了适应社会要求,作为即将毕业的电子类大学生,必须注重系统设计能力的培养。

而毕业设计便是具体的体现。

它的主要目的就是使我们掌握电子系统设计的方法以及一定的实践技能。

电子电路是理论性和实践性很强的一门学问,只有边理论边实践,才能加深理解、收到成效。

“醉过方知酒浓,爱过方知情深”,只要我们肯实践,就能开拓思路,提高处理实际问题的能力,并从中获得无穷的乐趣。

基于单片机控制的电动自行车里程表的毕业设计(含原理图+PCB图+中英文翻译+程序)

基于单片机控制的电动自行车里程表的毕业设计(含原理图+PCB图+中英文翻译+程序)

电动自行车里程表的设计序言本文介绍里程表设计以单片机和霍尔传感器为核心。

霍尔传感器将到来的低电平脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的里程数据能直观的显示给使用者。

自行车里程表是用于远距离连续测量自行车行驶距离的仪表。

它分为电源、霍尔传感器和显示器3部分。

目前,里程表普遍使用在汽车和摩扦车上,是一种机械测量装置,测试精度相对低,自行车上使用里程表的还很少见。

针对这种情况,研制新型的数字化里程表用于自行车上是非常必要的。

本文介绍的自行车里程表是由电源稳压系统供电,AT89C52单片机为中央处理器,结合高精度的控制电路,方便地实现了智能化、高精度、高可靠性、高效率的自行车里程表的设计,并且使用方便。

里程表广泛应用于各类机车,包括厂矿企业所使用的电机车和汽车、摩托车等。

传统的机械式里程表虽然稳定可靠,但功能单一,随着电子技术的迅猛发展,电子式里程表得以广泛应用。

一种以单片机为核心的里程表,它不仅可以显示车辆行驶的总里程,也可显示一段时间的阶段里程,并且具有较强的再开发能力。

这一切都是因为利用了单片机系统强大的数据存储和处理控制功能。

里程表以单片机AT89C52为核心,由系统输入、单片机部分和系统输出组成。

第 1 章绪论单片机自从推出以来,以其超小型化、结构紧凑、可靠性高、成本低等优点被人们广泛接受,从而应用于工业、电讯、数据处理、仪器仪表等多方面。

电动自行车里程表是电动自行车的重要配件,在电动自行车仪表中占重要位置,但几十年来其发展变化并不大,现在国外很多车中使用了数字里程表,但在国内还并不多见。

1.1课题背景里程表的原理很简单,因为汽车车轮的直径已知,车轮的圆周长便是恒定不变的。

由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。

因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了。

这样简单的原理古人就已经发现,并且开始使用了。

电动自行车里程速度计的设计

电动自行车里程速度计的设计

R E S E A R C H F O R U M研究论坛电动自行车里程速度计的设计丁 敏(陕西理工学院机械工程学院,陕西 汉中 723003)摘要:文章主要阐述了一种基于霍尔元件的电动自行车的速度里程表的设计。

它以STC89C51 单片机为核心,采用A44E 霍尔传感器测量转数实现对电动自行车里程/速度的测量统计,还具有系统掉电时保存里程信息的功能,并能将电动自行车的里程数及速度用LCD实时显示。

关键词:里程/速度;霍尔元件;单片机;LCD显示随着居民生活水平的不断提高,电动自行车不仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。

因此,人们希望电动自行车的功能更强大,能给人们带来更多的方便。

电动自行车里程速度表作为其一大辅助工具迅速发展起来,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能。

本设计采用了MCS-51系列单片机设计一种体积小、操作简单的便携式电动自行车的里程速度计,它能自动显示当前电动自行车行走的距离及运行的速度。

1.电动自行车里程速度计的总体设计方案本设计以通用MCS-51单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。

里程及速度的测量,是经过MCS-51的定时/计数器定时一个固定时间测出总的脉冲数,再经过单片机的计算得出,其结果通过LCD液晶显示器显示出来[1]。

里程的掉电保存采用存储芯片AT24C02 实现的,其电路原理图如图1所示。

图1 系统原理框图2.硬件电路的设计电动自行车的里程速度计的硬件电路设计是基础部分,它包括信号的捕获,单片机的计算处理,液晶的实时显示和单片机外围基本电路的设计,主要器件有单片机、传感器、LCD(1602)和存储器[2]。

39(1)传感器及其测量系统的选择本次设计信号的捕获采用的是霍尔传感器。

霍尔器件具有许多优点,其结构牢固、体积小、重量轻、寿命长、安装方便、功耗小、频率高(可达1 MHz)、耐震动,不怕灰尘、油污、水汽及烟雾等的污染或腐蚀。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第 1 章绪论....................................................................... 错误!未定义书签。

1.1课题背景........................................................................... 错误!未定义书签。

1.2设计的整体思路 (2)第 2 章硬件的设计 (4)2.1 AT89C52系列单片机的介绍 (4)2.2存储电路 (5)2.3时钟电路 (6)2.4复位电路 (7)2.5显示电路 (8)2.6报警电路 (9)第 3 章软件的设计与调试 (9)3.1子程序与主函数的设计 (9)3.2 Protues仿真过程........................................................... 错误!未定义书签。

参考文献. (14)附录一硬件设计原理图 (15)附录二程序清单 (16)第 1 章绪论单片机现在渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。

1.1课题背景本题目根据车速、里程的测量原理,以MCS-51系列单片机为核心器件,组成点阵式的液晶显示屏,通过编程显示车速、里程。

按照设计要求熟悉系统硬件电路、接口电路,完成硬件电路的电路板的设计,完成该系统的程序设计,提交程序设计框图及程序设计清单。

1.2设计的整体思路设计包括硬件设计和软件设计,其中硬件是基础软件是核心,软件的数据通过硬件进行处理和控制,最终实现用户的功能。

一、硬件介绍本设计的硬件包括:AT89C52芯片:程序的处理和控制中心。

数字码盘:模拟霍尔传感器,向芯片外部中断提供脉冲。

RESPACK8八位排阻:将P0口拉成高电平。

1602液晶显示屏:显示速度和路程数据。

24C02C:存储总里程数据二、主要技术指标1、计算速度和路程。

2、存贮历史里程数据。

3、量程记满时清除历史里程数据。

4、显示及时速度。

5、超速报警三、设计原理框图如下:1.2软件设计流程图第 2 章硬件电路的设计2.1 AT89C52系列单片机的介绍AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes 的可反复擦写的只读程序存储器(PEROM)和256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。

功能特性概述:AT89C52提供以下标准功能:8K 字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

引脚如图2.1所示。

振荡器反相放大器如图2.2所示。

图2.1 AT89C52引脚图XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2:振荡器反相放大器的输出端。

中断:AT89C52共有6个中断向量:两个外中断(INT0和INT1),3个定时器中断(定时器0,1,2)和串行口中断。

所有这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。

IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。

2.2存储电路SCK串行时钟:AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟。

SDA 串行数据/地址:CAT24WC02双向串行数据/地址管脚用于器件所有数据的发送或接收,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或(wire-OR )。

WP 写保护:如果WP 管脚连接到Vcc 所有的内容都被写保护,只能读。

当WP 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作。

本次设计采用的24C02是为了防止掉电时里程数据的丢失,由于24C02C 的数据线和地址线是复用的,采用串口的方式传输数据,所以只用两根线SCK 和SDA 与单片机传输数据。

在软件编程时采用2E PROM 程序包来控制24C02C 发送或接受数据。

2.3 时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。

因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

AT89C52片内由一个反相放大器构成振荡器,可以由它产生时钟。

常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。

本设计采用前者。

单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚跨接石英晶体振荡器和电容,就构成一个稳定的自激振荡器。

电路中的电容C1和C2常选择为30P 左右。

对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定性。

而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作频率即可。

此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率可以除尽的晶体。

本设计晶振采用12MHz ,则计数周期为6111210112T Hz ==⨯⨯μ()S 2.4 复位电路AT89C52单片机的复位输入引脚RET 为AT89C52提供了初始化的手段。

有了它可以使程序从指定处开始执行,即从程序存储器中的0000H 地址单元开始执行程序。

在89C52的时钟电路工作后,只要在RET引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。

只要RET保持高电平,则89C52循环复位。

只有当RET由高电平变成低电平以后,89C52才从0000H地址开始执行程序。

本系统的复位电路是采用按键复位的电路,如图2.12所示,是常用复位电路之一。

单片机复位通过按动按钮产生高电平复位称手动复位。

上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮即可。

按下按钮,则直接把+5V加到了RET/VPD端从而复位称为手动复位。

复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。

工作原理:通电瞬间,RC电路充电,RST引脚出现高电平,只要RST端保持10ms以上高电平,就能使单片机有效地复位。

2.5显示电路1602液晶显示模块可以和单片机AT89C51直接接口,1602的驱动程序11条指令,(1)void Clear_display(); //清显示屏指令(2)void Return_home(); //光标归位指令(3)void Entry_mode_set(); //输入模式设置指令(4)void Display_on_or_off(); //显示屏的开关控制指令(5)void Cursor_or_Display_shift(); //设定显示屏或光标移动方向指令(6)void Function_set(); //功能设定指令(7)void Set_character_address(); //设定CGRAM地址指令(8)void Set_display_address(); //设定DDRAM地址指令(9)void Read_busy_flag(); //读取忙信号或AC地址指令(10)void Write_data(); //将数据写入DDRAM或CGRAM指令(11)void Read_data(); //从CGRAM或DDRAM读出数据的指令2.6报警电路当速度超过30时,蜂鸣器报警,速度可以设定第 3 章软件的设计与调试3.1子程序和主函数的设计一、子程序的设计设汽车轮子半径为r,脉冲数为n,t=50毫秒,一个脉冲的时间为time,速度为v(km/h),路程为s(km),pi=3.14。

子程序按模块化的思路编写。

各子程序如下:1.初始化:设置 T0计时器工作方式1,输入口为p3.2 开总中断。

打开外中断0中断控制位.设置外部中断0优先级控制位。

设置外部中断0触发方式为边沿触发方式。

打开T0中断允许。

2.外部中断:当P3.2口有脉冲时进入外部中断0。

time=sec+t*0.05,记一个脉冲的时间。

tab_v[5]=0.9*pi*r/time,计算速度并放入数组中。

高低速的判断,当V>=5时为高速,并用flag = 0,记高速标志位,flag=1,记低速标志位;for(i = 0;i<6;i++)tab_v[i] = tab_v[i+1]; //数组移数据关闭T0,给T0赋50毫秒初值。

开启T0 ,当来一个脉冲n++;当n == 50000时,n清零n = 0;3.定时器0中断:当来一个脉冲进入定时器0中断,给T0定时器赋50毫秒初值,当记满50毫秒t++。

4.处理函数:计算速度分高速和低速。

速度计算公式:tab_v[5]=0.9*pi*r/time;(单位km/h)低速时:v=tab_v[5],即显示第五个速度值。

高速时:v+=tab_v[i];计算五个速度之和。

v=v/5;求得平均速度。

路程公式:s=0.00025*pi*r*n,随着脉冲n的增加s不断累加。

3.2PROTEUS仿真过程一、电路原理图如下图:图3.1车速里程表原理图二、生成HEX文件如下图4.2。

图3.2生成文件三、编译结果如下图4.3。

图3.3编译结果仿真结果没有错误和警告,编译通过。

四、仿真结果如下图仿真结果一表示:速度为0,路程也为0。

仿真结果二表示:速度为16km/h,行驶里程为4公里。

图3.4仿真结果一图3.5仿真结果二参考文献[1] 万福君,潘松峰,刘芳,吴贺荣,王秀梅.MCS-51单片机原理、系统应用[M].清华大学出版社,2008.[2] 张迎新.单片机原理及应用(第二版)[M].电子工业出版社,2009.[3] 宋文绪,杨帆.自动检测技术(第三版)[M].高等教育出版社,2008.[4] 郭天祥.新概念51单片机C语言教程[M].电子工业出版社,2009.[5] 陈忠平,曹巧媛曹琳琳,刘琼,申晓龙.单片机原理及接口[M].清华大学出版社,2007.附录一硬件设计原理图附录二程序清单//速度超过30KM/H报警#include<reg52.h>#include<stdio.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuint zd;uchar b,i,count,temp2;unsigned long time;uint speed,c,allc; //速度里程总里程#define L 50sbit beep=P3^7;//speak 端口//-----------24c02----------------------#define C02_write 0xa0 //写#define C02_read 0xa1 //读sbit SCL=P1^4; //时钟sbit SDA_EEPROM=P1^5; //数据bit ack;bit dd;uchar New[2]=""; //使用者密码uchar Old[2]=""; //IIC密码//------------24c02---------------------sbit S1 = P3^0;//Pin4/***********************************************************************/ void delay1(uchar MS);unsigned char ReadTemperature(void);void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat);/************************************************************************/sbit RS = P2^4;//Pin4sbit RW = P2^5; //Pin5sbit E = P2^6;//Pin6sbit out = P1^0;//Pin6#define Data P0 //数据端口char data TimeNum[]=" ";char data Test1[]=" ";void Delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/******************************************************************//* 函数声明*//******************************************************************//*********** ****************************************************/void DelayUs(unsigned char us)//delay us{unsigned char uscnt;uscnt=us>>1;/* Crystal frequency in 12MHz*/while(--uscnt);}/******************************************************************/void DelayMs(unsigned char ms)//delay Ms{while(--ms){DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);}}void WriteCommand(unsigned char c){DelayMs(5);//short delay before operationE=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;}/****************************************************************/ void WriteData(unsigned char c){DelayMs(5); //short delay before operationE=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;}/*********************************************************************/ void ShowChar(unsigned char pos,unsigned char c){unsigned char p;if (pos>=0x10)p=pos+0xb0; //是第二行则命令代码高4位为0xcelsep=pos+0x80; //是第二行则命令代码高4位为0x8WriteCommand (p);//write commandWriteData (c); //write data}/*************************************************************************/ void ShowString (unsigned char line,char *ptr){unsigned char l,i;l=line<<4;for (i=0;i<16;i++)ShowChar (l++,*(ptr+i));//循环显示16个字符}/*********************************************************************/ void InitLcd(){DelayMs(15);WriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x06); //显示光标移动位置WriteCommand(0x0c); //显示开及光标设置WriteCommand(0x01); //显示清屏}////////////////////2402/////////////////////////////////////--------------------------------------------------------- void delay_ms(uchar i){uchar j;for(;i>0;i--)for(j=124;j>0;j--);}void I2C_start(void){SDA_EEPROM=1;SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SDA_EEPROM=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();}void I2C_stop(void){SDA_EEPROM=0;_nop_();_nop_();_nop_();_nop_();_nop_();SDA_EEPROM=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();}void I2C_ackownledge(void) {SDA_EEPROM=0;_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();}void I2C_no_ackownledge(void){SDA_EEPROM=1;_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();_nop_();}void I2C_sendB(uchar byte){uchar counter;for(counter=0;counter<8;counter++){if(byte&0x80) SDA_EEPROM=1;else SDA_EEPROM=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();byte<<=1;}_nop_();_nop_();SDA_EEPROM=1;_nop_();_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();if(SDA_EEPROM==0) ack=1;else ack=0;SCL=0;_nop_();_nop_();}uchar I2C_receiveB(void){uchar temp;uchar counter;temp=0;SDA_EEPROM=1;_nop_();_nop_();for(counter=0;counter<8;counter++){_nop_();_nop_();_nop_();_nop_();_nop_();SCL=1;_nop_();_nop_();if(SDA_EEPROM==1) t emp=(temp<<1)|0x01;else temp=temp<<1;_nop_();_nop_();SCL=0;_nop_();_nop_();_nop_();}_nop_();_nop_();return(temp);}/*bit I2C_write_byte(uchar byte,uchar address){I2C_sendB(address);if(ack=0){I2C_stop();return(0);}else I2C_sendB(byte); *///存UserPasswordbit I2C_send_string(uchar no,uchar address) {uchar counter;for(counter=0;counter<no;counter++){I2C_start();I2C_sendB(C02_write);if(ack==0) return(0);I2C_sendB(address+counter);if(ack==0) return(0);I2C_sendB(New[counter]);I2C_stop();delay_ms(20);}return(1);}//读EEPROMPasswordbit I2C_receive_string(uchar no,uchar address) {uchar counter;for(counter=0;counter<no;counter++){I2C_start();I2C_sendB(C02_write);if(ack==0) return(0);I2C_sendB(address+counter);if(ack==0) return(0);I2C_start();I2C_sendB(C02_read);if(ack==0) return(0);Old[counter]=I2C_receiveB();I2C_no_ackownledge();I2C_stop();}}//-----------------------------------------------------------////////////////////2402/////////////////////////////////////////////*中断开始*//*********延时K*1ms,12.000mhz**********/void int0_isr(void) interrupt 0 /*外部中断0,接P3.2口*/{unsigned int temp;zd++; //中断次数time=count; //中断次数TR0=0; //关定时器temp=TH0; //定时器高temp=((temp << 8) | TL0); //定时器值TH0=0x3c; //定时器0 15535 65535-15535 =50000 us TL0=0xaf; //定时器0 15535 65535-15535 =50000 us count=0; //0TR0=1; //启动定时器time=time*50000+temp; //中断次数*50000+temp 总的时间。

相关文档
最新文档