




免费预览已结束,剩余18页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 摘 要 2 1 电子时钟 2 1 1 电子时钟简介 2 1 2 电子时钟的基本特点 2 1 3 电子时钟的原理 2 2 单片机的相关知识 3 2 1 单片机简介 3 2 2 PROTEUS软件简介 3 2 3 单片机的特点 3 2 4 89C51 单片机介绍 3 3 控制系统的硬件设计 5 3 1 单片机型号的选择 5 3 2 数码管显示工作原理 5 3 3 键盘电路设计 5 3 4 整个电路原理图 5 4 控制系统的软件设计 6 4 1 程序设计 6 4 2 程序流程图 11 4 3 仿真图 13 4 4 仿真结果分析 14 5 结束语 14 6 附录 15 参考文献 22 1 摘要 单片计算机即单片微型计算机 由 RAM ROM CPU 构成 定时 计数和多种接口于 一体的微控制器 它体积小 成本低 功能强 广泛应用于智能产业和工业自动化上 而 51 系 列单片机是各单片机中最为典型和最有代表性的一种 这次课程设计通过对它的学习 应用 从而达到学习 设计 开发软 硬件的能力 本设计主要设计了一个基于 AT89C51 单片机的电 子时钟 并在数码管上显示相应的时间 并通过一个控制键用来实现时间的调节和是否进入省 电模式的转换 应用 Proteus 的 ISIS 软件实现了单片机电子时钟系统的设计与仿真 该方法仿 真效果真实 准确 节省了硬件资源 关键字 单片机 子时钟 键盘控制 1 1 电子时钟电子时钟 1 1 电子时钟简介电子时钟简介 1957 年 Ventura 发明了世界上第一个电子表 从而奠定了电子时钟的基础 电子时钟开始 迅速发展起来 现代的电子时钟是基于单片机的一种计时工具 采用延时程序产生一定的时间 中断 用于一秒的定义 通过计数方式进行满六十秒分钟进一 满六十分小时进一 满二十四 小时小时清零 从而达到计时的功能 是人民日常生活补课缺少的工具 1 2 电子时钟的基本特点电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器 由于电子钟 石英钟 石英表都 采用了石英技术 因此走时精度高 稳定性好 使用方便 不需要经常调试 数字式电子钟用 集成电路计时时 译码代替机械式传动 用 LED 显示器代替指针显示进而显示时间 减小了计 时误差 这种表具有时 分 秒显示时间的功能 还可以进行时和分的校对 片选的灵活性好 1 3 电子时钟的原理电子时钟的原理 该电子时钟由 89C51 BUTTON 六段数码管等构成 采用晶振电路作为驱动电路 由延时 程序和循环程序产生的一秒定时 达到时分秒的计时 六十秒为一分钟 六十分钟为一小时 满二十四小时为一天 而电路中唯一的一个控制键却拥有多种不同的功能 按下又松开 可以 2 实现屏蔽数码管显示的功能 达到省电的目的 直接按下不松开 则可以通过按键实现分钟的 累加 每按一次分钟加一 而连续两次按下按键不放松 则可实现小时的调节 同样每按一次 小时加一 2 2 单片机识的相关知识单片机识的相关知识 2 1 单片机简介单片机简介 单片机全称为单片机微型计算机 Single Chip Microsoftcomputer 从应用领域来看 单片机主要用来控制 所以又称为微控制器 Microcontroller Unit 或嵌入式控制器 单片 机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机 2 22 2 ProteusProteus 软件简介软件简介 PROTEUS 软件由 Labcenter 公司开发 是目前世界上最先进 最完整的嵌入式系统设计与 仿真平台 可以实现数字电路 模拟电路及微控制器系统与外设的混合电路系统的电路仿真 软件仿真 系统协同仿真和 PCB 设计等功能 是目前唯一能够对各种处理器进行实时仿真 调 试与测试的 EDA 工具 微控制器系统相关的仿真需建立编译和调试环境 可选择 Keil C51uVision2 软件 该软件支持众多不同公司的芯片 集编辑 编译和程序仿真等于一体 同 时还支持 PLM 汇编和 C 语言的程序设计 它的界面友好易学 在调试程序 软件仿真方面有很 强大的功能 其革命性的功能是 将电路仿真和微处理器仿真进行协同 直接在基于原理图的 虚拟原型上进行处理器编程调试 并进行功能验证 通过动态器件如电机 LED LCD 开关等 实时看到运行后的输入 输出的效果 配合系统配置的虚拟仪器如示波器 逻辑分析仪等 Proteus 为我们建立了完备的电子设计开发环境 2 32 3 单片机的特点单片机的特点 1 单片机的存储器 ROM 和 RAM 时严格区分的 ROM 称为程序存储器 只存放程序 固定 常数 及数据表格 RAM 则为数据存储器 用作工作区及存放用户数据 2 采用面向控制 的指令系统 为满足控制需要 单片机有更强的逻辑控制能力 特别是单片机具有很强的位处 理能力 3 单片机的 I O 口通常时多功能的 由于单片机芯片上引脚数目有限 为了解决实际引脚数和需要的信号线的矛盾 采用了引脚功 能复用的方法 引脚处于何种功能 可由指令来设置或由机器状态来区分 4 单片机的外部扩展能力很强 在内部的各种功能部件不能满足应用的需求时 均可在外部 进行扩展 与许多通用的微机接口芯片兼容 给应用系统设计带来了很大的方便 2 42 4 89C5189C51 单片机介绍单片机介绍 VCC 电源 GND 接地 3 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 P1 口的管 脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部程 序数据存储器 它可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原码输入口 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部必须被拉高 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上拉为高 可用作 输入 P1 口被外部下拉为低电平 时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址接 收 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻 拉高 且作为输入 并因此作为输 入时 P2 口的管脚被外部拉低 将输出电流 这是由于内部上拉的缘故 P2 口当用于外部程序 存储器或 16 位地址外部数据存 储器进行存取时 P2 口输出地址的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部八位地址数据存储器进行读写时 P2 口输出其特殊功能寄存器 的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U4 AT89C51 图 2 1 89C51 单片机 P3 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于外部下拉为低 电平 P3 口将输出电流 ILL 这是由于上拉的缘故 4 P3 口也可作为 AT89C51 的一些特殊功能口 如下表所示 口管脚 备选功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 记时器 0 外部输入 P3 5 T1 记时器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目的 然而要注意的是 每当用作外部数据存储器 时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上 置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉高 如 果微处理器在外部执行状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储 0000H FFFFH 不管是否有内部 程序存储器 注意加密方式 1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部 程序存储器 在 FLASH 编程期间 此引脚也用于施加 12V 编程电源 VPP 3 3 控制系统的硬件设计控制系统的硬件设计 3 13 1 单片机型号的选择单片机型号的选择 通过对多种单片机性能的分析 最终认为 89C51 是最理想的电子时钟开发芯片 89C51 是一 种带 4K 字节闪烁可编程可擦除只读存储器的低电压 高性能 CMOS8 位微处理器 器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由 于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 89C51 是一种高效微控制器 而 5 且它与 MCS 51 兼容 且具有 4K 字节可编程闪烁存储器和 1000 写 擦循环 数据保留时间为 10 年等特点 是最好的选择 3 23 2 数码管显示数码管显示工作原理工作原理 数码管是一种把多个 LED 显示段集成在一起的显示设备 有两种类型 一种是共阳型 一 种是共阴型 共阳型就是把多个 LED 显示段的阳极接在一起 又称为公共端 共阴型就是把多 个 LED 显示段的阴极接在一起 即为公共商 阳极即为二极管的正极 又称为正极 阴极即为 二极管的负极 又称为负极 通常的数码管又分为 8 段 即 8 个 LED 显示段 这是为工程应用 方便如设计的 分别为 A B C D E F G DP 其中 DP 是小数点位段 而多位数码管 除 某一位的公共端会连接在一起 不同位的数码管的相同端也会连接在一起 即 所有的 A 段都 会连在一起 其它的段也是如此 这是实际最常用的用法 数码管显示方法可分为静态显示和 动态显示两种 静态显示就是数码管的 8 段输入及其公共端电平一直有效 动态显示的原理是 各个数码管的相同段连接在一起 共同占用 8 位段引管线 每位数码管的阳极连在一起组成公 共端 利用人眼的视觉暂留性 依次给出各个数码管公共端加有效信号 在此同时给出该数码 管加有效的数据信号 当全段扫描速度大于视觉暂留速度时 显示就会清晰显示出来 图 3 1 共阴数码管 3 33 3 键盘电路设计键盘电路设计 该设计只用了一个键盘 但实现的功能却是比较完善 减少了硬件资源的损耗 该键盘可以实 现小时和分钟的调节以及控制是否进入省电模式 当按键按下又松开 可以实现屏蔽数码管显 示的功能 达到省电的目的 直接按下不松开 则可以通过按键实现分钟的累加 每按一次分 钟加一 而连续两次按下按键不放松 则可实现小时的调节 同样每按一次小时加一 达到时 间调节的目的 6 图 3 2 多功能控制键 3 43 4 整个电路原理图整个电路原理图 Proteus 电路图设计电路图设计 运行 Proteus 的 ISIS 后出现程序主窗口界面 鼠标左键单击窗口左侧的元器件工具栏的 component 按钮 接着再点击窗口左侧的元器件选择区的 Pick Divices 按钮 弹出 Pick Devices 窗口 再在 Categ 栏里点击 MicroprocessorICs 项后 在 Results 栏里会出现各种类型 的 CPU 器件 找到 AT89C51 后双击 AT89C51 就被添加到当前窗口左侧的元器件列表区了 用同样的方法依次把数码管 晶振以及多个电阻 电容也添加到器件列表区里 然后再依次点击列表区里的器件 单击左键把他们放到绘图区 右键选中元件 并编辑其 属性 合理布局后 进行连线 连线时当鼠标的指针靠近一个对象的引脚时 跟着鼠标的指针 r ICs 就会出现一个 提示符号 点击鼠标左键即可画线了 需要拐弯时点击一下即可 在终 点再点击确认一下就画出了一段导线 所有导线画完后 点击工具栏的 Inter sheeTerminal 按钮 添加上电源和接地符号 原理图的绘制就完成了 7 图 3 3 系统电路原理图 4 4 控制系统的软件设计控制系统的软件设计 4 14 1 程序设计程序设计 本系统的软件系统主要可分为主程序 定时计数中断程序 时间调整程序 延时程序 四大模块 在程序设计过程中 加强了部分软件抗干扰措施 下面对部分模块作介绍 定时计数中断程序 MOV TMOD 00H 写控制字 MOV TH0 0F0H 写定时常数 8 MOV TLO 0CH SETB TR0 启动 T0 SETB ETO 允许 T0 中断 SETB EA 开放 CPU 中断 AJMP 时间调整程序 SETMM cLR ET0 关定时器 T0 中断 CLR TR0 关闭定时器 T0 LCALL DL1S 调用 1 秒延时程序 JB P3 7 CLOSEDIS 键按下时间小于 1 秒 关闭显示 省电 MOV R2 06H 进入调时状态 赋闪烁定时初值 SETB ET1 允许 T1 中断 SETB TR1 开启定时器 T1 SET2 JNB P3 7 SET1 P3 7 口为 0 键未释放 等待 SETB 00H 键释放 分调整闪烁标志置 1 SET4 JB P3 7 SET3 等待键按下 LCALL DL05S 有键按下 延时 0 5 秒 JNB P3 7 SETHH 按下时间大于 0 5 秒转调小时状态 MOV R0 77H 按下时间小于 0 5 秒加 1 分钟操作 LCALL ADD1 调用加 1 子程序 MOV A R3 取调整单元数据 CLR C 清进位标志 CJNE A 60H HHH 调整单元数据与 60 比较 HHH JC SET4 调整单元数据小于 60 转 SET4 循环 LCALL CLR0 调整单元数据大于或等于 60 时清 0 CLR C 清进位标志 AJMP SET4 跳转到 SET4 循环 CLOSEDIS SETB ET0 省电 LED 不显示 状态 开 T0 中断 SETB TR0 开启 T0 定时器 开时钟 CLOSE JB P3 7 CLOSE 无按键按下 等待 9 LCALL DISPLAY 有键按下 调显示子程序延时削抖 JB P3 7 CLOSE 是干扰返回 CLOSE 等待 WAITH JNB P3 7 WAITH 等待键释放 LJMP START1 返回主程序 LED 数据显示亮 SETHH CLR 00H 分闪烁标志清除 进入调小时状态 SETHH1 JNB P3 7 SET5 等待键释放 SETB 01H 小时调整标志置 1 SET6 JB P3 7 SET7 等待按键按下 LCALL DL05S 有键按下延时 0 5 秒 JNB P3 7 SETOUT 按下时间大于 0 5 秒退出时间调整 MOV R0 79H 按下时间小于 0 5 秒加 1 小时操作 LCALL ADD1 调加 1 子程序 MOV A R3 CLR C CJNE A 24H HOUU 计时单元数据与 24 比较 HOUU JC SET6 小于 24 转 SET6 循环 LCALL CLR0 大于或等于 24 时清 0 操作 AJMP SET6 跳转到 SET6 循环 SETOUT JNB P3 7 SETOUT1 调时退出程序 等待键释放 LCALL DISPLAY 延时削抖 JNB P3 7 SETOUT 是抖动 返回 SETOUT 再等待 CLR 01H 清调小时标志 CLR 00H 清调分标志 CLR 02H 清闪烁标志 CLR TR1 关闭定时器 T1 CLR ET1 关定时器 T1 中断 SETB TR0 开启定时器 T0 SETB ET0 开定时器 T0 中断 计时开始 LJMP START1 跳回主程序 SET1 LCALL DISPLAY 键释放等待时调用显示程序 调分 10 AJMP SET2 防止键按下时无时钟显示 SET3 LCALL DISPLAY 等待调分按键时时钟显示用 AJMP SET4 SET5 LCALL DISPLAY 键释放等待时调用显示程序 调小时 AJMP SETHH1 防止键按下时无时钟显示 SET7 LCALL DISPLAY 等待调小时按键时时钟显示用 AJMP SET6 SETOUT1 LCALL DISPLAY 退出时钟调整时键释放等待 AJMP SETOUT 防止键按下时无时钟显示 延时程序 1MS 延时程序 LED 显示程序用 DL1MS MOV R6 14H DL1 MOV R7 19H DL2 DJNZ R7 DL2 DJNZ R6 DL1 RET 20MS 延时程序 采用调用显示子程序以改善 LED 的显示闪烁现象 DS20MS ACALL DISPLAY ACALL DISPLAY ACALL DISPLAY RET 4 24 2 程序流程图程序流程图 系统的流程图如图 4 1 和图 4 2 所示 11 图 4 1 主程序流程图 12 图 4 2 中断处理流程图 13 4 3 仿真结果 图 4 3 开始运行程序仿真图 图 4 4 运行一段时间后仿真图 14 实现的功能 按键调时 按键调分 按键调秒 按设置键切换工作模式 元件清单 单片机 AT80C51 按键 BUTTON 电阻 RES 电容 CAP 晶振 CRYSTAL LED 数码管 7SEG MPX8 CA BLUE CA 共阳 地 GROUND 电源 POWER 4 44 4 仿真结果分析仿真结果分析 功能太过单调 只能实现时分秒的显示 设计比较简单 电路图的设计过于单调 用的器 件太少 实现调节时间的按钮太少 不能很好的实现时间的调节 在测试过程中 六位数码显 示管只显示五位数字 有一位数字不亮 通过多次的修改程序并在 PROTEUS 软件环境中进行仿 真 最终解决了这个问题 同时也透露出本人在单片机电路设计和程序设计方面的不足 不过 最后的仿真效果非常好 实现了预期的效果 能过通过多功能控制键调节时间和是否进入省电 模式 是一个比较令人满意的设计 5 5 心得体会 心得体会 通过这次的设计使我认识到我对单片机方面的知识知道的太少了 对于书本上的很多知识 还不能灵活运用 有很多我们需要掌握的知识在等着我去学习 我会在以后的学习生活中弥补 我所缺少的知识 本次的设计使我从中学到了一些很重要的东西 那就是如何从理论到实践的 转化 怎样将我所学到的知识运用到我以后的工作中去 另外还了解了基于单片机的电子时钟 的设计方法 但由于时间的原因 其中还有不明白的地方 本次的设计使我从中学到了一些很重要的东西 那就是如何从理论到实践的转化 怎样将 我所学到的知识运用到我以后的工作中去 在大学的课堂的学习只是在给我们灌输专业知识 而我们应把所学的用到我们现实的生活中去 此次的电子时钟设计给我奠定了一个实践基础 我会在以后的学习 生活中磨练自己 使自己适应于以后的竞争 同时在查找资料的过程中我 也学到了许多新的知识 在和同学协作过程中增进同学间的友谊 使我对团队精神的积极性和 重要性有了更加充分的理解 15 6 附录 ORG 0000H 程序执行开始地址 LJMP START 跳到标号 START 执行 ORG 0003H 外中断 0 中断程序入口 RETI 外中断 0 中断返回 ORG 000BH 定时器 T0 中断程序入口 LJMP INTT0 跳至 INTTO 执行 ORG 0013H 外中断 1 中断程序入口 RETI 外中断 1 中断返回 ORG 001BH 定时器 T1 中断程序入口 LJMP INTT1 跳至 INTT1 执行 ORG 0023H 串行中断程序入口地址 RETI 串行中断程序返回 主程序开始 START MOV R0 70H 清 70H 7AH 共 11 个内存单元 MOV R7 0BH CLEARDISP MOV R0 00H INC R0 DJNZ R7 CLEARDISP MOV 20H 00H 清 20H 标志用 MOV 7AH 0AH 放入 熄灭符 数据 MOV TMOD 11H 设 T0 T1 为 16 位定时器 MOV TL0 0B0H 50MS 定时初值 T0 计时用 MOV TH0 3CH 50MS 定时初值 MOV TL1 0B0H 50MS 定时初值 T1 闪烁定时用 MOV TH1 3CH 50MS 定时初值 SETB EA 总中断开放 SETB ET0 允许 T0 中断 SETB TR0 开启 T0 定时器 16 MOV R4 14H 1 秒定时用初值 50MS 20 START1 LCALL DISPLAY 调用显示子程序 JNB P3 7 SETMM1 P3 7 口为 0 时转时间调整程序 SJMP START1 P3 7 口为 1 时跳回 START1 SETMM1 LJMP SETMM 转到时间调整程序 SETMM 1 秒计时程序 INTT0 PUSH ACC 累加器入栈保护 PUSH PSW 状态字入栈保护 CLR ET0 关 T0 中断允许 CLR TR0 关闭定时器 T0 MOV A 0B7H 中断响应时间同步修正 ADD A TL0 低 8 位初值修正 MOV TL0 A 重装初值 低 8 位修正值 MOV A 3CH 高 8 位初值修正 ADDC A TH0 MOV TH0 A 重装初值 高 8 位修正值 SETB TR0 开启定时器 T0 DJNZ R4 OUTT0 20 次中断未到中断退出 ADDSS MOV R4 14H 20 次中断到 1 秒 重赋初值 MOV R0 71H 指向秒计时单元 71H 72H ACALL ADD1 调用加 1 程序 加 1 秒操作 MOV A R3 秒数据放入 A R3 为 2 位十进制数组合 CLR C 清进位标志 CJNE A 60H ADDMM ADDMM JC OUTT0 小于 60 秒时中断退出 ACALL CLR0 大于或等于 60 秒时对秒计时单元清 0 MOV R0 77H 指向分计时单元 76H 77H ACALL ADD1 分计时单元加 1 分钟 MOV A R3 分数据放入 A CLR C 清进位标志 CJNE A 60H ADDHH 17 ADDHH JC OUTT0 小于 60 分时中断退出 ACALL CLR0 大于或等于 60 分时分计时单元清 0 MOV R0 79H 指向小时计时单元 78H 79H ACALL ADD1 小时计时单元加 1 小时 MOV A R3 时数据放入 A CLR C 清进位标志 CJNE A 24H HOUR HOUR JC OUTT0 小于 24 小时中断退出 ACALL CLR0 大于或等于 24 小时小时计时单元清 0 OUTT0 MOV 72H 76H 中断退出时将分 时计时单元数据移 MOV 73H 77H 入对应显示单元 MOV 74H 78H MOV 75H 79H POP PSW 恢复状态字 出栈 POP ACC 恢复累加器 SETB ET0 开放 T0 中断 RETI 中 断返回 闪动调时 程 序 T1 中断服务程序 用作时间调整时调整单元闪烁指示 INTT1 PUSH ACC 中断现场保护 PUSH PSW MOV TL1 0B0H 装定时器 T1 定时初值 MOV TH1 3CH DJNZ R2 INTT1OUT 0 3 秒未到退出中断 50MS 中断 6 次 MOV R2 06H 重装 0 3 秒定时用初值 CPL 02H 0 3 秒定时到对闪烁标志取反 JB 02H FLASH1 02H 位为 1 时显示单元 熄灭 MOV 72H 76H 02H 位为 0 时正常显示 MOV 73H 77H MOV 74H 78H MOV 75H 79H 18 INTT1OUT POP PSW 恢复现场 POP ACC RETI 中断退出 FLASH1 JB 01H FLASH2 01H 位为 1 时 转小时熄灭控制 MOV 72H 7AH 01H 位为 0 时 熄灭符 数据放入分 MOV 73H 7AH 显示单元 72H 73H 将不显示分数据 MOV 74H 78H MOV 75H 79H AJMP INTT1OUT 转中断退出 FLASH2 MOV 72H 76H 01H 位为 1 时 熄灭符 数据放入小时 MOV 73H 77H 显示单元 74H 75H 小时数据将不显示 MOV 74H 7AH MOV 75H 7AH AJMP INTT1OUT 转中断退出 加 1 子 程 序 ADD1 MOV A R0 取当前计时单元数据到 A DEC R0 指向前一地址 SWAP A A 中数据高四位与低四位交换 ORL A R0 前一地址中数据放入 A 中低四位 ADD A 01H A 加 1 操作 DA A 十进制调整 MOV R3 A 移入 R3 寄存器 ANL A 0FH 高四位变 0 MOV R0 A 放回前一地址单元 MOV A R3 取回 R3 中暂存数据 INC R0 指向当前地址单元 SWAP A A 中数据高四位与低四位交换 ANL A 0FH 高四位变 0 MOV R0 A 数据放入当削地址单元中 RET 子 程序返回 清零程序 19 对计时单元复零用 CLR0 CLR A 清累加器 MOV R0 A 清当前地址单元 DEC R0 指向前一地址 MOV R0 A 前一地址单元清 0 RET 子程序返回 时钟调整程序 当调时按键按下时进入此程序 SETMM CLR ET0 关定时器 T0 中断 CLR TR0 关闭定时器 T0 LCALL DL1S 调用 1 秒延时程序 JB P3 7 CLOSEDIS 键按下时间小于 1 秒 关闭显示 省电 MOV R2 06H 进入调时状态 赋闪烁定时初值 SETB ET1 允许 T1 中断 SETB TR1 开启定时器 T1 SET2 JNB P3 7 SET1 P3 7 口为 0 键未释放 等待 SETB 00H 键释放 分调整闪烁标志置 1 SET4 JB P3 7 SET3 等待键按下 LCALL DL05S 有键按下 延时 0 5 秒 JNB P3 7 SETHH 按下时间大于 0 5 秒转调小时状态 MOV R0 77H 按下时间小于 0 5 秒加 1 分钟操作 LCALL ADD1 调用加 1 子程序 MOV A R3 取调整单元数据 CLR C 清进位标志 CJNE A 60H HHH 调整单元数据与 60 比较 HHH JC SET4 调整单元数据小于 60 转 SET4 循环 LCALL CLR0 调整单元数据大于或等于 60 时清 0 CLR C 清进位标志 AJMP SET4 跳转到 SET4 循环 CLOSEDIS SETB ET0 省电 LED 不显示 状态 开 T0 中断 20 SETB TR0 开启 T0 定时器 开时钟 CLOSE JB P3 7 CLOSE 无按键按下 等待 LCALL DISPLAY 有键按下 调显示子程序延时削抖 JB P3 7 CLOSE 是干扰返回 CLOSE 等待 WAITH JNB P3 7 WAITH 等待键释放 LJMP START1 返回主程序 LED 数据显示亮 SETHH CLR 00H 分闪烁标志清除 进入调小时状态 SETHH1 JNB P3 7 SET5 等待键释放 SETB 01H 小时调整标志置 1 SET6 JB P3 7 SET7 等待按键按下 LCALL DL05S 有键按下延时 0 5 秒 JNB P3 7 SETOUT 按下时间大于 0 5 秒退出时间调整 MOV R0 79H 按下时间小于 0 5 秒加 1 小时操作 LCALL ADD1 调加 1 子程序 MOV A R3 CLR C CJNE A 24H HOUU 计时单元数据与 24 比较 HOUU JC SET6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蓄电池基础知识培训课件
- 2025年全国育婴师中级职业技能考试题库(含答案)
- 2025年辽宁省中考英语试卷(含答案)
- 产后抑郁症护理考试题及答案
- 曹禺中学期末考试卷子及答案
- 藏族近代文学考试题库及答案
- 什么依然的初三作文15篇
- 学前儿童卫生与保育(微课版) 课件 项目八 幼儿园的卫生保健工作
- 2025关于有偿合同的违约处理
- 物流服务师题库及答案
- 2025-2026学年统编版小学语文四年级上册教学计划及进度表
- 2025年湖北省武汉市中考语文真题(含答案)
- 中国心房颤动管理指南2025解读
- Unit1Weletotheunit课件译林版八年级英语上册
- 离职交接事项协议书范本
- 【高考真题】海南省2025年高考真题物理(含答案)
- 体育教师自我介绍课件
- 银行员工职业操守课件
- 初中开学第一课心理健康课
- 艺康servsafe培训课件
- TDT1067-2021不动产登记数据整合建库技术规范
评论
0/150
提交评论