基于ARM的时钟万年历设计_第1页
基于ARM的时钟万年历设计_第2页
基于ARM的时钟万年历设计_第3页
基于ARM的时钟万年历设计_第4页
基于ARM的时钟万年历设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-基于ARM的时钟万年历设计【摘要】:在当代工作生活中,时钟被广泛应用,该设计课题的时钟万年历是一种通过软件编程来控制电路或芯片,从而控制时钟和万年历运行,完成时钟万年历的显示及调整的电子产品。它的种类很多,有简单的电路产品,也有基于芯片的性价比高的产品。现在广泛应用的时钟万年历是以芯片为核心,通过软件编程实现。文章以stm32f103芯片为核心,通过键盘、触摸显示屏等部件,运用软件编程控制芯片和电路的结合,设计一款可以通过触摸屏控制实现时钟及二十四节气的运行与调整,显示二十四节气、年、月、日、时、分、星期等信息,可以跳转显示任意的年份、月份并包含该月的节气;显示部分通过电脑的终端控制,当程序编译无误后,将其下载烧录至开发板中进行操作,通过触摸屏和按键可以控制显示内容的调节,万年历系统将会按照用户设计的功能进行工作。【关键词】:电子万年历;时间日期显示;节气显示;-i-Abstract:Inmodernlife,theclockiswidelyused,thedesigntaskcalendarclockisathroughsoftwareprogrammingtocontrolcircuitorchip,soastocontroltheclockandcalendaroperation,completeelectronicproductdisplayandadjusttheclockcalendar.Ithasmanytypes,therearesimplecircuit,alsohavethehighperformancepriceratioproductsbasedonchip.Nowwidelyusedintheclockcalendarisbasedonthechipasthecore,throughsoftwareprogramming.TakingtheSTM32F103chipasthecore,throughthekeyboard,touchscreenandothercomponents,usingacombinationofsoftwareprogrammingcontrolchipandthecircuit,designacanthroughthetouchscreentocontroltheimplementationofoperationandadjustmentoftheclockandtwenty-foursolarterm,showingthetwenty-foursolarterm,year,month,day,week,time,andotherinformation,andcanjumpshowinanyyear,andcontainsthemonthsolarterm;displaypartoftheterminalcontrolcomputer,whenthecompileriscorrect,thedownloadtothedevelopmentboardtooperate,throughthetouchscreenandkeyscancontrolandadjustthedisplaycontent,calendarsystemwillworkaccordingtotheusertodesignthefunction.Keywords:Electroniccalendar;timeanddatedisplay;Solartermdisplay-ii-目录前言.2第1章绪论.3第1.1节课题研究设计背景.3第1.2节课题研究设计目标.4第1.3节课题研究设计方法.4第2章主要元器件介绍.7第2.1节主控芯片STM32F103ZET6.7第2.2节ST-LINKV2仿真器.8第3章系统分析.10第3.1节设计任务和设计要求.10第3.2节设计的总体概括.11第3.3节二十四节气计算模型.11第4章系统设计.14第4.1节系统的硬件设计.14第4.2节主程序流程图.15第5章系统测试.16第5.1节测试内容.16第5.2节测试结果.16第5.3节测试评价.16结论.17参考文献.18致谢.19附录.20附录1:实物照片说明.20附录2:部分源程序.22第0页前言在当代繁忙的工作与生活中,时钟广泛的应用于家庭、车站等公共场所,给人们的学习、工作和生活带来方便。我们不难发现传统时钟或多或少存在一些不足从而降低了其使用范围,传统的时钟设备已经远远不能满足人们的需求,人们希望拥有一些简单便捷的新功能,例如节气的显示等等。传统的机械式时钟由于功能性差,显示不全面等缺点,已经逐步被带有微处理器的数字式电子时钟所取代。时钟万年历极为有效地克服了机械式时钟功能性差、显示不全面的缺点,也使得时钟万年历在技术和性能上都有了大大的提高,并且还具有易操作、成本低等优点。因此研究一种新型的时钟万年,将时钟和万年历结合在一起,具有很高的现实需求性。文章分为绪论篇、系统分析篇、系统设计篇、系统测试篇和结论篇,分别介绍了与时钟万年历设计相关的背景知识、基本理论、主要硬件,工程应用及课题研究的收获总结,通过对硬件连接、ARM的软件编程、程序烧录、控制过程、控制目标、控制效果等问题,揭示课题研究过程中的种种练习。绪论篇介绍了关于日历发展的历史进程、课题研究所要实现的目标、以及所选器件的优势特点及原理;主要元器件介绍篇介绍了关于设计中使用到的一些器件,如主控芯片的主要性能参数、引脚的接口作用,以及ST-LINKV2的接口、LCD液晶显示屏的相关特性与性能指标等;系统分析篇分析介绍了设计的任务、要求,以及所运用到的一些计算公式的介绍,对设计的整体概述等等;系统设计篇介绍了系统硬件设计的相关原理图、主控程序的运行流程图;系统测试篇介绍了对本次设计内容的测试目标、测试过程以及测试的结果,并且对结果进行分析评价;结论篇则是对本次设计的一些体会与心得,对帮助过的老师同学进行感谢,在编写过程中,参考了大量文献与书籍,收益匪浅,对相关作者表示感谢。第1页第1章绪论第1.1节课题研究设计背景1.1.1.日历的发展历史生活中,大家使用的台历、挂历都是由日历变化而来的,到目前为止仅有短短几百年的历史。关于我国日历的出现,有着众多传说,但是从考古学家发现的殷代的一页甲骨历,我们可以得知当时历法已有一定的水平,这页甲骨历是最远久的历书实物,说明我国日历初态的出现大约在四千多年前1。在唐朝时期出现过“历日”,但日历正真意义上的产生是在唐顺宗永贞年间,也就是在1100多年前,它是史官编写国史的重要时间依据。它按每月天数把每年分为12册,将月份和日期同写在每页上,服侍皇帝的宫人会记录下皇帝每日言行,并在月末交由皇帝过目批准后送至史官处保存留档,史官将黄历的内容进行修改和润色后编入国史1。后来,许多朝中官员也将自己家庭发生的一些大事编制为自家的日历;再后来,日历凭借方便的特点,进入了普通人的家庭,人们还在日历中添加了干支月令,节气及黄道吉日,渐渐的有了如今日历的形态。在近一个世纪里才出现了可挂的挂历及台历等形式。尽管日历形式不断的变化、花样不停的增加,但它依然使用着远久时的格局。1.1.2.我国纪年法的发展我国从古至今使用过很多种纪年法,包括年号纪年法、星岁纪年法、干支纪年法、生肖纪年法、民国纪年法和公元纪年法等等2。我国古代原根据帝王登记年次纪年,使用过的此类年号大约有八百多个。汉武帝时期年号纪年法首次被使用,方法是登记年称为XX元年(若更换年号则重新纪元),依次称为XX二年、三年,以此类推。战国时占卜家根据天象纪年被称为星岁纪年法2。星岁纪年法可以分为星纪年法和太岁纪年法两种,常被人们使用;干支纪年也是一种基本的纪年方式,每60年为一个周期,将天干和地支分别组合起来形成。最早在汉代光武帝时期开始用干支纪年法纪年,并且经常被医者使用在古医书中2。同样起于东汉的十二生肖法,人们可以使用生肖推算来年龄、出生的年份。中华民国成立后使用民国纪年法,并且规定民国纪年法与公元纪年法同时纪年。直到中华人民共和国成立之后,内地开始不再使用民国纪年法,改用公元纪年法;台湾地区却是一直使用民国历纪年,直到现今。公元也被称为公历纪元或西元纪年,一般使用C.E.和B.C.E.表示公元后和公元前。八世纪以后西元纪年出现在西欧的一些基督教信仰国家;在十一到十四世纪时期,西元是得到普遍使用。第2页公历产生于六世纪,是一种阳历,开始时只是用来计算复活节的日期。但是因为它计算的阳历非常的准确,得到了人们的高度认可,之后成为国际通用标准。公历的产生与基督教及公元间并没有直接联系。1.1.3.阴历和阳历的区别阳历就是我们常说的公历,有被称为新历。在公历日历中,一个回归年,一年就是地球围绕太阳旋转一圈所需要的时间,大概为365天5天48分46秒;公历中还有平年和闰年的区别,平年365天,闰年较平年多一天3;每年又被分成12个月,其中包含1个2月(平年为28天,闰年为29天)、4个小月(30天)和7个大月(31天);每年剩下零头的5小时48分46秒,大约四年满24小时,相当于一整天,于是这天被加到第四年的2月里,因此闰年的2月有29天。一般公历闰年是用4除没有余数;整百公历能整除400。因为闰年的时间比平年的时间多5个多小时,四年后几乎满一天的时间,如此计算,经过三个百年后,当到第四个百年时就会多出三天的时间,因此每经过四百年就要减3天,已达到日历的平衡纪年。阴历不分平闰,一年为365天左右,分为12个月,以29天半作为一个月;为了方便使用,通常认为大月为30天,小月则为29天;之后人们又定了阴阳台历,就是为了克服阴历不能反映季节的缺点,我们使用的农历就是阴阳合历,相比阴历,它每过几年就会多有一个闰月,因为添了闰月的原因,可以用来调整四季。节气直接关系到怎样确定阴历日期,一年有二十四节气,又被区分为中气和节气;节气存在于每个月中,但是中气却不是,如果当月没有中气,那么这个月被称为是上个月的闰月,当然中气并没有消失只是被移到下一个月了而已。第1.2节课题研究设计目标在此次毕业设计中,我采用了stm32f103作为系统的核心控制芯片,结合外围的辅助电路,连接键盘、触摸显示屏等部件组成一个小型控制系统,运用专业软件使用万年历计算公式进行计算编程控制芯片和电路的结合使用,设计一款可以通过触摸屏控制实现时钟、日期及二十四节气的运行与调整,显示二十四节气、年、月、日、时、分等相关信息,并可以跳转显示任意的年份、月份并包含该月的节气。显示部分通过电脑软件编程控制,若程序编译无误,则将其下载烧录至开发板中进行操作,通过触摸屏控制,以及按键调整可以对显示内容进行调节,万年历显示内容会根据调试出现相应显示;若程序编译不成功,则需要对程序进行检查,调整修改至编译成功。第1.3节课题研究设计方法1.3.1.硬件设计方法研究第3页基于ARM设计以stm32f103为核心,其它设备有ST-LINKV2仿真器,J20-pinJTAG/SWD扁平线,控制器为SSD1289,且5V供电彩屏LCD液晶触摸显示屏,两条USB数据线。通过JTAG/SWD扁平线和USB数据线分别连接ST-LINK,实现PC与stm32f103开发板相连接,使用USB数据线为stm32f103开发板供电,将LCD触摸显示屏连接到stm32f103开发板,至此,实现硬件连接。ARM是AdvancedRISCMachines的缩写,它是一家英国公司的名字,也是一种技术的名称,还是一类微处理器的统称,作为一家公司,它专门从事精简指令集计算机技术和芯片设计4,不生产芯片,只是将自有的高性能、高性价比的处理器和有价值的软件技术转让给其他合作公司,它还具有自己的专有市场,在行业内具有很强的竞争力,是全球性RISC标准的创造者,该公司所设计的产品在社会生活的各个行业被广泛使用;作为一种技术名称,它频繁的出现在我们的日常生活中;作为一类微处理器,它包含多个系列,无论什么系列的ARM都具有ARM体系结构的共有特点,还有一些其自身特有的优势和应用范围,目前市场上广泛使用的ARM系列主要的通用系列包含有ARM7、ARM9、ARM9E、ARM105。现代市场上所面临的问题是开发板的限制性,他们是不公开的,不是模块化的,这些缺点都限制了它的可移植性和可扩展性,也限制了它的应用。事实上,硬件开发系统可以学习软件工程做一个公开的,模块化的,接口保持一致的技术,让它具备“移植”、“扩展”和其它的一些优点,这样的话,它就可以做成软件,使用更加便捷。设计中使用到的STM32F系列属于增强型中等容量,以STM32F103ZET6为主控芯片的STM32Open103Z开发板,含有扩展接口多,外围接入模块多等优点。1.3.2.硬件工作原理研究在Cortex-M3内核的STM32处理器系列是专为高性能嵌入式,低成本,低功耗要求的使用设计的。根据性能的差异,可分为“基本型”STM32F101和“增强型”STM32F1XX两种。本设计采用的是“增强”系列。增强型串行时钟频率可以达到72MHz,是同类产品中最高性能的,内置32K到128K的闪存,并且两者只是在静态内存容量和外部设置的接口上存在差异6。闪存执行是目前市场上32位功耗最低的产品,当时钟频率为72MHz时,功耗只有36mA,折合为0.5mA/MHz7。ARM7采用Newman结构,分为三级流水,空间统一的指令与数据Cache,平均功耗为0.6mW/MHZ,时钟速度为66MHZ,每个指令的平均执行1.9个时钟周期8。ARM处理器共含有37个寄存器,分为通用和状态两种。状态寄存器识别CPU当前工作和程序的执行情况,部分状态寄存器一直未被使用。ARM处理器有7种不同处理器模式和对应的特定寄存器;ARM微处理器较新的体系结构中含有两种指令集:长度为32位的ARM指令集和长度为16位的Thumb指令集,Thumb指令集又作为子集包含在第4页ARM指令集内,相较与ARM指令集的使用,Thumb指令集能够在不丢失32位使用特点的前提下节约部分占用空间9。1.3.3.课题研究的特点时钟万年历是一种通过液晶显示界面显示准确的当前时间、日期和节气等信息的设备,并可以跳转显示任意的年份、月份并包含该月的节气,用户可以知晓当前的准确时间,可以通过触摸屏幕或者摇杆按键实现对当前时间进行调整校准的功能,软件编写的程序能够控制整个系统准确有序的运行。时钟万年历具有很多的特点,主要特点如下:(1)、具有很强的实用性,操作非常的简单方便。(2)、所用的部件很少,具有极高的性价比。(3)、最适合用于对价位和功耗要求较高的消费应用。(4)、当前年份、月份、时间及节气显示可调节。(5)、通过相应的触摸屏区域、程序和按键调整校准年份、月份、时间及节气并可以跳转显示任意的年份、月份并包含该月的节气。第5页第2章主要元器件介绍第2.1节主控芯片STM32F103ZET6图2-1(1)、主要性能参数内核:Cortex-M332-bitRISC;工作频率:72MHz,1.25DMIPS/MHz;工作电压:2-3.6V;封装:采用LQFP144;I/O口:112;存储资源:512kBFlash,64kBRAM;接口资源:3xSPI,5xUSART,2xI2S,2xI2C,1xFSMC,1xLCD,1xSDIO,1xUSB,1xCAN;模拟到数字转换:3xAD(12位,1us,分时21通道),2xDA(12位);调试下载:JTAG/SWD下载接口,IAP下载接口。(2)、74LVC139将FSMC扩展为多个位选引脚,使FSMC可以接入更多设备。(3)、AMS1117-3.3。(4)、3.3V稳压器件。第6页(5)、引脚功能说明。第1脚:SDIO接口,方便访问MicroSD模块,SD卡读写速度快于SPI接口10。第2脚:8-BitI/O接口,接口功能是方便访问按键模块、电机模块等10。第3脚:CAN接口。第4脚:SPI1/SPI2接口,一.方便访问SPI模块;二.方便访问模数、数模模块。第5脚:I2C1/I2C2接口,方便访问到I2C模块。第6脚:FSMC接口(8BITFSMC)。第7脚:FSMC+SPI接口(16BITFSMC+SPI),方便访问触摸屏模块。第8脚:一线接口,方便访问到一线装置器件(采用92封装)。第9脚:PS/2接口,方便接入PS/2键盘或鼠标10。第10、11脚:USART1接口、USART2接口,方便访问RS232、485等模块。第12脚:FSMC接口(16BITFSMC)。第13脚:USB接口,可与PC机进行USB通信。第2.2节ST-LINKV2仿真器(1)、JTAG/SWD接口定义ST-LINKV2仿真器的JTAG/SWD接口定义,见图表1-2.图表2-2JTAG/SWD接口定义2.2.2.LCD触摸屏LCD液晶显示器,通过液晶和过滤器的光,显示成一个数字图像在屏幕上,与传统的CRT显示器相比较液晶显示器的优点有占空间小,低功耗,低辐射,无闪烁。液晶被放置在两个平行玻璃之间,有许多小的垂直或水平线在两个玻璃间形成,确定是否有能控制方向的棒状液晶分子的变化,光线的折射后产生图像,它是按照极性过滤器、薄玻第7页璃板、电极、配列层、液晶、配列层、电极、薄玻璃板极性、过滤器的顺序排列构成,LCD技术把液晶灌入两个列有细槽的平面之间,这两个平面上的槽互相成90度,说明分子是垂直排列的11。触摸屏是众多定位设备中的一种,也是一款类似于扫描仪的输入设备,它的优点主要有反应速度较快,节省大量空间,操作方便。根据操作原理可分为表面声波式触摸屏、电容式触摸屏、电阻式触摸屏和红外式触摸屏等,本次课题设计中运用到的就是电阻式触摸屏。各种触摸屏之间还是存在某些雷同的特质:第一,至少含有四个特性直接影响触摸屏的视觉使用效果,透明度、颜色失真、反光和清晰程度;第二,绝对坐标系统,独立的物理设置坐标系统,新确定坐标与之前所有操作状态没有任何联系,这样功能的实现需要触摸屏系统不管在如何协调的情况下,相同位置点的输出必须是稳定的12,如果不稳定,则显示画面时会出现漂移现象;第三,通过触摸检测进行定位,触摸屏技术都是根据传感器获得的反馈数据进行工作,一些特殊的触摸屏本身就是一套传感器。触摸屏的定位原理和所用的传感器都是决定触摸屏使用过程中的各种现象的关键12。由于显示屏本身是不会发光的,而我们见到的发光的显示屏是因为它的背光模块,背光模块影响到显示屏的亮度。早期由于技术限制采用的是CCFL背光源,由于CCFL背光源可使用寿命较短,色彩显现性能差,屏幕厚度难以把握,还会引起亮度恶化等诸多原因,使得具有各种适应新环境工作要求优点的LED背光源技术应运而生,这种LED背光技术在显示屏市场上得到了普遍应用,占据大部分市场。本课题设计中所用到的显示屏和触摸屏面板的控制芯片分别是SSD1289和XPT2046;采用TFT类型的屏幕,接口类型是16位并行接口,触摸面板接口采用SPI接口;运用LED背光技术;支持5V电源供电;色阶指数为65536色;分辨率为320x240(pixel)。第8页第3章系统分析第3.1节设计任务和设计要求3.1.1.设计任务(1)、任务概述本设计任务是设计基于ARM以stm32f103为核心仿真器的连接的时钟万年历触摸屏控制系统,能够实时显示当前的时间、日期、星期和二十四节气,以及通过对触摸显示屏相应区域的控制,及摇杆按键和usekey按键调控,实现对年份、月份、时间、节气等相关显示信息的调节校准,并可以跳转显示任意的年份、月份并包含该月的节气。使其能够正常显示,满足人们对时钟万年历的使用要求。(2)、计算公式平润年的判断if(y%4=0)&(y%400!=0)sprintf(“runnian”,t);elsesprintf(“pingnian”,t);计算每月具体日期是周几if(y/100)=20)&(m!=1)&(m!=2)/算法公式w=(y%100+(y%100)/4)+(y/100)+1)/4-2*(y/100)+1)+(26*(m+1)/10)+d-1)%7;elseif(y/100=20)w=(y-1)%100+(y-1)%100)/4+(y-1)/100)+1)/4-2*(y-1)/100)+1)+26*(m+12+1)/10+d-1)%7;if(y/100)=19)&(m!=1)&(m!=2)w=(y%100+(y%100)/4)+(y/100)+1)/4-2*(y/100)+1)+(26*(m+1)/10)+d-1-1)%7;elseif(y/100=19)w=(y-1)%100+(y-1)%100)/4+(y-1)/100)+1)/4-2*(y-1)/100)+1)+26*(m+12+1)/10+d-1-1)%7;计算每月天数if(m=1)|(m=3)|(m=5)|(m=7)|(m=8)|(m=10)|(m=12)day=31;elseif(m=4)|(m=6)|(m=9)|(m=11)day=30;elseif(m=2)if(y%4=0)&(y%400!=0)day=29;elseday=28;计算每月包含的节气,并且计算具体日期(y/100)=20)/判断年份是不是在21世纪day=(y%100)*0.2422+N-(y%100)-1)/4;/计算当月所包含的第一个节气的日期第9页dayj1=(y%100)*0.2422+M-(y%100)-1)/4;/计算当月所包含的第二个节气的日期N=5.4055,3.87,5.63,4.81,5.52,5.678,7.108,3.75,7.646,8.318,7.438,7.18;M=20.12,18.73,20.46,20.1,21.04,21.37,22.83,23.13,23.042,23.438,22.36,21.94;if(y/100)=19)/判断年份是不是在20世纪day=(y%100)*0.2422+N-(y%100)-1)/4;/计算当月所包含的第一个节气的日期dayj1=(y%100)*0.2422+M-(y%100)-1)/4;/计算当月所包含的第二个节气的日期N=6.11,4.15,5.63,5.59,6.318,6.5,7.928,8.35,8.44,9.098,8.218,7.9;M=20.84,18.73,20.46,20.888,21.86,22.0,23.65,23.95,23.822,24.218,23.08,22.6;(3)、特殊的日子1582年10月5日-14日之间的空白由于历年与回归年的误差,在1582年10月4日罗马教皇下令将次日定为10月15日,春分定为3月21日,形成现在的公历。在公历闰年中一般能被4整除,整百年份则需被400整除。因此,1582年10月5日至14日之间就是空白,而1500年之后在逢百的年份只有能被400整除才为闰年,1500年之前则不是。3.1.2.设计要求(1)、使用正确的日历日期程序编写公式,正确区分平年与闰年的计算,准确计算相应日期的星期,准确计算相应节气和对应的日期之间的关系。(2)、通过计算机keiluVision4软件运用正确的公式,并对其进行程序的编写,使得程序能够正常运行且实现其功能。(3)、通过USB接口和ST-LINK等部件连接组成的外围辅助电路设备,将使用计算机编写的正确的程序即时传输烧录到stm32f103开发板;(4)、stm32f103开发板将接收到的数据信号进行分析和处理后,根据程序要求将相关数据送给液晶触摸显示屏;(5)、通过液晶触摸显示屏显示实现原设定相关数据的显示;第3.2节设计的总体概括在书籍与网络中寻找关于时钟万年历的相关资料,对资料进行查阅整理;寻找正确的硬件设计方法;使用正确的日期计算公式,平年与闰年的计算公式,星期计算公式,节气与对应日期计算公式对所需内容进行计算;通过专业软件编写程序,并将各种计算方法合理运用到其中,以实现功能;在stm32f103开发板中对接收数据进行处理后,在液晶触摸显示屏上显示编写程序中默认的年份、月份、时间、日期、星期及该月中所包含的节气,当通过对触摸显示屏相应区域的控制和对按板上的RESET、JOYSTICK和USERKEY按键的调节,实现年份和月份的加减,并可以跳转显示任意的年份、月份并包含该月的节气。第3.3节二十四节气计算模型第10页3.3.1.二十四节气的起源春秋时期,古人已经用节气指导农作,经过不断的发展,二十四节气在秦汉时基本确立,直到汉武帝时二十四节气被正式订历法之中。二十四节气在我国古代历法中起着重要的作用,它将太阳与月亮的运行规律相结合,用来反映气候变化、四季交替,指导我国几千年来生活、农作。3.3.2.二十四节气的天文位置二十四节气的所谓天文位置,是太阳经度(由于对黄道倾角的存在,黄道与天赤道地球上形成交点,往往是说春分点和秋分点。在黄道为基圈形成的黄道坐标中根据经纬度的使用,又分为黄经、黄纬)零度起,沿黄经(即春分点)向东运转15度所使用的日子,这样的日子被称做节气。太阳运转360度称为一个回归年,每15度称为一个节气,36015=24,因此每年有二十四节气,一般情况下每个公历月中包含2个节气。当月第一个节气称为“节令”,第二个节气称为“中气”。节令、中气轮回交替,历时都为15天,我们常把节令、中气称为节气。通过不同的观测点,观测到的黄道坐标还能被分为两种:以太阳为中心观测点的日心坐标系和以地球为中心观测点的地心坐标系,此时的黄道坐标分别称为日心黄经、纬,地心黄经、纬13,日心经度与地心经度之间可以理解为在相反的方向,因为180度的转换在两者之间,日心经度和日心纬度使用的更为频繁。3.3.3.二十四节气的发生时间的计算使用天文算法计算二十四节气的时间,主要是根据牛顿力学原理及开普勒三大行星定律,计算地球、太阳和月亮三大天体之间运行轨道和时间参数以及各自的特点,得出这些天体处于某位置的时间,这样的计算非常复杂13。之后随着VSOP-82和VSOP-87行星理论出现,使用天文计算法计算二十四节气也变的简单。VSOP-82理论包含了对太阳系内几大行星位置计算的周期序列,对VSOP-82理论包含的周期序列进行正、余弦项累加求和,就能得到该行星特定时间所求的轨道参数13。但是由于使用VSOP-82理论计算,每次都会求出全部超高精度的轨道参数,而很多参数在实际中并没有得到运用,这就造成了计算时间和结果上发生一定的浪费。VSOP-87包括VSOP-87表、VSOP-87A表、VSOP-87B表、VSOP-87C表、VSOP-87D表和VSOP-87E表,VSOP-87D表又包含三部分数据,分别用于计算行星的日心黄经周期项系数表(L表)、日心黄纬周期项系数表(B表)及行星到太阳的距离周期项系数表(R表)13。其中L表又含有众多周期相系数条目,在计算地球日心黄经是仅使用到三相系数即可完成,只是它牺牲了一些精度。月球运动会引起地球的章动,但是有一定周期可循。本次设计课题中采用的关于二十四节气的计算方法是基于国际天文联合会的IAU1980章动理论和天文算法第二十一章第11页的表21-A,其中每个周期项又包括黄经章动()的正弦系数(相位内项系数)、交角章动的()余弦系数(相位外项系数)以及辐角的5个基本角距(M太阳平近点角、M月球平近角、D平距角、F月球纬度参数、黄道和月球平轨道升交点黄经)的线性组合系数13,5个基本角距需要转换为以弧度为单位参与计算。计算出角距的系数后可得到辐角值,依据辐角值可计算出周期项值。基于VSOP87理论计算出来黄经的天文位置,通过坐标转换,章动修正以及光行差修正(计算太阳视黄经时)后,就能过得到较为准确的太阳地心视黄经13,根据太阳视经度扭转当前日历计算所需要的时间,我们可以根据时间的太阳视经度的正演计算,并利用误差修正的迭代计算方法,让正向算出的结果向已知结果方向进行收敛,当达到一定迭代次数或者计算结果满足使用要求时,结束计算,这时正向的输入时间即为我们所要求的时间。经过多次的验证之后,发现使用牛顿迭代法进行收敛,收敛效果很好,通常只需要3次收敛运算就能过得到满足精度要求的结果13。直到现在,我们已有二十四节气的详细计算方法,即为对应的经度和太阳黄年节气的输入,得到确切的日期,时间,节气。天球概念示意图:图3-1天球概念示意太阳黄道视觉位置原理图:图3-2太阳黄道视觉位置原理第12页第4章系统设计第4.1节系统的硬件设计4.1.1.相关电路图见图表4-1系统硬件连接示意图;图表4-2LCD电路原理图。图表4-1系统硬件连接示意图图表4-2LCD电路原理图第13页第4.2节主程序流程图程序首先从主程序开始执行,在接上电源以后,open103z经过初始化。之后open103z开始载入主程序。将程序所表示的内容显示在LCD屏幕上,根据用户个人需要调节相关数据,通过按键修改后,返回到程序载入,直到结束程序执行。见图表4-3主程序流程图。图表4-3主程序流程图第14页第5章系统测试第5.1节测试内容该设计的系统软件调试采用软件keiluVision4进行,通过对程序的编译、运行,可以检查出程序错误,在此基础上对程序进行正确的修改,使其能够实现设计要求。在连接好硬件设备和外围线路之后,将编写的触摸屏时钟万年历程序载入到open103z开发板中,编译相关程序,观察是否存在错误或者警告,对于出现的问题一一给予解决,正确编译后运行程序,让程序内设定的日期、时间、节气以及星期等相关数据都可以正确的显示在触摸显示屏上,并且调试观察是否能够通过对触摸屏的碰触以及调节摇杆和按键的控制,实现年份、月份、节气、星期及几号的切换调节,是否可以实现跳转显示任意的年份、月份并包含该月的节气。第5.2节测试结果通过对相关程序的运行,程序内设定的日期、时间、节气以及日期对应的星期等有关数据都可以正确的显示在触摸显示屏上,并且能够实现通过对触摸屏的碰触以及对调节摇杆和按键的控制,对年份、月份、节气、星期及几号的切换调节,并可以实现跳转显示任意的年份、月份并包含该月的节气;存在的缺点是调试的年份只能在二十到二十一世纪之间,若超过这个年限,则出现错误的日历显示,由于采用近视的牛顿迭代法迭代法求节气,节气也存在一定的误差的;触摸显示屏显示的时间并非当前北京时间,而是开发板的内部工作时间,并没有达到设计要求。第5.3节测试评价经过多次对软件编写修改和硬件的选择安装测试结果的分析、检错和纠错后,可以发现本次设计的作品基本达到原定的设计目标,满足原定设计要求,已经达到了预期效果,只是在某些细节上还需要进行一些调整和完善,例如万年历的日历以及二十四节气只能正确的显示或调试在二十和二十一世纪之间,若超过这个年限则会出现错误显示,还有当前时间的显示问题,所显示的并非当前的北京时间,而是开发板内部的工作时间,这些问题都需要进一步的改进完善,才能真正的形成万年历触摸屏调节显示系统。第15页结论此次毕业设计我进行了精心的准备,也花费了大量的时间。电子时钟万年历简单的来说就是通过软件编写程序,通过主控芯片与外围电子线路设备相结合实现控制显示的设计。在进行总体的设计以后,我开始制作硬件电路,准备相关的硬件设备,硬件设备包括:stm32f103、LCD液晶触摸显示屏、ST-LINKV2仿真器、USB电路,正确连接使用测试后,使用keiluVision4软件编写程序;完成的作品基本满足设计要求。但是在一些方面依旧存在不足,譬如完成的作品只能实现二十和二十一世纪的日历显示,对于不在范围内的年份则出现错误,以及关于二十四节气的计算,为便于计算,采用的仅为相近的数据,并不能完全确定其准确性,在理想的中还包含关于农历日期的计算显示等,这都需要进一步的改进添加、完善。随着社会的发展使得电子时钟万年历的设计显得十分的重要。使用ARM作为核心的控制元件,配合其它器件,该电子时钟万年历具有软硬件设计简单、易开发、功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。可应用于住宅、办公室以及超市等被需要可以观看时间的场所,有一定的实用性。第16页参考文献1.360百科.台历EB/OL./doc/6509642.html.2013-11-18/2014-03-102.张始峰.中国古代帝王年号纪年法漫谈M.兰台世界.2009.053.阳历.百度百科EB/OL.http:/baike.baidu.c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论