《测控系统综合训练课程设计报告-基于AT89C52单片机的数字时钟.doc》由会员分享,可在线阅读,更多相关《测控系统综合训练课程设计报告-基于AT89C52单片机的数字时钟.doc(26页珍藏版)》请在三一文库上搜索。
1、1 基于基于 AT89C52 单片机的数字时钟单片机的数字时钟 学院名称: 电气信息工程学院 专 业: 测控技术与仪器 班 级: 08 测控 2 班 姓 名: 学 号: 指导教师: 2011 年 12 月 J JI IA A N NG GS SU U T TE EA AC CH HE ER RS S U UN NI IV VE ER RS SI IT TY Y O OF F T TE EC CH HN NO OL LO OG GY Y 测测 控控 系系 统统 综综 合合 训训 练练 2 摘摘 要要 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社 会的各个领域,有力
2、地推动了社会生产力的发展和社会信息化程度的提高,同时也使现 代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 数字钟是采用数字电路实现对“时” 、 “分” 、 “秒”数字显示的计时装置。数字钟的 精度、稳定度远远超过老式机械钟。在这次设计中,我们采用 LED 数码管显示时、分、 秒,以 24 小时计时方式,根据数码管动态显示原理来进行显示,用 12MHz 的晶振产生振 荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时 间的调整、整点报时。 关键字:数字钟、时间。 Abstract At the end of the 20th century, electro
3、nic technology has experienced rapid growth, the modern electronic products, almost permeated the various sectors of society, and promoted the development of social productive forces and the social informatization level, but also improve the modern electronic products to further improve the performa
4、nce, product update rhythm also more and more quickly. A digital clock is used in digital circuit “, “ points“ and “second“ digital display timer. A digital clock accuracy and stability than old mechanical clock. In this design, we adopt LED digital display tube, minutes and seconds, when in 24 hour
5、s time, according to the principle of dynamic display of digital tube to show, with the crystals 12MHz produce oscillation pulses, timer count. In this design, the circuit has its time, still can realize the function of the time. Key words: electric clock、time. 3 目目 录录 第一章第一章 绪论绪论 4 1.1 数字电子钟的背景.4 1
6、.2 数字电子钟的意义4 1.3 数字电子钟的应用.4 第二章第二章 整体设计方案整体设计方案 5 2.1 单片机的基本结构5 第三章第三章 数字钟的硬件设计数字钟的硬件设计 9 3.1 最小系统设计.9 3.2 LED 显示电路11 3.3 键盘控制电路.13 34 数字钟的硬件图.14 第四章第四章 数字钟的软件设计数字钟的软件设计 15 4.14.1 系统软件设计流程图系统软件设计流程图.15 第五章第五章 系统仿真系统仿真 18 5.1 PROTUES 软件介绍18 5.2 电子钟系统 PROTUES 仿真.18 第六章第六章 调试与功能说明调试与功能说明 19 6.1 系统性能测试与
7、功能说明.19 6.2 系统时钟误差分析.19 6.3 软件调试问题及解决.19 结束语结束语 20 参考文献(参考文献(REFERENCES):): .21 附录一附录一 22 源程序清单源程序清单22 4 第一章第一章 绪论绪论 1.1 数字电子钟的背景 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社 会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现 代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那 么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情 不是很重要的时候,这种遗忘
8、无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大 祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS 化、低功耗、 小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的 主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计 思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片 机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控 制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计 时的装置,与机械式时钟相比具有更高的准确性和直观性,
9、且无机械装置,具有更更长 的使用寿命,因此得到了广泛的使用。 1.2 数字电子钟的意义 数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭, 车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路 的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数 字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如 定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开 关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字 化为基础的。因此,研究数字钟及扩大
10、其应用,有着非常现实的意义。 1.3 数字电子钟的应用 数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、 码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。 由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能 稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。 5 第二章第二章 整体设计方案整体设计方案 2.1 单片机的基本结构 MCS-52 单片机内部结构 8052 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、 并行接口、串行接口和中断系统等几大单元及数据总线、地址
11、总线和控制总线等三大总 线,现在我们分别加以说明: 中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位 二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控 制输入输出功能等操作。 数据存储器(RAM) 8052 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编 址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数 据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户 定义的字型表。 程序存储器(ROM): 8052 共
12、有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。 定时/计数器(ROM): 8052 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 并行输入输出(I/O)口: 8052 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。 全双工串行口: 8052 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以 用作异步通信收发器,也可以当同步移位器使用。 中断系统: 图 2-1 单片机 8052 的内部结构 6 8052 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行
13、中断,可 满足不同的控制要求,并具有 2 级的优先级别选择。 时钟电路: 8052 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 8052 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛 (Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一 的结构,即普林斯顿(Princeton)结构。INTEL 的 MCS-52 系列单片机采用的是哈佛结构的 形式,而后续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。 下图是 MCS-52 系列单片机的内部结构示意图。 图 2-2
14、 MCS-52 系列单片机的内部结构 MCS-52 的引脚说明: MCS-52 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构, 右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两 根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以 说明: MCS-51 的引脚说明: MCS-52 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构, 右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两
15、根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以 说明: 7 图 2-3 单片机的引脚图 Pin9:RESET/Vpd复位信号复用脚,当 8052 通电,时钟电路开始工作,在 RESET 引脚 上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈指针写入 07H,其它专用寄存器被清“0” 。 RESET 由高电平下降为低电平后,系统即从 0000H 地址开始执行程序。然而,初始复位不 改变 RAM(包括工作寄存器 R0-R7)的状态,8052 的初始态。 80
16、51 的复位方式可以是自动复位,也可以是手动复位,见下图 4。此外,RESET/Vpd 还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据不丢 失 22uf 1k 8 图 2-4 上电自动复位电路图 8952 图 2-5 内部和外部时钟方式图 Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字 节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正脉冲信号,这个信号可 以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外 部程序存储器,ALE 会跳过一个脉冲。 如果单片机是 EPROM,在编
17、程其间,将用于输入编程脉冲。 Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位地址数 据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上,由 CPU 读入并执 行。 Pin31:EA/Vpp程序存储器的内外部选通线,8051 和 8751 单片机,内置有 4kB 的程 序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程序存储器指令数据,而 超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程 序存储器指令。显然,对内部无程序存储器的 8031,EA 端必须接地。 内部时钟图 外部时钟图
18、 9 第三章第三章 数字钟的硬件设计数字钟的硬件设计 3.1 最小系统设计 单片机的最小系统是由电源、复位、晶振、/EA=1 组成,下面介绍一下每一个组成部 分。 1.电源引脚 Vcc 电源端 GND 接地端 工作电压为 5V,另有 AT89LV51 工作电压则是 2.7-6V, 引脚功能一样。 2.外接晶体引脚 图 3-1 晶振连接的内部、外部方式图 XTAL1 为单片机 19 脚 XTAL2 为单片机 18 脚 XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时, 外部振荡信号应直接加到 XTAL1,而 XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二
19、 分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振的频率可以在 1MHz-24MHz 内选择。电 容取 30PF 左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。 AT89 单片机内部有一个用于构成振荡器的高增益反相放大器。引脚 XTAL1 和 XTAL2 分别 是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成 10 一个自激振荡器。外接晶体谐振器以及电容 C1 和 C2 构成并联谐振电路,接在放大器的 反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的 高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此
20、系统电路的晶体振荡 器的值为 12MHz,电容应尽可能的选择陶瓷电容,电容值约为 22F。在焊接刷电路板时, 晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震 荡器稳定和可靠地工作。 3. 复位 RST 9 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时, 将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 P0P3 口均置 1 引脚表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。当复位脚由高电平变 为低电平时,芯片为 ROM 的 00H 处开始运行程序。复位是由外部的复位电路来实现的。 片内复位电路是复位引
21、脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用 来抑制噪声,它的输出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采 用上电自动复位和按钮复位两种方式,此电路系统采用的是按钮复位电路。 4.输入输出引脚 (1) P0 端口P0.0-P0.7 P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端 口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。 对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外 接上拉电阻。 在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数据总线, 访问期间内
22、部的上拉电阻起作用。 (2) P1 端口P1.0P1.7 P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出 时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash 程序存储器编程时,接收低 8 位地址信息。 (3) P2 端口P2.0P2.7 P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出 时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程时,接收高 8 位地址和控制信息。 在访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访
23、问 8 位地 址的外部数据存储器时其引脚上的内容在此期间不会改变。 (4) P3 端口P3.0P3.7 P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出 时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash 程序存储器编程时,接控制信息。除此之外 P3 端口还用于一些专门功 能,具体请看下表。 11 表 3-1 P3 端口引脚功能图 3.2 LED 显示电路 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工 艺,单片机应用系统中常用的显示器有: 发光二极管 LED 显示器、液晶 LED 显示器、 CRT 显
24、示器等。LED 显示器是现在最常用的显示器之一,如下图所示。 P3 引脚兼用功能 P3.0串行通讯输入(RXD) P3.1串行通讯输出(TXD) P3.2外部中断 0( INT0) P3.3外部中断 1(INT1) P3.4定时器 0 输入(T0) P3.5定时器 1 输入(T1) P3.6外部数据存储器写选通 WR P3.7外部数据存储器写选通 RD 12 图 3-2 LED 显示器的符号图 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用, 也可以组装成分段式或点阵式 LED 显示器件(半导体显示器)。分段式显示器(LED 数码 管)由 7 条线段围成 8 字型,
25、每一段包含一个发光二极管。外加正向电压时二极管导通, 发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED 数码 管有共阳、共阴之分。图是共阳式、共阴式 LED 数码管的原理图和符号. 13 图 3-3 共阳式、共阴式 LED 数码管的原理图和数码管的符号图 显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要 6 个数码管, 另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十 位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五 个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。 L
26、ED 显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多 位 LED 显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。 3.3 键盘控制电路 该设计需要校对时间,所以用三个按键来实现。按 hour 来调节小时的时间,按 minute 来调节分针的时间,按 sceond 来调节秒的时间。下图是按键硬件连接图。 图 3-4 数码管的硬件连接示意图 14 图 3-5 按键控制电路的硬件连接图 当用手按下一个键时,如图 3-6 所示,往往按键在闭合位置和断开位置之间跳几下 才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖 动的持
27、续时间随键盘材料和操作员而异,不过通常总是不大于 10ms。很容易想到,抖动 问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是 通过延迟 10ms 来等待抖动消失,这之后,在读入键盘码。 34 数字钟的硬件图 用 PROTUES 软件,根据要求画出数字电子钟的硬件图如下所示。 P10 P1.1 P1.2 15 图 3-6 数字钟的硬件图 工作原理 : 数字电子钟是一个将“ 时” , “分” , “秒”显示于人的视觉器官的计时装置。它的计时周期为 24 小时,显示满刻度为 23 时 59 分 59 秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示 器“时”
28、, “分” , “秒”和单片机,还有校时电路组成。8 个数码管的段选接到单片机的 P0 口,位选接 到单片机的 P2 口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元” , “秒 单元”采用 60 进制计数器,每累计 60 秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟 脉冲。 “分单元”也采用 60 进制计数器,每累计 60 分钟,发出一个“时脉冲”信号,该信号将被送到 “时单元” 。 “时单元”采用 24 进制计时器,可实现对一天 24 小时的累计。显示电路将“时” 、 “分” 、 “秒”通过七段显示器显示出来。校时电路时用来对“时” 、 “分” 、 “秒”显示
29、数字进行校对调整,校 时电路时用来对“时” 、 “分” 、 “秒”显示数字进行校对调整,按一下 second,秒单元就加 1 ,按一下 minute,分就加 1,按一下 hour,时就加 1。 第四章第四章 数字钟的软件设计数字钟的软件设计 系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件 (完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下 几个方面的问题: (1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的 总体结构,使软件开发清晰、简洁和流程合理; (2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。
30、既便 于调试、链接,又便于移植和修改; (3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数; (4)绘制程序流程图; (5)合理分配系统资源; (6)注意软件的抗干扰设计,提高系统的可靠性。 4.14.1 系统软件设计流程图系统软件设计流程图 这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可 以显示时间。 16 图 4-1 主程序流程图 按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1;如果没有按下,就 检测分按键是否按下,分按键如果按下,分就加 1;如果没有按下,就检测时按键是否按
31、 下,时按键如果按下,时就加 1;如果没有按下,就把时间显示出来。 开始 启动定时器 按键检测 时间显示 17 开始 秒按键按下? 秒加 1 分按键按下? 分加 1 时按键按下? 时加 1 显示时间 结束 Y N Y N Y N 图 4-2 按键处理流程图 定时器中断时是先检测 1 秒是否到,1 秒如果到,秒单元就加 1;如果没到,就检测 1 分钟是否到,1 分钟如果到,分单元就加 1;如果没到,就检测 1 小时是否到,1 小时 如果到,时单元就加 1,如果没到,就显示时间。 18 开始 一秒时间到? 秒单元加 1 60 秒时间到? 秒单元清零,分单元加 1 60 分钟到? 分单元清零,时单元
32、加 1 Y N Y N Y N 24 小时到? 时单元清零 时间显示 中断返回 Y N 图 4-3 定时器中断流程图 19 第五章第五章 系统仿真系统仿真 5.1 PROTUES 软件介绍 Proteus 软件是 Labcenter Electronics 公司的一款电路设计与仿真软件,它包括 ISIS、ARES 等软件模块,ARES 模块主要用来完成 PCB 的设计,而 ISIS 模块用来完成电 路原理图的布图与仿真。Proteus 的软件仿真基于 VSM 技术,它与其他软件最大的不同也 是最大的优势就在于它能仿真大量的单片机芯片,比如 MCS-51 系列、PIC 系列等等,以 及单片机外围
33、电路,比如键盘、LED、LCD 等等。通过 Proteus 软件的使用我们能够轻易 地获得一个功能齐全、实用方便的单片机实验室。 5.2 电子钟系统 PROTUES 仿真 用 PROTUES 软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示。 图 5-1 数字电子时钟的 PROTES 仿真 20 第六章第六章 调试与功能说明调试与功能说明 单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般的 方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。 6.1 系统性能测试与功能说明 走时:默认为走时状态,按 24 小时制分别显示“时时-分分-秒秒”,有 2
34、 个“-” 动态显示,时间会按实际时间以秒为最少单位变化。 走时调整:对秒进行调整,按一下 sceond 加一秒;对分进行调整,按一下 minute 加一分;对时进行调整,按一下 hour 加一小时,从而达到快速设定时间的目的。 6.2 系统时钟误差分析 时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自 国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合时间 概念和误差理论,可以定义电子钟的走时误差 S=S1-S2,S1 表示程序实际运行计算所得的 秒;S2 表示客观时间的标准秒。S0 时表示电子钟秒单元数值刷新滞后,即走时误差为 “慢”;反之,S
35、 /包含进头文件 sbit ksec=P30;/定义端口 sbit kmin=P31; sbit khour=P32; sbit bee=P37; unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;/定 义变量 unsigned int num=0,sec=0,min=0,hour=12; unsigned char code table10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/定义数组,用 于数码管显示 void delay(unsigned
36、int);/定义延时子函数 void keyscan();/定义键盘浏览子函数 void display();/定义数码管显示 子函数 main()/主函数 TMOD=0x01; /对时钟的设置 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1; /打开中断 while(1) /无限循环 display(); keyscan(); void delay(unsigned int z) / 延时子程序部分 unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-); void ti
37、me0() interrupt 1 num+; TH0=(65536-50000)/256; TL0=(65536-50000)%256; 24 void display() if(num=20) num=0; sec+; if(sec=60) sec=0; min+; if(min=60) bee=0; min=0; hour+; if(hour=24) hour=0; min=0; sec=0; else bee=1; secge=sec%10; secshi=sec/10; minge=min%10; minshi=min/10; hourge=hour%10; hourshi=hour
38、/10; P2=0xfe; P0=tablesecge; delay(5); P2=0xfd; P0=tablesecshi; delay(5); P2=0xfb; P0=0x40; 25 delay(5); P2=0xf7; P0=tableminge; delay(5); P2=0xef; P0=tableminshi; delay(5); P2=0xdf; P0=0x40; delay(5); P2=0xbf; P0=tablehourge; delay(5); P2=0x7f; P0=tablehourshi; delay(5); void keyscan() if(ksec=0) delay(10); if(ksec=0) sec+; if(sec=60) sec=0; while(ksec=0) display(); if(kmin=0) delay(10); if(kmin=0) min+; if(min=60) min=0; while(kmin=0) display(); if(khour=0) 26 delay(10); if(khour=0) hour+; if(hour=24) hour=0; while(khour=0) display();