车载可测温式电子万年历
2 硬件设计
2.1 电路组成框图
该电路主要由时钟芯片、CPU(AT89S51)、键盘、驱动电路、温度采集、显示电路组成。其中键盘调整可以对显示的内容进行切换及对时间进行调整。框图如图2-1所示:
时钟芯片
DS12887
显示电路
温度传感器 段驱动 驱动电路 位驱动 键盘调整
CPU 89S51 图2-1 电子万年历方框图
2.2 系统硬件概述及整机工作原理
此设计CPU采用低功耗,高性能CMOS 8位单片机AT89S51;时钟芯片用的是美国达接斯半导体公司(Dallas)推出的串行接口实时时钟芯片DS12887,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池;驱动电路用的是ULN2003芯片;LED显示部分用的是四个共阴型数码管,显示采用动态扫描并行输出方式。键盘有三个分别为位调整键,加调整键,减调整键。整机工作原理是先初始化DS12887时钟芯片接着CPU从时钟芯片读取时间及日期信息又从温度传感器采集温度送驱动电路进而送LED显示,其中键盘调整可以对时间进行调整,对时间进行调整时其更改值写入DS12887,再允许DS12887时间更新并读出时间送显示,温度值和时间轮流交替显示在数码管上。电路图如图2-2所示。
-4-
车载可测温式电子万年历
图2-2 整机电路图
-5-
车载可测温式电子万年历
2.3 各芯片介绍
2.3.1 AT89S51单片机
AT89S51是一个低功耗,,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。其引脚排列如2-3所示。
图2-3 AT89S51引脚图
AT89S51具有如下特点:40个引脚,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
管脚说明:
40个引脚按其功能来分,可分为三个部分: 电源及时钟引脚 控制引脚 I/O口引脚
-6-
车载可测温式电子万年历
(1)电源及时钟引脚
电源引脚接入单片机的工作电源。 VCC(40)引脚:接+5V电源。 VSS(20)引脚:接地。
两个时钟引脚XTAL0、XTAL1为单片机提供了时钟控制信号。 XTAL0(18脚):接外部晶体的一个引脚。 XTAL1(19脚):接外部晶体的另一端。 (2)控制引脚
RST是复位信号的输入端,高电平有效。当单片机正常工作时,在此引脚加上持续时间大于两个机器周期(24个时钟振荡周期)的高电平时,就可完成复位操作。在单片机正常工作时,复位端应小于或等于0.5V的低电平。
PSEN(29脚)程序存储器允许输出控制端。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为外部程序存储器的选通信号。
ALE(30脚)ALE为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用作单片机发出的低8位地址的锁存控制信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,频率为时钟振荡频率fOSC的1/6。
EA(31脚)功能为内/外程序存储器选择控制端。当EA脚为高电平时,单片机访问片内程序存储器,当EA脚为低电平时,单片机则只访问外部程序存储器。所以此次设计,须把单片机的31脚接到高电平。
(3)I/O引脚 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入。在flash编程和校验时,P1口接收低8位地址字节。
P1 口引脚号的第二功能如表2-1所示。
-7-
车载可测温式电子万年历
表2-1 P1口引脚的第二功能 P1.0 P1.1 P1.5 P1.6 P1.7 T2(定时器/计数器T2的外部计数输入),时钟输出 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) MOSI(在系统编程用) MISO(在系统编程用) SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。
P3 口引脚号的第二功能如表2-2所示。
表2-2 P3 口引脚号的第二功能
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入) TXD(串行输出) INT0(外部中断0) INT1(外部中断1) T0(定时器0外部输入) T1(定时器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器写选通) 2.3.2 DS12887时钟芯片
-8-