• 大小: 858KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签: 51单片机  protues  

资源简介

单片机温度测量,附源代码与protues仿真

资源截图

代码片段和文件信息

#include 
#include 
#define uint unsigned int
#define uchar unsigned char
sbit adrd=P3^7;                          //IO口定义
sbit adwr=P3^6;
sbit diola=P2^5;
sbit dula=P2^6;
sbit wela=P2^7;
sbit csda=P3^2;
sbit dawr=P3^6;
sbit DS=P2^2;           //define interface
uint temp;             // variable of temperature
uchar code table[]={0x3f0x060x5b0x4f0x660x6d0x7d //数码管编码
                        0x070x7f0x6f0x770x7c0x390x5e0x790x71};
uchar code table1[]={0xbf0x860xdb0xcf0xe60xed0xfd
                        0x870xff0xef};   //数码管个位显示,带小数点

void Init_Com(void); //串口初始化
void delay1(uint count);      //delay函数
void dsreset(void);   //复位DS18B20
void tmpwritebyte(uchar dat);   //向ds18b20写入八位设置数
void tmpchange(void);  //DS18B20 初始化
bit tmpreadbit(void);       //read a bit
uchar tmpread(void);   //向DS18B20读取数据
uint tmp()  ;             //获得当前温度
void wendu(); //温度函数
void display2(uint temp); //显示程序

void main()
{
while(1)
{ wendu();
//设置控温范围
/*if(tmp()<200)
{P1=0xff;}
else if(tmp()<190)
{P1=0x00;}
else if(tmp()>200)
{P1=0x0f;}*/
}
}

///////功能:串口初始化波特率9600,方式1///////
void Init_Com(void)
{
     TMOD = 0x20;
     PCON = 0x00;
     SCON = 0x50;
     TH1 = 0xFd;
     TL1 = 0xFd;
     TR1 = 1;
}
void delay1(uint count)      //delay
{
  uint i;
  while(count)
  {
    i=200;
    while(i>0)
    i--;
    count--;
  }
}
void dsreset(void)       //send reset and initialization command
{
  uint i;
  DS=0;
  i=103;
  while(i>0)i--;
  DS=1;
  i=4;
  while(i>0)i--;
}

void tmpwritebyte(uchar dat)   //write a byte to ds18b20
{
  uint i;
  uchar j;
  bit testb;
  for(j=1;j<=8;j++)
  {
    testb=dat&0x01;
    dat=dat>>1;
    if(testb)     //write 1
    {
      DS=0;
      i++;i++;
      DS=1;
      i=8;while(i>0)i--;
    }
    else
    {
      DS=0;       //write 0
      i=8;while(i>0)i--;
      DS=1;
      i++;i++;
    }

  }
}

void tmpchange(void)  //DS18B20 begin change
{
  dsreset();
  delay1(1);
  tmpwritebyte(0xcc);  // address all drivers on bus
  tmpwritebyte(0x44);  //  initiates a single temperature conversion
}

void display2(uint temp) //显示程序
{
   uchar A1A2A2tA3ser;
   ser=temp/10;
   SBUF=ser;
   A1=temp/100;
   A2t=temp%100;
   A2=A2t/10;
   A3=A2t%10;
   dula=0;
   P0=table[A1]; //显示十位
   dula=1;
   dula=0;

   wela=0;
   P0=0x7e;
   wela=1;
   wela=0;
   delay1(1);

   dula=0;
   P0=table1[A2]; //显示个位
   dula=1;
   dula=0;

   wela=0;
   P0=0x7d;
   wela=1;
   wela=0;
   delay1(1);

   P0=table[A3]; //显示小数位
   dula=1;
   dula=0;

   P0=0x7b;
   wela=1;
   wela=0;
   delay1(1);
}
bit tmpreadbit(void)       //read a bit
{
   uint i;
   bit dat;
   DS=0;i++;          //i++ for delay
   DS=1;i++;i++;
   dat=DS;
   i=8;while(i>0)i--;
   return (dat);
}

uchar tmpread(void)   //read a byte date
{
  uchar ijdat;
  dat

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-11-12 12:30  温度调节\
     目录           0  2012-11-18 12:08  温度调节\protues仿真\
     文件      151462  2012-11-11 21:20  温度调节\protues仿真\Last Loaded wendu.DBK
     文件      151526  2012-11-12 12:30  温度调节\protues仿真\wendu.DSN
     文件        1364  2012-11-18 12:08  温度调节\protues仿真\wendu.PWI
     目录           0  2012-11-12 12:30  温度调节\原理图\
     文件       50823  2012-11-11 11:13  温度调节\原理图\DS18B20.jpg
     文件      120274  2012-11-11 11:15  温度调节\原理图\串口部分.jpg
     文件      134153  2012-11-11 11:16  温度调节\原理图\八位LED.jpg
     文件      152877  2012-11-11 11:14  温度调节\原理图\六位数码管.jpg
     文件        6659  2012-11-12 12:27  温度调节\原理图\加热模块.png
     文件      155148  2012-11-11 11:13  温度调节\原理图\单片机部分.jpg
     文件      213608  2012-11-11 11:15  温度调节\原理图\数码管锁存器.jpg
     目录           0  2012-11-12 12:44  温度调节\程序\
     文件        4519  2012-11-11 11:01  温度调节\程序\123
     文件        3889  2012-11-12 12:49  温度调节\程序\123.c
     文件        4088  2012-11-11 11:01  温度调节\程序\123.hex
     文件          38  2012-11-11 11:01  温度调节\程序\123.lnp
     文件        7993  2012-11-11 11:01  温度调节\程序\123.LST
     文件       16279  2012-11-11 11:01  温度调节\程序\123.M51
     文件        4856  2012-11-11 11:01  温度调节\程序\123.OBJ
     文件         953  2012-11-11 11:21  温度调节\程序\123.Opt
     文件       15620  2012-11-11 11:01  温度调节\程序\123.plg
     文件           0  2012-11-11 09:19  温度调节\程序\123.uv2
     文件      151462  2012-11-11 21:20  温度调节\程序\Last Loaded wendu.DBK
     文件        1364  2012-11-12 12:30  温度调节\程序\wendu.PWI

评论

共有 条评论