毕业设计(论文)数字钟的设计与实现.doc

上传人:土8路 文档编号:10066269 上传时间:2021-04-15 格式:DOC 页数:30 大小:428.50KB
返回 下载 相关 举报
毕业设计(论文)数字钟的设计与实现.doc_第1页
第1页 / 共30页
毕业设计(论文)数字钟的设计与实现.doc_第2页
第2页 / 共30页
毕业设计(论文)数字钟的设计与实现.doc_第3页
第3页 / 共30页
毕业设计(论文)数字钟的设计与实现.doc_第4页
第4页 / 共30页
毕业设计(论文)数字钟的设计与实现.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《毕业设计(论文)数字钟的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)数字钟的设计与实现.doc(30页珍藏版)》请在三一文库上搜索。

1、目 录 摘摘 要要 .1 第一章第一章 系统概述系统概述 .2 1.1引言.2 1.2单片机 AT89C51 介绍.2 1.2.1组成.2 1.2.2主要特性:.3 1.2.3管脚说明.3 1.3时钟芯片 DS1302.5 1.3.1芯片简介.5 1.3.2DS1302DS1302 的结构及引脚说明.5 1.3.3地址/命令字节和寄存器格式定义.6 1.3.4读写操作时序.6 第二章第二章 系统设计系统设计 .8 2.1 开发目的.8 2.2 题目分析.8 2.3 设计思想.8 第三章第三章 设计流程图设计流程图 .9 3.1 硬件设计.9 3.1.1 显示电路的设计.9 3.1.2 显示驱动

2、电路的设计.10 3.1.3 电源电路的设计.10 3.1.4 复位及晶体振荡电路.10 3.1.5 键盘电路.10 3.1.6 整点报时和闹钟电路.10 3.1.7 看门狗电路.10 3.2 软件设计.11 3.2.1 系统流程图.11 3.2.2 日期程序设计.11 3.2.3 时间调整程序设计.12 第四章第四章 原程序代码原程序代码 .15 第五章第五章 课程设计结果总结:课程设计结果总结: .26 第六章第六章 参考资料及参考文献:参考资料及参考文献: .26 附录:总设计电路图附录:总设计电路图 .27 摘 要 本电子钟以 AT89C51 单片机为核心,通过软硬件相结合的方法,控制

3、 LED 数码管输出,可以显示年、月、日、时、分、秒、星期,同时还具有整点 语音报时及定时闹钟的功能。系统内置了时钟芯片 DS1302,保证了在断电后计 时不受影响。该电子钟硬件电路简单,时间调整方便,软件设计灵活、可靠, 加入了“看门狗”电路,增强了系统的抗干扰能力。 关键词 AT89C51,DS1302, “看门狗” ABSTRACT This electronic clock is based on MCU AT89C51, it controls LED to display YEAR, MONTH, DAY, HOUR, MINUTE, SECOND and WEEK through

4、 software and hardware method, it can also give the correct time and alarm. The system have a clock chip DS1302 which assure the system will not influenced after power is cut off. The hardware circuit is simple, time modulation is convenient, software design is vivid and credibility. WATCH DOG circu

5、it strengthen the anti- interference ability of the system. KEYWORDS AT89C51,DS1302,“WATCH DOG” 第一章 系统概述 1.1引言 数字钟是一种应用广泛的日常计时工具,广泛用于家庭居室、办公室、 大厅、会议室、车站、广场等场所。LED 数字显示的时钟清晰直观、走时 准确、在夜间也可以显示而且成本低廉。该设计以 51 单片机为核心,充分 利用单片机的资源,加上时钟模块、显示模块和键盘接口三大块外围电路, 再配合软件程序的设计,增强了整体系统的稳定性。该数字钟实现了显示 年、月、日、时、分、秒、星期的功能,而

6、且调节十分方便,时钟芯片的 使用保证了系统在断电时能继续工作,音乐芯片的使用使系统具有整点语 音报时和闹钟的功能。 1.2单片机 AT89C51 介绍 AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片 机,片内含 4K 字节的可反复擦写的 Flash 只读程序存储器和 128 字节的随 机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存 储技术产生,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器 (CPU)和 Flash 存储单元,功能强大,由于将多功能 8 位 CPU 和 Flash 存 储器组合在单个芯片中,ATM

7、EL 的 AT89C51 是一种高效微控制器,为很 多嵌入式控制系统提供了一种灵活性高且价廉的方案。其总线型 DIP40 引 脚封装图如图 11 所示。 图 11 总线型引脚封装图 1.2.1 组成 (1) CPU 系统 8 位 CPU,含布尔处理器 时钟电路 总线控制逻辑 (2) 存储器系统 4K 字节的程序存储器(可外扩至 64K) 128 字节的数据存储器(可再外扩 64K) 特殊功能寄存器 SFR (3) I/O 口和其它功能单元 4 个并行 I/O 口 2 个 16 位定时/计数器 1 个全双工异步串行口 中断系统(5 个中断源、2 个优先级) 1.2.2 主要特性: 与 MCS-5

8、1 产品指令系统完全兼容 4K 字节可重复擦写 Flash 存储器 1000 次擦写周期,数据保留时间为 10 年 三级程序存储器锁定 1288 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 全静态工作方式:024MHz 1.2.3 管脚说明 VCC:供电电压 GND:接地 P0 口:P0 口为一个 8 位漏级开路型双向 I/O 口,也即地址/数据总线复 用口。作为输出口每脚可吸收 8 个 TTL 门电路。当 P1 口的管脚第一次 写 1 时,被定义为高阻抗输入。P0 能够用于外部程序数据存储器,它 可以被定义为数

9、据/地址的第八位。在 FIASH 编程时,P0 口作为原码 输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉 高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器 能接收输出 4 个 TTL 门电路。P1 口管脚写入“1”后,被内部上拉为 高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由 于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接 收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接 收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚

10、被内部上拉 电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低, 将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器 或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在 给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储 器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P

11、3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如表 11 所示。P3 口同时为闪 烁编程和编程校验接收一些控制信号。 端口引脚第二功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2(外中断 0) RD P3.3(外中断 1) INT1 P3.4T0(定时/计数器 0) P3.5T1(定时/计数器 1) P3.6(外部数据存储器写选通) WR P3.7(外部数据存储器读选通) RD 表 11 AT89C51 特殊功能口 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期 的高电平时间。 ALE/:当访

12、问外部存储器时,地址锁存允许的输出电平用于锁存 PROG 地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在 平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频 率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注 意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁 止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如 果微处理器在外部执行状态 ALE 禁止,置位无效。 :外部程序存储器的选通信号。在由外部程序存储器取指期间, PSE

13、N 每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有 效的/PSEN 信号将不出现。 /VPP:当保持低电平时,则在此期间外部程序存储器(0000H- EAEA FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,将内部 EA 锁定为 RESET;当端保持高电平时,此间内部程序存储器。在 EA FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 1.3时钟芯片 DS1302 1.3.1 芯片简介 DS1302 是美国 DALLAS 公司开发的串行实

14、时时钟/日历芯片。它可以产生 秒、分、时、日、月、星期及年等七个时标,并能够进行闰年调整,日历有效 至 2100 年。芯片具有主工作电源掉电情况下的时钟保护电路和备份电源自动切换 控制电路。片内具有 31 个字节静态 RAM,可用来保存重要数据。该芯片采用 串行 I/O 接口方式。另外,在读写时钟或 RAM 数据时,可采用单字节或多字 节(串模式)方式传送数据。它可在低功率情况下工作,在小于 1mW 时也可保持 数据和时钟信息。由于具备体积小、功耗低、接口容易、占用 CPU I/O 口线少、 遇闰年自动修正,该芯片被广泛应用于智能化仪仪表中。 DS1302 与单片机之 间能简单地采用同步串行的

15、方式进行通信,仅需用到三条口线:RES,I/O 数据 线和 SCLK 串行时钟 DS1302 的特征如下: 31 字节带后备电池的 RAM 用于数据存储 串行 I/O 口,管脚数量少 宽范围工作电压:2055v 工作电压 2.0V 时,电流小于 300nA 读写时钟或 RAM 数据时有两种传送方式:单字节传送和突发模式 传送 8 脚 DIP 封装或其他可选封装方式 简单的 3 线接口 与 TTL 兼容(Vcc=5v) 可选工业级温度范围:40+85 与 DS1202 兼容 1.3.2 DS1302DS1302 的结构及引脚说明 DS1302 内部主要包括实时时钟(REAL TIME CLOCK

16、)、输入移位寄存器 (INPUT SHIIFI REGISTERS)、31 字节静态 RAM、电源控制部分 (POWERCONTROL)、命令控制逻辑( COMMAND AND CONTROL LOGIC )、 振荡器和分频器( OSCILLATOR AND DIVIDER)等部分。DS1302 具有 8 脚 DIP 和 SOIC 封装形式,其引脚排列如图 12 所示。 图 12 DS1302 引脚图 其中 1 脚 Vcc2 和 8 脚 Vccl 为电源电压引脚,单电源供电时接 Vcc 1 脚, 双电源供电时,主工作电源接 Vcc2 脚,备份电源接 Vcc 1 脚,备份电源可采用 镉一镍充电电

17、池,也可用 1 微法以上的大容量电容代替。芯片具有可编程选择 的对备份电池进行微电流充电的功能,有效延长了备份电池的使用寿命。若启 用芯片内部的微电流充电器,则在主工作电源正常工作时,由主工作电源向充 电电池充电。备份电池电压应略低于主工作电源电压,在系统掉电的情况下, 则由备份电池向系统供电,以保证时钟正常运行,并保持时钟/日历信息和 31 个字节静态 RAM 中的重要数据信息不丢失;2 脚 X1 和 3 脚 X2 为 32.768KHz 晶振引脚;5 脚 RST 为复位端,若其被置为低电平,则中止所有数据传送,I/O 脚变为高阻态,系统复位;6 脚 I/O 为数据输人/输出端;7 脚 SC

18、LK 为串行时 钟输入端,所有地址 l 命令字节和数据字节都是在时钟 SCLK 的同步控制下从 U0 脚串行输入输 出的。DS1302 通过 SCLK、I/O、三根线与外部进行同步串行通信。 RST 1.3.3 地址/命令字节和寄存器格式定义 在数据传送时,首先向 DS1302 写人地址/命令字节,该字节提供地址和命 令信息,然后输人或输出数据。地址/命令字节格式如图 13 所示。 1 RAM CKA4A3A2A1A0 RAM K 图 13 DS1302 的地址/命令字节格式 B7 为数据传送标志位,要完成数据传送,B7 必须为逻辑“1” ,否则不能 向 DS1302 进行写操作。B6 为 R

19、AM 和时钟寄存器选择位,若为逻辑“0” ,表 明系 统要对时钟寄存器进行读写操作;B6 为逻辑“1” ,表明系统要对 RAM 进行读 写操作。B1B5 确定要进行读写操作的寄存器地址,当 B1B5 均为“1”时, 选中多字节串模式传送方式,则时钟/日历数据或者 RAM 数据以多字节串模式 进行传送。I/O 为读写操作选择位,若为逻辑“0”时,表明将进行写操作,即 向 DS1302 输入数据;B0 为逻辑“1”时,则表明将进行读操作,即从 DS1302 输出数据。DS1302 片内有 7 个时钟旧历时标寄存器,以压缩 BCD 码格式存放 时钟旧历数据。秒寄存器的最高位 B7 是时钟停止标志,当

20、该位为“1”时,时 钟晶振停止运行;当该位为“0”时,时钟开始运行。小时寄存器的最高位 B7 是 12/24 小时方式选择位,当为“0”时,选择 24 小时方式;当为“1”时,选 择 12 小时方式,该寄存器的 BS 是上/下午标志位,BS 为“0”表示上午,BS 为“1”表示下午。DS1302 片内还有控制寄存器,微电流充电寄存器,串模式 控制寄存器。控制寄存器的最高位 B7 是写保护位,在向时钟寄存器或 RAM 中 写人数据之前,B7 必须为“0” ,如为“1” ,则禁止对 DS1302 进行任何写操作, 该寄存器中 B0B6 始终被置为“0” 。微电流寄存器控制 DS1302 的微电流充

21、 电功能,其中微电流充电选择位 B4B7 控制微电流充电器的选择,为防止误操 作,只有 1010 格式才能够使充电器工作。DS1302 在上电时,微电流充电器不 被使能,只有在软件程序中对其进行选择。二极管选择位 B2B3 和电阻选择 位 B0B1 分别选择连在 Vccl 和 Vcc2 之间充电通道上的二极管和电阻的数目。 1.3.4 读写操作时序 在数据传送时,首先传送地址/命令字节,确定下一步将要执行读操作还是 写操作;将要访问的是时钟寄存器还是 RAM 存储器及其地址;采用单字节传 送方式还是多字节(串模式)传送方式。在向 DS1302 写入地址/命令字节之后传 送读写操作数据。单字节传

22、送方式读写操作时序如图 14 所示。在数据传送时, 先将复位端 RST 置为高电平,此时 SCLK 必须为低电平。然后,在第一组 8 个 SCLK 串行时钟周期的上升沿,依次将地址/命令字节的 8 比特串入移位寄存 器。若系统要对 DS1302 进行写操作,则把地址/命令字节写人移位寄存器之后, 数据字节在下一组 8 个 SCLK 串行时钟周期的上升沿输人 DS1302;若系统要对 DS1302 进行读操作,则把地址/命令字节写入移位寄存器之后,数据字节在下 一组 8 个 SCLK 串行时钟周期的下降沿从 DS1302 输出。任何字节均从低位 B0 开始依次输入或输出。 图 14 数据传送时序

23、 第二章 系统设计 2.1 开发目的 数字钟是一种应用广泛的日常计时工具,但大多数在断电后都需要重新 调整时间与日期、走时误差较大,而且附加的功能不完善。该设计克服了一 般数字钟断电停止计时、走时误差较大的缺点,具有精度高、断电继续计时、 抗干扰能力强、调试方便等特点,而且加入了闹钟和语音报时功能。 2.2 题目分析 本设计要求用 51 系列单片机制作一个电子钟,实现显示年、月、日、时、 分、秒和星期的功能,同时要有断电继续计时和调节日期的功能。我们可以使 用 LED 数码管作为显示电路,利用单片机来控制其显示;采用时钟芯片来保证 断电继续计时的功能;利用键盘电路实现对日期和时间的调节。 2.

24、3 设计思想 本系统由单片机、显示电路、时钟电路、键盘电路、闹钟和定点报时电路、 电源电路组成。核心器件选择 ATMEL 公司的 AT89C51 单片机,显示电路由 15 个 LED 数码管组成,时钟芯片选择高性能的 DS12887,该设计在基本要求的基 础上增加了闹钟和整点报时功能。 第三章 设计流程图 3.1 硬件设计 3.1.1 显示电路的设计 显示部分采用普通的共阳极数码管显示,采用动态扫描,以减少硬件电路。 该设计共采用 15 个数码管,由于一次扫描 15 个数码管会出现闪烁情况,所以 设计时分为三排同时扫描。第一排使用 4 个数码管,分别显示千年、百年、十 年、年、年,第二排使用

25、4 个数码管,分别显示十月、月、十日、日,第三排 使用 7 个数码管,分别显示星期以及十时、时、十分、分、十秒、秒。显示时 采用串行口输出段码,用 2 片 74LS164 来驱动 3 排数码管,这样一次扫描只需 7ms,肉眼根本看不出来闪烁。 74LS164 内部为 8 个 D 触发器,用以实现数据的串行移位,其特性见表 31,管脚图如图 31 所示。 操作模式输 入输 出 复位MRABQ0Q1Q7 L LQ0Q6 HLLLQ0Q6 HLHLQ0Q6 HHLLQ0Q6 移 位 HHHHQ0Q6 表 31 74LS164 特性表 图 31 74LS164 管脚图 单片机以串行口方式 0(移位寄存

26、器方式)输出数据,2 片 74LS164 作为 2 排共阳极数码管的串/并转换显示接口。74LS164 为 TTL 单向 8 位移位寄存器, 可实现串行输入,并行输出。其中 A、B(第 1、2 脚)为串行数据输入端,2 个 引脚按逻辑“与”运算规律输入信号,共一个输入信号时可并接,共同作为输 入脚。CP(第 8 脚)为时钟输入端,可连接到串行口的 TXD 端。每一个时钟信号 的上升沿加到 CP 端时,移位寄存器移一位。8 个时钟脉冲过后,8 位二进制数 全部移入 74LS164 中。MR 脚(第 9 脚)为复位端,当该脚为低电平时,移位寄 存器各位复 0;只有当它为高电平时,时钟脉冲才起作用。

27、Q0Q7(第 36 和 1013 引脚)并行输出端分别接数码管的 ha(因为串行口从低位开始传送) 各段对应的引脚上。在给出了 8 个脉冲后,最先进入 74LS164 的第 1 个字节数 据到达了最高位。再来 1 个脉冲,第 1 个脉冲就会从最高位移出,进入下个 74LS164 的第一位。2 片 74LS164 首尾相串,而时钟端则连在一起。这样,当输 入 8 个脉冲时,从单片机 RXD 端输出的第 1 字节数据就进入了第 1 片 74LS164 中,而当第 2 个 8 个脉冲到来后,第 1 字节数据就进入第 2 片 74LS164,而随 后的第 2 字节的数据则进入了第一片 74LS164

28、中,这就实现了数据在 74LS164 中的串入并出。 3.1.2 显示驱动电路的设计 驱动电路采用具有大电流驱动能力的集成 7 个达林顿管的驱动芯片 ULN2003 作为核心器件。ULN2003 是 7 个共发射极达林顿驱动器,最大工作电压 可达到 50V,每极最大输出电流可达到 500mA。电路由两片移位寄存器 74LS164,两片 ULN2003 和 14 个限流电阻构成。74LS164 将从 AT89C51 串行口 获得的数据并行输出。采用 7 段显示,所以 74LS164 的 Q0 管脚悬空,第一片 74LS164 的 Q7 脚作为第二片的输入。ULN2003 将 74LS164 的输

29、出作为输入驱动 输出。 3.1.3 电源电路的设计 220V 交流电压经过变压器降压后次级输出 10V 左右交流电,经桥式整流、 滤波及三端稳压后输出 5V 直流电压。若选用的 LED 显示 2 英寸左右,变压器功 率应考虑 5W;若选用的 LED 显示尺寸小于 0.8 英寸,可不考虑驱动与缓冲器, 显示程序稍加调整,并调整 P0 口的上拉电阻就可满足显示亮度。 3.1.4 复位及晶体振荡电路 采用上电复位电路,由一只 10F 电解电容与一只 10K 电阻组成,同时反 向接一只保护二极管。两只 30pF 电容与一只 12MHz 晶体组成振荡电路。 3.1.5 键盘电路 键盘用于校正时间,选用普

30、通的按键,有功能键、增 1 键、减 1 键和确认 键共四个键。按键通过 P3 口的低四位接入,当有键按下时输入端为低电平,无 键按下时为高电平,单片机的输入电流要求较小,取电阻为 10K。 3.1.6 整点报时和闹钟电路 音乐报时电路中.选用两只不同音乐的 HL9300E 音乐集成片,分别用于整点 从音乐报时和定时闹钟音乐报时。P1.3 接整点从报时音乐集成片的触发控制端。 P1.5 经 9015 三极管控制继电器,当 P1.5 为低电平时接通定时闹钟音乐片的电 源及触发控制端,同时切断整点从报时音乐集成片的电源,使定时闹钟设定为 整点且定时时间到时只发出闹钟音乐声。以避免两个音乐集成片同时产

31、生音乐 声而互相干扰。AT 89051 的+5V 电源与 GND 之间需加一个 470 F 的电解电容 以防止继电器触点吸合时造成系统复位。音乐集成片的输出接蜂鸣器或扬声器, 闹钟定时时间到时可山按键清除报时音乐声。 3.1.7 看门狗电路 使用 CD4060 组成看门狗电路。CD4060 为 14 位二进制串行计数/分频/振荡 器。选 R1130K、C1100pF 时,振荡频率经内部 14 级二分频后,从 Q14 端 可输出约 2Hz 的频率信号。R2 为偏置电阻。正常情况下 8051 每隔一段时间 t1 就将 CD4060 复位一次。一旦由于某种原因导致 CPU 失控,CD4060 不能及

32、时被 复位,经过时间 t2(t2t1)就从 Q14 端输出高电平,立即将 8051 复位,把 CPU“拉回”到正常运行状态;然后 CPU 又将 CD4060 复位,使用 Q14 恢复成低 电平。R3 与 C2 组成微分电路,可将 P3.5 口输出的复位电平变成复位脉冲。 3.2 软件设计 3.2.1 系统流程图 开始 初始化 参数设置 调用键盘设 置子程序 调用显示 子程序 调用控制 子程序 3.2.2 日期程序设计 时钟芯片选用 DS1302,我们只需从 DS1302 各寄存器中读出年、月、日、 星期、小时、分、秒这些数据,再处理即可。在首次对 DS1302 进行操作之前, 必须对它进行初始

33、化,然后从 DS1302 中读出数据,再经过处理后,送给显示缓 冲单元。程序流程见图 32。 开始 初始化1302 1302开始振荡 从1302中读出年、周、 月、日、时、分、秒 读出的数据都为BCD 码,将其高低位分离, 送显示缓冲单元 图 32 日期程序流程图 3.2.3 时间调整程序设计 调整时间用 4 个调整按钮,K1 作为移位控制用,K2 和 K3 分别作为加和减 用,分别定义为控制按钮加按钮减按钮,K4 键按下时显示闹钟定时时间。在调 整时间过程中,要调整的位与别的位应该有区别,所以增加了闪烁功能,即调 整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一 定时间熄

34、灭一次,比如说 50ms。利用定时器计时,当达到 50ms 溢出时,就送 给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该 位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。时间调整程 序流程图如图 33 所示,其中 K2、K3 键的调整流程图如图 34 所示。 初始化,时 钟显示 K1键是否按下 对时钟进行对时,每按一 次调整的位跟着变化,分 别调整年、月、日、星 期、时、分 进行闹钟调整 K4是否按下 K4是否按下 显示闹钟 定时时间 结束 是 否 是 否 是 否 图 33 时间调整程序流程图 控制键有效,进入年调整程序 等待按键程序 加键有效减键有效 年加1年

35、减1 控制键有效,进入日调整程序 控制键有效,进入小时调整程序 加键有效 等待按键程序 减键有效 减键有效 年加1 年加1 年减1 年减1 等待按键程序 加键有效 控制键有效,进入月调整程序 等待按键程序 加键有效减键有效 年加1年减1 控制键有效,进入星期调整程序 控制键有效,进入分调整程序 加键有效 等待按键程序 减键有效 减键有效 年加1 年加1 年减1 年减1 等待按键程序 加键有效 控制键有效,跳出时间调 整程序,进入主循环程序 图 34 K2、K3 键实现加、减功能流程图 第四章 原程序代码 SCLK EQU P3.2 IO EQU P3,3 RST EQU P3.4 year D

36、ATA 66H month DATA 65H week DATA 64H day DATA 63H hour DATA 62H minute DATA 61H second DATA 60H DS1302_ADDR DATA 32H DS1302_DATA DATA 31H ORG 0000H AJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI 主程序主程序 START: SETB EA ;串行输出,方式 0 MOV SCON,#00H ;记数器 1,方式 1 MOV TMOD,#10H MOV TL1,#00H MOV TH1,#00H MOV DS1302_ADDR,#8EH MOV DS1302_DATA,00H ;允许写 1302 LCALL WRITE MOV DS1302_ADDR,#90H MOV DS1302_DATA,#0A6H

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1