文档库 最新最全的文档下载
当前位置:文档库 › 51单片机中使用LM75A温度传感器的简单实例

51单片机中使用LM75A温度传感器的简单实例

/*

本程序使用LM75A数字温度传感器对环境温度的测量,显示格式如下0XX.XXC

其中最高位0代表符号位,XX.XX为显示位数,保留两位小数,C为温度单位摄氏度。*/

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit led1= P1^0;

sbit led2= P1^1;

sbit led3= P1^2;

sbit bell= P1^3;

sbit P1_5=P1^5;

sbit P1_6=P1^6;

sbit P1_7=P1^7;

sbit SCL= P3^6;

sbit SDA= P3^7;

bit ack;

uchar data LM75A=0x90; // LM75A 的I2C 地址

uchar data temp[2]={0};

uchar s=0;

uchar z;

uchar x;

uchar flag=0;

uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};//0~9 uchar code zfs[]={0xfc,0x02};//+/-

uchar code Tab[8]={0,12,25,37,50,62,75,87};

void Start_I2c();

void Stop_I2c();

void SendByte(uchar);

uchar RcvByte();

void Ack_I2c(bit);

void ReadTemp();

void ConvertTemp();

void delay(uint);

void control(uchar,uchar);

void disply(uchar,uchar,uchar); void alert();

void main()

{

P1=0x07;

while(1)

{

ReadTemp();//读取LM75A 当前温度值ConvertTemp();

alert();

disply(s,z,x);

}

}

void alert()

{

if(z>24) flag=1;

else {flag=0;bell=0;}

if(flag!=0) bell=1;

}

void delay(uint i)

{

while(i--) ;

}

void control(uchar con1,uchar con2) {

uchar i,j;

uchar s;

s=con1;

for(i=6;i>0;i--)

{

P1_7=0;delay(1);

P1_5=s%2;

s=s/2;

P1_7=1;delay(1);

}

j=con2;

for(i=8;i>0;i--)

{

相关文档
相关文档 最新文档