单片机原理及接口技术课程设计-自行车里程表设计.doc_第1页
单片机原理及接口技术课程设计-自行车里程表设计.doc_第2页
单片机原理及接口技术课程设计-自行车里程表设计.doc_第3页
单片机原理及接口技术课程设计-自行车里程表设计.doc_第4页
单片机原理及接口技术课程设计-自行车里程表设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辽辽 宁宁 工工 业业 大大 学学 单片机原理及接口技术单片机原理及接口技术课程设计课程设计 (论文)(论文) 题目:题目:自行车里程表设计自行车里程表设计 院(系):院(系): 电气工程学院电气工程学院 专业班级:专业班级: 自动化自动化101101 学学 号:号: 100302016100302016 学生姓名:学生姓名: 郎奕翔郎奕翔 指导教师:指导教师: 起止时间:起止时间: 2013.7.3-2013.7.12 本科生课程设计(论文) III 课程设计(论文)任务及评语课程设计(论文)任务及评语 院(系):电气工程学院 教研室:自动化 注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算 学 号100302016学生姓名郎奕翔专业班级 自动化101 设计 题目 自行车里程表设计 课程设计(论文)任务 课题完成的设计任务及功能、要求、技术参数课题完成的设计任务及功能、要求、技术参数 实现功能实现功能 设计一个自行车里程表,以单片机为核心,通过安装在车轮支架上的传感器 感应车轮转过的圈数,计算出速度和里程等结果数据,并且进行显示。具体要求 如下: 1. 在自行车行进时,实时显示当前的自行车车速,以“转/秒”为单位。 2. 实时显示当前的里程,以“公里”为单位。 2. 超速时声音报警,并用 LED 灯闪烁。 设计任务及要求设计任务及要求 1. 确定系统设计方案,包括控制器的选择,检测电路设计,显示电路设计; 2. 完成系统程序设计;并绘制程序流程图; 3. 要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理; 4. 按学校规定的书写格式,撰写、打印设计说明书一份;设计说明书应在 4000 字以上。 技术参数技术参数 1. 检测自行车车速误差小于 5%; 2. 4 位显示当前自行车车速和里程数。 工作计划 1. 布置任务,查阅资料,确定系统的组成(1 天) 2. 对系统功能进行分析(1 天) 3. 系统硬件电路设计(2 天) 4. 系统软件设计(2 天) 5、实验测试、答辩。 (2 天) 6. 撰写、打印设计说明书(2 天) 指导教师评语及成绩 平时: 论文质量: 答辩: 指导教师签字: 总成绩: 年 月 日 本科生课程设计(论文) IV 摘摘 要要 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具, 而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基 本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一 种基于霍尔元件的自行车的速度里程表的设计,以 AT89C52 单片机为核心, A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用 24C02 实 现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用 LED 实时 显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利 用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号 经过处理送显示。软件部分用汇编语言进行编程,采用模块化设计思想。该系统 硬件电路简单,子程序具有通用性,完全符合设计要求。 关键词:关键词:霍尔元件;单片机;LED 显示 本科生课程设计(论文) V 目目 录录 第 1 章 绪论.1 1.1 课题背景介绍 .1 1.2 课题研究意义 .1 1.3 课题研究的主要内容 .1 第 2 章 自行车的速度里程表总体方案设计.2 2.1 系统实现功能 .2 2.2 系统方案论证 .2 第 3 章 自行车的速度里程表硬件电路设计.5 3.1 霍尔传感器模块 .5 3.2 单片机模块 .8 3.3 外部存储模块 .13 3.4 单片机外围电路的设计 .14 第 4 章 自行车的速度里程表软件程序设计.20 4.1 自行车的速度里程表总体程序设计 .20 4.1 数据处理子程序的设计 .20 4.2 显示子程序的设计 .24 第 5 章 系统调试与分析.28 5.1 系统仿真调试 .28 5.2 调试故障及原因分析 .28 第 6 章 课程设计总结.30 本科生课程设计(论文) 1 第 1 章 绪论 1.1 课题背景介绍 自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝 试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车 发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途。 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具, 而是成为人们娱乐、休闲、锻炼的首选。因此,人们希望自行车的功用更强大,能 给人们带来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着 这个要求而迅速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示, 甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能。采用单片机设计 一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车 行走的距离及运行的速度,可以广泛用于个人、家庭、比赛等场合的测速、里程显 示等其他功能。 1.2 课题研究意义 自行车速度里程表已成为人们日常生活中必不可少的必需品,广泛用于个人家 庭及比赛等公共场合,给人们的生活,出行,工作带来了极大的方便,由于自行车 速度里程表的数字集成电路的发展和采用了先进的传感器技术,使自行车速度里程 表有测量准确、性能稳定、携带方便等优点,它还用于测速,里程计算及自动控制 等各个领域。尽管目前市场上已有现成的自行车速度里程表集成电路芯片出售,价 格便宜,使用也很方便。但鉴于自行车速度里程表的基本组成包含了数字电路、单 片机及自动检测的主要组成部分。因此进行自行车速度里程表的设计是必要的,研 究自行车速度里程表及扩大其应用,有着非常现实的意义。 1.3 课题研究的主要内容 本课题研究的主要内容是利用霍尔元件,单片机等部件设计一个可用的 LED 数 码实时显示速度和里程的自行车速度里程表。能显示速度。里程,并可以通过按键 进行切换。 通过编程使单片机具有测速并计算里程的功能,并通过按键切换两种功能,再 通过模块显示时间,霍尔传感器和外部存储对单片机提供脉冲信号和数据记录,从 本科生课程设计(论文) 2 而实现调整与现实的功能。 本科生课程设计(论文) 3 第 2 章 自行车的速度里程表总体方案设计 2.1 系统实现功能 本设计的任务是:以通用 MCS-52 单片机为处理核心,用传感器将车轮的转数 转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过 MCS-52 的定 时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通 过 LED 显示器显示出来。 本系统总体思路如下:假定轮圈的周长为 L,在轮圈上安装 m 个永久磁铁,则 测得的里程值最大误差为 L/m。经综合分析,本设计中取 m=1。当轮子每转一圈, 通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚 P3.2 中断 0 端输入,传 感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈, 中断数 n 轮圈的周长为 L 的乘积为里程值。计数器 T1 计算每转一圈所用的时间 t, 就可以计算出即时速度 v。当里程键按下时,里程指示灯亮,LED 切换显示当前里 程,与当速度键按下时,速度指示灯亮,LED 切换显示当前速度,若自行车超速, 系统发出报警信号,指示灯闪烁。 要求达到的各项指标及实现方法如下。 (1) 利用霍尔传感器产生里程数的脉冲信号。 (2) 对脉冲信号进行计数。 实现:利用单片机自带的计数器 T1 对霍尔传感器脉冲信号进行计数。 (3) 对数据进行处理,要求用 LED 显示里程总数和即时速度。 实现:利用软件编程,对数据进行处理得到需要的数值。 最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单 片机作控制,显示电路可显示里程及速度。 2.2 系统方案论证 2.2.1 硬件方案分析与设计 测速,首先要解决是采样的问题。使用单片机进行测速,可以使用简单的脉冲 计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,将脉冲送入单片机中 进行计算,即可获得转速的信息。常用的测速元件有霍尔传感器、光电传感器和光 电编码器。里程测量传感器的选择也有以下几种方案:使用光敏电阻对里 本科生课程设计(论文) 4 程进行测量、利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行 测量、利用干簧管型传感器测量里程。光敏电阻对光特别敏感,当白天行驶时,外 界光源将导致光敏电阻发出错误信号;光敏电阻对环境的要求相当高,如果光敏电 阻或发光二极管被泥沙或灰尘所覆盖,光敏电阻就不能再进行准确测量;而编码器 必须安装在车轴上,安装较为复杂;霍尔元件或干簧管不但不受天气的影响,即使 被泥沙或灰尘覆盖也不会有影响,而且安装方便。所以本设计采用霍尔元件对里程 与速度进行测量,既简单易行,又经济适用。 使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴 的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁 钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在齿轮盘上 粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔 传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出, 可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。 目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传 感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子与航空航天器 电子系统以及单片机的多机系统等领域。在设计中选用的是 AT89C52 单片机。硬件 电路系统结构框图如图 2.1 所示。 AT89C52 单片机 霍尔传感器模 块(接收外部信号 产生脉冲信号) 按键模块(用 来切换显示和复位) 外部存储模块 (储存产生的数据) 外部信号 显示模块 (显示即时里程 数或者是即时速 度) 报警模块 (提供超速报警) 电源模块 (为单片机提供 电源) 图 2.1 系统结构框图 2.2.2 软件方案分析与设计 通过软件控制单片机的功能是单片机的主要特点和优点,程序的设计要考虑合 本科生课程设计(论文) 5 理性和可读性,遵循模块化设计的原则,采用自顶向下的设计方法。模块化设计使 程序的可读性好、修改及完善方便。 软件设计包括主程序、行车过程中里程和速度计算子程序、延时子程序、中断 服务子程序、显示子程序等等。 中断子程序是将传感器产生的信号接入外部中断 0,将经过 74LS74 分频后的信 号接入外部中断 1,利用中断和定时器对分别对里程进行累加、每转一周的时间进 行测量。 数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对应 关系,经过软件编程显示所需要的值。 显示子程序是将数据处理的结果送显示器显示。 系统软件总体流程图如图 2.2 所示。 初始化 P3.0=1? 计算里程 显示里程 计算速度 显示速度 开始 图 2.2 软件总体流程图 本科生课程设计(论文) 6 第 3 章 自行车的速度里程表硬件电路设计 3.1 霍尔传感器模块 3.1.1 检测传感器的选用及测量原理 本次设计信号的捕获采用的是霍尔传感器,霍尔传感器是利用霍尔效应制成的 一种磁敏传感器。按照霍尔传感器元件的功能可将它们分为:霍尔线性器件和霍尔 开关器件,前者输出模拟量,后者输出数字量。 按被检测对象的性质可将它们的应 用分为:直接应用和间接应用。前者是直接检测出受检测对象本身的磁场或磁特性, 后者是检测受检对象上人为设置的磁场,用这个磁场来作被检测的信息的载体。通 过它,将许多非电、非磁的物理量转变成电量来进行检测和控制。 3.1.2 集成开关霍尔传感器 A44E 集成霍尔开关由稳压器 A、霍尔电势发生器(即硅霍尔片)B、差分放大 器 C、施密特触发器 D 和 OC 门输出 E 五个基本部分组成,如图 3.1(a)所示。 (1)、 (2)、(3)代表集成霍尔开关的三个引出端点。在电源端加电压 VCC,经稳压器稳压 后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂 直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差 VH 输 出,该 VH 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到 OC 门输出。当施加的磁场达到工作点时,触发器输出高电压(相对于地电位) ,使三极 管导通,此时 OC 门输出端输出低电压,通常称这种状态为开。当施加的磁场达到 释放点时,触发器输出低电压,三极管截止,使 OC 门输出高电压,这种状态为关 。这样两次电压变换,使霍尔开关完成了一次开关的动作。工作点与释放点的差值 一定,此差值称为磁滞,在此差值内,V0 保持不变,因而使开关输出稳定可靠,这 也就是集电成霍尔开关传感器优良特性之一。传感器主要特性是它的输出特性,即 输入磁感应强度 B 与输出电压 V0 之间的关系。A44E 集成霍尔开关是单稳态型,由 测量数据作出的输出特性曲线如图 3.1(b)所示。测量时,在 1、2 两端加 5V 直流电 本科生课程设计(论文) 7 压,在输出端 3 与 1 之间接一个 2k 的负载电阻,如图 3.2 所示。 D A B C E VCC (1) (2) GND OUT (3) (a) 05101520 3 6 9 12 VO/V B/mT 释放点 (OFF) 工作点 (ON) (V) (b) 图 3.1 集成开关型霍尔传感器 图 3.2 集成霍尔开关接线图 在本次设计中,霍尔传感器起采集信号的作用。当电源加电压 VCC,经稳压器 稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,产生电势差 VH,VH 信号 经放大器后送到施密特触发整形,使其成为方波送到 OC 门输出,其与 74LS74 芯片 相连,将整形后的方波送到 74LS74 芯片中处理后送入单片机。接线图如图 3.3 所示。 本科生课程设计(论文) 8 图 3.3 霍尔集成开关接线原理图 3.1.3 74LS74 芯片的运用 74LS74 是 D 触发器的一种,它是一个具有记忆功能的二进制信息存储器件,是 构成多种时序电路的最基本逻辑单元。触发器具有两个稳定状态,即“0”和“1”,在 一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。由于其状态 的更新发生在 CP 脉冲的边沿故又称之为上升沿触发的边沿触发器,D 触发器的状 态只取决于时针到来前 D 端的状态。引脚图如图 3.4 所示。 图 3.4 74LS74 引脚图 74LS74 芯片起分频的作用,当车轮每转一圈,霍尔传感器输出一个低电平脉冲, 通过 74LS74 进行二分频,二分频后的波形的高或地电平的时间正好是霍尔传感器 开关的一个周期,霍尔传感器输出脉冲到,即 P3.2 口接收到对圈数计数的脉0INT 冲。经 74LS74 二分频后的信号输入到,内部定时计数器测得每转一圈所用的1INT 时间,通过计算即可得里程值和即时速度。二分频前后波形如图 3.5 所示。 在本次设计中 74LS74 与霍尔传感器相连,接受方波,然后进行分频,二分频 后波形的高低电平时间正好,定时器 T1 的开启时间为车轮转一周的时间,这样可以 计算出自行车的速度。接线原理图如图 3.6 所示。 本科生课程设计(论文) 9 霍尔输出圈脉冲 二分频后的波形 图 3.5 分频前后对比图 图 3.6 74LS74 接线原理图 3.2 单片机模块 3.2.1 单片机原理简介 单片机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种 功能部件,包括 CPU(Central Processing Unit)、随机存储器 RAM(Random Access Memory)、只读存储器 ROM(Read-only Memory)、基本输入/输出(Input/Output)接口 电路。定时器/计数器等部件都制作在一块集成芯片上,就构成一个完整的微型计算 机从而实现微型计算机的基本功能。单片机内部结构示意图如图 3.7 所示。 本科生课程设计(论文) 10 定时/计数器中断系统 CPU 存储器 并行 I/O 口 串口 I/O 口 TX D T XD RX D T INT P0- P3 图 3.7 单片机内部结构示意图 3.2.2 单片机的引脚功能介绍 AT89C52 是高性能 CMOS 8 位单片机,片内含 8K Bytes 的可反复擦写的只读程 序存储器(EPROM)和 256 字节的随机存取数据存储器(RAM),器件采用 ATMEL 公 司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼 容,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大,AT89C52 单片 机适合于许多较为复杂控制场合应用。引脚图如图 3.8 所示。 图 3.8 AT89C52 引脚图 本科生课程设计(论文) 11 AT89C52 提供以下标准功能:8K 字节 Flash 闪速存储器,256 字节内部 RAM,32 个 I/O 口线,3 个 16 位定时/计数器,5 个中断源,一个全双工串行通信 口,片内具有振荡器及时钟电路。AT89C52 管脚图如图 3.5 所示。AT89C52 的主要 管脚功能如下。 :外部程序存储器读选通信号。在读外部 ROM 时,有效(低电平)PSENPSEN ,以实现外部 ROM 单元的读操作。 :访问程序存储控制信号。当信号为低电平时,对 ROM 的读操作限定EAEA 在外部程序存储器;当信号为高电平时,对 ROM 的读操作是从内部程序存储器EA 开始,并可延至外部程序存储器。 RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有 效,用以完成单片机的复位初始化操作。 XTALl 和 XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于 外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 VSS:地线。 VCC:+5V 电源。 如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它 的第二功能。P3 的 8 条口线都定义有第二功能,如表 3.1 所示。 对于有内部 EPROM 的单片机芯片(例如 87C51) ,为写入程序须提供专门的编 程脉冲和编程电源。它们也由引脚以第二功能的形式提供的,即: 编程脉冲:30 脚(ALE/)PROG 编程电压(25V):31 脚(/VPP)EA P0.0P0.7:P0 口是一组 8 位漏极开路型双向 I/O 口,也是地址/数据总线复用 口。 P1.0P1.7:P1 是一个带内部上拉电阻的 8 位双向 I/O 口。 P2.0P2.7:P2 是一个带内部上拉电阻的 8 位双向 I/O 口。 P3.0P3.7:P3 是一个带内部上拉电阻的 8 位双向 I/O 口。 ALE:地址锁存控制信号。在系统扩展时,ALE 用于控制把 P0 口输出的低 8 位地址锁存起来,以实现低位地址和数据的分时传送。此外,由于 ALE 是以晶振 1/6 的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 :外部程序存储器读选通信号。在读外部 ROM 时,有效(低电平)PSENPSEN ,以实现外部 ROM 单元的读操作。 本科生课程设计(论文) 12 :访问程序存储控制信号。当信号为低电平时,对 ROM 的读操作限定EAEA 在外部程序存储器;当信号为高电平时,对 ROM 的读操作是从内部程序存储器EA 开始,并可延至外部程序存储器。 RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有 效,用以完成单片机的复位初始化操作。 XTALl 和 XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于 外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。P3 口引 脚及其第二功能如表 3.1 所示。 表 3.1 P3 口引脚与第二功能 引脚 第二功 能 信号名称 P3.0RXD串行数据接收 P3.1TXD串行数据接收 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 0INT 1INT T0 T1 WR RD 外部中断 0 申请 外部中断 1 申请 定时/计数器 0 的外部写 入 定时/计数器 1 的外部写 入 外部 RAM 写选通 外部 RAM 读选通 3.2.3 单片机中断系统介绍 中断是指当计算机执行正常程序时,系统中出现某些急需处理的事件,CPU 暂 时中止当前的程序,转去执行服务程序,以对发生的更紧迫的事件进行处理,待处 理结束后,CPU 自动返回原来的程序执行 AT89C52 系列单片机的系统有 5 个中断 源,2 个优先级,可实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许 寄存器 IE 控制 CPU 是否响应中断请求;由中断优先级寄存器 IP 安排各优中断源的 优先级;同一优先级内各终端同时提出中断请求时,由内部的查询逻辑确定其响应 次序。 采用的外部中断方式包括外部中断 0 和外部中断 1,它们的中断请求信号分别 由单片机引脚/P3.2 和/P3.3 输入。0INT1INT 本科生课程设计(论文) 13 外部中断请求有两种信号方式:电平触发方式和脉冲触发方式。电平触发方式 的中断请求是低电平有效。只要在和引脚上出现有效低电平时,就激活0INT1INT 外部中断方式。脉冲触发方式的中断请求则是脉冲的负跳变有效。在这种方式下, 在两个相邻机器周期内,和引脚电平发生变化,即在第一个机器周期内0INT1INT 为高电平,第二个机器周期内为低电平,就激活外部中断。由此可见,在脉冲方式 下,中断请求信号的高电平和低电平状态都应至少维持一个机器周期,以使 CPU 采 样到电平状态的变化,本次设计所采用的触发方式为脉冲触发方式。 a. 中断允许控制中断允许控制 CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器 IE 控制的。IE 的状态可通过程序由软件设定,某位设定为 1,相应的中断源中断允许; 某位设定为 0,相应的中断源中断屏蔽。CPU 复位时,IE 各位为 0,禁止所有中断。 IE 寄存器各位的定义如下。 EX0(IE.0):外部中断允许位;0INT ET0(IE.1):定时/计数器 T0 中断允许位; EX1(IE.2):外部中断允许位;1INT ET1(IE.3):定时/计数器 T1 中断允许位; ES(IE.4):串行口中断允许位; EA(IE.7):CPU 中断允许位。 b. 中断优先级控制中断优先级控制 AT89C52 单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源 的中断优先级都是由中断优先级寄存器 IP 中的相应的状态来规定的。IP 的状态由软 件设定,某位设定为 1,则相应的中断源为高优先级中断;某位设定为 0.则相应的 中断源为低优先级中断。单片机复位时,IP 各位清 0,各中断源同为低优先级中断。 IP 寄存器各位的定义如下。 PX0(IP.0):外部中断优先级设定位;0INT PT0(IP.1):定时/计数器 T0 中断优先级设定位; PX1(IP.2):外部中断中断优先级设定位;1INT PT1(IP.3):定时/计数器 T1 中断优先级设定位; PS(IP.4):串行口中断优先级设定位。 3.2.4 单片机定时/计数功能介绍 AT89C52 单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD 用于 设置其工作方式;TCON 用于控制其启动和中断请求。 本科生课程设计(论文) 14 a. 工作方式寄存器工作方式寄存器 TMOD 工作方式寄存器 TMOD 用于设置定时/计数器的工作方式。 GATE:门控位。GATE=0 时,只要用软件使 TCON 中的 TR0 或 TR1 为 1,就 可以启动定时/计数器工作;GATE=1 时,要用软件 TR0 或 TR1 为 1,同时外部中断 引脚或也为高电平时,才能启动定时/计数器工作。0INT1INT C/:定时/计数模式选择位。C/=0 为定时模式;C/=1 为计数模式。TTT M1M2:工作方式设置位。定时/计数器有 4 种工作方式,由 M1M2 进行设置。 本次设计 TMOD 为 90H,即选通定时/计数器 1、定时功能、工作方式 1。工作方式 16 位定时/计数器。 b. 控制寄存器控制寄存器 TCON TF1(TCON.7):定时/计数器 T1 溢出中断请求标志位。定时/计数器 T1 计数溢出 时由硬件自动置 TF1 为 1。CPU 响应中断后 TF1 由硬件自动清零。T1 工作时,CPU 可随时查询 TF 的状态。所以,TF1 可用作查询测试的标志。TF1 也可以用软件置 1 或清零,同硬件置 1 或清零的效果一样。 TR1(TCON.6):定时/计数器 T1 运行控制位。TR1 置 1 时时,定时/ 计数器 T1 开始工作;TR1 置 0 时,定时/计数器 T1 停止工作。TR1 由软件置 1 或清 0。 TF0(TCON.5):定时/计数器 T0 溢出中断请求标志位。 TR0(TCON.4):定时/计数器 T0 运行控制位。 3.3 外部存储模块 AT24C02 是一个 2K 位串行 CMOSEPROM。内部含有 256 个 8 位字节, ATMEL 公司的先进 CMOS 技术实质上减少了器件的功耗。AT24C02 有一个 16 字 节页写缓冲器,该器件通过 I2C 总线接口进行操作有一个专门的写保护功能。 AT24C02 支持 I2C 总线数据传送协议。数据传送是由产生串行时钟和所有起始停止 信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控 制传送数据(发送或接收)的模式,通过器件地址输入端 A0、A1 和 A2 可以实现 将最多 8 个 24C02 器件连接到总线上。管脚图如 3.9 所示。 本科生课程设计(论文) 15 SCL 4 3 2 1 8 7 6 5 cc V Vss 0 A 1 A 2 A WP SDA 图 3.9 24C02 引脚图 SCL 串行时钟:AT24C02 串行时钟输入管脚用于产生器件所有数据发送或接收 的时钟。 SDA 串行数据/地址:CAT24WC02 双向串行数据/地址管脚用于器件所有数据 的发送或接收,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或。 WP 写保护:如果 WP 管脚连接到 Vcc 所有的内容都被写保护,只能读。当 WP 管脚连接到 Vss 或悬空,允许器件进行正常的读/写操作。 本次设计采用的存储器 24C02 是为了防止掉电时里程数据的丢失,由于 24C02 的数据线和地址线是复用的,采用串口的方式传输数据,所以只用两根线 SCL 和 SDA 与单片机传输数据。存储器与控制车轮大小的端口相连接,可以更快捷方便的 接受数据,发出时钟脉冲,便于单片机进行存储控制。接线图如图 3.10 所示。 图 3.10 存储器原理接线图 本科生课程设计(论文) 16 3.4 单片机外围电路的设计 3.4.1 时钟电路的设计 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条 不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量 也直接影响单片机系统的稳定性。AT89C52 片内由一个反相放大器构成振荡器,可 以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外 部时钟方式。本设计采用前者。 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器 的输入为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡 器和电容,就构成一个稳定的自激振荡器。单片机内部时钟方式的振荡电路如图 3.11 所示。 图 3.11 单片机片内振荡电路 电路中的电容 C1 和 C2 常选择为 30P 左右。对外接电容的值虽然没有严格的要 求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的 稳定性。而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一 种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作 频率即可。此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率 可以除尽的晶体。 本次设计晶振采用 12MHz,则该计数周期如式 3.1 所示。 S (3.1) 6 1 1 12 10112 T Hz () 本科生课程设计(论文) 17 3.4.2 按键模块 AT89C52 单片机的复位输入引脚 RST 为 AT89C52 提供了初始化的手段。有了 它可以使程序从指定处开始执行,即从程序存储器中的 0000H 地址单元开始执行程 序。在 89C52 的时钟电路工作后,只要在 RST 引脚上出现两个机器周期以上的高电 平时,单片机内部则初始复位。只要 RST 保持高电平,则 89C52 循环复位。只有当 RST 由高电平变成低电平以后,89C52 才从 0000H 地址开始执行程序。 本系统的复位电路是采用按键复位的电路,是常用复位电路之一。单片机复位 通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容 C 相当于瞬 间短路,+5V 立即加到 RST/VPD 端,该高电平使 89C52 全机自动复位,这就是上 电复位;若运行过程中需要程序从头执行,只需按动按钮即可。按下按钮,则直接 把+5V 加到了 RST/VPD 端从而复位称为手动复位。复位后,P0 到 P3 并行 I/O 口全 为高电平,其它寄存器全部清零,只有 SBUF 寄存器状态不确定,复位电路如图 3.12 所示。 RST AT89C52 C1 R8 8.2K R8 0.2K 5V 图 3.12 按键复位电路 在本次设计中复位电路主要给单片机提供初始化手段,与单片机 RST 引脚相连, 当 RST 引脚上出现两个机器周期以上的高电平时单片机内部初始化。使用按键复位 电路的上电复位和手动复位可以使操作变得更简单,方便,很大程度上提高系统综 合性能,其接线如图 3.13 所示。 本科生课程设计(论文) 18 3.13 复位电路接线原理图 3.4.3 显示模块及驱动电路 本设计中采用 LED 数码管显示。在单片机系统中,通常用 LED 数码显示器来 显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点, 因此使用非常广泛。八段 LED 显示器由 8 个发光二极管组成。其中 7 个发光二极管 构成字型“8”的各个笔画段,另一个小数点为 dp 发光二极管。LED 显示器有两种不 同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极 LED 显示器;另 一种是发光二极管的阴极都连在一起的,称之为共阴极 LED 示 器,本次设计采用共共阴极接法如图 3.14 所示。 图 3.14 七(八)段 LED 显示 LED 显示方式有动态显示和静态显示两种方式。本系统采用动态扫描显示接口 电路,动态显示接口电路是把所有显示器的 8 个笔划段 a-h 同名端连在一起,而每 一个显示器的公共极 COM 各自独立地受 I/O 线控制。CPU 向字段输出口送出字型 码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于 COM 端。也就是说我们可以采用分时的方法,轮流控制各个显示器的 COM 端,使各个 显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的 (约 1ms) ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示 器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据, 不会有闪烁感。 本设计中 P2.0、P2.1、P2.2、P2.3 信号一起组成位选通的位选信号,P0.0 P0.7 信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据 放入存储单元,然后把数据送入段选通对应的地址,再选通某一个 LED,逐步完成 四个 LED 的显示,如图 3.15 所示。 本科生课程设计(论文) 19 图 3.15 显示电路接线原理图 驱动数码管的芯片为 74LS244,74LS244 为三态输出的八位缓冲器和线驱动器, 若单片机输出口直接接显示部分电路,则电流太小,会导致显示部分不能正常工作。 所以在单片机输出口先接入驱动芯片 74LS244,增大电流,使 LED 能够正常工作。 其逻辑图如图 3.16 所示。 图 3.16 74LS244 逻辑图 在本次设计中 74LS244 与 LED 显示器相连,起增大电流,使 LED 正常工作的 作用。该芯片由两组组成,每组由四路输入,输出构成,每组有一个控制高低电平 决定高低电平决定该组数据被接通还是断开。接线图如图 3.17 所示。 图 3.17 74LS244 接线原理图 本科生课程设计(论文) 20 3.4.4 报警模块 为了能够安全驾驶,以免危害自己与他人健康,本课题设计了报警电路,在超 出预定速度时发出警报,报警电路电路图如图 3.18 所示。 图 3.18 报警电路图 本次报警电路采用蜂鸣器报警,报警器与控制速度的 P3.1 拐角相连,当即时速 度超过预定值是蜂鸣器响,指示灯闪烁,提示应该减速。接线图如图 3.19 所示。 图 3.19 报警电路接线原理图 3.4.5 电源模块 供电电源分外接交流和 USB 接口的外接直流。 注意事项:电源不要超过 20V,3A,防止意外。 本科生课程设计(论文) 21 第 4 章 自行车的速度里程表软件程序设计 4.1 自行车的速度里程表总体程序设计 在硬件设计完毕之后,接下来就是设计中最核心和最为主要的软件部分设计。 所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。 模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的 功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得 系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设 置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程中,软件设计 必须与硬件设计紧密地结合在一起。 基于霍尔传感器自行车的速度里程表的软件设计包括上电初始化程序、中断子 程序、速度调用子程序、里程调用子程序、LED 显示子程序、延时子程序等几大部 分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。 在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始 化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要 设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后 主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操 作。 在单片机的各个拐角中,P1.0 和 P1.1 口分别用于显示里程状态和速度状态。 P1.2、P1.3、P1.6 和 P1.7 口分别用于设置轮圈的大小,低电平有效。在本次设计中 其分别代表了 1m、1.2m、1.5m、和 1.8m。P3.0 是用于里程和速度切换的,低电平 为显示速度,高电平为显示里程。中断 0 用于对轮子圈数的计数输入,轮子每转一 圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的内容计算和判断出行 驶里程数。中断 1 用于控制定时器 T1 的启/停,当输入为 0 时关闭定时器。此控制 信号是将轮子圈数的计数经二分频后形成。这样,每次定时器 T1 的开启时间刚好为 转一圈的时间,根据轮子的周长就可以计算出自行车的速度。 本科生课程设计(论文) 22 4.1 数据处理子程序的设计 4.1.1 里程计算子程序 外中断 0 服务程序用于对单片机 P3.2 口输入的圈脉冲进行计数,为十六进制计 数器。60H 为低位,62H 为高位。每次计数一次后,对里程数据进行一次存储操作。 当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数, 再用乘法子程序算出里程数。里程处理子程序流程图如图 4.2 所示。 开始 点亮里程指示灯 将车圈数转换成里程 数 显示里程值 返回 图 4.2 里程处理子程序流程图 4.1.2 里程计算程序相关代码 本科生课程设计(论文) 23 void timer0_int() interrupt 1 TH0 = 0 x3c; TL0 = 0 xaf; /设定 50ms 定时初始值 timer0_num+; if(timer0_num=20) timer0_num = 0; /定时 1s 后重新定时 distance_10m_num = distance_num / N;/求行驶了多少个 10 米的距离 /其中,N=10/(3.14*R/N*dst_one_sec) distance_num = distance_num % N; distance = distance + distance_10m_num; /每秒刷新一次行驶距离 if(time_key) v_distance = v_distance + distance_10m_num;/如果启动计时器每秒刷新一次累 积距离 if(distance=65000) distance = 0; if(v_distance=65000) v_distance = 0; if(dst_one_sec10) n = 1; speed = 0;/10s 内检测到卡片数小于 2,速度为 0 sleep = on; /开启睡眠模式 else sleep = off; /关闭睡眠模式 本科生课程设计(论文) 24 ; 4.1.3 速度计算子程序 外中断 1 服务程序用于处理轮子转动一圈后的计时数据。当标志位(00H)为 1 时, 计数溢出,放入最大时间值(#0FFH);当标志位为 0 时,将计数单元 (TL1、TH1、6CH、6DH)的值放入 68H6BH 单元。定时器计出每转一圈所用的时 间,用自行车车轮的周长除以时间就得出自行车的速度,速度子程序如图 4.3 所示。 开始 开速度指示 计算速度 报警 是否超速 显示速度 返回 图 4.3 速度处理子程序流程图 4.1.4 速度计算子程序相关代码 void timer0_int() interrupt 1 TH0 = 0 x3c; TL0 = 0 xaf;/设定 50ms 定时初始值 timer0_num+; if(timer0_num=20) speed = speed_n * dst_one_sec; /计算速度,speed=3.6*3.14*R/N*dst_one_sec/speed_n*100, 本科生课程设计(论文) 25 speed n 为刷新一次速度的时间. /其中,R 为车轮的半径,N 为车轮内安装的卡片数, /3.6 为 m/s 转化为 km/h 的因子,100 表示显示到小数点后两 位 /最高时速为 160km/h,超过此 速度时 dst_one_sec 溢出 n = 1; /每刷新一次速度重新确定刷新 周期 dst_one_sec = 0; /重新检测 1s 内的行车距离 4.2 显示子程序的设计 采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的 8 个笔划段 a-h 同名端连在一起,而每一个显示器的公共极 COM 各自独立地受 I/O 线控制。 CPU 向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个 显示器亮,则取决于 COM 端。可以采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极 为短暂的(约 1ms) ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上 各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的 显示数据,不会有闪烁感。 本设计 P2.0、P2.1、P2.2、P2.3 信号一起组成位选通的位选信号,P0.0P0.7 信 号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单 元,然后把数据送入段选通对应的地址,再选通某一个 LED,逐步完成四个 LED 的显示。显示子程序流程图如图 4.4 所示。 本科生课程设计(论文) 26 开始 显示单元首地址 取显示数数据 取段码表首地址 送段码表首地址 送位选到P2口 调用延时 4位显示 返回 修改显示 单元地址 求下一位 图 4.4 显示子程序流程图 本科生课程设计(论文) 27 4.2.1 显示子程序相关代码 while(1) P0 = 0 xff; P2 = 0 xf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论