电子时钟计时器的设计(c语言版 - 调试完美通过 - 可直接使用)(附原理图源程序以及完整的文档) 下载本文

内容发布更新时间 : 2024/12/29 13:21:34星期一 下面是文章的全部内容请认真阅读。

1.2方案二

此方案采用专用时钟芯片DS1302精确计时,单片机STC89C52实时读取时钟显示至6位数码管。如图2所示:

DS1302STC89C52单片机控制器蜂鸣器P0PAPB82556位LED数码管显示P2

图 2 方案二系统方框图

PC 矩阵键盘

1.3方案对比

以上方案中,方案一设计简洁,编程比较简单,计时精度不高,准确性不能完全保证。虽硬件简洁、成本更低廉、便于实现,绿色环保,编程简单易写,不能达到提高同学们编程的能力和对单片机及其扩展芯片的学习和深程度的去了解单片机及其更广泛的应用,故在此我们选择挑战,放弃对其选择。虽然我们对其进行了放弃,但我们也把此方法的程序写好以便进行对比。

方案二与方案一相比,编程比较复杂,计时精度较高,而且可以灵活运用,可扩

展性好,并能充分的利用单片机的有效资源。还可让我们培养我们的自学能力,自己去发掘单片机内部结构及其扩展功能,自己去学会怎样对其他芯片控制的学习方法,使得课程设计具有一定的挑战性,正因如此,故我们选择方案二。

2

2.系统硬件电路的设计

2.1单片机的选择及引脚功能介绍

STC89C52具有如下特点:40个引脚(引脚图如图四所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,STC89C52RC设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

图4 STC89C52芯片引脚图

引脚功能介绍: VCC(40):+5V; GND(20):接地;

P0口(39-32):P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流;

3

P1口(1-8):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流;

P2口(21-28):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流;

P3口(10-17):P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口;

RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;

ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲;

PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现;

EA/VPP(31):当EA保持低电平时,外部程序存储器地址为(0000H-FFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V编程电源(VPP);

XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入;

XTAL2(18):来自反向振荡器的输出。

2.2 8255A芯片的结构及引脚功能介绍

8255A芯片是Intel公司生产的通用可编程并行接口电路,广泛应用于单片机扩展并行I/O口。它具有8个位并行口PA、PB和PC。8255A芯片的内部结构及引脚如图5所示。

(1).8255A的内部结构

8255A的内部结构有以下几部分组成:

a.并行I/O端口A、B、C 8255A的内部有3个8位并行I/O口:A口、B口、C

4

口。3个I/O口都可以通过编程选择为输入口或输出口,但在结构和功能上有所不同。

A口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器。

B口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。 C口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。 当数据传送不需要联络信号时,这3个端口都可以用作输入口或输出口。当A口B口需要有联络信号时,C口可以作为A口和B口的联络信号线。

b.工作方式控制电路:8255A的三个端口在使用使可分为A、B两组。A组包括A口8位和C口高4位:B组包括B口8位和C口低4位。两组的控制电路中分别有控制寄存器,根据写入的控制字决定两组的工作方式,也可对C口每一位置“1” 或清“0”。

c.数据总线缓冲器:数据总线缓冲器是三态双向的8位缓冲器,是8255A与单片机数据总线的接口,8255A的D0~D7可以和AT89C51单片机的P0.0~P0.7直接相连。数据的输入输出、控制字和状态信息的传递,均可通过数据总线缓冲器进行。

d.读/写控制逻辑:8255A读/写控制逻辑的作用是从CPU的地址和控制总线上接受有关信号,转变成各种控制命令送到数据缓冲器及A组和B组的控制电路,控制A、B、C3个端口的操作。其引脚图如图5所示:

图5 8255引脚图

引脚功能介绍:

8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。

5

D0~D7:双向三态数据总线。

RESET:复位信号,输入,高电平有效。复位后,控制寄存器清0,A口、B口、C口被置为输入方式。

CS:片选信号,输入,低电平有效。

RD.:读信号,输入,低电平有效。有效时,允许CPU通过8255A D0~D7读取数据或状态信息。

WR.:写信号,输入,低电平有效。有效时,允许

A1A0:端口控制信号,输入。2位可构成四种状态,分别寻址A口、B口、C口和控制寄存器

PA0~PA7:A口数据线,双向。 PB0~PB7:B口数据线,双向。

PC0~PC7:C口数据/信号线,双向。当8255A工作于方式0时,PC0~PC7分为两组(每组4位)并行I/O数据线;当8255A工作于方式1或方式2时,PC0~PC7为A口、B口提供联络信号。

2.3 DS1302芯片的结构及引脚功能介绍

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 (1).DS1302的引脚功能及结构

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST

6