当前位置:文档之家› 单片机温度采集程序

单片机温度采集程序

单片机温度采集程序
单片机温度采集程序

单片机温度采集程序

用一片DS18B20 构成测温系统,测量的温度精度达到0.1 度,测量的温度的范围在-20 度到+100 度之间,用8 位数码管显示出来。

由于DS18B20 是在一根I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

DS18B20 的读时序

对于DS18B20 的读时序分为读0 时序和读1 时序两个过程。

对于DS18B20 的读时隙是从主机把单总线拉低之后,在15 秒之内就得释放单总线,以让DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程,至少需要60us 才能完成。

对于DS18B20 的写时序仍然分为写0 时序和写 1 时序两个过程。

对于DS18B20 写0 时序和写1 时序的要求不同,当要写0 时序时,单总线要被拉低至少60us ,保证DS18B20 能够在15us 到45us 之间能够正确地采样IO 总线上的“0 ”电平,当要写1 时

序时,单总线被拉低之后,在15us 之内就得释放单总线。

本程序实现温度的采集并且实时在数码管上显示出来。

具体程序如下:

/*-----------------------------------------------

名称:18B20温度传感器

日期:2009.5

修改:无

内容:18B20单线温度检测的应用样例程序,请将18b20插紧,

然后在数码管可以显示XX.XC,C表示摄氏度,如显示25.3C表示当前温度25.3度

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include

#include

#define uchar unsigned char

#define uint unsigned int;

/******************************************************************/

/* 定义端口*/

/******************************************************************/

sbit seg1=P2^0;

sbit seg2=P2^1;

sbit seg3=P2^2;

sbit DQ=P1^3;//ds18b20 端口

sfr dataled=0x80;//显示数据端口

/******************************************************************/

/* 全局变量*/

/******************************************************************/

uint temp;

uchar flag_get,count,num,minute,second;

uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//7段数码管段码表共阳

uchar str[6];

/******************************************************************/

/* 函数声明*/

/******************************************************************/

void delay1(uchar MS);

unsigned int ReadTemperature(void);

void Init_DS18B20(void);

unsigned char ReadOneChar(void);

void WriteOneChar(unsigned char dat);

void delay(unsigned int i);

/******************************************************************/ /* 主函数*/ /******************************************************************/ main()

{

unsigned char TempH,TempL;

TMOD|=0x01;//定时器设置

TH0=0xef;

TL0=0xf0;

IE=0x82;

TR0=1;

P2=0x00;

count=0;

while(1)

{

str[5]=0x39; //显示C符号

str[1]=tab[TempH/100]; //十位温度

str[2]=tab[(TempH%100)/10]; //十位温度

str[3]=tab[(TempH%100)%10]|0x80; //个位温度,带小数点

str[4]=tab[TempL];

if(flag_get==1) //定时读取当前温度

{

temp=ReadTemperature();

if(temp&0x8000)

{

str[0]=0x40;//负号标志

temp=~temp; // 取反加1

temp +=1;

}

else

str[0]=0;

TempH=temp>>4;

TempL=temp&0x0F;

TempL=TempL*6/10;//小数近似处理

flag_get=0;

}

}

}

/******************************************************************/ /* 定时器中断*/

/******************************************************************/ void tim(void) interrupt 1 using 1//中断,用于数码管扫描和温度检测间隔

{

TH0=0xef;//定时器重装值

TL0=0xf0;

num++;

if (num==50)

{num=0;

flag_get=1;//标志位有效

second++;

if(second>=60)

{second=0;

minute++;

}

}

count++;

if(count==1)

{P2=0;

dataled=str[0];}//数码管扫描

if(count==2)

{P2=1;

dataled=str[1];}

if(count==3)

{ P2=2;

dataled=str[2];

}

if(count==4)

{ P2=3;

dataled=str[3];

}

if(count==5)

{ P2=4;

dataled=str[4];

}

if(count==6)

{ P2=5;

dataled=str[5];

count=0;}

}

/******************************************************************/ /* 延时函数*/ /******************************************************************/ void delay(unsigned int i)//延时函数

{

while(i--);

}

/******************************************************************/ /* 初始化*/ /******************************************************************/ void Init_DS18B20(void)

{

unsigned char x=0;

DQ = 1; //DQ复位

delay(8); //稍做延时

DQ = 0; //单片机将DQ拉低

delay(80); //精确延时大于480us

DQ = 1; //拉高总线

delay(10);

x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败

delay(5);

}

/******************************************************************/ /* 读一个字节*/ /******************************************************************/ unsigned char 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(5);

}

return(dat);

}

/******************************************************************/ /* 写一个字节*/ /******************************************************************/ void WriteOneChar(unsigned char dat)

{

unsigned char i=0;

for (i=8; i>0; i--)

基于单片机的多路温度采集系统毕业设计(论文)外文翻译

华南理工大学学院 本科毕业设计(论文)外文翻译 外文原文名Structure and function of the MCS-51 series 中文译名MCS-51系列的功能和结构 学院电子信息工程学院 专业班级自动化一班 学生黎杰明 学生学号 3 指导教师吴实 填写日期2016年3月10日 页脚.

外文原文版出处:《association for computing machinery journal》1990, V ol.33 (12), pp.16-ff 译文成绩:指导教师(导师组长)签名: 译文: MCS-51系列的功能和结构 MSC-51系列单片机具有一个单芯片电脑的结构和功能,它是英特尔公司的系列产品的名称。这家公司在1976年推出后,引进8位单芯片的MCS-48系列计算机后于1980年推出的8位的MCS-51系列单芯片计算机。诸如此类的单芯片电脑有很多种,如8051,8031,8751,80C51BH,80C31BH等,其基本组成、基本性能和指令系统都是相同的。8051是51系列单芯片电脑的代表。 一个单芯片的计算机是由以下几个部分组成:(1)一个8位的微处理器(CPU)。(2)片数据存储器RAM(128B/256B),它只读/写数据,如结果不在操作过程中,最终结果要显示数据(3)程序存储器ROM/EPROM(4KB/8KB).是用来保存程序一些初步的数据和切片的形式。但一些单芯片电脑没有考虑ROM/EPROM,如8031,8032,80C51等等。(4)4个8路运行的I/O接口,P0,P1,P2,P3,每个接口可以用作入口,也可以用作出口。(5)两个定时/计数器,每个定时方式也可以根据计算结果或定时控制实现计算机。(6)5个中断(7)一个全双工串行的I/UART(通用异步接收器I口/发送器(UART)),它是实现单芯片电脑或单芯片计算机和计算机的串行通信使用。(8)振荡器和时钟产生电路,需要考虑石英晶体微调能力。允许振荡频率为12MHz,每个上述的部分都是通过部数据总线连接。其中CPU是一个芯片计算机的核心,它是计算机的指挥中心,是由算术单元和控制器等部分组成。算术单元可以进行8位算术运算和逻辑运算,ALU单元是其中一种运算器,18个存储设备,暂存设备的积累设备进行协调,程序状态寄存器PSW积累了2个输入端的计数等检查暂时作为一个操作往往由人来操作,谁储存1输入的是它使操作去上暂时计数,另有一个操作的结果,回环协调。此外,协调往往是作为对8051的数据传输转运站考虑。作为一般的微处理器,解码的顺序。振荡器和定时电路等的程序计数器是一个由8个计数器为2,总计16位。这是一个字节的地址,其实程序计数器,是将在个人电脑进行。从而改变它的容可以改变它的程序进行。在8051的单芯片电脑的电路,

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

基于STC单片机的温度测量系统的研究 摘要:本文针对现有温度测量方法线性度、灵敏度、抗振动性能较差的不足,提出了一种基于STC单片机,采用Pt1000温度传感器,通过间接测量铂热电阻阻值来实现温度测量的方案。重点介绍了,铂热电阻测量温度的原理,基于STC实现铂热电阻阻值测量,牛顿迭代法计算温度,给出了部分硬件、软件的设计方法。实验验证,该系统测量精度高,线性好,具有较强的实时性和可靠性,具有一定的工程价值。 关键词:STC单片机、Pt1000温度传感器、温度测量、铂热电阻阻值、牛顿迭代法。 Study of Temperature Measurement System based on STC single chip computer Zhang Yapeng,Wang Xiangting,Xu Enchun,Wei Maolin Abstract:A method to achieve temperature Measurement by the Indirect Measurement the resistance of platinum thermistor is proposed. It is realized by the single chip computer STC with Pt1000temperature sensor.The shortcomings of available methods whose Linearity, Sensitivity, and vibration resistance are worse are overcame by the proposed method. This paper emphasizes on the following aspects:the principle of temperature measurement by using platinum thermistor , the measurement of platinum thermistor’s resistance based on STC single chip computer, the calculating temperature by Newton Iteration Method. Parts of hardware and software are given. The experimental results demonstrate that the precision and linearity of the method is superior. It is also superior in real-time character and reliability and has a certain value in engineering application. Keywords: STC single chip computer,Pt1000temperature sensor,platinum thermistor’s resistance,Newton Iteration Method 0 引言 精密化学、生物医药、精细化工、精密仪器等领域对温度控制精度的要求极高,而温度控制的核心正是温度测量。 目前在国内,应用最广泛的测温方法有热电偶测温、集成式温度传感器、热敏电阻测温、铂热电阻测温四种方法。 (1) 热电偶的温度测量范围较广,结构简单,但是它的电动势小,灵敏度较差,误差较大,实际使用时必须加冷端补偿,使用不方便。 (2) 集成式温度传感器是新一代的温度传感器,具有体积小、重量轻、线性度好、性能稳定等优点,适于远距离测量和传输。但由于价格相对较为昂贵,在国内测温领域的应用还不是很广泛。 (3) 热敏电阻具有灵敏度高、功耗低、价格低廉等优点,但其阻值与温度变化成非线性关系,在测量精度较高的场合必须进行非线性处理,给计算带来不便,此外元件的稳定性以及互换性较差,从而使它的应用范围较小。 (4)铂热电阻具有输出电势大、线性度好、灵敏度高、抗振性能好等优点。虽然它 的价格相对于热敏电阻要高一些,但它的综合性能指标确是最好的。而且它在0~200°C范

单片机课程设计说明书 多点温度采集电路设计

单片机课程设计说明书题目:多点温度采集电路设计

课程设计(论文)任务书 I、课程设计(论文)题目: 多点温度采集电路设计 II、课程设计(论文)使用的原始资料(数据)及设计技术要求: 1.设计一个基于单片机的多点温度采集电路,至少可采集8个点。 2.测温范围:0℃-800℃。 3.采用LED数码直读显示检测点、温度。 4.温度分辨率:1℃。 5.应用protel画出原理图,给出硬件清单。 II、课程设计(论文)工作内容及完成时间: 5月21日至5月23日:查找资料,方案论证; 5月24日至5月25日:总体设计; 5月25日至5月30日:软、硬件详细设计与调试; 5月31日至6月1日:整理数据,撰写报告。 Ⅳ主要参考资料: 1.曹天汉.单片机原理与接口技术.北京:电子工业出版社,2006. 2.求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2004. 3.李广弟,朱月秀,王秀山.单片机基础(修订本).北京:北京航空航天大学出版社,2001. 4.传感器电路分析与设计李道华、李玲、朱艳.武汉大学出版社,2000. 专业类班 学生:

日期:自2012年5月21日至2011年6月1日指导教师: 助理指导教师(并指出所负责的部分): 教研室主任: 附注:任务书应该附在已完成的课程设计说明书首页。 目录 △、设计摘要 (1) 一、设计背景 (2) 1.1 课题背景 (2) 1.2 课题的目标及意义 (2) 1.3 主要研究内容 (3) 二、设计准备 (4) 2.1设计时间安排 (4) 2.2设计需求 (4)

2.2.1 所需元件 (4) 2.2.2 部分元件解析 (4) 三、设计分析 (11) 3.1 总图展示 (11) 3.2 线口说明 (11) 四、设计总结 (16) 参考文献 (17)

基于51单片机的温度控制系统

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王*

毕业论文设计 基于51单片机的温度控制系统

摘要 在日常生活中温度在我们身边无时不在,温度的控制和应用在各个领域都有重要的作用。很多行业中都有大量的用电加热设备,和温度控制设备,如用于报警的温度自动报警系统,热处理的加热炉,用于融化金属的坩锅电阻炉及各种不同用途的温度箱等,这些都采用单片机技术,利用单片机语言程序对它们进行控制。而单片机技术具有控制和操作使用方便、结构简单便于修改和维护、灵活性大且具有一定的智能性等特 点,可以精确的控 制技术标准,提高了温控指标,也大大的提高了产品的质量和性能。 由于单片机技术的优点突出,智能化温度控制技术正被广泛地采用。本文介绍了基于单片机AT89C51 的温度控制系统的设计方案与软硬件实现。采用温度传感器DS18B20 采集温度数据,7段数码管显示温度数据,按键设置温度上下限,当温度低于设定的下限时,点亮绿色发光二极管,当温度高于设定的上限时,点亮红色发光二极管。给出了系统总体框架、程序流程图和Protel 原理图,并在硬件平台上实现了所设计功能。 关键词:单片机温度控制系统温度传感器

Abstract In daily life, the temperature in our side the ever-present, the control of the temperature and the application in various fields all have important role. Many industry there are a large number of electric heating equipment, and the temperature control equipment, such as used for alarm automatic temperature alarm systems, heat treatment furnace, used to melt metal crucible resistance furnace, and all kinds of different USES of temperature box and so on, these using single chip microcomputer, using single chip computer language program to control them. And single-chip microcomputer technology has control and convenient in operation, easy to modify and maintenance of simple structure, flexibility is large and has some of the intelligence and other characteristics, we can accurately control technology standard to improve the temperature control index, also greatly improve the quality of the products and performance. Because of the advantages of the single chip microcomputer intelligent temperature control technology outstanding, is being widely adopted. This paper introduces the temperature control based on single chip microcomputer AT89C51 design scheme of the system and the hardware and software implementation. The temperature sensor DS18B20 collection temperature data, 7 period of digital pipe display, the upper and lower limits of temperature button when temperature below the setting of the lower limit, light green leds, when the temperature is higher than the set on the limit, light red leds. Given the system framework and program flow chart and principle chart, and in Protel hardware platform to realize the function of the design. Keywords:SCM Temperature control system Temperature sensors

b多路温度采集程序

本程序为ds18b20 的多路温度采集程序,是我自己参考其他程序后改写而成,可显示 4 路正负温度值,并有上下限温度报警(声音、灯光报警) 亲测,更改端口即可使用。(主要器件:51单片机,ds18b20,lcd 显示器) 附有proteus 仿真图,及序列号采集程序 /**** 上限62 度下限-20 度****/ #include<> #define uchar unsigned char #define uint unsigned int sbit ds=P1A1; sbit rs=P1A4; sbit e=P1A6; sbit sp=P1A0; sbit d1=P1A2; sbit d2=P1A3; uchar lcdrom[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e}, {0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9}, {0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},

{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}}; unsigned char code table0[]={"TEMPERARTURE:U "}; int f[4]; int tvalue; float ftvalue; uint warnl=320; uint warnh=992; /****lcd 程序****/ void delayms(uint ms)// 延时 { uint i,j; for(i=ms;i>0;i--) for(j=110;j>0;j--); } void wrcom(uchar com)// 写指令 { delayms(1); rs=0; P3=com; delayms(1); e=1; delayms(1); e=0; } void wrdat(uchar dat)// 写数据 { rs=1; e=0; P3=dat; delayms(5);

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.doczj.com/doc/1411621628.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

(完整版)基于单片机的多点温度检测系统毕业设计论文

集成电路课程设计 课题:基于AT89C51单片机的多点温度测量系统设 计 姓名:韩颖 班级:测控12-1 学号:

指导老师:汪玉坤 日期: 目录 一、绪论 二、总体方案设计 三、硬件系统设计 1主控制器 2 显示模块 3温度采集模块 (1)DS18B20的内部结构 (2)高速暂存存储器 (3)DS18B20的测温功能及原理 (4)DS18B20温度传感器与单片机的连接

(5)单片机最小系统总体电路图 四、系统软件设计 五、系统仿真 六、设计总结 七、参考文献 八、附源程序代码 一、绪论 在现代工业控制中和智能化仪表中,对于温度的控制,恒温等有较高的要求,如对食品的管理,冰箱的恒温控制,而且现在越来越多的地方用到多点温度测量,比如冰箱的保鲜层和冷冻层是不同的温度这就需要多点的测量和显示可以让用户直观的看到温度值,并根据需要调节冰箱的温。它还在其他领域有着广泛的应用,如:消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测。。。。。。温度检测系统应用十分广阔。 本设计采用DALLAS最新单线数字温度传感器DS18B20 简介新的"一线器件"体积更小、适用电压更宽、更经济DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持"一线总线",测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°二、设计过程及工艺要求 1、基本功能 (1)检测两点温度 (2)两秒间隔循环显示温度 2、主要技术参数 测温范围:-30℃到+99℃

测量精度:0.0625℃ 显示精度:0.1℃ 显示方法:LCD循环显示 3、系统设计 系统使用AT89C51单片机对两个DS18B20进行数据采集,并通过1602LCD液晶显示器显示所采集的温度。 DS18B20以单总线协议工作,51单片机首先分别发送复位脉冲,使信号上所有的DS18B20芯片都被复位,程序先跳过ROM,启动DS18B20进行温度变换,再读取存储器的第一位和第二位读取温度,通过IO口传到1602LCD显示。 1 2 3 图(1)DS18B20引脚图 引脚定义如图(1): (1) GND为电源地; (2) DQ为数字信号输入输出端; (3) Vcc为外接供电电源输入端(在寄生电源接线方式时接地)。 4、设计原理框图 图(2)原理框图 三、硬件设计 1、主控制器(单片机) 基于设计的要求要使用AT89C51单片机作为本系统设计的核心器件。由于 AT89C51 单片机是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能cMOS8 位微处理器。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性

基于单片机的温度采集系统设计

摘要 单片机已在各行业得到广泛应用,为适应更多的应用领域,厂家采取了在一块单片机芯片上集成多种功能部件和大容量存储器的方法。因而,整个应用系统不需要扩展,而体积变小、可靠性增高,使单片机成为真正意义上的单片机系统。 第一章单片机概述 单片机是单片微型计算机的简称,有时称为微控制器,是将计算机的主要功能单元集成在一个芯片中而构成的器件。由于单片机在一个芯片上集成诸多功能,因此就单项功能而言,通常都没有普通计算机强大,如计算机速度不够快、字长较短、外部可扩展接口的数量少且规模小等。但是,单片机具有体积小、价格便宜和技术成熟等优点,是各种电子产品的重要组成部分,在国民经济的各个领域发挥着重要作用。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端[1]的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、

基于51单片机DS18B20温度传感器的C语言程序和电路

基于51单片机DS18B20温度传感器的C语言程序和电路 DS18B20在外形上和三极管很像,有三只脚。电压范围为3.0 V至5.5 V 无需备用电源测量温度位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包敏感系统。 下面是DS18B20的子程序,本人用过完全可行的: #include #include #define uchar unsigned char #define uint unsigned int sbit DQ=P2^0; void reset(); //DS18B20 void write_byte(uchar val); //DS18B20写命令函数 uchar read_byte(void); //DS18B20读1字节函数 void read_temp(); //温度读取函数 void work_temp(); //温度数据处理函数 uchar data temp_data[2]={0x00,0x00}; uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //对于温度显示值值 uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x0数部分查表 main() { while(1) { 自己添加; } } void delay1(uint t) { for(;t>0;t--); } ///////温度控制子函数 void reset() { uchar presence=1; while(presence) { while(presence) {

单片机温度采集程序

单片机温度采集程序 用一片DS18B20 构成测温系统,测量的温度精度达到0.1 度,测量的温度的范围在-20 度到+100 度之间,用8 位数码管显示出来。 由于DS18B20 是在一根I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20 的读时序 对于DS18B20 的读时序分为读0 时序和读1 时序两个过程。 对于DS18B20 的读时隙是从主机把单总线拉低之后,在15 秒之内就得释放单总线,以让DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程,至少需要60us 才能完成。 对于DS18B20 的写时序仍然分为写0 时序和写 1 时序两个过程。 对于DS18B20 写0 时序和写1 时序的要求不同,当要写0 时序时,单总线要被拉低至少60us ,保证DS18B20 能够在15us 到45us 之间能够正确地采样IO 总线上的“0 ”电平,当要写1 时

序时,单总线被拉低之后,在15us 之内就得释放单总线。 本程序实现温度的采集并且实时在数码管上显示出来。 具体程序如下: /*----------------------------------------------- 名称:18B20温度传感器 日期:2009.5 修改:无 内容:18B20单线温度检测的应用样例程序,请将18b20插紧, 然后在数码管可以显示XX.XC,C表示摄氏度,如显示25.3C表示当前温度25.3度 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include #include #define uchar unsigned char #define uint unsigned int; /******************************************************************/ /* 定义端口*/ /******************************************************************/ sbit seg1=P2^0; sbit seg2=P2^1; sbit seg3=P2^2; sbit DQ=P1^3;//ds18b20 端口 sfr dataled=0x80;//显示数据端口 /******************************************************************/ /* 全局变量*/ /******************************************************************/ uint temp; uchar flag_get,count,num,minute,second; uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //7段数码管段码表共阳 uchar str[6]; /******************************************************************/ /* 函数声明*/ /******************************************************************/ void delay1(uchar MS); unsigned int ReadTemperature(void); void Init_DS18B20(void); unsigned char ReadOneChar(void);

基于51单片机的温度警报器的设计

西安文理学院物理与机械电子工程学院课程设计任务书

目录 摘要 (3) 1 引言 (3) 1.1课题背景 (3) 1.2研究内容和意义 (5) 2 芯片介绍 (5) 2.1 DS18B20概述 (5) 2.1.1 DS18B20封装形式及引脚功能 (6) 2.1.2 DS18B20内部结构 (6) 2.1.3 DS18B20供电方式 (9) 2.1.4 DS18B20的测温原理 (10) 2.1.5 DS18B20的ROM命令 (11) 2.2 AT89C52概述 (13) 2.2.1单片机AT89C52介绍 (13) 2.2.2功能特性概述 (13) 3 系统硬件设计 (13) 3.1 单片机最小系统的设计 (13) 3.2 温度采集电路的设计 (14) 3.3 LED显示报警电路的设计 (15) 4 系统软件设计...................................................15 4.1 流程图........................................................15 4.2 温度报警器程序.................................................16 4.3 总电路图..................................................... 19 5总结 (20)

摘要 随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。 本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机;温度检测;AT89C52;DS18B20; 1 引言 1.1课题背景 温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格控制。随着科学技术的发展,要求温度测量的范围向深度和广度发展,以满足工业生产和科学技术的要求。 基于AT89C51单片机提高了系统的可移植性、扩展性,利于现代测控、自动化、电气技术等专业实训要求。以单片机为核心设计的温度报警器,具有安全可靠、操作简单方便、智能控制等优点。 温度对于工业生产如此重要,由此推进了温度传感器的发展。温度传感器主要经过了三个发展阶段[1]: (1)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、

单片机温度采集系统

课程设计 课程设计名称:温度采集装置 班级:数控技术0901 学号: 课程设计时间:2011.12.5—12.11

目录 1 设计任务 (2) 2 确定设计方案 (3) 2.1 温度传感器—AD22100K (3) 2.2 A/D转换器—ADC0809 (4) 2.3 单片机的选择—80C51 (6) 2.4 显示器接口—LED动态显示接口 (8) 3 硬件电路的设计 (10) 3.1 温度传感器与A/D转换器的接口电路 (10) 3.2 A/D转换器与89C51的接口电路 (10) 3.3 89C51与显示器间的接口电路 (11) 3.4 晶振电路和复位电路的设计 (12) 4 软件设计 (13) 4.1温度采集的主程序流程图 (13) 4.2 程序清单 (15) 5 心得体会 (20) 附录 (21) 温度采集装置 1、设计任务

设计一个温度采集系统,要求按1路/s的速度顺序检测8路温度点,测温范围为+20℃~+100℃,测量精度为±1%。要求用5位数码管显示温度,最高位显示通道号,次高位显示“—”,低三位显示温度值。 2、设计方案 2.1 温度传感器—AD22100K AD22100K是有信号调节的单片温度传感器,工作温度范围为-50~+150,信号调节不需要调节电路、缓冲器和线性化电路,简化了系统设计。输出温度与电压和电源电压的乘积(比率测量)成比例。输出电压摆幅为0.25V(对应-50℃)和4.75V(对应150℃),用5V单电源工作。 2.1.1 AD22100K的引脚图如2.1.1 图2.1.1 AD22100K的引脚图 注:1.V电源 4.GND接地 2.U输出 3、5~8 NC不连接

基于采用AT89S51单片机和LM35温度传感器的温度采集显示系统设计

基于采用AT89S51单片机和LM35温度传感器的温度采集显示系统设计随着电子和传感技术的快速发展,温度的测量和控制在民用、工业以及航空航天技术等领域,等到了广泛应用。小型的、低功耗的、廉价的、可靠性高的温度传感器引起了人们的广泛关注。在实际生产、生活等领域中,温度是环境因素不可或缺的一部分,对温度进行及时精确的控制和检测显得尤为重要。本文基于AT89S51单片机,采用 LM35温度传感器,设计了一种灵敏度较高,抗干扰能力强,工作稳定可靠的温度采集显示系统。 1、系统结构及工作原理温度采集显示系统电路由温度采集模块、A/D转换模块、单片机控制模块、数码管显示模块和下载模块组成。电路工作原理是:首先由LM35温度传感器采集外界环境的温度,经LM358放大10倍后以电压形式输入到A/D采样电路,由A/D 转换器TLC549将温度的数字量值传送给单片机系统,再有单片机系统驱动数码管显示温度。本文设计的基于LM35的单片机温度采集显示系统的温度测量范围为25℃~80℃温度采集显示系统电路是一个开环控制系统系统原理框图如图1示: 2、系统核心硬件电路设计系统核心硬件电路设计主要包含温度采集模块的设计、A/D转换模块的设计、单片机控制模块的设计、数码管显示模块的设计和下载模块的设计。 2.1、采集模块的设计 传感器是信号输入的第一个环节,也是整个测试系统性能的关键环节之一,因此对传感器的正确选用显得尤为重要。在本系统中,温度采集模块的核心硬件采用LM35温度传感器,该器件有很高的工作精度和较宽的线性工作范围,其输出电压与摄氏温度线性成比例,温度每上升1℃,电压上升10ms。LM35无需外部校准,可以提供±1/4℃的常用室温精度。从经济适用等多方面考虑,系统采用LM35温度传感器和LM358放大电路进行温度采集模块的设计,设计原理图如图2 所示。图2中,经过LM35传感器采集后的微弱电压通过LM358 放大电路放大10倍后送入单片机。 2.2、/D 转换模块的设计

AT89C51单片机温度控制系统

毕业设计(论文) 论文题目:AT89C51单片机温度控制系统 所属系部:电子工程系 指导老师:职称: 学生姓名:班级、学号: 专业:应用电子技术 2012 年05 月15 日

毕业设计(论文)任务书 题目:AT89C51单片机温度控制系统 任务与要求:设计并制作一个能够控制1KW电炉的温度控制系统,控制温度恒定在37--38度之间。 时间:年月日至年月日 所属系部:电子工程系 学生姓名:学号: 专业:应用电子技术 指导单位或教研室:测控技术教研室 指导教师:职称: 年月日

摘要 本设计是以一个1KW电炉为控制对象,以AT89C51为控制系统核心,通过单片机系统设计实现对保电炉温度的显示和控制功能。本温度控制系统是一个闭环反馈调节系统,由温度传感器DS18B20对保炉内温度进行检测,经过调理电路得到合适的电压信号。经A/D转换芯片得到相应的温度值,将所得的温度值与设定温度值相比较得到偏差。通过对偏差信号的处理获得控制信号,去调节加热器的通断,从而实现对保温箱温度的显示和控制。本文主要介绍了电炉温度控制系统的工作原理和设计方法,论文主要由三部分构成。①系统整体方案设计。②硬件设计,主要包括温度检测电路、A/D转换电路、显示电路、键盘设计和控制电路。③系统软件设计,软件的设计采用模块化设计,主要包括A/D转换模块、显示模块等。 关键词:单片机传感器温度控制

目录 绪论 (1) 第一章温度控制系统设计和思路 (2) 1.1温度控制系统设计思路 (2) 1.2 系统框图 (2) 第二章 AT89C51单片机 (3) 2.1 AT89C51单片机的简介 (3) 2.2 AT89C51单片机的主要特性 (3) 2.3 AT89C51单片机管脚说明 (4) 第三章温度控制的硬件设备 (6) 3.1温度传感器简介 (6) 3.2 DS18B20工作原理 (7) 3.3 DS18B20使用中注意事项 (8) 第四章系统硬件设计 (9) 4.1温度采集电路 (9) 4.2 数码管温度显示电路 (9) 4.2.1 数码管的分类 (9) 4.2.2 数码管的驱动方式 (10) 4.2.3 恒流驱动与非恒流驱动对数码管的影响 (11) 4.3 单片机接口电路 (12) 4.3.1 P0口的上拉电阻原理 (12) 4.3.2 上拉电阻的选择 (14) 4.4 单片机电源及下载线电路 (14) 4.5 温度控制电路 (15) 第五章温度控制的软件设计 (17) 5.1 数码管动态显示 (17) 5.2 DS18B20初始化 (17) 5.3 系统流程图 (19) 谢辞 (20) 参考文献 (21) 附录 (22)

CAN总线多点温度采集节点硬件设计

CAN总线多点温度采集节点硬件设计 【摘要】随着科学技术的发展,温度监控系统的应用越来越广泛,本文阐述了一种基于CAN总线的多点温度采集系统,可以实现温度实时监测,该系统能应用于工农业生产的诸多场合。系统以AT89C52单片机为微处理器,外接数字式温度传感器DS18B20获得现场环境的温度信号。通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上,从而实现对温度的采集。 【关键词】CAN总线;节点;温度采集 0 概述 现场总线是安装在生产制造过程中的装置与控制室内的控制装置之间的一种数字式、串行、多点通信的数据线。应用现场总线技术不仅可以降低系统的布线成本,还具有设计简单、调试方便等优点。同时,由于现场总线本身还提供了灵活且功能强大的协议,这就使得用户对系统配置,设备选型具有强大的自主权,可以任意的将多种功能模块组合起来扩充系统的功能。在众多的现场工业总线中。随着温度控制技术在各个领域得到广泛地推广和应用,相关行业对温度控制技术的要求与日俱增。目前市场上也有一些温度控制系统,但是这些系统在传送数据时实时性能实现的不是很好,而CAN总线的实时性强、成本低,而且还具备可靠性高、抗干扰强等特点。综合多方面因素考虑,我们能够利用CAN总线的特点和优势设计温度控制系统。 1 设计方案 1.1 系统功能要求 系统能够接受数字式温度传感器DS18B20的温度信号,将温度信号传给单片机,完成单片机最小系统设计,并把此系统作为CAN的节点,节点的硬件包括AT89C52单片机、CAN总线驱动器PCA82C250、CAN总线控制器SJA1000、单片机的时钟和复位电路。主要研究基于AT89C52单片机与DS18B20数字温度传感器的多点温度测量系统。完成数字式温度传感器与CAN总线节点的接口设计及电路设计,实现具有数字式串行温度采集功能的CAN总线节点的硬件设计。应用CAN总线控制器SJA1000及其总线收发器的工作原理,完成数字式温度传感器与CAN总线节点的接口设计。 1.2 硬件功能模块 该系统主要由现场数据采集模块和总线发送模块构成。现场数据的采集是以AT89C52单片机为核心控制单元,外接数字传感器DS18B20,从而获得现场环境的温度信号。通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上。CAN节点由微处理器、CAN控制器SJA1000、CAN

基于51单片机的的温度报警器设计

1引言 (1) 1.1 单片机的应用背景 (1) 2 总体设计方案 (2) 2.1 功能简介 (2) 2.2 设计思路 (2) 2.3 芯片器材 (3) 3 硬件设计 (3) 3.1 AT89C51 (3) 3.1.1 AT98C51引脚图 (3) 3.1.2 AT89C51结构特点 (5) 3.2 温度获取 (5) (7) 3.3 时钟电路 (8) 3.4 温度显示电路 (8) 3.5报警电路 (10) (10) 4 程序设计 (10) 4.1 程序流程图 (11) 4.2 初始化子程序 (11) 4.3 读子程序 (12) 4.4 写子程序 (13) 4.5 数据处理子程序 (13) 4.6 显示子程序 (15) 4.7报警子程序 (17) 5 实验仿真 (18) (18) 6 总结 (19) 参考文献 (20) 附录 (21) 1引言 1.1 单片机的应用背景 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通信与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机,更不用说自动控制领域的机器人、智能仪表、医疗机械了。

世面上主要的单片机类型有Motorola 单片机、Microchip 单片机、东芝单片机、8051单片机、Atmel 单片机等。此次课设中用到的是ATMEL公司,下面着重介绍一下ATMEL公司的单片机。 ATMEL 公司是世界上著名的高性能低功耗非易失性存储器和数字集成电路的一流半导体制造公司。ATMEL 公司最令人注目的是它的EEPROM 电可擦除技术闪速存储器技术和质量高可靠性的生产技术。在CMOS 器件生产领域中,ATMEL 的先进设计水平优秀的生产工艺及封装技术一直处于世界的领先地位。这些技术用于单片机生产,使单片机也具有优秀的品质在结构性能和功能等方面都有明显的优势,ATMEL 公司的单片机是目前世界上一种独具特色。 而性能卓越的单片机它在计算机外部设备通讯设备自动化工业控制宇航设备仪器仪表和各种消费类产品中都有着广泛的应用前景。其生产的AT90系列是增强型RISC内载FLASH单片机,通常称为A VR系列。AT91M系列是基于ARM7TDMI 嵌入式处理器的ATMEL 16/32 微处理器系列中的一个新成员,该处理器用高密度的16 位指令集实现了高效的32 位RISC 结构且功耗很低。另外ATMAL的增强型51系列单片机目前在市场上仍然十分流行,其中AT89S51十分活跃。 当今社会,人们在追求高质量的生活,所以生活中离不开单片机,根据国家权威统计显示,目前我国的单片机容量达3亿片,且每年以大约20%的速度增长,但在世界市场我国的占有率还不到1%。沿海地区尤其像电子产品高度发达的深圳大部分单片机应用更是广泛,这种发展趋势也不断向内地辐射,因此,学好单片机有很重要的意义。 2 总体设计方案 2.1 功能简介 8位LED数码管直接显示DS18B20所测量的温度,超出-50~110℃范围时喇叭报警,并且对应的发光二极管开始闪烁,在温度范围内时喇叭停止报警并且数码管显示其温度,测量精度为0.5℃。 2.2 设计思路

相关主题
文本预览
相关文档 最新文档