找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2767|回復(fù): 1
收起左側(cè)

單片機(jī)+MLX90614的無(wú)接觸自動(dòng)測(cè)溫系統(tǒng)程序設(shè)計(jì)

[復(fù)制鏈接]
ID:893997 發(fā)表于 2021-12-29 10:35 | 顯示全部樓層 |閱讀模式
紅外測(cè)量為人體溫度提供了快速,非接觸式測(cè)量手段,但傳統(tǒng)的測(cè)溫需要人們手動(dòng)拿著測(cè)溫槍去測(cè)溫,非常的不方便,本項(xiàng)目由STC89C52RC單片機(jī)為控制器,采用非接觸式紅外傳感器MLX90614來(lái)測(cè)量溫度。

采用0.91寸OLED12864作顯示屏幕,按鍵是打算帶手動(dòng)調(diào)節(jié)校正的,預(yù)計(jì)在下一個(gè)版本結(jié)合另外兩個(gè)傳感器進(jìn)行環(huán)境溫度補(bǔ)償和距離補(bǔ)償。

51hei圖片_20211229102753.jpg

單片機(jī)源程序如下:
#include"GY906.h"
#include"intrins.h"
bdata uchar flag;//可位尋址數(shù)據(jù)
sbit bit_out=flag^7;
sbit bit_in=flag^0;
uchar DataH,DataL,Pecreg;
//*********輸入轉(zhuǎn)換并顯示*********
void Init()
{
SCL=1;SDA=1;_nop_();
_nop_();_nop_();_nop_();
SCL=0;
delay(1000);
SCL=1;
}
//************************************
void start_bit(void)
{
SDA=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
}
//------------------------------
void stop_bit(void)
{
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1;
}
//---------發(fā)送一個(gè)字節(jié)---------
void tx_byte(uchar dat_byte)
{
char i,n,dat;
n=Nack_counter;
TX_again:
dat=dat_byte;
for(i=0;i<8;i++)
{
if(dat&0x80)
bit_out=1;
else
bit_out=0;
send_bit();
dat=dat<<1;
}
receive_bit();
if(bit_in==1)
{
stop_bit();
if(n!=0)
{n--;goto Repeat;}
else
goto exit;
}
else
goto exit;
Repeat:
start_bit();
goto TX_again;
exit: ;
}
//-----------發(fā)送一個(gè)位---------
void send_bit(void)
{
if(bit_out==0)
SDA=0;
else
SDA=1;
_nop_();
SCL=1;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
SCL=0;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}
//----------接收一個(gè)字節(jié)--------
uchar rx_byte(void)
{
uchar i,dat;
dat=0;
for(i=0;i<8;i++)
{
dat=dat<<1;
receive_bit();
if(bit_in==1)
dat=dat+1;
}
send_bit();
return dat;
}
//----------接收一個(gè)位----------
void receive_bit(void)
{
SDA=1;bit_in=1;
SCL=1;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
bit_in=SDA;
_nop_();
SCL=0;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}
//------------延時(shí)--------------
void delay(uint N)
{
uint i;
for(i=0;i<N;i++)
_nop_();
}
//------------------------------
uint memread(void)
{
start_bit();
tx_byte(0x00); //Send SlaveAddress
tx_byte(0x07); //Send Command
//------------
start_bit();
tx_byte(0x01);
bit_out=0;
DataL=rx_byte();
bit_out=0;
DataH=rx_byte();
bit_out=1;
Pecreg=rx_byte();
stop_bit();
return(DataH*256+DataL);
}

Keil代碼下載: 程序.rar (162.36 KB, 下載次數(shù): 56)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1052693 發(fā)表于 2022-11-18 20:00 | 顯示全部樓層
mlx90614的熱繼電器怎么用知道嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表