资源简介
利用51单片机采集GY906的温度数据,测量人体温度准确度较高。还带有EEPROM存储功能,可以存储三次数据,手动可查阅历史数据,语音播报采集的温度。
代码片段和文件信息
#include “reg52.h“
#include “stdio.h“
#include “LQ12864.h“
#include “GY906.h“
#include “eepom.h“
sbit celiang_flage = P2^0; //测量
sbit clear_flage = P2^2; //存储数据
sbit read_flage = P2^1; //读取数据
sbit LED = P2^3; //灯光
unsigned int temp_int;
unsigned int temp ;
unsigned int ceshi ;
uchar save_flage = 0 duqu_flage = 0; //存储标号
uchar bianhao_numclear_eepom; //数据编号 存储清零标志
uint temp_[3]={0};
uint biaohao_num_[3]={0};
uchar diaplay_5s = 0; //读取显示
uchar flage_5s; //5s计时
uint zhancun;
uchar first_flage = 1;
/*
oled:
sbit SCL_OLED=P1^6; //串行时钟
sbit SDA_OLED=P1^7; //串行数据
按键 p20/p21
//mlx90614 端口定义
sbit SCL=P2^6;// 时钟线
sbit SDA=P2^7;// 数据线
*/
void oled_gd_diaplay()
{
OLED_P16x16Ch(007); //标号
OLED_P16x16Ch(2008); //
OLED_P16x16Ch(4002); //:
// dxzm(‘.‘700); //.
OLED_P16x16Ch(7000); //温
OLED_P16x16Ch(9001); //度
OLED_P16x16Ch(11002); //:
// dxzm(‘.‘700); //.
}
void oled_wendu()
{
char i;
if(temp > 0)
{
if (0 == diaplay_5s)
{
OLED_P16x16Ch(000); //温度
OLED_P16x16Ch(2001); //
OLED_P16x16Ch(4002); //:
//体温
// dxzm(((int)(temp)/100)+48500);
dxzm(((temp)/100)+48600);
dxzm(((temp)/10%10)+48700);
dxzm(‘.‘800);
dxzm(((temp)%10+48)900);
}
else //读取温度标志位等于 1
{
oled_gd_diaplay();
TR0 =1; //打开定时器
for(i = 0;i < 3;i++)
{
dxzm((biaohao_num_[i])+4820i*2+2); //编号
// dxzm((temp_[i]/1000)+4870i*2+2);
// dxzm((temp_[i]/100%10)+4880i*2+2);
// dxzm((temp_[i]%100/10)+4890i*2+2);
// dxzm(‘.‘100i*2+2); //.
// dxzm((temp_[i]%10+48)110i*2+2);
dxzm(0+4870i*2+2);
dxzm((temp_[i]/100)+4880i*2+2);
dxzm((temp_[i]/10%10)+4890i*2+2);
dxzm(‘.‘100i*2+2); //.
dxzm((temp_[i]%10)+48110i*2+2);
}
if(flage_5s >= 100) //显示5s
{
TR0 = 0;
diaplay_5s = 0;
flage_5s = 0;
OLED_Fill(00);
}
}
}
}
/******************把数据保存到单片机内部eepom中******************/
void write_eepom(uchar num)
{ char num_numi;
if(1 == first_flage)
{
SectorErase(0x2000);
first_flage = 0;
}
if(5 == num)
{
for(i=0;i<9;i++)
{
byte_write(0x2000+i0);
}
}
else if(num!=5)
{
num_num = num*3;
byte_write(0x2000+num_num(temp) % 256);
byte_write(0x2001+num_num(temp) / 256);
byte_write(0x2002+num_numnum);
}
}
/******************把数据从单片机内部eepom中读出来*****************/
void read_eepom(uchar tem_num uchar biao uchar num)
{
temp_[tem_num] = byte_read(0x2001+num*3);
temp_[tem_num] <<= 8;
temp_[tem_num] |= byte_read(0x2000+num*3);
biaohao_num_[biao] = byte_read(0x2002+num*3);
}
void read_all_data()
{
uchar i;
for(i =0;i<3;i++)
{
read_eepom(iii);
// delay(50);
}
}
void Tim_init()
{
SCON = 0x50; /* 010
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-03-10 18:24 人体测温度\
目录 0 2020-03-09 19:26 人体测温度\Listings\
文件 6503 2020-03-09 19:10 人体测温度\Listings\GY906.lst
文件 10384 2020-03-09 19:10 人体测温度\Listings\OLED12864.lst
文件 4334 2020-03-09 19:10 人体测温度\Listings\eepom.lst
文件 10233 2020-03-09 19:26 人体测温度\Listings\main.lst
文件 43232 2020-03-09 19:26 人体测温度\Listings\rentiwendu.m51
目录 0 2020-03-09 19:26 人体测温度\ob
文件 9853 2020-03-09 19:10 人体测温度\ob
文件 14111 2020-03-09 19:10 人体测温度\ob
文件 5387 2020-03-09 19:10 人体测温度\ob
文件 15386 2020-03-09 19:26 人体测温度\ob
文件 42464 2020-03-09 19:26 人体测温度\ob
文件 1104 2020-03-09 19:26 人体测温度\ob
文件 18902 2020-03-09 19:26 人体测温度\ob
文件 177 2020-03-09 19:26 人体测温度\ob
文件 5053 2020-03-09 19:26 人体测温度\main.c
目录 0 2019-06-10 19:08 人体测温度\project\
文件 3011 2019-05-11 15:26 人体测温度\project\GY906.c
文件 789 2019-05-11 21:05 人体测温度\project\GY906.h
文件 836 2019-05-08 20:37 人体测温度\project\LQ12864.h
文件 5775 2019-05-08 20:37 人体测温度\project\OLED12864.c
文件 27631 2019-05-08 20:05 人体测温度\project\codetab.h
文件 2248 2019-05-08 11:02 人体测温度\project\eepom.c
文件 1215 2019-05-08 11:02 人体测温度\project\eepom.h
文件 141176 2019-05-22 11:31 人体测温度\rentiwendu.uvgui.Administrator
文件 72946 2020-03-10 18:24 人体测温度\rentiwendu.uvgui.zhaoxiansen
文件 6694 2019-05-08 11:34 人体测温度\rentiwendu.uvopt
文件 14524 2019-05-08 11:34 人体测温度\rentiwendu.uvproj
相关资源
- PLX eeprom
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
- 基于51单片机的多通道数据采集范围控
- ADC0832ADC0809DAC0832三种芯片程序,c程序
- 基于51单片机的直流电机转速控制及显
- 高速公路快速放行提示系统
- 光敏电阻传感器模块4线制
- I2C串行EEPROM应用系统的健壮性设计
- 51单片机_DS1302时钟芯片_共阴数码管
- 基于51单片机的教室智能照明控制系统
- 基于单片机的智能低电阻测量仪
- 电动车智能充电桩全套
- 五路循迹智能小车
- 基于51单片机的交通灯设计
- 51 教室智能灯 控制系统
- 51单片机125Khz ID卡读卡程序
- 51单片机课程设计内含50多个课程设计
- 51单片机实现蜂鸣器的简易歌曲播放器
- 基于51单片机的智能十字路口交通灯系
- 51单片机编写的标准modbus协议通信模版
- SIM900A通过51单片机拨打电话程序
- at89c51单片机外文翻译
- CW2015 51单片机程序
- 基于51单片机的超声波测距技术实现含
- 基于51单片机射频密码锁设计门禁刷卡
- 基于51单片机的十字路口交通灯Protu
- 32x16LED汉子点阵显示屏
评论
共有 条评论