下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 太原理工大学信息-单片机-电子万年历

太原理工大学信息-单片机-电子万年历.doc

太原理工大学信息-单片机-电子万年历

爱有多深伤就有多深
2018-03-22 0人阅读 举报 0 0 暂无简介

简介:本文档为《太原理工大学信息-单片机-电子万年历doc》,可适用于领域

太原理工大学信息单片机电子万年历课程设计报告课程名称:嵌入式程序基础实验项目:电子万年历设计实验地点:起点机房专业班级:通信学号:******学生姓名:指导教师:年月日太原理工大学信息工程学院课程设计任务书倪杨嵌入式系统基础专业班级通信学生姓名课程名称电子万年历温景国设计名称设计周数指导教师设计一个电子万年历实现日历功能。主要设计参数:(显示年月日时分秒及星期信息设计(日历参数可调整(自动识别闰年任务(LED显示。主要设计参数(设计IC接口电路(设计LED显示电路设计内容(设计IC接口驱动程序及显示程序。设计要求要求:仿真调试硬件电路仿真调试程序、单片机原理与接口技术李晓林等电子工业出版社。主要参考、微型计算机控制技术潘新民等人民邮电出版社。、单片机应用系统设计技术张齐等电子林业出版社。资料课程设计说明书份学生提交归档文件注:课程设计完成后学生提交的归档文件应按封面任务书说明书图纸的顺序进行装订上交(大张图纸不必装订)指导教师签名:日期:目录一(实验目的二(实验要求三(实验原理四(硬件系统设计五(电路原理图六(电路系统框图七(LED显示数码管八(程序流程图九(设计程序十(设计体会一(实验目的、熟悉MCS定时计数器、中断的应用。、熟悉时钟时、分、秒计时方法掌握编程技巧。、掌握七段码LED显示器的结构七段码LED显示器的工作方式和显示程序的编程。二(设计要求(设计IC接口电路(设计LED显示电路(设计IC接口驱动程序及显示程序。设计参数设计一个电子万年历实现日历功能。主要设计参数:、显示年月日时分秒及星期信息、日历参数可调整、自动识别闰年、LED显示。三(设计原理显示部分设计基本显示原理:时钟开始显示为时分秒也就是数码管显示然后每秒秒位加到后秒位加秒位回。秒位到后即秒分钟加秒位回。依次类推时钟最大的显示值为小时分秒。这里只要确定了秒的定时时间其他位均以此为基准往上累加。同时时钟达到最大值的时候天数也增加一位知道显示了后再变为同时阴历和阳历的天数也加根据不同的月份显示的天数阳历有天阴历就要经过计算得到到了个月后年数自动增加以此类推显示万年历的现实。万年历优化算法阳历算法阳历的算法比较简单每十月的总的天数相对来说是固定的。只有月份在闰年是天在非闰年是天。每个月的日历排法(主要是确定每个月第一天是星期几。我们知道年月日是星期二星期的变化是天一个周期比如说要计算年月日是星期几可以这样推算:从年月日到年月日总共经过了天(从表可看出)对取模是:i年月日是星期二加三后是星期五。因此年月日是星期五。同理可以推算出从年任何一天是星期几。表月份闰年非闰年阴历算法阴历的算法比较复杂它包含两个部分。一部分是阳历日和阴历日的对应关系另一部分则是阳历日和农历节气的对应关系。下面只介绍与设计有关的阴历和阳历的关系。表比特数数据!!!!!!!!!xxxx我们先要做一个数据表这个数据表里面每个字节表示T一个阴所年彝个月份的天教个字节(共bit)的具体意义如表。其中“~(,)中“”表示天“”表示天。“xxxx(个比特可表示数值范围,)”表示该年中是否有闰月数值“”表示无闰月“,”表示某一个闰月。闰月一般是天在年中(,年)闰月是天的可用一个特殊语句来解决。这里OO年需要x=个字节构成阴历压缩数据表。有了阴历的数据表后主要是要确定阳历日和胡历日的对应关系。我们知道阳历年年月日对应的阴历年是对应的阴历日可用以下算法:()从阳历年年月日到年月日计算出经过了天()根据阴历数据表知道阴历年年月有天因此=天。原来阳历年年月日对应的阴历日是日则有=。()因为阴历年月份有天而<=所以阳历年年月日对应的阴历年是年月日。如果上一步相加得出的散大于当前阴历月的总的天敢别应该继续减去当前阴历月的总的天数直到符合条件。对于月份增加时还要通过数据表查看是否要经过闰月。对于其他任何一个阳历日和阴历日的对应关系都可以通过以上算法求得结果。四(硬件系统设计本电路是由ATC单片机为控制核心具有在线编程功能低功耗能在V超低压工作时钟电路由DS提供它是一种高性能、低功耗、带RAM的实时时钟电路它可以对年、月、日、周日、时、分、秒进行计时具有闰年补偿功能工作电压为V,V。采用三线接口与CPU进行同步通信并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS内部有一个*的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒具有使用寿命长精度高和低功耗等特点同时具有掉电自动保存功能。五(电路原理图六(电路系统框图七(LED显示数码管常见的LED显示具有清晰明亮的特点。是显示接口也是绝大多数单片机应用系统必备的部件之一。发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。它由若干个发光二极管按一定的规律排列而成。当某一个发光二极管导通时相应的一个点或一笔画被点亮控制不同组合的二极管导通就能显出各种字符。显示器的结构常用的段显示器的结构如图所示发光二极管的阳极连在一起的称为共阳极显示器阴极连在一起的成为共阴显示器。位显示器由个发光二极管组成其中个发光二极管A,g控制个笔画的亮或暗另一个控制一个小数点的亮和暗这种笔画的七段显示器能显示的字符较少字符的形状有些失真但失控简单使用方便。八(程序流程图九(设计程序ORGHLJMPSTARTORGHLJMPPROINTint用来切换时钟调整位置ORGH用来调整时间只加不减LJMPPROINTORGBHms的延迟计数次则为秒LJMPPROTIMEORGH主程序TABLE:DBCH,FH,AH,BH,H,H,H,FH,H,HORGHSTART:MOVTCON,#H中断初始化MOVIE,#DHMOVTMOD,#HMOVTH,#eCH定时器初始化MOVTL,#HMOVH,#AH秒MOVH,#EH分MOVH,#H点MOVH,#AH号MOVH,#H月MOVH,#CH年MOVH,#HR存放切换标志NORMAL,HOUR,MINUTE,SECOND,YEAR,MONTH,DAYMOVR,#H确定在调时不按键的最长时间秒后返回normAl状态MOVR,#H切换标志MOVH,#H十六进制转换BCD的高位MOVH,#H十六进制转换BCD的低位MOVR,#H调时的位闪烁的时间间隔MOVR,#H用来计数ms的中断次数次则一秒MOVR,#HSETBTR开始计时AGAIN:ACALLPROSHOW显示AJMPAGAINCJNER,#H,SHOWDATE如果r等于就显示日期等于就PROSHOW:显示时钟CJNER,#H,DATE显示程序AJMPSHOWDATEshowdate显示年月日DATE:CJNER,#H,DATEAJMPSHOWDATEDATE:CJNER,#H,SHOWCLOCKAJMPSHOWDATESHOWCLOCK:MOVR,Hshowclock显示时分秒先显示时ACALLPROHTODCJNER,#H,CLKINCRCJNER,#H,CLK若处于调时状态则该位闪烁MOVR,#HCLK:CLRPMOVA,HMOVP,A显示时的低位ACALLDELAYMSCLK:SETBPCLRPMOVA,HMOVP,A显示时的高位ACALLDELAYMSSETBPMOVR,H显示分ACALLPROHTODCJNER,#H,CLKINCRCJNER,#H,CLK若处于调时状态则该位闪MOVR,#HCLK:CLRPMOVA,HMOVP,A显示分的低位ACALLDELAYMSCLK:SETBPCLRPMOVA,HMOVP,A显示分的高位ACALLDELAYMSSETBPMOVR,H显示秒ACALLPROHTODCJNER,#H,CLKINCRCJNER,#H,CLK若处于调时状态则该位闪烁MOVR,#HCLK:CLRPMOVA,HMOVP,A显示秒的低位ACALLDELAYMSCLK:SETBPCLRPMOVA,HMOVP,A显示秒的高位ACALLDELAYMSSETBPRETSHOWDATE:MOVR,H显示年ACALLPROHTODCJNER,#H,DAYINCRCJNER,#H,DAY若处于调时状态则该位闪烁MOVR,#HDAY:CLRPMOVP,H显示年的低位ACALLDELAYMSDAY:SETBPCLRPMOVP,H显示年的高位ACALLDELAYMSSETBPMOVR,H显示月ACALLPROHTODCJNER,#H,MONTHINCRCJNER,#H,MONTH若处于调时状态则该位闪烁MOVR,#HMONTH:CLRPMOVP,H显示月的低位ACALLDELAYMSMONTH:SETBPCLRPMOVP,H显示月的高位ACALLDELAYMSSETBPMOVR,H显示日ACALLPROHTODCJNER,#H,YEARINCRCJNER,#H,YEAR若处于调时状态则该位闪烁MOVR,#HYEAR:CLRPMOVP,HACALLDELAYMSYEAR:SETBPCLRPMOVP,HACALLDELAYMSSETBPRETPROHTOD:PUSHACC十六进制数转换成bcd码,且可以直接输出p口MOVA,RMOVB,#AHDIVABMOVDPTR,#HMOVCA,ADPTRMOVH,AMOVA,BMOVCA,ADPTRMOVH,APOPACCRETDELAYMS:DELAYMSMOVH,#HDELAY:MOVH,#FFHDELAY:DJNZH,DELAYDJNZH,DELAYRETPROINT:REX切换键中断程序MOVR,#HACALLPROSHOWMOVC,PJCIEXITMOVR,#HINCRCJNER,#H,IEXITMOVR,#HINT:VC,PJCINTACALLPROSHOWAJMPINTINT:ALLPROSHOWIEXIT:BEXRETIPROINTC:XACALLPROSHOWMOVC,PJCIEXITLCALLISYEAR判断平年闰年LCALLISMONTH判断月份确定最大日数MOVR,#HCJNER,#H,NEXT若不是调时状态按此键就是切换显示日期、时钟INCRCJNER,#H,IEXITMOVR,#HAJMPIEXITNEXT:OVR,#HCJNER,#H,NEXT修改秒位INCHMOVA,HCJNEA,#CH,INT遇变MOVH,#HAJMPIEXITNEXT:NER,#H,NEXT修改分位INCHMOVA,HCJNEA,#CH,INT遇变MOVH,#HAJMPIEXITNEXT:CJNER,#H,NEXT修改时位INCHMOVA,HCJNEA,#H,INT遇变MOVH,#HAJMPIEXITNEXT:CJNER,#H,NEXT修改日INCHMOVA,HCJNEA,H,INT到月底就返回月初MOVH,#HAJMPIEXITNEXT:CJNER,#H,NEXT修改月INCHMOVA,HCJNEA,#DH,INT十二月过后就跳回月MOVH,#HAJMPIEXITNEXT:CJNER,#H,INT修改年INCHMOVA,HCJNEA,#H,INTMOVH,#HINT:MOVC,PJCINTACALLPROSHOWAJMPINTINT:ACALLPROSHOWIEXIT:SETBEXRETIPROTIME:MOVTMOD,#HMOVTH,#CH定时器初始化MOVTL,#HSETBTRNCRCJNER,#cH,EXITMOVR,#H计满秒则清零CJNER,#H,DIAOSHIAJMPNORMALDIAOSHI:INCR调时不按键的最长时间为秒在此期间又键按下重新计时CJNER,#AH,EXITMOVR,#H到秒则返回正常显示状态MOVR,#HAJMPEXITNORMAL:ACALLISYEAR判断平闰年返回标志H为平年为闰年ACALLISMONTH判断哪个月返回该月的最大日数存放在HNCHMOVA,H秒加一CJNEA,#CH,EXITMOVH,#HINCH分加一MOVA,HCJNEA,#CH,EXITMOVH,#HINCH时加一MOVA,HCJNEA,#H,EXITMOVH,#HINCH日加一MOVA,HCJNEA,H,EXITMOVH,#HINCH月加一MOVA,HCJNEA,#DH,EXITMOVH,#HINCH年加一MOVA,HCJNEA,#H,EXITMOVH,#HEXIT:RETIISYEAR:MOVA,H判断平闰年MOVB,#HDIVABMOVA,BCJNEA,#H,EXITYEARMOVH,#H闰年SJMPEXITYEAREXITYEAR:MOVH,#H平年EXITYEAR:RETIMOVA,H开始检查月份CJNEA,#H,NEXTMON判断二月CJNER,#H,RUNNIANMOVH,#DH平年为天赋给HAJMPEXITMONTHRUNNIAN:MOVH,#EH闰年为天赋天给HAJMPEXITMONTHNEXTMON:CJNEA,#H,NEXTMONAJMPXIAOYUENEXTMON:CJNEA,#H,NEXTMONAJMPXIAOYUENEXTMON:CJNEA,#H,NEXTMONAJMPXIAOYUENEXTMON:CJNEA,#BH,DAYUEXIAOYUE:MOVH,#FH四六九十一月是小月天但应该赋天给比较值HAJMPEXITMONTHDAYUE:MOVH,#H其他月份为大月天赋天给HEXITMONTH:RETIEND十(设计体会本次课程设计我学会了系统地设计一个具体的工程设计样品了解了具体的设计过程。他包括前期的设计准备知识、相关电路和器件特性、具体实现算法的设计、相关程序实现、调试等过程。在这个过程中我知道了查阅相关资料的重要性也累计了许多电路和逻辑器件的知识。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/21

太原理工大学信息-单片机-电子万年历

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利