单片机课设万年历报告.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机课设万年历报告.doc》由会员分享,可在线阅读,更多相关《单片机课设万年历报告.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 . . . 单片机课设万年历报告一、系统简介:电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、时、分、秒进行计时等很多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒等信息,还具有时间校准等功能。本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的
2、基础就不可能很好的实现。在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C51单片机,LED显示电路,以与调时按键电路等组成。在单片机的选择上本人使用了AT89C51单片机,该单片机适合于许多较为复杂控制应用场合。软件方面主要包括日历程序、时间调整程序,显示程序等。程序采用高级语言C进行编写,以便更简单地实现调整时间。所有程序编写完成后,在确定没有问题后,在Proteus软件中嵌入单片机进行仿真。最后总在老师同学的帮助以与自己的努力下完成了此次电子万年历的设计。 二、
3、系统功能说明1、设计要求:1、具有年、月、日、星期、时、分、秒等功能;2、具备年、月、日、星期、时、分、秒调整校准功能;2、单片机芯片的选择方案和论证:采用89C51芯片作为硬件核心,数码管显示,为使用户更清楚更明白,万年历的日期和时间是分开显示,同时分别对应两个74LS138芯片用于控制数码管显示,还有74LS373译码器芯片,74LS21芯片是用于控制键盘的功能。如图所示:74LS138的八个输出引脚,任何时刻要么全为高电平1也就是芯片处于不工作状态,要么只有一个为低电平0,其余7个输出引脚全为高电平1。如果出现两个输出引脚同时为0的情况,说明该芯片已经损坏。74LS373原理图当74LS
4、373用作地址锁存器时,应使OE为低电平,此时锁存使能端G为高电平时,输出Q1Q8 状态与输入端D1D8状态一样;当G发生负的跳变时,输入端D1D8 数据锁入Q1Q8。51单片机的ALE信号可以直接与74LS373的G连接。在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如上图所示。其中输入端1D8D接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。输出允许端OE接地,表示输出三态门一直打开。显示模块选择方案:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少
5、。使用多个数码管显示LED数码管是利用二极管发光显示数字和字母,具有亮度大、接口设计比较容易,价格相对较便宜等优点,所以采用了LED数码管作为显示。 数码管电路3、键盘的选择采用独立式按键电路。每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。而且在本次实验课设用的键盘很少,所以采用独立式按键比较实用。4、实现定时:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。5、电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用AT89S51作为主控制系
6、统; LED数码管动态扫描作为显示。两个74LS138和一个74LS21芯片。图-5 LED动态扫描显示实验心得:经过了两个星期的学习和实验,我终于完成了单片机万年历课程设计。从开始接到课设要求到万年历的实现,再到报告的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获。这次报告的书写也会使我终身受益,我感受到做报告是要用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学
7、习就不可能有研究的能力,没有自己的研究,就不会有所突破。通过本次单片机课设,获得了丰富的理论知识,极提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。参考文献1建忠.单片机原理与应用.电子科技大学出版 2006.02 2俊谟.单片机中级教程.航空航天大学出版 2006.033余发山.单片机原理与与应用技术.中国矿业大学 2003.124凌霄.微型计算机原理与应用.中国矿业大学 2004.085何立民.单片机应用技术选编.航空航天大学 2000.086万光毅.单片机实验与实践教程.航空航天大学 2005.017周航慈.单片机程序设计基础.航空航天大学 1991.118黄
8、遵熹.单片机原理接口与应用.西北工业大学 1997.059振江,杜铁军,群.流行单片机实用子程序与应用实例M.:电子科技大学,200210子文 编 单片机原理与应用 电子科技大学 200611王法能 编 单片机原理与应用 科学 2004附源代码:#includesbit p1_0=P10;sbit p1_1=P11;sbit p1_2=P12;sbit p1_3=P13;sbit p1_4=P14;sbit p3_2=P32;unsigned char code zimal13=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x40,0x8
9、0,0x00,;/*共阴极字形代码,显示0-9字形码,最后三个代码分别表示-,.熄灭*/unsigned int year,month,day,hour,minute,second;/定义变量年,月,日,时,分,秒;void delay(); /延时函数;void xianshi(unsigned int h,min,s); /显示时间函数;void ymdxianshi(unsigned int year,month,day); /显示年月日;void fengming(); /蜂鸣器函数;int leap(unsigned int year); /判断闰年函数;unsigned int h
10、,m,s=5; /记录定时时间;unsigned int mode=1,td=0,yw=0; /状态;void main()year=2010;month=5;day=20;hour=23;minute=59;second=0;/*初始化年,月,日,时,分,秒*/TMOD=0x10; /定时器1;模式1;TL1=0xb0;TH1=0x3c;定时时间为50msTR1=1;/打开定时器1ET1=1;/定时器1溢出中断允许位EX0=1;/外部中断0允许IT0=1;/外部中断0触发方式为边沿触发EA=1;while(1) /主循环; if(hour=h&minute=m&second=s) fengm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 万年历 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内