基于51单片机的温度测量系统

[09-12 18:16:56]   来源:http://www.88dzw.com  单片机学习   阅读:8957

文章摘要:1.3 报警电路简介 本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会叫个不停)和一个发光二极管组成(如图3所示)。在这次设计中蜂鸣器是通过ULN2003电流放大IC来控制。在我们所要求的温度达到一定的上界或者下界时(在文中我们设置的上界温度是45℃,下界温度是5℃),报警电路开始工作,主要程序设计如下: main()//主函数 {unsigned char i=0; unsigned int m,n; while(1) {i=ReadTemperatur

基于51单片机的温度测量系统,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

1.3    报警电路简介

     本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会叫个不停)和一个发光二极管组成(如图3所示)。在这次设计中蜂鸣器是通过ULN2003电流放大IC来控制。在我们所要求的温度达到一定的上界或者下界时(在文中我们设置的上界温度是45℃,下界温度是5℃),报警电路开始工作,主要程序设计如下:
main()//主函数                              
{unsigned char i=0;
 unsigned int m,n;
  while(1)
  {i=ReadTemperature();//读温度}
 if(i>0 && i<=10)      //如果温度在0到10度之间直接给七段数码管赋值
 {P1=designP1[i];}
 else//如果温度大于10度
 {m=i%10;//先给第一个七段数码管赋值
  D1=1;
  D2=0;
  P1=designP1[m];                             
  n=i/10;//再给第二个七段数码管赋值
  D1=0;
  D2=1;
  P1=designP1[n];
  if(n>=4&&m>=5)%%(m<=5)//判断温度的取值范围,如果大于45或小于5度,则蜂鸣器叫,发光二极管闪烁
  { int a,b;
   Q1=1;//蜂鸣器叫
   for(a=0;a<1000;a++)//发光二极管闪烁
   for(b=0;b<1000;b++)
    Q2=1;
   for(a=0;a<1000;a++)
   for(b=0;b<1000;b++)
    Q2=0;}}}


二.系统软件设计

2.1 温度部分软件设计                                      

     DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。程序主要函数部分如下:

(1)初始化函数
//读一个字节函数
ReadOneChar(void)
{unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
 { DQ = 0; // 给脉冲信号
  dat>>=1;
  DQ = 1; // 给脉冲信号
  if(DQ)
   dat|=0x80;
  delay(4);}
 return(dat);}
//写一个字节函数
WriteOneChar(unsigned char dat)
{unsigned char i=0;
 for (i=8; i>0; i--)
 {DQ = 0;
  DQ = dat&0x01;
  delay(5);
  DQ = 1;
  dat>>=1;}}
(2)读取温度并计算函数
ReadTemperature(void)

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行