程序计数器 PC 和其他特殊功能寄存器 SFR 全部清零。只要 RST 持续为高电平,单片机就 处于循环复位状态[9]。
单片机的复位方式有上电自动复位和手工复位两种,本设计采用的是手动复位方式, 其电路图如图 5 所示。
图 5 复位电路
3.3.4 数码显示电路
发光二极管显示器驱动(点亮)的方法有两种。一种是静态驱动法,即给欲点亮的 LED 通以恒定的定流。这种驱动方法要有寄存器,译码器,驱动电路等逻辑部件。当需要显示 的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。另一种是动态驱动方法, 这种方法是给欲点亮的 LED 通过通以电流,此时 LED 的亮度是通断的平均亮度。为保证 亮度,通过 LED 的脉冲电流应数倍于其额定电流值。利用动态驱动法可以减少需要的逻辑 部件和连线,单片机应用系统中常采用动态驱动法[10]。数码管有两种接法即共阳极接法和 共阴极接法。所谓共阳共阴,是针对数码管的公共脚而言的。一个 1 位典型的数码管,一 般有 10 个脚,8 个段码(7 段加 1 个小数点),剩下两个脚接在一起。共阳指的是公共脚 是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚 接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。共阴刚好相 反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时, 对应段码位点亮[11],本次设计选择共阴极数码管,其中有 6 位显示“时”,“分”,“秒”, 剩下两位显示“—”数码管 A~DP 接单片机 P1 端口用于段选,1~9 接单片机 P2 端口用于 位选。各个段码实际上是一个发光二极管,既然是发光二极管,就有正负极,为了防止驱
8动数码管电流过大而损坏,各端口接 1K 电阻。 位共阴极 LED 数码显示电路如图 6 所示。
5
基于单片机的数字钟设计
图 6 八位 8 段共阴极 LED 数码显示
4.数字钟的软件设计 4.1 程序设计内容
单片机软件设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。 设计步骤如下所示。
1. 采用模块化程序结构设计软件,首先将整个软件分成若干功能模块; 2. 根据流程图,编写源程序; 3. 上机调试各模块程序;
4. 与硬件一起联调,最后完成全部调试工作。
4.2 系统设计流程图
4.2.1 主程序流程
开始
启动定时器
按键检测
时间显示
6
图 7 主程序流程图
4.2.2 定时器中断流程
开始
N
一秒时间
Y
秒单元加 1
N
60 秒时间
Y
秒单元清零,分单元加 1 N
Y
60 分 钟
分单元清零,时单元加 1
Y
24 小时
N
时单元清零
时间显示
中断返回
图 8 定时器中断流程图
定时器中断时是先检测 1 秒是否到,1 秒如果到,秒单元就加 1;如果没到,就检测 1 分钟是否到,1 分钟如果到,分单元就加 1;如果没到,就检测 1 小时是否到,1 小时如果
7
基于单片机的数字钟设计
到,时单元就加 1,如果没到,就显示时间,定时器中断流程图如图 8 所示。 4.2.3 时间显示流程图
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然 后是分十位显示,再就是时个位计算显示,最后是时十位显示.,时间显示流程图如图 9 所 示。
开始
秒个位计算显示
秒十位计算显示
分个位计算显示
分十位计算显示
时个位计算显示
时十位计算显示
结束
图9 时间显示流程图
8
5.系统调试
5.1 Keil C51 软件环境简介
Keil C51 集成开发环境是基于 80C51 内核的微处理器软件平台,内嵌多种符合当前工 业标准的开发工具,可以完成从工程建立、管理、程序编译、链接、目标代码生成、软硬 尤其是 C 编译工具在产生代码的准确性和效率方面达到了较件仿真等完整的开发流程[12]。 高水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51 集成开发 环境的主要功能有以下几点[13]:
(1)uVision2 for Windows 一个集成开发环境,它将项目管理、源代码编辑和程序调 试等组合在一个功能强大的环境中;(2)C51 国际标准优化 C 交叉编译器。代码产生可 重定位的目标模块;(3)A51 宏汇编器。从 80C51 汇编源代码产生可重定位的目标模块; (4)BL51 链接/定位器。组合由 C51 和 A51 产生可重定位的目标模块,生成绝对目标模 块;(5)LIB 库管理器。从目标模块生成连接器可以使用的库文件;(6)OH51 目标文 件至 HEX 格式的转换器。从绝对目标模块生成 Intel HEX 文件;(7)RTX-51 实时操作系 统。简化了复杂的实时应用软件项目的设计。keil C51 软件编译环境如图 10 所示。
图 10 keil C51 软件编译环境
5.2 Proteus 软件环境简介
本系统的硬件设计首先是在 Proteus 软件环境中仿真实现的。Proteus 软件集成了高级 原理绘图、混合模式 SPICE 电路仿真,PCB 板设计以及自动布线来实现一个完整的电子设 计系统[14]。
9