中文摘要 本设计是基于51系列的单片机进行的实时日历和时钟显示设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。 实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LED显示电路,以及调时按键电路等组成,系统通过LED显示数据,所以具有人性化的操作和直观的显示效果。软件方面主要包括时钟程序、键盘程序,显示程序等。本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,以便更简单地实现调整时间及日期显示功能。所有程序编写完成后,在wave软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。 随着微电子技术与大规模集成电路的发展,单片机的串行通信应用正在不断的走向深入,由于它具有功能强、体积小、功耗低、价格便宜、工作可靠、使用方便等特点,广泛使用与我们生活的各个领域。单片机往往是作为一个核心部件来使用,再根据具体硬件结构,以及针对各种具体的要求使用相应的外部扩展,来实现具体的实际要求。 本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。系统由主控制器AT89C52、时钟电路DS1302、显示电路、按键电路、和复合电路等部分构成,能实现时钟日历的显示的功能,能进行时、分、秒的显示。 2 硬件设计2.1电路设计框图 (见附件)
2.2 电路原理图 2.3.1时钟电路 (1)DS1302引脚功能 DS1302引脚图 VCC1.VCC2:电源引脚。 其中VCC2接主电源,VCC1接备用电源。 GND:接地。输出数据。 X1、X2:32.768kHz。晶振引脚。 若采用外部振荡信号时。32768Hz的信号从 X1脚输入.x2脚悬空。 RST:片选端,高电平有效。RST端接通控制逻辑,当其为‘0”时 ,IO引脚变为高阻截状态,所有的数据传送中止,当其为‘1’时,允许数据传送。RST由‘0’至‘1’时。SCIK必须为“0”。 DS1302每次操作时,须把RST置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据。 2.3.2串口电路 该微处理器采用AT89C52单片机作为主控芯片,在电路中单片机的P1.2控制DS1302的复位输入端,P1.0与数据输入/输出引脚相连,P1.1用来作为DS1302的输入时钟SCLK控制端。为防止单片机复位时端口电平变化导致DS1302计时的不稳定,主电源(5 V)接 VCC2,备份电池采用可充电镉镍电池(3.6 V)接 VCC1。 2.3.3复位电路 单片机在开关机时都需要复位,以便中央处理器CPU及其他功能部件都RC构成处于一个确定的初始状态,并从这个状态开始工作。AT89C52的RST引脚是复位信号的输入端。复位信号高电平有效,持续时间需要24个时钟周期以上。 RC构成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于2个机器周期,80C51型单片机将复位。为保证微分脉冲宽度足够大,RC时间常数应大于2个机器周期。一般取10uF电容、8.2K欧姆电阻。 2.3.4键盘设置电路 (1)独立式键盘 独立式键盘是指直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,当某个键闭合时,相应的I/O口线变为低电平,当CPU查询到为低电平的I/O口线时,就可以判别出与其对应的键处于释放状态。 (2)设置电路介绍 设置电路的功能主要是把时间和日期设置到当前的时间,可以在系统运行中进行。用4个独立式按键完成,分别接到单片机P3口的高4位。 4个按键的功能设计如下: ①第1个按钮表示是否进行设置,按下时表示设置,并且每按一次,在显示器上分别在年、月、日等日期时间上跳转,表示对相应的项进行更改; ②第2个按钮按下表示对第1个按钮选中的项进行加1操作; ③第3个按钮按下表示对第1个按钮选中的项进行减1操作; ④第4个按钮按下表示停止设置; 3 软件设计程序流程图 主程序设计 从上面主程序看出,主程序的组成是通过分别调用各子程序组成总体系统功 能,能很直观的看出主程序所要完成的功能,首先是初始化各模块,之后调用键 盘完成时间的调整,调用日历子程序完成日历时钟的初始化和时间数据的读写,调用显示子程序显示数据,最后又转到键盘程序来回循环。 初始化部分主要有初始化定时器部分和和一些寄存器、标志位、初始化时间 等。 对定时器T0初始化时,首先置初值,CPU 开中断,定时器 T0 开中断,并且开始计数,而对定时器 T1 初始化时,首先置初值,定时器T1关中断,并且停止,只有收到命令时才能产生中断。 寄存器的初始化主要是初始化执行程序时用到的部分RAM空间,防止程序执行时带来混乱。 标志位初始化是对时间调整时 判断是调分还是调时等而专设的位 标志,初始化过程中标志位全部置0,即开始时是处于显示状态,而不是调整状态,这一点在程序中相当明了 初始化时间是开机时显示的时间,并通过调用日历时钟的写程序来完成时间的置初值。 4 调试结果与讨论
4.1硬件调试 4.1.1硬件调试方法 首先通过电路图和和万用表确认元件型号、规格、工作状况和安装情况是否正确,然后在通电的情况下,执行读写指令,对用户样机的存储器、I/O端口进行读写和逻辑检查等操作,用示波器等设备观察波形(如输出波形、读/写控制信号、地址数据波形和有关控制电平),通过波形的观察分析,发现和排除故障。 4.2软件调试 软件调试方法与选用的软件结构和程序设计技术有关。如果采用模块设计技术,则逐个模块调好以后,再进行系统程序总调试。在这里我们采用Protues仿真进行软件测试,将主程序的HEX文件下载到AT89C52中,点击开始仿真,结果如图所示;点击四个按键能实现上述功能 4.3调试结果分析与讨论 在经过简单的调试后,在液晶显示屏上显示了对应时间并且按键的对应功能都可实现。 实验结束后,我们对这次实验进行了反思和总结: 由于思路的不清晰以及相关知识的不充分,遇到了许多问题,在参考了文献和和向他人请教后,理清思路,最终完成了这次实验。通过这次实验认识到了自己的不足也收获了许多经验,获益匪浅。 5 主要参考文献 [1]田富洋,李晋阳,基于单片机的日历时钟设计[J].常州信息职业技术学院学报,2012( 3) : 32-35。 [2]李光飞,51系列单片机设计实例[M].北京: 北京航 空航天大学出版社,2003: 24-28。 [3] 孙佳玲.基于单片机的多功能数字时钟系统设计分析[J].吉林工 程技术师范学院学报,2009,(10):25-26. [4] 楼然苗.单片机课程设计指导[M]. 北京:北京航空航天大学出版社,2007.7 [5] 朱思荣.51单片机实现公历与农历、星期的转换[Z].当当电子网 [6] 王越明.电子万年历的设计[J].黑龙江科技信息,2004年 [7]沈庆阳, 80C51单片机实践与应用[M].北京: 清华大 学出版社,2003: 81-86。
完整的Word格式文档51黑下载地址:
楼下有附件
|