万年历实验报告(8)

发布时间:2021-06-11

基于单片机的课程设计

图(12)程序流程图

按键的检测主要是通过查询的办法来实现,利用按键进行间调整。 K1按下则开始设置时间及日期,同时被选择的时间和日期开始闪烁,第一次按下K1时,设置年份,若按下K3,则是减1操作,按下K2是加1操作,设置好年后,第二次按下K1时,则是设置月份,按K3减,按K2则加1,依次循环下去,则可以将时间和日期设置完毕。 2、软件设计

软件总设计:主程序首先对系统环境初始化,设置定时器T0工作模式为16位定时/计数器模式,置位总中断允许位EA,并对键盘端口置位,再对LCD1602初始化,DS1302初始化。接着扫描键盘,在键盘程序里面是对时间、日期及闹钟的调整,最下面是时间的显示。

软件程序编写:软件程序编写的好坏直接影响着系统运行情况的良好。因本程序涉及的模块较多,所以程序编写也采用模块化设计,C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用C51编写。

具体程序见附件一:程序 3、软件调试

在软件调试过程中,当调节时间和日期后,秒就重新从零开始计数,后来分析了程

基于单片机的课程设计

序才发现,在设置时间和日期前先暂停时钟,设置好后需启动时钟,而启动适中的命令是write_ds1302(0x80,0x00),这条指令在启动始终的同时刚好把秒寄存器写为了零,所以秒就重新从零开始计数,通过修改程序,时间和日期就能够正确显示了。

还有一个问题,在设置月、日、星期时,会出现00的情况,通过检查程序,知道是键设定函数的影响,设置时间和日期共用同一个函数,但时间有零时、零分、零秒的情况,所以没有修改程序,因为设置好日期后再运行不会出现月、日、星期为00的情况,只要设置时稍加注意就行。

整体电路与仿真结果分析:

电子万年历硬件电路图及仿真如图(13)所示,系统由AT89C52单片机,按键扫描电路、显示电路、时钟电路、晶振电路、复位电路及电源指示电路。

仿真正确显示了时间,在LCD1602中正确显示了当前日期、时间,通过按按键K1,就可以开始设置时间,依次按K1依次在年、月、日、时、分之间切换,并且相应的调整的位会闪烁,按K2键用于加1操作,K3键用于减1操作。仿真正确显示了时间和日期,符合设计的要求。

图(13) 电子万年历硬件电路图

万年历实验报告(8).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219