多功能万年历.docx

上传人:b****5 文档编号:6144177 上传时间:2023-01-04 格式:DOCX 页数:12 大小:21.19KB
下载 相关 举报
多功能万年历.docx_第1页
第1页 / 共12页
多功能万年历.docx_第2页
第2页 / 共12页
多功能万年历.docx_第3页
第3页 / 共12页
多功能万年历.docx_第4页
第4页 / 共12页
多功能万年历.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

多功能万年历.docx

《多功能万年历.docx》由会员分享,可在线阅读,更多相关《多功能万年历.docx(12页珍藏版)》请在冰豆网上搜索。

多功能万年历.docx

多功能万年历

多功能万年历

各位读友大家好,此文档由网络收集而来,欢迎您下载,谢谢

  篇一:

多功能万年历毕业设计(终稿)

  目录

  引言......................................................................1

  1系统功能与方案论证......................................................2

  系统功能...........................................................2

  系统基本方案选择和论证............................................2

  单片机芯片的选择方案和论证...................................2

  显示模块选择方案和论证.......................................3

  时钟芯片的选择方案和论证.....................................3

  温度传感器的选择方案与论证...................................3

  电路设计最终方案决定..............................................4

  2系统的硬件设计与实现....................................................4

  电路设计框图......................................................4

  系统硬件概述......................................................4

  各系统电路及工作原理..............................................5

  AT89S52单片机最小系统设计...................................5

  时钟电路模块的设计...........................................6

  温度采集电路的设计...........................................8

  LCD1602液晶显示模块设计.....................................8

  电源电路....................................................10

  闹钟电路设计................................................10

  键盘输入电路................................................11

  3软件设计...............................................................11

  主程序框图...........................................................12

  DS1302时间处理...................................................12

  环境温度采集.....................................................15

  键盘扫描.........................................................15

  音乐播放.........................................................15

  公历转农历.......................................................15

  结束语...................................................................17

  参考文献.................................................................18

  附录.....................................................................19

  附录A程序...........................................................19

  附录B原理图.........................................................41

  致谢.....................................................................41

  多功能万年历的设计

  摘要:

本设计采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LCD显示电路、键盘电路,使人机交互简便易行,此外还结合音乐闹铃电路、温度采集电路和供电电路。

本方案设计出的万年历可以显示日期、时间、温度、农历,并且设置了音乐闹铃功能。

该万年历可以应用于一般的生活和工作中,也可以通过改装,提高性能,增添新功能,从而给人们的生活和工作带来方便。

  关键词:

万年历;AT89S52;LCD1602;时钟日历芯片DS1302;音乐闹钟

  TheMulti-functionalCalendarDesign

  naAbstract:

Thisdesignhasadoptedbytheextensiveuseofsinglechipmicrocomputerasthecore.HardwareandsoftwarecombinationmakethehardwarepartsgreatlysimplifiedandimprovethestabilityoftheuseofLCDdisplaycircuit,keyboardcircuitmakestheinformationexchangesimple.Inaddition,thedesigniscombinedwithmusicalarmcircuit,temperatureacquisitioncircuitandpowersupplycircuit.Itcanshowacalendardate,time,temperature,thelunarandsetupmusicalarmfunction.Ononehangthecalendarcanbeappliedtogenerallifeandwork,ontheotherhang,itcanimproveperformancebymodificationtoaddnewfunctions,sothatitcanbringmoreconveniencetopeople’slifeandwork.Keywords:

calendar;AT89S52;LCD1602;clockcalendarchipDS1302;musicalarmclock.

  引言

  电子万年历是实现对年、月、日、时、分、秒数字显示的计时装置,广泛用于个人、家庭、车站、码头、办公室、银行大厅等场所,成为人们日常生活中的必需品。

数字集

  成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。

钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的电子万年历精度高,功能易于扩展,可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯等电路。

因此,研究电子万年历及扩大其应用有着非常现实的意义。

  1系统功能与方案论证

  系统功能

  ·LCD显示年、月、日、时、分、秒、星期、温度、农历等信息

  ·手动调整年、月、日、时、分、星期、温度上限、闹铃时间

  ·温度报警

  ·闹铃播放音乐

  ·日历时间掉电保护

  ·公历与农历自动关联

  ·闹铃可选择关闭、每天循环或只响应一次三种模式

  ·可选用USB、直流12V或5V电源或交流9V电源对电路进行供电

  系统基本方案选择和论证

  由于现在市面上的电子万年历的种类比较多,因此到底选择什么样的方案在设计中是至关重要的。

正确地选择方案就可以使产品更加人性化,并且可以减小开发的难度,缩短开发的周期,降低产品的成本等等,因此就会被人们普遍接受,并且能够更快地将产品推向市场实现其自身的价值。

  单片机芯片的选择方案和论证

  方案一:

  采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,在烧写程序时需要专门的下载器。

  方案二:

  采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51

  系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能时,烧写程序方面,再加上本系统程序较大,需要较大的存储空间,因此选择采用AT89S52作为主控制系统。

  显示模块选择方案和论证

  方案一:

  采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

但所需数码管太多,布线和焊接困难极易出错,因此不采用LED数码管作为显示。

  方案二:

  采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。

  方案三:

  采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字符,显示多样,清晰可见,但是价格贵,需要的接口线多,本设计所需显示的内容较多。

所以在此设计中采用LCD1602液晶显示屏。

  时钟芯片的选择方案和论证

  方案一:

  直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。

采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。

  方案二:

  采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,31×8位的RAM做为数据暂存区,工作电压~范围内,时耗电小于300nA。

  温度传感器的选择方案与论证

  方案一:

  使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。

  此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。

  方案二:

  采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。

另外,数字式温度传感器还具有测量精度高、测量范围广等优点。

  电路设计最终方案决定

  综上各方案所述,对此次作品的方案选定:

采用AT89S52作为主控制系统;DS1302实现时钟;数字式温度传感器;LCD1602字符液晶显示屏作为显示。

  2系统的硬件设计与实现

  电路设计框图

  图1系统框图

  系统硬件概述

  本设计以AT89S52单片机为核心,构成单片机控制电路,结合DS1302时钟芯片显示公历的年、月、日、星期、时、分、秒和农历的月、日,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示器显示出来。

键盘输入由四个按键来实现,用这四个按键可以对日期、时间、星期、温度报警上限进行调整,并可以对闹铃的开关和闹铃的

  篇二:

(多功能电子万年历开题报告)

  西北民族大学

  毕业论文(设计)开题报告

  论文(设计)名称多功能电子万年历论文(设计)起止时间—月日姓名丁永亮学号学院电气工程学院专业班级09自动化

(2)班指导教师王涛

  说明:

  1.本报告必须由承担毕业论文(设计)课程任务的学生在正式开始做论文(设计)前独立撰写完成,交指导教师审阅、学院审查。

  2.每篇毕业论文(设计)课题撰写本报告一份,作为指导教师、学院审查学生能否承担该毕业论文(设计)课题任务的依据,并接受学校的抽查。

  篇三:

下面是一个多功能的电子万年历的程序

  /************************************************

  下面是一个多功能的电子万年历的程序。

  主要功能:

  1、显示当前的日期及标准北京时间

  2、实时检测当前温度并通过1602显示出来

  3、具有可调的闹钟功能,通过按键调整闹钟的起

  闹时间

  4、通过按键实现画面的切换

  ************************************************/

  #include

  #include

  #defineucharunsignedchar

  #defineuintunsignedint

  ucharcodedigit={“0123456789”};//定义字符数组显示数字

  ucharcodeError=“Error!

Check!

”;//说明没有检测到DS18B20

  ucharcodetable=“AlarmClock”;

  ucharcodetable1=“0123456789”;

  ucharcodetable2=“WEEK”;

  ucharcodetable3=“Todayisfine!

”;

  ucharcodetable4=“HELLO!

”;

  ucharcodetable5=“Madebyxiaoyou”;

  ucharcodetable6=“Happynewyear!

!

”;//

  ucharcodetable7=“Valentine’sDay”;//

  /*ucharcodetable8=“QingMingjie!

”;//

  ucharcodetable9=“HappyLaborDay!

”;//

  ucharcodetable10=“DuanWujie!

”;//

  ucharcodetable11=“Armyday!

”;//

  ucharcodetable12=“Teacher’sDay!

”;//

  ucharcodetable13=“NationalDay!

”;//

  /*******************************************************************************

  以下是对液晶模块的操作程序

  *******************************************************************************/

  sbitRS=P0_;//寄存器选择位,将RS位定义为引脚

  sbitRW=P0_;//读写选择位,将RW3;

  sbitACC0=ACC_;

  sbitACC7=ACC_;

  uchartime;//设置全局变量,专门用于严格延时

  staticucharx=0x08,y=30;

  uchart_sec,sec1,sec2;

  uchart_min,min1,min2;

  uchart_hour,hour1,hour2;

  uchart_mon,mon1,mon2;

  uchart_day,day1,day2;

  uchart_year,year1,year2;

  ucharweek,week1;

  ucharcom,inf;

  voidtixing(unsignedcharmm,unsigneddd);

  voidshow();

  voiddelay1(uchart)

  {

  uchara,b;

  for(a=t;a>0;a--)

  for(b=110;b>0;b--);

  }

  /*****************************************************

  函数功能:

延时1ms

  (3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒

  ***************************************************/

  voiddelay1ms()

  {

  uchari,j;

  for(i=0;i<10;i++)

  for(j=0;j<33;j++)

  ;

  }

  /*****************************************************

  函数功能:

延时若干毫秒

  入口参数:

n

  ***************************************************/

  voiddelaynms(ucharn)

  {

  uchari;

  for(i=0;i

  delay1ms();

  }

  /*****************************************************

  函数功能:

判断液晶模块的忙碌状态

  返回值:

result。

result=1,忙碌;result=0,不忙

  ***************************************************/

  bitBusyTest(void)

  {

  bitresult;

  RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态

  RW=1;

  E=1;//E=1,才允许读写

  _nop_();//空操作

  _nop_();

  _nop_();

  _nop_();//空操作四个机器周期,给硬件反应时间

  //将忙碌标志电平赋给result

  E=0;//将E恢复低电平

  returnresult;

  }

  /*****************************************************

  函数功能:

将模式设置指令或显示地址写入液晶模块

  入口参数:

dictate

  ***************************************************/

  voidWriteInstruction(uchardictate)

  {

  while(BusyTest()==1);//如果忙就等待

  RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;

  E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,_nop_();

  _nop_();

  _nop_();//就是让E从0到1发生正跳变,所以应先置”0”_nop_();

  _nop_();//空操作两个机器周期,给硬件反应时间P2=dictate;//将数据送入P0口,即写入指令或地址_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间E=1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令

  }

  /*****************************************************

  函数功能:

指定字符显示的实际地址

  入口参数:

x

  ***************************************************/

  voidWriteAddress(unsignedcharx)

  {

  WriteInstruction(x|0x80);//显示位置的确定方法规定为”80H+地址码x”

  }

  /*****************************************************

  函数功能:

将数据(字符的标准ASCII码)写入液晶模块

  入口参数:

y(为字符常量)

  ***************************************************/

  voidWriteData(uchary)

  {

  while(BusyTest()==1);

  RS=1;//RS为高电平,RW为低电平时,可以写入数据

  RW=0;

  E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,

  //就是让E从0到1发生正跳变,所以应先置”0”

  P2=y;//将数据送入P0口,即将数据写入液晶模块

  _nop_();

  _nop_();

  _nop_();

  _nop_();//空操作四个机器周期,给硬件反应时间

  E=1;//E置高电平

  _nop_();

  _nop_();

  _nop_();

  _nop_();//空操作四个机器周期,给硬件反应时间

  E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}

  /*****************************************************

  函数功能:

对LCD的显示模式进行初始化设置

  *******

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1