




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 一 引言一 引言 2 2 一 本课题的背景 2 二 本设计的目的和意义 2 三 本设计的要求 3 四 方案选择与实验基本原理 3 二二 系统的硬件设计与实现系统的硬件设计与实现 6 6 一 电路设计框图 6 二 系统硬件概述 6 三 主要单元电路的设计 6 三 系统的软件设计三 系统的软件设计 1111 一 程序流程框图 11 二 子程序的设计 14 四 结论及展望四 结论及展望 1919 五 致谢词五 致谢词 1919 一 系统电路图 20 二 系统程序清单 21 六 参考文献六 参考文献 6363 2 一 引言一 引言 一 本课题的背景 作为中国一种传统的东西 挂历在人们心中一直有着特殊的含义 因为挂 历除了有查阅日期 方便记事等功能外 还是一种颇有文化品位的装饰物 而 对于一些公司 企业 在挂历上印刷一些自己的产品 服务内容 联系电话等 无疑也是一种宣传 也正是因为如此 挂历长期以来一直受到人们的青睐 什 么铜版纸 塑膜挂历 典雅的宣纸 绢丝 油画布挂历和富丽堂皇的金箔画 镭射画挂历等层出不穷 而今 随着时代发展 挂历大有美人迟暮之感 据调 查发现 90 的家庭表示今年将不会去买挂历 其中 50 的市民家庭的挂历是单位 发或他人送 但这 50 的市民表示 如果单位不发 他人不送 自己不会主动 去买 那么是什么让我们的传统如此疲软呢 众所周知 传统挂历最大的功能是 查看日期 装饰其次 作为礼品则是最后 近些年随着生活水平的提高 人们 获知日期的途径已越来越多 据中国社会调查事务所 ssic 在北京 上海等地 对 265 位居民进行的计算机辅助电话调查显示 此项调查为多选题 有 68 的被访者看日历 有 62 的被访者看台历 其中有 21 的被访者使用的是电子台 历 有 58 的被访者看呼机 有 27 的被访者看手机 有 20 的被访者看手表 有 14 的被访者看街上的显示牌 有 33 的被访者看电视 有 60 的被访者看报 纸 有 16 的被访者听广播 有 42 的被访者上网 有 12 的被访者向别人打听 由此表明 挂历实用功能的弱化直接导致了挂历市场的 疲软 那么 曾经 被认同的装饰功能呢 回答也是否定的 很多人已经明确表示 明年不挂挂历 因为消费者认为花很大力气装修的房子 有谁愿意在墙上打个眼儿挂挂历呢 影响美观不说 还很俗气 至于礼品功能 大多数消费者都认为现在用挂历当 礼品有点不够档次 随着电子科技的不断发展 传统的挂历已被一些高档的电子台历所取代 与传统的挂历相比 电子台历融合了挂历和时钟的优点 能昼夜清晰显示 集 年 月 日 时 分 秒 日期 农历 气温于一体 外观新颖 造型别具一 格 除此之外由于挂历制作成本相对较高 挂历的销售价格也大多在 5 30 元之间 而一个电子台历的价格也在这之间 但是挂历只能用一年 而电子台 历则不一样 由于它可以自动识别闰年 公历 农历 大小月份 农历 星期 能自动对应公历无须调整 对若干年前后的日期都可以查询 但考虑到其寿命 原因 至少也可用 5 8 年 在价格相差不大的情况下 电子台历的性价比显然 要高的多 就其阅读功能而言 电子台历阅读起来更加方便 同时他还有闹铃 和显示温度的功能 这比传统的挂历要强大的多 其实现的方法也很简单 用 一个单片机和 lcd 液晶显示器就可以实现 由此可见 电子台历的市场经济开 发价值要比挂历要高的多 电子台历取代传统的挂历已成为不可抵挡的趋势 因此开发一个电子台历就必须要了解单片机和 lcd 夜晶显示器的原理和功 能等 下面一节我们将简单介绍一下单片机和液晶显示器 二 本设计的目的和意义 1 在学习了 数字电子技术 和 单片机原理及接口技术 课程后 为 了加深对理论知识的理解 学习理论知识在实际中的运用 培养动手能力和解 3 决实际问题的经验让学生接触专用时钟芯片 ds1302 并会用 ds1302 芯片开发 时钟模块 应用到其他系统中去 熟悉 wave 软件调试程序和仿真 2 通过实验提高对单片机的认识 3 通过实验提高焊接 布局 电路检查能力 4 通过实验提高软件调试能力 5 进一步熟悉和掌握单片机的结构及工作原理 6 通过课程设计 掌握以单片机核心的电路设计的基本方法和技术 了 解表关电路参数的计算方法 7 通过实际程序设计和调试 逐步掌握模块化程序设计方法和调试技术 8 通过完成一个包括电路设计和程序开发的完整过程 使学生了解开 发一单片机应用系统的全过程 为今后从事相应打下基础 三 本设计的要求 1 基本要求 1 具有年 月 日 星期 时 分 秒等功能 2 时间与阴 阳历能够自动关联 3 有温度计功能 4 具备年 月 日 星期 时 分 秒校准功能 2 创新要求 1 具有上 下课响铃功能 2 具有防御报警功能 四 方案选择与实验基本原理 1 方案选择 1 单片机芯片的选择方案和论证 方案一 采用 89c51 芯片作为硬件核心 采用 flash rom 内部具有 4kb rom 存储 空间 能于 3v 的超低压工作 而且与 mcs 51 系列单片机完全兼容 但是运用于电 路设计中时由于不具备 isp 在线编程技术 当在对电路进行调试时 由于程序 的错误修改或对程序的新增功能需要烧入程序时 对芯片的多次拔插会对芯片 4 造成一定的损坏 方案二 采用 at89s52 片内 rom 全都采用 flash rom 能以 3v 的超底压工作 同 时也与 mcs 51 系列单片机完全该芯片内部存储器为 8kb rom 存储空间 同样 具有 89c51 的功能 且具有在线编程可擦除技术 当在对电路进行调试时 由 于程序的错误修改或对程序的新增功能需要烧入程序时 不需要对芯片多次拔 插 所以不会对芯片造成损坏 所以选择采用 at89s52 作为主控制系统 2 显示模块选择方案和论证 方案一 采用 led 液晶显示屏 液晶显示屏的显示功能强大 可显示大量文字 图形 显示多样 清晰可见 但是价格昂贵 需要的接口线多 所以在此设计中不采用 led 液晶显示屏 方案二 采用点阵式数码管显示 点阵式数码管是由八行八列的发光二极管组成 对于显示文字比较适合 如采用在显示数字显得太浪费 且价格也相对较高 所以 也不用此种作为显示 方案三 采用 led 数码管动态扫描 led 数码管价格适中 对于显示数字最合适 而且 采用动态扫描法与单片机连接时 占用的单片机口线少 所以采用了 led 数码管作为显示 3 时钟芯片的选择方案和论证 方案一 直接采用单片机定时计数器提供秒信号 使用程序实现年 月 日 星期 时 分 秒计数 采用此种方案虽然减少芯片的使用 节约成本 但是 实现 的时间误差较大 所以不采用此方案 方案二 采用 ds1302 时钟芯片实现时钟 ds1302 芯片是一种高性能的时钟芯片 可自动对秒 分 时 日 周 月 年以及闰年补偿的年进行计数 而且精度 5 高 位的 ram 做为数据暂存区 工作电压 2 5v 5 5v 范围内 2 5v 时耗电小于 300na 4 温度传感器的选择方案与论证 方案一 使用热敏电阻作为传感器 用热敏电阻与一个相应阻值电阻相串联分压 利用热敏电阻阻值随温度变化而变化的特性 采集这两个电阻变化的分压值 并进行 a d 转换 此设计方案需用 a d 转换电路 增加硬件成本而且热敏电 阻的感温特性曲线并不是严格线性的 会产生较大的测量误差 方案二 采用数字式温度传感器 ds18b20 此类传感器为数字式传感器而且仅需要 一条数据线进行数据传输 易于与单片机连接 可以去除 a d 模块 降低硬件 成本 简化系统电路 另外 数字式温度传感器还具有测量精度高 测量范围 广等优点 5 电路设计最终方案决定 综上各方案所述 对此次作品的方案选定 采用 at89s52 作为主控制系统 ds1302 提供时钟 数字式温度传感器 led 数码管动态扫描作为显示 2 实验基本原理 按照系统设计功能的要求 初步确定设计系统由主控模块 时钟模块 显 示模块 键盘接口模块 温度采集模块共 5 个模块组成 电路系统构成框图如 图 1 所示 主芯片 at89s52 片内 rom 全都采用 flash rom 能以 3v 的超底压工 作 同时也与 mcs 51 系列单片机完全该芯片内部存储器为 8kb rom 存储空间 具有在线编程可擦除技术 当在对电路进行调试时 由于程序的错误修改或对 程序的新增功能需要烧入程序时 不需要对芯片多次拔插 所以不会对芯片造 成损坏 时钟芯片使用美国 dallas 公司推出的一种高性能 低功耗 带 ram 的实时时钟 dsl302 采用 dsl 302 作为主要计时芯片 可以做到计时准 确 更重要的是 dsl302 可以在很小电流的后备电源 2 5 5 5v 电源 在 2 5v 时耗电小于 300 na 下继续计时 并可编程选择多种充电电流来对后备电 源进行慢速充电 可以保证后备电源基本不耗电 显示模块采用 led 数码管 动态扫描 键输入采用查询法实现调整功能 与单片机连接时 占用的单片机口 6 线少 数字式温度传感器 ds18b20 此类传感器为数字式传感器而且仅需要一 条数据线进行数据传输 易于与单片机连接 可以去除 a d 模块 降低硬件成 本 简化系统电路 另外 数字式温度传感器还具有测量精度高 测量范围广 等优点 二二 系统的硬件设计与实现系统的硬件设计与实现 一 电路设计框图 图 1 电子万年历电路系统构成框图 二 系统硬件概述 本电路是由 at89s52 单片机为控制核心 具有在线编程功能 低功耗 能 在 3v 超低压工作 时钟电路由 ds1302 提供 它是一种高性能 低功耗 带 ram 的实时时钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具 有闰年补偿功能 工作电压为 2 5v 5 5v 采用三线接口与 cpu 进行同步通信 并可采用突发方式一次传送多个字节的时钟信号或 ram 数据 ds1302 内部有一 个 31 8 的用于临时性存放数据的 ram 寄存器 可产生年 月 日 周日 时 分 秒 具有使用寿命长 精度高和低功耗等特点 同时具有掉电自动保存功 能 温度的采集由 ds18b20 构成 显示部份由 个数码管 74ls138 74ls47 译码器构成 使用动态扫描显示方式对数字的显示 三 主要单元电路的设计 1 单片机主控制模块的设计 at89s52 单片机为 40 引脚双列直插芯片 有四个 i o 口 p0 p1 p2 p3 mcs 51 单片机共有 4 个 8 位的 i o 口 p0 p1 p2 p3 每一条 i o 线都能 独立地作输出或输入 单片机的最小系统如下图所示 18 引脚和 19 引脚接时钟电路 xtal1 接外部 at89s5 2 s52 主控制 模 块 ds1302 时钟模 块 led 数码管动 态扫描显示模 块 温度采集模 块 键盘模块 7 晶振和微调电容的一端 在片内它是振荡器倒相放大器的输入 xtal2 接外部晶 振和微调电容的另一端 在片内它是振荡器倒相放大器的输出 第 9 引脚为复位 输入端 接上电容 电阻及开关后够上电复位电路 20 引脚为接地端 40 引脚为电 源端 如图 2 所示 图 2 主控制系统 2 时钟电路 dsl302 图 3 示出 ds1302 的引脚排列 其中 vcc1 为后备电源 vcc2 为主电源 在 主电源关闭的情况下 也能保持时钟的连续运行 ds1302 由 vcc1 或 vcc2 两者 中的较大者供电 当 vcc2 大于 vcc1 0 2v 时 vcc2 给 ds1302 供电 当 vcc2 小于 vcc1 时 ds1302 由 vcc1 供电 x1 和 x2 是振荡源 外接 32 khz 晶 振 rst 是复位 片选线 通过把 rst 输入驱动置高电平来启动所有的数据传送 rst 输入有两种功能 首先 rst 接通控制逻辑 允许地址 命令序列送入移位 寄存器 其次 rst 提供终止单字节或多字节数据的传送手段 当 rst 为高电 平时 所有的数据传送被初始化 允许对 ds1302 进行操作 如果在传送过程中 rsts 置为低电平 则会终止此次数据传送 i o 引脚变为高阻态 上电动行时 在 vcc 大于等于 2 5v 之前 rst 必须保持低电平 中有在 sclk 为低电平时 才能将 rst 置为高电平 i o 为串行数据输入端 双向 sclk 始终是输入端 8 图 3 ds1302 的引脚图 3 温度采集模块设计 如图 4 所示 采用数字式温度传感器 ds18b20 它是数字式温度传感器 具有测量精度高 电路连接简单特点 此类传感器仅需要一条数据线进行数据 传输 使用 0 7 与 ds18b20 的 i o 口连接加一个上拉电阻 vcc 接电源 vss 接 地 图 4 ds18b20 温度采集 4 电路原理及说明 1 时钟芯片 ds1302 的工作原理 ds1302 在每次进行读 写程序前都必须初始化 先把 sclk 端置 0 接着把 rst 端置 1 最后才给予 sclk 脉冲 读 写时序如下图 4 所示 图 5 为 ds1302 的控制字 此控制字的位 7 必须置 1 若为 0 则不能把对 ds1302 进 行读写数据 对于位 6 若对程序进行读 写时 ram 1 对时间进行读 写时 ck 0 位 1 至位 5 指操作单元的地址 位 0 是读 写操作位 进行读操作时 该 9 位为 1 该位为 0 则表示进行的是写操作 控制字节总是从最低位开始输入 输 出的 表 6 为 ds1302 的日历 时间寄存器内容 ch 是时钟暂停标志位 当 该位为 1 时 时钟振荡器停止 ds1302 处于低功耗状态 当该位为 0 时 时钟 开始运行 wp 是写保护位 在任何的对时钟和 ram 的写操作之前 wp 必须 为 0 当 wp 为 1 时 写保护位防止对任一寄存器的写操作 2 ds1302 的控制字节 ds1302 的控制字如表 1 所示 控制字节的高有效位 位 7 必须是逻辑 1 如果它为 0 则不能把数据写入 ds1302 中 位 6 如果 0 则表示存取日历时 钟数据 为 1 表示存取 ram 数据 位 5 至位 1 指示操作单元的地址 最低有效 位 位 0 如为 0 表示要进行写操作 为 1 表示进行读操作 控制字节总是从 最低位开始输出 3 数据输入输出 i o 在控制指令字输入后的下一个 sclk 时钟的上升沿时 数据被写入 ds1302 数据输入从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的下 一个 sclk 脉冲的下降沿读出 ds1302 的数据 读出数据时从低位 0 位到高位 7 如下图 5 所示 图 5 ds1302 读 写时序图 4 ds1302 的寄存器 ds1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 bcd 码形式 其日历 时间寄存器及其控制字见表 2 表 2 ds1302 的日历 时间寄存器 10 此外 ds1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存 器及与 ram 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄存器 外的所有寄存器内容 ds1302 与 ram 相关的寄存器分为两类 一类是单个 ram 单元 共 31 个 每个单元组态为一个 8 位的字节 其命令控制字为 c0h fdh 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 ram 寄 存器 此方式下可一次性读写所有的 ram 的 31 个字节 命令控制字为 feh 写 ffh 读 5 显示模块的设计 如图 6 所示 采用动态扫描显示 由 个数码管 3 8 译码器 74ls138 接 1k 限流电阻 再接 8550 三极管接到共阳数码管的 com 端作为选通位码 每位 选择相应的列 74ls47 接 240 限流电阻 再接共行的 led 数码管的断码 图 6 led 动态扫描显示 11 三 系统的软件设计三 系统的软件设计 一 程序流程框图 开始 初始化 读 写日期 时间和温度 分离日期 时间 温度显示值 显示子程序 农历自动更新子程序 日期 时间修改子程序 闰月子程 返回 定时闹表 2 ds1302 的日历 时间寄存器 铃子程序 图 7 主程序流程图 12 图8 计算阳历程序流程图 13 图 9 时间调整程序流程图 14 图 10 阴历程序流程图 二 子程序的设计 1 ds18b20 温度子程序 config12 equ 7fh temph equ 21h templ equ 20h reg2 equ 22h reg3 equ 23h reg4 equ 24h dat equ p0 7 toutou lcall chushi lcall rdtemp mov a templ anl a 11110000b mov templ a mov a temph anl a 00000111b orl a templ swap a mov 25h a mov a 25h mov b 64h div ab mov a b mov b 0ah div ab swap a orl a b mov 10h a ret chushi lcall reset mov a 0cch lcall write111 mov a 4eh lcall write111 mov a config12 lcall write111 ret rdtemp 15 lcall reset mov a 0cch lcall write111 mov a 44h lcall write111 lcall dl1ms lcall reset mov a 0cch lcall write111 mov a 0beh lcall write111 lcall erad111 mov templ a lcall erad111 mov temph a ret reset la setb dat mov 52h 200 lb clr dat djnz 52h lb setb dat mov 52h 30 lc djnz 52h lc clr c orl c dat jc lb mov 58h 80 ld orl c dat jc lp djnz 58h ld sjmp la lp mov 52h 250 lf djnz 52h lf ret write111 mov 53h 8 w51ha setb dat mov 54h 8 rrc a clr dat w52ha djnz 54h w52ha mov dat c mov 54h 30 w53ha djnz 54h w53ha djnz 53h w51ha setb dat ret erad111 clr ea mov 58h 8 rd1a clr dat mov 54h 6 nop setb dat rd2a djnz 54h rd2a mov c dat rrc a mov 55h 30 rd3a djnz 55h rd3a djnz 58h rd1a setb dat ret 2 读 写 ds1302 子程序 写 1302 程序 write clr sclk 16 nop setb rst nop mov a 32h mov r4 8 write1 rrc a 送地址给 1302 nop nop clr sclk nop nop nop mov io c nop nop nop setb sclk nop nop djnz r4 write1 clr sclk nop mov a 31h mov r4 8 write2 rrc a nop 送数据给 1302 clr sclk 17 nop nop mov io c nop nop nop setb sclk nop nop djnz r4 write2 clr rst ret 读 1302 程序 read clr sclk nop nop setb rst nop mov a 32h mov r4 8 read1 rrc a 送地址给 1302 nop mov io c nop nop nop setb sclk 18 nop nop nop clr sclk nop nop djnz r4 read1 mov r4 8 read2 clr sclk nop 从 1302 中读出数据 nop nop mov c io nop nop nop nop nop rrc a nop nop nop nop setb sclk nop djnz r4 read2 mov 31h a clr rst 19 ret 四 结论及展望四 结论及展望 本设计基于 51 系列的 at89s52 制作了多功能电子台历 完成实时时钟 电 子台历 室内温度的显示 具有闰年补偿 调整时间日期 设置闹钟 根据设 定的年 月 日自动匹配星期的扩展功能 本系统特别实用于日常生活的时钟温度控制的应用 以此为基础 可以开 发出多种前景极其乐观的各类应用 如铃声定时系统 防盗报警系统 温度控 制系统等 在下一步的工作中 可以考虑使用 51 功能的模块并开发嵌入式系统 温度时间的应用 虽较为完善的完成了既定功能 但仍存在一定的缺陷 没有添加蜂鸣器 闹钟及输入错误时只能显示报警 没有声音提示 未能添加电池功能 在主电 源关闭的情况下 不能保持时钟的连续运行 五 致谢词五 致谢词 千里之行 始于足下 终于完成了毕业设计的全部工作 有一种如释重 负的感觉 前后经历了四个月时间 但对于踏踏实实搞知识创新的人来说 从 搜集材料 投入研讨到起草排版 打印输出 这是一个漫长的过程 其间有过 百思不解时的苦闷 也有过豁然开朗时的喜悦 不曾身处其境的人 一般不宜 感同身受 我的导师汪光宅说过 科研工作是一项艰苦 寂寞并且需要全心 全意投入的工作 一旦选择了这个责任 我们就要承担得起他人所不能承受的 压力 正因为这样 我们才要努力做出成果 事先有了心理准备 做起事来才不至于手足无措 尽管如此 由于毕业设 计涉及内容较多 范围较宽 方方面面都要照顾到 还是不可避免地遇到许多 问题 学校领导未雨绸缪 提前让我们熟悉了解了毕业设计的基础知识 同时 下发 毕业设计 论文 指导手册 予以辅导 这给了我们极大的鼓舞和帮助 导师每周三次的面授和上机指导 给论文的进展带来缕缕曙光和推动力 更难 忘实验室老师刘强和寝室同学对我的这次毕业设计的帮助与关心 使得我的工 作和学习得以顺利进行 在此谨以一颗感激之心向这些给予我极大帮助的人致 以衷心的谢意 20 附录 附录 一 系统电路图 21 二 系统程序清单 config12 equ 7fh temph equ 21h templ equ 20h reg2 equ 22h reg3 equ 23h reg4 equ 24h dat equ p0 7 sclk equ p3 2 io equ p3 3 rst equ p3 4 year data 66h month data 65h week data 64h day data 63h hour data 62h mintue data 61h second data 60h org 0000h ljmp start org 001bh ljmp intt1 start 初值 lcall zj setb ea mov scon 00h 串行输 出 方式 0 mov tmod 10h 计数器 1 方式 1 mov tl1 00h mov th1 00h mov 32h 8eh mov 31h 00h 允许写 1302 lcall write mov 32h 90h mov 31h 0a6h 1302 充电 充电电流 1 1ma lcall write 主程序 main1 mov 32h 8dh 读出年 lcall read mov year 31h mov 32h 8bh 读出星期 lcall read mov week 31h mov 32h 89h 读出月 lcall read mov month 31h mov 32h 87h 读出日 22 lcall read mov day 31h mov 32h 85h 读出小时 lcall read mov hour 31h mov 32h 83h 读出分钟 lcall read mov mintue 31h mov 32h 81h 读出秒 lcall read mov second 31h 分离缓存 mov r0 year 年分离 送 显示缓存 lcall divide mov 7bh r1 mov 4bh r1 mov 7ch r2 mov 4ch r2 mov 78h week mov 48h week mov r0 month 月分离 送 显示缓存 lcall divide mov 79h r1 mov 49h r1 mov 7ah r2 mov 4ah r2 mov r0 day 日分离 送显 示缓存 lcall divide mov 76h r1 mov 46h r1 mov 77h r2 mov 47h r2 mov r0 hour 小时分离 送 显示缓存 lcall divide mov 74h r1 mov 44h r1 mov 75h r2 mov 45h r2 mov r0 mintue 分钟分离 送显示缓存 lcall divide mov 72h r1 mov 42h r1 mov 73h r2 mov 43h r2 mov r0 second 秒分离 送 显示缓存 lcall divide mov 70h r1 mov 40h r1 23 mov 71h r2 mov 41h r2 clr ea lcall toutou setb ea lcall display lcall gengxian 更新农 历程序 jnb p0 1 setg111 jnb f0 sss setb p0 4 非闰月 则 p0 4 清零 指示灯亮 ljmp main1 setg111 ljmp setg sss clr p0 4 闰月 则 p0 4 置位 指示灯不亮 ljmp main1 温度 toutou lcall chushi lcall rdtemp mov a templ anl a 11110000b mov templ a mov a temph anl a 00000111b orl a templ swap a mov 25h a mov a 25h mov b 64h div ab mov a b mov b 0ah div ab swap a orl a b mov 10h a ret chushi lcall reset mov a 0cch lcall write111 mov a 4eh lcall write111 mov a config12 lcall write111 ret rdtemp lcall reset mov a 0cch lcall write111 mov a 44h lcall write111 lcall dl1ms 24 lcall reset mov a 0cch lcall write111 mov a 0beh lcall write111 lcall erad111 mov templ a lcall erad111 mov temph a ret reset la setb dat mov 52h 200 lb clr dat djnz 52h lb setb dat mov 52h 30 lc djnz 52h lc clr c orl c dat jc lb mov 58h 80 ld orl c dat jc lp djnz 58h ld sjmp la lp mov 52h 250 lf djnz 52h lf ret write111 mov 53h 8 w51ha setb dat mov 54h 8 rrc a clr dat w52ha djnz 54h w52ha mov dat c mov 54h 30 w53ha djnz 54h w53ha djnz 53h w51ha setb dat ret erad111 clr ea mov 58h 8 rd1a clr dat mov 54h 6 nop 25 setb dat rd2a djnz 54h rd2a mov c dat rrc a mov 55h 30 rd3a djnz 55h rd3a djnz 58h rd1a setb dat ret 公历设置程序 setg setb tr1 setb et1 mov 32h 8eh mov 31h 00h 允许写 1302 lcall write mov 32h 80h mov 31h 80h 1302 停 止振荡 lcall write gwait lcall display jnb p0 1 gwait setg1 lcall display jnb p0 1 setg2 jnb p0 2 gaddyear jnb p0 3 jianyear ajmp setg1 gaddyear mov r7 66h 年加一 lcall add1 mov 66h a cjne a 51h gaddyear1 mov 66h 00h ajmp gaddyear1 jianyear mov r7 66h 年减一 lcall jian1 mov 66h a cjne a 00h gaddyear1 mov 66h 51h gaddyear1 mov 32h 8ch 年值送人 1302 mov 31h 66h lcall write mov r0 66h lcall divide 年分离送 显示缓存 mov 4bh r1 mov 7bh r1 mov 4ch r2 26 mov 7ch r2 waitt1 lcall display jnb p0 2 waitt1 jnb p0 3 waitt1 ajmp setg1 setg2 setb 0ah 调月时闪 标志 gwait2 lcall display jnb p0 1 gwait2 setg3 lcall display jnb p0 1 setg4 jnb p0 2 gaddmonth jnb p0 3 jianmonth ajmp setg3 gaddmonth mov r7 65h 月加一 lcall add1 mov 65h a cjne a 13h gaddmonth1 mov 65h 01h ajmp gaddmonth1 jianmonth mov r7 65h 月减一 lcall jian1 mov 65h a cjne a 00h gaddmonth1 mov 65h 12h gaddmonth1 mov 32h 88h 月值送人 1302 mov 31h 65h lcall write mov r0 65h lcall divide 月分离 送 显示缓存 mov 79h r1 mov 49h r1 mov 7ah r2 mov 4ah r2 waitt2 lcall display jnb p0 2 waitt2 jnb p0 3 waitt2 ajmp setg3 setg4 setb 0bh 调日时闪标志 gwait4 lcall display jnb p0 1 gwait4 setg5 lcall display jnb p0 1 setg6 27 jnb p0 2 gaddday jnb p0 3 jianday ajmp setg5 gaddday mov r7 63h 日加一 lcall add1 mov 63h a cjne a 32h gaddday1 mov 63h 01h jianday mov r7 63h 日减一 lcall jian1 mov 63h a cjne a 00h gaddday1 mov 63h 31h gaddday1 mov 32h 86h 日值送人 1302 mov 31h 63h lcall write mov r0 63h lcall divide 日分离 送 显示缓存 mov 76h r1 mov 46h r1 mov 77h r2 mov 47h r2 waitt3 lcall display jnb p0 2 waitt3 jnb p0 3 waitt3 ajmp setg5 setg6 setb 0ch 调星期时闪标 志 gwait6 lcall display jnb p0 1 gwait6 setg7 lcall display jnb p0 1 setg8 jnb p0 2 gaddweek jnb p0 3 jianweek ajmp setg7 gaddweek mov r7 64h 星期加一 lcall add1 mov 64h a cjne a 07h gaddweek1 mov 64h 00h ajmp gaddweek1 jianweek mov r7 64h 星期减一 lcall jian1 mov 64h a cjne a 00h gaddweek1 mov 64h 06h gaddweek1 28 mov 32h 8ah mov 31h 64h 星期值送 人 1302 lcall write mov r0 64h lcall divide 星期值分离 送显示缓存 mov 48h r1 mov 78h r1 waitt4 lcall display jnb p0 2 waitt4 jnb p0 3 waitt4 ajmp setg7 setg8 setb 0dh 调小时时闪 标志 gwait8 lcall display jnb p0 1 gwait8 setg9 lcall display jnb p0 1 setg10 jnb p0 2 gaddhour jnb p0 3 jianhour ajmp setg9 gaddhour mov r7 62h 小时加 一 lcall add1 mov 62h a cjne a 24h gaddhour1 mov 62h 00h ajmp gaddhour1 jianhour mov r7 62h 小时减 一 lcall jian1 mov 62h a cjne a 00h gaddhour1 mov 62h 23h gaddhour1 mov 32h 84h 小时值送 人 1302 mov 31h 62h lcall write mov r0 62h lcall divide 小时值 分离送显示缓存 mov 74h r1 mov 44h r1 mov 75h r2 mov 45h r2 waitt5 lcall display jnb p0 2 waitt5 29 jnb p0 3 waitt5 ajmp setg9 setg10 setb 0eh 调分时候 闪标志 gwait10 lcall display jnb p0 1 gwait10 setg11 lcall display jnb p0 1 setgout jnb p0 2 gaddmintue jnb p0 3 jianmintue ajmp setg11 gaddmintue mov r7 61h 分钟加一 lcall add1 mov 61h a cjne a 60h gaddmintue1 mov 61h 00h ajmp gaddmintue1 jianmintue mov r7 61h 分钟减一 lcall jian1 mov 61h a cjne a 00h gaddmintue1 mov 61h 59h gaddmintue1 mov 32h 82h 分钟值送 人 1302 mov 31h 61h lcall write mov r0 61h lcall divide 分钟值分 离送显示缓存 mov 72h r1 mov 42h r1 mov 73h r2 mov 43h r2 waitt6 lcall display jnb p0 2 waitt6 jnb p0 3 waitt6 ajmp setg11 setgout lcall display jnb p0 1 setgout lcall gengxian mov 32h 80h mov 31h 00h 1302 晶振 开始振荡 lcall write mov 32h 8eh mov 31h 80h 禁止写入 1302 lcall write clr 08h clr 09h 30 clr 0ah clr 0bh clr 0ch clr 0dh clr 0eh clr 0fh clr et1 关闪中断 clr tr1 ljmp main1 闪动调时程序 intt1 push acc push psw gflash cpl 0fh jb 0fh gflash1 mov 7ch 4ch 全部显示 mov 7bh 4bh mov 7ah 4ah mov 79h 49h mov 78h 48h mov 77h 47h mov 76h 46h mov 75h 45h mov 74h 44h mov 73h 43h mov 72h 42h mov 71h 41h mov 70h 40h gflashout pop psw pop acc reti gflash1 jb 0ah gflash2 调年闪 mov 7ch 0fh mov 7bh 0fh ajmp gflashout gflash2 jb 0bh gflash3 调月闪 mov 7ah 0fh mov 79h 0fh ajmp gflashout gflash3 jb 0ch gflash4 调日闪 mov 77h 0fh mov 76h 0fh ajmp gflashout gflash4 jb 0dh gflash5 调星期闪 mov 78h 0fh ajmp gflashout gflash5 jb 0eh gflash6 调小时闪 mov 75h 0fh 31 mov 74h 0fh ajmp gflashout gflash6 mov 73h 0fh 调分钟闪 mov 72h 0fh ajmp gflashout 加一程序 add1 mov a r7 add a 1 da a ret 减一程序 jian1 mov a r7 dec a cjne a 4fh kk1 mov a 49h kk1 cjne a 3fh kk2 mov a 39h kk2 cjne a 2fh kk3 mov a 29h kk3 cjne a 1fh kk4 mov a 19h kk4 cjne a 0fh kk5 mov a 09h kk5 ret 分离程序 divide mov a r0 anl a 0fh mov r1 a mov a r0 swap a anl a 0fh mov r2 a ret 写 1302 程序 write clr sclk nop setb rst nop 32 mov a 32h mov r4 8 write1 rrc a 送地址给 1302 nop nop clr sclk nop nop nop mov io c nop nop nop setb sclk nop nop djnz r4 write1 clr sclk nop mov a 31h mov r4 8 write2 rrc a nop 送数据给 1302 clr sclk nop nop mov io c nop nop nop setb sclk nop nop djnz r4 write2 clr rst ret 读 1302 程序 read clr sclk nop nop setb rst nop mov a 32h mov r4 8 read1 rrc a 送地址给 1302 nop mov io c nop nop nop setb sclk 33 nop nop nop clr sclk nop nop djnz r4 read1 mov r4 8 read2 clr sclk nop 从 1302 中读出数据 nop nop mov c io nop nop nop nop nop rrc a nop nop nop nop setb sclk nop djnz r4 read2 mov 31h a clr rst ret bcd 码转换为 10 进制程序 bcd 10 mov a r0 anl a 0fh mov r1 a 高位 10 加低 位 mov a r0 swap a anl a 0fh mov b 10 mul ab add a r1 mov r0 a ret 查一年数据程序 checkmonth lcall bcd 10 mov a r0 mov b 04 mul ab mov r1 a mov dptr tab movc a a dptr mov r7 a 第一字节送 r7 34 inc r1 mov a r1 movc a a dptr mov r6 a 第二字节送 r6 inc r1 mov a r1 movc a a dptr mov r5 a 第三字节送 r6 inc r1 mov a r1 movc a a dptr mov r4 a 第四字节送 r4 ret 自动更新农历 gengxian mov r2 00h mov r3 00h mov a month cjne a 01h gm2 mov r0 day 当前月为一月 lcall bcd 10 当前日转换为 10 进制 送 r2 mov a r0 mov r2 a ajmp tiaozheng1 gm2 cjne a 02h gm3 mov r0 day 当前月为二 月 lcall bcd 10 当前日转换 为 10 进制 mov a r0 再加 31 送 r2 add a 31 mov r2 a ajmp tiaozheng1 gm3 cjne a 03h gm4 mov r0 day 当前月为三 月 lcall bcd 10 当前日转换 为 10 进制 mov a r0 再加 59 送 r2 add a 59 mov r2 a ajmp tiaozheng1 gm4 cjne a 04h gm5 mov r0 day 当前月为四 月 lcall bcd 10 当前日转 换为 10 进制 mov a r0 再加 90 送 r2 add a 90 mov r2 a ajmp tiaozheng1 35 gm5 cjne a 05h gm6 mov r0 day 当前月为五 月 lcall bcd 10 当前日转换 为 10 进制 mov a r0 再加 120 送 r2 add a 120 mov r2 a ajmp tiaozheng1 gm6 cjne a 06h gm7 mov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计考试初级真题及答案
- 2025年采油工(中级)证考试题(附答案)
- 2025年国家公务员考试行测地市级试题及答案
- 2025年创新能力试题及答案学生
- 医院手术室应急预案和流程大全
- 2025年中国贴纸(PVC)生产线数据监测报告
- 咖啡师中秋节后复工安全考核试卷含答案
- 窑炉承建合同(标准版)
- 仪器仪表维修工国庆节后复工安全考核试卷含答案
- 照相器材维修工中秋节后复工安全考核试卷含答案
- 《大嘴巴纸玩偶》名师课件
- 2025年上海市高考英语热点复习:阅读理解说明文
- (完整版)八上新闻拟标题专项训练题
- 国家管网集团合同范本
- 《新能源汽车动力电池及管理系统检修》全套教学课件
- 妇产科三基三严培训内容
- 中医全科学科
- 2024年《招标采购专业知识与法律法规》考前必刷必练题库500题(含真题、必会题)
- 《张仲景活血通络法研究》
- 超星尔雅学习通《当代大学生国家安全教育》章节测试答案
- DL∕T 5285-2018 输变电工程架空导线(800mm以下)及地线液压压接工艺规程
评论
0/150
提交评论