资源描述
摘 要
伴随居民生活水平不停提升,大家对于生活质量要求也日益增加,尤其是对健身要求。自行车不再仅仅是一般运输、代步工具,而是成为大家娱乐、休闲、锻炼首选。自行车速度里程表能够满足大家最基础需求,让大家能清楚地知道目前速度、里程等物理量。而对于自行车运动员来说,最为关心莫过于一段时间内训练效果。因为教练要依据一段时间内运动员训练效果进行评定,从而进行合适调整已使运动员达成最好状态。所以爱好自行车运感人十分学要一款能测速装置,以知道自己运动情况。并依据外界条件,如温度,风速等进行合适调整,已达成最好运动效果。
关键词:单片机、LED显示、里程/速度、霍尔元件
第一章系统总方案分析和设计
1.1 课题关键任务及内容
本课题关键任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度自行车速度里程表。本文关键介绍了自行车速度里程表设计思想、电路原理、方案论证和元件选择等内容,整体上分为硬件部分设计和软件部分设计。
本文首先扼要对该课题任务进行方案论证,包含硬件方案和软件方案设计;继而具体介绍了自行车速度里程表硬件设计,包含传感器选择、单片机选择、显示电路设计;然后叙述了该自行车速度里程表软件设计,包含数据处理子程序设计、显示子程序设计;最终对此次设计进行了系统总结。
具体硬件电路包含AT89C52单片机、霍尔元件和LED显示电路等。
软件设计包含:中止子程序设计,里程计算子程序设计,显示子程序设计。软件采取汇编语言编写,软件设计思想关键是自顶向下,模块化设计,各个子模块逐一设计。
1.2 任务分析和实现
本设计任务是:以通用AT89C52单片机为处理关键,用传感器将车轮转数转换为电脉冲,进行处理后送入单片机。里程及速度测量,是经过AT89C52定时/计数器测出总脉冲数和每转一圈时间,再经过单片机计算得出,其结果经过LED显示器显示出来。
本系统总体思绪以下:假定轮圈周长为L,在轮圈上安装m个永久磁铁,则测得里程值最大误差为L/m。经综合分析,本设计中取m=1。当轮子每转一圈,经过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中止0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中止。每次中止代表车轮转动一圈,中止数n和周长L乘积为里程值。计数器T1计算每转一圈所用时间t,就能够计算出即时速度v。当里程键按下时,里程指示灯亮,LED切换显示目前里程;当速度键按下时,速度指示灯亮,LED切换显示目前速度。
要求达成各项指标及实现方法以下:
1. 利用霍尔传感器产生里程数脉冲信号。
2. 对脉冲信号进行计数。
实现:利用单片机自带计数器T1对霍尔传感器脉冲信号进行计数。
3. 对数据进行处理,要求用LED显示里程总数和即时速度。
实现:利用软件编程,对数据进行处理得到需要数值。
最终实现目标:自行车速度里程表含有里程、速度测试和显示功效,采取单片机作控制,显示电路可显示里程及速度。
第二章系统关键单元模块和速度算法概述
2.1 传感器选型
方案一、光电传感器。
光电传感器是应用很广泛一个器件,多种多样形式,如透射式、反射式等,基础原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,图2-1所表示,当不透光物体挡住发射和接收之间间隙时,开关管关断,不然打开。为此能够制作一个遮光叶片图2-2所表示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周能够取得多个脉冲信号。
图2-1 光电传感器原理图
图2-2 遮光叶片
将光敏电阻安装在自行车前又一侧,在相同高度另一侧安上一个高亮度发光二极管。在相同高度辐条上贴上一圈黑色材料,并在黑色材料上打上等间距小孔,这么当小孔经过光敏电阻时,光敏电阻依据光电流改变发出脉冲, 从而测量里程。
方案二、光电编码器
光电编码器工作原理和光电传感器一样,不过它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器轴和转轴相连,就能取得多个输出信号。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度装置和设备中。
将旋转编码器安装在车轴上,这么每当车轮转过一定距离编码器就会发出一个脉冲。利用脉冲数对里程进行测量。
方案三、霍尔传感器
霍尔传感器是对磁敏感传感元件,常见于开关信号采集有CS3020、CS3040、A04E等,这种传感器是一个3端器件,外形和三极管相同,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用很方便。
图2-3 霍尔元件和磁钢实际图
使用霍尔传感器取得脉冲信号,其机械结构也能够做得较为简单,只要在转轴圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不停地产生脉冲信号输出。假如在圆周上粘上多粒磁钢,能够实现旋转一周,取得多个脉冲输出, 单片机依据脉冲数来计算里程。霍尔元件和磁钢图2-3所表示。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前能够先手动靠近一下传感器,假如没有信号输出,能够换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。
光敏电阻对光尤其敏感,当白天行驶时,外界光敏电阻对光尤其敏感,当白天行驶时,外界光源造成光敏电阻发犯错误信号;光敏电阻对环境要求相当高,假如光敏电阻或发光二极管被泥沙或灰尘所覆盖,光敏电阻就不能再进行测量;在雾天和雨天光敏电阻测量效果也不好。而编码器必需安装在车轴上,这么安装就会给用户带来很多不便。霍尔元件不受天气影响,即便被泥沙或灰尘覆盖对测量也不会有任何影响。由霍尔元件加整形电路组成霍尔开关系统,含有输出响应快,数字脉冲性能好,安装方便,性能可靠,不受光线、泥水等原因影响,价格廉价优点。所以本设计采取方案三霍尔传感器。
2.2 单片机选型
本设计用89C52单片机设计自行车里程/速度计。AT89C52是51系列单片机一个型号,它是ATMEL企业生产。 一个低电压,高性能CMOS 8位单片机,片内含8k bytes可反复擦写Flash只读程序存放器和256 bytes随机存取数据存放器(RAM),器件采取ATMEL企业高密度、非易失性存放技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存放单元,功效强大AT89C52单片机可为您提供很多较复杂系统控制应用场所。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中止口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52能够根据常规方法进行编程,但不能够在线编程(S系列才支持在线编程)。其将通用微处理器和Flash存放器结合在一起,尤其是可反复擦写Flash存放器可有效地降低开发成本
2.3 显示模块选型
单片机系统中常见显示器有:发光二极管LED显示器、液晶LCD显示器等。在这里因为单片机测速系统比较简单,所以只考虑LED显示器和LCD显示器。LED显示器工作方法有两种静态显示方法和动态显示方法。
方案一 LED静态显示器:静态显示特点是每个数码管段选必需接一个8位数据线来保持显示字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。LED动态显示器:动态显示特点是将全部位数码管段选线并联在一起,由位选线控制是哪一位数码管有效。这么一来,就没有必需每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采取动态扫描显示。所谓动态扫描显示即轮番向各位数码管送出字形码和对应位选,利用发光管余辉和人眼视觉暂留作用,使人感觉仿佛各位数码管同时全部在显示,给人印象就是一组稳定显示数据,不会有闪烁感。动态显示亮度比静态显示要差部分,所以在选择限流电阻时应略小于静态显示电路中。
方案二 用液晶显示器LCD显示信息。
LCD显示器工作原理就是利用液晶物理特征;通电时排列变得有序,使光线轻易经过;不通电时排列混乱,阻止光线经过,说简单点就是让液晶如闸门般地阻隔或让光线穿透。 LCD好处有:和CRT显示器相比,LCD优点关键包含零辐射、低功耗、散热小、体积小、图像还原正确、字符显示锐利等。
LED背光源技术能够大幅度提升电视画面对比度和色彩表现力,同时含有节能环境保护等很多优点,势必成为未来电子显示技术发展趋势。LED技术含有很显著三大优势。第一,它显示色彩愈加丰富,色彩数量可超出现在传统CCFL冷阴极荧光管背光灯1倍以上;第二,LED背光源亮度能够伴随画面亮度进行主动调整,可节能30%以上;第三,LED背光源不含铅和汞等有毒有害物质,是真正绿色环境保护光源。本课题选择LED动态显示器。
2.4 算法概述
假定轮圈周长为L,在轮圈上安装m个永久磁铁,则测得里程值最大误差为L/m。经综合分析,本设计中取m=1。当轮子每转一圈,经过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中止0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中止。每次中止代表车轮转动一圈,中止数n和周长L乘积为里程值。计数器T1计算每转一圈所用时间t,就能够计算出即时速度v。
第三章系统硬件设计
3.1 单片机主控电路
3.1.1 单片机概述
单片机就是在一块半导体硅片上集成了微处理器(CPU),存放器(RAM,ROM,EPROM)和多种输入、输出接口(定时器 /计数器,并行I/O口,串行口,A/D转换器和脉宽调制器PWM等),这么一块集成电路芯片含有一台计算机属性,所以被称为单片微型计算机,简称单片机。
单片机是此次设计关键部件,它是信号从采集到输出桥梁,而且包含计算、定时、信息处理等功效。现在,单片机被广泛应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子和航空航天器电子系统和单片机多机系统等领域。在设计中选择是AT89C52单片机。
单片机因为将CPU、内存和部分必需接口集成到一个芯片上,而且面向控制功效将结构作了一定优化,所以它有通常芯片不含有特点:
1. 体积小、重量轻;
2. 电源单一、功耗低;
3. 功效强、价格低;
4. 全部集成在一块芯片上,布线短、合理;
本设计用89C52单片机设计自行车里程/速度计。AT89C52是51系列单片机一个型号,它是ATMEL企业生产。 一个低电压,高性能CMOS 8位单片机,片内含8k bytes可反复擦写Flash只读程序存放器和256 bytes随机存取数据存放器(RAM),器件采取ATMEL企业高密度、非易失性存放技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存放单元,功效强大AT89C52单片机可为您提供很多较复杂系统控制应用场所。 (背景色)
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中止口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52能够根据常规方法进行编程,但不能够在线编程(S系列才支持在线编程)。其将通用微处理器和Flash存放器结合在一起,尤其是可反复擦写Flash存放器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不一样产品需求。
本设计选择AT89C52单片机,AT89C52是一个低功耗、高性能CMOS 8位微控制器。使用Atmel 企业高密度非易失性存放器技术制造,可和工业AT89C51 产品指令和引脚完全兼容。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes可反复擦写Flash只读程序存放器和256 bytes随机存取数据存放器(RAM),器件采取ATMEL企业高密度、非易失性存放技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存放单元,AT89C52单片机在电子行业中有着广泛应用。
关键功效特征
1、兼容MCS51指令系统
2、8k可反复擦写(大于1000次)Flash ROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器;
6、时钟频率0-24MHz;
7、2个串行中止,可编程UART串行通道;
8、2个外部中止源,共5个中止源;
9、2个读写中止口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功效;
11、有PDIP、PQFP、TQFP及PLCC等多个封装形式,以适应不一样产品需求。
单片机内部结构示意图图3-1所表示。
定时/计数器
中止系统
CPU
存放器
并行I/O口
串口I/O口
TXD TXD
RXD
T
INT
P0-P3
图3-1
3.1.2 单片机引脚功效介绍
AT89C52是美国ATMEL企业生产低电压,高性能CMOS 8位单片机,片内含8K Bytes可反复擦写只读程序存放器(EPROM)和256 字节随机存取数据存放器(RAM),器件采取ATMEL企业高密度、非易失性存放技术生产,和标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存放单元,功效强大,AT89C52单片机适合于很多较为复杂控制场所应用。
图3-2 AT89C52引脚图
AT89C52提供以下标准功效:8K字节Flash闪速存放器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,5个中止源,一个全双工串行通信口,片内含有振荡器立即钟电路。AT89C52管脚图图2.3所表示。
AT89C2051芯片20个引脚功效为:
1. Vcc:电源电压。
2. P1口:P1口是一8位双向I/O口。P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器同相输入(AIN0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当P1口引脚写入“1”时,其可用作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部上拉电阻而流出电流(IIL)。 P1口还在闪速编程和程序校验期间接收代码数据。
3. P3口:P3口P3.0~P3.5、P3.7是带有内部上拉电阻七个双向I/0引脚。P3.6用于固定输入片内比较器输出信号而且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。用作输入时,被外部拉低P3口引脚将用上拉电阻而流出电流(IIL)。 P3口还用于实现AT89C2051多种功效,以下表3-3所表示。P3口还接收部分用于闪速存放器编程和程序校验控制信号。
4. RST:复位输入。RST一旦变成高电平,全部I/O引脚就复位到“1”。当振荡器正在运行时,连续给出RST引脚两个机器周期高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。
5. XTAL1:作为振荡器反相放大器输入和内部时钟发生器输入。
6. XTAL2:作为振荡器反相放大器输出。
表3-3 P3口功效
P3口引脚
功效
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
RXD(串行输入端口)
TXD(串行输出端口)
INT0(外中止0)
INT1(外中止1)
TO(定时器0外部输入)
T1(定时器1外部输入)
3.1.3 单片机中止系统介绍
中止是指当计算机实施正常程序时,系统中出现一些急需处理事件,CPU临时中止目前途序,转去实施服务程序,以对发生更紧迫事件进行处理,待处理结束后,CPU自动返回原来程序实施AT89C52系列单片机系统有5个中止源,2个优先级,可实现二级中止服务嵌套。由片内特殊功效寄存器中中止许可寄存器IE控制CPU是否响应中止请求;由中止优先级寄存器IP安排各优中止源优先级;同一优先级内各终端同时提出中止请求时,由内部查询逻辑确定其响应次序。
采取外部中止方法包含外部中止0和外部中止1,它们中止请求信号分别由单片机引脚/P3.2和/P3.3输入。
外部中止请求有两种信号方法:电平触发方法和脉冲触发方法。电平触发方法中止请求是低电平有效。只要在和引脚上出现有效低电平时,就激活外部中止方法。脉冲触发方法中止请求则是脉冲负跳变有效。在这种方法下,在两个相邻机器周期内,和 引脚电平发生改变,即在第一个机器周期内为高电平,第二个机器周期内为低电平,就激活外部中止。由此可见,在脉冲方法下,中止请求信号高电平和低电平状态全部应最少维持一个机器周期,以使CPU采样到电平状态改变,此次设计所采取触发方法为脉冲触发方法。
3.1.4 单片机定时器/计数器功效介绍
AT89C52单片机定时器/计数器工作由两个特殊功效寄存器控制。TMOD用于设置其工作方法;TCON用于控制其开启和中止请求。
1.工作方法寄存器TMOD
工作方法寄存器TMOD用于设置定时/计数器工作方法。
GATE:门控制。GATE=0时,只要用软件使TCON中TR0或TR1为1,就能够开启定时/计数器工作;GATE=1时,要用软件TR0或TR1为1,同时外部中止引脚或也为高电平时,才能开启定时/计数器工作。
C/:定时/计数模式选择位。C/=0为定时模式;C/=1时为计数模式。
M1M2:工作方法设置位。定时/计数器有4种工作方法,由M1M2进行设置。
此次设计TMOD为90H,即选通定时/计数器为1、定时功效、工作方法1.工作方法为16位定时/计数器。
2.控制寄存器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.2 霍尔传感器测温原理
在信号脉冲发生源上,本系统采取是开关型霍尔传感器。
以磁场作为媒介,利用霍尔传感器能够检测多个物理量,如位移、振动、转速、加速度、流量、电流、电功率等。它不仅能够实现非接触测量,而且采取永久磁铁产生磁场,不需附加能源。另外霍尔传感器尺寸小、价格廉价、应用电路简单、性能可靠,所以取得极为广泛应用。除了直接利用霍尔传感器外,还利用它开发出多种派生传感器。
金属或半导体薄片两个端面通以控制电流Ic,并在薄片垂直方向上施加磁感应强度为B磁场,则在垂直于电流和磁场方向上将产生电势Uh,称为霍尔电势或霍尔电压(图l所表示)。霍尔电势Uh=KhIcB(其中Kh为霍尔元件灵敏度,它和所用材料及几何尺寸相关)。这种现象称为霍尔效应,而用这种效应制成元件称为霍尔元件。因为霍尔元件输出电压信号较小,而且有一定温度误差,现在已较少直接使用霍尔元件作传感器。霍尔传感器原理图图3-4所表示。
图3-4 霍尔传感器磁场效应
本系统采取开关型霍尔传感器A04E。开关型霍尔传感器是一个集成传感器,它内部含有霍尔元件、放大器、稳压电源、带一定滞后特征比较器及集电极开路输出部分等,图3-5所表示。
图3-5 开关型霍尔传感器内部结构图
开关型霍尔传感器工作特征图3-6 所表示。
图3-6 开关型霍尔传感器工作特征
当外加磁感应强度超出动作点Bop时,传感器输出低电平,但磁感应强度降到动作点Bop以下时,传感器输出电平不变,一直要降到释放点BRE时,传感器才由低电平跃变为高电平。Bop和Bre之间滞后(或称为回差)使开关动作更为可靠。
图3-7 霍尔传感器检测转速示意图
霍尔传感器检测转速示意图3-7以下。在非磁材料圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘周围。圆盘每转动一圈霍尔传感器便输出一个脉冲。经过单片机测量产生脉冲频率,就能够得出圆盘转速。一样道理,依据圆盘(车轮)转速,再结合圆盘周长就是计算出物体位移。假如要增加测量位移精度,能够在圆盘(车轮)上多增加多个磁钢。
因为传感器内部为集电极开路输出,所以需外接一个上拉电阻,其阻值和电源电压大小相关,通常取1~2k,图3-8所表示。
图3-8 传感器输出电路
3.3 存放器电路
AT24C02是美国ATMEL企业低功耗CMOS串行EEPROM,它是内含256×8位存放空间,含有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。
AT24C021、2、3脚是三条地址线,用于确定芯片硬件地址。在AT89C2051试验开发板上它们全部接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据经过这条双向I2C总线串行传送,在AT89C2051试验开发板上和单片机P3.5连接。第6脚SCL为串行时钟输入线,在AT89C2051试验开发板上和单片机P3.6连接。SDA和SCL全部需要和正电源间各接一个5.1K电阻上拉。第7脚需要接地。
AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存放单元读写。全部字节均以单一操作方法读取。为降低总写入时间,一次操作可写入多达8个字节数据。
AT24C02是CMOS2048位串行E2PROM,在内部组织成256×8位。AT24C02特点是含有许可在简单二线总线上工作串行接口和软件协议。在本设计中用芯片AT24C02SDA端和单片机P3.7口相连,SCL端和单片机P3.5口相连。因为在这个I2C总线上只有一个器件,所以把AT24C02地址设为000,即把A0、A2、A3全部接地。单片机计算出来里程数据经过SDA、SCL向AT24C02输送数据。单片机首先向AT24C02发送写信号,当确定后从单片机内部数据储存单元提取数据然后向AT24C02内部地址传送数据。当显示里程时,单片机首先向AT24C02发送读信号,然后确定后,单片机从AT24C02内部地址向单片机读出单元字节读出数据,供显示所用。和单片机接口图3-9所表示。
图3-9 AT24CO2和单片机接口电路
3.4 74LS74芯片
此次设计中采取驱动数码管芯片为74LS244,74LS244为三态输出八位缓冲器和线驱动器,若单片机输出口直接接显示部分电路,则电流太小,会造成显示部分不能正常工作。所以在单片机输出口先接入驱动芯片74LS244,增大电流,使LED能够正常工作。其逻辑图图3-10所表示,能够看出74LS244由2组组成、每组由四路输入、输出组成。每组有一个控制端高或低电平决定该组数据被接通还是断开。
图3-10 74LS244逻辑图
74LS74是D触发器一个,它是一个含有记忆功效二进制信息存放器件,是组成多个时序电路最基础逻辑单元。触发器含有两个稳定状态,即“0”和“1”,在一定外界信号作用下,能够从一个稳定状态翻转到另一个稳定状态。因为其状态更新发生在CP脉冲边缘故又称之为上升沿触发边缘触发器,D触发器状态只取决于时针到来前D端状态。引脚图图3-11所表示。
图3-11 74LS74引脚图
在本题目中74LS74芯片起分频作用。当车轮每转一圈,霍尔传感器输出一个低电平脉冲,经过74LS74进行二分频后,定时器T1开启时间为车轮转1圈时间,这么就能够算出自行车速度。分频前后对比图图3-12所表示。
t
t
0
0
v
v
霍尔输出圈脉冲
二分频后波形
图3-12 分频前后对比图
由图可见,二分频后波形高或地电平时间恰好是霍尔传感器开关一个周期,霍尔传感器输出脉冲到,即P3.2口接收到对圈数计数脉冲。经74LS74二分频后信号输入到,内部定时计数器测得每转一圈所用时间,经过计算即可得里程值和即时速度。
3.5 时钟电路设计
时钟是单片机心脏,单片机各功效部件运行全部是以时钟频率为基准,有条不紊地一拍一拍地工作。所以,时钟频率直接影响单片机速度,时钟电路质量也直接影响单片机系统稳定性。AT89C52片内由一个反相放大器组成振荡器,能够由它产生时钟。常见时钟电路有两种方法,一个是内部时钟方法,另一个为外部时钟方法。本设计采取前者。
单片机内部有一个用于组成振荡器高增益反相放大器,该高增益反相放大器输入为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和电容,就组成一个稳定自激振荡器。单片机内部时钟方法振荡电路图3-13所表示。
图3-13单片机片内振荡电路
电路中电容C1和C2常选择为30PF左右。对外接电容值即使没有严格要求,但电容大小会影响振荡器高低、振荡器稳定性、起振快速性和温度稳定性。而外接晶体振荡频率大小,关键取决于单片机工作频率范围,每一个单片机全部有自己最大工作频率,外接晶体振荡频率小于单片机最大工作频率即可。另外,假如单片机有串行通信,则应该选择振荡频率除以串行通信频率能够除尽晶体。本设计晶振采取12MHz,故计数周期为1us。
3.6 复位电路设计
AT89C52单片机复位输入引脚RET为AT89C52提供了初始化手段。有了它能够使程序从指定处开始实施,即从程序存放器中0000H地址单元开始实施程序。在89C52时钟电路工作后,只要在RET引脚上出现两个机器周期以上高电平时,单片机内部则初始复位。只要RET保持高电平,则89C52循环复位。只有当RET由高电平变成低电平以后,89C52才从0000H地址开始实施程序。
本系统复位电路是采取按键复位电路,图3-14所表示,是常见复位电路之一。单片机复位经过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位;若运行过程中需要程序从头实施,只需按动按钮即可。按下按钮,则直接把+5V加到了RET/VPD端从而复位称为手动复位。复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。
图3-14 按键复位电路
工作原理:通电瞬间,RC电路充电,RST引脚出现高电平,只要RST端保持24ms以上高电平,就能使单片机有效地复位。
3.7 显示电路设计
本设计中采取LED数码管显示。在单片机系统中,通常见LED数码显示器来显示多种数字或符号。因为它含有显示清楚、亮度高、使用电压低、寿命长特点,所以使用很广泛。八段LED显示器由8个发光二极管组成。其中7个发光二极管组成字型“8”各个笔画段,另一个小数点为dp发光二极管。LED显示器有两种不一样形式:一个是发光二极管阳极全部连在一起,称之为共阳极LED显示器;另一个是发光二极管阴极全部连在一起,称之为共阴极LED显示器。图3-15所表示。此次设计采取共阴极接法。
LED显示方法有动态显示和静态显示两种方法。本系统采取动态扫描显示接口电路,动态显示接口电路是把全部显示器8个笔划段a-h同名端连在一起,而每一个显示器公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,全部显示器接收到相同字型码,但到底是哪个显示器亮,则取决于COM端。也就是说我们能够采取分时方法,轮番控制各个显示器COM端,使各个显示器轮番点亮。在轮番点亮扫描过程中,每位显示器点亮时间是极为短暂(约1ms),因为人视觉暂留现象及发光二极管余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描速度足够快,给人印象就是一组稳定显示数据,不会有闪烁感。
图3-15 七(八)段LED显示器
本设计P2.0、P2.1、P2.2、P2.3信号一起组成位选通位选信号,P0.0~P0.7信号一起组成段码选通段选信号,经过软件编程,先把所要显示数据放入存放单元,然后把数据送入段选通对应地址,再选通某一个LED,逐步完成四个LED显示。
第四章 系统软件设计
4.1 概述
在硬件设计完成以后,接下来就是设计中最关键和最为关键软件部分设计。所谓软件设计就是把软件需求变换成软件具体设计方案(即模块结构)过程。模块化结构设计即是依据要求和硬件设计结构,将整个系统功效分成很多小功效模块,再依据这些小功效模块进行程序编写过程。这么设计方法,使得系统整个功效和各部分功效趋于明朗化。当系统出现问题,就能够依据功效设置找出问题根源,从而愈加快地处理问题。所以说,在整个设计过程中,软件设计必需和硬件设计紧密地结合在一起。
基于霍尔传感器自行车速度里程表软件设计包含中止子程序、里程调用子程序、LED显示子程序等几大部分。因为要实现很多功效,所以采取模块化设计,下面就其关键部分分别加以分析。
4.2 总体程序设计
在主程序模块中,需要完成对各接口芯片初始化、自行车里程和速度初始化、中止向量设计和开中止、循环等候等工作。另外,在主程序模块中还需要设置开启/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将依据各标志寄存器内容,分别完成开启、清除、计程和计速等不一样操作。
P1.0和P1.1口分别用于显示里程状态和速度状态。P1.2、P1.3、P1.6和P1.7口分别用于设置轮圈大小,低电平有效。P3.0是用于里程和速度切换,低电平为显示速度,高电平为显示里程。中止0是对轮子圈数计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将依据里程寄存器中内容计算和判定出行驶里程数。中止1用于控制订时器T1启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数计数经二分频后形成。这么,每次定时器T1开启时间刚好为转一圈时间,依据轮子周长就能够计算出自行车速度。其程序步骤图4-1所表示。
开始
初始化
P1.2=1?
N
P1.3=1?
P1.6=1?
P1.7=1?
犯错提醒
将车圈周长调入21H
开中止,开启定时器
P3.0=1?
调用里程处理子程序
调用速度处理子程序
N
N
N
Y
Y
Y
Y
N
Y
图4-1 主程序步骤图
系统程序设计以下:
$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,#0FF H ;初始化,全部显示器、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
4.3 中止子程序设计
定时中止是为满足定时或计数需要而设置。在单片机内部有两个定时/计数器,以对其中计数结构进行计数方法,来实现定时或计数功效。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中止请求,去置位一个溢出标志,作为单片机接收中止请求标志。这种中止请求是在单片机芯片内部发生,所以无须在芯片上设置引入端。
定时/计数器控制寄存器TCON是8位寄存器,地址为88H,能够位寻址。其高4位用于定时/计数器中止控制,低4位借给外部中止,用做中止标志和触发方法选择位。本设计采取定时中止,对自行车里程和速度进行计数。中止子程序步骤图图4-2所表示。
关中止
开始
现场保护
开中止
中止处理
关中止
现场恢复
开中止
中止返回
图4-2中止子程序步骤图
4.4 里程计算子程序
外部中止0服务程序用于对单片机P3.2口输入圈数脉冲进行计数,为十六进制计数器。60H为低位,62H为高位。每次计数一次后,对里程数据进行一次存放操作。当车轮每转一圈,经过霍尔元件将脉冲数输入单片机内,经过计数器计出脉冲数,再用乘法子程序算出里程数。里程处理子程序步骤图图4-3所表示。
开始
点亮里程指示
将车圈数转换成里程
显示里程值
返回
图4-3 里程处理子程序步骤图
4.5 显示子程序设计
采取动态扫描显示接口电路,动态显示接口电路是把全部显示器8个笔划段a-h同名端连在一起,而每一个显示器公共极COM各自独立地受I/O线控制。
展开阅读全文