数字电子时钟的设计_第1页
数字电子时钟的设计_第2页
数字电子时钟的设计_第3页
数字电子时钟的设计_第4页
数字电子时钟的设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

嘉兴职业技术学院嘉兴职业技术学院 机电汽车分院机电汽车分院 数字电子时钟的设计数字电子时钟的设计 学生学号 29 学生姓名 吴晓伟 导师姓名 周志宏 班 级 机电 093 专业名称 机电一体化 提交日期 2020 年年 月月 日日 答辩日期 2020 年年 月月 日日 20 年 月 摘摘 要要 本次做的数字钟是以单片机 AT89C51 为核心 结合相关的元器件 共阴极 LED 数码显示器 数 码管驱动器 74LS164 等 再配以相应的软件 是它具有星期 时 分 秒显示的功能 并且时 分 秒还可以调整 此次设计电子数字钟是为了了解电子数字钟的原理 从而学会制作电子数字钟 而且 通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法 通过 它可以进一步学习与掌握单片机原理与使用方法 数字电子时钟的设计 2 关键字 单片机 AT89C51 共阴极 LED 数码显示器 74LS164 驱动芯片 嘉职院机电汽车分院毕业设计 3 目目 录录 一 引言 3 二 系统总体方案设计 3 2 1 主控芯片 AT89C51 简介 3 2 2 电子时钟功能及工作原理 4 2 2 1 电子时钟功能及方案介绍 4 2 2 2 时钟计时的基本方法 5 2 2 3 电子时钟的时间显示 5 三 系统硬件设计 6 3 1 电子时钟电路原理图 6 3 2 电源输入的电路原理图 6 3 3 晶振电路 7 3 4 整点报时电路 8 3 4 1 报时电路的原理 8 3 4 2 电路的接法 8 3 5 键盘输入电路 9 四 系统软件设计 10 4 1 电子时钟程序流程框图 10 4 1 1 主程序流程框图 10 4 1 2 键扫子程序流程框图 11 4 1 3 定时中断程序流程框图 12 4 1 4 调时程序流程框图 13 4 2 程序清单 13 五 总结评价 19 致谢 20 参考文献 20 数字电子时钟的设计 4 一 引言一 引言 近年来随着计算机在社会领域的渗透和大规模集成电路的发展 单片机的应用正在不断地走向深 入 由于它具有功能强 体积小 功耗低 价格便宜 工作可靠 使用方便等特点 因此特别适合于 与控制有关的系统 越来越广泛地应用于自动控制 智能化仪器 仪表 数据采集 军工产品以及家 用电器等各个领域 单片机往往是作为一个核心部件来使用 在根据具体硬件结构 以及针对具体应 用对象特点的软件结合 以作完善 本次设计中以单片机的发展过程和发展方向为背景 介绍了单片机的输入输出的工作原理和操作 方法 中断的工作原理和操作方法 74LS164 译码器的工作原理和与 LED 连接的方法 二二 系统总体方案设计 系统总体方案设计 本次设计课题为智能电子数字时钟的设计 采用 AT89C51 单片机内部定时器实现数字时钟的定时 功能 采用单片机的串口和 74LS164 扩展并口实现 LED 静态驱动 电子时钟系统的整体框图如图 2 1 所示 单 片 机 AT89C51 电源 按键输入 74LS164 驱动 显 示 电 路 晶振电路报时电路 复位电路 图 2 1 电子时钟的整体框图 2 12 1主控芯片主控芯片 AT89C51AT89C51 简介简介 AT89C51 是一个低功耗 高性能 CMOS 8 位单片机 片内含 4k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 器件采用 ATMEL 公司的高密度 非易 失性存储技术制造 兼容标准 MCS 51 指令系统及 80C51 引脚结构 芯片内集成了通用 8 位中央处理器 和 ISP Flash 存储单元 功能强大的微型计算机的 AT89C51 可为许多嵌入式控制应用系统提供高性价 嘉职院机电汽车分院毕业设计 5 比的解决方案 其引脚图如图 2 2 所示 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST VPD 9 P3 0 RXD 10 P3 1 TXD 11 P3 2INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 A8 P2 0 21 A9 P2 1 22 A10 P2 2 23 A11 P2 3 24 A12 P2 4 25 A13 P2 5 26 A14 P2 6 27 A15 P2 7 28 PSEN 29 ALE PROG 30 EA Vpp 31 AD7 P0 7 32 AD6 P0 6 33 AD5 P0 5 34 AD4 P0 4 35 AD3 P0 3 36 AD2 P0 2 37 AD1 P0 1 38 AD0 P0 0 39 VCC 40 图 2 2 AT89C51 引脚图 2 22 2 电子时钟功能及工作原理电子时钟功能及工作原理 2 2 12 2 1 电子时钟功能及方案介绍电子时钟功能及方案介绍 电子时钟设置 6 个按键通过程序控制来完成电子时钟的启 停及时间调整 调整时钟时只设计了 星期加键 时加键 分加键以及秒加键 没有设置减秒减分减时键 可通过循环调节得到正确的调节 数值 S T 键控制电子时钟的启 停 H 键调整时 M 键调整分 S 键调整秒 W 键设置星期 RES 键复位键 可调整运行的电子时钟具有三种工作状态 P 状态 运行状态 调整状态 1 P 状态 依靠上电或按复位键 RES 进入 在此状态下 按 W H M S 键均无效 按 S H 键有效 进入运行状态 2 运行状态 按奇数次 S H 键进入 在此状态下 按 W H M S 键均无效 只有按 S H 键有效 按下 S H 键后 退出运行状态 进入调整状态 3 调整状态 按偶数次 S H 键进入 在此状态下 按 S H W H M S 键均有效 如按下 S H 键 则退出调整状态 进入运行状态 按下 W H M S 键 则分别对星期 时 分 秒加 1 调整结 束后必须按 S H 键 即可退出调整状态 进入运行状态 数字电子时钟的设计 6 基本功能要求 P 稳定地显示在 LED 显示器的最左端数码管 LED6 上 无 S H 键按下 在 P 状态下 按下 W H M S 键无效 则不进入电子时钟的运行状态 继续显示 P 按下 S H 键后 电子时钟以起始时间 0 星期 00 时 00 分 00 秒开始运行 再次按下 S H 键后 电子时钟退 出运行状态 进入调整状态 利用 W H M S 键把电子时钟的显示时间修改为当前实时时间 时间修 改正确后可再次按下 S H 键 电子时钟则退出调整状态 进入运行状态 计时方案 利用 AT89C51 单片机内部的定时 计数器进行中断定时 配合软件延时实现星期 时 分 秒的计时 键盘 显示方案 AT89C51 的 P3 0 P3 1 口外接一个 74LS164 扩展芯片 用 74LS164 芯片的八个 端口作 LED 的段码输出口 采用静态显示方式 通过对 LED 八个端口输入的不同的二进制数据使得它 的时间显示也不同 从而可以得到我们所要的时间显示 对于四十个管脚的 AT89C51 来说 LED 八个 段选管脚太多 于是我选用 74LS164 芯片来扩展主芯片的管脚 74LS164 是数据移位寄存器 具有串 行输入 并行输出的特点 P0 0 P0 4 端外接五个按键 S H W H M S S H 键控制电子时钟的启 停 W H M S 键分别 调整星期 时 分 秒 RST 口接一个复位键 RES 当发现系统运行不正常 进入死循环 显示数值严 重失真时 按复位键 其内部功能为使单片机复位 强行使单片机从头开始运行 跳出出错区 2 2 22 2 2 时钟计时的基本方法时钟计时的基本方法 利用 AT89C51 单片机的可编程定时 计数器 中断系统来实现时钟计数 1 计数初值计算 把定时器设为工作方式 1 定时时间为 50ms 则计数溢出 20 次即得时钟计时最 小单位秒 而计数可用软件方法实现 假设使用 T C0 方式 1 50ms 定时 fosc 12MHz 则初值 X 满 足 216 X 1 12MHz 12 s 50000 s X 15536 0011110010110000 3CB0H 则 TH0 3CH TL0 0BOH 2 采用中断方式进行溢出次数累计 计满 20 次为秒计时 1 秒 就让秒计数单元加 1 当秒计数 达到 60 时 就自动返回到 0 重新秒计数 3 从秒到分 从分到时和从时到星期的计时是通过累加和数值比较实现 2 2 32 2 3 电子时钟的时间显示电子时钟的时间显示 电子时钟的时钟时间在 7 个数码管上进行显示 因此 在内部 RAM 中设置显示缓冲区共 7 个单元 数据存放在 30H 37H 内存单元中 其中 30H 31H 单元存放秒数据 32H 33H 单元存放分数据 34H 嘉职院机电汽车分院毕业设计 7 35H 单元存放时数据 36H 单元存放星期数据 如表 2 1 所示 表 2 1 数码管的数据存储表 LED7LED6LED5LED4LED3LED2LED1 36H35H34H33H32H31H30H 星期时十位时个位分十位分个位秒十位秒个位 三三 系统硬件设计 系统硬件设计 本系统共有两部分构成 其中硬件部分由电源输入部分 晶振部分 键盘输入部分 复位部分 显示部分 定时部分组成 软件部分对应的由主程序 初始化程序 LED 显示程序 键盘扫描程序 键功能程序 定时中断程序等组成 单片机上位复电后 从头开始执行程序 时钟频率由外部晶振频 率提供 单片机控制整个装置的运行 对时钟芯片初始化 读时钟芯片 判断时钟芯片是否更新 对 驱动芯片 74LS164 操作及数码管的显示 键盘扫描等 3 13 1 电子时钟电路原理图电子时钟电路原理图 电子时钟的电路图由电源输入电路 晶振电路 键盘输入电路 复位电路等电路组成 本系统采 用 AT89C51 单片机作为主控制芯片 LED 显示采用了静态扫描方式实现 采用共阴极数码管 由芯片 74LS164 进行驱动 为了提高计时精度 所采用的晶振频率为 12MHz 电子时钟原理图 见附录 3 23 2 电源输入的电路原理图电源输入的电路原理图 电子时钟主控制部分电源需要用 5V 直流电源供电 把频率为 50Hz 有效值为 220V 过电源变压器 整流电路 滤波电路 稳压电路转换成稳定的直流电压 由于输入电压为电网电压 一般情况下所 需直流电压的数值和电网电压的有效值相差较大 因而电源变压器的作用显现出来起到降压作用 降 压后还是交流电压 所以需要整流电路把交流电压转换成直流电压 由于经整流电路整流后的电压含 有较大的交流分量 会影响到负载电路的正常工作 需通过低通滤波电路滤波 使输出电压平滑 稳 压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响 从而获得稳定性足够 高的直流电压 本电路使用集成稳压芯片 7805 解决了电源稳压问题 如图 3 1 所示 数字电子时钟的设计 8 图 3 1 电源输入的电路原理图 3 3 3 3 晶振电路晶振电路 晶振电路如图 3 2 所示 XTAL1 和 XTAL2 分别为反向放大器的输入和输出 该反向放大器可以配 置为片内振荡器 石晶振荡和陶瓷振荡均可采用 如采用外部时钟源驱动器件 XTAL2 应不接 有余 输入至内部时钟信号要通过一个二分频触发器 因此对外部时钟信号的脉宽无任何要求 但必须保证 脉冲的高低电平要求的宽度 12MHZ 33pF 33pF XTAL2 XTAL1 GND 图 3 2 晶振电路的电路图 3 43 4 整点报时电路整点报时电路 3 4 13 4 1 报时电路的原理报时电路的原理 1 生活中我们常常到各种各样的报警声 例如 嘀 嘀 就是常见的一种声音报警声 但 对于这种报警声 嘀 0 2 秒钟 然后断 0 2 秒钟 如此循环下去 假设嘀声的频率为 1KHz 则报警声 C 6 22 0u F C 7 0 1u F C 5 0 1u F C 4 22 0u F 1 2 3 4 D 1 T 1 2 20 V 5 V in 1 GND 2 V ou t 3 78 05 嘉职院机电汽车分院毕业设计 9 时序图如图 3 3 所示 1KHZ 波形 电平信号 图 3 3 报警声时序图 2 由于要产生上面的信号 把上面的信号分成两部分 一部分为 1KHZ 方波 占用时间为 0 2 秒 另一部分为电平 也是占用 0 2 秒 因此 我们利用单片机的定时 计数器 T0 作为定时 可以定 时 0 2 秒 同时 也要用单片机产生 1KHZ 的方波 对于 1KHZ 的方波信号周期为 1ms 高电平占用 0 5ms 低电平占用 0 5ms 因此也采用定时器 T0 来完成 0 5ms 的定时 最后 可以选定定时 计数器 T0 的定时时间为 0 5ms 而要定时 0 2 秒则是 0 5ms 的 400 倍 也就是说以 0 5ms 定时 400 次就达到 0 2 秒的定时时间了 3 4 23 4 2 电路的接法电路的接法 LM386 是一种音频集成功放 具有自身功耗低 电压增益可调整 电源电压范围大 外接元件少 和总谐波失真小等优点 广泛应用于录音机和收音机之中 第一级为差分放大电路 使用镜像电流源 作为差分放大电路有源负载 可使单端输出电路的增益近似等于双端输出电容的增益 第二级为共射 放大电路 以增大放大倍数 第三级可以消除交越失真 1 把 单片机系统 区域中的 P3 4 端口用导线连接到 音频放大模块 LM386 区域中的 SPK IN 端口上 2 在 音频放大模块 区域中的 SPK OUT 端口上接上一个 8 欧或者是 16 欧的喇叭 数字电子时钟的设计 10 GAIN 1 IN 2 IN 3 GND 4 VOUT 5 VS 6 B YPASS 7 GAIN 8 S3 LM386 R 1 10K R 2 470 C 10 C AP 5 C 8 10uF C 9 47uF LS1 SPEAKER R 3 10 C 11 0 047uF 图 3 4 报时电路原理图 3 53 5 键盘输入电路键盘输入电路 键盘可分为两类 非编码键盘和编码键盘 常见的非编码键盘有两种结构 独立式键盘和矩 阵式键盘 本设计采用独立式键盘作为电子时钟的按键 单片机 P1 0 P1 4 接按键 S H W H M S RET 接按键 RES 按键电路如图 3 5 所示 图 3 5 按键电路 嘉职院机电汽车分院毕业设计 11 四四 系统软件设计 系统软件设计 4 14 1 电子时钟程序流程框图电子时钟程序流程框图 4 1 14 1 1 主程序流程框图主程序流程框图 主程序功能主要是初始化 正常显示时间和判断功能转换键 初始化包括数据堆栈区 定时 计数 器的初始化 AT89C51 芯片的初始化及时间 显示数据的初始化 定时 计数器的初始化 包括对 TMOD TCON 以及根据定时时间对时间初值的设置 显示时间调用显示子程序 当 P1 0 端口的 S H 键 按下时 转入调时功能 主程序流程图如图 4 1 所示 图 4 1 主程序流程框图 开始 内存单元清零 T0 T1 为 16 位计数 器 允许 T0 中断 调时程序 P1 0 0 调用显示子程序 N Y 数字电子时钟的设计 12 4 1 24 1 2 键扫子程序流程框图键扫子程序流程框图 键盘扫描程序是通过 CPU 来对外围键盘电路进行查询 该程序能够解决的问题有 1 是否有键按下 2 若有键按下 判断是哪一个键并确定其键值或键号 3 去抖动 一个电压信号是通过机械触点的闭合 断开过程来实现信号传递的 抖动时间一般 为 5 10ms 按键的稳定闭合期为几百毫秒到几秒钟时间 为了保证 CPU 对按键闭合仅做一次键输入 处理 必须去除抖动影响 通常硬件或软件延时 10ms 处理 去抖之后再次进行查询 然后通过按键的键号执行相应的功能 键扫子程序流程框图图 4 2 所示 图 4 2 键扫子程序流程框图 返回 Y N 开始 保护现场 保存键值 有抖动 执行相应的功能 Y N 键按下 嘉职院机电汽车分院毕业设计 13 4 1 34 1 3 定时中断程序流程框图定时中断程序流程框图 定时中断是电子时钟的核心 定时 计数器 T0 和 T1 的工作方式设置为 1 T0 是工作在计数状态下 对输入的频率信号进行计数 但对工作在计数状态下的 T0 最大 计数值为 fOSC 24 所以 T1 工作在定时状态下 每定时 1 秒中到 就停止 T0 的计数 而从 T0 的计数 单元中读取计数的数值 然后进行数据处理 2 T1 工作在定时状态下 最大定时时间为 65ms 达不到 1 秒的定时 所以采用定时 50ms 共 定时 20 次 即可完成 1 秒的定时功能 时钟的最小计时单位是秒 60s 进位为 1min 60min 进位为 1h 24h 进位为 1 天 T0 用于产生最 小单位 1s 定时时间为 50ms 中断累计 20 次即为 1s 计数单元中每逢 60 进位 定时中断程序流程如 图 4 3 所示 图 4 3 中断服务程序流程框图 数字电子时钟的设计 14 保护现场 开始 1s 到 秒单元加 1 60s 到 秒单元清 0 分单元加 1 60min 到 分单元清 0 时单元加 1 24h 到 时单元清 0 星期加 1 星期 7 到 星期单元清 0 现场恢复 中断返回 Y Y Y Y Y N N N N N 嘉职院机电汽车分院毕业设计 15 4 1 44 1 4 调时程序流程框图调时程序流程框图 进行时间调整时 正在被调整的时间的间隔符以闪烁的形式表现 调整时间的方法是 按下 S H 键 进入调时状态 按下 W 键 星期单元加 1 加至 8 时变为 1 7 过后即显示 1 不显示 8 按下 H 键 时单元加 1 在加至 24 时变为 00 23 过后即显示 0 不显示 24 按下 M 键 分单元加 1 加至 60 时变为 00 59 过后即显示 00 不显示 60 按下 S 键 秒单元加 1 秒如分一样 加至 60 时变为 00 在调节好时间后 按下 S H 键 保存操作者对时钟时间的修改并退出调时模式进入正常运行状态 时间正常显示 调时程序流程图如图 4 4 所示 S H 键再次按下 退出调整状态 进入运行状 态 图 4 4 加一子程序流程框图 开始 S H 键按下 进入调整状态 W 键按下H 键按下M 键按下S 键按下 星期单元加 1时单元加 1 时单元 加 1 时单元 加 1 时单元 加 1 时单元 加 1 分单元加 1秒单元加 1 数字电子时钟的设计 16 4 24 2 程序清单程序清单 本设计的程序主要采用大学所学的知识 参考课本 单片机原理及应用 一书 编写而成 汇编 语言是计算机提供给用户的最快最有效的语言 也是能够利用计算机的所有硬件特性并能够直接控制 硬件的唯一语言 程序当中包含 P 点显示 键扫子程序 键功能子程序 显示程序 中断定时程序等一些子程序 并且在程序中添加了适当的标注 主程序 ORG 0000H 复位起始地址 AJMP START 跳转至主程序 ORG 000BH TIMER0 中断矢量地址 AJMP TIMER0 跳转至 T0 中断子程序 START MOV SP 6FH 设置堆栈从 6F 开始 MOV 30H 00H 显示码寄存器初值为 00H MOV 2AH 00H 天 寄存器初值为 00H MOV 2BH 00H 时 寄存器初值为 00H MOV 2CH 00H 分 寄存器初值为 00H MOV 2DH 00H 秒 寄存器初值为 00H MOV TMOD 01H 设 T0 工作方式为 1 MOV TH0 0ECH 定时器及时中断时间为 5000us MOV TL0 78H MOV IE 82H T0 中段使能 总的中段使能 MOV R4 0C8H 实现计时 1s 功能 SETB TR0 启动定时器 T0 LOOP 段为主程序中用于循环的扫描按键以检测外界输入对天 时 分 秒 的设置和修改 LOOP JB P0 0 NEXT2 P0 0 秒值修改键 是否被按下 不是 则跳至 NEXT2 检查 P0 1 ACALL DELAY1 去抖动 JB P0 0 NEXT2 P0 0 秒值修改键 不是否被按下 则跳转至 NEXT2 检查 P0 1 NEXT1 JNB P0 0 NEXT1 P0 0 秒值修改键 是否被放开 MOV A 2DH 将秒寄存器的值放入 A ADD A 01 A 的内容加 1 DA A 十进制调整 嘉职院机电汽车分院毕业设计 17 MOV 2DH A 将 A 的值放回秒寄存器 CJNE A 3CH NEXT2 是否等于 60 秒 不是 则跳至 NEXT2 MOV 2DH 00 是则重新设置秒寄存器的值为 00 NEXT2 JB P0 1 NEXT4 P0 1 分值修改键 是否被按下 不是 则跳至 NEXT4 检查 P0 2 ACALL DELAY1 去抖动 JB P0 1 NEXT4 P0 1 分值修改键 不是否被按下 则跳转至 NEXT4 检查 P0 2 NEXT3 JNB P0 1 NEXT3 P0 1 分值修改键 是否被放开 MOV A 2CH 将分寄存器的值放入 A ADD A 01 DA A MOV 2CH A 将 A 的值放回分寄存器 CJNE A 3CH NEXT4 是否等于 60 分 不是 则跳至 NEXT4 MOV 2CH 00 是则重新设置分寄存器的值为 00 NEXT4 JB P0 2 NEXT6 P0 2 时值修改键 是否被按下 不是 则跳至 NEXT6 检查 P0 3 ACALL DELAY1 去抖动 JB P0 2 NEXT6 P0 2 时值修改键 不是否被按下 则跳转至 NEXT4 检查 P0 2 NEXT5 JNB P0 1 NEXT5 P0 2 时值修改键 是否被放开 MOV A 2BH 将时寄存器的值放入 A ADD A 01 DA A MOV 2BH A 将 A 的值放回时寄存器 CJNE A 18H NEXT6 是否等于 24 时 不是 则跳至 NEXT6 MOV 2BH 00 是则重新设置时寄存器的值为 00 NEXT6 JB P0 3 LOOP P0 3 天值修改键 是否被按下 不是 则跳至 LOOP 检查 P0 0 ACALL DELAY1 去抖动 JB P0 3 LOOP P0 3 分值修改键 不是真正被按下 则跳转至 LOOP 检查 P0 0 数字电子时钟的设计 18 NEXT7 JNB P0 1 NEXT7 P0 3 天值修改键 是否被放开 MOV A 2AH 将寄存器的值放入 A ADD A 01 DA A MOV 2CH A 将 A 的值放回天寄存器 CJNE A 07H LOOP 是否等于 7 天 不是 则跳至 LOOP MOV 2AH 00 是则重新设置天寄存器的值为 00 AJMP LOOP T0 中断子程序 每 5000us 中断一次 在该子程序中判断是否 1s 计时到 并做 相应调整和处理 CLK CHANGE 子程序和 CONVERT 子程序 同时实现每 5000s 的显示更新 TIMER0 MOV TH0 0ECH 定时器及时中断时间为 5000us MOV TL0 78H PUSH ACC 保留现场的值 PUSH PSW DJNZ R4 TIMLP1 计时 1s 到否 不到 1s 则跳 至 TIMLP1 MOV R4 0C8H ACALL CLK CHANGE 调用计时子程序 CLK CHANGE ACALL CONVERT 调用数码转换及存储子程序 CONVERT TIMLP1 ACALL DISP 调用显示子程序 DISP POP PSW 恢复现场的值 POP ACC RETI DISP 子程序实现天 时 分 秒计时制在数码管上的输出驱动显示 每一次 调用 相隔 5000us 只驱动显示 7 个数码管中的一个 DISP MOV A 30H 扫描显示位码载入 A ADD A 20H 扫描显示位码作为偏移量 再加上 显示缓冲区 首地址 20H 的戴显示数据的实际 地址 MOV R1 A 存入扫描显示指针 R1 嘉职院机电汽车分院毕业设计 19 MOV A 30H 扫描显示位码载入 A SWAP A A 中低 4 位交换到高 4 位 P1 高 4 位为显示位码 低 4 位为显示数据值 ORL A R1 得 显示位码 显示段码 MOV P2 A 输出至 P2 显示 INC 30H 扫描偏移量指针加 1 MOV A 30H CJNE A 07H DSPEND 扫描显示完否 不是 则跳至 DSPEND MOV 30H 00H 是 则扫描显示位移量置为 0 DSPEND RET CLK CHANGE 子程序为计时 1s 到各天 时 分 秒数据的处理程序 CLK CHANGE MOV A 2DH 2DH 单元为秒寄存器 ADD A 1 加 1 秒 DA A 十进制调整 MOV 2DH A 存入秒寄存器 CJNE A 60 CLKEND 是否超过 60 秒 不是 则跳至 CLKEND MOV 2DH 00H 是 则重设为 00 MOV A 2CH 2CH 单元为分寄存器 其处理类同秒 ADD A 1 DA A MOV 2CH A CJNE A 60 CLKEND 是否超过 60 分 不是 则跳至 CLKEND CALL RING 调用正点报时 MOV 2CH 00H 是 则重设为 00 MOV A 2BH 2BH 单元为时寄存器 ADD A 1 DA A MOV 2BH A CJNE A 24 CLKEND 是否超过 24 时 不是 则跳至 CLKEND MOV 2BH 00H 是 则重设为 00 数字电子时钟的设计 20 MOV A 2AH 2AH 单元为秒寄存器 ADD A 1 DA A MOV 2AH A CJNE A 07 CLKEND 是否超过 7 天 不是 则跳至 CLKEND MOV 2AH 00H 是 则重设为 00 CLKEND RET CONVERT 子程序实现天 时 分 秒计时值转换为 BCD 码并存储在以 20H 为起始地址的显示输出数据单元里 即显示缓冲区 20H 至 26H 单元 CONVERT MOV R1 20H 送显示缓冲区首地址值到 R1 指针 MOV A 2DH 将秒寄存器的内容存入 A ANL A 0FH 取秒值的个位 并存入 20H 单元 MOV R1 A INC R1 目标地址指针的修改 MOV A 2DH 将秒寄存器的内容存入 A ANL A 0F0H 取秒值的十位 并存入 21H 单元 SWAP A MOV R1 A INC R1 目标地址指针的修改 MOV A 2CH 将分寄存器的内容存入 A ANL A 0FH 取分值的个位 并存入 22H 单元 MOV R1 A INC R1 目标地址指针的修改 MOV A 2CH 将分寄存器的内容存入 A ANL A 0F0H 取分值的十位 并存入 23H 单元 SWAP A MOV R1 A INC R1 目标地址指针的修改 MOV A 2BH 将时寄存器的内容存入 A ANL A 0FH 取时值的个位 并存入 24H 单元 MO

温馨提示

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

评论

0/150

提交评论