时钟计时器要求用单片机及 4 位点阵显示显示时、分、秒,以 24 小时计时方式运行, 使用按键开关可实现时、分调整。
1.2 设计要求
对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间 分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。
由于时钟是不能停止的,因此需要采用内部定时器自动计时,并使用定时器中断处理 程序来定时进行时间数值的刷新。52单片机的2个定时器都具有16位定时器的工作模式。 当晶振为12MHz时,16位定时器的最大定时值为65.536ms;要达到1秒钟,可以采用两种方 法:采用一个定时器定时与软件计数相结合的方法;或者采用两个定时器级联的方法。由 于秒表在计时功能时也需要用到1个定时器,因此,我们采用第一个方法,只使用1个定时 器,例如使用T0。为了达到较为准确的计时,使T0的溢出时间为50ms,使用一个字节作为 软件计数器ST,计数值为20。定时器的中断处理程序对ST进行减1操作,当ST为0时,1秒 到达,此时更新存放小时、分钟、秒钟的显示缓存区。
2 硬件电路的设计
该电路采用 AT89C52 单片机最小化应用设计。
采用共阳 8*8LED 点阵显示器;P0 口输出段码数据;P2.0~ P2.5 口作列扫描输出;P3.2、 P3.3 接 2 个按钮开关,用于调时及功能设置为了提供共阳点阵显示的列扫描驱动电压, 用三极管 9012 作电源驱动输出;采用 12MHz 晶振,可提高秒计时的精确性。
2.1 单片机系统
AT89C52单片机具有足够的空余硬件资源,可以实现其他的扩充功能,还有价格低廉, 保密性强,功耗低,应用灵活、方便等优点。故选择AT89C52单片机为本设计的核心是较 佳的选择。
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash 只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高 密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和 Flash存储单元,功能强大的AT89C52单片机可以提供许多较复杂系统控制应用场合。
AT89C52 芯片
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口, 3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规 方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别 是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。 主要性能参数:
·与MCS-51产品指令和引脚完全兼容
·8k字节可重擦写Flash闪速存储器
·1000次擦写周期
·全静态操作:0Hz-24MHz
·三级加密程序存储器
·256×8字节内部RAM
·32个可编程I/O口线
·3个16位定时/计数器
·6个中断源
·可编程串行UART通道
·低功耗空闲和掉电模式 具体接口的功能如下:
(1)P0 口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作 为输出口用时,每位用吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“l”时,可 作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总 线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0口接收指令字节。而在程序校验时,输出指令字节,校验时,要 求外接上拉电阻。(2)P1 口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲 级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻 把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引 脚被外部信号拉低时会输出一个电流(IIL)。与AT89C5l不同之处是,P1.0和P1.1 还可 分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表2-1。 Flash编程和程序校验期间,Pl接收低8位地址。