温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
基于
MCS51
单片机
里程表
设计
实现
前 言
汽车是现代生活中不可或缺的一种重要交通工具,传统的指针式的里程表伴随着汽车的诞生就一直为人们接受,不过,新生事物不会因传统的存在而停止它前进的步伐,数码科技在今天已渗透到工业,农业,民用等产品的点点滴滴。新概念的车速里程表最直观的变化就是用大屏幕的液晶取代指针式表盘,直接用数字显示时速,里程,以及其他一些诸如油耗、时钟、环境温度等参数。直观的呈现给使用者。
由于单片机体积小,可以把它做到产品的内部,取代老式机械零件,缩小产品体积,增强功能,实现智能化。因此广泛的被用在智能产品中。Intel公司的MCS-51系列单片机在近年来广泛流行。本文即介绍一种基于MCS-51单片机的里程表的设计与实现。
本文先对里程表设计中所需设备作了详细介绍,对设计中存在的问题进行了说明;对硬件和软件局部的设计和实现作了认真的分析;给出了系统的建模过程及相应的系统模型,在Lab2023p仿真实验系统上进行了仿真,并对仿真结果进行了分析。
一 系统概述
本系统由信号采集处理模块、单片机8031、系统化LCD显示模块、系统软件组成。其中信号采集处理模块以霍尔传感器为核心器件,将不同的转速信号转换成相应的脉冲信号,并送到单片机的T1引脚;对单片机进行设置,使内部的定时器/计数器timer0工作在定时状态,timer1工作在计数状态,利用内部定时器T0对脉冲输入引脚T1进行控制,这样就能精确地检测到设定时间内加到T1引脚的脉冲数,一个脉冲即代表着车子前进一个轮长,对脉冲数进行处理就可得到里程和速度的数据;将数据送到LCD显示模块进行显示。该系统原理框图如图1所示。
系统软件包括单片机和液晶模块的初始化模块、液晶模块的写数据/命令子模块、频率测量模块、速度里程计算模块、速度和里程显示数据LCD字库显示模块等。
脉冲信号
单片机
LCD
图1 系统原理框图
二 根本原理与设计方案
〔一〕元器件简介
1 霍尔传感器简介
霍耳效应:1879年E.H. 霍尔发现,如果对位于磁场(B)中的导体(d)施加一个电压(v),该磁场的方向垂直于所施加电压的方向,那么那么在既与磁场垂直又和所施加电流方向垂直的方向上会产生另一个电压(UH),人们将这个电压叫做霍尔电压,产生这种现象被称为霍尔效应。
霍尔效应从本质上讲是运动的带电粒子在磁场中受洛仑兹力作用而引起的偏转。当带电粒子〔电子或空穴〕被约束在固体材料中,这种偏转就导致在垂直电流和磁场的方向上产生正负电荷的积累,从而形成附加的横向电场。
通有电流 I 的金属或半导体板置于磁感强度为 B 的均匀磁场中,磁场的方向和电流方向垂直,在金属板的第三对外表间就显示出横向电势差 U H 的现象称为霍耳效应。U H 就称为霍耳电势差。
实验测定,霍耳电势差的大小,和电流 I 及磁感强度B成正比,而与板的厚度d 成反比。即霍耳电势差 UH = RHIB/d ,
霍尔转速传感器: 霍尔转速传感器的外形图和与磁场的作用关系如2图所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。霍尔传感器检测转速示意图如图3。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率就可以得出圆盘的转速。
霍尔电流传感器本身已经存在滤波电路,输出无须再加装滤波,可直接供单片机的0~5V的 AD采集或直接送到单片机的中断输入引脚,信号非常稳定,而且抗干扰能力很强。
霍尔电流传感器反响速度一般在7微妙,不用考虑单片机循环判断的时间.
假设在圆盘上贴上多块磁钢,那么圆盘每转一圈,输出的脉冲信号将相应增加,单位时间内测到的脉冲数将增多,测出的转速也将更加精细。本设计建模时采用一个圆盘上贴一个磁钢进行模拟。实际制作中可以贴上多块磁钢,即可以克服因车轮转速太慢而在设定时间内测不到脉冲的问题。
图2 霍尔转速传感器的外形图
图3 霍尔传感器检测转速示意图
2 AT89C51芯片简介
AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出〔I/O〕端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。
AT89C51具有如下功能特性:
〔1〕兼容MCS—51指令系统;
〔2〕32个双向I/O口;
〔3〕两个16位可编程定时/计数器;
〔4〕1个串行中断;
〔5〕两个外部中断源;
〔6〕4k可反复擦写(>1000次〕Flash ROM;
〔7〕128x8bit内部RAM;
〔8〕6个中断源;
〔9〕低功耗空闲和掉电模式;
(10)软件设置睡眠和唤醒功能。
3 液晶显示模块SED1520芯片介绍
本设计仿真实验系统采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。图形液晶显示模块有两种连接方式。一种为直接访问方式,一种为间接控制方式。本设计采用直接控制方式。直接控制方式就是将液晶显示模块的接口作为存储器或I/O 设备直接挂在计算机总线上。计算机通过地址译码控制 E1和 E2的选通;读/写操作信号 R/W由地址线 A1控制;命令/数据存放器选择信号 AO 由地址线 A0控制。实际电路如图4所示。地址映射如下〔地址中的X由LCD CS决定,可参见地址译码局部说明〕
0X000H
0X001H
0X002H
0X003H
0X004H
0X005H
0X006H
0X007H
写E1指令
写E1数据
读E1状态
读E1数据
写E2指令
写E2数据
读E2状态
读E2数据
图4 液晶屏显示控制电路
SED1520芯片介绍
SED1520液晶显示驱动器是一种点阵图形式液晶显示驱动器,它可直接与8位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块。
〔1〕SED1520的特性
①内置显示RAM区RAM容量为2560〔32行80列〕位。RAM中的1位数据控制液晶屏上一个点的亮灭状态:“1”表示亮, “0”表示暗。
②具有16个行驱动口和16个列驱动口 ,并可级联两个SED1520实现32行驱动。
③可直接与80系列微处理器相连,亦可直接与68系列微处理器相连。
④驱动占空比为1/16或1/32。
⑤可以与SED1520配合使用,以便扩展列驱动口数目。
〔2〕SED1520指令与显示RAM结构
SED1520指令系统比拟简单,共13条,除读状态指令、读显示RAM数据指令外,其他指令均为写操作,并且读写指令均为单字节指令。在送出每条指令时,必须进行控制器状态检测,状态字节的含义如下:
D7:1/0,模块忙/准备就绪;
D5:1/0,模块显示关/开;
D4:1/0,模块复位/正常;
D3-D0:未用
在指令使用中,关键要分清显示行、列设置和显示页面设置的关系。单片SED1520可驱动61×16液晶屏,其内部显示RAM相对于COM0每8行为一个显示页面。本设计所用的字符液晶模块由两块SED1520级联驱动,其中一个工作在主工作方式下,另一个工作在从方式下,主工作方式SED1520负责上半屏16行的驱动和左半屏的61列驱动,从工作方式的SED1520那么负责下半屏16行的驱动和右半屏的61列驱动,使能信号E1、E2用来区分具体控制的是那一片SED1520。这样两片SED1520级联可驱动122×32图形点阵液晶显示屏,可完成图形显示,也可显示七个半〔16×16点阵〕汉字。
〔3〕指令系统
SED1520液晶显示驱动器共有13种显示指令。本文用到的局部指令见下表
表1 局部传送指令表
指 令
代 码
功 能
R/W
D/I
D7
D6
D5
D4
D3
D2
D1
D0
显示开/关
指令
0
0
1
0
1
0
1
1
1
1/0
全部显示开关,0:关 1:开
显示开始行
0
0
1
1
0
开始行〔0~31〕
显示RAM中数据的起始行
页地址设置
0
0
1
0
1
1
1
0
0~3
设置显示页地址 X address
列地址设置
0
0
0
列地址〔0~121〕
设置显示列地址 Y address
写显示数据
0
1
写入的数据
写显示数据到RAM
静态驱动
0
0
1
0
1
0
0
1
0
0/1
1:静态驱动,0:动态驱动
刷新率设置
0
0
1
0
1
0
1
0
0
0/1
1:1/32,0:1/16
结束
0
0
1
1
1
0
1
1
1
1
释放读写
复位
0
0
1
1
1
0
0
0
1
1
设置为初始状态
〔二〕 设计方法
1 51单片机定时器/计数器的根本结构及工作原理
MCS-51单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能〔如工作方式、定时时间、启动方式等〕均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能存放器〔控制存放器和方式存放器〕。
(1) 定时器/计数器的结构如下。
从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用存放器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个存放器均可单独访问。这些存放器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式存放器TMOD和一个8位的定时控制存放器TCON。这些存放器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0〔P3.4〕和T1〔P3.5〕输入。
〔2〕定时计数器的原理
16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计