基于单片机的万年历

上传人:博****1 文档编号:493255543 上传时间:2023-02-09 格式:DOC 页数:27 大小:647.50KB
返回 下载 相关 举报
基于单片机的万年历_第1页
第1页 / 共27页
基于单片机的万年历_第2页
第2页 / 共27页
基于单片机的万年历_第3页
第3页 / 共27页
基于单片机的万年历_第4页
第4页 / 共27页
基于单片机的万年历_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《基于单片机的万年历》由会员分享,可在线阅读,更多相关《基于单片机的万年历(27页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计 题 目 基于单片机的万年历 目 录1 绪论11.1设计目的11.2 发展现状11.3 解决问题12基于单片机的万年历主要元器件介绍22.1本设计所需的主要元器件22.2 STC89C52RC单片机22.2.1单片机主要特性22.2.2单片机引脚说明42.3 DS1302时钟芯片42.4 LCD160262.5独立按键73基于单片机的万年历的软件设计73.1 DS1302时钟芯片程序设计84 总结9参考文献11附录1:总体电路原理图12附录2:总程序13附录3:实物图251 绪论1.1设计目的培养和锻炼在学习完本课后综合运用所学理论知识,解决实际工程设计和应用问题的能力。通过课程

2、设计,要求熟悉和掌握仿真系统的软件设计方法、设计步骤,以及硬件的设计方法、设计步骤,得到仿真系统应用方面的初步练习。本设计主要是采用51单片机来实现。自己动手设计与制作可以对硬件的结构和功能有更深的认识,并与软件结合,以达到理论与实践更好的结合,进一步提高综合运用所学知识进行设计的能力。这是对自己大学四年的学习的检验,具有重要的意义。1.2 发展现状目前市场上的电子万年历并不是采用51单片机作为主控制器的,基于单片机的万年历一般是学生和单片机爱好者在进行设计,谈不上占有市场。也许就是这样,研究单片机万年历的人不在少数,并且都在努力。努力不是单方面的,单片机的功能也应该要提高,STC89C52单

3、片机就是这样的例子,其功能虽然没有大幅度提高,但使用起来更方便了。我相信,在不久的将来肯定会有功能更强大成本更低的单片机出现,给我们的设计带来更多的便利。1.3 解决问题本课题主要通过单片机的功能和应用,利用Keil1编程软件和Proteus仿真软件进行设计,并制作实物。设计要达到预期的效果要解决以下问题:(1)认真设计好万年历的逻辑原理图;(2) 熟练使用C语言,运用Keil编程软件进行软件设计;(3) 在Proteus仿真平台上,对程序进行编译仿真;(4) 认真仔细地对万年历进行组装焊接;2基于单片机的万年历主要元器件介绍2.1本设计所需的主要元器件(1)单片机:STC89C52RC;(2

4、)时钟芯片:DS1302;(3)液晶:LCD1602;(4)按钮开关。2.2 STC89C52RC单片机本设计采用STC89C52RC单片机,8K字节可编程闪烁存储器。STC89系列单片机是MCS-51系列单片机的派生产品,它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容。STC89系列是以8051为基核开发出的CMOS工艺单片机,DIP封装系列与8051为pin-to-pin(引脚对引脚)兼容。STC89系列单片机高速,低功耗,其程序写入时可通过串口采用STC-ISP.exe软件下载,不占用用户资源,学习单片机时较好的选择。2.2.1单片机主要特性(1) CPU:由运算和控制

5、逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器。中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。(2) RAM:用于存放要读写的数据,如运算的中间结果、最终结果以及欲显示的数据。8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。(3) ROM:8051共有409

6、6个8位掩膜ROM,用于存放用户程序,原始数据或表格。(4) I/O口:四组8位并行I/O口(P0、 P1、P2和P3),既可用作输入,也可用作输出。(5) T/C定时/计数器:两个16位的可编程定时/计数器,既可以工作在定时模式,也可以工作在计数模式。(6) 5个中断源的中断控制系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。(7) 全双工串行口:一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;(8) 片内振荡器和时钟产生电路,石英晶体和微调电容需要外

7、接。最高振荡频率取决于单片机型号及性能。2.2.2单片机引脚说明图2-1 STC89C52RC封装引脚图STC89C52RC的引脚封装和8051的引脚封装是一样的,均采用40Pin封装的双列直插DIP结构。下图是它们的引脚配置,40个引脚中,Pin40为正电源,Pin20为地线;外置石英振荡器的时钟线Pin18和Pin19两根;4组8位共32个I/O口(P0、P1、P2和P3),中断口线与P3口线复用。本设计只是实现简单的读写功能,不需要用到I/O口的第二功能。单片机引脚封装如图2.1所示。2.3 DS1302时钟芯片市场上可以选择的时钟芯片很多,功能也不尽相同,价格各异。DS1302是美国D

8、ALLAS公司推出的一种串行接口实时时钟芯片。芯片内部具有可编程日历时钟和31个字节的静态RAM,它可以对年、月、日、星期、时、分、秒进行计时。DS1302引脚封装如图2-2所示。 图2-2 DS1302封装引脚图DS1302时钟芯片的引脚功能如下:(1) Pin1:Vcc2为主电源。(2) Pin8:Vcc1为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。(3) Pin2、3:X1、X2是振荡源,外接32.768kH

9、z晶振。(4) Pin5:是复位/片选线,通过把输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,必须保持低电平。只有在SCLK为低电平时,才能将置为高电平。(5) Pin6:I/O为串行数据输入输出端(双向),在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8

10、位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。图2-3 DS13022.4 LCD16021602通过D0D7的8位数据端传输数据和指令。显示模式设置(初始化)001110000x38设置162显示,57点阵,8位数据接口;显示开关及光标设置:(初始化) 00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)。000001NS N=1(读或写一个字符后地址指针加1并且光标加1),N=0(读或写一个字符后地址指针减1并且光标减1),S=1且N=1(当写一个字符后,整屏显示左移),S=0当写一个字符后,整屏显示不移动。数据指

11、针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)。其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。2.5独立按键本设计采用的4个独立按键,分别是:“设置”、“确认”、“加”、“减”。判断“设置”键是否按下及第几次按下可以分别对日期、时间、星期选定,然后按“加”、“减”即可进行设置,“确认”键按下后,新数据即写入时钟芯片。图2-4 时间设置路。图2-4 时间设置电路3基于单片机的万年历的软件设计本设计利用Keil(C51) 软件进行程序的编写。C语言是一种编译型程序设计语言,它兼顾了许多种高级语言的特点,并且具备汇编

12、语言的功能,C 语言可以像汇编语言一样对位、字节和地址进行操作。目前,使用C语言进行程序设计已经成为软件开发的一个主流。C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。虽然汇编语言效率高,对硬件的可操控性更强,体积小,但是不易维护,可移植性差。本设计程序实现了阳历年、月、日、时间提醒等功能。图3-1是主程序流程图。LCD、DS1302相关变量初始化开始调液晶显示程序设置键是否按下调用设置子程序刷新图3-1 主程序流程

13、图3.1 DS1302时钟芯片程序设计在本设计中,要实现万年历的功能,DS1302时钟芯片是少不得的,虽然只用单片机也可以实现,但是将会造成时间误差较大,不好调节。用DS1302时钟芯片不仅可以大大的避免那样的问题,还可以减小程序的编写量。这个模块是本设计中是很重要的模块。如图3-2是DS1302时钟芯片工作的流程图。开始复位端产生一个高电平相关变量初始化写DS1302地址DS1302去保护复位端产生一个高电平延时一段时间将该地址数据读出写DS1302地址延时一段时间地址增加向该地址写数据数据读完否地址增加数据写完否显示数据 图3-2 DS1302时钟芯片工作的流程图4 总结本设计在进行Pro

14、teus软件仿真时,没有成功,因为Proteus软件的元件库里没有带中文字库的液晶,要想成功仿真,需要对程序进行大范围的修改,最终决定放弃Proteus软件仿真,直接采用硬件进行调试。硬件的线路设计和元件组装都花了较长的时间,虽然以前也焊接过一些东西,但不能说那就是有经验。以前焊接的东西都是有现成的电路板,只是把元件对应的组装起来就基本没问题了。在本设计中,并没有现成的电路板,而是用万能板自己搭线组装。在整个硬件焊接到一半时,才发现将液晶屏的引脚弄反了,只能进行修改。在进行程序调试时,一些大问题比较容易找出并改正,而一些小的问题就比较麻烦,因此一定要注意细小的问题。本设计总体最终实现了阳历及阴

15、历的日期显示、时间、星期、温度的显示,独立按键调节日期、星期等功能。本设计整个过程还算顺利,没出现太大的问题。参考文献1郑郁正.单片机原理及应用.成都:四川大学出版社,.9.2王怀平,王仁波,胡开明.Proteus仿真设计基于单片机AT89C51的电子万年历J.科技广场,10:197-198.3潘永雄,沙河.电子线路CAD实用教程(第三版).西安:西安电子科技大学出版社,.7(.8重印).4谭浩强.C程序设计(第三版).北京:清华大学出版社,(重印).5(日)晶体管技术编辑部编,杨洋等译,宗光华校.电子技术:原理制作实验.北京:科学出版社,.6赵全利,肖兴达.单片机原理及应用教程(第二版).北京:机械工业出版社,.7.7雷伏容,张小林,崔浩.5

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

当前位置:首页 > 高等教育 > 研究生课件

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