万年历设计

上传人:我*** 文档编号:136002445 上传时间:2020-06-22 格式:DOC 页数:13 大小:232KB
返回 下载 相关 举报
万年历设计_第1页
第1页 / 共13页
万年历设计_第2页
第2页 / 共13页
万年历设计_第3页
第3页 / 共13页
万年历设计_第4页
第4页 / 共13页
万年历设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《万年历设计》由会员分享,可在线阅读,更多相关《万年历设计(13页珍藏版)》请在金锄头文库上搜索。

1、目录第一章 系统总体方案设计11.1设计思路11.2 设计原理11.3 设计框图21.4 设计流程图2第二章 系统整体设计32.1时钟模块32.2温度模块32.3驱动模块42.4显示模块4第三章 仿真与调试5 3.1仿真53.2调试5第四章 总结与体会6第五章 程序清单7参考文献11系统原理图12第一章 系统总体方案设计1.1 设计思路我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。本次万年历设计以AT89C5

2、1单片机作为主控核心,与时钟模块、温度模块、LED显示模块等组成硬件系统。在硬件系统中设有LED显示器,能显示年/月/日/星期/时间/温度这些信息,使用者可以根据自己的需要随时对时间进行校准、选择时间等,上述万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.2 设计原理以AT89C51单片机作为整个设计的核心,是一个低功耗高性能单片机,片内含通用8位中央处理器和可反复擦写的Flash程序存储器和数据存储器(RAM),32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信

3、口,强大的功能为万年历的设计提供了高性价比的解决方案。DS1302是实时时钟芯片,产生时钟信号,通过串口接口与单片机进行通信,将要显示的数据通过单片机串口传输给74HC595移位芯片,驱动数码管,实现秒、分、时、日、月、年信息的显示,内部含有31个细节静态RAM,可提供用户访问。DS18B20是实时温度传感器,将当前温度发送给AT89C51单片机,再通过驱动芯片74HC595在LED显示器上显示出来以上所有功能使用keil编写程序,使用Proteus进行仿真,在主程序中调用其他子程序(包括LED显示模块及DS1302的控制模块),通过编程来控制系统中的各个模块以实现电子万年历的功能。1.3 设

4、计框图时钟电路DS1302温度传感电路DS18B20主控制电路AT89C51驱动电路74HC595显示电路LED系统设计方框1.4 设计流程图开始DS1302写入时间读取DS1302时间农历时间转换读取温度值更新万年历数据第二章 系统整体设计2.1 时钟模块DS1302是时钟模块的核心器件,它通过串口接口与单片机进行通信,实时时钟日历电路提供秒、分、时、日、月、年的信息,内部含有31个细节静态RAM,可提供用户访问。其电路设计图如下图所示: 2.2温度模块 采用单总线的接口方式 与微处理器连接,仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯,从而得到当前的环境温度,然后通过显示模

5、块显示出来。其电路设计图如下图所示:2.3驱动模块 74HC595芯片是一种串入并出的芯片,接受串行数据并提供串行输出。包括一个8位移位寄存器和一个8位D型锁存器和三态并行输出。它的主要功能是驱动数码管,将要显示的数据通过LED显示出来,以实现秒、分、时、日、月、年信息的显示。其电路设计图如下图所示:2.4显示模块 为了符合生活实际需求,我们选用多个数码管做显示模块,利用74HC595移位特性,将要显示的数据通过单片机串口传输给74HC595移位芯片,再驱动多个数码管。其电路设计图如下图所示:第三章 仿真与调试3.1 仿真打开单片机仿真软件PROTEUS,在KEIL环境中编译设计中需要的原程序

6、,并生成.hex文件.双击AT89C51器件,在打开的“EDIT COMPONENT”对话框中,在“PROGRAM FILE“一栏中将 .keil1万年历.hex文件进行装载,界面如图3-1:3.2 调试点击运行按扭,观察仿真现象,则显示器显示情况如图4-1,且进入计时工作,其运行结果如下图所示:第四章 总结与体会在不知不觉中,时间又从我们身边悄悄走过,不留一点儿痕迹,现在又到了每个学期的课程设计时间,一边准备考研一边准备课程设计,感觉总有那么一点儿仓促,让我有点儿狼狈。幸好有同学的帮助,不然在这么短的时间内我还真不能完成如此艰巨的任务,虽然在短短的时间里完成了它,说不是做的很好,但我确实已经

7、尽力了,不管怎么说,毕竟自己付出过,那么总会有所收获,正如熟话说,“一分耕耘,一分收获” 。这次我做的是数字万年历的设计。虽然以前做过一次单片机的设计,但在这次的课程设计中,我还是认识到自己对单片机方面的知识了解的太少,对于书本上的很多知识运用的能力有所欠缺,很多的知识需要经过实践之后才会豁然开朗;只有经过实践书本上的知识才能真正的成为自己的知识。从理论到实践的转化就是实际操作的过程,只有动手动脑,主动请教,查询资料,团结合作,不断的发现问题,不断的解决问题,才能有所收获,才能有更多的体会和快乐;在前期刚开始做的时候,面对着课本,面对着课程题目,我有点懵,不知道从哪里下手。不过在同学的帮助下和

8、自己的努力下,我渐渐地了解了数字万年历设计的大致框架,渐渐了解了各各芯片的作用,以及它们之间的关系。总之,到这个时候数字万年历的设计要总算完成了,非常真诚的感谢学校给了我们这样一次机会,也要感谢刘老师对我们的谆谆教导,当然还有组员同学的帮助与劝勉。这次的课程设计让我为下次的毕业设计积累了宝贵经验。在这大学四年即将毕业的时候,真心的希望自己能多学点有用的知识和技能,为将来走出校门,走向社会奠定坚实的基础。第五章 程序清单#include1302.h#include18b20.hsbit CLT = P32; /74HC595数据更新控制端口/*DS1302实时时钟芯片的寄存器位置*/#defin

9、e SECOND 0x80 #define MINUTE 0x82#define HOUR 0x84 #define DAY 0x86#define MONTH 0x88#define WEEK 0x8A#define YEAR 0x8C int sec,min,hour,mon,day,week,year;/counter; /秒,分,时,日期,月份,星期,年/*共阴数码管驱动代码*/unsigned char code SEG_TAB10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,;/*开机动画显示驱动代码*/unsigned ch

10、ar code F_TAB7=0x01,0x03,0x07,0x0f,0x1F,0x3F; /*万年历初始化数据表*/unsigned char Display_TAB21=0x7D,0x5B,0x3F,0x06, /农历月日0x05, /星期: - 7 0x3F,0x06, /温度:个、十 - 100x3F,0x3F, /秒:个、十 - 000x3F,0x3F, /分:个、十 - 000x3F,0x06, /时:个、十 - 100x6F,0x3F, /日:个、十 - 090x5B,0x06, /月:个、十 - 120x5B,0x06,0x3F,0x5B, /年:个、十、百、千 - 2012;

11、 /*/ /Name: Uart_Send/Description: 串口发送万年历数据显示/Calls: 主函数调用/Input: p:指向数据地址/Output: 无 /Return: 无/*/void Uart_Send(char *p) char i=0;CLT = 0; for(i=0;i21;i+)SBUF = *p+;while(! TI);TI = 0;CLT = 1;/*/ /Name: Delay/Description: 延时子函数/Calls: 延时调用/Input: 无/Output: 无 /Return: 无/*/void Delay1(int n)while(n-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号