电动车里程表课程设计

合集下载

电子式里程表课程设计

电子式里程表课程设计

电子式里程表课程设计一、教学目标本课程旨在让学生了解和掌握电子式里程表的基本原理、结构及其在汽车行业中的应用。

通过本课程的学习,学生将能够:1.知识目标:(1)理解电子式里程表的定义及其作用;(2)掌握电子式里程表的组成原理;(3)了解电子式里程表在汽车行业中的应用。

2.技能目标:(1)能够分析电子式里程表的电路图;(2)能够进行电子式里程表的故障诊断与维修。

3.情感态度价值观目标:(1)培养学生对汽车行业的兴趣;(2)培养学生热爱科学、追求创新的精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.电子式里程表的定义及其作用;2.电子式里程表的组成原理;3.电子式里程表的电路分析;4.电子式里程表在汽车行业中的应用;5.电子式里程表的故障诊断与维修。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:用于讲解电子式里程表的基本原理、结构和应用;2.讨论法:用于分析电子式里程表的电路图和故障诊断;3.案例分析法:通过实际案例,使学生更好地理解电子式里程表的作用和应用;4.实验法:让学生亲自动手进行电子式里程表的故障诊断与维修,提高其实际操作能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的电子式里程表教材;2.参考书:提供相关的电子式里程表技术资料;3.多媒体资料:制作精美的电子式里程表教学课件;4.实验设备:准备电子式里程表实验所需的仪器和设备。

通过以上教学资源的支持,我们将为学生提供一个丰富、高效的学习环境,帮助学生更好地掌握电子式里程表的知识和技能。

五、教学评估本课程的教学评估将采用多元化、全过程的评价方式,以全面、客观地评价学生的学习成果。

评估内容包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性;2.作业:布置与课程内容相关的作业,评估学生的知识掌握程度;3.实验报告:评估学生在实验过程中的操作技能和分析解决问题的能力;4.期末考试:全面测试学生的知识掌握和应用能力。

电动车速度与里程测量仪的设计毕业论文

电动车速度与里程测量仪的设计毕业论文
第二章 自行车里程表的设计基本原理
2.1单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路
单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个基本条件:1.电源正常;2.时钟正常;3.复位正常。在AT89S51单片机的40个引脚中:电源引脚2根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。
第四章 电动车里程表软件实现方法.....................14
4.1 系统主要程序设计..................................14
4.2 电动车的速度里程表软件程序设计....................16
第五章 仿真与测试...................................30
第三章是本论文的自行车里程表的硬件原理图设计部分,介绍了自行车里程表的总体设计思想,电路图及其原理。
第4章是自行车里程表的软件实现部分,汇编语言进行编程。
第5章是介绍系统的仿真与测试,以及过程中遇到的问题、解决方案。
第六章为总结和展望,介绍了本论文实现的功能,阐述本课题的现实意义,以及对未来自行车里程表技术的展望。
1.工作电源:电源是单片机工作的动力源泉,对应的接线方法为:40脚(VCC)电源引脚,工作时接+5V电源,20脚(GND)为接地线。
2.2.复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机器周期的高电平.

电动车里程表设计

电动车里程表设计

济南铁道职业技术学院毕业设计题目:电动自行车速度里程表系别:电气系专业:电气自动化班级:电气0431学生姓名:付小明指导教师:贾俊刚完成日期:2007.5.10济南铁道职业技术学院毕业设计任务书摘要给出了以AT89C51单片机和光电传感器为核心,利用单片机的运算和控制功能以及传感器可以将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算的特点,采用串口LED显示模块实时显示所测速度和里程的速度里程。

该方案由于使用了串口LED显示模块和E2PROM以及高效快速的算法,因而可在节约系统资源和简化程序设计的基础上保证测量精度和系统实时性。

关键词:脉冲发生;数据采集;串行数据存储;实时数据处理;速度及里程测量;串行LED显示;单片机的选择;软件设计目录第一章.引言 (5)第二章系统概述 (6)2.1系统工作原理 (6)2.2 系统硬件设计 (8)2.2.1单片机系统 (8)2.2.2 LED显示电路 (9)2.2.3 外部晶振输入及复位电路 (11)2.2.4供电电路 (12)第三章.系统的软件设计 (13)3.1系统软件设计框图 (13)3.2数据的采集及处理 (13)总结 (15)致谢 (16)参考文献 (17)附录(一) (18)元器件清单 (18)电路工作原理图 (19)光电传感器的参数特性 (19)附录(二)系统编程软件 (21)第一章引言当今社会,以电力作为主要动力的电动自行车正逐步取代自行车,摩托车而成为代步的主要交通工具。

行驶过程中不产生污染,利于环境保护。

考虑其改善人们的出行方式、保护环境和经济节约等综合因素,电动自行车目前乃至今后都有着广阔的发展空间。

目前市面上电动自行车的速度里程表都是机械式结构的,看起来不够直观,如果能够采用LED屏幕直接将里程数或速度值显示出来,则会给用户带来极大的方便!本设计以AT89C51单片机为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度、里程的计算及里程的累计、存储,最后用8位的LED直观的将速度与里程值显示给用户,并且能够在速度高于用户的设定值时自动向用户发出声光报警,从而实现仪表的智能化。

课程设计:自行车里程表

课程设计:自行车里程表

青 岛 科 技 大 学本 科 课 程 设 计 (论 文)题 目 ____________________________________________________________________指导教师__________________________ 辅导教师__________________________ 学生姓名__________________________ 学生学号_________________________________________________________院(部)____________________________专业________________班______年 ___月 ___日自行车里程表 王乐毅 邵明宽 0807030122 自动化与电子学院 电子信息科学与技术 081 2011 12 27自行车里程表摘要:本文介绍的速度与里程表设计以单片机最小系统和霍尔传感器为核心。

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

本系统由霍尔传感器、RC滤波电路、单片机AT89S51、系统化LED显示模块、数据存储电路和键盘控制组成。

其中霍尔传感器包含信号放大和波形整形。

对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程本文先对里程表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析;然后给出了系统的建模过程及相应的系统模型,在此基础上进行了控制仿真,并对仿真效果进行了比较。

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

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

目录第 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设计的整体思路设计包括硬件设计和软件设计,其中硬件是基础软件是核心,软件的数据通过硬件进行处理和控制,最终实现用户的功能。

北工大-电子课程设计报告-数电-自行车里程表综述

北工大-电子课程设计报告-数电-自行车里程表综述

北京工业大学电子课程设计报告学院__________________________专业__________________________班级_____________组号________题目1._______________________2._______________________姓名_________________________学号_________________________指导教师____________________成绩________________________年月日数字部分:自行车里程表一.设计要求(一)设计任务设计、制作一个根据车轮周长、辐条数等参数来记录行驶里程的简易里程表。

要求具有可调整的手段,以适应不同车型。

(二)参考设计方案1、首先使用红外光电传感器对转动的车轮辐条进行测量,产生基本技术脉冲。

若以0.1公里作为里程表的计数单位,则需测量出车轮的周长、一周有多少根辐条、没走0.1 公里要有多少根辐条通过传感器。

若将此计数值转化为里程表的一个计数脉冲,提供给一个多位十进制里程计数器,则记录分辨率就为0.1公里,最后由多位数码管显示出来。

2、框图:(三)设计要求1、显示数字为3位,精度为0.1公里,即(00.0——99.9公里)。

2、数码管要有小数点,即个位与十位间的小数点要亮起来。

3、要标明你所设计的条件(轮周长、辐条数等),给出根据条件不同进行调整的方法。

4、结构简单、所用芯片尽量少、成本低、易于制作。

5、所用芯片与元件尽量在参考元器件范围内选择(实验室没有的需自行解决)(四)发挥部分从使用角度考虑,尝试加上你认为可以完善、改进的功能(如节电功能、显示清零等)。

(五)参考元件CD40106;CD4518(或CD4017,74LS161等);74LS21,74LS08,CD4011(或74LS00);CD4553,CD4543;共阴(共阳)数码管;NPN(PNP)开关管;红外光电传感器等;电阻,电容若干二、设计方案(一)实验初步设计经过对参考设计方案框图的分析得出该实验主要分为4个部分:光控电路设计及脉冲整形、轮辐计数电路、0.1公里计数电路、数码管显示电路(包括译码驱动)。

电动车速度与里程测量仪的设计毕业论文

电动车速度与里程测量仪的设计毕业论文
第二章 电动车速度里程表的设计基本原理...............7
2.1 单片机最小系统...................................7
2.2 霍尔传感器.......................................8
2.3 led数码显示......................................9
I²C总线的介绍:
I²C总线是双线串行总线。I²C总线采用二线传输,即SDA串行数据线和SCL串行时钟线。总线和器件之间的数据传送均由SDA数据线完成。一个I²C总线系统里的所有外围器件均采用器件地址和引脚地址的编址方式。系统中主CPU对任何节点的寻址没有采用传统的片选线方式,而是采用纯软件的寻址方式。为了能使总线上的所有节点器件输出实现“线”与逻辑功能,I²C器件输出端必须是漏极或集电极开路结构,即SDA和SCL接口线上必须加上拉电阻。
第四章 电动车里程表软件实现方法.....................14
4.1 系统主要程序设计..................................14
4.2 电动车的速度里程表软件程序设计....................16
第五章 仿真与测试...................................30
2.3 LED数码显示
与LCD液晶显示器相比,数码管虽没有液晶显示器那样的显示效果,也没有液晶显示器做图形界面具有人机交互美观的特点。但是LED有其自己的特点,它具有低功耗,容易控制,占用CPU资源少这些优点,从而成为一些显示器的首选。
数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极。通过解码电路得到的数码接通相应的发光二极而形成相应的字符。它可以显示从1到9的数字。这足以满足设计要求。

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

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

目录第 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。

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

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

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

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

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

目录第一章概述 (2)第二章硬件设计 (3)2.1系统组成结构框图 (3)2.2具体硬件电路及工作原理 (3)2.3 AT89C2051单片机简介 (4)2.3.1芯片概述 (4)2.4其他外围硬件电路 (6)2.4.1电源电路 (6)2.4.2霍尔传感器 (6)2.4.3 4位串行静态显示电路 (7)第三章软件设计 (8)3.1主程序设计 (8)3.2 外中断0和 T1定时溢出中断服务子程序设计 (8)3.3 速度/里程显示控制子程序设计 (8)3.4系统完整源程序 (9)总结 (10)参考文献 (11)附录 (12)附录1 整体电路图 (12)附录2 源程序 (13)第一章概述本设计介绍的速度与里程表设计以单片机和光电传感器为核心。

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

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

本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。

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

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

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

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

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

在计算里程时取了自行车的理想状态。

实际中,误差控制在几米之内,相对于整个里程来说不是很大。

为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。

另外,还应尽量保证其他子模块在编程时的通用性和高效性。

本设计的速度和里程值采用6位显示,并包含两个小数位。

第二章硬件设计2.1系统组成结构框图根据功能要求,首先要进行的是总体方案的设计于论证,构思一个符合实际要求的系统,如图2.1所示。

系统由测量模块、功能选择模块、显示模块、供电模块和单片机小系统构成。

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

图2.1 系统组成结构框图2.2具体硬件电路及工作原理具体硬件电路如图2.2所示。

太慢;P1.6输出低电平时,控制灯D4亮,表示此时的显示值时里程(否则为速度);P1.7控制超速报警电路,其为高电平表示行驶速度正常,为低电平时,三极管9012导通,驱动蜂鸣器报警。

2.3 AT89C2051单片机简介2.3.1芯片概述AT89C2051是一个低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。

AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。

同时AT89C2051的时钟频率可以为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。

省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。

管角配置图2.3所示。

图2.3 2051引脚图主要功能介绍(1)兼容MCS51指令系统(2) 15个双向I/O口(3)两个16位可编程定时/计数器(4)时钟频率0-24MHz(5)两个外部中断源(6)可直接驱动LED(7)低功耗睡眠功能(8)可编程UARL通道(9) 2k可反复擦写(>1000次)Flash ROM(10)6个中断源(11)2.7-6.V的宽工作电压范围(12)128x8bit内部RAM(13)两个串行中断(14)两级加密位(15)内置一个模拟比较放大器电池组经7805稳压后得到+5V电压给单片机系统和霍尔传感器供电。

2.4.2霍尔传感器霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。

本系统采用JK8002D霍尔接近开关,他是一种非接触型无触点开关,系统通过它探测外部的磁场的强弱变化,继而控制开关输出。

磁场由外部的磁钢产生。

JK8002D霍尔接近开关的内部原理图和输入/输出特性如图(5)和图(6)所示。

JK8002D霍尔接近开关的输入量是磁感应强度B,当B值达到一定的程度(如Bl)时,霍尔开关内部的触发器翻转,其输出电平状态也随之翻转。

当探头与磁钢距离由远而近为8mm时,霍尔元件输出端输出一个无抖动的低电平(约为0.2V),当两者距离足够远时,霍尔元件输出端输出一个无抖动的I/O 在节第三章软件设计3.1主程序设计主程序流程图见图3.1。

开机后系统自检,正常时LED显示“——”,同时等待自行车行驶。

轮子开始转圈后,系统进行记录和计算,并根据速度/里程开关的选择显示数值。

图3.1 主程序流程图3.2 外中断0和 T1定时溢出中断服务子程序设计外中断0服务子程序用于对输入脉冲的个数即轮子转圈的次数计数。

每计数一次,系统保存圈数值的同时保存定时器的计时值,并根据功能开关键实时显示相应的值。

T1定时溢出中断服务子程序用于实时统计记一次数的经历时间。

T1定时的基准时间设为20ms,假设记一次数中T1中断的次数为C,1.8/(20C)ms即当前自行车行驶的速度。

用内部定时加外中断的方法实现了对输入脉冲信号的测量,这是本系统最关键的程序部分。

3.3 速度/里程显示控制子程序设计最大允许速度由限速切换开关S4控制,超速使单片机的P1.7输出低电平报警。

若行驶速度太慢(<0.5m/s),灯D3不断闪烁,LED交替显示“Erro”、“Sudu”和当前速度值,以引起骑车者的注意。

速度显示值的单位有km/h和每m/s,由功能键S5切换。

对于里程值,为了较精确地显示,程序设置了不同里程范围时所显示的小数点后数字的位数:里程为10m~99m,显示2位小数;里程为100m~999m,显示1位小数。

3.4系统完整源程序如附录1总结本设计以AT89C2051为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度,里程的计算及里程的累计,存储,最后用6位的LED 能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。

这次课程设计使我掌握了很多实践知识,在老师和同学的帮助下对单片机有了进一步的了解。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,进而提高自己的实际动手能力和独立思考的能力。

整个设计过程可以说不是很顺利,因为有很多知识已经淡忘,还有很多新的东西没有掌握,所以这次设计在不断的复习、学习中度过,使我受益匪浅,也使我对单片机的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。

参考文献[1] 张毅坤,陈善久.单片微型计算机原理及应用.西安:西安电子科技大学出版社,2002.[2] 张友德,赵志英,徐时亮.单片微机原理应用与实验.上海:复旦大学出版社,2000.[3] 伟福Lab2000P系列单片机仿真实验系统说明书.附录附录1 整体电路图附录2 源程序自行车里程表/* 各引脚用途及系统功能说明P1.0 速度和里程切换:1显示速度,0显示里程P1.1 限速度切换:1 10m/s;0 8m/sP1.2 km/h和 m/s的切换:P1.4 指示显示器单位为km/hP1.5 速度太慢灯闪烁警告P1.6 0时灯亮,指示里程;为以灯不亮,显示速度P1.7 超速度报警距离最大值为9999m6H圈、 38H圈、 22C圈、 15B6圈0m=<S<10m 10m=<S<100m 100m=<S<1000m 1000m=<S<10000m周长0707H 00B4H 0012H 0012H/0AH//变量定义//XIAOSHU EDU 57H ;小数点位数单元GEWEI EDU 40H ;显示单元SHIWEI EDU 41H ;BAIWEI EDU 42H ;QIANWEI EDU 43H ;QSHU1 EDU 43H ;QSHU0 EDU 61H ;自行车圈数存储单元高位QSHU0 EDU 62H ;自行车圈数存储单元低位SJIAN0 EDU 6CH ; T1定时溢出存储单元高位SJIAN1 EDU 6DH ; T1定时溢出存储单元低位//主程序//ORG 000HAJMP STARTORG 0003HAJMP INTEX0ORG 001BHAJMP IT11ORG 0030HSTART: MOV SP,#75H ;设置堆栈指针MOV SCON,#00H ;串行口工作方式MOV GEWEI,#0AH ;开机显示MOV SHIWEI,#0AHMOV BAIWEI,#0AHMOV QIANWEI,#0AHACALL DIS11SETB P3.2 ;外中断0为输入查询方式JB P3.2 ;等待第一个有效脉冲(下降沿)到来ACALL CLEARRAM ;调用系统准备显示初始化子程序STLOOP: JNB P1.0,ST1 ; p1.0=0,显示速度ACALL DISPLAYS ; P1.0=1, 显示里程SJMP STLOOP ;循环显示ST1: ACALL DISPLAYV ;第一个下降沿来后显示速度AJMP STLOOP ;循环显示//系统准备显示初始化子程序//CLEARRAM: MOV TMOD,#10H ; T1用于定时,工作于模式1 MOV TH1,#0B1H ;定时20ms初始值SETB P1.2 ; P1.2-P1.0为输入SETB P1.1SERB P1.0CLR A ;相应内RAM空间清零MOV 21H,A ;速度/里程的BCD码高位清0MOV 22H,A ;速度/里程的BCD码低位清0MOV QSHU1,A ;圈数空间清0MOV QSHU0,AMOV 6AH,A ; T1溢出次数暂存单元高位清0 MOV 6BH,A ; T1溢出次数暂存单元低位清0 MOV SJIAN0,A ;计数器空间清零MOV SJIAN1,AMOV XIAOSHU,#01H ;默认显示3位小数SETB IT0 ;设置外中断为边沿触发方式SETB PT1 ; T1优先级最高SETB EA ;开总中断SETB ET1 ;开T1中断SETB EX0 ;开外0中断//外中断0服务子程序//INTEX0: PUSH ACC ;累加器堆栈保护PUSH PSW ;状态字堆栈保护INC QSHU0 ;圈加1SETB P1.7 ;置1不报警CLR A ;清ACJNE A,QSHU0,SUBX0 ;计数没溢出转SUBX0INC QSHU1 ;溢出进位(61H加1)SUBX0: CLR TR1 ;关计时,读轮子转一圈的时间 MOV 6AH,SJIAN0 ;时间暂存MOV 6BH,SJIAN1MOV TH1,#0B1H ;定时器T1重付初值MOV TL1,#0DFHCLR AMOV SJIAN0,A ;清计时空间MOV SJIAN1,ASETB TR1 ;重新计时POP PSW ;状态字恢复POP ACC ;累加器恢复RETI ;中断返回//T1定时器溢出时中断服务子程序//IT11: PUSH ACC ;堆栈保护PUSH PSWINC SJIAN1 ;定时20毫秒溢出次数MOV A,SJIAN1 ;读一圈定时的次数CJNE A,#0BBH,SUBT1 ;速度太慢(<0.5),处理AJMP SUBT2SUBT1: JC SUBT2INC 69H ;(69H)为奇数,LED显示“Erro” MOV A,69H ;再显示具体速度的值JB ACC.0 ERRO ;(69H)为偶数,LED显示“Sudu” MOV GEWEI,#05H ;再显示具体速度的值MOV SHIWEI,#0BHMOV BAIWEI,#0DHMOV QIANWEI,#0BHMOV XIAOSHU,#0BHACALL DIS11SJMP FS12ERRO: MOV GEWEI,#0CHMOV SHIWEI,#OBHMOV BAIWEI,#0BHMOV QIANWEI,#0DHACALL DIS21;“Erro”或“sudu”和具体速度大值交替闪烁显示FS12: MOV R2,#01H ;CLR P1.5ACALL DELAY2SETB P1.5ACALL DELAY2DJNZ R2,FLASHSUBT2: MOV TH1,#0B1HMOV TL1,#0DFHSETB TR1POP PSWPOP ACCRETI//里程显示控制子程序//DISPLAYS:CLR P1.6ACALL JULIMOV A,QSHU1CJNE A,#02H,DIAOYONG AJMP PANDY DIAOYONG:JNC PANDY1AJMP BUDYPANDY: MOV A,QSHU0CJNE A,#2CH,PANDY2 AJMP PANDY1PANDY2: JC BUDYPANDY1: MOV R6,#00hMOV R7,#0AHACALL JULI2ACALL BCDCACALL FENKAIACALL DIS21ACALL DELAY1RETBUDY: MOV R6,#00hMOV R7,#01hACALL JULI2ACALL BCDCACALL FENKAIACALL DIS11ACALL DELAY1ACALL DELAY1RET//速度显示控制子程序// DISPLAYV:SETB P1.6ACALL SUDUACALL BCDCACALL FENKAIMOV XIAOSHU,#01HRET//处理子程序1//JULI: PUSH PSWPUSH ACCMOV R2,QSHU1MOV R3,QSHU0JNZ GAOMOV A,QSHU0CJNE A,#06H,PAN1AJMP PAN2PAN1: JNC PAN2PAN2: MOV A,QSHU0CJNE A,#38H,PAN3 AJMP GAOPAN3: JC CZB4GAO: AJMP CZ12CZ707: MOV R6,#07HMOV R7,#07HMOV XIAOSHU,#01H AJMP KAISHICZB4: MOV R6,#00HMOV R7,#0B4HMOV XIAOSHU,#02H AJMP KAISHICZ12: MOV R6,#00HMOV R7,#00HMOV XIAOSHU,#03H KAISHI为两字节乘两字节程序段KAISHI: MOV A,R3MOV B,R7MUL ABMOV R4,BMOV R5,BMOV A,R3MOV B,R6MUL AABADD A,R4MOV R4,ACLR AADDC A,BMOV B,R7MUL ABADD A,R4MOV R4,AMOV A,R3ADDC A,BMOV R3,ACLR ARLC AXCH A,R2MOV B,R6MUL ABADD A,R3MOV R3,AADDC A,BMOV 50H,R2 MOV 51H,R3 MOV 52H,R4 MOV 53H,R5 POP PSWPOP ACCRET//处理里程子程序2// Juli2: PUSH PSWPUSH ACCMOV R2,50H MOV R3,51H MOV R4,52H MOV R5,53H DIVD11: CLR CMOV A,R3 SUBB A,R7 MOV A,R2 SUBB A,R6 JC DVD11 SETB OVRETDVD111: MOV B,#10H DVD211: CLR CMOV A,R5 MOV R5,A MOV A,R4 RLC AMOV R4,A MOV A,R3 RLC AMOV R3,A XCH A,R2 XCH A,R2 MOV F0,C CLR CSUBB A,R7 MOV R1,A MOV A,R2 SUBB A,R6 ANL C,/F0 JC DVD311MOV A,R1MOV R3,AINC R5DVD311: DJNZ B,DVD211MOV A,R4MOV R2,AMOV A,R5MOV R3,ACLR OVMOV 30H,R2MOV 31H,R3POP ACCPOP PSWNOPRET//十六进制转换乘BCD子程序// BCDC: PUSH ACCPUSH PSWMOV R6,30HMOV R7,31HCLR AMOV R3,AMOV R4,AMOV R5,AMOV R2,#10HHB322: MOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,AMOV A,R3ADDC A,R3DJNZ R2,HB322MOV 20H,R3MOV 21H,R4POP PSWPOP ACCNOPRET//算速度十六进制值子程序// SUDU: PUSH PSWPUSH ACCJB P1.2,KMSJMP JUBUKM: MOV R2,#00HMOV R3,#04HMOV R4,#0F1HMOV R5,#0A0HCLR P1.4SJMP QUANJUJUBU: MOV R2,#00HMOV R3,#001HMOV R4,#05FHMOV R5,#090HCLR P1.4 QUANJU: MOV A,6BHJB P1.1,XIAN10CJNE A,#0BH,BUXIANG SJMP JC0XIAN10: CJNE A,#09H,BUXIANG SJMP JC0 BUXIANG: JC JC0SJMP BUJGJC0: MOV A,6AHCJNE A,#00H,BUJGAJMP JIANGGAO JIANGGAO: CLR P1.7MOV GEWEI,#0CHMOV SHIWEI,#0BHMOV BAIWEI,#0BHMOV QIANWEI,#0DH ACALL DIS21ACALL DELAY1MOV GEWEI,#0EHMOV SHIIWEI, #0EH MOV BAIWEI,#0EHMOV QIANWEI,#0EH ACALL DIS21SJMP QUANJUBUJU: MOV A,6BHCJNE A,#0AFH,LING0 AJMP LING1LING0: JC LING1AJMP BUJINGLING1: MOV A,6AHCJNE A,#00J,BULING0 AJMP BULING1 BULING0: JC BULING1 BULING: MOV SJIAN0,#00HMOV SJIAN1,#00HRET//4字节除2字节除法子程序// BULING1: MOV R6,6AHMOV R7,6BHDIVD: CLR CMOV A,R3SUBB A,R7MOV A,R2SUBB A,R6JC DVD1SETB OVRETDVD1: MOV B,#10HDVD2: CLR CMOV A,R5RLC AMOV R5,AMOV A,A4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AXCH A,R2XCH A,R2MOV F0,CCLR CSUBB A,R7MOV R1,AMOV A,R2SUBB A,R6JC DVD3MOV R2,AMOV A,R1MOV R3,AINC R5DVD3: DJNZ B,DVD2MOV A,R4MOV R2,AMOV A,R5MOV R3,ACLR OVMOV 30H,R2MOV 31H,R3POP ACCPOP PSWSETB P1.7NOPRET//压缩BCD码转乘非压缩BCD码子程序// FENKAI: MOV R7,#02HMOV R0,#GEWEIMOV R1,#21HFENKAI1: MOV A,@R1ANL A,#0F0HSWAP AMOV @R0,AINC R0MOV A,@R1ANL A,#0FHMOV @R0,AINC R0INC R1DJNZ R7,FENKAI1RET//延时子程序//DELAY1: MOV R6,#0FFHDEL: MOV R7,#0FFHDJNZ R7,$DJNZ R6,DE;RETDELAY2: MOV R6,#02FHMOV R7,#0FFHDJNZ R7,$RET//4位串行静态显示子程序//DIS21: MOV R7,#04HMOV R0,#GEWEILED1_21: MOV A,@R0MOV DPTR,#DATA_7SEG22LED1_221: MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,LED1_21RETDATA_7SEG22DB081H,0EDH,043H,049H,02DH,019H,011H,0CDH,001H,009H,07FH,077H,013H,071, 0FFH;0 1 2 3 4 5 6 7 8 9 - r o E 空显;= = = = = = = = = = = = = = = = = = = = = = = = =DIS11: MOV R7,#04HMOV R6,XIAOSHUMOV R0,#GEWEILED1_11:MOV A,@R0DJNZ R6,LED6MOV DPTR,#DATA_7SEG3SJMP LED1_31LED6: MOV DPTR,#DATA_7SEG2LED1_31: MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,LED1_11RETDATA_7SEG2DB081H,0EDH,043H,049H,02DH,019,011H,0CDH,001H,009H,07FH,0A1H,0R9H,061H ; 0 1 2 3 4 5 6 7 8 9 - U J dDATA_7SEG3DB 080H,0ECH,042H,048H,02CH,018H,010H,0CCH,000H,008H,07FH; 0. 1. 2. 3. 4. 5. 6 7. 8. 9. -指导教师:年月日。

相关文档
最新文档