资源简介

连夜帮人做的毕业设计。

主要实现DS18B20分布式多点测温
主机只进行通道选择和显示(1602四线方式)
从机接收主机的控制信号并选择相应器件测温(共控制8个18b20)。
住从机之间通过232总线或485总线通信

参考了一个多点测温的例子,修改了显示部分,增加了总线通信,proteus仿真通过(7.4版本)

压缩包内容:
原始参考程序及仿真,232总线,485总线通信方式的程序及仿真。最终修改的程序(232总线)。

资源截图

代码片段和文件信息


#include
#include “LCD1602.h“


unsigned  int shu[]={0x300x310x320x330x340X350x360x370x380x39};
unsigned long t;



unsigned char kf=0;

sbit DS=P1^1; //18b20


void del( int count )  //延时程序
{while(count--)
  ;
}


void delay(unsigned int count)//延时程序
{int p;
 while(count--)
 for(p=0;p<125;p++);
}


void write(unsigned char date)//向DS18B20中写入数据
{ int i;
  for(i=0;i<8;i++)  //由于是单总线每次只能写一位,一个字节需循环8次
  {DS=0;              //主机在某一时刻将总线从高电平拉到低电平,产生写时间隙
   DS=date&0x01; // 写入数据。
   del(15);             //写如数据要15usds18b20对数据采样需要15us~60us,共需35us~70us.
   DS=1;
   date>>=1;
   }
 }
///////////////////////////////////////////////////////删!
   void init(unsigned int n)//  RW=0RS=0;向指令寄存器中写入命令,即对1602初始化。
{ delay(10);
  E=0;
  RS=0;
  RW=0;
  E=1;
  P0=n;
  E=0;
 }


void write_data(unsigned char n)//RS=1RW=0;向数据寄存器中写入数据,即显示的数符。
 {delay(10);
   E=0;
RS=1;
RW=0;
E=1;
P0=n;
             E=0;
  }





  void flcd_1602()           //当为负温度时,液晶显示可以高位为0屏蔽.
 { init(0x80);write_data(0x4e);//NO  
   init(0x81);write_data(0x4f);
   init(0x82);write_data(0x80);

   
   init(0x85);write_data(0x74);//temperature 
   init(0x86);write_data(0x65); 
   init(0x87);write_data(0x6d);  
   init(0x88);write_data(0x70);  
   init(0x89);write_data(0x65);  
   init(0x8a);write_data(0x72);
   init(0x8b);write_data(0x61);  
   init(0x8c);write_data(0x74);  
   init(0x8d);write_data(0x75);  
   init(0x8e);write_data(0x72);
   init(0x8f);write_data(0x65);
  
   init(0xc0);write_data(0x80);
   init(0xc1);write_data(0x80);
   init(0xc2);write_data(0x69); //is: 
   init(0xc3);write_data(0x73);  
   init(0xc4);write_data(0x3a); 
 
  if((t/1000%10)!=0)
{init(0xc5);write_data(0x2d);  
     init(0xc6);write_data(shu[t/1000%10]);
 init(0xc7);write_data(shu[t/100%10]);  
}
else
{init(0xc5);write_data(0xfe);  
     init(0xc6);write_data(0x2d);
 init(0xc7);write_data(shu[t/100%10]);  
}
init(0xc8);write_data(0x2e);
    init(0xc9);write_data(shu[(t%100)/10]); 
init(0xca);write_data(shu[t%10]);
init(0xcb);write_data(0x27);
init(0xcc);write_data(0x43);
init(0xcd);write_data(0x80);
init(0xce);write_data(0x80);
init(0xcf);write_data(0x80);
 }

 void lcd_1602()              //当为正温度时,液晶显示可以高位为0屏蔽.
 { init(0x80);write_data(0x4e);//NO  
   init(0x81);write_data(0x4f);
   init(0x82);write_data(0x80);

   init(0x84);write_data(0x80);
   init(0x85);write_data(0x74); //temperature 
   init(0x86);write_data(0x65);  
   init(0x87);write_data(0x6d);  
   init(0x88);write_data(0x70);  
   init(0x89);write_data(0x65);
   init(0x8a);write_data(0x72);  
   init(0x8b);write_data(0x61);  
   init(0x8c);write_data(0x74);  
   init(0x8d);write_data(0x75);
   init(0x8e);write_data(0x72);
   init(0x8f);write_data(0x65);

   init(0xc0);write_data(0x80);
   init(0xc1);write_data(0x80);
   init(0xc2);write_data(0x69); //is: 
   init(0xc3);write_data(0x73);  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     232847  2009-05-15 18:29  DS18B20子程序详细介绍.pdf

     目录          0  2009-05-18 19:42  最终修改

     文件      94337  2009-05-18 01:37  最终修改\Last Loaded 最终设计.DBK

     文件     103703  2009-05-18 02:01  最终修改\最终设计.DSN

     文件       3366  2009-05-18 19:44  最终修改\最终设计.PWI

     目录          0  2009-05-18 19:42  最终修改\从机

     文件       2054  2009-05-16 15:03  最终修改\从机\chuankou.h

     文件       1760  2009-05-17 16:18  最终修改\从机\main.c

     文件       3928  2009-05-17 16:18  最终修改\从机\main.LST

     文件      15128  2009-05-17 16:18  最终修改\从机\main.OBJ

     文件       3210  2009-05-17 15:59  最终修改\从机\xuanze.h

     文件      13561  2009-05-17 16:18  最终修改\从机\从机

     文件       3970  2009-05-17 16:18  最终修改\从机\从机.hex

     文件         25  2009-05-17 16:18  最终修改\从机\从机.lnp

     文件      17912  2009-05-17 16:18  最终修改\从机\从机.M51

    .......      1342  2009-05-17 20:47  最终修改\从机\从机_Opt.Bak

     文件        176  2009-05-18 19:48  最终修改\从机\从机.plg

    .......      2087  2009-05-17 20:47  最终修改\从机\从机_Uv2.Bak

     文件       2098  2009-05-18 19:48  最终修改\从机\从机.Uv2

     文件       1342  2009-05-18 19:48  最终修改\从机\从机.Opt

     目录          0  2009-05-18 19:42  最终修改\主机

     文件       5933  2009-05-17 19:55  最终修改\主机\1602.h

     文件       2176  2009-05-16 10:33  最终修改\主机\chuankou.h

     文件       5755  2009-05-17 20:07  最终修改\主机\l1602.h

     文件       4235  2009-05-18 01:17  最终修改\主机\LCD1602.h

     文件       2979  2009-05-18 01:26  最终修改\主机\main.c

     文件       7321  2009-05-18 01:26  最终修改\主机\main.LST

     文件      24212  2009-05-18 01:26  最终修改\主机\main.OBJ

     文件       3164  2009-05-16 19:52  最终修改\主机\xuanze.h

     文件      21642  2009-05-18 01:26  最终修改\主机\主机

............此处省略115个文件信息

评论

共有 条评论