基于stc89c52的电子时钟设计(编辑修改稿)内容摘要:

独立式键盘的原理简单,每个按键的电路是独立的,占用一条数据线。 这种接法占用硬盘资源大, 适合该课程设计的电子四川师范大学成都学院 电子工程 学院 课程设计报告 5 时钟电路。 图 5 独立按键 蜂鸣器电路 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电 蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。 有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。 当接通电源后( ~15V 直流工作电压) ,多谐振荡器起振 ,输出~ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。 在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。 振动膜片在电磁线 圈和磁铁的相互作用下,周期性地振动发声。 图 6 蜂鸣器 电路 四川师范大学成都学院 电子工程 学院 课程设计报告 6 软件设计方法 系统的软件设计也是工具系统功能的设计。 单片机软件的设计主要包括执行软件的设计和监控软件的设计。 单片机的软件设计通常要考虑以下几个方面的问题:  根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;  培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。 既便于调试、链接,又便于移植和修改;  建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;  绘制程序流程图;  合理分配系统资源;  为程序加入注释,提高可读性,实施软件工程;  注意软件的抗干扰设计,提高系统的可靠性。 系统软件设计思想 本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部的 T0 定时器溢出中 断来实现,工作在 T0 方式下,定时 250 微妙,则连续中断 4000 次即为一秒,得到了我们所需时间的最小单位 该设计用 C51 编写程序,由于汇编语言的移植性比较差,而 C 语言则比较灵活。 许多子函数都可以直接移植过去。 在程序中除了有主函数外还包含许多子函数,如延时函数、按键扫描函数、初始化函数、时间显示函数、设定闹钟显示函数、调时、分、秒函数、功能切换函数、秒表功能函数。 系统主程序 在主控程序循环中主要工作为扫描是否有按键,若有按健则做相应的功能处理,同时也扫描显示器显示时间数据,并检查所设置的时间是否到了。 时间计时处理程序是等过了 1s 后,则更新时间数据,将最新的时、分、秒的数据转换为数字数据并显示在八段数码管上。 四川师范大学成都学院 电子工程 学院 课程设计报告 7 图 7 系统主程序流程图 中断子程序 中断子程序的主要功能:提供时间基准和快速按键调时功能。 定时器 T0 的中断程序设计 定时器 T0 中断提供时间基准。 当 T0 连续中断 4000 次时,即为一秒,此时秒加一;当秒值为 60 时,分钟加一,同时秒清零。 当分钟值为 60 时,小时加一,同时分钟值清零;当小时为 24 时,小时清零。 开始 蜂鸣器初始化 数码管显示初始化 按键输入初始化 定时器 T0、 T1 初始化 开中断开关,允许T0、 T1 中断 调用时钟显示程序 调用按键扫描程序 等待中断 启动 T0、 T1 定义计数变量和状态变量 四川师范大学成都学院 电子工程 学院 课程设计报告 8 图 8 T0中断程序流程图 定时器 T1 的中断程序设计 当 T1 中断 500 次时,检测一次选择按键 S3,如果按键按下,检测时间加减按键,对应按键按下则执行对应的操作,选择按键可选择调时、调分、调秒以及让时间加减按键失效这四种功能,这样可以达到迅速校准时间的作用。 计数变量清零 秒加 1 分加 1 秒清零 小时加 1 且分清零 小时清零 计数到 4000 否 ? 秒 =60 否 ? 分 =60 否 ? 小时 =24 否 ? 开始 Y N Y Y Y N N N 返回 计数变量加 1 四川师范大学成都学院 电子工程 学院 课程设计报告 9 图 9 T1中断程序流程图 按键扫描子程序 按键扫描子程序是程序计中相当重要的一部分。 按键扫描子程序的功能是:扫描计数变量 1 加 1 延时去抖动 状态变量 m 加 1 m=1 m=2 m=3 m=4 调秒程序 调分程序 调时程序 变量清零 计数变量 1 清零 按键 S3 按下否 ? 按键 S3 按下否 ? 计数到 500 否 ? N N N Y Y Y 计数变量 2 加 1 秒表低位加 1,计数变量 2 清零 秒表高位 加 1 低位清零 秒表高位清零 计数到 400 否 ? 低位 =9999 否 ? 高 位 =9999 否 ? N N N Y Y Y 开始 Y flag = 1 否 ? 中断返回 N 四川师范大学成都学院 电子工程 学院 课程设计报告 10 S4 键 是否按下, 若 S4 键按下,则执行相应功能。 标志变量 flag 的初值设为 1, 当按下S4 键时, 标志变量 flag 值加 1, 对应切换至所设置的功能。 具体切换任务: flag 值为 1时 可以显示时钟并对时间进行校准,当 flag 值为 2 时,切换至秒表功能;当 flag 值为 3时,切换至闹钟设置功能;当 flag 值为 4 时, flag 值返回 1, 回到时钟显示并可以调时。 图 10 按键扫描程序流程图 调时、分、秒子程序 当选择按键状态选择到调秒时,相应的按下 S2 即对秒进行加 1 运算,当秒到加到60 时,秒清零;按下 S1 即对秒进行减 1 运算,当减到零时,秒等于 59。 选择按键切换时,对应的键可以调分和小时。 调分和调时子程序和调秒子程序类似。 开始 N S4 键是否按下。 Y 返回 延时去抖动 S4 键是否按下。 Y N 状态变量 flag 加 1 四川师范大学成都学院 电子工程 学院 课程设计报告 11 图 11 调秒程序流程图 调节闹钟 子程序 当标志变量 flag 值为 3 时,切换至调节闹钟功能。 检测调节选择按键 S3 是否按下,如果按下则状态变量 n 加 1,然后根据状态变量的值调用相应的调时、分、秒子程序来实现对闹钟的调节。 开始 Y 延时去抖动 S2 按键按下否 ? S2 按键按下否 ? 延时去抖动 Y N N 秒加 1 Y 秒减 1 Y 秒 =60? 秒清零 Y 秒 =0? 秒 =59 Y N N N N S1 按键按下否 ? S1 按键按下否 ? 返回 四川师范大学成都学院 电子工程 学院 课程设计报告 12 图 12 调 节闹钟 程序流程图 单片机应。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。