1 / 7
文档名称:

数字温度计.doc

格式:doc   大小:35KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数字温度计.doc

上传人:woyaonulifacai 2021/12/6 文件大小:35 KB

下载得到文件列表

数字温度计.doc

相关文档

文档介绍

文档介绍:数字温度计
韩哲
【摘要】本数字式温度计由AT89S1为控制器,通过DS18B20传感器检测并采集信号,把连续信号离散化,然后通过AT89S1处理DS1820采集到的离散信号,最后由单片机控制四位共阳极-99。9摄氏度。
【关键词】AT89S1 DS18B20 四位共阳极数码管
功能要求:
系统硬件电路的设计:
系统软件系统的设计:
#include<reg51.h〉  //包含单片机寄存器的头文件
#include<intrins.h〉 //包含_nop_()函数定义的头文件
sbit shi=P3^7 ;     //数码管选通脚
sbit ge=P3^6 ;     //数码管选通脚
sbit xiaoshu=P3^5 ;  //数码管选通脚
sbit DQ=P2^0;        //温度传感器输出端
unsigned char code shuju[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定义字符数组显示数字ﻩ         
unsigned char time; //设置全局变量,专门用于严格延时 
/*函数功能:延时1msﻩ(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒 **/ 
void delay1ms()
{
 unsigned char i,j;ﻩ
ﻩ for(i=0;i<10;i++)
ﻩ  for(j=0;j<33;j++)ﻩ ;ﻩ ﻩ ﻩ
 } 
void delaynms(unsigned char n)

  unsigned char i;
ﻩfor(i=0;i<n;i++)
ﻩ delay1ms();
}  
/*****************************************************
函数功能:将DS18B20传感器初始化,读取应答信号
出口参数:flag
***************************************************/
bit Init_DS18B20(void)ﻩ

 bit flag; //储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在
 DQ = 1;      //先将数据线拉高
for(time=0;time〈2;time++) //略微延时约6微秒
  ;
DQ = 0;       //再将数据线从高拉低,要求保持480~960us
for(time=0;time〈200;time++)  //略微延时约600微秒
;     //以向DS18B20发出一持续480~960us的低电平复位脉冲
DQ = 1;          //释放数据线(将数据线拉高)
for(time=0;time<10;time++)
; //延时约30us(释放总线后需等待15~60us让DS18B20输出存在脉冲)
flag=DQ;     //让单片机检测是否输出了