健身单车速度里程测量系统设计_第1页
健身单车速度里程测量系统设计_第2页
健身单车速度里程测量系统设计_第3页
健身单车速度里程测量系统设计_第4页
健身单车速度里程测量系统设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

中 北 大 学 2013 届 毕 业 设 计 说 明 书第 1 页 共 34 页基于单片机自行车测速系统设计摘 要随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计。以 AT89C52 单片机为核心,ITR9606 红外传感器测转数,实现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用 LCD 实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。软件部分用汇编语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。关键词:里程/速度;红外线传感器元件;单片机;LCD 显示中 北 大 学 2013 届 毕 业 设 计 说 明 书第 2 页 共 34 页Bike speed system design based on single chipABSTRACTWith the developing of peoples life, the bicycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. The bicycle mileage/speed can fulfill the basic need of peoples life, so that they can learn the speed and the mileage of the bicycle. In this paper, the bicycle mileage/speed design based on the Hall element is elaborated. By AT89C52 as kernel, using ITR9606 Hall element to measure revolution, the measure and statistic are achieved. The range information is saved by 24C02 when the power is off, the bicycle speed can be displayed on LCD. In this article, the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware, the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software, in assemble language; the program is designed in the mode of modules. The system has simple hardware, common sub-program, and meets the demand of design.Keyword:Mileage / speed; Hall element; Single chip microcomputer; LCD中 北 大 学 2013 届 毕 业 设 计 说 明 书第 3 页 共 34 页目 录1 引言 12 系统总方案论证与分析 22.1 课题主要任务及内容2 2.2 任务分析与实现 2 2.3 硬件方案设计 32.4 软件的方案设计 53 硬件电路设计 63.1 概述63.2 系统总电路图63.3 单片机简介73.3.1 单片机的引脚功能介绍73.3.2 单片机中断系统介绍113.4 传感器及其测量系统113.5 单片机外围电路的设计123.5.1 时钟电路的设计123.5.2 复位电路的设计123.5.3 显示电路的设计134 软件程序设计174.1 概述174.2 中断程序的设计174.3 总程序的设计184.4 本章小结225 系统的调试235.1 硬件调试235.2 软件调试235.3 故障分析与解决方案256 结论 27参考文献28致谢 30中 北 大 学 2013 届 毕 业 设 计 说 明 书第 4 页 共 34 页1 引言随着人们生活水平的逐渐提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。自行车在中国普遍作为代步工具。而在国外,自行车却是一项十分受欢迎的健身运动。因为它无污染,价位低廉,老少皆宜。而且在运动过程中可以充分享受到大自然,对于忙碌的现代人来说,无疑是一种较好的放松方法。在中国这种情况也在慢慢发生变化。因此爱好自行车运动的人十分学要一款能测速的装置,以知道自己的运动情况。并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。因此需要一种装置进行对训练中各种参数的测定记录 1。 码表主要针对那些业余爱好者,他们运动一般会选择晴朗凉爽的天气进行运动,所以温度和风速对运动员几乎没影响,只要能精确的测量速度和里程以及时间即可。并能在运动员达到预期运动量后能准确提醒运动员已达到预期要求 2。 本设计以 AT89C52 单片机为主控芯片,把红外线传感器传来的脉冲信号进行处理,预算,精确的计算出行驶的速度和里程,然后在传送给 LCD 显示器,从 LCD 上显示出运动的一系列数据,而且还可以通过显示器进行人机对话,可以通过显示器和键盘进行一些参数的设置,比如像将要安装的自行车的轮圈的半径设置,以及预设运动量的和时间的设置。这些都需要通过显示器进行设置,其中的时间是用芯片内自带的计数器进行计数的。 本设计是以 AT 系列单片机为主控制芯片,采用红外线元件检测小车行驶速度。程序用 C 语言编写,由主程序、外部中断服务程序、定时器中断服务程序、延时子程序等模块组成。主程序主要完成程序的初始化和键盘处理,外部中断服务程序由测量、计算、读数等部分组成。中 北 大 学 2013 届 毕 业 设 计 说 明 书第 5 页 共 34 页2 系统总方案论证与分析2.1 课题主要任务及内容本课题主要任务是利用红外线传感器、单片机等部件设计一个可用 LCD 液晶显示器实时显示里程和速度的自行车的速度里程表。本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析,对本次设计进行了系统的总结。具体的硬件电路包括 AT89C52 单片机的外围电路以及 LCD 显示电路等。软件设计包括:芯片的初始化程序、定时中断采样子程序、显示子程序等,软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。2.2 任务分析与实现本设计的任务是:以通用 MCS-51 单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过 MCS-51 的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过 LCD 显示器显示出来。本系统总体思路如下:假定轮圈的周长为 L,车轴上装一个有缺口的圆版,在圆板的外侧装置一个红外线传感器,车轮转动一圈经,红外传感器及记录一次输入信号。综合分析,本设计中取 m=1。当轮子每转一圈,通过红外线传感器采集到一个脉冲信号,并从引脚 P3.2 中断 0 端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数 n 轮圈的周长为 L 的乘积为里程值。计数器 T1 计算每转一圈所用的时间 t,就可以计算出即时速度 v。要求达到的各项指标及实现方法如下:1. 利用红外传感器里程数的脉冲信号。2. 对脉冲信号进行计数。中 北 大 学 2013 届 毕 业 设 计 说 明 书第 6 页 共 34 页实现:利用单片机自带的计数器 T1 对红外传感器脉冲信号进行计数。3. 对数据进行处理,要求用 LCD 显示里程总数和即时速度。实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。2.3 硬件方案设计测速,首先要解决是采样的问题。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,将脉冲送入单片机中进行计算,即可获得转速的信息。常用的测速元件有霍尔传感器、光电传感器和光电编码器。里程测量传感器的选择也有以下几种方案:利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行测量、利用红外线传感器进行里程测量。使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在齿轮盘上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。这种传感器不怕灰尘、油污,在工业现场应用广泛 3。红外线传感器具光源稳点,操作简单功耗低的优点,相比霍尔传感器安装简单,对磁场的抵抗力较强,且使用较为简单。故本文采用红外线传感器进行信号的采集4。本文采用的红外线传感器为 ITR9606,ITR9606 的包含一个红外发光二极管和一个 NPN 型硅光电晶体管, 该元件是个 4 端元件,外观、平面图如图 1 图 2 所示: 图 1中 北 大 学 2013 届 毕 业 设 计 说 明 书第 7 页 共 34 页图 2单片机由于将 CPU、内存和一些必要的接口集成到一个芯片上,并且面向控制功能将结构作了一定的优化,所以它有一般芯片不具有的特点:1. 体积小、重量轻;2. 电源单一、功耗低;3. 功能强、价格低;4. 全部集成在一块芯片上,布线短、合理;5. 数据大部分在单片机内传送,运行速度快、抗干扰能力强、可靠性高 5。目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子与航空航天器电子系统以及单片机的多机系统等领域。在设计中选用的是 AT89C52 单片机。外部信号红外传感器外部存储器AT89C52单片机里程显示速度显示图 3 系统的原理框图中 北 大 学 2013 届 毕 业 设 计 说 明 书第 8 页 共 34 页2.4 软件的方案设计通过软件控制单片机的功能是单片机的主要特点和优点,程序的设计要考虑合理性和可读性,遵循模块化设计的原则,采用自顶向下的设计方法。模块化设计使程序的可读性好、修改及完善方便。软件设计包括主程序、行车过程中里程和速度计算子程序、延时子程序、中断服务子程序、显示子程序等等。中断子程序是将传感器产生的信号接入外部中断 0,将经过 74LS74 分频后的信号接入外部中断 1,利用中断和定时器对分别对里程进行累加、每转一周的时间进行测量。数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对应关系,经过软件编程显示所需要的值。显示子程序是将数据处理的结果送显示器显示。系统软件总体流程图如图 4 所示 。初始化P3.7=1?计算里程显示里程开始图 4 软件总体流程图中 北 大 学 2013 届 毕 业 设 计 说 明 书第 9 页 共 34 页3 硬件电路设计3.1 概述自行车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,数码管的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。光敏传感器是一种将光学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。作为输入信号,这就给光敏传感器的快速发展提供了机遇,形成了光学传感器的产业。其中最具代表的磁传感器就是红外线传感器,在自动检测系统中,利用红外线传感器测转数是一种最基本的测量工作 6。单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计算、定时、信息处理等功能 7。3.2 系统总电路图中 北 大 学 2013 届 毕 业 设 计 说 明 书第 10 页 共 34 页3.3 单片机简介单片机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括 CPU(Central Processing Unit)、随机存储器 RAM(Random Access Memory)、只读存储器 ROM(Read-only Memory)、基本输入/输出(Input/Output)接口电路。定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机从而实现微型计算机的基本功能。单片机内部结构示意图如图 5 所示 8。定时/计数器 中断系统CPU存储器并行I/O口串口I/O口TXDTXDRXDT INTP0-P3图 5 单片机内部结构示意图3.3.1 单片机的引脚功能介绍AT89C52 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含 8K Bytes 的可反复擦写的只读程序存储器(EPROM)和 256 字节的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大,AT89C52 单片机适合于许多较为复杂控制场合应用。如图 6 所示中 北 大 学 2013 届 毕 业 设 计 说 明 书第 11 页 共 34 页图 6 AT89C52 引脚图AT89C52 提供以下标准功能:8K 字节 Flash 闪速存储器,256 字节内部RAM,32 个 I/O 口线,3 个 16 位定时/计数器,5 个中断源,一个全双工串行通信口,片内具有振荡器及时钟电路。AT89C52 管脚图如图 5 所示。主要性能参数: MCS-51 产品指令系统完全兼容 4K 字节在系统编程(ISP)Flash 闪速存储器1000 次擦写周期 4.0-5.5V 的工作电压范围 全静态工作模式:0HZ-33MHZ 三级程序加密锁 128*8 字节内部 RAM 32 个可编程 I/O 口线 2 个 16 位定时/计数器 6 个中断源 全双工串行 UART 通道 低功耗空闲和掉电模式 中断可从空闲模式唤醒系统 看门狗(WDT)及双数据指针 掉电标示和快速编程特性 灵活的在系统编程(ISP-字节或页写模式) 功能特性概述:中 北 大 学 2013 届 毕 业 设 计 说 明 书第 12 页 共 34 页AT89C51 提供以下标准功能:4K 字节闪速存储器,128 字节内部 RAM,32 个I/O 口线,看门狗(WDT) ,两个数据指针,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51 可降至 0HZ 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中到内容,但振荡器停止工作并禁止其它所有工作部件直到下一个硬件复位 9。管脚说明:VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C52 的一些特殊功能口,如下表所示:中 北 大 学 2013 届 毕 业 设 计 说 明 书第 13 页 共 34 页P3.0 RXD(串行输入口)P3.1 TXD(串行输入口)P3.2 /INTO(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(计时器 0 外部输入)P3.5 T1(计时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应中 北 大 学 2013 届 毕 业 设 计 说 明 书第 14 页 共 34 页不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度 10。3.3.2 单片机中断系统介绍中断是指当计算机执行正常程序时,系统中出现某些急需处理的事件,CPU 暂时中止当前的程序,转去执行服务程序,以对发生的更紧迫的事件进行处理,待处理结束后,CPU 自动返回原来的程序执行 AT89C52 系列单片机的系统有 5 个中断源,2 个优先级,可实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器 IE 控制 CPU 是否响应中断请求;由中断优先级寄存器 IP 安排各优中断源的优先级;同一优先级内各终端同时提出中断请求时,由内部的查询逻辑确定其响应次序。采用的外部中断方式包括外部中断 0 和外部中断 1,它们的中断请求信号分别由单片机引脚 /P3.2 和 /P3.3 输入 11 。外部中断请求有两种信号方式:电平触发方式和脉冲触发方式。电平触发方式的中断请求是低电平有效。只要在 和 引脚上出现有效低电平时,就激活外部中断方式。脉冲触发方式的中断请求则是脉冲的负跳变有效。在这种方式下,在两个相邻机器周期内, 和引脚电平发生变化,即在第一个机器周期内为高电平,第二个机器周期内为低电平,就激活外部中断。由此可见,在脉冲方式下,中断请求信号的高电平和低电平状态都应至少维持一个机器周期,以使 CPU 采样到电平状态的变化,本次设计所采用的触发方式为脉冲触发方式 12。3.4 传感器及其测量系统本次设计信号的捕获采用的是红外线传感器。 红外传感器件具有许多优点,它们的结构牢固、体积小、重量轻、寿命长、安装方便、功耗小、频率高(可达1MHz) 、耐震动、不怕灰尘、油污、水汽及烟雾等的污染或腐蚀。红外线性器件的精度高、线性度好;红外开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高。取用各种补偿和保护措施的霍尔器件工作温度范围宽,可达55150。按照红外器件的功能可将它们分为:红外线性器件和红外开关器件,前者输出模拟量,后者输出数字量。 通过它,将许多非电、非磁的物理量例如力、力矩、位置、位移、速度、加速度、角度、角速度、转数、转速以及工作状态发生变化的时间等,转变成电量来进行检测和控制 13。中 北 大 学 2013 届 毕 业 设 计 说 明 书第 15 页 共 34 页3.5 单片机外围电路的设计3.5.1 时钟电路的设计时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C52 片内由一个反相放大器构成振荡器,可以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式 14。本设计采用前者。单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡器和电容,就构成一个稳定的自激振荡器。单片机内部时钟方式的振荡电路如图 11所示。图 11 单片机片内振荡电路电路中的电容 C1 和 C2 常选择为 30P 左右。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定性。而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作频率即可。此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率可以除尽的晶体。本设计晶振采用 12MHz,则计数周期为 61202THz( )S3.5.2 复位电路的设计中 北 大 学 2013 届 毕 业 设 计 说 明 书第 16 页 共 34 页AT89C52 单片机的复位输入引脚 RET 为 AT89C52 提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的 0000H 地址单元开始执行程序。在 89C52 的时钟电路工作后,只要在 RET 引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要 RET 保持高电平,则 89C52 循环复位。只有当 RET 由高电平变成低电平以后,89C52 才从 0000H 地址开始执行程序 15。本系统的复位电路是采用按键复位的电路,如图 12 所示,是常用复位电路之一。单片机复位通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容 C 相当于瞬间短路,+5V 立即加到 RET/VPD 端,该高电平使 89C52 全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮即可。按下按钮,则直接把+5V 加到了 RET/VPD 端从而复位称为手动复位。复位后,P0 到 P3并行 I/O 口全为高电平,其它寄存器全部清零,只有 SBUF 寄存器状态不确定。图 12 按键复位电路工作原理:通电瞬间,RC 电路充电,RST 引脚出现高电平,只要 RST 端保持 10ms以上高电平,就能使单片机有效地复位。3.5.3 显示电路的设计HJ1602A 是一种工业字符型液晶,能够同时显示 16x02 即 32 个字符。 (16 列2 行) 。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED 数码管、液晶显示器。发光管和 LED 数码管比较常用,软硬件都比较简单 16。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点: 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 中 北 大 学 2013 届 毕 业 设 计 说 明 书第 17 页 共 34 页液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。 相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动 IC 上,因而耗电量比其它显示器要少得多 17。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式 LCD,目前常用 16*1,16*2,20*2 和 40*2 行等的模块。下面以长沙太阳人电子有限公司的1602 字符型液晶显示器为例,介绍其用法。(1)引脚说明: 第 1 脚:VSS 为地电源。 第 2 脚:VDD 接 5V 正电源。 第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。 第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。 第 15 脚:背光源正极。 第 16 脚:背光源负极。 (2)1602LCD 的 RAM 地址映射以及标准字库表 LCD1602 液晶模块内部的字符发生存储器已经存储了 160 个不同的点阵字符图形,这些字符图有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母。 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1 为高电平,0 为低电平) 。 中 北 大 学 2013 届 毕 业 设 计 说 明 书第 18 页 共 34 页指令 1:清显示,指令码 01H,光标复位到地址 00H 位置。 指令 2:光标复位,光标返回到地址 00H 。 指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。 C:控制光标的开与关,高电平表示有光标,低电平表示无光标。B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 。指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线。N:低电平时为单行显示,高电平时双行显示。 F:低电平时显示 5X7 的点阵字符,高电平时显示 5x10 的点阵字符 (有些模块是 DL:高电平时为 8 位总线,低电平时为 4 位总线) 。 指令 7:字符发生器 RAM 地址设置。 指令 8:DDRAM 地址设置。 指令 9:读出忙信号和光标地址。 BF 为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。 指令 10:写数据。 指令 11:读数据。 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。1602 内部显示地址如图 13 所示中 北 大 学 2013 届 毕 业 设 计 说 明 书第 19 页 共 34 页图 13例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第 一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7恒定为高电平 1,所以实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H) 。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160个不同的点阵字符图形,如下图所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 18。中 北 大 学 2013 届 毕 业 设 计 说 明 书第 20 页 共 34 页4 软件程序设计4.1 概述在硬件设计完毕之后,接下来就是设计中最核心和最为主要的软件部分设计。所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。4.2 中断程序的设计定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端 19。定时/计数器控制寄存器 TCON 是 8 位寄存器,地址为 88H,可以位寻址。其高4 位用于定时/计数器中断控制,低 4 位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。中断子程序流程图如图 14 所示。中 北 大 学 2013 届 毕 业 设 计 说 明 书第 21 页 共 34 页关中断开始现场保护开中断中断处理关中断现场恢复开中断中断返回图 14 中断子程序流程图4.3 总程序的设计#include #include #include Delay.h#include Lcd1602.hsbit KEY1=P37;sbit KEY2=P36;sbit KEY3=P35;ulong Frq;uchar Cnt;ulong Run=0;中 北 大 学 2013 届 毕 业 设 计 说 明 书第 22 页 共 34 页uchar arrRun6;uint Speed;uchar arrSpeed6;bit SecFlag=0;bit StartFlag=0;float Total=0;uchar arrTotal5;uchar arrFrq4;void InitINT()EX0=0;IT0=1;EA=1;void KeyScan() /按键扫描if(KEY1=0)DelayMS(5); /消抖if(KEY1=0)while(!KEY1);StartFlag=1; /开始标志位为 1 时开始工作,为 0 时停止GotoXY(12,0);Print( ON 0);EX0=1; /开外部中断 0中 北 大 学 2013 届 毕 业 设 计 说 明 书第 23 页 共 34 页if(KEY2=0) /等待 计时开始 DelayMS(5);if(KEY2=0)while(!KEY2);StartFlag=0;GotoXY(12,0);Print( OFF0);EX0=0;if(KEY3=0) /结束 计算总价DelayMS(5);if(KEY3=0)while(!KEY3);void InitTimer()TMOD=0X01; /定时器控制字TH0=0X3C; /初值TL0=0XB0;ET0=1; /允许定时器 0 中断TR0=1; /启动定时器EA=1; /允许 cpu 中断中 北 大 学 2013 届 毕 业 设 计 说 明 书第 24 页 共 34 页void main()InitLcd(); /初始显示DisplayString(RUN= 0 Km OFF,0X00);DisplayString(Speed= m/s ,0X40);InitINT();InitTimer();while(1)KeyScan();if(SecFlag=1) /1 秒时间到SecFlag=0;Run=Run+(Frq/50); /50 圈作为 1km /显示总的里程sprintf(arrRun,%4ld,Run);arrRun4=0; /换行GotoXY(4,0);Print(arrRun);Frq=Frq/2;sprintf(arrFrq,%4ld,Frq); /显示当前速度arrFrq4=0;GotoXY(6,1);Print(arrFrq);Frq=0;中 北 大 学 2013 届 毕 业 设 计 说 明 书第 25 页 共 34 页void ISR_INT0() interrupt 0 /外部中断 0 子程序,用于采集总圈数 /记录的圈数Frq+;void ISR_Timer0() interrupt 1 /定时器中断 0 子程序,定时一秒TH0=0X3C;TL0=0XB0;Cnt+;if(Cnt=18)Cnt=0;SecFlag=1;4.4 本章小结在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操作。将根据里程寄存器中的内容计算和判断出行驶里程数。中断 1 用于控制定时器T1 的启/停,当输入为 0 时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器 T1 的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。中 北 大 学 2013 届 毕 业 设 计 说 明 书第 26 页 共 34 页5 系统的调试电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。5.1 硬件调试硬件调试主要是针对我的转速测量系统的单片机硬件电路分别进行调试。这一部分硬件调试主要分成两大块:上电前的调试和上电后的调试。上电前的调试在上电前,我们必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。特别是数码管的连接部分,有PROTEL制作的PCB确保要和原理图上的图一致,有些在电路板上没法连接的线路,要用短接线把接好,对照着原理图部分,一部分一部分地用万用表测量,注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。上电后的调试在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次课程设计中,上电调试主要只转速测量系统的单片机控制部分、数码管点亮部分、和上位机通信是的电平转换和串口通信部分的硬件调试 20。单片机控制部分硬件调试:这一部分调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其他的一些管脚的接法。看单片机通电后能否可以正常工作等这一系列问题。5.2 软件调试单片机程序调试思路:单片机部分调试工作的完成主要应用LCA51 软件来完成,这一部分工作首先将转速测量系统中的各个模块计算程序中的除法程序、双字节的二-十进制数制转换程序,压缩BCD 码十进制数转换为非压缩BCD 码的程序以及显示部分程序调试好,不断调试,不断修改直到正确为止。LCA51软件是一种非常实用的多窗口编辑、调试软件。LCA51 软件全面支持汇编语言,C51 语言,PL/M51 语言的编译/连接、调试。软件支持单文件方式和工程化管理两种模式。用户可自定义各种语言的关键词.软中 北 大 学 2013 届 毕 业 设 计 说 明 书第 27 页 共 34 页件完全支持源语句级在线调试。高级语言还支持源文件调试和汇编语言指令行对照调试。用户可同时打开多个窗体编辑、调试、变量观察.用户可在线对原文件直接编辑、编译、连接、加载和调试,软件支持编译错误源文件定位。调试时用户可动态观察、修改设定变量(包括CPU 片内寄存器、特殊寄存器及外部寄存器、内存)的值 21。调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。1.跟踪调试调试应用程序所提供的重要性能也许就是跟踪应用程序。跟踪应用程序使用户能够在运行应用程序时,看到PC 指针在应用源代码程序中的确切位置,LCA51 提供以下方法对程序的执行进行跟踪。跟踪型单步执行一条源语句程序。但是,如果调用一函数,则进入函数中,再执行函数的第一条源语句行前停止。通过型单步仅执行下一条源语句程序,然后又停止。如果是调用一函数,运行完整个函数并停止在函数返回处。2.断点调试如果已知程序中某块代码实际运行正常的情况下,仍用跟踪调试方法,将大大浪费时间,而且很枯燥,因此调试中第二个重要工具是在源代码中预定处设置断点,大多数调试程序通过使用断点中止程序执行。注意:如果用户调试高级语言,因为系统要占用2 个断点,所以可设置的断点数为最大断点个数减2。LCA51 调试软件还提供一次性断点:执行到光标所在行。如果用户按热键F4,调试程序继续执行程序代码,直到它到达光标行处或调试程序遇到另一个断点。3.查看变量显然,通过一系列指令查看应用程序,了解导致某一错误的执行也是一种非常有效的方法。LCA51 软件提供了以下

温馨提示

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

评论

0/150

提交评论