毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于单片机的温度实时监控系统设计 第10页

更新时间:2014-6-29:  来源:毕业论文

基于单片机的温度实时监控系统设计 第10页

  uchar i,j,dat;

  dat=0;

  for(i=1;i<=8;i++)

  {
    j=tmpreadbit();
    dat=(j<<7)|(dat>>1);   //读出的数据最低位在最前面,这样刚好//一个字节在DAT里
  }
  return(dat);             //将一个字节数据返回
}

void tmpwritebyte(uchar dat)  
{                           //写一个字节到DS18B20里

  uint i;
  uchar j;
  bit testb;
  for(j=1;j<=8;j++)
  {
    testb=dat&0x01;
    dat=dat>>1;
    if(testb)     // 写1部分
   {
      DS=0;

      i++;i++;
      DS=1;
      i=8;while(i>0)i--;
    }
    else
    {
     DS=0;       //写0部分
      i=8;while(i>0)i--;
      DS=1;
      i++;i++;
void tmpchange(void)  //发送温度转换命令
{
  dsreset();             //初始化DS18B20
  delayb(1);             //延时
  tmpwritebyte(0xcc);  // 跳过序列号命令
  tmpwritebyte(0x44);  //发送温度转换命令
}

int tmp()               //获得温度
{
  float tt;
  uchar a,b;
  dsreset();
  delayb(1);
  tmpwritebyte(0xcc);  
  tmpwritebyte(0xbe);    //发送读取数据命令
  a=tmpread();          //连续读两个字节数据
  b=tmpread();
  temp=b;
  temp<<=8;            
  temp=temp|a;         //两字节合成一个整型变量。
  tt=temp*0.0625;       //得到真实十进制温度值,因为DS18B20
//可以精确到0.0625度,所以读回数据的最低位代表的是
//0.0625度。
  temp=tt*10+0.5;   //放大十倍,这样做的目的将小数点后第一位
//也转换为可显示数字,同时进行一个四舍五入操作。
  return temp;     //返回温度值
}

void readrom()          //read the serial 读取温度传感器的序列号
{                      //本程序中没有用到此函数
  uchar sn1,sn2;
  dsreset();
  delayb(1);
  tmpwritebyte(0x33);
  sn1=tmpread();
  sn2=tmpread();
}

void delay10ms()           
  {
    uchar a,b;
    for(a=10;a>0;a--)
      for(b=60;b>0;b--);
  

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于单片机的温度实时监控系统设计 第10页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。