基于单片机的自行车里程表设计 下载本文

图3.5 89C52引脚图

AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。89C52管脚图如图3.5所示。89C52的主要管脚功能如下:

P0.0~P0.7:P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

P1.0~P1.7:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲极可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

P2.0~P2.7:P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲极可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

P3.0~P3.7:P3是一个带内部上拉电阻的8位双向I/O口,P3的输出缓冲极可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P3写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/

-16-

6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 外部程序存储器读选通信号。在读外部ROM时,PSEN有效(低电平),PSEN:

以实现外部ROM单元的读操作。

EA:访问程序存储控制信号。当EA信号为低电平时,对ROM的读操作限

定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。

RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。

XTALl和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

VSS:地线。 VCC:+5V电源。

以上是MCS-51单片机芯片40条引脚的定义及简单功能说明。

由于工艺及标准化等原因,芯片的引脚数目是有限制的。例如,MCS-51系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了需要与可能的矛盾。如何解决这个矛盾? “兼职”是唯一可行的办法,即给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。下面介绍一些信号引脚的第二功能。

(1) P3 口线的第二功能。P3的8条口线都定义有第二功能,如表3.1所示

表3.1 P3口引脚与第二功能

引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD TXD 信号名称 串行数据接收 串行数据发送 外部中断0申请 外部中断1申请 定时/计数器0的外部输入 定时/计数器1的外部输入 外部RAM写选通 外部RAM读选通 INT0 INT1 T0 T1 WR RD

(2) EPROM存储器程序固化所需要的信号。有内部EPROM的单片机芯片(例

-17-

如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚以第二功能的形式提供的,即:

编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/VPP)

(3) 备用电源引入。MCS-51单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。

2. 定时/计数器

(1) 计数:计数是指对外部事件的个数进行计量。其实质就是对外部输入脉冲的个数进行计量。实现计数功能的器件称为计数器。

(2) 定时:8051单片机中的定时器和计数器是一个部件,只不过计数器记录的是外界发生的事件,而定时器则是由单片机内部提供一个非常稳定的计数源进行定时的。这个计数源是由单片机的晶振经过12分频后获得的一个脉冲源。所以定时器计数脉冲的时间间隔与晶振有关。

MCS-51单片机内部有两个16位可编程的定时器/计数器,简称为T0和T1,均可作定时器和计数器使用,它们均是二进制加法计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已终止。适用于定时控制、延时、外部计数和检测等。

计数器:对引脚T0(P 3.4 )和T1(P3.5.)输入的外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。

定时器:对系统晶振振荡脉冲的12分频输出进行计数。

定时器/计数器的结构组成:16位加法计数器、工作方式寄存器TMOD和控制寄存器TCON。

T0: TL0(低8位)和TH0(高8位) T1: TL1(低8位)和TH1(高8位)

3.3.2 存储器的介绍

CAT24WC02是一个2K位串行CMOSE2PROM。内部含有256个8 位字节, CATALYST公司的先进CMOS技术实质上减少了器件的功耗。CAT24WC02有一个16 字节页写缓冲器,该器件通过I2C总线接口进行操作有一个专门的写保护功能。CAT24WC02支持I2C总线数据传送协议,I2C总线协议规定:任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器,数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端 A0、A1和A2可以实现将最多8个24WC02器件连接到总线上。

-18-

管脚图如3.6所示。

图3.6 24C02管脚图

SCL串行时钟:CAT24WC02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

SDA串行数据/地址:CAT24WC02双向串行数据/地址管脚用于器件所有数据的发送或接收。SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或(wire-OR)。

A0、A1、A2器件地址输入端:这些输入脚用于多个器件级联时设置器件地址, 当这些脚悬空时默认值为0。当使用24WC02时最大可级联8个器件,24WC02被总线寻址这三个地址输入脚。A0、A1、A2可悬空或连接到Vss。

WP 写保护:如果WP管脚连接到Vcc所有的内容都被写保护,只能读。当WP管脚连接到Vss或悬空,允许器件进行正常的读/写操作。

起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C总线的起始信号。

停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C总线的停止信号。

本题目中24C02起存储作用,将自行车里程存储在24C02中,当掉电时,存储的数据不会丢失,可以读取24C02中的里程数完成里程的累积。

3.3.3 74LS74芯片的介绍

74LS74是D触发器的一种,它是一个具有记忆功能的二进制信息存储器件,是构成多种时序电路的最基本逻辑单元。触发器具有两个稳定状态,即\和\,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。由于其状态的更新发生在CP脉冲的边沿故又称之为上升沿触发的边沿触发器,D触发器的状态只取决于时针到来前D端的状态。D触发器应用很广,可用做数字信号的寄存、移位寄存、分频和波形发生器等。引脚图如图3.7所示。

-19-

图3.7 74LS74引脚图

在本题目中74LS74芯片起分频的作用。当车轮每转一圈,霍尔传感器输出一个低电平脉冲,通过74LS74进行二分频后,定时器T1的开启时间为车轮转1圈的时间,这样就可以算出自行车的速度。

3.3.4 74LS244芯片的介绍

74LS244为三态输出的八位缓冲器和总线驱动器,若单片机输出口直接接显示部分电路,则电流太小,会导致显示部分不能正常工作。所以在单片机输出口先接入驱动芯片74LS244,增大电流,使LED能够正常工作。其逻辑图如图3.8所示。

图3.8 74LS244逻辑图

3.4 单片机外围电路的设计

1. 时钟电路的设计

时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。8051片内由一个反相放大器构成振荡器,可以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种

-20-