基于单片机的电子万年历带计算器ppt
- 格式:ppt
- 大小:3.00 MB
- 文档页数:80
基于单片机的电子万年历设计一、概述随着科技的快速发展和人们对生活品质的追求,电子设备在日常生活中扮演着越来越重要的角色。
电子万年历作为一种集日期、时间显示于一体的实用电子产品,已经深入到人们的日常生活和工作中。
传统的机械式日历已经无法满足现代人对时间精确性和功能多样性的需求,基于单片机的电子万年历设计应运而生,成为了当前研究的热点之一。
基于单片机的电子万年历设计,旨在利用单片机(如STC89CAT89C51等)的强大计算和控制能力,结合液晶显示屏(LCD)、按键输入等外设,实现时间的准确显示、日期的自动更新、闹钟提醒、温度显示等多样化功能。
该设计不仅具有高度的集成性和可靠性,而且能够通过编程实现各种定制化的功能,满足不同用户的需求。
本文将对基于单片机的电子万年历设计进行详细的介绍和分析,包括设计思路、硬件组成、软件编程等方面。
通过本文的阅读,读者可以了解电子万年历的基本原理和设计方法,掌握单片机在电子万年历设计中的应用技巧,为实际的开发工作提供有益的参考和借鉴。
1.1 研究背景与意义随着科技的不断进步,人们日常生活和工作中对于时间的精度和便捷性的要求日益提高。
传统的机械式日历和简单的电子时钟已经无法满足现代生活的需求。
电子万年历作为一种集时间显示、日历查询、定时提醒等多功能于一体的电子装置,在日常生活、工作乃至科研领域都具有广泛的应用价值。
基于单片机的电子万年历设计,不仅可以提供准确的时间显示,还能实现复杂的日期计算、农历显示、节假日提示等功能,极大地提高了时间管理的效率和便捷性。
单片机作为一种集成度高、功耗低、价格适中的微型计算机,非常适合用于小型化、智能化的电子产品设计,如电子万年历。
本研究的意义在于,通过对基于单片机的电子万年历的设计研究,可以推动微型计算机技术和电子时钟技术的融合发展,提升电子产品的智能化水平,满足人们日益增长的生活和工作需求。
同时,该研究还可以为相关领域的技术人员提供参考和借鉴,推动电子万年历产品的不断创新和优化。
基于单片机的万年历单片机课程设计题目基于单片机的万年历目录1 绪论 (1)1.1设计目的 (1)1.2 发展现状 (1)1.3 解决问题 (1)2基于单片机的万年历主要元器件介绍 (2)2.1本设计所需的主要元器件 (2)2.2 STC89C52RC单片机 (2)2.2.1单片机主要特性 (2)2.2.2单片机引脚说明 (4)2.3 DS1302时钟芯片 (4)2.4 LCD1602 (6)2.5独立按键 (7)3基于单片机的万年历的软件设计 (7)3.1 DS1302时钟芯片程序设计 (8)4 总结 (9)参考文献 (11)附录1:总体电路原理图 (12)附录2:总程序 (13)附录3:实物图 (25)1 绪论1.1设计目的培养和锻炼在学习完本课后综合运用所学理论知识,解决实际工程设计和应用问题的能力。
通过课程设计,要求熟悉和掌握仿真系统的软件设计方法、设计步骤,以及硬件的设计方法、设计步骤,得到仿真系统应用方面的初步练习。
本设计主要是采用51单片机来实现。
自己动手设计与制作可以对硬件的结构和功能有更深的认识,并与软件结合,以达到理论与实践更好的结合,进一步提高综合运用所学知识进行设计的能力。
这是对自己大学四年的学习的检验,具有重要的意义。
1.2 发展现状目前市场上的电子万年历并不是采用51单片机作为主控制器的,基于单片机的万年历一般是学生和单片机爱好者在进行设计,谈不上占有市场。
也许就是这样,研究单片机万年历的人不在少数,并且都在努力。
努力不是单方面的,单片机的功能也应该要提高,STC89C52单片机就是这样的例子,其功能虽然没有大幅度提高,但使用起来更方便了。
我相信,在不久的将来肯定会有功能更强大成本更低的单片机出现,给我们的设计带来更多的便利。
1.3 解决问题本课题主要通过单片机的功能和应用,利用Keil[1]编程软件和Proteus仿真软件进行设计,并制作实物。
设计要达到预期的效果要解决以下问题:(1)认真设计好万年历的逻辑原理图;(2) 熟练使用C语言,运用Keil编程软件进行软件设计;(3) 在Proteus仿真平台上,对程序进行编译仿真;(4) 认真仔细地对万年历进行组装焊接;2基于单片机的万年历主要元器件介绍2.1本设计所需的主要元器件(1)单片机:STC89C52RC;(2)时钟芯片:DS1302;(3)液晶:LCD1602;(4)按钮开关。
自己制作的单片机万年历程序+原理图单片机万年历仿真原理图如下仿真Altium Designer画的万年历原理图和PCB图如下:PCB原理图基于51单片机,可以完成时钟显示、公历显示、农历显示、温度显示、闹钟报警定时的LCD时钟PPT内容预览:本设计使用AT89C51来做主控芯片,其强大的功能足够实现我们设计的所有功能。
使用LCD1602的液晶显示器来进行显示。
使用Keil uVision5进行编程。
通过Proteus8.6来进行仿真。
点击一次K1进入时钟设置页面,通过点击K2切换时、秒、分、星期、年、月、日,通过K3与K4实现加减来完成时钟的设置点击两次K1进入闹钟设置页面,通过点击K2切换开关、时、秒、分,通过K3与K4实现加减完成闹钟的设置。
单片机源程序如下注释是很全的#include //调用单片机头文件#define uchar unsigned char //无符号字符型宏定义变量范围0~255#define uint unsigned int //无符号整型宏定义变量范围0~65535#include "eeprom52.h"#include "nongli.h"#include "intrins.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(){fen1 = byte_read(0x2000);shi1 = byte_read(0x2001);open1 = byte_read(0x2002);a_a = byte_read(0x2058);}/**************开机自检eeprom初始化*****************/void init_eeprom(){read_eeprom(); //先读if(a_a != 1) //新的单片机初始单片机内问eeprom{fen1 = 3;shi1 = 8;a_a = 1;write_eeprom(); //保存数据}}/***********************18b20初始化函数*****************************/void init_18b20(){bit q;dq = 1; //把总线拿高delay_uint(1); //15usdq = 0; //给复位脉冲delay_uint(80); //750usdq = 1; //把总线拿高等待delay_uint(10); //110usq = dq; //读取18b20初始化信号delay_uint(20); //200usdq = 1; //把总线拿高释放总线}/*************写18b20内的数据***************/void write_18b20(uchar dat){uchar i;for(i=0;i<8;i++){ //写数据是低位开始dq = 0; //把总线拿低写时间隙开始dq = dat & 0x01; //向18b20总线写数据了delay_uint(5); // 60usdq = 1; //释放总线}}/*************读取18b20内的数据***************/uchar read_18b20(){uchar i,value;for(i=0;i<8;i++){dq = 0; //把总线拿低读时间隙开始value >>= 1; //读数据是低位开始dq = 1; //释放总线if(dq == 1) //开始读写数据value |= 0x80;delay_uint(5); //60us 读一个时间隙最少要保持60us 的时间}return value; //返回数据}/*************读取温度的值读出来的是小数***************/uint read_temp(){uint value;uchar low; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); //初始化18b20write_18b20(0xcc); //跳过64位ROMwrite_18b20(0x44); //启动一次温度转换命令delay_uint(50); //500usinit_18b20(); //初始化18b20write_18b20(0xcc); //跳过64位ROMwrite_18b20(0xbe); //发出读取暂存器命令EA = 0;low = read_18b20(); //读温度低字节value = read_18b20(); //读温度高字节EA = 1;value <<= 8; //把温度的高位左移8位value |= low; //把读出的温度低位放到value的低八位中value *= 0.625; //转换到温度值小数return value; //返回读出的温度带小数}/******************1ms 延时函数*******************/void delay_1ms(uint q){uint i,j;for(i=0;i<>< p=""><>for(j=0;j<120;j++);}/******************写星期函数*******************/void write_week(uchar hang,uchar add,uchar week)//写星期函数{if(hang==1)write_com(0x80+add);elsewrite_com(0x80+0x40+add);。
基于单片机控制的电子万年历设计1设计要求功能:电子万年历能显示阳历、时间、室温,并能表明是否是闰年,通过按键实现切换。
本课题以单片机为核心,设计并制作出智能LCD电子钟,具有以下基本功能:计时、秒、分、时、天、周、月、年;能进行时间、年份、日期、星期显示;能区分是否闰年;能检测室温并显示。
扩展功能部分可以通过控制按键使时间暂停、可以调整校正时间并通过按键切换轮流显示时间、年份、日期、星期。
2方案论证与对比2.1液晶显示器控制方式选择采用LCD液晶显示,具有超精致影像画质、十足平面显示、节省空间、节省能源等优点,但按控制方式不同,LCD可分为被动矩阵式LCD及主动矩阵式LCD两种。
可根据不同需要采用不同的方式。
方案一被动矩阵式LCD被动矩阵式LCD在亮度及可视角方面受到较大的限制,反应速度也较慢。
由于画面质量方面的问题,使得这种显示设备不利于发展为桌面型显示器,但成本低廉。
方案二主动矩阵式LCD目前应用比较广泛的主动矩阵式LCD,也称TFT-LCD(Thin Film Transistor-LCD,薄膜晶体管LCD)。
TFT液晶显示器是在画面中的每个像素内建晶体管,可使亮度更明亮、色彩更丰富及更宽广的可视面积。
与CRT显示器相比,LCD显示器的平面显示技术体现为较少的零件、占据较少的桌面及耗电量较小,但CRT技术较为稳定成熟。
相比之下,本设计当中选用方案二主动矩阵式LCD方式。
2.2 并行接口动态显示电路选择可以采取串行接口动态显示电路或者并行接口动态显示电路,比较如下:方案一串行接口动态显示电路利用8051系列单片机内部的串行接口,也可以实现动态显示及键盘处理。
这样不但可以节省8051的并行I/O接口,而且在大多数不用单行口的情况下,可免于扩展接口。
在这种方法中,串行口工作在方式0状态,相当于一个移位寄存器,其输入/输出通过RXD引脚,移位脉冲则由TXD输出。
每次输入或输出8位数据(一个字节)。
基于单片机控制的电子万年历摘要本设计是一个带温度显示的万年历电路系统,该电路具有年、月、日、星期、时、分、秒、闹钟显示和调整功能,并且还包含显示温度功能。
其中显示部分采用LCD1602显示,时钟部分采用DS1302时钟芯片,温度部分采用DS18B20单线温度传感器。
软件方面我们采用C语言编程,利用Keil uVision3软件编写C语言程序并且生成HEX文件。
先将程序在Proteus 仿真,通过之后再烧录到单片机中。
该设计的优点是充分利用了LCD1602的显示功能完成了万年历应该具有的功能并且还扩展了温度;不足之处是收到LCD1602显示功能的限制没能显示农历日期。
电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT89S51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
关键词:万年历;AT89C51;液晶显示(LCD1602);温度传感器(DS18B20);时钟芯片(DS1302);proteus仿真;目录摘要 (1)目录 (1)1引言: (2)2设计方案 (3)2.2模块选择 (4)2.3方案框图 (4)3 软件实现 (5)3.1流程图 (5)3.2程序编写 (6)3.3运行程序生成hex文件 (12)4 proteus仿真 (13)4.1软件简介 (13)4.2 Proteus电路仿真与调试 (14)5 PCB制版 (21)5.1 绘制电路原理图并仿真调试 (21)5.2加载网络表及元件封装 (21)5.3规划电路板并设置相关参数 (23)5.4元件布局及调整 (24)5.5布线并调整 (25)5.6输出及制作PCB (26)总结 (27)参考文献 (28)致谢 (29)1引言:随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。
基于单片机的万年历制作-图文基于DS1302和ATmega16的万年历制作一、题目分析以及器件选择1、设计要求:电子万年历(a)、基本功能要求:1>能够正确进行日历记录和显示2>能够输入设定年份3>能够通过按键进行日历的调整4>能够进行整点报时5>每年1月1日进行新年报时(b)、扩展功能要求:1>能够调整每天的定时长短2>能够同时显示对应的农历3>能够将通过计算机调整具体的计时和日历2、方案选择:1>时钟芯片的选择在这个系统中,最重要的就是时钟芯片的选择,在电子时钟设计中,常用的时钟芯片有DS1302、DS1216、DS1643、DS1302。
每种芯片的主要功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。
DS12877与DS1216芯片都有内嵌式锂电池作为备用电源:某1203引脚少,没有嵌入式锂电池,跟DS1302芯片功能相似,只是相比较之下,某1203与AT89S51搭配使用时占用I/O口较多。
DS1643为带有全功能实时时钟的非易失性型SRAM,集成了非易失性型SRAM、实时时钟、晶振、电源掉电控制电路和锂电池电源,BCD码表示的年、月、日、星期、时、分、秒,带闰年补偿。
同样。
DS1643拥有28只管脚,硬件连起来占用微处理器I/O口较多,不方便系统功能拓展和维护。
故而从性价比和货源上考虑,本设计采用实时时钟芯片DS1302。
2>显示器件的选择显示器件的选择范围很广,成本最低的就是采用八位数码管进行显示,但是使用八位数码管,经过评估和计算需要至少八个,这占用了太大的空间,而且很不美观。
第二个选择就是使用液晶,采用12864大液晶是普遍的选择,但是成本太高,而且函数调用不便,程序较长,因此从节约成本的角度考虑,使用小液晶1602进行设计。
3>设计评估本次设计完成了基本要求规定那个的所有内容,能够正确进行日历记录和显示、能够输入设定年份、能够通过按键进行日历的调整、能够进行整点报时、每年1月1日进行新年报时。
基于单片机的多功能电子万年历的设计摘要随着科技的快速发展,自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
本文主要介绍了基于单片机的智能电子万年历的研制,该万年历能够实时显示公历年、月、日、时、分、秒,以及对应的农历日期、24节气、天干地支、闹铃功能,同时还能够实时测取环境温度。
本系统的硬件部分主要由A VR单片机、时钟芯片、温度传感器等部件组成,文中给出了详细的硬件设计实现及相关电路图;软件部分主要包含公历转农历的算法设计模块、显示模块、时间的读取、温度的检测模块,按键的扫描输入模块等,文中给出了系统的软件程序流程图及各功能模块的软件程序清单,最后介绍了整体系统的设计实现、仿真及调试过程,给出了下一步的改进方案等。
关键词:单片机;液晶技术;万年历;时钟芯片Design of Multifunctional digital Perpetual Calendar Based on MCUAbstractWith the development of technology,Since the concept of the sun, Baizhong, andnow the electronic bell,human beings continue to study and constant innovation record。
This paper-based Microcontroller Development of Intelligent electronic calendar, The calendar can display real-time in the calendar year, month, day, hours, minutes and seconds,a nd the correspond ing date of the Lunar New Year, 24 Solar Terms,at the same time also to real-time measurement from the ambient temperature,In addition to the user through the keyboard input years of history,for the correspond ing period of the Lunar.The system hardware from some of the major A VR microcontroller, a number of digital control, decoder, the clock chip,temperature sensors and other components,the paper gives a detailed design and implementation of hardware and related circuit;Software contains some of the major Lunar calendar to the algorithm design module,dynamic digital display modules,time to read,temperature detection module,Press enter the scanning module.In this paper, the system software modules and flow chart of the list of software programs,Finally, the realization of the overall system design, simulation and debugging process, the next step is the improvement programmes.Keywords:MCU;crystal technology;Calendar;Clock chip目录引言 (1)第1章绪论 (2)1.1课题的背景与意义 (2)1.2 数字万年历的现状与发展 (2)1.3 论文的主要工作及章节安排 (3)1.4 本章小结 (3)第2章方案论证比较.............................................................................. (4)2.1 多功能数字万年历系统概述 (4)2.2计时方案 (4)2.3温度检测方案 (5)2.4显示方案 (5)2.5本章小结 (5)第3章系统硬件设计 (6)3.1 主控制器ATmega16 单片机介绍 (6)3.2 时钟电路DS1302 (6)3.3 温度检测DS18B20 (7)3.4 动态显示 (8)3.5 键盘接口 (8)3.6 语音闹铃模块 (8)3.7 电源设计 (9)3.8本章小结 (11)第4章系统软件设计 (12)4.1 公历计算显示程序设计 (13)4.1.1 DS1302 内部寄存器 (13)4.1.2 时间读取程序设计 (15)4.2 农历转换程序设计 (16)4.2.1 公历转农历算法研究 (16)4.2.2 干支纪年简介 (18)4.2.3 公历转农历程序 (18)4.3 温度测量程序设计 (20)4.3.1 DS18B20 的测温原理 (20)4.3.2 温度程序 (21)4.4 二十四节气算法研究 (23)4.5系统仿真 (24)4.6本章小结 (25)结论与展望 (26)致谢 (27)参考文献 (28)附录 A 电子万年历原理图 (29)附录 B 外文文献与译文 (30)英文原文: (30)中文译文: (33)附录 C 参考文献题录及摘要 (35)附录 D 电子万年历源程序 (37)插图清单图2-1 数字万年历系统框图 (4)图3-1 DS1302与ATmega16连接图 (7)图3-2 DS18B20与AtMEGA16连接图 (8)图3-3 报时电路 (9)图3-4 稳压电源原理图 (10)图3-5 电源电路 (10)图4-1 系统程序流程图 (13)图4-2 公历程序流程图 (14)图4-3 DS18B20测温原理 (21)表格清单表3-1 LCD12864显示内容 (8)表4-1 DS1302的寄存器及其控制字 (14)表4-2 RS位配置 (15)引言人类的日常生活离不开时间,任何具有周期性变化的自然现象都可以用来测量时间。
基于STCC单片机的多功能电子万年历————————————————————————————————作者:————————————————————————————————日期:摘要本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。
本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。
系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键字:万年历温度计液晶显示ABSTRACTThis paper introduces the based on STC89C52 multi-function electronic calendar of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With STC89C52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 1602 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect.Key words:Perpetual Calendar thermometer LCD display目录摘要 (III)ABSTRACT (IV)前言 (VI)1 绪论 01.1 课题研究的背景 01.2课题的研究目的与意义 01.3课题解决的主要内容 02 系统的方案设计与论证 (1)2.1单片机芯片设计与论证 (2)2.2按键控制模块设计与论证 (2)2.3时钟模块设计与论证 (2)2.4温度采集模块设计与论证 (3)2.5显示模块模块设计与论证 (3)3 系统硬件的设计 (4)3.1 STC89C52单片机 (4)3.2时钟芯片DS1302接口设计与性能分析 (7)3.3温度芯片DS18B20接口设计与性能分析 (11)3.4 LCD显示模块 (16)3.5按键模块设计 (17)3.6复位电路的设计 (18)4 系统的软件设计 (20)4.1主程序流程图的设计 (20)4.2 程序设计 (21)5 系统的机体设计 (27)5.1系统的模块组成 (27)5.2 功能实现 (27)结论 (29)参考文献 (30)致谢 (31)附录 (32)前言随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
基于单片机的数字万年历设计引言本文设计的电子万年历属于小型智能家用电子产品。
利用单片机进行控制,实时时钟芯片进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。
电子万年历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业等相关行业的大厅,以及单位会议室、门卫等场所。
因而,此设计具有相当重要的现实意义和实用价值。
系统概述本设计以AT89S52单片机为核心,构成单片机控制电路,结合DS1302时钟芯片和24C02FLASH存储器,显示阳历年、月、日、星期、时、分、秒和阴历年、月、日,在显示阴历时间时,能标明是否闰月,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示。
人机接口由三个按键来实现,用这三个按键对时间、日期可调,并可对闹铃开关进行设置。
软件控制程序实现所有的功能。
整机电路使用+5V稳压电源,可稳定工作。
系统框图如下图所示,其软硬件设计简单,时间记录准确,可广泛应用于长时间连续显示的系统中。
系统框图系统硬件电路的设计按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构成框图如下图所示。
主控芯片使用52系列AT89S52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,存储模块采用美国ATMEL公司生产的低功耗CMOS串行EEPROM存储芯片AT24C02。
DS1302作为主要计时芯片,可以做到计时准确。
更重要的是,DS1302可以在很小电流的后备(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。
电子万年历电路系统构成框图系统程序的设计阳历程序的设计因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、[小]时、分、秒等数据,再处理即可。