电气电子毕业设计224淮安信息学院智能速度里程表设计
收藏
资源目录
压缩包内文档预览:(预览前20页/共37页)
编号:516829
类型:共享资源
大小:152.63KB
格式:RAR
上传时间:2015-11-12
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
3.6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
电气电子毕业设计224淮安信息学院智能速度里程表设计,毕业设计论文
- 内容简介:
-
淮安信息学院 2007 届毕业生论文 智能速度里程表设计 1 综合毕业实践报告 (论文 ) 综合毕业实践题目: 智能速度里程表设计 系 部 : 电气工程系 专 业: 现代应用电器与电子 学生姓名: 巢云华 班级: 440420000 学号: 44042016 起迄日期: 2006.1-2006.6 实践地点: 指导教师: 朱静 专业技术职务 : 副教授 顾问教师: 2007 年 6 月 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 2 智能速度里程表设计 摘 要 : 汽车的技术性能随着行驶里程的增加以及各种因素的影响而发生变化。在使用汽车的过程中,对车辆进行定期保养,可以 及时发现和消除隐患,防止故障的发生提高车辆的完好率,有效地延长汽车的使用寿命。因此,开车中应时常关注里程表显示的数字,一旦到了保养里程,应及时到特约维修站做定期保养。针对机械式里程表的缺点,开发研制了数字式汽车里程表。该里程表系统主要 由 AT89C2051单片机为核心、传感器调理、控制键盘输入等硬件电路模块组成。以 AT89C2051为核心,利用单片机的运算和控制功能,并采用共阴极八段数码管 实时显示所测速度和里程的速度里程表设计方案。该方案由于使用了 共阴极八段数码管 和 E2PROM,以及高效快速算法,因而可在节约 系统资源和简化程序设计的基础上保证测量精度和系统实时性。 关键词: AT89C2051单片机;里程表;传感器 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 3 目 录 摘 要 . 2 ABSTRACT . 错误 !未定义书签。 目 录 . 3 前 言 . 4 第一章 设计概述 . 5 1.1 具体实现方案 . 5 1.2 软件设计 . 7 第二章 硬件描述 . 8 2.1 系统核心元器件单片机 AT89C52芯片简介 . 9 2.2 车轮转速采集元件 霍尔元件简介 . 错误 !未定义书签。 2.3 显示部分 共阴极八段数码管简介 . 12 2. 4 E2PROM存储器 24C01芯片简介 . 13 2. 5 分频器 TC4024 芯片简介 . 13 第三章 软件描述 . 14 3 .1 系统主要程序设计 . 14 3.2 汇编程序清单 . 16 第四章 系统调试 . 34 结 论 . 35 谢 辞 . 37 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 4 前 言 新生事物不会因传统的存在而停止它前进的步伐,电子数码科技今天已渗透到工业,农业,民用的产品的点点滴滴。新概念汽车里程表直接用数字显示速度、里程,另外还有时间显示和温度测量以及超速报警。不只是为达到目的,更是为了享受驾驶的快感。 本设计是一个十分实用的设计,是汽车必备的电子仪表。现在汽车制造的电子化程度越来越高,所以像这种电子 计程表是一定会在实际应用之中有它的用武之地,市场前景十分广阔。 其设计的具体功能要求是: 1.实现速度的测量(单位:米 /秒) 2.具有测量行程的功能(单位:米); 3.速度过快的警告功能; 要达到课题要求其难点在于: 1.用霍尔元件数据采集的具体安装和实现效果。 2.单片机对里程和速度的计算,输出的中断与数据采集造成里程和速度的误差。 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 5 第一章 设计概述 为了达到设计要求,首先要对系统要完成的功能进行分析。系统要通过传感器件对车轮的转动信息进行采集,并将其送入系统中心处理部分进行 分析 计 算,最后得到车子的速度以及里程等信息然后送显示部分输出。所以本设计就要有:信号采集部分、信号预处理电路、 AT89C51 单片机、显示电路、串口数据存储电路和系统软件组成。其中信号预处理电路含信号放大、波形变换和波形整形。 1.1具体实现方案 系统 硬件框图如下 图 1.1: 图 1.1 系统硬件框图 系统基本上有:按键控制以及指示灯部分、霍尔脉冲信号输入以及信号二分频部分、核心控制部分、数码管显示部分组成。 其电路原理图如下图 1.2: nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 6 图 1.2 汽车里程 /速度计电气原理图 按键控制部分以及 指示灯 按键控制 部分的设计采用独立式 按键,接在 P1 口上,使用时给 P1 置 1,当按键按下时对应管脚被置 0,通过对 P1 口扫描过确定是那个键按下了,然后,做出相应的动作。如下图所示 P1.0 口和 P1.1 口分别用于显示里程状态和速度状态。 P1.2、 P1.3、 P1.6 和 P1.7口分别用于设置轮圈的大小。第 10 脚的开关用于确定显示的方式,当开关闭合时,显示速度;打开时显示里程。 霍尔元件脉冲信号输入以及二分频 第 12 脚外中断 0用于支轮子的圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉。将此信号 二分频后 用于 单片机的 第 13 脚外 中断 1 的中断 信号, 控制定时器 T1的启 /停,这样每次定时器 T1 开启的时间刚好是车轮每转一圈的时间, 再根据轮子的周长即可得到车速。 数码管显示部分 单片机的 P0 口和 P2 口用于七段 LED 显示器的扫描输出和段码。 P0.0P0.6用于数码管的扫描输出数据入口,将单片机计算出的关于车的里程、速度转化成在 LED上显示的代码然后从 P0 口输入,通过 P2口的 P2.2、 P2.3和 P2.4这三个管脚输出控制信号,控制哪个数码管显示里程数或是车速。 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 7 1.2 软件设计 本设计所有程序全部采用汇编言语编写 , 汇编语言能够很直观看出其是如何对硬件进行操作的,因此十分实合用于小型系统的软件开发,下面是一些关于汇编语言的简介: 汇编语言与指令系统 汇编语言程序设计的选择 完成某项特定任务的指令 的几何 称为程序。计算机是按照程序一条条依次执行指令而工作的。用户要计算机完成各种任务,就要设计各种应用程序。设计程序就要用到程序设计语言。 程序设计语言有三种:机器 语言、汇编语言和高级语言。 机器 语言是及其唯一能“懂” 的语言,用汇编语言或高级语言编写的程序(源程序)最终都必须翻译成机器语言的程序,计算机才能“看懂”,然后逐一执行 。但是,机器语言只是一种用二进制数组成的代码,人们不易辨识、记忆,因此使用不便、易错,很难用它来进行程序设计。 高级语言是面向问题和计算过程的语言,它可通用于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多计算机指令,于是用高级育秧编制程序的速度比较快,也便于学习和交流,所以使用很多。但是编制程序工作两不大、规模较小的计算机系统,使用汇编语言编程也还方便,而且高级语言源程序要通过预存于计算机存储器内的编译程序或解释程序才能翻译成及其语言,而 储容量较小的计算机系统容纳不下,因此也无法配用这些工具程序,便必须应用汇编程序编程了。 用汇编语言编制程序时,程序的每个语句都与计算机的某条具体指令相对应。根据统计,译成机器语言后,高级语言一般长度增加 15%-200%,占用的内存空间相随扩大,执行时间也相应增加 50%-300%。可见对于要求反映灵敏与控制及时地工控、检测等实时控制系统以及要求体积小、系统小的许多“电脑化”产品,采用汇编语言编程,其优越性比较明显。也就是说,汇编语言程序设计有其特定的应用范围,用的也相当广泛。 MCS-51 系列单片机的 汇编 指令 系统 一台计算机在设计时已决定了共有多少条指令以及每条指令所能执行的操作功能。根据设计使某型计算机具有指令的集合便构成这一计算机的指令系统。 MCS-51 系列单片机的指令系统共有 111 条指令,按照他们的操作性质可划分成数据传送、算术操作、逻辑操作、程序转移、位操作等 5大类。 MCS-51 系列单片机的指令长度较短;单字节指令有 49 条;双字节指令有 46条;最简nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 8 单的是 三字节指令,只有 16 条。指令周期也短;单机器周期指令 64 条;双机器 周期指令45 条;只有乘、除两条指令需要 4个机器周期。这些指令在 12MHz晶振的情形下 ,执行时间分别为 1s、 2s 和 4s。可见, MCS-51 指令系统在存储空间和执行时间方面具有较高的效率,编成的程序占用内存单元少,执行也很快捷,与其应用范围的要求很相适应。 在 MCS-51 指令系统中,有丰富的位操作指令,形成一个相当完整的位操作指令子集,成为该指令系统的重大特点。这对于需要进行大量位操作的程序将带来明显的见解和方便。 每条指令通常有操作码和操作数两部分组成,前者表示计算机执行该条指令将进行何种操作,后者表示参加操作的数的本身或操作数所在的地址。一台计算机在设计时也已决定了每条指令的操作码的 表示形式,这就是指令的助记符、操作功能、译成机器语言的代码以及存放时占用的字节数和执行时好用的机器周期数。 第二章 硬件描述 本设计主要由以下部分组成:按键控制以及指示灯部分、霍尔脉冲信号输入以及信号二分频部分、核心控制部分、数码管显示部分。使用的主要元器件如下表: 通用单片机 AT89C51 一片 E2PROM存储器 24C01 一片 分频器 TC4024 一片 共阴极八段数码管 LTS547G 三个 石英晶体振荡器 一个 独立式按键 五个 发光二极管 三个 三极管 NPN型 二个 三极管 PNP型 四个 电阻 若干 电容 若干 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 9 2.1 系统 核心 元器件 单片机 AT89C52芯片 简介 单片计算机即单片机,其全称为单片微型计算机( Single-Chip Microcomputer),亦称为微控制器( Micro controller) ,就是将 CPU、 RAM、 ROM、定时器 /计数器和多种接口电路都集成到一块集成电 路芯片上的微型计算机。因此,一块芯片就构成了一台计算机。其特点是体积小、成本低、功能强、功耗低,是微机应用产品化的最佳机种之一。因而它适合作本设计的核心控制器件。 单片机可分为多个品种及系列, AT89C51属于 8位通用型 51 系列单片机的 51 子系列。故以下介绍的都是这一类的情况。 MCS-5l 基本组成及主要特点 MCS-51 系列单片机基本结构如图 2.1 所示。每一片单片机包括: 中央处理器 CPU; 256B内部数据存储器 RAM,用以存放可以读、写的数据,如运算中间 结 果和最终结果等; 4KB内部指令存 储器 ROM, 用以存放程序,亦可存放一些原始数据和表格; 4个 8位输入 /输出接口 P0、 P1、 P2、 P3。每个口既可以用作输入,也可以用作输出; 2 个定时器 /计数器。可以用来对外部事件进行计数,也可以设置成定时器,并根据计数或定时的结果对计算机进行控制; 图 2.1 MCS-51系列单片机基本结构 内部中断控制系统; 1个全双工 UART(通用异步接收发送器 )串行 I/O 接口, 使得数据可以一位一位在计算机nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 10 与外设之间传送, 可用于单片机之间或单片机与微机之间的串行通信 ; 内部时钟产生电路,但晶 振和微调电容需要外接。振荡频率范围为 1.2 12MHz。 以上各部分通过内部总线相连接 。 单片机 工作原理 1、 电源引脚 CCV:接 +5V 电源。 SSV:接电源地端。 2、 外接晶体引脚 XTAL1:片内反相放大器输入端。 XTAL2:片内反相放大器输出端。外接晶体时 ,XTAL1 与 XTAL2 各接晶体一端,借外接晶体与片内反相放大器构成振荡器。 3、 输入 /输出引脚 P0.0 P0.7: P0 口的 8 个引脚在不接片外 存储器与不扩展 P0 接口时,可作为准双向输入 /输出接口。在接有外存储器或扩展 I/O 接口时, P0 口分时复用为低 8 位地址总线和双向数据总线。 P1.0 P1.7: P1 口的 8个引脚。可作为准双向 I/O 接口使用。对于 52 子系列, P1.0与 P1.1 还有第二种功能: P1.0可用作定时器所数器 2的外部控制端 T2EX。 P2.0 P2.7: P2 的 8个引脚。可作为准双向 I/O 接口;但在接有片外存储器或扩展 I/O接口且寻址范围超过 256B 时, P2 口用作高 8位地址总线。 P3.0 P3.7: P3 口的 8个引脚。除作为准双向 I/O 接口使用外,还具有第二功能,详见图2.2 图 2.2 P3口引脚第二功能 4、 外接附加电路 引脚 第二功能 P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 INT0 (外部中断 0请求输入端) P3.3 INT1 (外部中断 1请求输入端) P3.4 T0 (定时器 /计数器 0记数脉冲输入端) P3.5 T1 (定时器 /计数器 1记数脉冲输入端) P3.6 WR (片外数据存储器写选通信信号输出端) P3.7 RD (片外数据存储器读选通信信号输出端) nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 11 MCS-51 单片机的工作方式大体可以归纳为四种;复位方式、程序执行方式、节电方式和 EPROM的编程与校验方式。本设计中使用的是复位方式。 MCS-51 系列单片机的复位 (RST)引脚上只要出现 10ms 以上的高电平,单片机就实现复位。复位的功能是把程序计数器 PC 值初始化为 0000H,使单片机从 0000H 单元开始执行程 序。除此之外,复位操作还对 些特殊功能寄存器值也有影响。 复位工作状态 单片机在 RST 引脚高电平控制下,特殊功能寄存器和程序计数器 PC 复位后的状态如表 2.3所示。复位不影响片内 RAM 存放的内容,控制信号 ALE、 PSEN在复位有效期间将输出高电平。 寄存器 复位状态 寄存器 复位状态 PC 0000H TCON 00H A 00H T2CON 00H B 00H TH0 00H PSW 00H TL0 00H SP 07H TH1 00H DPTR 0000H TL1 00H P0-P3 FFH SCON 00H IP XX000000B SBUF XXH IE 0X000000B PCON ( 0XXOO00B) TMOD 00H 图 2.3 特殊功能寄存器和程序计数器 PC复位后的状态 单片机的各个功能模块由特殊功能寄存器控制,而程序的运行由 PC 管理,所以上述的复位状态决定了单片机的初始状态。 复位电路 MCS-51 单片机系统常常有上电复位和操作复位两种方法。上电复位,是指单片机上电瞬间,要在 RST 引脚上出现宽度大于 10ms 的正脉冲,才能使计算机进入复位状态。操作复位是指 用户按下“复位”按钮使单片机进人复位状态。本设计使用的是操作复位方法。复位是靠外部电路实现的,图 2.4是上电复位及按钮复位的实用电路。 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 12 图 2.4 上电复位及按钮复位实用电路 按钮按下时 RST 上出现高电平,实现了操作复位,在系统运用中,有些外围芯片也需要复位。如果这些芯片复位端的复位电平与单片机的一致,则可以与单平机的复位脚相连。非门在这里不仅起到了倒相作用,还增大了驱动能力。电容 Cl、 C2 起滤波作用,防止干扰窜入复位端产生误动作。 2.3 显示部分 共阴极八段数码管简介 在单片机应用系统中常用的显 示器主要有发光二极管显示器,简称 LED 和液晶显示器,简称 LCD。这两种显示器具有耗电省、价格低、配置灵活、线路简单、安装方便、耐振动、寿命长等优点,但因其显示内容有限,且不能显示图形,因而其应用有局限性。近年来对某些要求较高的单片机应用系统开始配置简易形式的显示器 (CRT)接口,虽然可进行图形显示,但接口较复杂,成本也较高。 LED 显示器是由发光二极管显示字段的显示器件,也可称为数码管。其外形结构如图2.6(a)所示,由图可见,它由 8个发光二极管 (以下简称字段 )构成,通过不同的组合可用来显示。 0 9、 A F及小数点“”等字符。 数码管有共阴极和共阳极两种结构,见图 2.6(b)和图 2.6(c)。图中电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平 ( 般为 5v)时,此二极管点亮:共阳极数码管的发光二极管是阳极并接到高电平,对于需点亮的发光二极管使其阴极接低电平 (一般为地 )即可。显然,要显示某字形就应使此字形的相应字段点亮,实际就是将一个用不同电平组合代表的数据送数码管。这种装入数码管中显示字形的数据称字形码。下面以共阳极数码管为例说明字形与字形码的关系。 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 13 图 2.6 “ 8”字形数码 管 对照图 2.6(a)字段,七段发光二极管,再加上一个小数点位,共计 8 段,因此提供给 LED 显示器的字形码正好一个字节。字形码各位定义如下: 数据线 D0 与 a字段, D1 与 b字段对应,依次类推。参考图 2.6(a)和 (c)可以看出,如要显示“ 7”字形, a、 b、 c三字段应点亮,所以对应的字形码为 11111000B。如要显示“ E” ,对应的 a、 f、 g、 e、 d字段应点亮所其字形码为 10000110B 2.3 E2PROM存储器 24C01芯片简介 2.4 分频器 TC4024芯片简介 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 14 第三 章 软 件描述 3 1 系统主要程序设计 初始化程序 在本系统初始化程序中,主要完成以下工作:将 T1 高为外部控制定时方式;外中断 0及外中断 1 高为边沿触发方式;将部分内存单元清 0;设置轮子长值;开中断及定时器;将 E2PROM中的数据调入内存等。 轮圈设置出错处理程序 P1.2、 P1.3、 P1.6 和 P1.7 口的开关用于设定轮子的周长,没有设定时(至少让一个开关闭合),能从引脚 11输出一个周期为 0.5S 的方波信号, 用作发光管闪烁及信响器提醒。 主程序 主程序根据引脚 10 的开关状态选择里程显示或速度 显示,其流 程 图如下 : nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 15 图 3.1 主程序流程图 开始 上电初始化 判断轮周长按键 出错报警 开启定时器,开总中断 允许外中断 0和 T1时钟中 断 将 E2PROM中原里程数调入内存 判断 P3.0 显示里程 显示速度 返回 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 16 里程计数程序(外中断 0服务程序) 外中断 0服务程序用于对 12 脚输入的圈脉冲进行计数,为十六进制计数器。 60H为低位, 62H 为高位。每半数一次后,对里程数据进行一次存储操作。 外中断 1服务程序 外中断 1服务程序用于处理轮子转动一圈后的计时数据。当标志位( 00H)为 1时,说明计数器溢出,放入最大时间(为 0FFH);当标志位为 0时,将计数单元( TL1,TH1,6CH,6DH)的值放入 68H 6BH 单元。 E2PROM存取程序 本系统使用归一化 I2C 串口存取子程序,使用一条数据和时钟线,采用 ATMEL公司的24C01串口存储器,应用简单方便。 显示 子程序 当显示里程时,先要将圈数计数器中的数据进行运算,求出总里程。娄要显示速度时,要将轮子的周长和转一圈的时间数相除,然后换算成 KM/H 单位。最后放入 70H 73H,进行数据的显示。 3.2 汇编程序清单 以下是控制系统完整的汇编源程序: ; ; SPEED/MILE FOR BIKE PROGRAM ; ; ; 60H, 61H, 62H 作里程计数单元, 6DH 作 T1 计数扩充单元, ; 68H, 69H, 6AH, 6BH存放自行车每圈时间数, 70H, 71H, 72H, 73H ; 作显示 BCD 码存放树用, 11H15H存放被除数, 16H19H存放除数 ; ;定义 VSDA EQU P1.5 ; E2PROM 数据传送口 VSCL EQU P1.4 ; E2PROM 时钟传送 口 SLA EQU 50H ; E2PROM器件寻址字节存放单元 NUMBYT EQU 51H ; E2PROM传送字节数存放单元 MTD EQU 30H ; E2PROM放送数据缓冲单元 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 17 MRD EQU 40H ; E2PROM读出数据存放单元 SLAW EQU 0A0H ; E2PROM寻址字节写 SLA R EQU 0A1H ; E2PROM寻址字节读 DPHH EQU 62H ; DPTR 计数扩展高 8位 TH1H EQU 6CH ;定时器 T1 扩展高 8位 TH1HH EQU 6DH ;定时器 T1 扩展高 816 位 ; ; PROGRAM INPUT; ; ; ORG 0000H ;程序执行开始地址 LJMP START ;跳至 START ORG 0003H ;外中断 0中断程序入口 LJMP INTEX0 ;跳至 INTEX0中断服务程序 ORG 000BH ;定时器 T0 中断程序入口 RET1 ;中断返回 ORG 0013H ;外中断 1中断入口 LJMP INTEX1 ;跳至 INTEX1中断服务程序 ORG 001BH ;定时器 T1 中断程序入口 LJMP INTT1 ;跳至 INTT1中断服务程序 ORG 0023H ;串口中断入口地址 RET1 ;中断返回 ORG 002BH ;定时器 T2 中断入口地址 RET1 ;中断返回 ; ; ; PROGRAM CLEAR ; ; nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 18 ; 上电初始化程序 CLEARMEN: MOV TMOD, #90H ; T1 为 16 位外部控制定时器 SETB PX0 ;外中断 0优先级为 1 SETB IT0 ;外中断 0用边沿触发 SETB IT1 ;外中断 1用边沿触发 CLR A ;清 A MOV 20H, A ;清内存中特定单元 MOV 6CH, A MOV 6DH, A MOV 70H, A MOV 71H, A MOV 72H, A MOV 73H, A MOV 60H, A MOV 61H, A MOV 62H, A MOV 63H, A ;请内存中特定单元 DEC A ; A为 #0FFH MOV 68H, A ;内存置数据 #0FFH MOV 69H, A ;内存置数据 #0FFH MOV 6AH, A ;内存置数据 #0FFH MOV 6BH, A ;内存置数据 #0FFH MOV P1, A ; P1 口置 1 CLEAR1: JB P1.2, KEY1 ;根据 P1.2, P1.3,和 P1.7 设置状态 ;在 21H 地址单元赋自行车周长值 MOV 21H, #0FH ; 22 英寸周长值 LJMP CLEAR2 ;转 CLEAR2 KEY1: JB P1.3, KEY2 MOV 21H, #12H ; 24 英寸周长值 LJMP CLEAR2 ;转 CLEAR2 KEY2: JB P1.6, KEY3 nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 19 MOV 21H, #14H ; 26 英寸周长值 LJMP CLEAR2 ;转 CLEAR2 KEY3: JB P1.7, ERR ; 4个开关都没合上,转出错处理 MOV 21H, #19H ; 28 英寸周长值 CLRAT2 SETB TR1 ;开定时器 T1 SETB EA ;开中断允许 SETB EX0 ;开外中断 0 SETB ET1 ;开定时中断 T1 SETB P3.1 ;关报警器 LCALL VIICREAD ;将 E2PROM中原里程数据调入内存 RET ;子程序返回 ERR: CPL P3.1 ;轮周长设置出错, LED灯闪烁提醒 CALL DL5S ;延时 LJMP CLEAR1 ;重新初始化,等待轮周长设置开关合上 ; ; ; PROGRAM START; ; ; START: MOV SP, #75H ;堆栈在 75H 开始 LCALL CLEARMEN ;上电初始化 START1: JB P3.0,DISPLAYS ;引脚 11( P3.0)置 1,显示里程 LCALL DISPLAYV ;显示速度 START2: SJMP START1 ;转 START1循环 ; ; ; INTEX0 PROGRAM; ; nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 20 ;里程记数程序 ,用外中断 0实现,记数用 60H62H内存单元 INTEX0: PUSH ACC ;累加堆栈保护 PUSH PSW ;状态字堆栈保护 INC 60H ;圈加 1 CLR A ;清 A CJNE A, 60H, INTEX0OUT ;记数没溢出转 INTEX0OUT INC 61H ;溢出进位( 61H 加 1) CJNE A, 61HINTEX0OUT ;记数没溢出转 INTEX0OUT INC 62H ;溢出进位( 62H 加 1) INTEX0OUT: LCALL VIICWRITE ;里程数据存入 E2PROM SETB EX1 ;开外中断 1 POP PSW ;状态字恢复 POP ACC ;累加器恢复 RET1 ;中断返回 ; ; INTEX1 PROGRAM; ; ; 每转 1圈时间计数处理程序,每圈时间放在 68H6BH单元中 INTEX1: PUSH ACC ;堆栈保护 PUSH PSW CLR EX1 ;关外中断 JNB 00H, INTEX11 ;溢出标志为 0转 INTEX11 MOV TL1, #0FFH ;溢出时计时单元赋 #0FFH(显示速度为零) MOV TH1, #0FFH MOV 6CH, #0FFH MOV 6DH, #0FFH INTEX11: MOV 68H, TL1 ;将时间计数值移入暂存单元 68H6BH MOV 69H, TH1 MOV 6AH, 6CH nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 21 MOV 6BH, 6DH CLR A ;清 A MOV TL1, A ;计时单元置 0 MOV TH1, A MOV 6CH, A MOV 6DH, A CLR 00H ;清溢出标志 POP PSW ;堆栈恢复 POP ACC RET1 ;中断返回 ; ; ; INTT1 PROGRAM; ; ; ; ; T1 计数器中断服务程序(计数器 T1 由外中断 1输入控制,当为高电平平时计时开始) INTT1; PUSH ACC ;堆栈保护 PUSH PSW INC 6CH ; 6CH 计时单元加 1 MOV A, 6CH ;移入 1 JNZ INTT11 ;不等于 0转 INTT11 INC 6DH ;进位, 6DH 单元加 1 MOV A, 6DH ;移入 A JNZ INTT11 ;不等于 0转 INTT11 SETB 00H ;计时器溢出,置溢出标志 INTT1 POP PSW ;恢复堆栈 POP ACC RET1 ;中断返回 ; ; ; ; DISPLAY S ; nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 22 ; ; 里程显示控制程序 DISPLAYS: SETB P1.0 ;点亮 LED1(显示里程状态) CLR P1.1 ;关闭速度指示灯 SETB P3.7 ;显示小数点(最小显示为 0.1km) LCALL SSS ;将圈数转为 km 数 LCALL DISPLAY ;显示 km 数据 LJMP START1 ;跳回 START1 ; ; ; ; DISPLAY V; ; ;速度显示控制程序 ; DISPLAYV: CLR P1.0 ;关闭 LED1(里程)灯 SETB P1.1 ;点亮 LED2(显示时速状态) CLR P3.7 ;关小数点显示 LCALL VVV ;每圈时间换算为 km/h 程序 MOV A, 71H ;将十位数( BCD 码)值移入 A SUBB A, #04H ;与预定报警值比较 JNC WARING ;时速超过 40 时报警 SETB P3.1 ;关报警灯 V1: LCALL DISPLAY ;显亮一次(为了改善闪烁) RET ;子程序返回 WARING CLR P3.1 ;报警灯 LED3 点亮(并鸣叫) AJMP V1 ;转 V1 退出 ; ; ; VIICWRITE; ; nts淮安信息学院 2007 届毕业生论文 智能速度里程表设计 23 ; ; 归一化 E2PROM 存入程序( 2MHz时钟),存入数在 50H起的单元 VIICWRITEFF: ACALL WMOV9 MOV SLA, #SLAW MOV NUMBYT, #09H LCALL WRNBYT RET WMOV9: MOV 5FH, #50H MOV R0, #MTD MOV R1, #5FH MOV R2 , #09H WMOV MOV A, R0, A MOV R0, A INV R0 INC R1 DJNZ R2,WMOV RET ; ; ; ; ; VIICREAD ; ; ;归一化 E2PROM 读出程序( 12MHz时钟),读出数放入 60H67H ; VIICREA
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。