用51单片机设计的时钟电路毕业论文_第1页
用51单片机设计的时钟电路毕业论文_第2页
用51单片机设计的时钟电路毕业论文_第3页
用51单片机设计的时钟电路毕业论文_第4页
用51单片机设计的时钟电路毕业论文_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DIY 爱好者 DIY 爱好者 毕业论文 Shaoguan University 作者 kesion 目 录 任 务 书 摘 要 前 言 说 明 书 第 一章 电路原理分析 1 1 显示原理 1 2 数码管结构及代码显示 1 3 键盘及读数原理 1 4 连击功能的实现 第 二 章 程序设计思想和相关指令介绍 2 1 数据与代码转换 2 2 计时功能的实现与中断服务程序 2 3 时间控制功能与比较指令 2 4 时钟误差的分析 附录 A 电路图 附录 B 存储单元地址表 附录 C 输入输出口功能分配表 附录 D 定时中断程序流程图 附录 F 调时功能流程图 附录 G 程序清单 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 摘要 单片计算机即单片微型计算机 Single Chip Microcomputer 是 集 CPU RAM ROM 定时 计数和多种接口于一体的微控制器 他体积小 成本低 功能强 广泛应用于智能产 品和工业自动化上 而 51 单片机是各单片机中最为典型和最有代表性的一种 这次毕业设 计通过对它的学习 应用 从而达到学习 设计 开发软 硬的能力 前言 本文通过用对一个能实现定时 时钟 日历显示功能的时间系统的设计学习 详细介绍了 51 单片机应用中的数据转换显示 数码管显示原理 动态扫描显示原理 单片机的定时中 断原理 从而达到学习 了解单片机相关指令在各方面的应用 系统由 AT89C51 LED 数码管 按键 二极管等部分构成 能实现时钟日历的功能 能进行时 分 秒的显示 也具有日历计算 显示和时钟 日历的校准 定时时间的设定 实现三路开关定时输出等功能 文章后附有电路图 程序清单 各数据存储单元的所在地址 输入输出口对应表 以供读者参考 因作者本人也是个 初学者 水平有限 难免有疏落不足之处 敬请老师和同学能给与批评正 说明书 系统由 AT89C51 LED 数码管 按键 发光二极管等部分构成 能实现时间的调整 定 时时间的设定 输出等功能 系统的功能选择由 SB0 SB1 SB2 SB3 SB4 完成 其中 SB0 为时间校对 定时器调整功能键 按 SB 0 进入调整状态 SB1 为功能切换键 第一轮按动 SB1 依次进入一路 二路 三路定时时间设置提示程序 按 SB3 进入各路定时调整状态 定 时时间到 二极管发亮 到了关断时间后灭掉 如果不进入继续按 SB1 键 依次进入时间 年 位校对 月 位校对 日 位校对 时 位校对 分 位校对 秒 位 校对状态 不管是进入那种状态 按动 SB2 皆可以使被调整位进行不进位增量加 1 变化 各 预置量设置完成后 系统将所有的设置存入 RAM 中 按 SB1 退出调整状态 上电后 系统自 动进入计时状态 起始于 00 时 00 分 SB4 为年月日显示转换键 可使原来显示时分 秒转换显示年月日 二 电路原理分析 1 显示原理 电原理图见附图 1 由 6 个共阴极的数码管组成时 分 秒的显示 P0 口的 8 条数据线 P0 0 至 P0 7 分别与两个 CD4511 译码的 ABCD 口相接 P2 口的 P2 0 至 P2 2 分别通过电阻 R10 至 R13 与 VT1 至 VT3 的基极相连接 这样通过 P0 口送出一个存储单元的高位 低位 BCD 显示代码 通过 P2 口送出扫描选通代码轮流点亮 LED1 至 LED6 就会将要显示的数据在数 码管中显示出来 从 P0 口输出的代码是 BCD 码 从 P2 口输出的就是位选码 这是扫描显示 原理 2 数码管结构及代码显示 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 共阴 LED 数码管结构 字段及引脚排列见图 2 图 2 共阴 LED 数码管由 8 只发光二极管 VD1 至 VD8 共阴连接并按 8 字形结构排列而成 这样 我们将这些二极管的正极接高低不同的电位 把所有的负极接地 当正极为高电位时 相应的二极管就会导通而发光 从而使数码管呈现不同的字符 而只有 P2 相应呈现高电位 VT 个管导通 LED1 的 GND 与地相接 LED 位被选中才具备发光的使能条件 可见 在利用 P2 口送出位选码 使各位轮流得到发光使能条件的同时 通过 P0 口分别送出不同的段选码 就会在 LED1 至 LED4 中显示出不同的数字来 3 键盘及读数原理 键盘是人与微机打交道的主要设备 按键的读取容易引起误动作 可采用软件去 抖动的方法处理 软件的触点在闭合和断开的时候会产生抖动 这时触点的逻辑电 平是不稳定的 如不采取妥善处理的话 将引起按键命令错误或重复执行 在这里 采用软件延时的方法来避开抖动 延时时间 20ms 4 连击功能的实现 按下某键时 对应的功能键解释程序得到执行 如操作者没有释放按键 则对应 的功能会反复执行 好象连续执行 在这里我们采用软件延时 250ms 当按键没释放则 执行下一条对应程序 利用连击功能 能实现快速调时操作 三 程序设计思想和相关指令介绍 本系统的主程序主要完成时间显示和定时输出判断功能 而年月日显示和各时间单元进 位 时间设定时 调定时间设定时等功能全部在中断服务程序中完成 1 数据与代码转换 由前述可知 从 P2 口输出位选码 从 P0 口输出段选码 LED 就会显示出数字来 但 P0 口的输出的数据是要 BCD 码 各存储单元存储的是二进制数 也就是和要显示出的字符表达 的含义是不一致的 可见 将要显示的存储单元的数据直接送到 P0 口去驱动 LED 数码管显 示是不能正确表达的 必须在系统内部将要显示的数据经过 BCD 码行转换后 将各个单元数 据的段选代码送入 P0 口 给 CD4511 译码后去驱动数码管显示 具体转换过程如下 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 我们先将要显示的数据装入累加器 A 中 再将 A 中的数据转换成高低两位的 BCD 码 再放回 A 中 然后将 A 中的值输出 如 有一个单元存储了 45 这样一位数 则需转换成四 位的 BCD 码 0100 0101 然后放入 A 中 A 中 BCD 码 高位四位代表 4 低四位代 表 5 同时送给两个译码器中 译码后 45 字就在两个 LED 中显示出来 2 计时功能的实现与中断服务程序 时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的 计数器 T0 打开后 进入计时 满 100 毫秒后 重装定时 中断一次 满一秒后秒进位 满 60 秒后即为 1 分钟 分钟单元进位 60 分到了后 时单元进位 24 小时满后 天单元进位 这样然后根据进率 得到年 月 日 时 分 秒存储单元的值 并经译码后 通过扫描程序送 LED 中显示出来 实现时钟计时功能 累加是用指令 INC 来实现的 进入中断服务程序以后 执行 PUSH PSW 和 PUSH A 将程序状态寄存器 PSW 的内容和累 加器 A 中的数据保存起来 这便是所谓的 保护现场 以保护现场和恢复现场时存取关键 数据的存储区叫做堆栈 在软件的控制之下 堆栈可在片内 RAM 中的任一区间设定 而堆栈 的数据存取与一般的 RAM 存取又有区别 对它的操作 要遵循 后进先出 的原则 3 时钟误差分析 开启定时器 计数器 0 使之开始计时 中断后进入中断程序 自停止计数到 计数又 开始 中间执行了 7 条指令 也就是延迟了 13 个单周期共用时间 26us 这样 每个中断的 总时间应为为 100 026sm 而原来定时是 100ms 所以 也就是说每次中断定时多了 26um 这样 可改变计数重装值 使每次中断定时时间为 99 974sm 加上原来的 7 条指令所用的 时间 正好 100sm 计数 10 次得 1s 这样就可得到较精确的计时秒数 然后根据进率 得到 时 分的值 4 时间控制功能与比较指令 系统的另一功能就是实现对执行设备的定时开关控制 其主要控制思想是这样的 先 将执行设备开启的时间和关闭时间置入 RAM 某一单元 在计时主程序当中执行几条比较指 令 如果当前计时时间与执行设备的设定开启时间相等 就执行一条 CLR 指令 将对应的 那路 P3 置为高电位 开启 如果当前计时时间与执行设备设定的关闭时间相等 就执行 SETB 对应的 P3 置低电位 二极管截止 实现此控制功能用到的比较指令为 CJNE A direct rel 其转移条件是累加器 A 中的值与立即数不等则转移 参考文献 1 谢自美 电子线路设计 实验 测试 武汉 华中理工大学出版社 2000 2 何书森 何华斌 实用数字电路原理与设计速成 福州 福建科学技术出版社 2000 6 3 白驹衍 单片计算机及应用 北京 电子工业出版社 1999 2 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 U CAP U CAP U CAP U CAP U CAP U CAP U CAP 2k CAP 2k CAP 2k CAP U CAP U CAP U CAP U CAP U CAP EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 U 8031 5 A 7 B 1 C 2 D 6 LT 3 BI 4 LE 5 A 13 B 12 C 11 D 10 E 9 F 15 G 14 U 4511 500 RES2 500 RES2 500 RES2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS RES2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS RES2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS RES2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS RES2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS RES2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS RES2 C RES2 30p RES2 A 7 B 1 C 2 D 6 LT 3 BI 4 LE 5 A 13 B 12 C 11 D 10 E 9 F 15 G 14 U 4511 5 R RES2 30p RES2 5 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 返回主程序 主程序 开始 显示 定时判 断 开定时中 断 调 用 程 序条件 秒分时日月年 进位 进入定时中断 程序 最高级 对应 P0 3 P0 4 P0 5 输出 与 设 定 时同 中断 T0 按 SB4 转换 显示年月日 3S 返回 按 SB0 设定定时 三 路定时 调整时间 改变时间存储 值 中断 1 中断 0 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 定时中断程序流程图 定时中断 重装定时常数 整秒 调整分单元 调整时单元 加 100ms 调整秒单元 调整日单元 整时 整分 整日 整年 整月 调整月单元 调整年单元 月判断 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 调时功能流程图 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB1 中断开始 SB0 调整秒单元 调整 2 路 调 整 月 单 调整 3 路 调整日单元 调整时单元 调整分单元 调整年单元 日单元 年单元 月单元 分单元 时单元 单元加 1 开 关定时 单元加 1 单元加 1 单元加 单元加 1 中断返回 按 键 扫 描开始 进入 1 路调 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 调时功能流程图 存储单元分配表 读取按键代码表 16 进制 码 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 SB1 SB2 SB3 FE 0 1 1 1 1 1 1 1 FD 1 0 1 1 1 1 1 1 FB 1 1 0 1 1 1 1 1 存储单元分配表 时间单 元 1 组开 定时单 元 1 组关 2 组开 2 组关 3 组开 3 组关 Sec 32h 秒 Min 31h 分 41 40 51 50 61 60 Hour 30h 时 42 46 52 56 62 66 Day 35h 日 43 47 53 57 63 67 Mou 34h 月 44 48 54 58 64 68 Year 33h 年 45 49 55 59 65 69 Sb0 Sb1 Sb2 Sb3 Sb4 1 组输 出 2 组输 出 3 组输 出 各 P 口功能连接 P3 3 P1 0 P1 1 P1 2 P3 2 p3 0 P3 1 P3 4 调 整 时间 定时中 断 年月日 显示转 换 二极管 二极管 二极管 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 程序 SEC EQU 32H 秒 即时时间 伪指令 MIN EQU 31H 分 HOUR EQU 30H 时 DAY EQU 35H 日 MON EQU 34H 月 YEAR EQU 33H 年 MIN 1 EQU 41H 分 定时器 1 路 开存储单元 HOUR 1 EQU 42H 时 DAY 1 EQU 43H MON 1 EQU 44H YEAR 1 EQU 45H MIN 11 EQU 40H 分 定时器 1 路 关存储单元 HOUR 11 EQU 46H 时 DAY 11 EQU 47H 日 MON 11 EQU 48H 月 YEAR 11 EQU 49H 年 ORG 0000H ljmp MAIN ORG 0003H 中断转换显示年月日 INT0 SB4 键 LJMP SHOW ORG 000BH 计数中断 T0 方式 1 LJMP TIME ORG 0013H LJMP CHANGE 调整时间 定时 INT1 SB0 键 主程序 ORG 0030H MAIN 初始化付值 MOV YEAR 02 MOV MON 05 MOV DAY 01 MOV HOUR 00 MOV MIN 00 MOV SEC 00 CLR 40H 定时单元 1 路清零 CLR 41H CLR 42H CLR 43H Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 CLR 44H CLR 45H CLR 46H CLR 47H CLR 48H CLR 49H 开中断 MOV TMOD 01H 计数 模式 1 T0 MOV TL0 0B0H 100SM 计数定时 MOV TH0 3CH clr p3 0 MOV 20H 0AH 10 次 100SM SETB PT0 T0 为最高级 SETB TR0 允许计数 SETB ET0 允许 T0 中断 SETB EX0 允许 INT0 中断 SETB EX1 允许 INT1 中断 SETB EA 开总中断 显示 定时器启动判断 LOOP MOV R1 30H 存储单元 MOV R4 01H 位选通 MOV R3 03H 三组显示 NEXT MOV A R1 MOV B 10 将存储单元转换成两高低两组的 BCD 码 DIV AB SWAP A ORL A B MOV P0 A 输出 MOV P2 R4 INC R1 下一单元 MOV A R4 RL A 位移 MOV R4 A LCALL DE5SM 延时 0 5SM DJNZ R3 NEXT 全扫描显示一偏 判断定时输出 只编写了一路 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 CJNE R7 88H LOOP 是 8 则开 否则 定时已关 转 开 MOV A YEAR CJNE A YEAR 1 LOOP 1 年比较 不等转关 MOV A MON CJNE A MON 1 LOOP 1 MOV A DAY CJNE A DAY 1 LOOP 1 MOV A HOUR CJNE A HOUR 1 LOOP 1 MOV A MIN CJNE A MIN 1 LOOP 1 CPL P3 0 关 LOOP 1 MOV A YEAR CJNE A YEAR 11 LOOP 年比较 MOV A MON CJNE A MON 11 LOOP MOV A DAY CJNE A DAY 11 LOOP MOV A HOUR CJNE A HOUR 11 LOOP MOV A MIN CJNE A MIN 11 LOOP CPL P3 0 LJMP LOOP 年月日显示中断子程序 SHOW PUSH PSW push ACC PUSH B PUSH 01H PUSH 02H PUSH 03H PUSH 04H MOV R2 0FFH 中断扫描次数 TURN MOV R1 33H MOV R4 01H MOV R3 03H NEXT 1 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 MOV A R1 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 R4 INC R1 RL A MOV R4 A LCALL DE5SM DJNZ R3 NEXT 1 DJNZ R2 TURN 反复显示一定时间后返回 POP 04H POP 03H POP 02H POP 01H POP B POP ACC POP PSW RETI 计数中断服务子程序 TIME PUSH PSW PUSH ACC PUSH B PUSH 06H MOV TH0 3CH 重装计数 MOV TL0 0BH DJNZ 20H OUT 转到中断跳出 pop 程序 MOV 20H 0AH 重装 100 10 1000 进位程序 INC SEC MOV R6 SEC CJNE R6 60 OUT 比较 MOV SEC 00 INC MIN MOV R6 MIN CJNE R6 60 OUT MOV MIN 00 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 INC HOUR MOV R6 HOUR CJNE R6 25 OUT MOV HOUR 00 INC DAY MOV R5 MON CJNE R5 1 MON 22 是否 1 月 不是转 2 月 MOV R5 DAY CJNE R5 32 OUT 本月是否益出 INC MON MOV DAY 1 LJMP OUT OUT POP 06H POP B POP ACC POP PSW RETI MON 22 MOV R5 MON CJNE R5 2 MON 33 是否 2 月 不是转 3 月 MOV A YEAR 判断是否瑞年 MOV B 4 DIV AB MOV A B JNZ OUT 1 不是则转 A 不为零则转 MOV R5 DAY CJNE R5 30 OUT 如是瑞年 判断是否到 29 天 INC MON MOV DAY 1 LJMP OUT OUT 1 MOV R5 DAY CJNE R5 29 OUT 平年二月判断 INC MON MOV DAY 1 LJMP OUT MON 33 MOV R5 MON CJNE R5 3 MON 44 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 MOV R5 DAY CJNE R5 32 OUT INC MON MOV DAY 1 LJMP OUT MON 44 MOV R5 MON CJNE R5 4 MON 55 MOV R5 DAY CJNE R5 31 OUT INC MON MOV DAY 1 LJMP OUT MON 55 MOV R5 MON CJNE R5 5 MON 66 MOV R5 DAY CJNE R5 32 OUT INC MON MOV DAY 1 LJMP OUT MON 66 MOV R5 MON CJNE R5 6 MON 77 MOV R5 DAY CJNE R5 31 OUT INC MON MOV DAY 1 LJMP OUT MON 77 MOV R5 MON CJNE R5 7 MON 88 MOV R5 DAY CJNE R5 32 L1 INC MON MOV DAY 1 L1 LJMP OUT MON 88 MOV R5 MON CJNE R5 8 MON 99 MOV R5 DAY CJNE R5 32 L2 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 INC MON MOV DAY 1 L2 LJMP OUT MON 99 MOV R5 MON CJNE R5 9 MON 00 MOV R5 DAY CJNE R5 31 L3 INC MON MOV DAY 1 L3 LJMP OUT MON 00 MOV R5 MON CJNE R5 10 MON AA MOV R5 DAY CJNE R5 32 L4 INC MON MOV DAY 1 L4 LJMP OUT MON AA MOV R5 MON CJNE R5 11 MON BB MOV R5 DAY CJNE R5 31 L5 INC MON MOV DAY 1 L5 LJMP OUT MON BB MOV R5 DAY CJNE R5 32 L6 INC YEAR MOV MON 1 MOV DAY 1 L6 LJMP OUT 校对时间 定时调整中断 CHANGE PUSH PSW PUSH ACC PUSH B PUSH 00H mov p2 00h Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 SHOW 1 MOV A 01H 显示 1 MOV P0 A MOV P2 0FFH 三组数码管都显示 1 路 LCALL READ 调用读 p1 口键程序 CJNE A 01H SHOW 1 去抖后比较 LCALL DE250SM 延时 250 秒 CJNE A 0FBH ttT1 LJMP SB3 1 ttT1 CJNE A 0FEH SHOW 1 AJMP SHOW 2 二组显示 SHOW 2 MOV A 02H 显示 2 MOV P0 A MOV P2 0FFH LCALL READ CJNE A 01H SHOW 2 去抖后比较 LCALL DE250SM 延时 250 秒 CJNE A 0FBH T2 不等转去判断此时 SB3 按了没 LJMP SB3 2 T2 CJNE A 0FEH SHOW 2 AJMP SHOW 3 三组显示 SHOW 3 MOV A 03H 显示 3 MOV P0 A MOV P2 0FFH 位码 LCALL READ CJNE A 01H SHOW 3 去抖后比较 LCALL DE250SM 延时 250 秒 CJNE A 0FBH T3 不等转去判断此时 SB3 按了没 LJMP SB3 3 T3 CJNE A 0FEH SHOW 3 AJMP SHOW 4 即时年单元调时 显示 SHOW 4 MOV A YEAR 调出年单元 MOV B 10 BCD 转换 DIV AB Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 SWAP A ORL A B MOV P0 A MOV P2 01H LCALL READ LCALL DE250SM CJNE A 01H SHOW 4 去抖 CJNE A 0FEH KEY2 1 按 SB2 转年调整 AJMP MON CH 按 SB1 往下调月单元 KEY2 1 CJNE A 0FDH SHOW 4 LCALL YEAR AD 调用年调整 AJMP SHOW 4 MON CH MOV A MON 月单元调整 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 02H LCALL READ LCALL DE250SM CJNE A 01H MON CH 去抖 CJNE A 0FEH KEY2 2 按 SB2 转月调整 LJMP DAY CH 按 SB1 往下调日单元 KEY2 2 CJNE A 0FDH MON CH LCALL MON AD 调用月调整 LJMP MON CH DAY CH MOV A DAY 日单元调整 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 04H LCALL READ LCALL DE250SM CJNE A 01H DAY CH 去抖 CJNE A 0FEH KEY2 3 按 SB2 转日调整 LJMP HOUR CH 按 SB1 往下调时单元 KEY2 3 CJNE A 0FDH DAY CH LCALL DAY AD 调用日调整 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 LJMP DAY CH HOUR CH MOV A HOUR 时单元调整 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 01H LCALL READ LCALL DE250SM CJNE A 01H HOUR CH 去抖 CJNE A 0FEH KEY2 4 按 SB2 转时调整 AJMP MIN CH 按 SB1 往下调分单元 KEY2 4 CJNE A 0FDH HOUR CH LCALL HOUR AD 调用时调整 AJMP HOUR CH MIN CH MOV A MIN 分单元调整 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 02H LCALL READ LCALL DE250SM CJNE A 01H MIN CH 去抖 CJNE A 0FEH KEY2 5 按 SB2 转分调整 AJMP SEC CH 按 SB1 往下调秒单元 KEY2 5 CJNE A 0FDH MIN CH LCALL MIN AD 调用分调整 LJMP MIN CH SEC CH MOV A SEC 秒单元调整 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 04H Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 LCALL READ LCALL DE250SM CJNE A 01H SEC CH 去抖 CJNE A 0FEH KEY2 6 按 SB2 秒调整 LJMP OUT A 按 SB1 跳出 KEY2 6 CJNE A 0FDH SEC CH CLR SEC 归零 LJMP SEC CH 按 SB2 定时器年单元加 1 子程序 SB3 2 LJMP SHOW 2 二路没编返回 SB3 3 LJMP SHOW 3 三路没编返回 SB3 1 MOV A YEAR 1 调时年单元 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 01H LCALL READ LCALL DE250SM CJNE A 01H SB3 1 CJNE A 0FBH KEY2 7 按 SB2 转年调整 LJMP MON 111 按 SB1 往下调月单元 KEY2 7 CJNE A 0FDH SB3 1 INC YEAR 1 1 路年单元加 1 MOV R5 YEAR 1 CJNE R5 09 SB3 1 益出 MOV YEAR 1 00H AJMP SB3 1 月单元加 1 子程序 MON 111 MOV A MON 1 调时月单元显示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 02H LCALL READ LCALL DE250SM Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 CJNE A 01H MON 111 CJNE A 0FBH KEY2 8 按 SB2 转月调整 LJMP DAY 111 KEY2 8 CJNE A 0FDH MON 111 INC MON 1 1 路月单元加 1 MOV R5 MON 1 CJNE R5 13 MON 111 益出 MOV MON 1 01H AJMP MON 111 转到月显 日单元加 1 子程序 DAY 111 MOV A DAY 1 调时日单元显示提示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 04H LCALL READ LCALL DE250SM CJNE A 01H DAY 111 CJNE A 0FBH KEY2 9 按 SB2 转日调整 LJMP HOUR 111 KEY2 9 CJNE A 0FDH DAY 111 INC DAY 1 1 组日单元加 1 MOV R5 DAY 1 CJNE R5 32 DAY 111 益出 MOV DAY 1 01H AJMP DAY 111 转到日显 按 SB2 时单元加 1 子程序 HOUR 111 MOV A HOUR 1 调时时单元显示提示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 01H LCALL READ LCALL DE250SM CJNE A 01H HOUR 111 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 CJNE A 0FBH KEY2 10 按 SB2 转时调整 LJMP MIN 111 KEY2 10 CJNE A 0FDH HOUR 111 INC HOUR 1 MOV R5 HOUR 1 CJNE R5 24 HOUR 111 益出 MOV HOUR 1 00H AJMP HOUR 111 转到时显 分单元加 1 子程序 MIN 111 MOV A MIN 1 调时分单元 并显示提示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 02H LCALL READ LCALL DE250SM CJNE A 01H MIN 111 CJNE A 0FBH KEY2 11 按 SB2 转分调整 AJMP OFF CH 按 SB3 往下调定时 关单元 KEY2 11 CJNE A 0FDH MIN 111 INC MIN 1 1 路分单元加 1 MOV R5 MIN 1 CJNE R5 60 MIN 111 益处 MOV MIN 1 00H AJMP MIN 111 转到分显 年单元调整 OFF CH MOV A YEAR 11 调时年单元 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 01H LCALL READ LCALL DE250SM CJNE A 01H OFF CH CJNE A 0FBH KEY2 F7 按 SB2 转年调整 LJMP MON OFF 按 SB1 往下调月单元 KEY2 F7 CJNE A 0FDH OFF CH INC YEAR 11 1 路年单元加 1 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 MOV R5 YEAR 11 CJNE R5 09 OFF CH 益出 MOV YEAR 11 00H AJMP OFF CH 月单元加 1 子程序 MON OFF MOV A MON 11 调时月单元显示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 02H LCALL READ LCALL DE250SM CJNE A 01H MON OFF CJNE A 0FBH KEY2 F8 按 SB2 转月调整 LJMP DAY OFF KEY2 F8 CJNE A 0FDH MON OFF INC MON 11 1 路月单元加 1 MOV R5 MON 11 CJNE R5 13 MON OFF 益出 MOV MON 11 01H AJMP MON OFF 转到月显 日单元加 1 子程序 DAY OFF MOV A DAY 11 调时日单元显示提示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 04H LCALL READ LCALL DE250SM CJNE A 01H DAY OFF CJNE A 0FBH KEY2 F9 按 SB2 转日调整 LJMP HOUR OFF KEY2 F9 CJNE A 0FDH DAY OFF INC DAY 11 1 组日单元加 1 MOV R5 DAY 11 Created with novaPDF Printer www novaPDF com Please register to remove this message DIY 爱好者 DIY 爱好者 CJNE R5 32 DAY OFF 益出 MOV DAY 11 01H AJMP DAY OFF 转到日显 按 SB2 时单元加 1 子程序 HOUR OFF MOV A HOUR 11 调时时单元显示提示 MOV B 10 DIV AB SWAP A ORL A B MOV P0 A MOV P2 01H LCALL READ LCALL DE250SM CJNE A 01H HOUR OFF CJNE A 0FBH KEY2 F10 按 SB2 转时调整 LJMP MIN OFF KEY2 F10 CJNE A 0FDH HOUR OFF INC HOUR 11 MOV R5 HOUR 11 CJNE R5 24 HOUR OFF 益出 MOV HOUR 11 00H AJMP HOUR OFF 转到时显 分单元加 1 子程序 MIN O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论