自行车里程表设计_第1页
自行车里程表设计_第2页
自行车里程表设计_第3页
自行车里程表设计_第4页
自行车里程表设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、辽辽 宁宁 工工 业业 大大 学学单片机原理及接口技术单片机原理及接口技术课程设计课程设计(论文)(论文)题目:题目:自行车里程表设计自行车里程表设计院(系):院(系): 电气工程学院电气工程学院 专业班级:专业班级: 自动化自动化101101 学学 号:号: 100302016100302016 学生姓名:学生姓名: 郎奕翔郎奕翔 指导教师:指导教师: 起止时间:起止时间: 2013.7.3-2013.7.12 本科生课程设计(论文)III课程设计(论文)任务及评语课程设计(论文)任务及评语院(系):电气工程学院 教研室:自动化注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算学

2、 号100302016学生姓名郎奕翔专业班级 自动化101设计题目自行车里程表设计课程设计(论文)任务课题完成的设计任务及功能、要求、技术参数课题完成的设计任务及功能、要求、技术参数实现功能实现功能设计一个自行车里程表,以单片机为核心,通过安装在车轮支架上的传感器感应车轮转过的圈数,计算出速度和里程等结果数据,并且进行显示。具体要求如下: 1. 在自行车行进时,实时显示当前的自行车车速,以“转/秒”为单位。2. 实时显示当前的里程,以“公里”为单位。2. 超速时声音报警,并用 LED 灯闪烁。设计任务及要求设计任务及要求1. 确定系统设计方案,包括控制器的选择,检测电路设计,显示电路设计;2.

3、 完成系统程序设计;并绘制程序流程图;3. 要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理;4. 按学校规定的书写格式,撰写、打印设计说明书一份;设计说明书应在4000 字以上。技术参数技术参数1. 检测自行车车速误差小于 5%;2. 4 位显示当前自行车车速和里程数。工作计划1. 布置任务,查阅资料,确定系统的组成(1 天)2. 对系统功能进行分析(1 天)3. 系统硬件电路设计(2 天)4. 系统软件设计(2 天)5、实验测试、答辩。 (2 天)6. 撰写、打印设计说明书(2 天)指导教师评语及成绩平时: 论文质量: 答辩: 指导教师签字: 总成绩: 年 月 日本科生课程设计

4、(论文)IV摘摘 要要随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计,以 AT89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用 LED 实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信

5、号经过处理送显示。软件部分用汇编语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。关键词:关键词:霍尔元件;单片机;LED 显示本科生课程设计(论文)V目目 录录第 1 章 绪论.11.1 课题背景介绍 .11.2 课题研究意义 .11.3 课题研究的主要内容 .1第 2 章 自行车的速度里程表总体方案设计.22.1 系统实现功能 .22.2 系统方案论证 .2第 3 章 自行车的速度里程表硬件电路设计.53.1 霍尔传感器模块 .53.2 单片机模块 .83.3 外部存储模块 .133.4 单片机外围电路的设计 .14第 4 章 自行车的速度里程表软件

6、程序设计.204.1 自行车的速度里程表总体程序设计 .204.1 数据处理子程序的设计 .204.2 显示子程序的设计 .24第 5 章 系统调试与分析.285.1 系统仿真调试 .285.2 调试故障及原因分析 .28第 6 章 课程设计总结.30本科生课程设计(论文)1第 1 章 绪论1.1 课题背景介绍自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途。随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休

7、闲、锻炼的首选。因此,人们希望自行车的功用更强大,能给人们带来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能。采用单片机设计一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走的距离及运行的速度,可以广泛用于个人、家庭、比赛等场合的测速、里程显示等其他功能。 1.2 课题研究意义自行车速度里程表已成为人们日常生活中必不可少的必需品,广泛用于个人家庭及比赛等公共场合,给人们的生活,出行,工作带来了极大的方便,由于自行车速度里程表的

8、数字集成电路的发展和采用了先进的传感器技术,使自行车速度里程表有测量准确、性能稳定、携带方便等优点,它还用于测速,里程计算及自动控制等各个领域。尽管目前市场上已有现成的自行车速度里程表集成电路芯片出售,价格便宜,使用也很方便。但鉴于自行车速度里程表的基本组成包含了数字电路、单片机及自动检测的主要组成部分。因此进行自行车速度里程表的设计是必要的,研究自行车速度里程表及扩大其应用,有着非常现实的意义。1.3 课题研究的主要内容本课题研究的主要内容是利用霍尔元件,单片机等部件设计一个可用的 LED 数码实时显示速度和里程的自行车速度里程表。能显示速度。里程,并可以通过按键进行切换。通过编程使单片机具

9、有测速并计算里程的功能,并通过按键切换两种功能,再通过模块显示时间,霍尔传感器和外部存储对单片机提供脉冲信号和数据记录,从本科生课程设计(论文)2而实现调整与现实的功能。本科生课程设计(论文)3第 2 章 自行车的速度里程表总体方案设计2.1 系统实现功能本设计的任务是:以通用 MCS-52 单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过 MCS-52 的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过 LED 显示器显示出来。本系统总体思路如下:假定轮圈的周长为 L,在轮圈上安装 m 个永久磁铁,则测得的里程值

10、最大误差为 L/m。经综合分析,本设计中取 m=1。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚 P3.2 中断 0 端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数 n 轮圈的周长为 L 的乘积为里程值。计数器 T1 计算每转一圈所用的时间 t,就可以计算出即时速度 v。当里程键按下时,里程指示灯亮,LED 切换显示当前里程,与当速度键按下时,速度指示灯亮,LED 切换显示当前速度,若自行车超速,系统发出报警信号,指示灯闪烁。要求达到的各项指标及实现方法如下。(1) 利用霍尔传感器产生里程数的脉冲信号。(2) 对脉冲信号进行计

11、数。实现:利用单片机自带的计数器 T1 对霍尔传感器脉冲信号进行计数。(3) 对数据进行处理,要求用 LED 显示里程总数和即时速度。实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。2.2 系统方案论证2.2.1 硬件方案分析与设计测速,首先要解决是采样的问题。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,将脉冲送入单片机中进行计算,即可获得转速的信息。常用的测速元件有霍尔传感器、光电传感器和光电编码器。里程测量传感器的选择也有以下几种方案:

12、使用光敏电阻对里本科生课程设计(论文)4程进行测量、利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行测量、利用干簧管型传感器测量里程。光敏电阻对光特别敏感,当白天行驶时,外界光源将导致光敏电阻发出错误信号;光敏电阻对环境的要求相当高,如果光敏电阻或发光二极管被泥沙或灰尘所覆盖,光敏电阻就不能再进行准确测量;而编码器必须安装在车轴上,安装较为复杂;霍尔元件或干簧管不但不受天气的影响,即使被泥沙或灰尘覆盖也不会有影响,而且安装方便。所以本设计采用霍尔元件对里程与速度进行测量,既简单易行,又经济适用。使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,

13、霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在齿轮盘上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子与航空航天器电子系统以及单片机的多机系统等领域。在设计中选用的是 AT89C52 单片机。硬件电路系统结构框图如图 2.1 所示。AT89C5

14、2单片机霍尔传感器模块(接收外部信号产生脉冲信号)按键模块(用来切换显示和复位)外部存储模块(储存产生的数据)外部信号显示模块(显示即时里程数或者是即时速度)报警模块(提供超速报警)电源模块(为单片机提供电源) 图 2.1 系统结构框图2.2.2 软件方案分析与设计通过软件控制单片机的功能是单片机的主要特点和优点,程序的设计要考虑合本科生课程设计(论文)5理性和可读性,遵循模块化设计的原则,采用自顶向下的设计方法。模块化设计使程序的可读性好、修改及完善方便。软件设计包括主程序、行车过程中里程和速度计算子程序、延时子程序、中断服务子程序、显示子程序等等。中断子程序是将传感器产生的信号接入外部中断

15、 0,将经过 74LS74 分频后的信号接入外部中断 1,利用中断和定时器对分别对里程进行累加、每转一周的时间进行测量。数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对应关系,经过软件编程显示所需要的值。显示子程序是将数据处理的结果送显示器显示。系统软件总体流程图如图 2.2 所示。初始化P3.0=1?计算里程显示里程计算速度显示速度开始图 2.2 软件总体流程图本科生课程设计(论文)6第 3 章 自行车的速度里程表硬件电路设计3.1 霍尔传感器模块3.1.1 检测传感器的选用及测量原理本次设计信号的捕获采用的是霍尔传感器,霍尔传感器是利用霍尔效应制成的一种磁敏传感器。按照霍

16、尔传感器元件的功能可将它们分为:霍尔线性器件和霍尔开关器件,前者输出模拟量,后者输出数字量。 按被检测对象的性质可将它们的应用分为:直接应用和间接应用。前者是直接检测出受检测对象本身的磁场或磁特性,后者是检测受检对象上人为设置的磁场,用这个磁场来作被检测的信息的载体。通过它,将许多非电、非磁的物理量转变成电量来进行检测和控制。3.1.2 集成开关霍尔传感器A44E 集成霍尔开关由稳压器 A、霍尔电势发生器(即硅霍尔片)B、差分放大器 C、施密特触发器 D 和 OC 门输出 E 五个基本部分组成,如图 3.1(a)所示。 (1)、(2)、(3)代表集成霍尔开关的三个引出端点。在电源端加电压 VC

17、C,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差 VH 输出,该 VH 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到 OC门输出。当施加的磁场达到工作点时,触发器输出高电压(相对于地电位) ,使三极管导通,此时 OC 门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点时,触发器输出低电压,三极管截止,使 OC 门输出高电压,这种状态为关 。这样两次电压变换,使霍尔开关完成了一次开关的动作。工作点与释放点的差值一定,此差值称为磁滞,在此差值内,V0 保持不变,因而使

18、开关输出稳定可靠,这也就是集电成霍尔开关传感器优良特性之一。传感器主要特性是它的输出特性,即输入磁感应强度 B 与输出电压 V0 之间的关系。A44E 集成霍尔开关是单稳态型,由测量数据作出的输出特性曲线如图 3.1(b)所示。测量时,在 1、2 两端加 5V 直流电本科生课程设计(论文)7压,在输出端 3 与 1 之间接一个 2k 的负载电阻,如图 3.2 所示。DABCEVCC(1)(2)GNDOUT(3)(a)0510152036912VO/VB/mT释放点(OFF)工作点(ON)(V)(b)图 3.1 集成开关型霍尔传感器图 3.2 集成霍尔开关接线图在本次设计中,霍尔传感器起采集信号

19、的作用。当电源加电压 VCC,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,产生电势差 VH,VH 信号经放大器后送到施密特触发整形,使其成为方波送到 OC 门输出,其与 74LS74 芯片相连,将整形后的方波送到 74LS74 芯片中处理后送入单片机。接线图如图 3.3 所示。本科生课程设计(论文)8图 3.3 霍尔集成开关接线原理图3.1.3 74LS74 芯片的运用74LS74 是 D 触发器的一种,它是一个具有记忆功能的二进制信息存储器件,是构成多种时序电路的最基本逻辑单元。触发器具有两个稳定状态,即“0”和“1”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定

20、状态。由于其状态的更新发生在 CP 脉冲的边沿故又称之为上升沿触发的边沿触发器,D 触发器的状态只取决于时针到来前 D 端的状态。引脚图如图 3.4 所示。图 3.4 74LS74 引脚图74LS74 芯片起分频的作用,当车轮每转一圈,霍尔传感器输出一个低电平脉冲,通过 74LS74 进行二分频,二分频后的波形的高或地电平的时间正好是霍尔传感器开关的一个周期,霍尔传感器输出脉冲到,即 P3.2 口接收到对圈数计数的脉0INT冲。经 74LS74 二分频后的信号输入到,内部定时计数器测得每转一圈所用的1INT时间,通过计算即可得里程值和即时速度。二分频前后波形如图 3.5 所示。在本次设计中 7

21、4LS74 与霍尔传感器相连,接受方波,然后进行分频,二分频后波形的高低电平时间正好,定时器 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 Memo

22、ry)、基本输入/输出(Input/Output)接口电路。定时器/计数器等部件都制作在一块集成芯片上,就构成一个完整的微型计算机从而实现微型计算机的基本功能。单片机内部结构示意图如图 3.7 所示。本科生课程设计(论文)10定时/计数器中断系统CPU存储器并行 I/O 口串口 I/O 口TXDTXDRXDTINTP0-P3图 3.7 单片机内部结构示意图3.2.2 单片机的引脚功能介绍AT89C52 是高性能 CMOS 8 位单片机,片内含 8K Bytes 的可反复擦写的只读程序存储器(EPROM)和 256 字节的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性

23、存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大,AT89C52 单片机适合于许多较为复杂控制场合应用。引脚图如图 3.8 所示。图 3.8 AT89C52 引脚图本科生课程设计(论文)11AT89C52 提供以下标准功能:8K 字节 Flash 闪速存储器,256 字节内部RAM,32 个 I/O 口线,3 个 16 位定时/计数器,5 个中断源,一个全双工串行通信口,片内具有振荡器及时钟电路。AT89C52 管脚图如图 3.5 所示。AT89C52 的主要管脚功能如下。:外部程序存储器读选通信号

24、。在读外部 ROM 时,有效(低电平)PSENPSEN,以实现外部 ROM 单元的读操作。:访问程序存储控制信号。当信号为低电平时,对 ROM 的读操作限定EAEA在外部程序存储器;当信号为高电平时,对 ROM 的读操作是从内部程序存储器EA开始,并可延至外部程序存储器。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTALl 和 XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。 VCC:+5V 电源。如果把前述的信号定义为引脚第一功能的话

25、,则根据需要再定义的信号就是它的第二功能。P3 的 8 条口线都定义有第二功能,如表 3.1 所示。对于有内部 EPROM 的单片机芯片(例如 87C51) ,为写入程序须提供专门的编程脉冲和编程电源。它们也由引脚以第二功能的形式提供的,即:编程脉冲:30 脚(ALE/)PROG编程电压(25V):31 脚(/VPP)EAP0.0P0.7:P0 口是一组 8 位漏极开路型双向 I/O 口,也是地址/数据总线复用口。P1.0P1.7:P1 是一个带内部上拉电阻的 8 位双向 I/O 口。P2.0P2.7:P2 是一个带内部上拉电阻的 8 位双向 I/O 口。 P3.0P3.7:P3 是一个带内部

26、上拉电阻的 8 位双向 I/O 口。ALE:地址锁存控制信号。在系统扩展时,ALE 用于控制把 P0 口输出的低 8位地址锁存起来,以实现低位地址和数据的分时传送。此外,由于 ALE 是以晶振1/6 的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部 ROM 时,有效(低电平)PSENPSEN,以实现外部 ROM 单元的读操作。本科生课程设计(论文)12:访问程序存储控制信号。当信号为低电平时,对 ROM 的读操作限定EAEA在外部程序存储器;当信号为高电平时,对 ROM 的读操作是从内部程序存储器EA开始,并可延至外部程序存储器。RST:复位

27、信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTALl 和 XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。P3 口引脚及其第二功能如表 3.1 所示。表 3.1 P3 口引脚与第二功能引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据接收P3.2P3.3P3.4P3.5P3.6P3.70INT1INTT0T1WRRD外部中断 0 申请外部中断 1 申请定时/计数器 0 的外部写入定时/计数器 1 的外部写入外部 RAM 写选通外部 RAM 读选

28、通3.2.3 单片机中断系统介绍中断是指当计算机执行正常程序时,系统中出现某些急需处理的事件,CPU 暂时中止当前的程序,转去执行服务程序,以对发生的更紧迫的事件进行处理,待处理结束后,CPU 自动返回原来的程序执行 AT89C52 系列单片机的系统有 5 个中断源,2 个优先级,可实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器 IE 控制 CPU 是否响应中断请求;由中断优先级寄存器 IP 安排各优中断源的优先级;同一优先级内各终端同时提出中断请求时,由内部的查询逻辑确定其响应次序。采用的外部中断方式包括外部中断 0 和外部中断 1,它们的中断请求信号分别由单片机引脚/P3.2

29、 和/P3.3 输入。0INT1INT本科生课程设计(论文)13外部中断请求有两种信号方式:电平触发方式和脉冲触发方式。电平触发方式的中断请求是低电平有效。只要在和引脚上出现有效低电平时,就激活0INT1INT外部中断方式。脉冲触发方式的中断请求则是脉冲的负跳变有效。在这种方式下,在两个相邻机器周期内,和引脚电平发生变化,即在第一个机器周期内0INT1INT为高电平,第二个机器周期内为低电平,就激活外部中断。由此可见,在脉冲方式下,中断请求信号的高电平和低电平状态都应至少维持一个机器周期,以使 CPU 采样到电平状态的变化,本次设计所采用的触发方式为脉冲触发方式。a. 中断允许控制中断允许控制

30、CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器 IE控制的。IE 的状态可通过程序由软件设定,某位设定为 1,相应的中断源中断允许;某位设定为 0,相应的中断源中断屏蔽。CPU 复位时,IE 各位为 0,禁止所有中断。IE 寄存器各位的定义如下。EX0(IE.0):外部中断允许位;0INTET0(IE.1):定时/计数器 T0 中断允许位;EX1(IE.2):外部中断允许位;1INTET1(IE.3):定时/计数器 T1 中断允许位;ES(IE.4):串行口中断允许位;EA(IE.7):CPU 中断允许位。b. 中断优先级控制中断优先级控制AT89C52 单片机有两个中

31、断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器 IP 中的相应的状态来规定的。IP 的状态由软件设定,某位设定为 1,则相应的中断源为高优先级中断;某位设定为 0.则相应的中断源为低优先级中断。单片机复位时,IP 各位清 0,各中断源同为低优先级中断。IP 寄存器各位的定义如下。PX0(IP.0):外部中断优先级设定位;0INTPT0(IP.1):定时/计数器 T0 中断优先级设定位;PX1(IP.2):外部中断中断优先级设定位;1INTPT1(IP.3):定时/计数器 T1 中断优先级设定位;PS(IP.4):串行口中断优先级设定位。3.2.4 单片机定时/

32、计数功能介绍AT89C52 单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD 用于设置其工作方式;TCON 用于控制其启动和中断请求。本科生课程设计(论文)14a. 工作方式寄存器工作方式寄存器 TMOD工作方式寄存器 TMOD 用于设置定时/计数器的工作方式。GATE:门控位。GATE=0 时,只要用软件使 TCON 中的 TR0 或 TR1 为 1,就可以启动定时/计数器工作;GATE=1 时,要用软件 TR0 或 TR1 为 1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。0INT1INTC/:定时/计数模式选择位。C/=0 为定时模式;C/=1 为计数模式。TT

33、TM1M2:工作方式设置位。定时/计数器有 4 种工作方式,由 M1M2 进行设置。本次设计 TMOD 为 90H,即选通定时/计数器 1、定时功能、工作方式 1。工作方式16 位定时/计数器。b. 控制寄存器控制寄存器 TCONTF1(TCON.7):定时/计数器 T1 溢出中断请求标志位。定时/计数器 T1 计数溢出时由硬件自动置 TF1 为 1。CPU 响应中断后 TF1 由硬件自动清零。T1 工作时,CPU可随时查询 TF 的状态。所以,TF1 可用作查询测试的标志。TF1 也可以用软件置 1或清零,同硬件置 1 或清零的效果一样。TR1(TCON.6):定时/计数器 T1 运行控制位

34、。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 总线数据传送协议。数据传送是由产生

35、串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端 A0、A1 和 A2 可以实现将最多 8 个 24C02 器件连接到总线上。管脚图如 3.9 所示。本科生课程设计(论文)15SCL43218765ccVVss0A1A2AWPSDA图 3.9 24C02 引脚图SCL 串行时钟:AT24C02 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟。SDA 串行数据/地址:CAT24WC02 双向串行数据/地址管脚用于器件所有数据的发送或接收,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或

36、。WP 写保护:如果 WP 管脚连接到 Vcc 所有的内容都被写保护,只能读。当 WP管脚连接到 Vss 或悬空,允许器件进行正常的读/写操作。本次设计采用的存储器 24C02 是为了防止掉电时里程数据的丢失,由于 24C02的数据线和地址线是复用的,采用串口的方式传输数据,所以只用两根线 SCL 和SDA 与单片机传输数据。存储器与控制车轮大小的端口相连接,可以更快捷方便的接受数据,发出时钟脉冲,便于单片机进行存储控制。接线图如图 3.10 所示。图 3.10 存储器原理接线图本科生课程设计(论文)163.4 单片机外围电路的设计3.4.1 时钟电路的设计时钟是单片机的心脏,单片机各功能部件

37、的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C52 片内由一个反相放大器构成振荡器,可以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。本设计采用前者。单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡器和电容,就构成一个稳定的自激振荡器。单片机内部时钟方式的振荡电路如图3.11 所示。 图 3.11 单片机片内振荡电路电路中的电容 C1 和 C2 常选择为 30P

38、 左右。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定性。而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作频率即可。此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率可以除尽的晶体。本次设计晶振采用 12MHz,则该计数周期如式 3.1 所示。 S (3.1)61112 10112THz()本科生课程设计(论文)173.4.2 按键模块AT89C52 单片机的复位输入引脚 RST 为 AT89C52 提供了初始化的手段。有了它可以使程序

39、从指定处开始执行,即从程序存储器中的 0000H 地址单元开始执行程序。在 89C52 的时钟电路工作后,只要在 RST 引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要 RST 保持高电平,则 89C52 循环复位。只有当RST 由高电平变成低电平以后,89C52 才从 0000H 地址开始执行程序。本系统的复位电路是采用按键复位的电路,是常用复位电路之一。单片机复位通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容 C 相当于瞬间短路,+5V 立即加到 RST/VPD 端,该高电平使 89C52 全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按

40、动按钮即可。按下按钮,则直接把+5V 加到了 RST/VPD 端从而复位称为手动复位。复位后,P0 到 P3 并行 I/O 口全为高电平,其它寄存器全部清零,只有 SBUF 寄存器状态不确定,复位电路如图 3.12所示。RSTAT89C52C1R88.2KR80.2K5V 图 3.12 按键复位电路在本次设计中复位电路主要给单片机提供初始化手段,与单片机 RST 引脚相连,当 RST 引脚上出现两个机器周期以上的高电平时单片机内部初始化。使用按键复位电路的上电复位和手动复位可以使操作变得更简单,方便,很大程度上提高系统综合性能,其接线如图 3.13 所示。本科生课程设计(论文)183.13 复

41、位电路接线原理图3.4.3 显示模块及驱动电路本设计中采用 LED 数码管显示。在单片机系统中,通常用 LED 数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。八段 LED 显示器由 8 个发光二极管组成。其中 7 个发光二极管构成字型“8”的各个笔画段,另一个小数点为 dp 发光二极管。LED 显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极 LED 显示器;另一种是发光二极管的阴极都连在一起的,称之为共阴极 LED 示器,本次设计采用共共阴极接法如图 3.14 所示。图 3.14 七(八)段 LED 显示LED

42、 显示方式有动态显示和静态显示两种方式。本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的 8 个笔划段 a-h 同名端连在一起,而每一个显示器的公共极 COM 各自独立地受 I/O 线控制。CPU 向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于 COM端。也就是说我们可以采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms) ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显

43、示数据,不会有闪烁感。本设计中 P2.0、P2.1、P2.2、P2.3 信号一起组成位选通的位选信号,P0.0P0.7 信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个 LED,逐步完成四个 LED 的显示,如图 3.15 所示。本科生课程设计(论文)19图 3.15 显示电路接线原理图驱动数码管的芯片为 74LS244,74LS244 为三态输出的八位缓冲器和线驱动器,若单片机输出口直接接显示部分电路,则电流太小,会导致显示部分不能正常工作。所以在单片机输出口先接入驱动芯片 74LS244,增大电流,使 LED 能够正

44、常工作。其逻辑图如图 3.16 所示。图 3.16 74LS244 逻辑图在本次设计中 74LS244 与 LED 显示器相连,起增大电流,使 LED 正常工作的作用。该芯片由两组组成,每组由四路输入,输出构成,每组有一个控制高低电平决定高低电平决定该组数据被接通还是断开。接线图如图 3.17 所示。图 3.17 74LS244 接线原理图本科生课程设计(论文)203.4.4 报警模块为了能够安全驾驶,以免危害自己与他人健康,本课题设计了报警电路,在超出预定速度时发出警报,报警电路电路图如图 3.18 所示。图 3.18 报警电路图本次报警电路采用蜂鸣器报警,报警器与控制速度的 P3.1 拐角

45、相连,当即时速度超过预定值是蜂鸣器响,指示灯闪烁,提示应该减速。接线图如图 3.19 所示。图 3.19 报警电路接线原理图3.4.5 电源模块供电电源分外接交流和 USB 接口的外接直流。注意事项:电源不要超过 20V,3A,防止意外。本科生课程设计(论文)21第 4 章 自行车的速度里程表软件程序设计4.1 自行车的速度里程表总体程序设计在硬件设计完毕之后,接下来就是设计中最核心和最为主要的软件部分设计。所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写

46、的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。 基于霍尔传感器自行车的速度里程表的软件设计包括上电初始化程序、中断子程序、速度调用子程序、里程调用子程序、LED 显示子程序、延时子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器

47、、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操作。在单片机的各个拐角中,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 时关

48、闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器 T1 的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。本科生课程设计(论文)224.1 数据处理子程序的设计4.1.1 里程计算子程序外中断 0 服务程序用于对单片机 P3.2 口输入的圈脉冲进行计数,为十六进制计数器。60H 为低位,62H 为高位。每次计数一次后,对里程数据进行一次存储操作。当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。里程处理子程序流程图如图 4.2 所示。开始点亮里程指示灯将车圈数转换成里程数显示里程值返回图 4.2 里程处理

49、子程序流程图4.1.2 里程计算程序相关代码本科生课程设计(论文)23void timer0_int() interrupt 1TH0 = 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 + di

50、stance_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,速度为 0sleep = on; /开启睡眠模式 else sleep = off; /关闭睡眠模式本科生课程设计(论文)24 ;4.1.3 速度计算子程序外中断

51、 1 服务程序用于处理轮子转动一圈后的计时数据。当标志位(00H)为 1 时,计数溢出,放入最大时间值(#0FFH);当标志位为 0 时,将计数单元(TL1、TH1、6CH、6DH)的值放入 68H6BH 单元。定时器计出每转一圈所用的时间,用自行车车轮的周长除以时间就得出自行车的速度,速度子程序如图 4.3 所示。开始开速度指示计算速度报警是否超速显示速度返回图 4.3 速度处理子程序流程图4.1.4 速度计算子程序相关代码void timer0_int() interrupt 1TH0 = 0 x3c;TL0 = 0 xaf;/设定 50ms 定时初始值timer0_num+;if(tim

52、er0_num=20)speed = speed_n * dst_one_sec;/计算速度,speed=3.6*3.14*R/N*dst_one_sec/speed_n*100, 本科生课程设计(论文)25speed n 为刷新一次速度的时间. /其中,R 为车轮的半径,N 为车轮内安装的卡片数,/3.6 为 m/s 转化为 km/h 的因子,100 表示显示到小数点后两位 /最高时速为 160km/h,超过此速度时 dst_one_sec 溢出n = 1; /每刷新一次速度重新确定刷新周期dst_one_sec = 0; /重新检测 1s 内的行车距离4.2 显示子程序的设计采用动态扫描显

53、示接口电路,动态显示接口电路是把所有显示器的 8 个笔划段a-h 同名端连在一起,而每一个显示器的公共极 COM 各自独立地受 I/O 线控制。CPU 向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于 COM 端。可以采用分时的方法,轮流控制各个显示器的 COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms) ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。本设计 P2.0、P2.1、P2.2、P2.3 信号

54、一起组成位选通的位选信号,P0.0P0.7 信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个 LED,逐步完成四个 LED的显示。显示子程序流程图如图 4.4 所示。本科生课程设计(论文)26开始显示单元首地址取显示数数据取段码表首地址送段码表首地址送位选到P2口调用延时4位显示返回修改显示单元地址求下一位图 4.4 显示子程序流程图本科生课程设计(论文)274.2.1 显示子程序相关代码while(1)P0 = 0 xff;P2 = 0 xff;if(dis_key=on)&(!sleep)if (dis_mod=sp

55、eed_mod) dis_value = speed; /里程模式,显示路程if (dis_mod=distance_mod) dis_value = distance; /速度模式,显示速度if (dis_mod=v_speed_mod) dis_value = v_speed; /平均速度模式,显示平均速度if (dis_mod=time_mod) dis_value = time; /计时器模式,显示时间if (dis_mod=v_distance_mod) dis_value = v_distance; /特定距离模式,显示两个特定地之间的距离bit4_code = dis_value

56、 % 10;/显示最低位dis_value /= 10;bit3_code = dis_value % 10;/显示次低位dis_value /= 10;bit2_code = dis_value % 10; /显示次高位dis_value /= 10;if(dis_value!=0) /最高位灭零bit1_code = dis_value % 10; /显示最高位elsebit1_code = 10;dis_buf0 = dis_codebit4_code;dis_buf1 = dis_codebit2_code-4; /加小数点dis_buf2 = dis_codebit3_code; d

57、is_buf3 = dis_codebit1_code;本科生课程设计(论文)28P0 = dis_bufdis_index;P2 = dis_digit;dis_digit *= 2; /显示下一位if(dis_digit=0 xf0)dis_digit=0 xef;dis_index+;dis_index &= 0 x03;/ 4 个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描delayms(1);本科生课程设计(论文)29第 5 章 系统调试与分析5.1 系统仿真调试PROTEUS 系统仿真平台与开发平台是由英国 Labcenter 公司开发的,是目前世界上最完整的系统设计与仿真

58、平台之一。PROTEUS 可以实现数字电路、模拟电路及微控制系统与外设的混合电路系统的电路仿真、系统协同仿真和电路图绘制、PCB 设计等全部功能。PROTEUS 软件能够对各种处理器进行实时仿真、调试与测试的 EDA 工具,真正实现了在没有目标原形时就可以对系统进行调试与验证。在构思好电路原理图和编好程序之后就要对其进行系统仿真,原理图的具体设计流程如图 5.1 所示。当完成原理图布线后,利用 PROTEUS ISIS 编辑环境所提供的电器规则检查命令对设计进行检查,并根据系统提供的错误检查报告修改原理图。直到通过电器规则检查为止。单片机系统的仿真是 PROTEUS VSM 的一大特色,同时,

59、本仿真系统将源代码的编辑和编译整合到同一设计环境中,这样使得用户可以在设计中直接编辑代码,并且很容易地查看到用户对源程序修改后对仿真结果的影响及是否出现错误。源代码通过编译无误后,就可以进行仿真,在仿真过程中不断完善电路和程序的功能最后达到本次设计的目的。5.2 调试故障及原因分析在软件仿真过程中遇到了一些问题,遇到的具体故障和解决所使用的方法如下:a. 数码管不显示数码管不显示本次设计的电路数码管采用共阴极接法,在仿真时错用共阳极数码管,导致数码管不显示。b. P0 口显示高阻态口显示高阻态正常情况下 P0 口输出应为高(红色)低(蓝色)互换,但在实际情况下 P0 口出现了高阻态(灰色) ,经翻阅资料查得 P0 口做

温馨提示

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

评论

0/150

提交评论