基于51单片机的电子日历+温度显示设计

合集下载

基于51单片机的液晶显示万年历设计

基于51单片机的液晶显示万年历设计

基于51单片机的液晶显示万年历设计摘要随着社会的进步和发展,电子万年历作为日常计时工具被广泛地应用。

此电子万年历在硬件方面主要采用STC89C51单片机作为主控核心,由DS1302时钟芯片提供时钟及1602LCD液晶显示屏显示。

STC89C51单片机是由宏晶公司公司生产的,功耗小,电压可选用3.4v~5.5v电压供电;DS1302时钟芯片是美国DALLAS公司推出的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,而且DS1302的使用寿命长,误差小;对于数字电子万年历采用直观的数字显示,数字显示是采用的1602LCD液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒、温度等信息。

此外,该电子万年历在软件方面主要包括日历程序、时间调整程序,显示程序等。

所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,烧写到单片机上进行测试。

本次课程设计主要由时钟芯片DS1302和温度传感器DS18B20采集数据到单片机进行处理再通过LCD1602显示出来,本设计主要研究了液晶显示器LCD及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较。

关键词:单片机;DS1302;DS18B20;LCD1602ABSTRACTWith the social progress and development, Electronic calendar is widely used as a daily timing tool. The electronic calendar in hardware using STC89C51 microcontroller as the main control center, provided by the DS1302 clock chip and 1602LCD LCD display. STC89C51 microcontroller is produced by the macro crystal company, small power consumption, the voltage can be choosen among 3.4V ~ 5.5V for power supply; DS1302 clock chip is a low power real-time clock chip produced by DALLAS, it can be a time of years,months,days,weeks,hours,minutes,seconds, and DS1302 has a long service life. The error is small; for the digital electronic calendar using visual digital display, 1602LCD digital display is used to display LCD screen that can display years, months, days, weeks, hours, minutes and seconds, temperature and other information. In addition, the electronic calendar mainly includes calendar program,time to adjust procedures,display program etc in sofeware. After the completion of all the procedures, in the Keil software debugging, determine no problem after, and burning to the microcontroller test.The curriculum design mainly by the clock chip DS1302 and temperature sensor DS18B20 collecting data to the microcontroller for processing and then through the LCD1602 display, this design mainly studies the liquid crystal display LCD and the clock chip DS1302, the hardware connection and communication between the temperature sensor DS18B20 and the MCU, a number of hardware connection scheme for a detailed comparison.Key words:SCM,DS1302,DS18B20,LCD1602目录第一章绪论 ------------------------------------------------------------------------------------------------------------ - 1 -1.1 单片机的概述------------------------------------------------------------------------------------------------- - 1 -1.1.1 单片机的概念 --------------------------------------------------------------------------------------- - 1 -1.1.2 单片机的特点 --------------------------------------------------------------------------------------- - 1 -1.2 课题背景 ------------------------------------------------------------------------------------------------------- - 1 -1.3 课题内容 ------------------------------------------------------------------------------------------------------- - 2 - 第二章设计要求和方案 --------------------------------------------------------------------------------------------- - 3 -2.1 设计要求 ------------------------------------------------------------------------------------------------------- - 3 -2.2 设计方案 ------------------------------------------------------------------------------------------------------- - 3 -2.2.1 单片机芯片的选择--------------------------------------------------------------------------------- - 3 -2.2.2 各模块方案选择 ------------------------------------------------------------------------------------ - 3 -2.3 工作原理 ------------------------------------------------------------------------------------------------------- - 4 - 第三章系统的硬件设计及实现------------------------------------------------------------------------------------ - 7 -3.1 电路设计原理框图 ------------------------------------------------------------------------------------------ - 7 -3.2 STC89C51单片机的介绍 ----------------------------------------------------------------------------------- - 7 -3.2.1 主要功能及性能参数 ----------------------------------------------------------------------------- - 7 -3.2.2单片机的引脚功能说明 --------------------------------------------------------------------------- - 8 -3.3 各模块电路的设计及原理图 ----------------------------------------------------------------------------- - 9 -3.3.1 时钟电路模块的设计 ----------------------------------------------------------------------------- - 9 -3.3.2 温度采集模块的设计及原理图 --------------------------------------------------------------- - 11 -3.3.3 显示模块的设计及原理 ------------------------------------------------------------------------- - 11 - 第四章系统的软件设计 -------------------------------------------------------------------------------------------- - 13 -4.1 程序流程框图------------------------------------------------------------------------------------------------ - 13 -4.2 时间调整程序流程图 -------------------------------------------------------------------------------------- - 14 - 第五章系统测试 ------------------------------------------------------------------------------------------------------ - 15 -5.1 硬件测试 ------------------------------------------------------------------------------------------------------ - 15 -5.2 软件测试 ------------------------------------------------------------------------------------------------------ - 15 - 第六章总结与致谢 --------------------------------------------------------------------------------------------------- - 17 -6.1 总结------------------------------------------------------------------------------------------------------------- - 17 -6.2 致谢------------------------------------------------------------------------------------------------------------- - 18 - 参考文献 ------------------------------------------------------------------------------------------------------------------- - 19 - 附录 ------------------------------------------------------------------------------------------------------------------------ - 21 - 附录一:实物图 --------------------------------------------------------------------------------------------------- - 21 - 附录二:源程序 --------------------------------------------------------------------------------------------------- - 23 -第一章绪论1.1 单片机的概述1.1.1 单片机的概念单片机即单片微型计算机,是把中央处理器、存储器、定时/计数器、输入输出接口都集成在一块集成电路芯片上的微型计算机。

基于stc51单片机的LCD1602显示时间的电子万年历(显示

基于stc51单片机的LCD1602显示时间的电子万年历(显示

1 课设所需软件简介1.1 Keil uVision4的简要介绍2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。

新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。

新版本支持更多最新的ARM芯片,还添加了一些其他新功能。

2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。

Keil C51开发系统基本知识Keil C51开发系统基本知识1. 系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

下面详细介绍Keil C51开发系统各部分功能和使用。

2. Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及C51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

使用独立的Keil仿真器时,注意事项:* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历

单片机课程设计报告万年历的设计基于51单片机的万年历摘要:电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。

万年历的设计过程在硬件与软件方面进行同步设计。

硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。

在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。

显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。

软件方面主要包括日历程序、时间调整程序,显示程序等。

程序采用C语言编写。

所有程序编写完成后,在KeilC51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

一、设计要求基本要求:1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”;2,具有日历功能;③时间可以通过按键调整。

发挥部分:④具有闹钟功能(可以设定多个)。

二:总体设计电路设计框图系统硬件概述本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由单片机定时功能提供;温度的采集由DS18B20构成,它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,使用时不需要额外的外围电路。

单片机实训报告 - 基于51单片机的数字万年历设计

单片机实训报告 - 基于51单片机的数字万年历设计

《单片机应用实训》课程设计报告姓名:班级:指导老师:实习时间:基于51单片机的数字万年历设计摘要:利用单片机、DS1302芯片、DS18B20芯片搭建一个数字万年历模块,编写程序,实现了年、月、日、时、分、秒计数,温度测量、时钟报警等功能。

关键词: STC89C51 数字时钟一、 实训目的电子时间显示器现在在任何地方都有涉及到,例如电子表和商场的时间显示等等,所以它是一种既方便又实用的技术,而我们所做的万年历则是在它的基础上做出来的,通过万年历的制作,我们可以进一步了解计数器的使用,了解各个进制之间的转换,以及其他的任意进制计数器的构成方法等,并且进一步了解DS1302芯片、DS18B20芯片的使用等。

二、总体设计方案根据项目任务,该系统采用STC89C51为控制核心,以电子大赛开发板为实验平台,利用各种芯片实现相应功能,三、硬件设计1、单片机最小系统STC89C52为40引脚双列直插芯片,有四个I/O 口P0,P1,P2,P3,每一条I/O 线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接晶振电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

第9引脚为复位输入端,接上电容,电阻及开关后够成上电复位电路,20引脚为接地端,40引脚为电源端。

时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个22pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处 使单片机工作于内部振荡模式。

此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。

时钟振荡电路如下图所示。

复位电路由电阻和极性电容组成,如下图所示,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约2us时,即可实现复位。

基于单片机带温度显示的液晶万年历

基于单片机带温度显示的液晶万年历

摘要在寒假期间我用一周时间完成了这个液晶万年历,它可以显示年月日、时分秒、以及温度(可上下限报警),可以对时间进行加一或减一调整,并加入了闰、平年时间调整,方便可行,已经调试成功。

考虑到成本和方便,本作品采用了STC89c52和DS18B20,计时用的是51单片机自带的十六位定时器/计数器T0,尽管对时间进行了误差调整但是还是有一定的误差,考虑到学校后改用DS1302时钟芯片,进一步减小误差。

温度显示精度达到0.1摄氏度。

关键词:单片机 DS18B20 万年历温度1.硬件工作介绍(1)上电自动复位及手动复位电路STC89c52单片机的RST端外部复位有两种操作方式:上电自动复位和按键手动复位。

本设计用上电自动复位以及手动复位下结合的方式外接电路(见附图)。

(2)时钟振荡电路作品中采用12M晶振,其连接方法如图所示,其中电容的值都为22pF。

(3)1602液晶显示接口1602采用标准的16脚接口(见附图),其中:第1脚:GND为地电源第2脚:VCC接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS 和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:VCC第16:GND(4)键盘键盘是通过S3(P3.2),S4(p3.3),S5(p3.4)对时钟进行调整,其S3选择要调整的对象如时,分,日,月等等,并在液晶屏上显示所选的对象。

S4对所选中的对象进行加一调整,而S5对所选对象进行减一调整。

基于51单片机的电子日历+温度显示设计

基于51单片机的电子日历+温度显示设计

2 电子日历设计与实现2.1 任务分析一、功能本设计要求具有显示生肖、年、月、日、星期、时、分、秒等功能;阳历与阴历能够自动关联;具有温度计功能;具备年、月、日、星期、时、分、秒校准功能;设计最终达到效果如图2-1。

图2-1 设计效果图二、系统原理按照系统设计功能的要求,系统由单片机、时钟模块DS1302、显示模块12864、键盘以及温度采集模块DS18B20共5部分电路组成,电路构成框图如图2-2所示。

图2-2 系统设计原理框图三、系统硬件要求本设计电路采用AT89S51单片机为控制核心,AT89S51具有在线编程功能,低功耗,能在3V超低压工作。

时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

DS1302内部有一个用于临时性存放数据的31*8RAM寄存器。

器件在加电情况下,可自动生成年、月、日、周、时、分、秒时间数据,该器件具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能。

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

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

显示部分用12864LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形,显示多样,清晰可见,能够达到较好的显示效果。

2.2电路设计一、单片机主控制模块的设计AT89S51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如图3-1所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

基于51单片机的电子万年历的设计

基于51单片机的电子万年历的设计
3.3
1.液晶显示方式。液晶显示效果出众,可以运用菜单项来方便操作,但是在显示时,特别是使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁。而且由于61板的存储空间有限,液晶显示就不能与语音播抱程序同时实现。这些大大影响了电子万年历的性能。
2.相比液晶显示,8段数码管虽然操作比液晶显示略显繁琐,但可视范围十分宽,而且经济实惠,也不需要复杂的驱动程序。所以最后选择LED数码管显示方案。
256字节内部RAM。
电源控制模式
——时钟可停止和恢复;
——空闲模式;
——掉电模式。
6个中断源。
4个中断优先级。
4个8位I/O口。
全双工增强型UART。
3个16位定时/计数器,T0、T1(标准80C51)和增加的T2(捕获和比较)。
全静态工作方式:0~24MHz。
4.2 时钟电路 DS1302
4.2.1. DS1302的性能特性
如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc大于等于2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302的引脚及内部结构图如图4.1所示,表4.1为各引脚的功能。
DS1302的控制字如图4.2所示。控制字节的最高位(位7)必须是逻辑1;如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据;为1表示存取RAM数据。位5~1(A4~A0)指示操作单元的地址。最低有效位(位0)如为0,表示要进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。
2 功能要求
1.万年历能用数码管显示阳历年、月、日、星期、[小]时、分、秒并设置指定时间的闹铃。
2.数字式温度计要求测温范围-50~100°C,LED数码管直读显示。

基于51单片机的万年历

基于51单片机的万年历

基于51单片机的万年历摘要本篇论文主要介绍了运用单片机实现电子万年历的设计,其中51单片机作为对系统的主要控制器,由DS1302完成对时钟电路的显示和DS18B20对温度的检测。

设计主要由时钟电路模块、稳压电路模块、液晶显示模块、温度测试模块组成。

实现了年、月、日、星期、温度显示,及闹钟报警的功能。

这个设计具有体积小,简单方便,功能齐全,精度高等特点。

关键词51单片机;时钟芯片;温度显示;闹钟设置AbstractThis paper mainly introduces the realization of electronic calendar application of the design of SCM,51 MCU as the main controller of the system,DS1302 completed by the clock circuit display and temperature test DS18B20。

Designed for use mainly by the clock circuit module, voltage regulator circuit module, liquid crystal display module, temperature measurement modules。

Achieved a year, month, day, week, temperature display, and alarm clock function。

This design is small, simple and convenient, complete functions and high accuracy。

Key words51 MCU;Clock chip;Temperature display;Alarm clock settings目录1. 引言................................................ 错误!未定义书签。

基于51单片机的温度报警和万年历

基于51单片机的温度报警和万年历
uchar code table2[]={" : : "};
uchar num,miao,a,fen,shi,tt,date,s1sum,nian,yue,ri,week,i,temp;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
while(i--);
}
}
void ds18b20changtemp() //转换温度
{
ds18b20init();
delay1ms(1);
ds18b20write(0xcc); //跳过rom操作
ds18b20write(0x44); //温度转换命令
}
/*
void delay1ms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
unsigned char ds18b20init()
{
unsigned int i;
ds=0; //总线拉低480us-960us
i=70;
while(i--); //延时642us
ds=1; //然后拉高总线,ds18b20做出反应会在15——60us后总线拉高
i=0;
while(ds)
{
i++;
ye1602init();
if(temp<0)
{
writecom(0x80+0x40+11);
writedate('-');

基于51单片机的万年历与温度检测报警系统

基于51单片机的万年历与温度检测报警系统

基于51单片机的万年历与温度检测报警系统摘要随着社会发展需求的改变,电子万年历是一个应用非常广泛的实用日常计时工具,带有显示世纪,年,月,日,星期,时,分,秒和按键可调时间及其按键设置闹钟的功能,同时具有月末自动更新,闰年补偿功能等多种功能。

温度检测报警系统也是在日常生活和工业应用非常广泛的工具,能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。

此系统是基于STC89C52单片机设计的,包含液晶显示模块,DS12C887实时时钟模块,DS18B20温度采集模块,键盘扫描模块,报警模块,HX1838红外接收头模块。

STC89C52作为控制核心,具有功耗低,功能强等特点,电压可选5VUSB 供电。

显示模块采用12864液晶动态显示,相对数码管而言经济实用,占用空间小,对于显示数字、字母最为合适,而且与单片机连线简单,占用IO口相对较少。

实时时钟芯片DS12C887是一款与DS12C885实时时钟兼容的替代产品,该器件提供RTC/日历、定时闹钟等功能,如果检测到主电源故障,该器件可自动切换到备用电源供电,DS12C887将石英晶体与电池集成在一起,在断电后仍可精确走10年。

温度检测报警模块采用数字式温度传感器DS18B20,该芯片具有精度高,测量范围广等优点,易与单片机连接,模块电路组成简单并同时具有温度报警功能。

关键词:STC89C52,DS12C887,DS18B20,12864液晶显示,电子万年历,采集周围设备温度、温度报警一、设计要求与方案论证1.1设计要求设计一个能够实现世纪,年,月,日,星期,小时,分,秒显示附带温度检测显示的实时时钟电子万年历,同时具有时间调节和闹钟设置功能,以及时间预设报警、温度报警、报警解除等功能。

该产品共设有四个按键,每个按键具有多种功能,充分利用各个按键。

也可利用红外遥控来进行实时调节,体现时尚方便的特性,并且通过编程还可以控制12864液晶显示,随心所欲。

基于51单片机的电子万年历系统的设计

基于51单片机的电子万年历系统的设计

基于51单片机的电子万年历系统的设计人们在观测时间的时候,常常想知道当时的湿度、温度、日期、星期等与日常生活密切的信息。

采用51单片机设计了一种计时准确、功能全面、成本低廉的万年历。

该电子万年历通过定时中断和按键同时显示各种需要的信息,具有电路简单,显示直观、读取方便、功能多样的优点。

标签:电子万年历;单片机;定时中断;温湿度引言电子万年历是一种应用非常廣泛的日常计时工具,适合各类场合使用。

LCD 数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。

功能也越来越齐全,除了公历年月日、时分秒、还有星期、温湿度显示及闹铃。

1 总体设计要求1.1 实现的功能此万年历主要功能是显示:时、分、秒、年、月、日、星期、湿度、温度、闹钟功能、整点报时、农历、平闰年。

数字式温湿度计测温范围-40~80℃,湿度误差范围±3%RH用LCD液晶显示。

1.2 系统基本方案选择KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

KeilC51软件目标代码生成效率很高,大多数情况下生成的汇编语言代码都比较容易理解[1]。

1.3 硬件设计选定本设计主控制系统采用AT89S52,独立按键控制;时钟电路由ds1302时钟电路提供;温湿度由DHT21数字式温湿度传感器采集;LCD1602液晶屏动态扫描作为显示。

如图1所示。

2 系统的硬件设计与实现2.1 单片机主控制模块的设计主控制系统采用AT89S52,这是一种高性能、低功耗微控制器,具有8K的系统可编程Flash存储器。

与工业80C51产品指令和引脚完全兼容。

单片机的最小系统由单片机芯片、时钟电路、复位电路组成[2]。

2.2 计时芯片计时芯片采用DS1302,这是一种高性能实时时钟电路[3],DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。

如果采用单片机,还需要计数器,同时需要设置中断、查询等,消耗单片机资源,而采用DS1302时钟芯片,就不存在这些问题。

基于51单片机的万年历设计

基于51单片机的万年历设计

洛阳理工学院课程设计报告课程名称单片机原理与应用设计题目基于STC89C51万年历的设计与实现专业物联网工程班级学号姓名完成日期大约在冬季目录摘要 (2)一、设计目标与内容 (3)1.1设计目标 (3)1.2 设计内容 (3)1.3设计要求 (3)1.4 本章小结 (3)二、系统设计 (3)2.1 电路设计框图 (3)2.2 系统硬件概述 (4)2.3 主要单元电路的设计 (4)2.3.1 时钟电路模块的设计 (4)2.3.2温度传感器电路设计 (6)2.3.3显示模块的设计 (8)2.4本章小结 (8)三、系统的软件设计 (9)3.1程序流程图 (9)3.1.1 系统总流程图 (9)3.1.2 温度程序流程图 (9)3.1.3 DS1302时钟程序流程图 (10)3.1.4 LCD显示程序流程图 (11)3.2程序的设计 (11)3.2.1 DS18B20测温程序 (11)3.2.2 DS1302读写程序 (13)3.2.3液晶显示程序 (14)3.3本章小结 (15)四、仿真与调试 (15)4.1 Keil软件调试流程 (15)4.2 Proteus软件运行流程 (17)4.3本章小结 (18)总结 (18)基于STC89C51万年历的设计与实现摘要古人依靠日冕、漏刻记录时间,而随着科技的发展,电子万年历已经成为日渐流行的日常计时工具。

本文研究的万年历系统拟用STC89C52单片机控制,以DS1302时钟芯片计时、DS18B20采集温度、1602液晶屏显示。

系统主要由温度传感器电路,单片机控制电路,显示电路以及校正电路四个模块组成。

本文阐述了系统的硬件工作原理,所应用的各个接口模块的功能以及其工作过程,论证了设计方案理论的可行性。

系统程序采用C语言编写,经Keil软件进行调试后在Proteus软件中进行仿真,可以显示年、月、日、星期、时、分、秒和温度并具有校准功能和与即时时间同步的功能。

实验结果表明此万年历实现后具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

基于51单片机的电子万年历系统的设计

基于51单片机的电子万年历系统的设计

参考内容
一、引言
单片机是现代电子设备中的重要组成部分,广泛应用于各种嵌入式系统设计。 51单片机作为一种经典的微控制器,因其结构简单、易于编程、可靠性高等优点, 被广泛用于各种领域,如智能家居、工业控制、物联网等。万年历作为一种日常 生活中常见的计时工具,具有显示日期、时间、星期、月份等功能,对于人们的 日常生活和工作有着重要的作用。本次演示将介绍一种基于51单片机的万年历设 计。
二、系统设计
1、硬件设计
基于51单片机的万年历设计需要硬件和软件的配合实现。硬件部分主要包括 51单片机、显示模块、按键输入模块和时钟芯片等。其中,51单片机作为主控制 器,负责处理各种数据和控制信号;显示模块用于显示日期、时间等信息;按键 输入模块用于用户输入操作;时钟芯片则为系统提供实时时间。
基于51单片机的电子万年历系 统的设计
目录
01 一、概述
03 三、软件设计
02 二、硬件设计 04 四、系统调试与优化
目录
05 五、应用场景及前景
07 参考内容
06 六、结论
随着科技的不断发展,单片机已经成为现代于51单片机的电子万年历系统设计具有广泛的实际应用价值。 本次演示将详细介绍这种系统的设计过程和实现方法。
感谢观看
首先需要进行硬件搭建,包括选择合适的单片机、显示模块、按键输入模块 和时钟芯片等,并将其连接起来。需要注意的是,在搭建硬件时需要考虑各个模 块之间的接口和连接方式,以确保系统能够正常工作。
2、软件编程
在硬件搭建完成后,需要进行软件编程。首先需要进行系统初始化,包括对 单片机进行初始化和对显示进行清屏处理。然后需要进行按键处理和时钟数据处 理,以实现用户输入和实时时间的读取。最后需要进行显示处理,将处理后的数 据显示到显示模块上。

基于51单片机的电子万年历与温度检测报警系统

基于51单片机的电子万年历与温度检测报警系统

序号:编码:重庆理工大学第十八届“开拓杯”学生课外学术科技作品竞赛参赛作品作品名称:基于单片机的万年历与温度检测报警系统作品类别:B类别:A自然科学类学术论文B 科技发明制作C哲学社会科学类学术论文与社会调查报告目录摘要 (1)一、设计要求与方案论证1.1设计要求 (2)1.2系统方案选择和论证 (2)1.3电路最终方案确定 (4)二、电子万年历与温度采集报警硬件设计和实现2.1系统设计 (4)2.1.1系统设计框图 (4)2.1.2系统硬件需求介绍 (4)2.2系统硬件各模块作用 (5)2.2.1单片机核心控制模块 (5)2.2.2实时时钟电路模块 (6)2.2.3数字温度传感器模块 (13)2.2.4液晶显示电路模块 (17)2.2.5蜂鸣器电路模块(2个) (22)2.2.6 USB和外部电源供电模块 (23)2.3系统电路图设计 (23)2.3.1系统电路原理框图和原理图 (23)三、软件设计与分析3.1系统软件流程图 (25)3.1.1DS12C87程序流程图 (25)3.1.2DS18B20程序流程图 (26)3.1.3键盘扫描程序流程图 (27)3.1.4主程序流程图 (28)四、系统测试4.1测试工具 (29)4.2软件测试 (29)4.3硬件测试 (30)五、设计总结和心得4.1设计总结与心得 (31)参考文献 (32)附录一:程序清单 (33)附录三:实物图片 (48)基于单片机的万年历与温度检测报警系统摘要随着社会发展需求的改变,电子万年历是一个应用非常广泛的实用日常计时工具,带有显示世纪,年,月,日,星期,时,分,秒和按键可调时间及其按键设置闹钟的功能,同时具有月末自动更新,闰年补偿功能等多种功能。

温度检测报警系统也是在日常生活和工业应用非常广泛的工具,能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。

此系统是基于STC89C52单片机设计的,包含液晶显示模块,DS12C887实时时钟模块,DS18B20温度采集模块,键盘扫描模块,报警模块。

基于51单片机的电子万年历毕业论文设计

基于51单片机的电子万年历毕业论文设计

原创性声明本人呈交的毕业论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。

尽我所知,除文中已经注明引用的内容外,本毕业论文的研究成果不包含他人享有著作权的内容。

对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。

本毕业论文的知识产权归属于培养单位。

本人签名:日期:摘要随着社会的发展,信息量的不断提升以前对信息交换的要求提高,电子万年历的发展以及投入市场变得非常有必要。

本设计是基于51单片机并模拟日常所用的日历,而51系列单片机是各单片机中最为典型和最有代表性的一种。

通过本次设计,学习和巩固了单片机指令编程的相关知识,熟悉单片机各部件的组成及其功能。

本设计将制作一种基于单片机控制的带实时温度显示、具有定时功能的电子万年历。

传统的电子日历大都体积大,功耗大,显示不准确等特点。

为了缩小体积,减小功耗,使其变得小巧灵敏,本设计加入了时钟芯片DS1302,可对时间进行准确记时,同时可设置定时时间,实现定时功能。

另外本设计具有显示实时温度的功能。

传统的温度传感器系统大都采用放大、调理、A/D转换,转换后的数字信号送入计算机处理,处理电路复杂、可靠性相对较差,占用计算机的资源比较多。

本设计将采用DS18B20一线制数字温度传感器,可将温度信号直接转换成数字信号送给微处理器,电路简单,成本低,实现了时间温度同时显示的效果。

最后,温度和时间都将通过12864液晶显示器进行显示。

测试表明系统达到了设计要求的各项功能,各部分工作正常。

关键词:时钟温度检测单片机温度ABSTRACTWith the development of the society, the amount of information is improving the requirements of the information exchange. the development of the electronic calendar and the investment market become very necessary. This design is based on 51 single-chip microcomputer and simulation used in the daily calendar, and 51 series microcontroller is the MCU in the most typical and most representative one. Through this design, learning and consolidate the single chip microcomputer instruction programming knowledge, be familiar with composition and function of the microcontroller parts.This design creates an electronic calendar with real-time temperature display and timing function based on single chip control. Most of traditional calendars are characterized by large size, high power consumption and inaccurate display. In order to reduce volume and power consumption and make calendars become small and exquisite, the design adds a clock chip DS1302, which can accurately record the time and set a regular time to achieve timing function. In addition, this design displays real-time temperature function. Traditional temperature sensor system is mostly amplified, recuperated and A / D converted. The converted digital signal is input the computer to be processed, but the processing circuit is complicated with relatively poor reliability and occupies more resources of the computer. This design uses the DS18B20 first-line system digital temperature sensor to directly convert the temperature signal into digital signal and send it the microprocessor, whose circuit is simple and low cost, achieving the displayed effect of time and temperature simultaneously. Finally, the temperature and time will be displayed through the 12864 liquid crystal display. The test indicates that the system has reached various functions of the design requirements and each part operates smoothly.Keywords: clock temperature-detection SCM temperature目录1 绪论 (1)2 系统基本方案选择和论证 (1)2.1单片机芯片的选择方案和论证 (1)2.2显示模块的选择方案和论证 (1)2.3时钟芯片的选择方案和论证 (2)2.4温度传感器的选择方案和论证 (3)2.5电路设计最终方案确定 (4)3 系统硬件电路设计 (1)3.1系统功能模块划分 (1)3.2各单元模块功能分析及模块电路设计 (2)3.2.1时钟模块 (2)3.2.2温度模块 (2)3.2.3显示模块 (5)3.2.4独立键盘模块 (5)3.2.5蜂鸣器模块 (6)3.2.6单片机模块 (7)3.2.7温度信息的采集 (8)3.3电路原理图的绘制和电路的焊接 (1)3.3.1原理图绘制软件PROTEL (1)3.3.2PCB制作 (1)3.3.3元器件的焊接 (3)4 系统软件设计 (1)4.1万年历软件系统的流程图 (1)4.3温度的读取 (5)下面是温度读取的子程序: (6)4.4键盘模块 (6)4.5蜂鸣器模块 (6)结束语 (1)致谢 (1)参考文献 (1)附录 (1)1 绪论二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发的时代扮演着极为重要的角色。

单片机电子日历和温度表的设计课程设计

单片机电子日历和温度表的设计课程设计

电子日历和温度表的设计专业:学号:姓名:指导老师:时间:一、任务书题目2 电子日历和温度表的设计(一)设计要求(不能采用专用芯片):(1)时间显示:年、月、日(各2位)(2)日历参数的手动设置,设置参数,每次按下按键时,应伴随有蜂鸣器提示声。

(3)实现实时温度显示功能(每秒刷新一次),温度测量范围-40~+60C(4)每当月份和年份变化时,声光报警提,如长短声,音乐等。

时,声光报警提示。

(5)当温度超过38度,或低于零下-10C(6)设计一种用外部中断方式触发的显示或声音提示模式,当触发时,停止显示时间,显示或输出特定的模式(过程不小于1分钟),推出中断处理后,能够显示正确时间。

(二)扩充功能:(1)防止极性接反,电压不足时,报警提示。

(2)显示星期的功能。

(3)重要节日提示功能,声光提示(声音,LED闪烁等)。

二、摘要本设计主要分为电子日历、温度显示功能和星期显示功能三个部分,实现年月日的显示和温度的采集显示及温度报警、星期显示功能。

时间显示年月日各两位,能够手动设置日历参数,并能在月份和年份跳转以及重要日期时蜂鸣显示;温度表采集温度并每秒刷新显示。

设计时用STC89C52单片机T0以中断方式产生周期为50ms的脉冲信号,通过秒,分,时进位,实现一天,逐次累加,满该月天数进位,满12月进位一年。

用软件实现闰年的判断,并判断重要节日实现蜂鸣警报。

年月日的显示用74LS245驱动并用集成的8位数码显示管显示,温度的采集选用DS18B20温度传感器,驱动和显示和电子日历部分相同,星期的显示同电子日历。

由单片机把各个部分联系到一起,综合完成设计要求的实现。

关键字:单片机STC89C52 电子日历星期显示温度显示三、目录1. 任务书 (2)2. 正文 (5)(1) 前言 (5)(2) 方案分析 (6)原理说明 (6)设计时所用主要元器件 (6)主要硬件元件分析 (7)方案说明 (7)电子日历方案 (6)温度表方案 (12)星期显示方案 (14)(3)调试 (15)(1)功能实现过程 (15)(2)调试出现的问题及解决方法 (17)整体显示 (17)实物显示 (17)结论 (18)附录 (19)硬件原理图 (19)程序清单 (20)四、正文(一)前言电子日历和温度表的设计,主要采用51单片机74LS245,74LS138,等来实现的。

基于51单片机和lcd1602的万年历设计

基于51单片机和lcd1602的万年历设计

基于单片机的万年历设计摘要古人依靠日冕、漏刻记录时间,而随着科技的发展,电子万年历已经成为日渐流行的日常计时工具。

本文研究的万年历系统拟用STC89C52单片机控制,以DS1302时钟芯片计时、DS18B20采集温度、1602液晶屏显示。

系统主要由温度传感器电路,单片机控制电路,显示电路以及校正电路四个模块组成。

本文阐述了系统的硬件工作原理,所应用的各个接口模块的功能以及其工作过程,论证了设计方案理论的可行性。

系统程序采用C语言编写,经Keil软件进行调试后在Proteus软件中进行仿真,可以显示年、月、日、星期、时、分、秒和温度并具有校准功能和与即时时间同步的功能。

实验结果表明此万年历实现后具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

关键词:万年历单片机仿真The Calendar of Design based on Single ChipAbstractAncient rely on corona, Louke recording time. The electronic calendar has become the popular tool for the daily timing.as the development of technology.In the calendar system , the STC89C52 is used to control,with the DS1302 clock chip timing, DS18B20 collecting temperature, 1602 LCD Displaying. The system is composed of four modules:the temperature sensor circuit, the MCU control circuit, the display circuit and the correction circuit.This paper describes the hardware works, the functions of each interface module and its working process, demonstrates design theory is Feasibility.. C language is used to program, after debugging in the Keil software,then simulating in the Proteus. The electronic calendar can display year, month, day, week, hours, minutes, seconds, temperature, and has calibration features and functionality with real time synchronization.The results show that this calendar is easy to read, intuitive display, versatile, simple circuits, and many other advantages,The design meets the development trend of electronic instruments and meters, and has broad market prospects.Keywords:Calendar ; MCU ; simulation目录第一章绪论 (1)1.1课题研究的意义 (1)1.2本课题主要的研究工作 (1)1.2.1研究内容 (1)1.2.2论文章节安排 (2)1.3本章小结 (2)第二章单片机的概述 (3)2.1单片机的定义和特点 (3)2.1.1单片机的定义 (3)2.1.2单片机的特点 (3)2.2单片机的发展现状和趋势 (4)2.2.1单片机的发展现状 (4)2.2.2单片机的发展趋势 (5)2.3编程语言的选择 (5)2.4本章小结 (6)第三章设计要求和方案论证 (7)3.1设计要求 (7)3.2单片机芯片的选择方案和论证 (7)3.3显示模块选择方案和论证 (7)3.4时钟芯片的选择方案和论证 (8)3.5温度传感器的选择方案与论证 (8)3.6电路设计最终方案决定 (9)3.7本章小结 (9)第四章系统的硬件设计与实现 (10)4.1电路设计框图 (10)4.2系统硬件概述 (10)4.3主要单元电路的设计 (11)4.3.1 STC89C52单片机简介 (11)4.3.2单片机主控制模块的设计 (13)4.3.3时钟电路模块的设计 (15)4.3.4温度传感器电路设计 (16)4.3.5独立式键盘设计 (19)4.3.6显示模块的设计 (19)4.4本章小结 (21)第五章系统的软件设计 (22)5.1程序流程图 (22)5.1.1系统总流程图 (22)5.1.2温度程序流程图 (23)5.1.3时钟程序流程图 (24)5.1.4液晶显示程序流程图 (25)5.2程序的设计 (26)5.2.1 DS18B20测温程序 (26)5.2.2读写DS1302程序 (27)5.2.3液晶显示程序 (29)5.3本章小结 (29)第六章仿真与调试 (30)6.1软件简介 (30)6.1.1 Keil软件简介 (30)6.1.2 Proteus ISIS简介 (30)6.2 Keil软件调试流程 (31)6.3 Proteus软件运行流程 (33)6.4 万年历的功能仿真 (35)6.5 硬件调试结果 (35)6.6本章小结 (39)第七章总结与展望 (40)参考文献 (41)附录一:系统电路图 (42)附录二:系统PCB板 (43)附录三:系统程序 (44)致谢 (57)第一章绪论1.1课题研究的意义万年历是我国古代传说中最古老的一部太阳历。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 电子日历设计与实现2.1 任务分析一、功能本设计要求具有显示生肖、年、月、日、星期、时、分、秒等功能;阳历与阴历能够自动关联;具有温度计功能;具备年、月、日、星期、时、分、秒校准功能;设计最终达到效果如图2-1。

图2-1 设计效果图二、系统原理按照系统设计功能的要求,系统由单片机、时钟模块DS1302、显示模块12864、键盘以及温度采集模块DS18B20共5部分电路组成,电路构成框图如图2-2所示。

图2-2 系统设计原理框图三、系统硬件要求本设计电路采用AT89S51单片机为控制核心,AT89S51具有在线编程功能,低功耗,能在3V超低压工作。

时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

DS1302内部有一个用于临时性存放数据的31*8RAM寄存器。

器件在加电情况下,可自动生成年、月、日、周、时、分、秒时间数据,该器件具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能。

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

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

显示部分用12864LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形,显示多样,清晰可见,能够达到较好的显示效果。

2.2电路设计一、单片机主控制模块的设计AT89S51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如图3-1所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端,单片机电路如图2-3 所示。

图2-3 单片机电路二、时钟电路模块的设计DSl302数据操作原理: DSl302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。

无论是读周期还是写周期,开始8位指定40个寄存器中哪个将被访问到。

在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。

DS1302的引脚连接如图2-4所示。

其中VCC1为后备电源,VCC2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由VCC1或VCC2两者中的较大者供电。

当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。

当VCC2小于VCC1时,DS1302由VCC1供电。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送,与AT89C51的P3.0相连。

RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在VCC≥2.5V之前,RST 必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入输出端(双向),与AT89C51的P3.1相连。

SCLK始终是输入端。

图2-4 DS1302的引脚连接图如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O 引脚变为高阻态。

上电运行时,在Vcc≥2.5 V之前,RST脚必须保持低电平。

只有在SCLK为低电平时,才能将RCT置为高电平。

三、温度采集模块设计如图2-5所示。

采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。

+CC图2-5 DS18B20温度采集四、显示模块的设计液晶显示模块12864是一种图形点阵液晶显示器,它主要是由128×64个液晶显示点组成的一个128列×64行的阵列,可以显示8×4个(16×16点阵)汉字。

每个显示点对应一位二进制数,1表示亮,0表示灭。

存储这些点阵信息的RA M称为显示数据存储器。

要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。

图形或汉字的点阵信息当然由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。

LCD128 64的主要技术参数和性能见表2.1。

表2.1 12864主要技术参数和性能参数性能电源电源功耗电流显示内容接口总线工作温度储存温度VDD:+5V;模块内自带-10V负压,用于LCD的驱动电压电源功耗电流(Idd)≤2.8mA128(列)×64(行)点与CPU接口采用8位数据总线并行输入输出和8条控制线;-20℃~+60℃-30℃~+70℃,当温度低于–15℃时,不能做动画显示。

液晶显示模块12864的DB0-DB7是用来传输数据的,与AT89S51的P0.0-P0.7相连。

片选线2cs和1cs与AT89C51的P1.1、P1.0相连。

GND是接地线,VCC 与AT89C51的电源连接起来。

由于设计结果仿真实现,因此12864 的对比度调节控制和背光照明电源等引脚为系统默认,在设计中可以不予处理。

12864的电路连接方式见图2-6所示。

图2-6LCD12864连接图2.3系统的软件设计一、软件设计平台与设计过程目前单片机程序的设计大多采用Keil设计平台,图2-7是该软件的操作界面,本设计程序采用Keilc51v802版本,利用C语言编写,由于电子日历的数据处理和函数较多,因此程序模块设计。

在设计过程中,首先编写主程序以外的子程序模块,如12864显示器驱动、DS1302驱动等,然后编写主函数。

为了程序结构简单化,各个子程序都经过条件编译形成头文件被主程序包含。

被主程序包含的文件含有汉字与字符库、线条图形库等。

图2-7 Keil软件的使用界面二、程序流程框图在编程部分,首先要初始化DS1302模块,即从DS1302中读出日期和时间,还要从温度传感器DS18B20中读取温度。

分离日期、时间、温度后送到显示模块。

最后由农历更新子程序来实现与阳历自动关联。

程序流程框图见图2-7。

图2-7 主程序流程图主程序包含主函数和12864.h、model.h、ds1302.h、one-wire.h、lunar.h、inp ut_080627.h头文件,并且含有系统的硬件的预处理指令。

主函数的作用是获取时间数据、显示温度、显示时间信息、对时间调整函数调整等,主函数的部分程序如下:#include <reg52.h>#include "12864.h"#include "model.h"#include "ds1302.h"#include "one-wire.h"#include "lunar.h"#include "input_080627.h"#define uchar unsigned char#define uint unsigned int#define NoUpLine 1#define UpLine 0#define NoUnderLine 1#define UnderLine 0#define FALSE 0#define TRUE 1void main(void){SFR_Init();CAL_Init();GUI_Init();TR0 = 1;TR1 = 1;while(1){GetTime(&sys); //获得时间LCD_ShowTemp(); //显示温度LCD_ShowWNL(); //显示万年历Time_Set(); //时间设置}}三、阳历程序的设计时钟芯片DSl302本身能够产生时间信息,阳历程序只需从DSl302各寄存器中读出年、月、日、星期、小时、分、秒等数据,然后再处理即可。

在首次对DSl302进行操作之前,必须对它进行初始化,图2-8 阳历程序流程图然后从DSl302中读出数据,再经过处理后,送给显示缓冲单元。

图2-8所示为阳历程序流程图,程序如下:#include <reg52.h>//#include "ds1302.h"#define uchar unsigned char#define uint unsigned int#define SECOND 0x80 //秒#define MINUTE 0x82 //分鍾#define HOUR 0x84 //小時#define DAY 0x86 //天#define MONTH 0x88 //月#define WEEK 0x8a //星期#define YEAR 0x8c //年sbit DS1302_RST=P3^0;sbit DS1302_SCLK=P3^1;sbit DS1302_IO=P3^2;typedef struct systime{uchar cYear;uchar cMon;uchar cDay;uchar cHour;uchar cMin;uchar cSec;uchar cWeek;}SYSTIME;void DS1302_Write(uchar D){uchar i;for(i=0;i<8;i++){DS1302_IO=D&0x01;DS1302_SCLK=1;DS1302_SCLK=0;D=D>>1;}}uchar DS1302_Read(){uchar TempDat=0,i;for(i=0;i<8;i++){TempDat>>=1;if(DS1302_IO) TempDat=TempDat|0x80;DS1302_SCLK=1;DS1302_SCLK=0;}return TempDat;}void WDS1302(uchar ucAddr, uchar ucDat){DS1302_RST = 0;DS1302_SCLK = 0;DS1302_RST = 1;DS1302_Write(ucAddr); // 地址,命令DS1302_Write(ucDat); // 写1Byte数据DS1302_SCLK = 1;DS1302_RST = 0;}uchar RDS1302(uchar ucAddr){uchar ucDat;DS1302_RST = 0;DS1302_SCLK = 0;DS1302_RST = 1;DS1302_Write(ucAddr); // 地址,命令ucDat=DS1302_Read();DS1302_SCLK = 1;DS1302_RST = 0;return ucDat;}void SetTime(SYSTIME sys){WDS1302(YEAR,sys.cYear);WDS1302(MONTH,sys.cMon&0x1f);WDS1302(DAY,sys.cDay&0x3f);WDS1302(HOUR,sys.cHour&0xbf);WDS1302(MINUTE,sys.cMin&0x7f);WDS1302(SECOND,sys.cSec&0x7f);WDS1302(WEEK,sys.cWeek&0x07);}void GetTime(SYSTIME *sys){uchar uiTempDat;uiTempDat=RDS1302(YEAR|0x01);(*sys).cYear=(uiTempDat>>4)*10+(uiTempDat&0x0f);// uiTempDat=RDS1302(0x88|0x01);// (*sys).cMon=((uiTempDat&0x1f)>>4)*10+(uiTempDat&0x0f);uiTempDat=RDS1302(0x88|0x01);(*sys).cMon=((uiTempDat&0x1f)>>4)*10+(uiTempDat&0x0f);uiTempDat=RDS1302(DAY|0x01);(*sys).cDay=((uiTempDat&0x3f)>>4)*10+(uiTempDat&0x0f);uiTempDat=RDS1302(HOUR|0x01);(*sys).cHour=((uiTempDat&0x3f)>>4)*10+(uiTempDat&0x0f);uiTempDat=RDS1302(MINUTE|0x01);sys->cMin=((uiTempDat&0x7f)>>4)*10+(uiTempDat&0x0f);uiTempDat=RDS1302(SECOND|0x01);sys->cSec=((uiTempDat&0x7f)>>4)*10+(uiTempDat&0x0f);uiTempDat=RDS1302(MONTH|0x01);(*sys).cMon=uiTempDat&0x17;uiTempDat=RDS1302(WEEK|0x01);sys->cWeek=uiTempDat&0x07;}四、阴历程序设计由于DS1302没有阳历计时功能,因此阴历的计时与实现是要通过阳历日期来推导。

相关文档
最新文档