基于单片机的电子时钟设计_毕业论文(编辑修改稿)内容摘要:

AL1 和 XTAL2:外部晶体引线端。 当使用芯片内部时钟时, XTAL1 和 XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。 按键模块 图 5 按键模块 在该模块中,采用四个按键作为对电子时钟的控制输入,通过按键来实现时钟的时间设置、定时功能。 电路中将四个按键的一端接地,而单片机的 P2 口默认为高电平,一旦按键被按下,则该按键对应的管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作 [6]。 本设计中,四个按键 K K K K4分别与 AT89C51 单片机的引脚 、 、 连接。 当 按下 K1 时,开始进行“时”的校对, 再次 按下 K1时,则切换到“分”的校对,第三次按下则 切换 到“秒”的校正, 第四次按下则返回到正常时间显示。 当按下 K2时,切换到闹钟模式,连续按下 K2 键时依次进行定时。 K3 和 K4键是实现加一和减一功能。 基于单片机的电子时钟设计 8 图 6 复位电路 单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出现混乱。 对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。 单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定 的 [7]。 RESET 引脚是复位信号的输入端,高电平有效 ,低电平工作。 常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路。 本设计 中 采用按键电平复位电路 ,如图 6所示。 电路 图 7 振荡 电路 咸阳师范学院 2020 届本科毕业毕业论文(设计) 9 AT89C51 单片机内部有一个高增益反相放大器,它的作用就是用来构成振荡器,但要形成时钟,还需要一些附加的电路 [8]。 AT89C51 单片机的时钟产生有以下两种方法:。 利用单片机内部的振荡器,然后在引脚 XTAL1 和 XTAL2两端接晶振, 就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为 30pF 左右;这两个电容对频率有微调的作用 ,晶振的频率范围可在 之间选择。 此方式是利用外部振荡脉冲接入 XTAL1 和 XTAL2。 本设计 采用 内 部时钟方式。 振荡电路由两个皆为 30PF 的 C1,C2 及振荡频率为 12MHZ 的晶振组成,并配合单片机定时器 0实现准确计时。 如图 7所示。 模块 图 8 发声模块 发声 模块由电源, 蜂鸣器两 部分组成。 正常情况下, 不发声 ,一旦按键按下,或定时时间到,蜂鸣器 发声 [9]。 LED 是 Light Emiting Diode (发光二极管)的缩写 ,发光二极管是能将电信号转换为光信号的电致发光器件。 由条形发光二极管组成“ 8”字形的 LED 显示器,也称数码管 [10]。 通过数码管中发光二极管的亮暗组合,可以显示多种数字、字母以及其他符号。 数码管有 7 段数码管和 8 段数码管之分。 7段数码管由 7个发光二极管组成,而 8 段数码管则是在 7段发光二极管的基础上再加一个圆点型发光二极管 ,用以显示小数点。 8 段数码管中发光二极管的排列形状以及数字显示的段组合如图 9基于单片机的电子时钟设计 10 所示 : 图 9 八段数字显示器及发光段组合图 在使用中 , 为了给发光二极管加驱动电压,它们有一个公共引脚,公共引脚共有两种连接方法, 如图 10 所示 , 分别 为共阴极 接法 与共阳极 接法 [11]。 把发光二极管的阴极连在一起构成阴极公共引脚, 如图 a 所示。 使用时阴极公共引脚接地,这样阴极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不点亮。 把发光二极管的阳极连在一起构成阳极公共引脚,如 图 b 所示。 使用时阳极公共引脚接 +5V。 这样阴极引脚上加低电平的发光二极管即可导通点亮,而加高电平的则不点亮。 a 共阳极接法 b 共阴极接法 图 10 LED显示器接法 本设计中采用共阴极 LED 数码管显示方式,电路图如图 11 所示 : fabcdegDPd c DPCOMeg baCOMfCOMCOMaabbccddeeffggDPDP咸阳师范学院 2020 届本科毕业毕业论文(设计) 11 图 11 时间显示模块 KEIL 集成开发环境的应用与操作 KEIL 集成开发环境简介 Keil C51 是 Keil Software 公司出品的 51系列兼容单片机 C语言软件开发系统。 Keil 提供了包括 C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境( uVision)将这些部分组合在一起。 在 Keil 中使用 C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势 [12]。 KEIL 集成开发环境的基本仿真流程 [13] [13] 第一步:双击 KEIL uVision3 的桌面快捷方式,启动 KEIL 集成开发软件。 第 二步:新建文本编辑界面或加入原有的程序文件。 选择“ File(文件 )”→“New” 命令或菜单栏的 “ 新建文本 ” 命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为 “Text1”。 第三步:在“ Text1” 中输入 C语言源程序。 第四步:保存源程序。 保存文件时必须加上文件的扩展名并选择路径和文件名进行保存, C 语言程序文件的扩展名为 “.C”。 基于单片机的电子时钟设计 12 第五步:新建 KEIL 工程。 选择“ Project(工程 )” →“New Project( 新建工程 )” 命令,将出现保存对话框。 在保存工程对话框中输 入工程文件名,工程名称不用输入扩展名。 输入名称后保存,将出现 “Select Device for Target ” 对话框。 第六步:选择 CPU型号。 在对话框中选择“公司( Atmel) ” →“CPU 型号 ” ,单击 “ 确定 ” 按钮返回主界面。 Proteus 软件简介 Proteus 软件是目前世界上最先进 的 嵌入式系统设计与仿真平台,可以实现模拟 电路、 数字 电路及 各种 电路系统的仿真和 PCB 设计等功能,是目前唯一 一个能够对各种处理器进行实时仿真、调试与测试的 EDA工具。 微控制器系统相关的仿真 需建立编译和调试环境,可选择 Keil 5 软件。 该软件支持 许多 芯片,集编辑、编译和程序仿真于一体,同时还支持汇编和 C语言的程序设计。 它的界面 简单 易学,在调试程序、软件仿真方面有很强大的功能 [14]。 其最关键的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如 LED、开关等,实时看到运行后的输入、输出的结果, Proteus 为我们建立了比较完整的电子设计开发环境 [15]。 程序流程图 图 12 主程序流程图 咸阳师范学院 2020 届本科毕业毕业论文(设计) 13 本设计的 主 程序 是一个循环的过程,其流程是:开始运行显示正常时间,如果扫描过程中,发现有键按下,则进行时间和闹钟模式的切换,再次按下,进行时分秒的校正;如果没有键按下,则正常显示时间;在正常时间显示过程中,若定时时间到,则闹钟自动响起,否则时间正常显示。 仿真结果 仿真结果如下图 13所示。 图 13 仿真结果 仿真结果分析 本设计实现了时分秒的显示,设计简单,对时间的调节感觉不是很好 ,在闹钟定时方面还是比较满意。 在测试过程中,有很多小问题,通过多次的修改程序并在 Proteus 软件中进行仿真,最终解决可了这些问题,同时也反映出我在单片机设计和程序设计方面的不足 [16]。 仿真效果达到了预期的效果,能通过调节控制键来矫正时间,是本人比较满意。 首先,我觉得这次的单片机设计非常必要,通过这次的设计使我们学到了更多的关于单片机的实际应用知识,以前在课堂上只是简单的掌握了一些基础知识和简单指令,对于实际的应用还很陌生。 刚开始设计时,脑子里一片空白,不知道从哪开始下手,学过的知识不知道基于单片机的电子时钟设计 14 怎么运 用。 设计,编程,仿真,每一步都感觉很难,尤其是编程这一块,老是有错误,后来我发现,应该把程序分开来,一块一块的进行编程,不能混在一起,否则程序太大了,容易混淆,很难发现里面存在的问题。 于是我把程序按照 实现的功能不同分成几部分,然后进行逐一分析,进行编程,把每一部分实现的功能都实现后再对整个的程序进行整理。 这次设计让我深有感触的是做什么事都要细心,并且一定要有耐。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。