多功能电子时钟说明文档文档格式.docx

上传人:b****6 文档编号:16171986 上传时间:2022-11-21 格式:DOCX 页数:16 大小:197.57KB
下载 相关 举报
多功能电子时钟说明文档文档格式.docx_第1页
第1页 / 共16页
多功能电子时钟说明文档文档格式.docx_第2页
第2页 / 共16页
多功能电子时钟说明文档文档格式.docx_第3页
第3页 / 共16页
多功能电子时钟说明文档文档格式.docx_第4页
第4页 / 共16页
多功能电子时钟说明文档文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

多功能电子时钟说明文档文档格式.docx

《多功能电子时钟说明文档文档格式.docx》由会员分享,可在线阅读,更多相关《多功能电子时钟说明文档文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

多功能电子时钟说明文档文档格式.docx

能将环境的温度显示出来,精确度为0.1℃;

6.能自动提示人体对环境温度的感知程度,分别为“Cold”、“Warm”、“Hot”,即“冷”、“暖和”、“热”;

7.能自动显示当前闹钟所处的状态,即为开还是关闭状态;

8.当前时间与设定的闹钟时间一致时,闹钟闹响。

并能够通过两个按键或者遥控器止闹;

9.整点报时功能;

10.通过短响一下来判断按键是否按下;

11.将星期作为一个单独的显示,并能通过按键或者遥控器调节;

12.看门狗功能,能够在程序跑飞的情况下将系统自动复位,且从程序跑飞到复位不超过1S钟,与I2C配合,最大程度保证了程序跑飞后

时间的准确性;

二、状态显示转换图:

状态1:

当前时间(16:

38);

备注:

秒显示每秒变动一次;

状态2:

显示日期(090709);

状态3:

显示闹钟(06:

28);

状态4:

显示秒(:

30);

秒前面的“:

状态5:

交替显示时间和日期;

每秒切换显示

状态6:

同状态4;

状态7:

调年(09);

其它内容(如温度、星期、红外解码等)照常显示

状态8:

调月(09);

状态9:

调日(09);

状态10:

调星期

(1);

为了区别,调星期的时候星期会每秒闪一次

状态11:

调闹钟时(06);

状态12:

调闹钟分(28);

状态13:

调小时(07);

状态14:

调分钟(30);

其它内容(如温度、星期、红外解码等)照常显示,这时,秒清零,时间暂停

状态15:

显示停(16:

显示一个停止的时间,这时时间不走了;

三、按键转换图

按键A转换图(红外键A):

1)、1.当前时间->

5.交替显示时间和日期->

7.调年->

8.调月->

9.调日->

10.调星期->

11.调闹钟时->

12.调闹钟分->

13.调小时->

14.调分(停表)->

15.显示停->

1.当前时间;

2)、4(或6).显示秒->

7.调年;

按键B转换图(红外键B):

2.显示日期->

3.显示脑钟->

4.显示秒->

1.显示时间;

2)、5.交替显示时间和日期->

6.显示秒->

5.交替显示时间和日期;

3)、7.调年->

年加一;

4)、8.调月->

月加一;

5)、9.调日->

日加一;

6)、10.调星期->

星期加一;

7)、11.调闹钟时->

闹钟时加一;

8)、12.调闹钟分->

闹钟分加一;

9)、13.调小时->

小时加一;

10)、14.调分(停表)->

分加一,并将秒清零,停表;

四、硬件电路图

五、实际显示效果图

 

1、硬件组成

2、显示效果

3、遥控调试时间状态下

4、LED用二进制显示当前红外编码状态;

六、主程序:

(程序比较长,整个代码的CODE为4866Byte,是通过多个C文件来实现,通过调用头文件的方式来调用函数,可以再打开Keil工程文件看)

#include"

Initial.h"

Display.h"

KeyandSpeaker.h"

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

程序说明:

主函数

入口:

返回值:

主循环里面的执行时间过长,有一秒一上了,主要是因为LCD只能用延时的方法来跳过查忙,想办法将里面的时间缩短。

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

voidmain(void)

{

Init_MCU();

//初始化MCU

Init_I2C();

//初始化I2C

Init_LCD();

//初始化LCD1602

Init_Time();

//先初始化时间和先读I2C有区别。

先初始化时间:

以后开机的时间是从I2C读出,初始化失效。

//先读I2C:

第一次读出的是乱码,因为I2C里面没有写入想要的数据。

故第一次下载程序到MCU要后初始化MCU

//然后在把顺序改过来,即先初始化MCU,然后读I2C。

//将I2C里面的时间、日期、星期、闹钟等信息先读出来

Second=RandomRead_I2C(0x00);

Delay_Nms

(1);

Minute=RandomRead_I2C(0x01);

Hour=RandomRead_I2C(0x02);

Day=RandomRead_I2C(0x03);

Mounth=RandomRead_I2C(0x04);

Year=RandomRead_I2C(0x05);

Alarm_Hour=RandomRead_I2C(0x06);

Alarm_Minute=RandomRead_I2C(0x07);

Week=RandomRead_I2C(0x08);

//Init_Time();

//主循环

while

(1)

{

WDTRST=0x3c;

//由于在按键调节分钟的时候要停定时器2,这时不能在定时器喂狗,故到主程序里喂狗;

SpitTime();

//拆分时间数据

SpitDate();

//拆分日期数据

SpitAlarm();

//拆分闹钟数据

KeyAFunc();

//按键A检测函数

KeyBFunc();

//按键B检测函数

Display();

//显示函数

tmpchange();

//温度转换函数,将其与温度读取函数隔远,让其有充足时间转换;

LCD_WriteNChar(13,1,2,"

D:

"

);

//在星期前面写入"

,以方便辨认;

//LCD_WriteOneChar(15,1,Week+'

0'

//闹钟模块

if((Alarm_Hour==Hour)&

&

(Alarm_Minute==Minute))

{

if(AlarmStopFlag==0)

{

LCD_WriteNChar(5,1,6,"

AR:

On"

//智能显示当前闹钟状态

Alarm_SP_Fun();

//闹响

}

}//闹钟功能

else

LCD_WriteNChar(5,1,6,"

Off"

AlarmStopFlag=0;

}

//整点报时模块;

if((Minute==00)&

(Second<

1))

Pip_SP_Fun();

//将时间、日期、星期、闹钟等信息写入I2C;

if(Write_I2C_Flag==1)

Write_I2C_Flag=0;

WriteByte_I2C(0x00,Second);

Delay_Nms

(1);

WriteByte_I2C(0x01,Minute);

WriteByte_I2C(0x02,Hour);

WriteByte_I2C(0x03,Day);

WriteByte_I2C(0x04,Mounth);

WriteByte_I2C(0x05,Year);

WriteByte_I2C(0x06,Alarm_Hour);

WriteByte_I2C(0x07,Alarm_Minute);

WriteByte_I2C(0x08,Week);

//读取温度

TempValue=tmp();

//拆分温度

temp[0]=TempValue/100+'

;

temp[1]=TempValue%100/10+'

temp[3]=TempValue%10+'

LCD_WriteNChar(0,1,4,temp);

//显示温度

//智能显示环境温度对人体体感模块

if(TempValue>

25)

LCD_WriteNChar(3,0,4,"

Hot"

elseif((TempValue>

=15)&

(TempValue<

=25))

Warm"

Cold"

//红外解码模块

if(IrOK==1)

show[1]=Im[2]&

0x0F;

//取键码的低四位

show[0]=Im[2]>

>

4;

IrOK=0;

if(show[1]>

0x09)

show[1]='

A'

+show[1]-0x0a;

else

show[1]+='

if(Im[2]==0x01)

IrFlag1=1;

elseif(Im[2]==0x02)

IrFlag2=1;

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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