基于at89s52单片机数字时钟的实现内容摘要:

) 外围电路内装化 这也是单片机发展的主要方向。 随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内。 除了一般必须具有的 CPU、 ROM、 RAM、定时器 /计数器等以外,片内集成的部件还有模 /数转换器 、 DMA 控制 器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。 (8)串行扩展技术 在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。 随着低价位 OTP( One Time Programmable)及各种类型片内程序存储器的发展,加之外 围接口不断进入片内,推动了单片机 ―单片 ‖应用结构的发展。 特别是 IC、 SPI 等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。 在单片机家族中, 80C51 系列是其中的佼佼者,加之 Intel公司将其 MCS–51 系列中的 80C51内核使用权以专利互换或出售形式转让给全世界许多著名 IC 制造厂商,如 Philips、 NEC、ATMEL、 AMD、华邦等,这些公司都在保持与 80C51 单片机兼容的基础上改善了 80C51 的 毕业设计(论文)报告纸 5 许多特性。 这样, 80C51 就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为 80C51 系列。 80C51 单片机已成为单片机发展的主流。 专家认为,虽然世界上的 MCU 品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明, 80C51 可能最终形成事实上的标准 MCU 芯片。 单片机在数字时钟实现中的应用 近几年,单片机在各个领域得到广泛的应用。 从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。 在它问世之前,自动控制设备不能被广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。 在第一台微处理器成功研制不久,第一个单片机就问世了。 因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。 今天,单片机成为了解决低复杂度,中等复杂度控制问题的传统选择。 数字 时 钟 系统 可采用数字电路实现,也可以采用单片机来完成。 若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。 若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机 AT89S52,它是低功耗、高性能的 CMOS 型 8位单片机。 片内带有 8KB的 Flash 程序 存储器,且允许在系统内改写或用编程器编程。 另外,AT89S52 的指令系统和引脚与 8051 完全兼容,片内有 256B 的 RAM、 32 条 I/ O 口线、 2 个16 位定时计数器、 5 个中断源、一个全双工串行口等。 且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 本设计 正是 利用了单片机在定时方面的基本功能 , 通过基于 AT89S52 单片机 来实现 数字时钟设计。 本设计工作的选择方案和论证 单片机芯片的选择方案和论证 方案 一: 采用 89C51 作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空间 , 能于 3V的超低压工作 , 而且与 MCS51 系列单片机完全兼容 , 但是运用于电路设计中时由于不具备ISP 在线编程技术 , 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要 毕业设计(论文)报告纸 6 烧入程序时,对芯片的多次插拔会对芯片造成一定的损坏。 方案二 : 采用 AT89S52,片内 ROM全都采用 Flash ROM, 能以 3V的超 低 压工作。 同时 , 也与 MCS51系列单片机完全 兼容。 该芯片内部存储器为 8KB ROM 存储空间,同样具有 89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片 多次拔插,所以不会对芯片造成损坏。 所以 , 选择采用 AT89S52 单片机 作为主控制系统。 显示模块的选择方案和论证 方案一: 采用 LED 液晶显示屏 , 液晶显示屏的显示功能强大 , 可显示大量文字 、 图形 ,显示多样 、清晰可见 , 但是价格昂贵 , 需要的接口线多 , 所以在此设计中不采用 LED 液晶显示屏。 方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合 , 如采用在显示数字显得太浪费 , 且价格也相对较高 , 所以也不用此种作为显示。 方案三: 采用 LED 数码管动态扫描 ,LED 数码管 价格适中 , 对于显示数字最合适 , 而且采用动态扫描法与单片机连接时 , 占用的单片机口线少。 综上所述, 所以采用了 LED 数码管作为显示。 时钟芯片的选择方案和论证 直接采用单片机定时计数器提供秒 的 信号,使用程序实现年、月、日、星期、时、分、秒计数。 采用此种方案虽然存在时间误差,但是可以减少芯片的使用,节约成本,所以采用此方案。 电路设计最终方案决定 综上各方案所述 ,对此次作品的方案选定 : 采用 AT89S52 作为主控制系统 ; 使用内部时钟电路外接晶振提供时钟 震荡电路; 显示 方法采用 LED 数码管动态扫描 方法。 毕业设计(论文)报告纸 7 第二章 系统的硬件设计与实现 系统硬件概述 本系统电路是由 AT89S52 单片机为控制核心,具有在线编程功能,低功耗,能在 3V 超低压工作;时钟电路由 内部时钟电路外接晶振 提供,它是一种高性能、低功耗、带 RAM 的可随时调整时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 3V~ 5V。 显示部份由 2 个 8 位数码管 7SEGMPX8CABLUE, 74HC154 译码器和取反器构成。 采用动态扫描显示方式进行数字显示。 图 系统电路图 主要单元电路的设计 单片机主控制模块的设计 AT89S52 单片机为 40 引脚双列直插芯片 ,有四个 I/O 口 ( P0、 P P P3), AT89S52 单片机共有 4 个 8 位的 I/O 口( P0、 P P P3),每一条 I/O 线都能独立地作 为 输出或输入。 单片机的最小系统如下图所示 , 18 引脚和 19 引脚接时钟电路 , XTAL1 接外部晶振和微调电容的一端 , 在片内它是振荡器倒相放大器的输入, XTAL2 接外部晶振和微调电容的另一端 , 在片内它是振荡器倒相放大器的输出。 第 9 引脚为复位输入端 , 接上电容 , 电阻及开关后能够形成上电复位电路。 如图 所示,图 来自 Proteus 软件仿真示意图。 实物上的 20引脚为接地端 ,40 引脚为电源端,系统默认而未显示。 AT89S52 主控制 模块 按键模块 整点提醒模块 LED 数码管动态扫描 显示模块 毕业设计(论文)报告纸 8 整点提醒模块的设计 如图 所示,当数字时钟显示时间到达整点时,单片机 AT89S52 的 口就输出方波信号,驱动蜂鸣器发出鸣叫声。 图 主 控制系统图 图 单片机与 报时模块连接 图 显示模块的设计 如图 所示,采用 LED 动态扫描显示,由 2 个 8 位数码管, 416 译码器 74HC154,反向器 74LS05 组成显示模块。 译码器 74HC154 输出接反向器 74LS05,再接 上 拉电阻后 连 到共阳极数码管的 COM 端作为选通位码。 本章小结 此次基于单片机 AT89S52 的数字式 时 钟的 实现 设计与制作独特之处在于采用了动态显示的形式,将 6 个数码管串联起来,这一点与一般的电子钟采用静态显示的方法不同,这样的设计使得单片机的管脚得到了充分的利用,也使得本设计中的电路显得小巧,省去了相应的芯片,节约了成本. 在对 该 数字时钟系统开发之前,必须了解该系统的特点、适用范围以及使用者需要 一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行分析总结,根据使用者的实际要求来给系统设计一个初步方案。 数字时钟系统的开发不仅是要实现对时间的正确显示,而且要考虑数字时钟系统是 否具有控制功能,操作者 毕业设计(论文)报告纸 9 是否可以对其进行调整,保证时间的正常运行。 同时 也要考虑是否具有扩展功能,以便 日后满足 使用者 更多的功能需求。 本设计需要熟悉 AT89S52 单片机及其应用,了解各个引脚的功能。 此外,外围设备需要整点提醒模块,数码管动态扫描显示模块。 特别地,要真正的理解数码管动态扫描显示的原理。 图 LED 动态扫描显示原理图 毕业设计(论文)报告纸 10 第三章 系统的软件设计与实现 程序流程框图 本设计中计时采用定时器 T1 中断完成,秒表使用定时器 T0 中断完成。 主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。 其主程序执行流程如图 所示。 图 主程序流程图 定时器 1 累加时间流程图 如 图 , 时间调整程序流程图 如 图 闰年判断子程序流程 图如图。 Y N N Y 开始 初始化 调用相关显示子程序 蜂鸣器鸣叫 进入 功能程序 键按下。 整点到。 毕业设计(论文)报告纸 11 图 定时器 1 累加时间流 程图 Y Y Y Y Y Y 开始 开启定时器 1 50ms 中断一次; counter++ counter=20 second++。 counter 置位 0 second=60 minute++。 second 置位 0 minute=60 hour++。 minute 置位 0 hour=24 day++。 hour 置位 0 day 大于月天数 day=1。 month++ month 大于12 year++ 结束 毕业设计(论文)报告纸 12 图 时间调整程序流程图 毕业设计(论文)报告纸 13 图 闰年判断子程序流程图 子程序的设 计 整点时提醒子程序 设计要求不仅 可以对年、月、日、时、分、秒进行计时 并显示出来 , 而且要求时间到达计时到达整点后,可以通过蜂鸣器鸣叫提醒使用者。 以下是整点时提醒子程序。 _time0: PUSH PSW PUSH ACC SETB RS0。 使用第 3 组 寄存器 SETB RS1 N Y Y N N Y 开始 被 4 整除 被 100 整除 被 400 整除 month =1;year ++ 闰 年 非闰年 返回主程序 进入闰年判断程序 毕业设计(论文)报告纸 14 MOV A,MINUTE CJNE A,00,TIME0_END MOV A,SECOND CLR C CJNE A,BELL_DELAY,$+3 ;响玲时间定为 BELL_DELAY JNB CY, TIME0_END ;秒钟 INC R7 MOV A,R7 MOV B,2 DIV AB CLR C MOV A,B CJNE A,1,BEEP_LOW SETB BEEP AJMP TIME0_END BEEP_LOW: CLR BEEP TIME0_END: POP ACC POP PSW RET 闰年判断子程序 设计要求不仅 可以对年、月、日、时、分、秒进。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。