基于单片机自行车测速仪
【摘要】
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是
成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,
让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的
自行车的速度里程表的设计。以 AT89C51 单片机为核心,A44E 霍尔传感器测转数,实
现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,
并能将自行车的里程数及速度用LED 实时显示。文章详细介绍了自行车的速度里程表的
硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系
统,然后单片机系统将信号经过处理送显示。软件部分用汇编语言进行编程,采用模块
化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。
关键字:里程/速度;霍尔元件;单片机;LCD 显示
Abstract: As living standards improve, bicycle is no longer just a regular
transport, travel tools, but become the first choice for entertainment,
recreation, exercise. Bike speed odometer to meet the most basic needs of the
people, so that people can know the current speed, distance and other physical
quantities. This paper focuses on a bicycle speed odometer design based on Hall
element. AT89C52 MCU core, A44E Hall sensor measuring speed, enabling the bicycle
mileage/speed measurement and statistics, by the 24C02 method when the system's
power save mileage information, to your bike mileage and speed LED display in
real time. Article details the speed odometer hardware circuit and software
design of the bike. Hardware parts using Hall elements bike number of pulses
per turn around incoming MCU system and signal to show in single chip
microcomputer system. Software programming in Assembly language, is modular in
design. The system hardware circuit is simple, child program has the versatility,
fully meet the design requirements.
Key words:
Mileage / speed; Hall element; Single chip microcomputer; LCD
目录
1 绪论 .............................................................................................................. 1
1.1 课题研究的目的和意义 . ........................................................... 1
1.2 课题的发展概况 ................................................................. 1
1.3 研究的主要内容 ................................................................. 2
2 系统总体方案设计 . ............................................................................................. 2
2.1 系统方案 ....................................................................... 2
2.2 单片机选择 ..................................................................... 3
2.3 时钟芯片选择 ................................................................... 3
2.4 温度传感器选择 ................................................. 错误!未定义书签。
2.5 测速传感器选择 ................................................. 错误!未定义书签。
2.6 显示器选择 ..................................................... 错误!未定义书签。
3 系统硬件设计 ................................................................................................... 5
3.1 单片机外围电路设计.............................................. 错误!未定义书签。
3.1.1 单片机介绍 ................................................................. 5
3.1.2 单片机外围电路图............................................ 错误!未定义书签。
3.1.3时钟电路的设计 .............................................. 错误!未定义书签。
3.1.4复位电路的设计 .............................................. 错误!未定义书签。
3.2时钟模版的设计 .................................................. 错误!未定义书签。
3.2.1 时钟芯片介绍 ............................................... 错误!未定义书签。
3.2.2 DS1302硬件连接图 ........................................... 错误!未定义书签。
3.3 温度模块设计 ................................................... 错误!未定义书签。
3.3.1 温度传感器介绍.............................................. 错误!未定义书签。
3.3.2 DS18B20硬件连接图 .......................................... 错误!未定义书签。
3.4 速度模块设计 ................................................... 错误!未定义书签。
3.4.1 霍尔简介 ................................................................... 9
3.4.2 霍尔传感器的测温原理 ........................................................ 9
3.5 显示模块设计 ................................................... 错误!未定义书签。
3.5.1 LCD芯片介绍 ................................................ 错误!未定义书签。
3.5.2 LCD硬件连接图 .............................................. 错误!未定义书签。
3.6 主电路图 ....................................................... 错误!未定义书签。
4 软件设计........................................................................................................ 12
4.1 主程序设计 .................................................................... 12
4.2 计算速度里程程序设计 . .......................................................... 12
4.3 温度显示程序设计................................................ 错误!未定义书签。
4.4 时钟芯片程序设计................................................ 错误!未定义书签。
5 系统调试........................................................................................................ 15
5.1 Proteus软件简介 ............................................................... 15
5.2 Proteus软件仿真 ............................................................... 15
5.3 测速电路调试 .................................................................. 15
5.3.1硬件调试 . .................................................................. 15
5.3.2 软件调试 .................................................................. 16
结束语 ............................................................................ 20
参考文献 .......................................................................... 21
附录 . ............................................................................. 22
1 绪论
1.1 课题研究的目的和意义
自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与
研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目
的也从最早的交通代步的工具转换成休闲娱乐运动的用途。
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是
成为人们娱乐、休闲、锻炼的首选。因此,人们希望自行车的功用更强大,能给人们带
来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅
速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测
量骑车人的心跳、显示骑车人热量消耗等功能。本设计采用了MCS-51系列单片机设计
一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走
的距离及运行的速度。
1.2 课题的发展概况
随着微型计算机可靠性提高和价格下降,用单片机测量电机转速技术已经成熟,但
是这种技术目前主要还是用于工业生产方面,测速装置用于生活中还是少之又少。欲提
高测量精度,必须先测出准确的转速,而原先在可控硅调速电路中采用的测速发电机方
式已不能满足要求,必须采用数字测速的方法。转速的测量方法很多,根据脉冲计数来
实现转速测量的方法主要有M 法(测频法)、T 法(测周期法)和MPT 法(频率周期法),
该系统采用了M 法(测频法)。转速检测方式采用霍尔脉冲法测量转速有两种简单的方
式。本设计采用频率法,检测的是输入脉冲数,这种方式又称频率法。它测出一定时间
内外界所输入的脉冲的个数。在控制系统中占有非常重要的地位。对测速装置的要求是
分辨能力强、高精度和尽可能短的检测时间。所设计的基于霍尔元件的脉冲发生器要求
具有成本低、结构简单、使用方便、性能好等特点。
由于需要采用霍尔传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该
器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与
上述几个市场相比,因此霍尔传感器在全球总的市场份额是较为稳定的,因为各种应用
电机的部件、节气门位置的检测、各种阀体位置的检测、或者电磁感应的位置都会用到
霍尔传感器。
国内外现在已经有生产销售类似的自行车测速仪里程表,有些简单的产品功能比较
单一,就是单单只有测速或里程的功能,然而一些复杂的产品除了测速和里程功能外,
还集成了GPS 全球定位、单次行车里程、平均速度、时钟、行车时间、车轮转数。
1.3 研究的主要内容
本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED 数码管实时显示
里程和速度的自行车的速度里程表。本文主要介绍了自行车的速度里程表的设计思想、
电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。
本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继
而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显
示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的
设计、显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析,对本
次设计进行了系统的总结。
本设计的具体要求如下:
(1) 对自行车进行实时速度的测量,显示出速度值。
(2) 能够计算单次使用自行车的路程。
(3) 能测量出当前环境的温度,以供使用者决定是否适宜进行运动。
2 系统总体方案设计
2.1 方案选取
方案一:霍尔传感器测量方案
霍尔传感器是利用霍尔效应进行工作的?其核心元件是根据霍尔效应原理制成的
霍尔元件。本文介绍一种泵驱动轴的转速采用霍尔转速传感器测量。霍尔转速传感器的
结构原理图如图3.1, 霍尔转速传感器的接线图如图3.2 。
传感器的定子上有2 个互相垂直的绕组A 和B, 在绕组的中心线上粘有霍尔片HA
和HB , 转子为永久磁钢, 霍尔元件HA 和HB 的激励电机分别与绕组A 和B 相连, 它们
的霍尔电极串联后作为传感器的输出。
图3.1 霍尔转速传感器的结构原理图
方案二: 光电传感器
整个测量系统的组成框图如图3.3所示。从图中可见, 转子由一直流调速电机驱动,
可实现大转速范围内的无级调速。转速信号由光电传感器拾取, 使用时应先在转子上做
好光电标记, 具体办法可以是:将转子表面擦干净后用黑漆(或黑色胶布) 全部涂黑, 再
将一块反光材料贴在其上作为光电标记, 然后将光电传感器(光电头) 固定在正对光电
标记的某一适当距离处。光电头采用低功耗高亮度LED , 光源为高可靠性可见红光, 无论
黑夜还是白天, 或是背景光强有大范围改变都不影响接收效果。光电头包含有前置电路,
输出0—5V 的脉冲信号。接到单片机89C51的相应管脚上,通过89C51内部定时/计时
器T0、T1及相应的程序设计,组成一个数字式转速测量系统。
2.2.1系统工作原理
转速是工程上一个常用的参数,旋转体的转速常以每分钟的转数来表示。其单位为
r /min 。由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号,送至单
片机STC89C51的计数器 T0进行计数,用T1定时测出电动机的实际转速。此系统使用
单片机进行测速,采用脉冲计数法,使用霍尔传感器获得脉冲信号。其机械结构也可以
做得较为简单,只要在转轴的圆盘上粘上两粒磁钢,让霍尔传感器靠近磁钢,机轴每转
一周,产生两个脉冲,机轴旋转时,就会产生连续的脉冲信号输出。由霍尔器件电路部
分输出,成为转速计数器的计数脉冲。控制计数时间,即可实现计数器的计数值对应机
轴的转速值。单片机CPU 将该数据处理后,通过LED 显示出来。
2.2 单片机选择
单片机普遍认为是在一块硅片上集成了中央处理器、存储器和各种输入、输出接
口,这样的一块芯片具有一台计算机的功能,因而被称为单片微型计算机。系统所使用
的是通用型单片机,它可以把可开发资源全部提供给使用者。
单片机普遍认为是在一块硅片上集成了中央处理器、存储器和各种输入、输出接口,
这样的一块芯片具有一台计算机的功能,因而被称为单片微型计算机。
宏晶科技是新一代增强型8位单片微型计算机标准的制定者和领导厂商宏晶科技是
新一代增强型8位单片微型计算机标准的制定者和领导厂商。STC 系列的单片机现在在
中国的51单片机市场上占有较大比例。STC MCU 性能特点在于:89C 系列:最高工作频
率80M ,FLASH 程序储存4K-64K ,RAM 数据储存512B -1280B ,内部集成EEPROM 2K -16K
及看门狗和专用复位电路,带A/D功能。STC 系列:单时钟/机器周期。超小封装。2-4
路PWM ,8-10位高速A/D转换。FLASH 程序储存512B -12K ,RAM 数据储存256B -512B ,
集成1K 的EEPROM 及硬件WDT ,产品都有为低功耗且有ISP 和IAP 功能,强抗干扰和降
低EMI 性能。
3 系统硬件设计
3.1电源电路设计
单片机正常工作电压为5V ,因此设计的电源电路主要是提供单片机工作电压。图
3.1是为单片机提供电压的电源电路。在这个电路中采用了三端集成稳压器LM7805,
可以输出5V 的直流电压以供给单片机。
图3.1 电源电路图
三端集成稳压器LM7805,总共有三条引脚,分别是输入端、接地端和输出端。用
LM78\LM79系列三端稳压器来组成稳压电源所需的外围元件极少,电路内部还有过流、
过热及调整管的保护电路,使用起来可靠、方便。
3.2 89C51单片机及相关电路
3.2.1 单片机介绍
AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM ,
32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工
串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz 的静态逻辑操作,
并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM ,定
时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振
荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
与MCS-51 兼容 、
·4K字节可编程FLASH 存储器
·寿命:1000写/擦循环
·数据保留时间:10年
·全静态工作:0Hz-24MHz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器、5个中断源
·可编程串行通道、低功耗的闲置和掉电模式
·片内振荡器和时钟电路。
3.1.2晶振电路
电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和
抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控
制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。
图3.3是单片机的晶振电路。片内电路与片外器件就构成一个时钟产生电路,CPU
的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般
多在1.2MHz ~24MHz 之间选取。C1、C2是反馈电容,其值在20pF ~100pF 之间选取,典
型值为30pF 。本电路选用的电容为30pF ,晶振频率为12MHz 。 振荡周期=1μs ;
机器周期S m =1μs
指令周期=1~4μs 。
XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。在单片机内部,接至上
述振荡器的反相放大器的输出端。采用外部振荡器时,对 HMOS 单片机,该引脚接外部
振。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机
械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动
的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振
幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也
称谐振频率。石英晶振起振后要能在XTAL2线上输出一个3V 左右的正弦波,以便使
MCS-51片内的OSC 电路按石英晶振相同频率自激振荡。通常,OSC 的输出时钟频率fOSC
为0.5MHz-16MHz ,典型值为12MHz 或者11.0592MHz 。电容C1和C2可以帮助起振,典
型值为30pF ,调节它们可以达到微调fOSC 的目的。
图3.3 单片机晶振电路图
3.2.3复位电路
复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上
加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H ,然后继续从0000H
单元开始执行程序。在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信
号。但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,
以防在按键过程中引起的抖动而影响复位。图3.4所示的 RC 复位电路可以实现上述基
本功能。
图3.4 复位电路图
3.3显示电路
本方案采用128X64进行转速的显示,带中文字库的128X64是一种具有4位/8位并
行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液
晶显示模块; 也可完成图形显示. 低电压低功耗是其又一显著特点。由该模块构成的液
晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要
简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块12864是图形点阵,可以
显示图形和汉字也可以同时显示字母和阿拉伯数字。
3.4霍尔简介
根据霍尔效应,人们用半导体材料制成的元件叫霍尔元件。该芯片具有尺寸小、稳
定性好、灵敏度高等特点。A3144E 系列单极高温霍尔效应集成传感器是由稳压电源,霍
尔电压发生器,差分放大器,施密特触发器和输出放大器组成的磁敏传感电路,其输入
为磁感应强度,输出是一个数字电压讯号。它是一种单磁极工作的磁敏电路,适用于矩
形或者柱形磁体下工作。可应用于汽车工业和军事工程中。
3.4.1 霍尔传感器
霍尔传感器是利用霍尔效应制成的一种磁敏传感器。在置于磁场中的导体或半导体
通入电流I ,若电流垂直磁场B ,则在与磁场和电流都垂直的方向上会出现一个电势差
Uh ,这种现象称为霍尔效应。利用霍尔效应制成的元件称为霍尔元件。因为它具有结构
简单、频率响应宽、灵敏度高、测量线性范围大、抗干扰能力强以及体积小、使用寿命
长等一系列特点,因此被广泛应用于测量、自动控制及信息处理等领域。霍尔效应原理
图如图3.8所示。
图3.8 霍尔效应原理图
A44E 集成霍尔开关由稳压器A 、霍尔电势发生器(即硅霍尔片)B 、差分放大器 C、
施密特触发器D 和OC 门输出E 五个基本部分组成,如图2.5(a )所示。(1)、(2)、(3)
代表集成霍尔开关的三个引出端点。在电源端加电压Vcc ,经稳压器稳压后加在霍尔电
势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通
以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH 输出,该VH 信号经放大器
放大后送至施密特触发器整形,使其成为方波输送到OC 门输出。当施加的磁场达到工
作点时,触发器输出高电压(相对于地电位) ,使三极管导通,此时OC 门输出端输出低
电压,通常称这种状态为开 。当施加的磁场达到释放点时,触发器输出低电压,三极
管截止,使OC 门输出高电压,这种状态为关 。这样两次电压变换,使霍尔开关完成了
一次开关动作。工作点与释放点的差值一定,此差值称为磁滞,在此差值内,V0保持不
变,因而使开关输出稳定可靠,这也就是集电成霍尔开关传感器优良特性之一。传感器
主要特性是它的输出特性,即输入磁感应强度B 与输出电压V0之间的关系。A44E 集成
霍尔开关是单稳态型,由测量数据作出的输出特性曲线如图 2.5(b)所示。测量时,在1、
2两端加5V 直流电压, 在输出端3与1之间接一个2k 的负载电阻,如图3.9所示。
图3.9集成开关型霍尔传感器
3.5 显示屏选择
由于设计中的需显示英文字符,且显示的数据比较多,所以不宜采用数码管显示。而应
该采用液晶屏显示,现在液晶显示屏种类繁多,12864、1602、MLO16L 等都是常用的液
晶显示屏。
4 软件设计
4.1 主程序设计
主程序主要完成系统初始化操作及各个子程序之间的联系任务,主程序是无限循
环,主要的功能是完成单片机初始化,开关中断,控制定时器等。
信号的采集处理计算过程都是在中断服务程序中执行。
4.2 计算速度里程程序设计
当单片机获取霍尔到传感器所感应的脉冲个数时,不能立马算出自行车的速度和里
程,要经过数学计算后才能得出,系统中所默认车轮的直径为2.2m ,使用者是可以根据
自己的自行车直径更改程序里的数据。但是由于理论知识水平有限,没能成功设计有外
界输入设定使用者的自行车车轮的直径数。本设计根据单片机每秒钟接收的脉冲个数来
计算自行车的速度。再将每秒的速度相加,就可得出自行车的里程。在Proteus 上仿真
得到的结果与计算结果完全相同。
程序设计流程图如图4.2所示
图4.2计算速度里程流程图
4.3 电路原理图
5 系统调试
5.1 Proteus软件简介
Proteus 软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流
和直流等数千种元器件和多达30多个元件库。Proteus 软件提供多种现实存在的虚拟仪
器仪表。此外,Proteus 还提供图形显示功能,可以将线路上变化的信号,以图形的方
式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极
低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus 软件提供丰富的测试信号
用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、
SPICE 仿真与PCB 设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR 、
PIC 等常用的MCU ,并提供周边设备的仿真,例如LED 、示波器等。Proteus
的元件库,有RAM 、ROM 、键盘、马达、LED 、LCD 、AD/DA、部分SPI 器
件,编译方面支持Keil 和MPLAB 一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立
一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用
系统等课程,并进行电路设计、仿真、调试等. 。
5.2 Proteus软件仿真
原理图是在原理图编辑窗口中的蓝色方框内绘制完成的,通过文件中的新建设计选
项,可以调整原理图设计页面大小。绘制原理图时首先应根据需要选取元器件,Proteus
库中提供了大量元器件原理图符号,利用Proteus 的搜索功能能很方便地查找需要的元
器件。
首先根据需要选择器件。单击元器件列表窗口上边的按钮P ,弹出元器件选择窗口。
在该窗口左上方的关键字栏内键入AT89C51,窗口中间的结果栏将显示出元器件库中所
有AT89C51单片机芯片,选择其中的AT89C51,窗口右上方将显示出AT89C51图形符号,
同时显示该器件的虚拟仿真模型,单击确定按钮后,AT89C51将出现在器件列表窗口。
照此方法选择所有需要的元器件。
器件选择完毕后,就可以开始绘制原理图。先用鼠标从器件选择窗口选中需要的器
件,预览窗口将出现该器件的图标。放置电源和地线端时,要从终端按钮栏中选取。
5.3 测速电路调试
5.3.1硬件调试
(1) 排除逻辑故障
显示器部分调试为了使调试顺利进行,首先将单片机与LCD 显示分离,这样就可以
用静态方法先测试LCD 显示,用规定的电平加至位显示的引脚,看显示是否与理论上一
致。不一致,一般为LCD 显示器接触不良所致,必须找出故障,检测单片机电路工作是
否正常。对单片机进行编程调试时,分为两个步骤:第一,对其进行初始化。第二,将
单片机与LCD 结合起来,借助开发机,通过编制程序进行调试。若调试通过后,就可以
编制应用程序了。对于一些逻辑故障来说,这类故障往往是由于设计和焊接过程中的失
误所造成的。主要包括错线、开路、短路。排除的方法是首先将焊接好的电路板认真对
照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,
并重点检查系统总线是否存在相互之间短路或与其它信号线路短路。必要时利用数字万
用表的短路测试功能,可以缩短排错时间。
(2) 排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了另一个是由于安装错
误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在
保证安装无误后,用替换方法排除错误。
(3) 排除电源故障
在通电前,一定要检查电源电压的幅值和极性,否则很容易造成元件损坏。加电后
检查各插件上引脚的电位,一般先检查VCC 与GND 之间电位,若在5V ~4.8V 之间属正
常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的元件发
热损坏。
(4) 模块化检测
在LCD 能够正常显示之后,分别对单片机的最小系统,DS18B20模块,DS1302模块
及速度模块分别进行调试检测
5.3.2 软件调试
(1)proteus 仿真软件调试
首先,编程时应采用模块化编程,将各个模块所应实现的功能编写子程序。然后对
各个子程序进行检测,直到各个模块功能能够正常工作为止。然后在proteus 中进行仿
真,直到仿真正常,则可以进行硬件电路焊接。
(2)硬件电路中的软件调试
即使仿真结果正常,只是说明程序基本无误。但是应用在实际硬件电路中却不一定
能够正常工作,比如DS18B20温度传感器对时序要求很高,所以调试DS18B20是难点所
在。在调试DS18B20时应根据LCD 的显示状态修改程序。
西安航空职业技术学院 基于单片机自行车测速仪
结束语
系统的设计与制作工作已经全部完成,基本达到和满足了预期的目的和要求。系统的调试与仿真结果基本符合设计要求。动态显示、显示内容的实时更新等方面达到预期的目标,但是由于时间仓促、条件有限,设计结果还存在一些缺陷,还存在诸如:显示内容的单一、数据波动、抗干扰能力差、霍尔传感器的精度差、人性化设计不全面等等。通过此次毕业设计,学到了许多以前不了解的知识,积累了不少宝贵的经验。
从选题到现在已经有半年的时间了,这个设计主要经历了以下几个过程:广泛查阅资料、文献综述、总体思路的确定、方案的确定、设计制板及硬件电路的完成、软件的调试、系统的调试、还包括设计说明书的定稿,我认为整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了基础。在整个过程中,本人不仅对单片机控制系统的每一个细节有了比较深入的掌握,而且对关于系统扩展的相关知识有了感性的认识,不仅掌握了大量的专业知识,更学会了系统模块化设计的基本思想。感谢老师。王老师认真的治学态度让我由衷的钦佩。这段时间来,在王老师的教诲和悉心指导下圆满地完成了毕业设计。不仅学习到了很多有用知识,而且懂得了许多做人的道理,相信这些对于以后的工作生活是大有裨益的。设计是在导师的认真关怀和指导下完成的,在论文的选题、展开到论文的形成,导师也给予了充分的关心并倾注了大量的心血。在此向导师致以最崇高的敬意和最衷心的感谢。
参考文献
[1] 楼然苗.51系列单片机设计实例[M].北京航空航天大学出版社,2003.3
[2] 何立民. 单片机高级教程-应用与设计[M].北京航空航天大学出版社,2007.1
[3] 童诗白,华成英.模拟电子技术基础[第四版][M].高等教育出版社,2001.1
[4] 胡汉才. 单片机原理及接口技术[M].北京:清华大学出版社,1999
[5] 樊尚春. 传感器技术及应用[M].北京航空航天大学出版社,2004.8
[6] 潘永雄. 新编单片机原理与应用[M].西安:西安电子科技大学出版社,2003
[7] 李学礼. 基于Proteus 的8051单片机实例教程[M].北京:电子工业出版社,2008
[8] 李 华. 单片机通用接口技术[M].北京:北京航空航天大学出版社,1999
[9] 陈伯时. 电力拖动自动控制系统[M].北京:机械工业出版社,2003:103-107
[10] 李全利. 单片机原理及应用技术[M].北京: 高等教育出版社,2004.
[11] 楼然苗,李光飞. 51系列单片机设计实例[M]. 北京航空航天大学出版社,2006.
附录 主程序
$INCLUDE (REG52.INC)
DISPBUF EQU 59H ;显示缓冲区从5AH 开始
SecCoun EQU 58H
SpCoun EQU 56H ;速度计时器单元57H 和58H ,高位在前(57H 单 元中)
Count EQU 55H; 显示时的计数器
SpCalc bit 00h ;要求计算速度的标志,该位为1则主程序进行
速度计算,然后清该位
Hidden EQU 16 ;消隐码
ORG 0000H
AJMP START
ORG 1BH
JMP TIMER1 ;定时中断1入口
ORG 30H
START: MOV SP,#5FH ;设置堆栈
MOV P1,#0FFH
MOV P0,#0FFH
MOV P2,#0FFH ;初始化,所有显示器、LED 灭
MOV TMOD,#00010101B ;定时器T1工作于方式1,定时器0工作方式1, 计数器
MOV TH1,#HIGH(65536-3686)
MOV TL1,#LOW(65536-3686)
SETB TR1
SETB ET1 ;开定时器1中断
SETB EA
LOOP: JNB SpCalc,LOOP ;如果未要求计算,转本身循环
; 标号: MULD 功能:双字节二进制无符号数乘法
; 入口条件:被乘数在R2、R3中,乘数在R6、R7中。
; 出口信息:乘积在R2、R3、R4、R5中。
; 影响资源:PSW 、A 、B 、R2~R7 堆栈需求: 2字节
MOV R2,SpCoun
MOV R3,SpCoun+1
MOV R6,#0
MOV R7,#5 ;测得的数值是每秒计数值,转为分(每一转测
12次,故乘5而非60)
CALL MULD
SEND: MOV SBUF,R2
SLP1: JBC TI,SN1 ;是否送完?
AJMP SLP1
SN1: MOV SBUF,R3
SLP2: JBC TI,SN2
AJMP SLP2
SN2: MOV SBUF,R4
SLP3: JBC TI,SN3
AJMP SLP3
SN3: MOV SBUF,R5
SLP4: JBC TI,SN4
AJMP SLP4
SN4:
; 标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数 ; 入口条件:待转换的双字节十六进制整数在R6、R7中。
; 出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
; 影响资源:PSW 、A 、R2~R7 堆栈需求: 2字节
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A ;将乘得的结果送R6R7准备转换,这里结果不可能超过2 字节
CALL HB2
MOV DISPBUF,R3 ;最高位
MOV A,R4 ;
ANL A,#0F0H ;去掉低4位
SWAP A ;将高4位切换到低4位
MOV DISPBUF+1,A
MOV A,R4
ANL A,#0FH
MOV DISPBUF+2,A
MOV A,R5
ANL A,#0F0H
SWAP A
MOV DISPBUF+3,A
MOV A,R5
ANL A,#0FH
MOV DISPBUF+4,A
CLR SpCalc ;清计算标志
JMP LOOP
基于单片机自行车测速仪
【摘要】
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是
成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,
让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的
自行车的速度里程表的设计。以 AT89C51 单片机为核心,A44E 霍尔传感器测转数,实
现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,
并能将自行车的里程数及速度用LED 实时显示。文章详细介绍了自行车的速度里程表的
硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系
统,然后单片机系统将信号经过处理送显示。软件部分用汇编语言进行编程,采用模块
化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。
关键字:里程/速度;霍尔元件;单片机;LCD 显示
Abstract: As living standards improve, bicycle is no longer just a regular
transport, travel tools, but become the first choice for entertainment,
recreation, exercise. Bike speed odometer to meet the most basic needs of the
people, so that people can know the current speed, distance and other physical
quantities. This paper focuses on a bicycle speed odometer design based on Hall
element. AT89C52 MCU core, A44E Hall sensor measuring speed, enabling the bicycle
mileage/speed measurement and statistics, by the 24C02 method when the system's
power save mileage information, to your bike mileage and speed LED display in
real time. Article details the speed odometer hardware circuit and software
design of the bike. Hardware parts using Hall elements bike number of pulses
per turn around incoming MCU system and signal to show in single chip
microcomputer system. Software programming in Assembly language, is modular in
design. The system hardware circuit is simple, child program has the versatility,
fully meet the design requirements.
Key words:
Mileage / speed; Hall element; Single chip microcomputer; LCD
目录
1 绪论 .............................................................................................................. 1
1.1 课题研究的目的和意义 . ........................................................... 1
1.2 课题的发展概况 ................................................................. 1
1.3 研究的主要内容 ................................................................. 2
2 系统总体方案设计 . ............................................................................................. 2
2.1 系统方案 ....................................................................... 2
2.2 单片机选择 ..................................................................... 3
2.3 时钟芯片选择 ................................................................... 3
2.4 温度传感器选择 ................................................. 错误!未定义书签。
2.5 测速传感器选择 ................................................. 错误!未定义书签。
2.6 显示器选择 ..................................................... 错误!未定义书签。
3 系统硬件设计 ................................................................................................... 5
3.1 单片机外围电路设计.............................................. 错误!未定义书签。
3.1.1 单片机介绍 ................................................................. 5
3.1.2 单片机外围电路图............................................ 错误!未定义书签。
3.1.3时钟电路的设计 .............................................. 错误!未定义书签。
3.1.4复位电路的设计 .............................................. 错误!未定义书签。
3.2时钟模版的设计 .................................................. 错误!未定义书签。
3.2.1 时钟芯片介绍 ............................................... 错误!未定义书签。
3.2.2 DS1302硬件连接图 ........................................... 错误!未定义书签。
3.3 温度模块设计 ................................................... 错误!未定义书签。
3.3.1 温度传感器介绍.............................................. 错误!未定义书签。
3.3.2 DS18B20硬件连接图 .......................................... 错误!未定义书签。
3.4 速度模块设计 ................................................... 错误!未定义书签。
3.4.1 霍尔简介 ................................................................... 9
3.4.2 霍尔传感器的测温原理 ........................................................ 9
3.5 显示模块设计 ................................................... 错误!未定义书签。
3.5.1 LCD芯片介绍 ................................................ 错误!未定义书签。
3.5.2 LCD硬件连接图 .............................................. 错误!未定义书签。
3.6 主电路图 ....................................................... 错误!未定义书签。
4 软件设计........................................................................................................ 12
4.1 主程序设计 .................................................................... 12
4.2 计算速度里程程序设计 . .......................................................... 12
4.3 温度显示程序设计................................................ 错误!未定义书签。
4.4 时钟芯片程序设计................................................ 错误!未定义书签。
5 系统调试........................................................................................................ 15
5.1 Proteus软件简介 ............................................................... 15
5.2 Proteus软件仿真 ............................................................... 15
5.3 测速电路调试 .................................................................. 15
5.3.1硬件调试 . .................................................................. 15
5.3.2 软件调试 .................................................................. 16
结束语 ............................................................................ 20
参考文献 .......................................................................... 21
附录 . ............................................................................. 22
1 绪论
1.1 课题研究的目的和意义
自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与
研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目
的也从最早的交通代步的工具转换成休闲娱乐运动的用途。
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是
成为人们娱乐、休闲、锻炼的首选。因此,人们希望自行车的功用更强大,能给人们带
来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅
速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测
量骑车人的心跳、显示骑车人热量消耗等功能。本设计采用了MCS-51系列单片机设计
一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走
的距离及运行的速度。
1.2 课题的发展概况
随着微型计算机可靠性提高和价格下降,用单片机测量电机转速技术已经成熟,但
是这种技术目前主要还是用于工业生产方面,测速装置用于生活中还是少之又少。欲提
高测量精度,必须先测出准确的转速,而原先在可控硅调速电路中采用的测速发电机方
式已不能满足要求,必须采用数字测速的方法。转速的测量方法很多,根据脉冲计数来
实现转速测量的方法主要有M 法(测频法)、T 法(测周期法)和MPT 法(频率周期法),
该系统采用了M 法(测频法)。转速检测方式采用霍尔脉冲法测量转速有两种简单的方
式。本设计采用频率法,检测的是输入脉冲数,这种方式又称频率法。它测出一定时间
内外界所输入的脉冲的个数。在控制系统中占有非常重要的地位。对测速装置的要求是
分辨能力强、高精度和尽可能短的检测时间。所设计的基于霍尔元件的脉冲发生器要求
具有成本低、结构简单、使用方便、性能好等特点。
由于需要采用霍尔传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该
器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与
上述几个市场相比,因此霍尔传感器在全球总的市场份额是较为稳定的,因为各种应用
电机的部件、节气门位置的检测、各种阀体位置的检测、或者电磁感应的位置都会用到
霍尔传感器。
国内外现在已经有生产销售类似的自行车测速仪里程表,有些简单的产品功能比较
单一,就是单单只有测速或里程的功能,然而一些复杂的产品除了测速和里程功能外,
还集成了GPS 全球定位、单次行车里程、平均速度、时钟、行车时间、车轮转数。
1.3 研究的主要内容
本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED 数码管实时显示
里程和速度的自行车的速度里程表。本文主要介绍了自行车的速度里程表的设计思想、
电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。
本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继
而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显
示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的
设计、显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析,对本
次设计进行了系统的总结。
本设计的具体要求如下:
(1) 对自行车进行实时速度的测量,显示出速度值。
(2) 能够计算单次使用自行车的路程。
(3) 能测量出当前环境的温度,以供使用者决定是否适宜进行运动。
2 系统总体方案设计
2.1 方案选取
方案一:霍尔传感器测量方案
霍尔传感器是利用霍尔效应进行工作的?其核心元件是根据霍尔效应原理制成的
霍尔元件。本文介绍一种泵驱动轴的转速采用霍尔转速传感器测量。霍尔转速传感器的
结构原理图如图3.1, 霍尔转速传感器的接线图如图3.2 。
传感器的定子上有2 个互相垂直的绕组A 和B, 在绕组的中心线上粘有霍尔片HA
和HB , 转子为永久磁钢, 霍尔元件HA 和HB 的激励电机分别与绕组A 和B 相连, 它们
的霍尔电极串联后作为传感器的输出。
图3.1 霍尔转速传感器的结构原理图
方案二: 光电传感器
整个测量系统的组成框图如图3.3所示。从图中可见, 转子由一直流调速电机驱动,
可实现大转速范围内的无级调速。转速信号由光电传感器拾取, 使用时应先在转子上做
好光电标记, 具体办法可以是:将转子表面擦干净后用黑漆(或黑色胶布) 全部涂黑, 再
将一块反光材料贴在其上作为光电标记, 然后将光电传感器(光电头) 固定在正对光电
标记的某一适当距离处。光电头采用低功耗高亮度LED , 光源为高可靠性可见红光, 无论
黑夜还是白天, 或是背景光强有大范围改变都不影响接收效果。光电头包含有前置电路,
输出0—5V 的脉冲信号。接到单片机89C51的相应管脚上,通过89C51内部定时/计时
器T0、T1及相应的程序设计,组成一个数字式转速测量系统。
2.2.1系统工作原理
转速是工程上一个常用的参数,旋转体的转速常以每分钟的转数来表示。其单位为
r /min 。由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号,送至单
片机STC89C51的计数器 T0进行计数,用T1定时测出电动机的实际转速。此系统使用
单片机进行测速,采用脉冲计数法,使用霍尔传感器获得脉冲信号。其机械结构也可以
做得较为简单,只要在转轴的圆盘上粘上两粒磁钢,让霍尔传感器靠近磁钢,机轴每转
一周,产生两个脉冲,机轴旋转时,就会产生连续的脉冲信号输出。由霍尔器件电路部
分输出,成为转速计数器的计数脉冲。控制计数时间,即可实现计数器的计数值对应机
轴的转速值。单片机CPU 将该数据处理后,通过LED 显示出来。
2.2 单片机选择
单片机普遍认为是在一块硅片上集成了中央处理器、存储器和各种输入、输出接
口,这样的一块芯片具有一台计算机的功能,因而被称为单片微型计算机。系统所使用
的是通用型单片机,它可以把可开发资源全部提供给使用者。
单片机普遍认为是在一块硅片上集成了中央处理器、存储器和各种输入、输出接口,
这样的一块芯片具有一台计算机的功能,因而被称为单片微型计算机。
宏晶科技是新一代增强型8位单片微型计算机标准的制定者和领导厂商宏晶科技是
新一代增强型8位单片微型计算机标准的制定者和领导厂商。STC 系列的单片机现在在
中国的51单片机市场上占有较大比例。STC MCU 性能特点在于:89C 系列:最高工作频
率80M ,FLASH 程序储存4K-64K ,RAM 数据储存512B -1280B ,内部集成EEPROM 2K -16K
及看门狗和专用复位电路,带A/D功能。STC 系列:单时钟/机器周期。超小封装。2-4
路PWM ,8-10位高速A/D转换。FLASH 程序储存512B -12K ,RAM 数据储存256B -512B ,
集成1K 的EEPROM 及硬件WDT ,产品都有为低功耗且有ISP 和IAP 功能,强抗干扰和降
低EMI 性能。
3 系统硬件设计
3.1电源电路设计
单片机正常工作电压为5V ,因此设计的电源电路主要是提供单片机工作电压。图
3.1是为单片机提供电压的电源电路。在这个电路中采用了三端集成稳压器LM7805,
可以输出5V 的直流电压以供给单片机。
图3.1 电源电路图
三端集成稳压器LM7805,总共有三条引脚,分别是输入端、接地端和输出端。用
LM78\LM79系列三端稳压器来组成稳压电源所需的外围元件极少,电路内部还有过流、
过热及调整管的保护电路,使用起来可靠、方便。
3.2 89C51单片机及相关电路
3.2.1 单片机介绍
AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM ,
32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工
串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz 的静态逻辑操作,
并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM ,定
时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振
荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
与MCS-51 兼容 、
·4K字节可编程FLASH 存储器
·寿命:1000写/擦循环
·数据保留时间:10年
·全静态工作:0Hz-24MHz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器、5个中断源
·可编程串行通道、低功耗的闲置和掉电模式
·片内振荡器和时钟电路。
3.1.2晶振电路
电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和
抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控
制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。
图3.3是单片机的晶振电路。片内电路与片外器件就构成一个时钟产生电路,CPU
的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般
多在1.2MHz ~24MHz 之间选取。C1、C2是反馈电容,其值在20pF ~100pF 之间选取,典
型值为30pF 。本电路选用的电容为30pF ,晶振频率为12MHz 。 振荡周期=1μs ;
机器周期S m =1μs
指令周期=1~4μs 。
XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。在单片机内部,接至上
述振荡器的反相放大器的输出端。采用外部振荡器时,对 HMOS 单片机,该引脚接外部
振。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机
械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动
的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振
幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也
称谐振频率。石英晶振起振后要能在XTAL2线上输出一个3V 左右的正弦波,以便使
MCS-51片内的OSC 电路按石英晶振相同频率自激振荡。通常,OSC 的输出时钟频率fOSC
为0.5MHz-16MHz ,典型值为12MHz 或者11.0592MHz 。电容C1和C2可以帮助起振,典
型值为30pF ,调节它们可以达到微调fOSC 的目的。
图3.3 单片机晶振电路图
3.2.3复位电路
复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上
加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H ,然后继续从0000H
单元开始执行程序。在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信
号。但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,
以防在按键过程中引起的抖动而影响复位。图3.4所示的 RC 复位电路可以实现上述基
本功能。
图3.4 复位电路图
3.3显示电路
本方案采用128X64进行转速的显示,带中文字库的128X64是一种具有4位/8位并
行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液
晶显示模块; 也可完成图形显示. 低电压低功耗是其又一显著特点。由该模块构成的液
晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要
简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块12864是图形点阵,可以
显示图形和汉字也可以同时显示字母和阿拉伯数字。
3.4霍尔简介
根据霍尔效应,人们用半导体材料制成的元件叫霍尔元件。该芯片具有尺寸小、稳
定性好、灵敏度高等特点。A3144E 系列单极高温霍尔效应集成传感器是由稳压电源,霍
尔电压发生器,差分放大器,施密特触发器和输出放大器组成的磁敏传感电路,其输入
为磁感应强度,输出是一个数字电压讯号。它是一种单磁极工作的磁敏电路,适用于矩
形或者柱形磁体下工作。可应用于汽车工业和军事工程中。
3.4.1 霍尔传感器
霍尔传感器是利用霍尔效应制成的一种磁敏传感器。在置于磁场中的导体或半导体
通入电流I ,若电流垂直磁场B ,则在与磁场和电流都垂直的方向上会出现一个电势差
Uh ,这种现象称为霍尔效应。利用霍尔效应制成的元件称为霍尔元件。因为它具有结构
简单、频率响应宽、灵敏度高、测量线性范围大、抗干扰能力强以及体积小、使用寿命
长等一系列特点,因此被广泛应用于测量、自动控制及信息处理等领域。霍尔效应原理
图如图3.8所示。
图3.8 霍尔效应原理图
A44E 集成霍尔开关由稳压器A 、霍尔电势发生器(即硅霍尔片)B 、差分放大器 C、
施密特触发器D 和OC 门输出E 五个基本部分组成,如图2.5(a )所示。(1)、(2)、(3)
代表集成霍尔开关的三个引出端点。在电源端加电压Vcc ,经稳压器稳压后加在霍尔电
势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通
以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH 输出,该VH 信号经放大器
放大后送至施密特触发器整形,使其成为方波输送到OC 门输出。当施加的磁场达到工
作点时,触发器输出高电压(相对于地电位) ,使三极管导通,此时OC 门输出端输出低
电压,通常称这种状态为开 。当施加的磁场达到释放点时,触发器输出低电压,三极
管截止,使OC 门输出高电压,这种状态为关 。这样两次电压变换,使霍尔开关完成了
一次开关动作。工作点与释放点的差值一定,此差值称为磁滞,在此差值内,V0保持不
变,因而使开关输出稳定可靠,这也就是集电成霍尔开关传感器优良特性之一。传感器
主要特性是它的输出特性,即输入磁感应强度B 与输出电压V0之间的关系。A44E 集成
霍尔开关是单稳态型,由测量数据作出的输出特性曲线如图 2.5(b)所示。测量时,在1、
2两端加5V 直流电压, 在输出端3与1之间接一个2k 的负载电阻,如图3.9所示。
图3.9集成开关型霍尔传感器
3.5 显示屏选择
由于设计中的需显示英文字符,且显示的数据比较多,所以不宜采用数码管显示。而应
该采用液晶屏显示,现在液晶显示屏种类繁多,12864、1602、MLO16L 等都是常用的液
晶显示屏。
4 软件设计
4.1 主程序设计
主程序主要完成系统初始化操作及各个子程序之间的联系任务,主程序是无限循
环,主要的功能是完成单片机初始化,开关中断,控制定时器等。
信号的采集处理计算过程都是在中断服务程序中执行。
4.2 计算速度里程程序设计
当单片机获取霍尔到传感器所感应的脉冲个数时,不能立马算出自行车的速度和里
程,要经过数学计算后才能得出,系统中所默认车轮的直径为2.2m ,使用者是可以根据
自己的自行车直径更改程序里的数据。但是由于理论知识水平有限,没能成功设计有外
界输入设定使用者的自行车车轮的直径数。本设计根据单片机每秒钟接收的脉冲个数来
计算自行车的速度。再将每秒的速度相加,就可得出自行车的里程。在Proteus 上仿真
得到的结果与计算结果完全相同。
程序设计流程图如图4.2所示
图4.2计算速度里程流程图
4.3 电路原理图
5 系统调试
5.1 Proteus软件简介
Proteus 软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流
和直流等数千种元器件和多达30多个元件库。Proteus 软件提供多种现实存在的虚拟仪
器仪表。此外,Proteus 还提供图形显示功能,可以将线路上变化的信号,以图形的方
式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极
低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus 软件提供丰富的测试信号
用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、
SPICE 仿真与PCB 设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR 、
PIC 等常用的MCU ,并提供周边设备的仿真,例如LED 、示波器等。Proteus
的元件库,有RAM 、ROM 、键盘、马达、LED 、LCD 、AD/DA、部分SPI 器
件,编译方面支持Keil 和MPLAB 一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立
一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用
系统等课程,并进行电路设计、仿真、调试等. 。
5.2 Proteus软件仿真
原理图是在原理图编辑窗口中的蓝色方框内绘制完成的,通过文件中的新建设计选
项,可以调整原理图设计页面大小。绘制原理图时首先应根据需要选取元器件,Proteus
库中提供了大量元器件原理图符号,利用Proteus 的搜索功能能很方便地查找需要的元
器件。
首先根据需要选择器件。单击元器件列表窗口上边的按钮P ,弹出元器件选择窗口。
在该窗口左上方的关键字栏内键入AT89C51,窗口中间的结果栏将显示出元器件库中所
有AT89C51单片机芯片,选择其中的AT89C51,窗口右上方将显示出AT89C51图形符号,
同时显示该器件的虚拟仿真模型,单击确定按钮后,AT89C51将出现在器件列表窗口。
照此方法选择所有需要的元器件。
器件选择完毕后,就可以开始绘制原理图。先用鼠标从器件选择窗口选中需要的器
件,预览窗口将出现该器件的图标。放置电源和地线端时,要从终端按钮栏中选取。
5.3 测速电路调试
5.3.1硬件调试
(1) 排除逻辑故障
显示器部分调试为了使调试顺利进行,首先将单片机与LCD 显示分离,这样就可以
用静态方法先测试LCD 显示,用规定的电平加至位显示的引脚,看显示是否与理论上一
致。不一致,一般为LCD 显示器接触不良所致,必须找出故障,检测单片机电路工作是
否正常。对单片机进行编程调试时,分为两个步骤:第一,对其进行初始化。第二,将
单片机与LCD 结合起来,借助开发机,通过编制程序进行调试。若调试通过后,就可以
编制应用程序了。对于一些逻辑故障来说,这类故障往往是由于设计和焊接过程中的失
误所造成的。主要包括错线、开路、短路。排除的方法是首先将焊接好的电路板认真对
照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,
并重点检查系统总线是否存在相互之间短路或与其它信号线路短路。必要时利用数字万
用表的短路测试功能,可以缩短排错时间。
(2) 排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了另一个是由于安装错
误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在
保证安装无误后,用替换方法排除错误。
(3) 排除电源故障
在通电前,一定要检查电源电压的幅值和极性,否则很容易造成元件损坏。加电后
检查各插件上引脚的电位,一般先检查VCC 与GND 之间电位,若在5V ~4.8V 之间属正
常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的元件发
热损坏。
(4) 模块化检测
在LCD 能够正常显示之后,分别对单片机的最小系统,DS18B20模块,DS1302模块
及速度模块分别进行调试检测
5.3.2 软件调试
(1)proteus 仿真软件调试
首先,编程时应采用模块化编程,将各个模块所应实现的功能编写子程序。然后对
各个子程序进行检测,直到各个模块功能能够正常工作为止。然后在proteus 中进行仿
真,直到仿真正常,则可以进行硬件电路焊接。
(2)硬件电路中的软件调试
即使仿真结果正常,只是说明程序基本无误。但是应用在实际硬件电路中却不一定
能够正常工作,比如DS18B20温度传感器对时序要求很高,所以调试DS18B20是难点所
在。在调试DS18B20时应根据LCD 的显示状态修改程序。
西安航空职业技术学院 基于单片机自行车测速仪
结束语
系统的设计与制作工作已经全部完成,基本达到和满足了预期的目的和要求。系统的调试与仿真结果基本符合设计要求。动态显示、显示内容的实时更新等方面达到预期的目标,但是由于时间仓促、条件有限,设计结果还存在一些缺陷,还存在诸如:显示内容的单一、数据波动、抗干扰能力差、霍尔传感器的精度差、人性化设计不全面等等。通过此次毕业设计,学到了许多以前不了解的知识,积累了不少宝贵的经验。
从选题到现在已经有半年的时间了,这个设计主要经历了以下几个过程:广泛查阅资料、文献综述、总体思路的确定、方案的确定、设计制板及硬件电路的完成、软件的调试、系统的调试、还包括设计说明书的定稿,我认为整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了基础。在整个过程中,本人不仅对单片机控制系统的每一个细节有了比较深入的掌握,而且对关于系统扩展的相关知识有了感性的认识,不仅掌握了大量的专业知识,更学会了系统模块化设计的基本思想。感谢老师。王老师认真的治学态度让我由衷的钦佩。这段时间来,在王老师的教诲和悉心指导下圆满地完成了毕业设计。不仅学习到了很多有用知识,而且懂得了许多做人的道理,相信这些对于以后的工作生活是大有裨益的。设计是在导师的认真关怀和指导下完成的,在论文的选题、展开到论文的形成,导师也给予了充分的关心并倾注了大量的心血。在此向导师致以最崇高的敬意和最衷心的感谢。
参考文献
[1] 楼然苗.51系列单片机设计实例[M].北京航空航天大学出版社,2003.3
[2] 何立民. 单片机高级教程-应用与设计[M].北京航空航天大学出版社,2007.1
[3] 童诗白,华成英.模拟电子技术基础[第四版][M].高等教育出版社,2001.1
[4] 胡汉才. 单片机原理及接口技术[M].北京:清华大学出版社,1999
[5] 樊尚春. 传感器技术及应用[M].北京航空航天大学出版社,2004.8
[6] 潘永雄. 新编单片机原理与应用[M].西安:西安电子科技大学出版社,2003
[7] 李学礼. 基于Proteus 的8051单片机实例教程[M].北京:电子工业出版社,2008
[8] 李 华. 单片机通用接口技术[M].北京:北京航空航天大学出版社,1999
[9] 陈伯时. 电力拖动自动控制系统[M].北京:机械工业出版社,2003:103-107
[10] 李全利. 单片机原理及应用技术[M].北京: 高等教育出版社,2004.
[11] 楼然苗,李光飞. 51系列单片机设计实例[M]. 北京航空航天大学出版社,2006.
附录 主程序
$INCLUDE (REG52.INC)
DISPBUF EQU 59H ;显示缓冲区从5AH 开始
SecCoun EQU 58H
SpCoun EQU 56H ;速度计时器单元57H 和58H ,高位在前(57H 单 元中)
Count EQU 55H; 显示时的计数器
SpCalc bit 00h ;要求计算速度的标志,该位为1则主程序进行
速度计算,然后清该位
Hidden EQU 16 ;消隐码
ORG 0000H
AJMP START
ORG 1BH
JMP TIMER1 ;定时中断1入口
ORG 30H
START: MOV SP,#5FH ;设置堆栈
MOV P1,#0FFH
MOV P0,#0FFH
MOV P2,#0FFH ;初始化,所有显示器、LED 灭
MOV TMOD,#00010101B ;定时器T1工作于方式1,定时器0工作方式1, 计数器
MOV TH1,#HIGH(65536-3686)
MOV TL1,#LOW(65536-3686)
SETB TR1
SETB ET1 ;开定时器1中断
SETB EA
LOOP: JNB SpCalc,LOOP ;如果未要求计算,转本身循环
; 标号: MULD 功能:双字节二进制无符号数乘法
; 入口条件:被乘数在R2、R3中,乘数在R6、R7中。
; 出口信息:乘积在R2、R3、R4、R5中。
; 影响资源:PSW 、A 、B 、R2~R7 堆栈需求: 2字节
MOV R2,SpCoun
MOV R3,SpCoun+1
MOV R6,#0
MOV R7,#5 ;测得的数值是每秒计数值,转为分(每一转测
12次,故乘5而非60)
CALL MULD
SEND: MOV SBUF,R2
SLP1: JBC TI,SN1 ;是否送完?
AJMP SLP1
SN1: MOV SBUF,R3
SLP2: JBC TI,SN2
AJMP SLP2
SN2: MOV SBUF,R4
SLP3: JBC TI,SN3
AJMP SLP3
SN3: MOV SBUF,R5
SLP4: JBC TI,SN4
AJMP SLP4
SN4:
; 标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数 ; 入口条件:待转换的双字节十六进制整数在R6、R7中。
; 出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
; 影响资源:PSW 、A 、R2~R7 堆栈需求: 2字节
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A ;将乘得的结果送R6R7准备转换,这里结果不可能超过2 字节
CALL HB2
MOV DISPBUF,R3 ;最高位
MOV A,R4 ;
ANL A,#0F0H ;去掉低4位
SWAP A ;将高4位切换到低4位
MOV DISPBUF+1,A
MOV A,R4
ANL A,#0FH
MOV DISPBUF+2,A
MOV A,R5
ANL A,#0F0H
SWAP A
MOV DISPBUF+3,A
MOV A,R5
ANL A,#0FH
MOV DISPBUF+4,A
CLR SpCalc ;清计算标志
JMP LOOP