#include "key_deal.h"
#include "oled.h"
#include "ds1302.h"
#include "MMA7455.h"
//#include"IAPpragma.h"
void InitTimer0(void);
bit Up_flag,Down_flag,Change_Flag;
uchar data T1_num=0;
//unsigned char code week[7][3] = {"日\0","一\0","二\0","三\0","四\0","五\0","六\0"};
//unsigned int code Data_Addr1[7] = {0x3430,0x3630,0x3830,0x3a30,0x3c30,0x3e30,0x4030};
unsigned char WEEK[8] = {12,13,14,15,16,17,18};
/*void InitTimer1(void)
{
//让其工作在12T模式
TMOD=0x10;
TH1 = 0x1F;
TL1 = 0x00;
EA = 1;
CLR_TR1; //先不允许定时器1运行,默认工作在16位重装载模式
CLR_ET1; //先不使能定时器1中断
} */
void KeyScan(void)
{
uchar Num_Change = 0;
// uchar Num_Remenber = 0,num = 1,R_falg = 0;
// bit mode1 = 0;
// int start=1;
//unsigned int step_num=0;
bit mode = 0;
/* SET_ET1; //使能定时器1中断
EA = 1;
EX0 = 0;
TR0 = 0;
ET0 = 0;
EX1 = 0; */
OLED_Clear();
OLED_ShowCHinese(0,0,4); //时
OLED_ShowCHinese(16,0,5); //间
OLED_ShowCHinese(32,0,6); //调
OLED_ShowCHinese(48,0,7); //整
OLED_ShowString(64,0,":");
OLED_ShowCHinese(32,2,8); //年
OLED_ShowCHinese(64,2,9);//月
OLED_ShowCHinese(96,2,12);//日
OLED_ShowCHinese(0,6,10); //星
OLED_ShowCHinese(16,6,11); //期
OLED_ShowString(16,4,":");
OLED_ShowString(40,4,":");
OLED_ShowCHinese(32,6,WEEK[time_buf1[7]]);//周 //display_GB2312_string(5,16*7+1,week[time_buf1[7]]);
OLED_ShowNum(0+8*0,2,time_buf1[0]/10,1,8*16);//display_graphic_8x16(3,1+8*0,time_buf1[0]/10);
OLED_ShowNum(0+8*1,2,time_buf1[0]%10,1,8*16);//display_graphic_8x16(3,1+8*1,time_buf1[0]%10);
OLED_ShowNum(0+8*2,2,time_buf1[1]/10,1,8*16);//display_graphic_8x16(3,1+8*2,time_buf1[1]/10);
OLED_ShowNum(0+8*3,2,time_buf1[1]%10,1,8*16);//display_graphic_8x16(3,1+8*3,time_buf1[1]%10);
OLED_ShowNum(0+8*6,2,time_buf1[2]/10,1,8*16);//display_graphic_8x16(3,1+8*6,time_buf1[2]/10);
OLED_ShowNum(0+8*7,2,time_buf1[2]%10,1,8*16);//display_graphic_8x16(3,1+8*7,time_buf1[2]%10);
OLED_ShowNum(0+8*10,2,time_buf1[3]/10,1,8*16);//display_graphic_8x16(3,1+8*10,time_buf1[3]/10);
OLED_ShowNum(0+8*11,2,time_buf1[3]%10,1,8*16);//display_graphic_8x16(3,1+8*11,time_buf1[3]%10);
OLED_ShowNum(0+8*0,4,time_buf1[4]/10,1,8*16);//display_graphic_8x16(5,1+8*0,time_buf1[4]/10);
OLED_ShowNum(0+8*1,4,time_buf1[4]%10,1,8*16);//display_graphic_8x16(5,1+8*1,time_buf1[4]%10);
OLED_ShowNum(0+8*3,4,time_buf1[5]/10,1,8*16);//display_graphic_8x16(5,1+8*3,time_buf1[5]/10);
OLED_ShowNum(0+8*4,4,time_buf1[5]%10,1,8*16);//display_graphic_8x16(5,1+8*4,time_buf1[5]%10);
OLED_ShowNum(0+8*6,4,time_buf1[6]/10,1,8*16);//display_graphic_8x16(5,1+8*6,time_buf1[6]/10);
OLED_ShowNum(0+8*7,4,time_buf1[6]%10,1,8*16);//display_graphic_8x16(5,1+8*7,time_buf1[6]%10);
while(0 == Key_Mode);
//SET_TR1; //允许定时器1运行
while(0 == mode) //调整时间
{
if(0 == Key_Change)
{
delay_ms(8);
if(0 == Key_Change)
{
Num_Change++;
if(Num_Change == 7)
Num_Change = 0;
if(0 == Num_Change) //当跳进调整秒时,年的数据重新写一次,以此类推
{
OLED_ShowCHinese(32,6,WEEK[time_buf1[7]]);
OLED_ShowCHinese(0,6,10); //星
OLED_ShowCHinese(16,6,11); //期
}
else if(1 == Num_Change)
{
OLED_ShowNum(0+8*7,4,time_buf1[6]%10,1,8*16);//display_graphic_8x16(5,1+8*7,time_buf1[6]%10);
OLED_ShowNum(0+8*6,4,time_buf1[6]/10,1,8*16);
}
else if(2 == Num_Change)
{
OLED_ShowNum(0+8*4,4,time_buf1[5]%10,1,8*16);//display_graphic_8x16(5,1+8*4,time_buf1[5]%10);
OLED_ShowNum(0+8*3,4,time_buf1[5]/10,1,8*16);
}
else if(3 == Num_Change)
{
OLED_ShowNum(0+8*1,4,time_buf1[4]%10,1,8*16);//display_graphic_8x16(5,1+8*1,time_buf1[4]%10);
OLED_ShowNum(0+8*0,4,time_buf1[4]/10,1,8*16);
}
else if(4 == Num_Change)
{
OLED_ShowNum(0+8*11,2,time_buf1[3]%10,1,8*16);//display_graphic_8x16(3,1+8*11,time_buf1[3]%10);
OLED_ShowNum(0+8*10,2,time_buf1[3]/10,1,8*16);
}
else if(5 == Num_Change)
{
OLED_ShowNum(0+8*7,2,time_buf1[2]%10,1,8*16);//display_graphic_8x16(3,1+8*7, time_buf1[2]%10);
OLED_ShowNum(0+8*6,2,time_buf1[2]/10,1,8*16);
}
else
{
OLED_ShowNum(0+8*3,2,time_buf1[1]%10,1,8*16);//display_graphic_8x16(3,1+8*3,time_buf1[1]%10);
OLED_ShowNum(0+8*2,2,time_buf1[1]/10,1,8*16);
OLED_ShowNum(0+8*1,2,time_buf1[0]%10,1,8*16);
OLED_ShowNum(0+8*0,2,time_buf1[0]/10,1,8*16);
}
}
while(!Key_Change); //等待
delay_ms(8);
while(!Key_Change); //等待
}
if(T1_num >=5) //每个250毫秒闪烁一次
{
T1_num = 0;
switch(Num_Change)
{
case 0:Change_Flag = ~Change_Flag;
if(Change_Flag) //显示秒的地址闪烁
{
OLED_ShowNum(0+8*7,4,time_buf1[6]%10,1,8*16);//display_graphic_8x16(5,1+8*7,time_buf1[6]%10);
OLED_ShowNum(0+8*6,4,time_buf1[6]/10,1,8*16);
}
else
{OLED_ShowString(0+8*7,4," ");
OLED_ShowString(0+8*6,4," ");}
break;
case 1:Change_Flag = ~Change_Flag;
if(Change_Flag) //显示分的地址闪烁
{
OLED_ShowNum(0+8*4,4,time_buf1[5]%10,1,8*16); //display_graphic_8x16(5,1+8*4,time_buf1[5]%10);
OLED_ShowNum(0+8*3,4,time_buf1[5]/10,1,8*16);
}
else
{OLED_ShowString(0+8*4,4," ");
OLED_ShowString(0+8*3,4," ");}
break;
case 2:Change_Flag = ~Change_Flag; //显示时的地址闪烁
if(Change_Flag)
{
OLED_ShowNum(0+8*1,4,time_buf1[4]%10,1,8*16); //display_graphic_8x16(5,1+8*1,time_buf1[4]%10);
OLED_ShowNum(0+8*0,4,time_buf1[4]/10,1,8*16);
}
else
{OLED_ShowString(0+8*1,4," ");
OLED_ShowString(0+8*0,4," ");}
break;
case 3:Change_Flag = ~Change_Flag; //显示日的地址闪烁
if(Change_Flag)
{
OLED_ShowNum(0+8*11,2,time_buf1[3]%10,1,8*16); //display_graphic_8x16(3,1+8*11,time_buf1[3]%10);
OLED_ShowNum(0+8*10,2,time_buf1[3]/10,1,8*16);
}
else
{OLED_ShowString(0+8*11,2," ");
OLED_ShowString(0+8*10,2," ");}
break;
case 4:Change_Flag = ~Change_Flag; //显示月的地址闪烁
if(Change_Flag)
{
OLED_ShowNum(0+8*7,2,time_buf1[2]%10,1,8*16);//display_graphic_8x16(3,1+8*7,time_buf1[2]%10);
OLED_ShowNum(0+8*6,2,time_buf1[2]/10,1,8*16);
}
else
{OLED_ShowString(0+8*7,2," ");
OLED_ShowString(0+8*6,2," ");}
break;
case 5:Change_Flag = ~Change_Flag; //显示年的地址闪烁
if(Change_Flag)
{OLED_ShowNum(0+8*3,2,time_buf1[1]%10,1,8*16);//display_graphic_8x16(3,1+8*3,time_buf1[1]%10);
OLED_ShowNum(0+8*2,2,time_buf1[1]/10,1,8*16);
OLED_ShowNum(0+8*1,2,time_buf1[0]%10,1,8*16);
OLED_ShowNum(0+8*0,2,time_buf1[0]/10,1,8*16);
}
else
{OLED_ShowString(0+8*3,2," ");
OLED_ShowString(0+8*2,2," ");
OLED_ShowString(0+8*1,2," ");
OLED_ShowString(0+8*0,2," ");
}
break;
case 6:Change_Flag = ~Change_Flag; //显示周的地址闪烁
if(Change_Flag)
{
OLED_ShowCHinese(32,6,WEEK[time_buf1[7]]);//display_GB2312_string(5,16*7+1,week[time_buf1[7]]);
OLED_ShowCHinese(0,6,10); //星
OLED_ShowCHinese(16,6,11); //期
}
else
{OLED_ShowCHinese(32,6,29);
OLED_ShowCHinese(16,6,29);
OLED_ShowCHinese(0,6,29);}
break;
}
}
if(0 == Key_Up)
{
delay_ms(8);
if(0 == Key_Up)
{
Up_flag = 1;
}
while(!Key_Up);
delay_ms(8);
while(!Key_Up);
}
if(0 == Key_Down)
{
delay_ms(8);
if(0 == Key_Down)
{
Down_flag = 1;
}
while(!Key_Down);
delay_ms(8);
while(!Key_Down);
}
if(0 == Key_Mode)
{
delay_ms(8);
if(0 == Key_Mode
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本作品设计了一种可以同时检测心率和体温,并可以实现计步功能的手表,该装置包括单片机控制器、MLX90614红外测温模块、MMA7455计步模块、系统实时时钟、Pulse Sensor心率模块、OLED12864显示模块、nRF24L01无线通信模块和计算机控制软件、电源九部分。 利用MLX90614红外测温模块及Pulse Sensor心率模块采集到人的实时体温和心率数据,通过nRF24L01无线通信模块将采集到的数据发送到单片机控制器,经过STC89LE5A60S2微控制器进行数据处理,再将数据传到OLED12864显示,并通过数据线串口发送数据到电脑,然后通过LabVIEW软件对采集到的数据进一步的处理和分析。
资源推荐
资源详情
资源评论
收起资源包目录
比赛作品_程序.rar (75个子文件)
比赛作品_程序
MLX90614程序-发送-耳温
MLX90614_uvopt.bak 59KB
mian.h 236B
MLX90614.uvopt 59KB
MLX90614.LST 19KB
MLX90614.M51 33KB
mian.__i 47B
MLX90614.plg 198B
MLX90614.OBJ 18KB
Target 1.BAT 494B
MLX90614.__i 51B
stc15.h 9KB
MLX90614.hex 9KB
MLX90614_uvproj.bak 13KB
mian.LST 4KB
NRF24L01.c 8KB
NRF24L01.__i 51B
NRF24L01.LST 12KB
MLX90614.c 8KB
mian.c 2KB
NRF24L01.OBJ 10KB
mian.OBJ 7KB
MLX90614.lnp 78B
MLX90614.uvproj 13KB
MLX90614 31KB
MLX90614.h 2KB
NRF24L01.h 848B
手表显示
OLED_uvopt.bak 64KB
OLED_uvproj.bak 14KB
key_deal.LST 37KB
key_deal1jibu.c 6KB
STARTUP.LST 14KB
OLED 106KB
OLED.uvgui_Administrator.bak 73KB
DS1302.h 2KB
key_deal1jibu.OBJ 20KB
oled.c 8KB
plues.c 85B
main.OBJ 31KB
key_deal.OBJ 29KB
OLED.uvgui_txj.bak 74KB
pluse.h 0B
STARTUP.A51 6KB
jibu.h 6KB
plues.LST 918B
MMA7455.h 2KB
DS1302.c 4KB
OLED.uvopt 64KB
OLED.uvproj 14KB
main.LST 27KB
oled.lst 12KB
NRF24L01.c 10KB
OLED.M51 87KB
OLED.uvgui.txj 74KB
key_deal.h 644B
NRF24L01.LST 16KB
OLED.plg 188B
plues.OBJ 4KB
NRF24L01.OBJ 14KB
手环显示.uvopt 56KB
STARTUP.OBJ 749B
手环显示_uvopt.bak 56KB
oled.obj 21KB
OLED.lnp 124B
OLED.hex 42KB
key_deal.c 15KB
main.c 14KB
key_deal1jibu.LST 14KB
DS1302.LST 8KB
OLED.uvgui.Administrator 73KB
SRC
oled.c 6KB
bmp.h 11KB
oled.h 2KB
oledfont.h 17KB
DS1302.OBJ 8KB
NRF24L01.h 1KB
共 75 条
- 1
资源评论
无限虚空
- 粉丝: 1244
- 资源: 182
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功