毕业论文:基于ds1302时钟芯片数字钟报告终稿内容摘要:

指令,如表 所示。 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清显示 0 0 0 0 0 0 0 0 0 1 光标返回 0 0 0 0 0 0 0 0 1 * 置输入模式 0 0 0 0 0 0 0 1 I/D S 显示开 /关控制 0 0 0 0 0 0 1 D C B 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 置功能 0 0 0 0 1 DL N F * * 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址 置数据存贮器地址 0 0 1 显示数据存贮器地址( ADD) 读忙标志或地址 0 1 BF 计数器地址( AC) 写数到 CGRAMD 或 DRAM 1 0 要写的数 15 从 CGRAMD 或 DRAM 读数 1 1 读出的数据 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明: 1为高电平 , 0为低电平)。 指令 1:清 显示,指令码 01H, 光标复位到地址 00H 位置。 指令 2:光标复位,光标返回到地址 00H。 指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移。 S: 屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。 C:控制光标的开与关,高电平表示有光标,低电平表示无光标。 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线。 N:低电平时为单行显示,高电平时双行显示。 F: 低电平时显示 5X7 的点阵字符,高电平时显示 5x10 的点阵字符 (有些模块是 DL:高电平时为 8 位总线,低电平时为 4 位总线)。 指令 7:字符发生器 RAM 地址设置。 指令 8: DDRAM 地址设置。 指令 9:读 出 忙信号和光标地址。 BF 为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙 , 模块 就 能接收 相应的 命令或者数据。 指令 10:写数据。 指令 11:读 数据。 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志 位是不是 为低电平 ,是低电平则 表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。 表 为 LCD1602 的内部显示地址。 16 表 LCD1602的内部显示地址 实时时钟电路 本设计使用的实时时钟电路芯片 是美国 DALLAS 公司 生产 的一种高性能、低功耗、带 RAM 的实时时钟电路 芯片 DS1302,其 引脚 如图 所 示。 VCC1为后备电源, VCC2为主电源。 在主电源 关闭的情况下,也能保持时钟的连续运行。 DS1302 由 VCC1或 VCC2两者中的较大 者供电 ; 当 VCC2大于 VCC1+ 时 ,VCC2给 DS1302 供电 ; 当 VCC2小于 VCC1时 , DS1302 由 VCC1供电。 X1 和 X2 是振荡源 , 外接 晶振。 RST 是复位 /片选线,通过把 RST 输 入驱动置高电平来启动所有的数据传送。 图 DS1302 引脚图 RST 输入有两种功能。 首先, RST 接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。 如果在传送过程中 RST 置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电运行时在 Vcc≥ 之前, RST 必须保持低电平。 只有在 SCLK 为低电平时,才能将RST 置为高电平。 I/O 为串行数据输入输出端 (双向 ), SCLK 始终是输入端。 本设计 入端。 本设计连接图如图 所示,其中 C1和 C2起微调晶振的作用。 17 DS1302接线图 复位电路 在 AT89S52 单片机中的振荡器运行时, RST 引脚上保持到少 2个机器周期的高电平输入信号,复位过程即可完成。 根据此原理,本设计采用上电复位和按键复位嵌套在系统中,增强了系统的实用性。 本设计的具体复位图如下。 晶振电路 AT89S52 在工作时需要外部提供时钟信号,因此,本设计选择在其 18 脚 19脚之间接上 12MHz 的晶振,为单片机提供 1μ s 的机器振荡周期。 其 电路 连接图如图所示。 在 图中,电容器 起稳定振荡频率、快速起振的作用,其电容值一般在 20~ 50pF 18 第四章 系统的软件设计。 程序 系统的主程序设计是用来控制 整个系统运行时的时序工作状态,因此,完善的程序设计是本设计的重点内容。 下图是是本设计使用的主程序设计流程图。 以下是程序主程序的一下部分: ORG 00H AJMP START。 ================================== ORG 0050H START: MOV SP,70H LCALL INITIALZE。 调用初始化液晶屏幕 LCALL INIT_P。 调用初始画面 19 MOV A, 00000001B。 清液晶屏,写成空白 LCALL WRITE_COM。 ============主程序 ================ MAIN: LCALL RD_DS1302 LCALL DATA_BUF LCALL DISPLAY AJMP MAIN „„„„„„„„„„„„ 第五章 程序的调试 本章主要介绍程序的 调试。 主要利用仿真软件 proteus 及学习板来确认程序是否能显现功能。 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。 它不仅具有其它 EDA工具软件的仿真功能,还能仿真单片机及外围器件。 它是目前最好的仿真单片机及外围器件的工具。 虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。 Proteus 是世界上著名的 EDA 工具 (仿真软件 ),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的 完整设计。 是目前世界上唯一将电路仿真软件、 PCB 设计软件和虚拟模型仿真软件三合一的设计平台。 利用 proteus 画好相应的硬件电路图,并把程序烧入软件仿真,看是否能显示功能。 下图为本设计在 proteus 的仿真电路图。 20 学习板进行调试 经过 Proteus 仿真后,再把程序烧入单片机学习板看是否能显示功能。 下图为学习板上的运行图: 21 利用 Proteus 绘制出相应硬件电路后进行仿真,出现液晶显示无法正常显示的问题。 经过思考和查阅的资料发现 AT89C52 的 P0 在进高电平时没有接上拉电阻导致 LCD1602 无法正常显示时间。 修改电路 后( P0 口接上拉电阻)烧入程序后,程序正常运行, LCD1602 准确的显示。 用 Proteus 仿真能够正确的现实时间,但烧入学习板出现乱码现实不能正常工作。 经过反复检查及思考发现仿真软件上的硬件电路与学习板上的硬件电路不一致无法对应起来。 最后根据学习板的硬件电路修改相应程序及仿真软件上的硬 件电路,最终现实了功能。 设计总结 通过这次对《 基于 DS1302 的数字钟 设计 》的设计与制作过程, 加强了我们动手、思考和解决问题的能力。 在设 计过程中我们先后利用 keil 软件进行编程、 Proteus 进行仿真、 protel进行原理图及 PCB 图的绘制,最后再利用学习板进行检查看程序是否能显示其功能。 在过程中让我进一步深刻的学习各种软件的利用 以及各种软件给我们带来的便利。 特别是 proteus 在没有实物的情况下进行仿真进行程序的检查看是否能现实功能。 该数字钟通过单片机 AT89C52 做 CPU 进行总的控制, 基于时钟芯片 DS1302产生时间,利用 LCD1602 进行液晶显示的一个简易的数字钟。 LCD1602 能够对 年、月、日、周、日、时、分、秒 进行计时及显示。 通 过设计后能够熟练的掌握时钟芯片 DS130 LCD16 AT89C52 的的各个引脚及功能,并能够掌握和运用这几个芯片。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。