資源簡介
利用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
評論
共有 條評論