您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的数码管万年历
宜宾学院物理与电子工程学院课题论文单片机(期末)课程设计题目:基于51单片机的数码管万年历院(系):物理与电子工程学院专业年级:2012级硕勋励志班指导老师:文良华姓名:陈志凤学号:1203030252014年6月单片机(期末)课程设计第1页共21页目录摘要..............................................................2第一章绪论.........................................................31、1万年历的背景...............................................31、2万年历的应用...............................................4第二章设计原理.....................................................5第三章实现过程.....................................................63、1方案选择...................................................63、2系统框图...................................................63、3说明.......................................................63、4电路模块说明...............................................73、5软件设计模块...............................................83、5、1万年历的算法.........................................83、5、2时间处理.............................................93、5、3日期处理............................................10第四章最终结果....................................................11第五章收获与体会..................................................135、1设计过程中遇到的问题及解决方法............................135、2收获与体会................................................13致谢...............................................................14参考文献...........................................................15单片机(期末)课程设计第2页共21页摘要随着人们时间观念的增强,万年历被广泛应用于生活中的各种场合。现在所使用的万年历,即:包括若干年或适用于若干年的历书。万年只是一种象征,表示时间跨度大。本次课程设计中制作的“基于51单片机的数字万年历”便是以电子产品为载体的基于AT89C51单片机在数码管上显示(公历)年月日、时分秒功能的简易万年历。利用AT89C51单片机内部定时/计数器T0的模式2(8位自动重装初值)产生一个时间为250us的信号,再计数4000次产生1S的时间后发出中断,再由单片机进行数据处理后,送人数码管(共阴极数码管)显示(动态显示)。关键字:51单片机、万年历、数码管、动态显示、定时/计数T0单片机(期末)课程设计第3页共21页第一章绪论1、1万年历的背景万年历是我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。相传,在很久以前,有个名叫万年的青年,看到当时节令很乱,想把节令定准。一天,他上山砍柴,坐在树阴下休息,树影的移动启发了他,他设计了一个测日影计天时的晷仪。可是,天阴雨雾,影响测量。后来,山崖上的滴泉引起了他的兴趣,他又动手做了一个五层漏壶。天长日久,他发现每隔三百六十多天,天时的长短就会重复一遍。当时的国君叫祖乙,天气风云的不测,使他很苦恼。一个名叫阿衡的大臣,为讨好皇上,奏称要设天台敬祭天神。祖乙认为有理,便带领百官去祭天,却无济于事。万年知道后,忍不住就带着日晷和漏壶去见皇上,对祖乙讲清了日月运行的道理。祖乙听后龙颜大悦,感到有道理。于是把万年留下,在天坛前修建日月阁,筑起日晷台和漏壶亭。并派了十二个童子服侍万年。祖乙对万年说:希望你能测准日月规律,推算出准确的晨夕时间,创建历法,为天下的黎民百姓造福。有一次,祖乙传旨要阿衡去了解万年测试历法的进展情况。当他登上日月坛时,看见天坛边的石壁上刻着:日出日落三百六,周而复始从头来。草木枯荣分四时,一岁月有十二圆。阿衡见此,知道万年的历法已研究成功,心中忐忑不安。他万分惧怕万年因创建历法而得宠,国君会怪罪自己提出祭祀天神的主意。于是,他阴谋策划,派了一个刺客去除掉万年。刺客攀上日月阁,见万年正在阁上观察星斗,便张弓搭箭,准备射死他。谁知,刺客被卫士发现,被当场缉拿。祖乙知后,惩处了阿衡,亲自登上日月阁看望万年。万年指着天象,对祖乙说:“现在正是十二个月满,旧岁已完,新春复始,祈请国君定个节吧。”祖乙说:“春为岁首,就叫春节吧。”冬去春来,年复一年。后来,万年经过长期观察,精心推算,制定出了准确的太阳历。当他把太阳历呈奉给继任的国君时,已是满面银须。国君深为感动,为纪念万年的功绩,便将太阳历命名为“万年历”,封万年为日月寿星。而现在所使用的万年历,即:包括若干年或适用于若干年的历书。万年只是一种象征,表示时间跨度大。我在本次课程设计中制作的“基于51单片机的数字万年历”便是以电子产品为载体的基于AT89C51单片机在数码管上显示(公历)年月日、时分秒功能的简易万年历。单片机(期末)课程设计第4页共21页1、2万年历的应用随着人们时间观念的增强,万年历被广泛应用于生活中的各种场合。比如黄历的出版、挂历、电子表、手机万年历软件、电脑万年历软件等等。随着科技的发展,现代的万年历能同时显示公历、农历和干支历等多套历法,更能包含黄历相关吉凶宜忌、节假日、提醒等多种功能信息;而其载体更包括历书出版物、电子产品、电脑软件和手机应用等非常丰富,极为方便人们查询使用。阳历,可能是我们的祖先最早使用的历法,它根据太阳运行规律制定。古人以为太阳绕地球运行,转动一周为一年——今日我们知道是地球绕太阳公转的周期,但古人的认识却相反。据学者考证,战国时还有太阳历,一年十个月,以天干为名,每月三十六日,分三旬,旬以地支为名,如此十个月三百六十日,加上五至六天不入干支的“废日”,一年就是三百六十五日或三百六十六日。在那种情况下,节气的安排首先有“夏至”、“冬至”,继而又有“春分”、“秋分”,季节上的回归年先分春秋二季,后来再分出春夏秋冬四季,以至二十四节气。古代文献《管子》中有这种历法的痕迹,彝族和西南少数民族的火把节与之有关。岭南民间至今还流传“冬至大过年”的说法,就是民间对这种历法的记忆残留。古人确实曾经以“一阳更始”的冬至作为元旦。阴历是按月亮的盈亏变化来制定的。一个朔望月的周期是二十九或三十天,年的长短只是月的整倍数,与回归年无关。月也与四季寒暑无关。希腊历和回历都属于这种历法。它的一年中,也不可能出现“双春”、“盲年”。单片机(期末)课程设计第5页共21页第二章设计原理一年365天,分成12个月,这12个月里有7个月是31天,4个月是30天,1个月是28天或29天。将这样的算法用软件编程语言描述出来,再用硬件电路实现功能并显示,便设计出了一个简单的电子万年历。本次设计的原理非常简单,即利用AT89C51单片机内部定时/计数器T0的模式2(8位自动重装初值)产生一个时间为250us的信号,再计数4000次产生1S的时间后发出中断,再由单片机进行数据处理后,送人数码管(共阴极数码管)显示(动态显示)。并增加时间调整功能(调整位选择、根据具体要求加或者减调整)其原理就是向单片机P口送人一个识别信号,由单片机软件对信号进行处理,并实现功能。本次设计采用的是14位共阴极数码管,由P0口作段选(P0.0-A,P0.1-B,...,P0.7-DP)、P1口和P2口部分位作位选的动态显示。显示的时候只需向数码管送入相应段码,并选通相应的位,利用余辉效应和视觉停留效应便可实现显示。单片机(期末)课程设计第6页共21页第三章实现过程3、1方案选择方案一:采用日历时钟芯片DS1302来产生时间,数据经单片开机处理后送到数码管显示。方案二:采用纯单片机制作,利用AT89C51单片机内部的定时/计数器和中断产生时间,经单片机处理后送数码管显示。方案一虽然定时准确,软件部分设计简单,但电路复杂成本高不适合初学者。所以本次设计采用方案二。3、2系统框图如图3-1所示:图3-1系统框图3、3说明系统由51系列单片机AT89C51、按键、数码显示三个模块构成。单片机包括时钟电路、复位电路;按键部分能实现对时间的调整,三个独立按键的功能分别是:调整选位、加、减。显示部分采用的是14位共阴极数码管,由P0口作段选、P1口和P2口部分位作位选的动态显示。按键单片机(定时/计数、中断、数据处理)显示单片机(期末)课程设计第7页共21页3、4电路模块说明3、4、1复位、时钟电路(如图3-4-1所示)图3-4-1复位、时钟电路如图3-4-1,本次设计的晶振采用12MHZ的晶振(机器周期为1us),复位电路为按键复位。3、4、2显示电路(如图3-4-2所示)图3-4-2显示电路如图3-4-2所示,本次设计的显示模块采用的是用14位共阴极数码管动态显示。其中,P0口作段选(P0.0-A,P0.1-B,...,P0.7-DP)、P1口和P2口部分位作位选(P1.2-秒低位,P1.3-秒高位,P1.4-分低位,P1.5-分高位,P1.6-时低位,P1.7-时高位,P2.0-日低位,P2.1-日高位,P2.2-月低位,P2.3-月高位,P2.4、P2.5-年低位P2.6、P2.7-年高位)。单片机(期末)课程设计第8页共21页3、4、3按键调整电路(如图3-4-3所示)图3-4-3按键调整电路如图3-4-3,系统外接三个独立按键,分别接入P3.0、P3.1、P3.2作用分别是调整选位、加、减(均为低电平有效)。3、4、4完整的硬件电路图(如图3-4-4所示)图3-4-4完整的硬件电路图3、5软件设计模块3、5、1万年历的算法万年历的算法主要包括时间处理和日期处理,其软件大概框图如图3-5-1所示:单片机(期末)课程设计第9页共21页图3-5-1软件算法流程图图3-5-2时间处理流程图3、5、2时间处理本次设计的时间处理十分简单,总结起来就一句话:定时计数满往前加一清零。流程图见图3-5-2所示,具体程序如下所示:单片机(期末)课程设计第10页共21页3、5、3日期处理图3-5-3(a)闰年算法图3-5-3(b)闰年及大小月算法流程图日期处理主要包括大小月处理,及闰年(二月)处理,处理方法见图3-5-3(a\b),具体程序如下:单片机(期末)课程设计第11页共21页第四章最终结果本次设计采用在Proteus中仿真来验证结果,具体仿真电路图及结果见图4-1、4-2、4-3、4-4所示:图4-1仿真电路图图4-2仿真初始化显示单片机(期末)课程设计第12页共21页图4-3重设初值仿真图4-4调整选位仿真单片机(期末)课程设计第13页共21页第五章收获与体会5、1设计过程中遇到的问题及解决方法设计过程中遇到很多问题,具体问题及解决方法如下:问题一:程序编译的时候170多个错误。解决办法:检查问题时发现,很多问题都是出在
本文标题:基于51单片机的数码管万年历
链接地址:https://www.777doc.com/doc-5325051 .html