基于51单片机的电子日历的设计(编辑修改稿)内容摘要:
充电功能,并且可以关闭充电功能。 采用普通 晶振。 它是一种一种高性能、低功耗、带 RAM的实时时钟电路,可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 ~。 采用三线接口与 CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 图 34 示出 DS1302 的引脚排列图。 淮安信息职业技术学院毕业设计论文 8 图 34 DS1302的引脚图 其中 Vcc1 为后备电源, Vcc2 为主电源。 在主电源关闭的情况下,也能保持时钟的连续运行。 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。 当 Vcc2 大于Vcc1+ 时, Vcc2 给 DS1302 供电。 当 Vcc2 小于 Vcc1 时, DS1302 由 Vcc1 供电。 X1和 X2 是振荡源,外接 晶振。 RST是复位 /片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能:首先, RST接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。 如果在传送过程中RSTS 置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电动行时,在 Vcc 大于等于 之前, RST必须保持低电平。 中有在 SCLK 为 低电平时,才能将 RST 置为高电平, I/O 为串行数据输入端(双向)。 SCLK 始终是输入端。 使用 DS1302 时可参考它的硬件接线图,如图 35 所示。 V C C 2X1X2GNDR S TI / OS L C KV C C 1U1D S 1 3 0 2 V C C12Y1C12012P1H e a d e r 2C220P 1 .2P 1 .1P 1 .032.768KHZ 图 35 DS1302的硬件接线图 DS1302 的工作原理: DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “ 0”,接着把 RST 端置“ 1”,最后才给予 SCLK 脉冲;读 /写时序如下图 4所示。 DS1302 的控制字的位 7必须置 1,若为 0 则不能把对 DS1302 进行读写数据。 对于位 6,若对程序进行读 /写时 RAM=1,对时间进行读 /写时, CK=0,位 1至位 5指操作单元的地址。 位 0是读 /写操作位,进行读操作时,该位为 1;该位为 0则表示进行的是写操作。 控制字节总是从最低位开始输入 /输出的。 表 .2为 DS1302 的日历、时间第三章 系统的硬件设计与实现 9 寄存器内容:“ CH”是时钟暂停标志位,当该位为 1 时,时钟振荡器停止, DS1302处于低功耗状态;当该位为 0时,时钟开始运行。 “ WP”是写保护位,在任何的对时钟和 RAM 的写操作之前, WP 必须为 0。 当“ WP”为 1时,写保护位防止对任一寄存器的写操作。 的控制字节: DS1302 控制字节的高有效位(位 7)必须是逻 辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1表示存取 RAM数据;位 5 至位 1指示操作单元的地址;最低有效位(位 0)如为 0表示要进行写操作,为 1表示进行读操作,控制字节总是从最低位开始输出 ( I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0开始。 同样,在紧跟 8 位的控制指令字后的下一个 SCLK脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。 的寄存器 DS1302 有 12 个寄存器,其中有 7个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。 此外, DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31个,每个单元组态为一个 8位的字节,其命令控制字为 C0H~ FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM的 31 个字节,命令控制字为 FEH(写 )、 FFH(读 )。 显示模块设计 本设计中由于要对年、月、日、星期、时、分、秒、显示,选择液晶显示器1602 字符型 LCD 通常有 14 条引脚线或 16 条引脚线的 LCD。 它可以显示两行,每行 16个字符,采用单 +5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。 它可以显示的字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,例如大写的英文字母“ A”的代码是 01000001B( 41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“ A”。 如图 36即 为 LCD 显示模块的接口线路,和附录一的连线一样,无需修改。 淮安信息职业技术学院毕业设计论文 10 图 36 LCD液晶显示模块 键盘模块 键盘模块用于调节、校准万年历的时间,更根据各个键盘的功能选择合适的键盘使用。 按键功能自上而下依次为: 1 选择修改项键、 2 增大键、 3 减小键、 4 确定键 . 文中系统软件设计使用开关做键盘使用如下图 37所示。 图 37 开关第四章 系统的软件设计 11 第四章 系统的软件设计 主程序设计 电子万年历的功能是在程序控制下实现的。 首先系统初 始化,系统开始运行,当有设置键按下时进入修改时间模式,无按键按下时读取时间等数据送入液晶屏显示;在修改时间模式下设置时间完成后再送数据到液晶屏显示。 该系统的软件设计方法按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。 这样有利于程序修改和调试,增强了程序的可移植性。 万年历的主程序流程图如图 41 所示。 图 41 主程序流程图 开始 初始化 读日期、时间 写日期、时间 显示子程序 开关控制子程序 时间修改子程序 日期修改子程序 显示结果 返回 淮安信息职业技术学院毕业设计论文 12 万年历优化算法 阳历算法: 阳历的算法比较简单,每十月的总的天数相对 来说是固定的。 只有 2 月份,在闰年是 29天,在非闰年是 28天。 每个月的日历排法.主要是确定每个月第一天是星期几。 我们知道 1901 年 1月 1日是星期二,星期的变化是 7 天一个周期,比如说要计算 1901 年 2 月 1 日是星期几,可以这样推算:从 1901 年 1月 1日到1901 年 2 月 1 日总共经过了 31天 (从表 1可 看出 ), 31对 7取模是 3: i901 年 1月 1 日是星期二,加三后,是星期五。 因此 1901 年 2 月 1 日是星期五。 同理,可以推算出从 1901— 2100 年任何一天是星期几,如下表 所示。 表 月份 1 2 3 4 5 6 7 8 9 10 11 12 闰年 31 29 31 30 31 30 31 31 30 31 30 31 非闰年 31 28 31 30 31 30 31 31 30 31 30 31 下图 42是阳历计算程序流程图。 图 42 阳历计算程序流程图 第四章 系统的软件设计 13 阳历与星期的换算方法 在现行阳历中,历年的长度 365 天 (平年 )或者 366 天 (闰年 )都不是七的整数倍,所以日期与星期之间没有明显的对应关系。 一般情况下,不看日历牌就无法知道某月某日是星期几。 不过,它们之间还是有一定规律可循的,只要经过 简单计算,或者查找表格,就可以知道与任何日期相对应的星期数。 这里列出两种方法供读者选用。 ( 1)公式法:设 y麦示公元年数, d 表示从 1 月 1 日起算的日数。 首先求出 1月 0日 (即上一年 12 月 31 日 )的星期序数,然后与日数 d相加,其和用 7除,余数就是答案。 为了推导公式,我们想一想,第一年 1月 0日的星期序数与第二年 1月 0日的星期序数有什么关系 ?平年 365 天,等于 52 个星期零1 天,所以第二年 1 月 0 日的星期序数比第一年的多 l,但这个 l 已包含在 y 中了,因为第二年的年数 y比第一年大 1;闰年 366天,等于 52 个星期零二天,所以第二年 1 月 0 日的星期序数等于第一年 (闰年 )的星期序数加 2,除了 y 中包含的 1 外,还需加修正值 1。 根据这些道理我们可以推得三个公式,将式中 S 用 7除,余数就表示星期几。 从公元 1900 年 1 月 1 日到公元 2101 年 1 月 1 日之间这 201年,可用公式: S = y- 1900 + [(y- 1901)/4] + d 方括号表示取商的整数部分,对于1900 年 — 1904 年这五年方括号值为 0。 这个公式是这样来的: 1900 年 1 月 0 日 (即1899 年 12月 31 日 )是星期天。 这年是 平年,以后直到 2100 年前都是每隔 4 年一闰,闰年多出的那一天,影响到下一年 1 月 0日的星期序数,并不影响闰年本身,闰年产生的修正值应加到下一年上去,所以〔 (y- 1901)/4〕中,计算时用 190l而不是 1900。 例:求 2020 年 12 月 31 日是星期几 ? 2020 年是闰年,从 1月 1日算起, 12 月 31 日是第 366天,所以 d= 366。 根据公式有: S= 2020- 1900 +〔 (2020- 1901)/4〕 + 366 = 100 +〔 99/4〕 + 366 = l00 + 24 + 366 = 490 490 为 7的整数倍,即余数为 0,所以 2020 年 12月 31 日为星期日。 ( 2)更普遍的公式为: s= v- 1 +〔 (y- 1/4〕-〔 (y- 1/100〕 +〔 (y- 1/400〕 + d 对于这个公式,我们不妨这样考虑:阳历 400年中有 97 个闰年,共 365x 400 + 97 = 天, 146, 097= 20, 871 7,即正好是 7 的整数倍。 这表明某年某月某日所对应的星期序数与四百年前同月同日所对应的星期序数完全相同。 淮安信息职业技术学院毕业设计论文 14 前边例中我们已算出公元 2020 年 1月 0日 (即 2020 年 12 月 31 日 )是星期日,那么,公元 1601 年、 1201 年„„以及公元 1 年的 1月 0日都是星期日。 假如每个历年都是 365 天的话,那么,由于公元 1 年 1 月 0 日是星期日,只要公式 S= y- 1 + d 就可以了,但实际上闰年是 366 天,所以我们必须根据闰年的有关规定进行修正。 〔 (y- 1)/4〕是四年一闺产生的修正值。 如果只取这一个修正项,就会多修正以至造成错误,这是因为,根据阳历的规定,逢百之年虽然能被 4整除,却不一定是闰年,所以必须减去多修正的值,它等于〔 (y- 1/100)〕。 如果逢百之年都是平年,只要这两个修正项也就可 以了。 可是,公元年数能被 400 整除的年 (当然也一定能被 100 整除 )仍是闰年,所以还必须加上〔 (y- 1/400)〕。 这个修正项才行。 方括号中之所以用 y- 1而不用 y,是由于修正值是加到闰年的下一年上去,而不是加到闰年本身上。 万年历工作的简易流程图 在万年里程序中,单片机的工作流程图如下图 43所示。 图 43 单片机的简易工作流程图 开始 单片机读 DS1302数据 单片机送数据到 LCD1602 单片机判断按键 单片机处理。基于51单片机的电子日历的设计(编辑修改稿)
相关推荐
大小,同时完成更强大的功能,会直接执行系统平台提供的各种可执行文件。 6. 信息数据包括已破解的口令、要攻击的地址列表、网络蠕虫自身的压缩包等等。 基本功能模块蠕虫的基本功能模块共包括以下5部分:1) 搜索模块:寻找下一台要传染的机器。 为提高搜索效率,可以采用一系列的搜索算法。 2) 攻击模块:在被感染的机器上建立传输通道(传染途径)。 为减少第一次传染数据传输量,可以采用引导式结构。 3)
研究:化工过程系统工程的反应、分离、优化设计,化工装备安全可靠经济的运行,化工设备优化设计,化工过程节能优化,高分子化工及新材料,化工系统控制等相关方面的科学与工程技术。 本领域与环境工程、计算机技术、材料工程、机械工程、仪器仪表工程、动力工程领域均有密切的联系和交叉。 二、主要研究方向 1. 化学工程 2. 化学工艺 3. 生物化工 4. 应用化学 5. 工业催化 6. 化工过程机械 三
有间竭性障碍特征的,即在短时间内可能会短路,尤其是在精神紧张的情况下。 其它设计师现场与客户沟通,哪有你事先准备好相应的沟通话术更有效呢。 洽谈话术可以是在第二次与客户洽谈时使用,有些通用话术则随时都可使用。 ★ 签单策略: 一切成功都是准备出来的。 不论你的知识怎么样,不论你的基础怎么样,当你经过充分准备以后 ,就会产生无比的自信,当你准备而别人不准备时,成功的天平就会向你倾斜。 第五章
12 3 产品分析 产品属于营销 4Ps 的内容,也是最基本的营销要素。 一个产品能否很快适应市场的需求,不仅仅只是取决于产品的口味、颜色、功能、香味,还取决于包装、款式、质量、 品牌以及消费者使用效果、产品的售后服务、消费者使用的效果和心理感受。 在产品的进入市场之后还要综合考虑产品的生命周期、产品线的延伸、产品的组合、产品的开发和扩展。 3. 1 产品及包装 产品 (1)产品原料
通过掺杂电导率变化范围很宽,表现出动态微波吸收特性 [15],国外利用聚苯胺的微波吸收特性,美国将其用作远距离加热材 料,用天飞机中的塑料焊接技术,法国已研制了隐形潜艇 [16];另外,美国已制出一种由聚苯胺复合而成的雷达吸波材料,具有光学透明性,可以喷涂在飞机座舱盖,精确制导武器和巡航导弹的光学透明窗口上,以减弱目标的雷达回波 [17]。 聚苯胺电化学反应可逆性好
却具有许多明轮无法竞争的优点,明轮逐步在海船上消失。 在科学技术发展过程中,许多机械装置的性能在人们还不太清楚的时候,就已经广泛使用了。 但是人们在不完全理解它的物理规律和没有完整的理论分析以前,这些装置很难达到它的最佳性能。 螺旋桨也不例外,直到 1860 年,虽然它在海船上已经成为一枝独秀,但是它的成就全都是依靠多年积累的经验。 螺旋桨的进步,只依靠专家们的直观推理