




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术单片机技术 课程设计说明书课程设计说明书 数字电子钟 系 部 学生姓名 指导教师 职称 专 业 班 级 完成时间 2012 10 16 0 单片机技术单片机技术 课程设计任务书课程设计任务书 一 设计题目 数字电子钟 数字频率计 数字电压表 交通灯 抢答器 密码锁 波形发生 器 数字温度计 计算器 数字式秒表 二 适用班级 三 指导教师 四 设计目的与任务 学生通过理论设计和实物制作解决相应的实际问题 巩固和运用在 单片机技术 中所学 的理论知识和实验技能 掌握单片机应用系统的一般设计方法 提高设计能力和实践动手能力 为以后从事电子电路设计 研发电子产品打下良好的基础 五 设计内容与要求 设计内容 1 数字电子钟 设计一个具有特定功能的电子钟 该电子钟上电或按键复位后能自动显示系统提示符 P 进入时钟准备状态 第一次按电子钟启动 调整键 电子钟从 0 时 0 分 0 秒开始运行 进入时 钟运行状态 再次按电子钟启动 调整键 则电子钟进入时钟调整状态 此时可利用各调整键调 整时间 调整结束后可按启动 调整键再次进入时钟运行状态 2 数字频率计 设计一个能够测量周期性矩形波信号的频率 周期 脉宽 占空比的频率计 该频率计上 电或按键复位后能自动显示系统提示符 P 进入测量准备状态 按频率测量键则测量频率 按周期测量键则测量周期 按脉宽测量键则测量脉宽 按占空比测量键则测量占空比 3 数字电压表 设计一个能够测量直流电压的数字电压表 测量电压范围 0 5V 测量精度小数点后两位 该电压表上电或按键复位后能自动显示系统提示符 P 进入测量准备状态 按测量开始键 则开始测量 并将测量值显示在显示器上 按测量结束键则自动返回 P 状态 4 交通灯 设计一个具有特定功能的十字路口交通灯 该交通灯上电或按键复位后能自动显示系统提 示符 P 进入准备工作状态 按开始键则开始工作 按结束键则返回 P 状态 要求甲 车道和乙车道两条交叉道路上的车辆交替运行 甲车道为主车道 每次通车时间为 60 秒 乙车 道为次车道 每次通车时间为 30 秒 要求黄灯亮 3 秒 并且 1 秒闪烁一次 有应急车辆出现时 红灯全亮 应急车辆通车时间 10 秒 同时禁止其他车辆通过 5 抢答器 设计一个具有特定功能的抢答器 该抢答器上电或按键复位后能自动显示系统提示符 P 进入准备工作状态 主持人按下开始按钮后 抢答开始并限定时间 30S 10S 内无人抢答 蜂 鸣器发出音响 主持人按下开始按钮之前有人按下抢答器 抢答违规 显示器显示违规台号 违规指示灯亮 其它按钮不起作用 正常抢答 显示器显示台号 蜂鸣器发出音响 其它抢答 按钮无效 正常抢答下 从按下抢答按钮开始 30S 内 答完按钮没按下 则作超时处理 超时 处理时 违规指示灯亮 显示器显示违规台号 蜂鸣器发出音响 各台数字显示的消除 蜂鸣 器音响及违规指示灯的关断 都要通过主持人按复位按钮 6 密码锁 1 设计一个具有特定功能的密码锁 该密码锁上电或按键复位后能自动显示系统提示符 P 进入准备工作状态 该密码锁具有系统原始密码 888888 用户可以设定并存储用户密码 密 码输入时应处于保密显示状态 密码输入正确时应显示密码输入正确提示信息 否则 显示密 码输入错误提示信息 7 波形发生器 设计一个具有特定功能的波形发生器 该波形发生器上电或按键复位后能自动显示系统提 示符 P 进入准备工作状态 该波形发生器可以分别产生幅值 0 5V 频率 100Hz 100KHz 范围内的三角波 锯齿波 方波 梯形波和正弦波 8 数字温度计 设计一个具有特定功能的数字温度计 该数字温度计上电或按键复位后能自动显示系统提 示符 P 进入准备工作状态 测量温度范围 0 99 测量精度小数点后两位 可以通过 开始和结束键控制数字温度计的工作状态 9 计算器 设计一个具有特定功能的计算器 该计算器上电或按键复位后能自动显示系统提示符 P 进入准备工作状态 能实现 1 基本的加 减 乘 除 平方 开方 2 三角函数运算 3 十进制 十六进制转换运算 4 其他功能 10 数字式秒表 设计一个具有特定功能的数字式秒表 该数字式秒表上电或按键复位后能自动显示系统提 示符 P 进入准备工作状态 该数字式秒表应具有开始 暂停 连续 清零和停止功能 设计要求 1 以上课题可以任选其一或多选 学生也可以自拟课题 2 编程语言 汇编或 C51 3 计算机打印 单片机技术 课程设计说明书一份 4 设计时间 两周 5 实物制作 6 人员分组 一人一组一实物 六 单片机技术 课程设计说明书正文主要内容 参照 单片机技术 课程设计说明书正文主要内容 文件 七 单片机技术 课程设计说明书书写规范格式 参照 单片机技术 课程设计说明书书写规范格式 文件 八 参考资料 1 马忠梅 单片机的 C 语言 Windows 环境编程宝典 M 北京 北京航空航天大学出版社 2003 6 2 李光飞 单片机 C 程序设计指导 M 北京 北京航空航天大学出版社 2003 01 3 李光飞 单片机课程设计实例指导 M 北京 北京航空航天大学出版社 2004 9 电气自动化教研室 2012 年 9 月 10 日 摘 要 本文采用了单片机最小系统 从数字电子钟设计的原理出发 采用 LED 数码管 显示 时 分 秒 以 24 小时或 12 小时计时方式 根据数码管动态显 示原理来进行显示 采用 12MHz 的晶振产生振荡脉冲 单片机定时器定时 在此次 设计中 电路具有显示时间的基本功能 还可以进行时间的调整 数字钟是其小巧 价格低廉 走时精度高 功能多而受广大消费者的喜爱 因此得到了广泛的使用 关键词 数字电子钟 单片机 ABSTRACT The digital electronic clock design we use LED digital display when sub seconds in 24 hours or 12 hoursTiming mode according to the digital control theory to dynamic display to display using a 12MHz crystal oscillation pulse single chip timerWhen the timer count In this design the circuit has shown the basic functions oftime can also be time to adjust Digital clock is theSmall low cost travel time and high precision multi function and by the majority of consumers it has been widely used Key words digital electronic clock microcomputer 目 录 1 设计任务和方案 1 1 1 设计任务 1 1 2 功能要求说明 1 1 3 设计课题总体方案及工作原理说明 1 2 数字电子钟的硬件系统的设计 2 2 1 硬件系统各模块功能设计 2 2 2 电路原理图 PCB 图和元器件布局 2 2 3 元器件清单 2 3 数字电子钟的软件系统的设计 3 3 1 使用的单片机资源的情况 3 3 2 各模块功能简要介绍 3 3 3 程序清单 3 3 4 程序的流程图 4 4 设计结论及教学建议 9 4 1 设计结论和使用说明 9 4 2 实物显示结果 9 4 3 误差分析 10 4 4 设计体会和教学建议 10 结束语 12 参考文献 13 致 谢 14 附 录 15 附录 1 电路原理图 15 附录 2 PCB 顶层图 16 附录 3 PCB 底层图 17 附录 4 PCB 元器件布局图 18 附录 5 数字电子钟程序清单 19 0 1 设计任务和方案 1 1 设计任务 1 设计题目 数字电子钟 2 设计目的与任务 学生通过理论设计和实物制作解决相应的实际问题 巩固和运用在 单片机技 术 中所学的理论知识和实验技能 掌握单片机应用系统的一般设计方法 提高设 计能力和实践动手能力 为以后从事电子电路设计 研发电子产品打下良好的基础 1 2 功能要求说明 设计一个具有特定功能的电子钟 该电子钟上电或按键复位后能自动显示系统 提示符 P 进入时钟准备状态 第一次按电子钟启动 调整键 电子钟从 0 时 0 分 0 秒开始运行 进入时钟运行状态 再次按电子钟启动 调整键 则电子钟进入 时钟调整状态 此时可利用各调整键调整时间 调整结束后可按启动 调整键再次 进入时钟运行状态 1 3 设计课题总体方案及工作原理说明 设计中采用 AT89S52 芯片及 LED 显示器 一些独立式按键构成一个简单的数字 电子钟 设计中是采用单片机的内部定时器进行定时 程序框图如图 1 所示 整个电子钟的工作原理是 在正常的供电状态下 首先利用单片机定时 到了 相应的时间由单片机将所需要显示的数据送到 LED 显示器的输入口 当有键按下时 则进入相应的按键显示和调整状态 进行按键调整 图 1 总的设计的框图 AT89S52 单片机 单片机晶振电路 单片机复位电路 按键电路 驱动 8位LED显示 1 2 数字电子钟的硬件系统的设计 2 1 硬件系统各模块功能设计 该数字电子钟由单片机最小系统 键盘模块 LED 显示电路模块 USB 接口电路 模块 下载口模块组成 各模块的功能如下 1 单片机最小系统 由 AT89S52 单片机 时钟电路和复位电路构成 AT89S52 是一种带 8K 字节闪烁 可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位微处理器 俗称单片机 时钟电路由一 个 12MHZ 的石英晶体振荡器和两个 33pF 的的电容组成振荡电路和分频电路 为单 片机提供内部时钟 复位电路采用上电复位和按键复位结合的方式对电路进行复位 2 键盘模块 采用独立式键盘接法 共有五个按键来对电路进行控制 分别接在单片机的 P1 口线上 一个键控制复位 一个键控制启动暂停 另外三个键分别调秒 分和时 3 LED 显示电路 采用八个共阳的数码管显示器进行显示 将段控口接在 P0 口上 位控口接在 P2 口上 实现对显示的控制 4 USB 接口电路 接上一个电容组成的滤波电路和电源显示灯组成一个电源接口 为单片机工作供电 5 下载口模块 用于将用 Keil 生成的 hex 文件下载到单片机中 2 2 电路原理图 PCB 图和元器件布局 采用 Protel 软件 Protel99SE 是 Protel 公司近 10 年来致力于 Windows 平台 开发的最新结晶 能实现从电学概念设计到输出物理生产数据 能够和形象的画出 我们所要设计的产品 电路原理图和 PCB 图及元器件布局见附录 A 2 3 元器件清单 见附录 2 3 数字电子钟的软件系统的设计 3 1 使用的单片机资源的情况 该数字电子钟用到了单片机的定时器的功能 此外用到了单片机的中断功能 在数据的显示时所采用的是查表的方法 因此需要将表格 数据存到单片机的程序 存储器中去 由于电子钟需要可以进行调节 因此 需要在单片机的 P 口上加上按键 设计 采用独立式键盘 直接接在 P1 口上且按键的结果存贮在单片机的内部数据存储器 里面 用到的 LED 显示器接到了单片机的 P0 口线上和 P2 口线上 3 2 各模块功能简要介绍 该数字电子钟所用的软件模块有系统监控程序模块 子程序模块 按键模块 定时器模块 中断服务程序模块 1 系统监控程序模块 即主程序 用于对输入信号的处理和输出信号的控制和对各个功能模块的处理 2 子程序模块 子程序包括键盘扫描子程序 数码管显示子程序和延时程序 键盘扫描子程序 用于确定按键及其相应的键值处理 数码管显示子程序用于控制数码管的显示 以 准确的显示时间 延时子程序是数码管动态显示中必要的一部分 因此我们才能看 到时间稳稳的显示在数码管上 3 按键模块 采用独立式键盘 共用五个按键对电路进行控制和操作 分别为 key1 key2 key3 key4 key5 来控制电子钟的开 关和调整 4 定时器模块 选择定时器 0 设置定时方式为方式 1 设置定时时间为 50mS 5 中断服务程序模块 主要用于实现电子钟的准确运行 3 3 程序清单 见附录 3 3 4 程序的流程图 1 整体设计流程图 开始 系统初始化 进入自动计时状态 A键按下否 检测到A键按下 进入时间设置状态 P 显示 检测到A键按下 N Y N N Y Y 4 图 2 整体设计流程图 2 显示 子程序流 程图 图 3 显示子程序流程图 开始 送位控码 送段控码 延时 位控码循环右移 结束 循环8次 N Y 5 3 键盘设计流程图 图 4 键盘设计流程图 保存键值 A中 结束 开始 有键闭合 调显示子程序延时去抖动 有键闭合 Y Y N N 键释放否调显示子程序 Y N 6 4 显示设计流程图 开始 开数码管的秒十位显示 调用延时子程序 关数码管的秒十位显示 调用延时子程序 开数码管的秒个位显示 关数码管的秒个位显示 开数码管的分十位显示 调用延时子程序 关数码管的分十位显示 开数码管的分个位显示 调用延时子程序 关数码管的分个位显示 开数码管的时十位显示 调用延时子程序 关数码管的时十位显示 开数码管的时个位显示 调用延时子程序 关数码管的时个位显示 结束 7 图 5 显示时分秒设计流程图 5 中断服务程序流 程图 开始 定时器初始化 定时时间到 秒加1 满60次 分加1秒清零 满60次 时加1分清零 满24次 时清零 N Y N Y N Y N Y 8 图 6 中断服务程序流程图 4 设计结论及教学建议 4 1 设计结论和使用说明 1 设计结论 通过对单片机进行外接键盘和 LED 数码管的操作以及加上硬件电路和软件的结 合 实现了该数字电钟显示时分秒的显示 同时还可实现对该电子钟进行调整的功 能 通过测试和仿真以及修改 该电子钟最终能正常的工作 2 使用说明 1 时间显示 电子钟上电后 8 个数码管显示初始状态即最左边的一个数码管显示 P 如果未显 示 P 只需按一下复位键即可使其显示出 P 按下 S2 键后电子钟进入自动计时状 态 电子钟显示 00 时 00 分 00 秒并开始运行 2 时间调整 若要进行时间调整 则需再次按下 S2 键 进入时间暂停调整状态 然后按下 S3 键 进行时钟的加一 按下 S4 键进行分钟的加一 按下 S5 键进行秒钟的加一 调整好 时间后 按下 S2 键就可以回到调整好的时间为基础的自动计时状态 无论是在自 动计时 还是在调整校正时 都可按下复位键使系统回到显示 P 的初始状态 4 2 实物显示结果 4 2 1 待机 上电复位或者按键复位后 P 的显示 如图 7 所示 图 7 数字电子钟上电时显示图 图 8 数字电子钟工作时显示图 图 7 P 显示 9 4 2 24 2 2 启动启动 按下 S2 键后 00 00 00 的显示 如图 8 所示 4 2 34 2 3 运行 按下 S3 S4 S5 可分别进行调时 调分 调秒 运行时的显示 如图 9 所示 4 3 误差分析 本数字电子钟在跟标准的电子钟比较时 时间稍微慢一点 产生此种情况的原 因有 其一是在执行程序指令时 由于需要耗费一定的时间 因此会比标准的电子 钟要慢一点 其二是晶振不够标准 使得定时器定时时不够精准 4 4 设计体会和教学建议 从硬件电路的设计到选题 再到软件电路的设计 整个过程当中我学到了很多 的东西 在老师的细心指导 耐心分析下 我把整个思路理清 并开始了设计的规 划 在原理图的绘制时我查找了相关软件的使用方法 例如在网上找视频教程 并 悉心向老师和同学请教 终于学会对 PROTEL 和 PROTEUS 的使用 在熨的时候没把 握好 结果出现了很多的断点 只能一个一个查 一个一个补 麻烦很大 工作量 也很大 而且很容易疏忽 所以将图纸熨到板子上时一定要熨的均匀 把握好时间 和力度 打孔时一定要对准 不要太急 慢慢来 插元器件的时候一定要把每个元 器件的引脚搞清楚 插之前要用万用表测好每个引脚是该接地还是该接电源 千万 图 8 启动 图 9 运行 10 不能插反了 焊接的时候要标准不能产生虚焊 也不要遗漏 要均匀 焊锡不能太 多也不能太少 否则在以后很容易出现问题 到最后就是检查电路的连接了 搞清 楚整个电路的连接时怎么样的 当显示器不亮的时候可以采用软件检查法或者硬件 检查对板子进行测试 这个过程中一定要细心且要有耐心 不要灰心 相信自己一 定能找出原因 只要自己持之以恒肯定能把错误找出来并纠正 在对板子进行测试 的时候出现了很多的错误 花了一整个下午的时间来查找电路的错误 首先是电源 指示灯不亮 灯座接反了 然后是显示器不亮 最后通过用万用表对电路进行测试 最终让电子钟正常的工作了 第二个错误的主要原因是熨的时候太多的断点没补好 以及在焊接的时候出现了很多的虚焊 导致某些段控口和位控口的不可用 因为是 第一次做板子 所以之前很多该注意的地方都没有注意 最后留下一大堆得问题 使得整个制版的过程耗费很多的时间和精力 从中我学会了很多 包括原理图的绘 制 程序的设计 PCB 的绘制 还有板子的制作 更重要的是我懂得了 要做好一 个东西 准备工作是不可少的 这样才能减少后面不必要的麻烦 而且遇到困难和 麻烦一点要有耐心和信心去把它解决掉 而不是放任不管 最后 想说老师保持这种教学方法一直下去就好 认真负责的态度会让学生收 获很多 循序渐进的教学方法能让学生比较容易的接受所学内容并有兴趣一直学下 去 这点真的很好 11 结束语 我在这次单片机课程设计中 很是受益匪浅 通过对自己在本学期里所学知识 的回顾 并充分发挥对所学知识的理解 最终实现了数字电子钟显示时分秒 并且 能对时分秒进行调整 这为自己今后进步一步深化所学 积累了宝贵经验 编写课 程设计也是专业知识的学习过程 它使我运用已有的专业基础知识 培养了我运用 所学知识解决实际问题的能力 将本设计的程序下载到单片机中 通过测试 基本上完成了任务书的要求 并 且显示的时间精确度也比较高 当然 也存在少许误差 例如本数字电子钟在跟标 准的电子钟比较时 时间稍微慢一点 产生此种情况的原因有 其一是在执行程序 指令时 由于需要耗费一定的时间 因此会比标准的电子钟要慢一点 其二是晶振 不够标准 使得定时器定时时不够精准 这是不可避免的 通过这个数字电子钟 我们还可以实现让它显示日期 万年历以及闹钟的功能 12 参考文献 1 1 唐俊瞿 许雷 张群瞻 单片机原理与应用 北京 冶金工业出版社 2003 2 2 李广弟 朱月秀 冷祖祁 单片机基础 第 3 版 北京 北京航空航天大 学出版社 2007 3 3 李光飞 单片机课程设计实例指导 北京 北京航空航天大学出版社 2004 9 4 4 马忠梅 籍顺心 张凯 马岩 单片机的 C 语言应用程序设计 第四版 北 京 北京航空航天大学出版社 2006 11 13 致 谢 在这里我要感谢很多很多人 帮助分析和解决问题 这是我第一次做这方面的 课程设计 而且是比较成功的板子 这些都是在老师和同学们的悉心指导下才能做 出的成绩 在画原理图的时候 当我不知道如何下手时 寝室的同学就把他们从网 上下载下来的视频教程给我看 让我学习 在不懂的地方的时候 他们都耐心的教 我 在做实物板子的时候 同学帮忙到处借打孔机 到市区买氯化铁 虽然在每一 步都出了很多的问题 但经过那些曾经做过板子的有经验的指导 还是把一个个困 难攻破了 真的很感谢你们 在开始选题的时候 王老师悉心的指导和讲解 让我 渐渐有自己的方案和选择方向 在每一步的进展当中 我都碰到了很多的问题 画 原理图的时候分析电子钟工作的原理以及怎么确定和修改 都是在王老师的指导和 同学的帮助下 经过一步步修改而成的 设计软件的时候 因为是设计一个系统的 程序 所以开始还没形成系统的思维 但在老师的讲解和同学的教导下 渐渐的将 一个个子程序联系起来调试运行 所以整个过程都是在王老师和同学的鼓励和帮 助下完成的 在此衷心的感谢他们对我的帮助和支持 14 附 录 附录 1 电路原 理图 附录 2 PCB 顶 层图 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 21 Aug 2011Sheet of File H 下下下下下下下 下下下下下下下下下 下下下下下下 20110821 ddbDrawn By 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 TX D 11 RX D 10 U1 AT89S52 a 11 b 7 c 4 d 2 e 1 f 10 g 5 dp 3 d4 6 d3 8 d2 9 d1 12 LED1 LED1 a 11 b 7 c 4 d 2 e 1 f 10 g 5 dp 3 d4 6 d3 8 d2 9 d1 12 LED2 R20 470R21 470R22 470R23 470R24 470R25 470R26 470R27 470 P20 P21 P22 P23 P24 P25 P26 P27 R00 470R01 2KR02 470R03 470R04 470R05 470R06 470R07 470 D1 LED D2 LED D3 LED D4 LED D5 LED D6 LED D7 LED D8 LED P00 P01 P02 P03 P04 P05 P06 P07 VCC P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 S1 R1 200 R2 1K C3 22uF VCC RET RET X1 X2 Y1 12MH z C1 33pF C2 33pF X1 X2 1 2 3 4 5 6 7 8 9 J5 10K P00 P01 P02 P03 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P16 P17 LS1 BELL R12 1K VCCP31 P30 P31 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 ISP WE P15 RET P17 P16 VCC P37 1 2 J1 CO N2 SS R13 1K P32 P33 P34 P35 P36 ALE P PSEN GN D D9 LED Q2 9012 PN P Q3 9012 PN P Q4 9012 PN P Q5 9012 PN P Q6 9012 PN P Q7 9012 PN P Q8 9012 PN P Q9 9012 PN P P00 P01 P02 P03 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P16 P17 P20 P21 P22 P23 P24 P25 P26 P27 P30 P31 P32 P33 P34 P35 P36 P37 VCC 1 2 3 4 5 6 7 8 JP1 CO N8 1 2 3 4 5 6 7 8 JP2 CO N8 1 2 3 4 5 6 7 8 JP3 CO N8 1 2 3 4 5 6 7 8 JP4 CO N8 VCC RP0 470 RP1 470 RP2 470 RP3 470 RP4 470 RP5 470 RP6 470 RP7 470 P30 1 2 JP5 CO N2VCC XX X P31 P32 P33 P34 P35 P36 P37 1 2 3 4 5 6 7 8 9 J2 10K VCC P10 P11 P12 P13 P14 P15 P16 P17 S2 S3 S4 S6 S7 S8 S9 S5 1 2 J3USB 下下 下下下下 下下下 下下 下下下下 下下下下下 下下下下下 下下下下下下下 下下下下 下下下 下下下下 1 2 JX2 CO N2 B21 B21 下下下 VCC XX X Q1 9012 PN P 15 附录 3 PCB 底层图 16 附录 4 PCB 元器件布局图 17 附录 5 数字电子钟程序清单 ORG 0030H 18 MAIN MOV SP 7FH 确立堆栈区 MOV PSW 00H 初始化 PSW 通用寄存器组 0 MOV R0 20H RAM 区首地址 MOV R7 96 RAM 区单元个数 ML MOV R0 00H INC R0 DJNZ R7 ML TSF MOV DPTR DISBH P 字符代码表首地址 MOV R5 08H MOV R0 78H DISPTSF CLR A MOVC A A DPTR MOV R0 A 字符序号送显缓 INC R0 INC DPTR DJNZ R5 DISPTSF MOV TMOD 01H 定时器 0 以方式 1 工作 CLR EA 关总中断 CLR ET0 关定时器 0 中断 CLR 21H 0 PUSH PSW CLR RS1 改变当前寄存器组为组 1 SETB RS0 MOV R3 1EH 二十分频器 赋初值 20 POP PSW 恢复当前寄存器组的组号 DD LCALL DISP LCALL KEY JB 20H 0 BG 为 1 转移 LJMP DD BG MOV HTEN 00H MOV HONE 00H MOV 7AH 012H MOV MTEN 00H MOV MONE 00H MOV 7DH 012H 显缓 时间值缓冲区 各 中转站 MOV STEN 00H MOVSONE 00H MOVHOUR 00H MOVMIN 00H MOVSEC 00H 19 MOVHIG 00H LCALLTTX 调时间值送显缓子程序 SETB EA 开总中断 SETB ET0 开定时器 0 中断 SETB PT0 定时器 0 优先级最高 其余为低 优先级 SO MOV TH0 6FH 赋定时器初值 MOV TL0 0FFH SETB TR0 开定时器 LOOP LCALLDISP 调显示子程序 LCALLKEY 调键扫子程序 JB20H 0 STOP 判断 S3 键 停止键 是否按下 LJMP LOOP 停止键 S2 键 功能程序 STOP CLR TR0 LCALLDISP 调显示子程序 LCALLKEY 调键扫子程序 JB20H 0 SO S2 键按下 跳至赋 SO 继续计时 JB20H 1 AH S3 键按下 跳至 S3 键 功能程 序 JB20H 2 AM S4 键按下 跳至 S4 键 功能程 序 JB20H 3 AS S5 键按下 跳至 S5 键 功能程 序 LJMP STOP 调时键 S3 键 功能程序 AH PUSH PSW CLR RS0 改变当前寄存器组为组 2 SETB RS1 MOV R0 HTEN 将加一子程序 AD 入口参数定为 时 MOV A HOUR CJNE A 23H H 为 23 则跳至重赋时间值程序 LJMP RSETH H LCALLAD 不为 23 调加一子程序 AD MOV HOUR R2 更新时 压缩 BCD 码 LCALLTTX 调时间值送显缓子程序 TTX POP PSW 恢复当前寄存器组的组号 LJMP STOP 调分键 S4 键 功能程序 AM PUSH PSW CLR RS0 改变当前寄存器组为组 2 SETB RS1 MOV R0 MTEN 将加一子程序入口参数定为 分 20 MOV A MIN CJNE A 59H M 为 59 则跳至重赋时间值程序 LJMP RSETM M LCALL AD 不为 59 调加一子程序 AD MOV MIN R2 更新分 压缩 BCD 码 LCALL TTX 调时间值送显缓子程序 TTX POP PSW 恢复当前寄存器组的组号 LJMP STOP 调秒键 S5 键 功能程序 AS PUSH PSW CLR RS0 改变当前寄存器组为组 2 SETB RS1 MOV R0 STEN 将加一子程序入口参数定为 秒 MOV A SEC CJNE A 59H S 为 59 则跳至重赋时间值程序 LJMP RSETS S LCALL AD 不为 59 调加一子程序 AD MOV SEC R2 更新秒 压缩 BCD 码 LCALL TTX 调时间值送显缓子程序 TTX POP PSW 恢复当前寄存器组的组号 LJMP STOP RSETH MOV R0 00H DEC R0 MOV R0 00H MOV HOUR 00H POP PSW LCALL TTX LJMP STOP RSETM MOV R0 00H DECR0 MOV R0 00H MOVMIN 00H POP PSW LCALL TTX LJMP STOP RSETS MOV R0 00H DEC R0 MOV R0 00H MOVSEC 00H POP PSW LCALL TTX LJMP STOP KEY LCALL KEYCHULI 调键处理子程序 21 JZ EXIT A 为 0 转移 LCALL DISP 去抖动 LCALL DISP LCALL KEYCHULI 调键处理子程序 JZ EXIT MOV B 20H 保存键值 KEYSF LCALL KEYCHULI 调键处理子程序 JZ KEY1 按键释放 准备退出 KEY 子程 序 LCALL DISP LJMP KEYSF 等待键释放 KEY1 MOV 20H B 恢复键值 EXIT RET KEYCHULI MOV P1 0FFH 先向 P1 口写 1 MOV A P1 CPL A MOV 20H A 保存取反后的键值 RET INTR PUSH DPH PUSH DPL PUSH ACC PUSH PSW CLR TR0 CLR RS0 改变当前寄存器组为组 2 SETB RS1 MOV TH0 6FH 重赋定时器初值 MOV TL0 0FFH DJNZ R3 INTREXIT 未减
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论