文档库 最新最全的文档下载
当前位置:文档库 › 阴阳干支万年历

阴阳干支万年历

阴阳干支万年历
阴阳干支万年历

电子万年历设计

课程论文论文题目基于单片机的电子万年历设计 课程名称单片机原理及接口技术 专业年级 2014级自动化3班 学生姓名孙宏远贾腾飞 学号 2016年12 月3 日

摘要: 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。。 关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。串口通信。 一:引言 本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。 二:硬件设计: 2.0.硬件的设计总框图 2.1 DS1032时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。芯片如图。 DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据。 2.2 LCD1602与AT89C52的引脚接线 LCD1602采用总线式与单片机相连,AT89c52的P1口直接与液晶模块的数据总线D0~D7相连;P2 口的0,1,2脚分别与液晶模块的RS、RW、E脚相连。滑动变阻器用于调整液晶显示的亮度。电路如图

单片机AT89c52电子万年历设计(带程序)

目录 一、摘要 (2) 二、设计 (3) 三、设计任务. (2) 四、设计要求 (3) 五、系统方案设计 (3) 1、系统 (3) 1)原理构成框图 (3) 2)设计思路 (4) 2、主程序设计 (4) 3、中断程序设计 (5) 5、时间调整电路的设计 (7) 六、系统评价 (7) 七、c语言程序注释及说明 (8)

一、摘要 单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。本设计是基于AVR单片机强大的控制功能制作而成的电子万年历,该电子万年历包括四大功能:实时显示年、月、日、时、分、秒、星期;人为的校正年、月、日、时、分、星期;第一次开机显示12-00-30。 二、设计目的 1、掌握C52程序用于实践并实现相应的功能; 2、掌握时钟程序的使用方法; 3、掌握时间函数的使用方法; 4、掌握键盘的程序使用方法; 三、设计任务 通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期等功能,并能准确计算闰年闰月的显示,

七个按钮连接P0口可以精确调整每一个时间数值,通过对所设计的万年历时钟电路进行实验测试,达到了动态显示时间,随时调整时间等技术指标。 四、设计要求 (1)能够准确的计时,时间可在数码管上显示出来,默认显示为时、分、秒,每隔一分钟自动显示年、月、日及星期,也可通过按键控制显示,并可通过按键调节时间。 (2)第一次开机显示12-30-30。 (3)每半秒led彩灯闪烁一次 五、系统方案设计: 1、系统总体设计: 1) 原理构成框图 本设计用AT89C52作为核心控制部分,外接晶振电路与复位电路,以两个四位数码管作为显示部分,开关控制显示时间与日期,具体框图如图1所示,数码管框图如图2所示:

电子万年历

河北科技师范学院课程设计说明书 题目: 学院(系): 年级专业: 学号: 学生姓名: 指导教师:

摘要 本设计是电子万年历。具备三个功能:能显示:年、月、日、时、分、秒及星期信息,并具有可调整日期和时间功能。 我选用的是单片机8052来实现电子万年历的功能。该电子万年历能够成功实现时钟运行,调整,显示年月日时分秒及星期,温度等信息。 该电子万年历使用12MHZ晶振与单片机8052相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。 电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。所以在该设计与制作中我选用了单片机8052,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, 单片机8052的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。 因此,采用单片机8052原理制作的电子万年历,不仅仅在原理上能够成功实现计时等功能,也更经济,更适用,更符合我们实际生活的需要,对我们大学生来说也更加有用。

单片机电子万年历含程序

CHANGZHOU INSTITUTE OF TECHNOLOGY 科研实践 项目名称:电子万年历设计 二级学院:电子信息与电气工程学院 专业:电气工程及其自动化班级: 10 电二 学生姓名:祝学东学号: 指导教师:庄志红职称:副教授 起止时间: 2013年12月9日—2013年12月20日 摘要 本设计是电子万年历。具备三个功能:能显示:年、月、日、时、分、秒、星期,并具有可调整日期和时间功能。 该电子万年历使用12MHZ晶振与单片机AT89C52相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。 电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

电子万年历设计(基于AT89C51单片机和DS1302时钟芯片)1

随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。 二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步…… 我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。 本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主要器件的基本功能和作用。 除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。AT89C51是由ATMEL 公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。 本文介绍了基于AT89C51单片机设计的电子万年历。 首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优

电子万年历

第一章绪论 1.1设计背景 从改革开放开始,电子工业已成为科技创新的重要领域,我国的电子产业也在新世纪开始高速发展,无论是产业结构,产业规模和技术水平都有了十分明显的进步和提升,而且电子产品在各个领域都有开创性的发展,使我们的生活变得更加智能化,为我国经济的发展做出了杰出的贡献。其中,单片机的大规模使用为我们的生活创造了极大的便利,可以说无时无刻不在影响着我们的生活。何为单片机,单片机全名为单片微控制器,它的结构组成就是将微型计算机的基本功能部件全都集成在一个半导体芯片上。尽管仅仅是一个芯片,但从单片机的构成和功能的角度来看充分具备一个计算机系统的中央处理功能。最重要的优点是,单片机体积小巧,可以任意嵌入到任何符合条件的应用系统中作为中央处理器进行指挥决策,是系统实现完全的智能化。当今世界,单片机已经无时无刻不在我们生活的周边存在,各类电子产品几乎都以单片机作为主控核心,通过单片机的控制使之更加智能快速,使我们的生活更加舒畅和方便。正是随着日常周边科学技术的进步,人们对待生活用品的要求也在逐步提高,时钟亦是如此,从古至今,人们对时间的概念就非常重视,从日晷到摆钟,经历了百年的发展,如今,人们对时钟的要求不仅仅是能够知道时间,还需要能够知道日期,星期,节气,天气情况等等,以便于满足人们对生活的各种需要,由此电子万年历就诞生了,正是因为电子万年历功能的多样性,使它在应用在各种场合,人们对它的需求量也就却来越大,电子万年历的发展空间也越来越广阔,成为了一项重要的产业。 1.2设计的目的及意义 中国从古至今就有重视时间的好传统,农民通过日照和鸡叫开始一天的劳作,商人通过古老的计时工具来确认是否应该开门迎客,学士知道时间后则开始一天的读书学习,这种传统一直绵延至今。当今社会,人们的生活节奏飞快,在工作中讲究快速和效率,需要在最短的时间内完成最合理的工作要求,所以人们通常需要在最短的时间内了解到最丰富的信息,人们不满足于只能看到此时此刻的时间信息,还需要了解过去和未来几天内的时间情况,包括农历,天

电子万年历设计

课程论文 论文题目基于单片机的电子万年历设计 课程名称单片机原理及接口技术 专业年级2014级自动化3班 学生姓名孙宏远贾腾飞 学号 2014485420144848 2016年12 月3 日

摘要: 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。。 关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。串口通信。一:引言 本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。 二:硬件设计: 2.0.硬件的设计总框图 2.1 DS1032时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。芯片如图。 DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存

万年历汇编语言程序

F_S bit 00H ;计时1S的标志位 ORG 0000H LJMP START ORG 001BH LJMP PINTT1 ORG 0003H LJMP PINT0 ORG 0013H LJMP PINT1 ORG 0030H START: CLR P1.4 MOV SP,#60H MOV TMOD,#10H ;设置定时器T1方式字 MOV DPTR,#(65536-50000) MOV TH1,DPH MOV TL1,DPL SETB EA SETB ET1 SETB TR1 ;启动定时器T1 SETB EX0 ;启动外部中断0 SETB IT0 ;设定外部中断0为下降沿 MOV IP,#01H ;设定外部中断0优先级最高 SETB EX1 SETB IT1 MOV R4,#20 MAIN: JNB F_S,ABCD ; 标志位为0(定时时间为1s),则跳转 CLR F_S ;标志位置零 LCALL JISHI ;调用计时ABCD: MOV 53H,#0FH ; MOV 40H,#35H MOV 41H,#00H MOV 42H,#06H LCALL DISP ;调用显示程序 ;LCALL KEYS SJMP MAIN ;定时中断程序 PINTT1: MOV DPTR,#(65536-50000) MOV TH1,DPH ;重新设置初值 MOV TL1,DPL DJNZ R4,ABC ;是否为1S?,不是则返回 MOV R4,#20 ;重新设置计数初值 SETB F_S ;标志位置1 ABC: RETI ;外部中断0程序,用于调节年月日************************************ ********* PINT0: CLR EA ;关中断 CLR TR1 ;关定时器 PUSH ACC PUSH PSW PUSH 49H PUSH 40H PUSH 41H PUSH 42H PUSH 43H ;MOV 55H,#00H ;给55H初值,刚进入中断时使显示秒的数码管闪亮MOV 55H,#06H

LCD12864单片机电子万年历程序

********************************* #include<> #include<> #define LCD_Data P0 #define uchar unsigned char unsigned char sec,min,hour,day,month,year,cen,week, next,aa,bb,cc,dd,mm,temp0,LunarMonth, LunarDay,LunarYear; int temp; uchar tt=1; bit c_moon; bit cenbit=1; bit w; sbit LCD_RS=P2^0; sbit LCD_RW=P2^1; sbit LCD_E=P2^2; sbit PSB=P2^3; sbit DS1302_CLK=P3^7; sbit DS1302_IO=P3^6; sbit DS1302_RST=P3^5; sbit DS18B20=P2^5; sbit speak=P2^7; sbit SetKey=P1^4; // 按键功 能:设置 sbit SureKey=P1^5; // 按键功 能:确认 sbit PlusKey=P1^6; // 按键功 能:加 sbit ReduceKey=P1^7; // 按键功 能:减 sbit scl=P1^1; sbit sda=P1^0; void DisplayShengXiao(void); void delay(unsigned int a) // 延时 1MS/ 次 { unsigned char i; while(--a) { for(i=0;i<125;i++) ; } }

万年历说明书

万年历说明书 2、定闹的设置:按“D”键,进入定闹的设置,月数码管位置显示定闹序号,序号闪烁,按“B”或“C”键,可选择定闹1~4中的某个设置;再按“D”键时闪烁,按“B”或“C”键其调整为设置值;再按“D”键分闪烁,按“B”或“C”键其调整为设置值;再按“D”键,在日数码管位置显示“on”或“--”的定闹状态并闪烁,,按“B”或“C”键,关闭或开启此定闹,再按“D”键,退出定闹的设置。注:4个定闹中只要有1个或1个以上的定闹状态设置为开启,定闹指示灯即亮,只有所有定闹的状态都为关闭时,定闹指示灯才灭。 3、整点闹铃的设置:在正常运行状态下,按一下“B”键,面板上的整点闹指示灯“亮”表示整点闹铃已开启,反之,灯“灭”为关闭。 数码万年历使用说明书 作者pupaishop浏览213发布时间11/09/24 1.按键阐明:报时/退出键、设置键、上调键、下调/定闹键、流水键、模式/定闹键(模式键只在选为倒计天或逆计天才有)。 2.时光调剂: ①反常走时状态下,按“设置”键进进时间设置状态,同时暮年份“闪

耀”,可按“上调”或“下调”键建改暮年份,修正佳先按“设置”键将闪烁位移到公历“月”,按“上调”或“下调”键建改月份;用同样的方式可对于日、时、分、秒入止设置;12个公历节日及正计地数、24个农历节气及正计天数、12生肖、12星座、礼拜、工历月、日将自静追随母历的变更。 ②该秒设定佳先,再按“设置”键退出时间设置,归到正常时间状态。 3.12/24小时制切换: 在反常走时状态,按住“上调”键3秒钟,则可进止12小时制取24小时造的切换。 下电单位时,否默以为24大时造或者12大时造,由选项决议。4.启/闭零面报时: 在正常走时状态,按一下“上调”键,则可以挨开整点报时指导灯和整点报时功能;按一下“上调”键,则可以关关整点报时指导灯战整点报时功能。 5.地数正计时或逆计时(由选项决议) 在正常时间状态下,按“模式”键进入“天数计时状态”,在温度位显示“d1”,计时天数位若显示“????”,表示计时“无效”;若显示详细数字表示有效,按“上调”键可以切换“有效”/“无效”,按“设置”键进入天数设定,且右边第一位(千位)闪烁,按“上调”或“下调”键修改内容,按“设置”键挪动闪烁位置到第两位(百位),按“上调”或“下调”键修改闪烁位的内容,同样方式可设置十位取个位。

电子万年历

Tianjin University of Technology and Education 课程设计 学院:电子工程学院 班级:应电1211班 学生姓名:马登桂(01) 张婵(20) 李春鹏(22) 指导教师:马宁梁彩凤 2015年7月

天津职业技术师范大学 应电专业课程设计任务书 电子工程学院应电1211 班学生: 课程设计课题: 一、课程设计工作日自 2015 年 7 月 6 日至 2015 年 7 月 24日 二、同组学生: 三、课程设计任务要求: 要求全班同学每3人一组自由分组,每组在下列题目中任选2题,完成电路设计仿真、硬件焊接以及软件的编程与调试(统一采用AT89系列单片机): 题目1:基于单片机的多功能计算器设计题目(显示设备采用1602液晶模块) 基本要求:以4×4键盘作为输入,通过软件设计实现加减乘除计算功能,并显示; 扩展功能:进一步实现乘方、开方、对数、阶乘等科学计算功能。 题目2:基于单片机的电子万年历设计(显示设备采用1602液晶模块) 基本要求:通过软件设计实现年月日时间显示及时间设定等功能; 扩展要求:进一步实现定时闹钟功能。 题目3:基于单片机的温度采集显示电路设计(显示设备采用4位数码管) 基本要求:实现用DS18B20采集温度,并实时显示; 扩展要求:进一步实现预设温度告警功能。 指导教师:梁彩凤、马宁

目录

1基于单片机的电子万年历设计 1.1设计任务 基本要求:通过软件设计实现年月日时间显示及时间设定等功能; 扩展要求:进一步实现定时闹钟功能。 1.2 设计方案 1.2.1总体方框图 图1.1总体方框图 1.2.2整体功能说明: 本论文一主要研究基于单片机的万年历设计。当程序执行后,LCD显示即时时间、年月日、星期、温度。设置3个操作键:K1:设置键;K2:上调键;K3:下调键。本设计的主要内容:1、了解单片机技术的发展现状,熟悉万年历各模块的工作原理;2、选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和C语言的编程规则,编写出相应模块的应用程序;4、分别在各自的模块中调试出对应的功能,在Proteus软件上进行仿真。 1.3电路设计与分析

电子万年历

第一章绪论 1.1 设计背景 从改革开放开始,电子工业已成为科技创新的重要领域,我国的电子产业也在新世纪开始高速发展,无论是产业结构,产业规模和技术水平都有了十分明显的进步和提升,而且电子产品在各个领域都有开创性的发展,使我们的生活变得更加智能化,为我国经济的发展做出了杰出的贡献。其中,单片机的大规模使用为我们的生活创造了极大的便利,可以说无时无刻不在影响着我们的生活。何为单片机,单片机全名为单片微控制器,它的结构组成就是将微型计算机的基本功能部件全都集成在一个半导体芯片上。尽管仅仅是一个芯片,但从单片机的构成和功能的角度来看充分具备一个计算机系统的中央处理功能。最重要的优点是,单片机体积小巧,可以任意嵌入到任何符合条件的应用系统中作为中央处理器进行指挥决策,是系统实现完全的智能化。当今世界,单片机已经无时无刻不在我们生活的周边存在,各类电子产品几乎都以单片机作为主控核心,通过单片机的控制使之更加智能快速,使我们的生活更加舒畅和方便。正是随着日常周边科学技术的进步,人们对待生活用品的要求也在逐步提高,时钟亦是如此,从古至今,人们对时间的概念就非常重视,从日晷到摆钟,经历了百年的发展,如今,人们对时钟的要求不仅仅是能够知道时间,还需要能够知道日期,星期,节气,天气情况等等,以便于满足人们对生活的各种需要,由此电子万年历就诞生了,正是因为电子万年历功能的多样性,使它在应用在各种场合,人们对它的需求量也就却来越大,电子万年历的发展空间也越来越广阔,成为了一项重要的产业。 1.2设计的目的及意义 中国从古至今就有重视时间的好传统,农民通过日照和鸡叫开始一天的劳作,商人通过古老的计时工具来确认是否应该开门迎客,学士知道时间后则开始一天的读书学习,这种传统一直绵延至今。当今社会,人们的生活节奏飞快,在工作中讲究快速和效率,需要在最短的时间内完成最合理的工作要求,所以人们通常需要在最短的时间内了解到最丰富的信息,人们不满足于只能看到此时此刻的时间信息,还需要了解过去和未来几天内的时间情况,包括农历,天气,湿度等等。而电子万年历不同于普通的时钟,它在显示时间的同时也能同步显示出年月份,

电子时钟万年历程序

#include //调用单片机头文件 #define uchar unsigned char //无符号字符型宏定义变量范围0~255 #define uint unsigned int //无符号整型宏定义变量范围0~65535 #include "eeprom52.h" #include "nongli.h" bit flag_200ms ; bit flag_100ms ; sbit beep = P3^7; //蜂鸣器定义 bit flag_beep_en; uint clock_value; //用作闹钟用的 sbit dq = P3^1; //18b20 IO口的定义 uint temperature ; //温度变量 uchar flag_nl; //农历阳历显示标志位 uchar menu_1,menu_2; uchar key_time,flag_value; //用做连加的中间变量 bit key_500ms ; uchar n_nian,n_yue,n_ri; //农历显示的函数 #include "ds1302.h" #include "lcd1602.h" /******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, fen1); byte_write(0x2001, shi1); byte_write(0x2002, open1); byte_write(0x2058, a_a); } /******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom()

电子万年历

河南理工大学万方科 技学院 单片机实验设计 姓名:李浩 学号:0628040052 专业班级:06计算机科学与技术-1班 指导老师:苏百顺 2008年月日

摘要 本设计是电子万年历。具备三个功能:能显示:年、月、日、时、分、秒及星期信息,并具有可调整日期和时间功能。 我选用的是单片机8052来实现电子万年历的功能。该电子万年历能够成功实现时钟运行,调整,显示年月日时分秒及星期,温度等信息。 该电子万年历使用12MHZ晶振与单片机8052相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。 电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。所以在该设计与制作中我选用了单片机8052,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, 单片机8052的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。 因此,采用单片机8052原理制作的电子万年历,不仅仅在原理上能够成功实现计时等功能,也更经济,更适用,更符合我们实际生活的需要,对我们大学生来说也更加有用。

数码管万年历毕业设计(带C语言程序)

摘要 单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。单片机是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。系统由主控制器AT89C51、时钟电路DS1302、显示电路、按键电路、和复位电路等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示。

目录 第一章引言 (3) 第二章设计方案论证 (3) 2.1 方案论证与设计………………………………………………………………………. 错误!未定义书签。 2.1.1 控制部分的方案选择 (6) 2.1.2显示部分的方案选择 (6) 2.1.3系统基本方案选择和论证 (6) 2.2单片机原理 (7) 2.3LED显示数码管 (7) 第三章计算部分 (8) 3.1 主要单元电路的器件 (8) 3.1.1 单片机主控制模块 (9) 3.1.2 时钟电路模块 (10) 3.2 其他模块器件 (10) 3.2.1 74hc573 (10) 3.2.3其他元器件 (10) 第四章结构设计部分 (11) 4.1显示部分设计 (11) 4.1.1万年历优化算法 (12) 4.2.1 DS1302 的寄存器 (13) 4.2.2 DS1302 实时显示时间的软硬件 (14) 4.2.3 DS1302 与CPU 的连接 (14) 4.3整体设计 (15) 4.4系统软件设计 (15) 4.4.1程序流程框图 (15) 第五章实验测试部分 (18) 5.1软件测试 (18) 5.2测试结果分析与结论 (18) 5.3 测试结果分析 (18) 5.4 测试结论 (19)

电子万年历的设计

学号201225110207 中州大学 毕业设计(论文) 题目电子万年历的设计 学院工程技术学院 专业应用电子技术年级12班级 2 学生姓名xxx 指导教师孙建延职称副教授 时间2014年12月4日

电子万年历的设计 [摘要]:随着电子技术的迅速发展,特别是随着大规模集成电路的出现,给人类生活带来根本性的改变。尤其是单片机技术的应用产品已走进千家万户。电子万年历的出现给人们的生活带来了诸多方便。电子万年历是一种非常广泛的日常计时工具,在现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于电子万年历采用直观的1602液晶显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。 本万年历的设计采用 C语言,根据功能需求进行程序的编写与调试,保证软硬件正常工作,具有结构简单,成本低廉,显示清晰,稳定可靠等优点。并且可进行扩充,加入闹钟的功能,更加方便于你使用。 [关键词]:单片机 DS18B20 DS1302 1602液晶 PCB

TheDesignOf Electronic Calendar Abstract:With the rapid development of electronic technology, especially along with large scale integrated circuit, the appearance of human life to bring fundamental change. Especially the application of single chip microcomputer products have already walked into the country. The emergence of electronic calendar to the life of people brought many convenient. Electronic calendar is a very wide range of daily timing tool, in modern society is more and more popular. It can be to year, month, day, Sunday, when the clock, minutes and seconds, also has a leap year compensation, etc DuoZhong function, and the DS1302 long service life and small error. For electronic calendar by using object 1602 LCD display, can also shows that year, month, day, Sunday, when, minutes and seconds and temperature, information, but also has time calibration etc. Function. This circuit AT89S52 SCM as the core, low consumption, in 3 V of low-pressure work, voltage can choose 3 ~ 5 V voltage power supply. In the design at the same time the SCM theoretical basis and peripheral expansion knowledge is compared to overall. In the hardware and software design, no good basic knowledge and practical experience is very limited, every function to a need that kind of hardware, and the program this how to write, how to realize the algorithm, not a foundation will not be very good implementation. In the process of program found that by the existing knowledge to finish writing task alone difficulties, the teachers and students of help to finish the program, and the writing of the part. The design of this calendar using C language, according to the function requirements of the procedures to write and debugging, ensure software and hardware normal work, the structure is simple, the cost is low and the show clear, stable and reliable. And can be extended, join the alarm clock function, it is more convenient to use you. Keywords: DS18B20 DS1302 1602LCD PCB SCM

51单片机c语言电子万年历完整程序

该程序为51单片机c语言电子万年历#include"reg52.h" //#include #define uchar unsigned char #define uint unsigned int sbit lcden=P3^4; sbit lcdrs=P3^5; sbit DATA=P0^7; sbit RST=P0^5; sbit SCLK=P0^6; sbit menu=P3^0; //菜单sbit add=P3^1; //加一sbit dec=P3^7; //减一sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; sbit ds=P3^2; //sbit beep=P3^3; uint temp; float f_temp; uint warn_l1=270; uint warn_l2=250; uint warn_h1=300; uint warn_h2=320; uint get_temp(); void delayms(uint x); void write_com(uchar com); void write_data(uchar date);

void init(); void dis_temp(uint t); void Write1302(uchar dat); void WriteSet1302(uchar Cmd,uchar dat); uchar Read1302(void); uchar ReadSet1302(uchar Cmd); void Init_DS1302(void); void DisplaySecond(uchar x); void DisplayMinute(uchar x); void DisplayHour(uchar x); void DisplayDay(uchar x); void DisplayMonth(uchar x); void DisplayYear(uchar x); void DisplayWeek(uchar x); void dis_temp(uint t); void read_date(void); void turn_val(char newval,uchar flag, uchar newaddr,uchar s1num); void key_scan(void); char code table[]="0123456789" ; uchar code table2[]= "TUEWESTHUFRISATSUNMON"; uchar second,minute,hour,day,month,year,week,count=0; uchar ReadValue,num,time; void delayms(uint x) { uint i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } ////////////////////////////////////////////////////////////

电子万年历毕业设计报告

河南机电高等专科学校毕业设计论文 论文题目:电子万年历 系部:自动控制系 专业:计算机控制技术 班级:2007级03班 学生姓名:张钰 学号:071413318 指导教师:徐海刚 2010年 4月 15 日

目录 摘要 (3) 绪论 (5) 第1章设计要求与方案论证 (7) 1.1 引言 (7) 1.2 功能要求 (7) 1.3方案论证 (7) 第2章系统硬件电路设计 (11) 2.1 电路设计 (11) 2.2 系统硬件概述 (15) 2.3主要单元电路的设计 (15) 第3章系统的软件设计 (22) 3.1程序设计 (22) 3.2程序设计流程图 (22) 第4章结束语 (24) 参考文献 (26) 附录(程序清单) (27)

摘要 随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电 子仪器仪表的发展趋势,具有广阔的市场前景。 该电子万年历主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟、LED动态扫描显示屏显示。AT89C51单片机是由Atmel 公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子万年历还具有时间校准等功能。 关键词:时钟电路;时钟芯片DS1302;LED动态扫描;单片机 AT89C51;MAX7219;

电子万年历源程序

电子万年历源程序 IO口程序 #include //*****数码管引脚***** sbit L1 = P2^0。 sbit L2 = P2^1。 sbit L3 = P2^2。 sbit LEDC= P2^3。 #define LED_DA TA P0//按键接口定义#define K_Port P2 sbit K_D = P3^3。 //外部中断1 //*****PCF8563接口定义**** sbit PCF8563CLK=P1^0。 sbit PCF8563SDA=P1^1。// 24c02接口定义 sbit E2PCLK=P1^5。 sbit E2PSDA=P1^6。//蜂鸣器接口定义 sbit BEEP = P1^2 主程序 #include void Delay_1ms(unsigned int time> { unsigned char temp。 while(time--> for(temp=127。temp>0。temp--> _nop_(>。 }//系统初始化 void Sys_Init(> { TMOD=0x01。 TH0=(65535-20000>/256。//给定时器初值。 TL0=(65535-20000>%256。 TR0=1。//启动定时器T0 ET0=1。//允许T0中断 EA=1。 LEDC=0。//138正常工作Beep_Flag=1。//闹铃开 }//刷新数码管显示 void Fresh_Display(> { static unsigned char Num。 unsigned char temp。 static unsigned int Flash_Time。Num++。 if(Num>=8> Num=0。 LED_DATA=0x00。//P0口全部为零 if(Num==0> { L3=1。L2=1。L1=1。 //第八个数码管亮 } else if(Num==1> { L3=1。L2=1。L1=0。//第七个数码管亮 } else if(Num==2> { L3=1。L2=0。L1=1。//第六个数码管亮 } else if(Num==3> { L3=1。L2=0。L1=0。//第五个数码管亮 } else if(Num==4> { L3=0。L2=1。L1=1。//第四个数码管亮 } else if(Num==5> { L3=0。L2=1。L1=0。//第二个数码管亮 } else if(Num==6> { L3=0。L2=0。L1=1。//第一个数码管亮 } else if(Num==7> { L3=0。L2=0。L1=0。//第零个数码亮 } Flash_Time++。

相关文档