广告

原创 温度传感器的采集与显示

2009-5-3 19:54 1075 0 分类: MCU/ 嵌入式

目的:用温度传感器采集温度,读给单片机,再把数据用数码管显示.这里也可以用PC机接收后保存,对温度进行时时监控.


程序:


#include <reg52.h>
#define uchar unsigned char;
sbit DQ="P1"^4;
unsigned char lab,mab;
//-------------------------------------------------------------
void delay2(int i)
{
  while(--i);
}
//---------------------------------------------------------------
void init()
{
 bit put;
 DQ=0;
 delay2(300);
 DQ=1;
 delay2(20);
 put=DQ;
 delay2(100);
}
//--------------------------------------------------------------------
uchar readbit()
{ bit p;
  DQ="0";
  if(p==1)
  {
   DQ="1";
  }
  delay2(5);
  DQ="1";
  delay2(20);
  return (p);
}
//-----------------------------------------------------------------------
void writebit(char q)
{
  DQ="0";
  delay2(5);
  if(q==1)
  {
   DQ="1";
   delay2(20);
  }
  else
   delay2(20);
   DQ="1";
}
//------------------------------------------------------------------------
void writebyte(char dat)
{
 char j,temp;
 for(j=0;j<8;j++)
 {
  temp="dat">>j;
  temp="temp"&0x01;
  writebit(temp);
 }
 delay2(40);
}
//---------------------------------------------------------------------------
uchar readbyte()
{
 char k,save;
 for(k=0;k<8;k++)
 {
  if(readbit())
    {
   save="save|"(0x01<<k);
 }
 }
    delay2(40);
}
//------------------------------------------------------------------------------
void convert_T()
{
  init();
  delay2(5);
  writebyte(0xCC);
  writebyte(0x44);
}
//----------------------------------------------------------------------------------
void readtemperature()
{
 init();
 delay2(5);
 writebyte(0xCC);
 writebyte(0xBE);
 lab=readbyte();
 mab=readbyte();
}
//-----------------------------------------------------------------------------------
void main()
{
 do
  {
  P2=0x7F;
  init();
  delay2(5);
  convert_T();
  delay2(300000);
  readtemperature();
  }
 while(1);
}

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
huxiao9178 2009-05-28 23:41
为什么I2C 芯片24C02 只能发送最多8个数据呢?
<急求>为什么I2C 芯片24C02 只能发送最多8个数据呢?我做I2C串口通信时 ,用24C02芯片,每次只能一次最多发 8个数据,可其芯片文档说可以发送16 位数据,有哪位高人能够给我...
huxiao9178 2009-05-03 17:36
完整的I2C串口通讯程序
说明:该程序今本人调试成功,在这是用数码管显示单片机中储存的数据。可以应用到用PC主机控制其它设备的系统中。#include <reg52.h>#define uchar unsigned...
我要评论
0
0
广告
关闭 热点推荐上一条 /1 下一条