文档库 最新最全的文档下载
当前位置:文档库 › 基于51单片机的上下限可调的温度报警系统

基于51单片机的上下限可调的温度报警系统

基于51单片机的上下限可调的温度报警系统
基于51单片机的上下限可调的温度报警系统

课程设计

题目上下限可调的温度报警器设计

专业电子********** 学号 ************ 姓名周***** 指导教师 ********

2014年11月14日

摘要:单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度器,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。

随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。本文通过采用蜂鸣器作为电声元件的温度报警器的设计,阐明了该装置进行设计与制作的具体过程及方法。这种温度报警器结构简单,可操作性强,应用广泛。工作时,温度测量范围为18—23oC。当前环境温度若超过设定的高温临界温度,由单片机发出报警信号,从而防止带来的不必要的损失。

造成高温火灾有:电气线路短路、过载、接触电阻过大等引发高温或火灾;静电产生高温或或火灾;雷电等强电侵入导致高温或火灾;最主要是机房内电脑、空调等用电设备长时间工作,导致设备老化,空调发生故障,而不能降温;因此机房内所属的电子产品发热快,在短时间内机房温度升高超出设备正常温度,导致系统瘫痪或产生火灾,这时温度报警系统就会发挥应有的功能。

关键词STC89C51单片机,数字控制,温度计,DS18B20

1 设计方案选择

1.1 系统基本方案选择

1.1.1 单片机芯片的选择方案

方案一:

采用STC89C51芯片作为硬件核心。STC89C51内部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C51可以通过串口下载。

方案二:

采用AT89S51。AT89S51片内具有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。

两种单片机都完全能够满足设计需要,STC89C51相对ATS89C52价格便宜,且抗干扰能力强。考虑到成本因素,因此选用STC89C51。

1.1.2 温度传感器设计方案

方案一:

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较麻烦。

方案二:

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,两种都完全能够满足设计需要,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

综上各方案所述,对此次作品的方案选定: 采用STC89C51单片机作为主控制系统;采用DS18B20为传感器;

1.1.3显示电路设计

方案一:使用数码管显示,数码管是由多个发光二极管封在在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。有共阴,共阳两种。

方案二:使用液晶显示屏lcd1602,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

比较两种方案将选用方案二,lcd1602操作简单,可以直接对1602的引脚直接操作。

2 主要元件介绍

2.1.1 STC89C51引脚介绍

①主电源引脚(2根)

VCC(Pin40):电源输入,接+5V电源

GND(Pin20):接地线

②外接晶振引脚(2根)

XTAL1(Pin19):片内振荡电路的输入端

XTAL2(Pin20):片内振荡电路的输出端 ③控制引脚(4根)

RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。 ALE/PROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部存储器读选通信号

EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

④可编程输入/输出引脚(32根)

STC89C51单片机有4组8位的可编程I/O 口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。

P0口(Pin39~Pin32):8位双向I/O 口线,名称为P0.0~P0.7 P1口(Pin1~Pin8):8位准双向I/O 口线,名称为P1.0~P1.7 P2口(Pin21~Pin28):8位准双向I/O 口线,名称为P2.0~P2.7 P3口(Pin10~Pin17):8位准双向I/O 口线,名称为P3.0~P3.7

EA/VP 31X119X218RESET 9P37/RD 17P36W R 16P32/INT012P33/INT113P34/T014P35/T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P20

21

P2122P2223P2324P2425P2526P2627P2728PSEN 29ALE/P 30P31/TXD 11P30/RXD 10GND 20

VCC 40U1STC89C52

图1:STC89C51封装图

2.1.2 单片机最小系统:

当在STC89C51单片机的RST 引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作,按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST

端经过电阻与电源VCC接通而实现的。最小系统如图2

图2 单片机最小系统电路

电路以STC89C51单片机最小系统为控制核心,测温电路由DS18B20提供,输入部分采用三个独立式按键s0、s1、s2。具体电路连接,详见附录1。

2.2 DS18B20传感器介绍

2.2.1 DS18B20概述

DS18B20的性能特点如下:

(1)采用DALLAS公司独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;

(2)在使用中不需要任何外围元件;

(3)可用数据线供电,供电电压范围:+3.0V~+5.5V;

(4)测温范围:-55~+125℃。固有测温分辨率为0.5℃。当在-10℃~+85℃范围内,可确保测量误差不超过0.5℃,在-55~+125℃范围内,测量误差也不超过2℃;

(5)通过编程可实现9~12位的数字读数方式;

(6)用户可自设定非易失性的报警上下限值;

(7)支持多点的组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测

(8)负压特性,即具有电源反接保护电路。当电源电压的极性反接时,能保护DS18B20不会因发热而烧毁,但此时芯片无法正常工作;

(9)DS18B20的转换速率比较高,进行9位的温度值转换只需93.75ms;

(10)适配各种单片机或系统;

(11)内含64位激光修正的只读存储ROM,扣除8位产品系列号和8位循环冗余校验码(CRC)之后,产品序号占48位。出厂前产品序号存入其ROM中。在构成大型温控系统时,允许在单线总线上挂接多片DS18B20。

2.3 LCD1602介绍

引脚功能介绍

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

指令介绍

1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明1为高电平,0为低电平)

指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H

指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。

指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。

指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。

指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。

使用lcd先根据液晶的使用手册写出液晶屏的驱动程序,后使用把信息显示到液晶上时直接调用液晶子程序即可。

3.程序流程图

图6:程序流程图

4.设计总结

本次设计功能基本实现,当温度低于下限温度或者高于上限温度时蜂鸣器发出报警。设计电路有温度上下限可调功能,按键按下由于不能再1602显示光标只能使用led 的亮灭和蜂鸣器来确定按键是否按下,并且最终能实现了该功能。获取的温度值通过1602显示出来。软件调适通过使用protues 进行仿真,开始只是让1602显示出数据,慢慢的加入按键,led 指示灯和蜂鸣器。

过程中遇到了很多问题,硬件方面:原理图设计好51单片机最小系统再根据仿真软件电路接入温度采集电路,报警电路,显示电路,指示电路,按键和电源接口。画好原理图导出PCB 布线,由于对PCB 布线规则不是很了解,粗略步好线打印印板、腐蚀、

打孔、焊接,由于经过电子相关的实习,这些步骤还是完成得比较好。焊接好后第一步就是坚持电路是否短路或者是否有虚焊,多次对照PCB后没有问题就将下载好程序的单片机插入电路开始调试。设计电路时预留了两个IO口即增加了两个扩展口,所以可以通过之前自己设计的STC串口下载器对单片机程序的下载调试。实际软件件调试也是和仿真一样,先让1602能够显示东西,再把整个程序下载到单片机中,由于仿真时电路要设计的功能基本都能实现了,所以程序下载成功后电路基本实现了功能。只是蜂鸣器在温度没有超出限制范围内还是有小小的声音产生,找蜂鸣器相关资料发现是因为蜂鸣器在不使用时要给它一个低电平或高电平(看电路,这里电路是给低电平),因为不限制蜂鸣器的初始值时电路会出现漏电现象,程序改动后漏电现象消除了。

通过本次设计,我学到了很多我们在课堂上学不到的实践能力,动手能力也得到了很大的提升,在书本所学到的知识得到了很大的实践,让我对书本上的知识有了更加深刻的理解。同时也感谢同学的帮助,在我对电路相关知识不理解时给了我指点,让我能清楚得理解,也通过这次的设计让我电子电路设计有了很大兴趣。

参考文献

[1] 郭天祥.51单片机C语言教程.北京:电子工业出版,2009.

[2] 谭浩强.C语言程序设计[M].北京:清华大学出版社,1991.

[3] 阎石.数字电子技术基础[M].北京:高等教育出版社,2006.

[4] 童诗白.模拟电子技术基础[M].北京:高等教育出版社,2006.

[5] 杨欣.电子设计从零开始[M].北京:清华大学出版社,2005.

附录1 系统原理图

PCB图

附录2 C语言程序

#include

#include"1602.h"

#include"DS18B20.h"

#define uchar unsigned char

#define uint unsigned int

sbit BEEP=P1^4;

sbit led=P1^0;

sbit led0=P1^1;

sbit led1=P1^2;

sbit s0=P3^0;

sbit s1=P3^1;

sbit s2=P3^2;

uchar code tab_0[]="Temp: "; uchar code tab_1[]="TH:23 TL:18 "; uchar TH,TL; // 定义高低温度变量

uchar num; //全局变量

/********ms延时(非精确)**********/ void delay(uint z)

{

uint i,j;

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

for(j=120;j>0;j--); }

/*******TH、TL的温度符号**********/ void fuhao()

{

write_com(0x80+5);

write_dat(0xdf);

write_dat(0x43);

write_com(0x80+14);

write_dat(0xdf);

write_dat(0x43);

}

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

{

/***********上电显示初始化**********/ uchar i;

TH=23;TL=18;

write_com(0x80);

for(i=0;i<16;i++)

{

write_dat(tab_1[i]);

delay(5);

}

write_com(0x80+0x40);

for(i=0;i<5;i++)

{

write_dat(tab_0[i]);

delay(5);

}

fuhao();

/********定时器初始化*************/ TMOD=0x01; //开定时器T0,方式1

TH0=(65536-50000)/256; //装入初值

TL0=(65536-50000)%256; //

EA=1; //开全局中断

ET0=1;

TR0=1; //打开定时器

}

/**********报警函数**************/

void bi(uint t)

{

int i,j;

for(i=0;i

{

for(j=0;j<50;j++);

BEEP=~BEEP; //按位取反BEEP }

}

/*******TH、TL取十位个位送人显示***********/

void writeT_HL(uchar add,uchar dat)

{

uchar shi,ge;

shi=dat/10; //十位

ge=dat%10; //个位

write_com(0x80+add);

write_dat(shi+0x30);

write_dat(ge+0x30); }

/*******按键函数********/

void keyscan()

{

/**********功能选择**********/

if(s0==0)

{

num++;

delay(2);

if(s0==0)

{

led=0;

while(!s0);{bi(300);led=1;} //按一下灯亮一下声音响一声

if(num==1)

{TR0=0;write_com(0x80+12);delay(10);} //write_com(0x0f);

if(num==2)

{write_com(0x80+4);}

if(num==3) {num=0;TR0=1;}

}

}

/*********功能加*********/

if(num!=0)

{

if(s1==0)

{

delay(2);

if(s1==0)

{

led0=0;

while(!s1);{bi(300);led0=1;} //按一下灯亮一下声音响一声

if(num==1)

{TH++;if(TH==100)

TH=0;writeT_HL(3,TH);write_com(0x80+4);}

if(num==2)

{TL++;if(TL==100)

TL=0;writeT_HL(12,TL);write_com(0x80+10); }

}

}

}

/**********功能减************/

if(num!=0)

{

if(s2==0)

{

delay(2);

if(s2==0)

{

led1=0;

while(!s2);

{bi(300);led1=1;} //按一下灯亮一下声音响一声

if(num==1)

{TH--;if(TH==-1)

TH=99;writeT_HL(3,TH);write_com(0x80+4);}

if(num==2)

{TL--;if(TL==-1)

TL=99;writeT_HL(12,TL);write_com(0x80+10) ;}

}

}

}

}

/*****温度报警函数*******/

void beep()

{

uchar tem;

tem=temp/10; //返回的温度值temp放大了十倍,得除十还原

if(TH<=tem) { bi(500);}

if(TL>=tem) { bi(500);}

}

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

{

Init_1602();

init();

while(1)

{ BEEP=0;

keyscan();

ds1820disp();

beep();

}

}

/***********定时器中断函数************/ void time() interrupt 1

{

TH0=(65536-50000)/256; //重装初值

TL0=(65536-50000)%256;

}

DS1802驱动程序

#ifndef __DS18B20_H__

#define __DS18B20_H__

#define uchar unsigned char

#define uint unsigned int

sbit DQ = P1^3;

uchar tab[5];

uint temp;//温度值

bit tflag;

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

延时1微秒**********/

void delay_18B20(uint i)

{

while(i--);

}

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

ds1820复位************/

void ds1820rst()

{

uchar x=0;

DQ=1; //DQ复位

delay_18B20(8); //延时

DQ=0; //DQ拉低

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

DQ=1; //拉高

delay_18B20(14);

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

while(!DQ);

delay_18B20(20);

}

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

读一个字节********************/

uchar ds1820rd()

{

uchar i=0;

uchar dat=0;

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

{

DQ=0; //给脉冲信号

dat>>=1;

DQ=1; //给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(4);

}

return(dat);

}

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

写一个字节***************/

void ds1820wr(uchar dat)

{

uchar i=0;

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

{

DQ=0;

DQ=dat&0x01;

delay_18B20(5);

DQ=1;

dat>>=1;

}

}

/****************读取温度

值并转换***************/

read_temp()

{

uchar a,b;

ds1820rst();

ds1820wr(0xcc);//跳过读序列号 ds1820wr(0x44);//启动温度转换delay_18B20(100);

ds1820rst();

ds1820wr(0xcc);//跳过读序列号 ds1820wr(0xbe);//读取温度

delay_18B20(100);

a=ds1820rd();

b=ds1820rd();

temp=b;

temp<<=8;

temp=temp|a;

if(temp<0x0fff)

tflag=0;

else

{

temp=~temp+1;

tflag=1;

}

temp=temp*(0.625);//温度值扩大10倍,

精确到1位小数

return(temp);

}

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

温度值显示****************/

void ds1820disp()

{

uchar flagdat;

read_temp();

tab[0]=temp%1000/100+0x30; //

十位数

tab[1]=temp%100/10+0x30; //

个位数

tab[2]=temp%10+0x30; //

小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号

else

flagdat=0x2d;//负温度显示负号:- if(tab[0]==0x30) { tab[0]=0x20; }//如

果十位为0,不显示

write_com(0x80+0x40+6);

write_dat(flagdat); //显示正负

write_dat(tab[0]); //显示十位

write_dat(tab[1]); //显示个位

write_dat(0x2e); //显示小数点

write_dat(tab[2]); //显示小数位

write_dat(0xdf);

write_dat(0x43);

}

#endif

LCD1602驱动程序

#ifndef __1602_H__

#define __1602_H__

#define uint unsigned int

#define uchar unsigned char

#define LCD P0

sbit RS=P2^4;

sbit RW=P2^5;

sbit EN=P2^6;

void delayms(uint z);

void Init_1602(void);

void check_busy(void);

void write_com(uchar com);

void write_dat(uchar dat);

/********************延时z毫秒****************/

void delayms(uint z)

{

int i,j;

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

for(j=120;j>0;j--);

}

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

1cd1602初始化******************/ void Init_1602(void)

{

delayms(15);

write_com(0x38);

delayms(5);

write_com(0x0c);

delayms(5);

write_com(0x06);

delayms(5);

write_com(0x01);

delayms(5);

write_com(0x80);

delayms(5);

}

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

将数据二进制高地位对换

(为了连线方便但片机P0口

与lcd1602数据口反接)

****************************/ uchar HL_exchange(uchar dat)

{

uchar i,temp;

temp = 0x00;

for(i=0;i<8;i++)

{

temp >>= 1;

if((dat<

{

temp |= 0x80; }

else

{

temp &= 0x7F; }

}

return temp;

}

/**********读忙*****************/ void check_busy(void)

{

uchar x;

x=HL_exchange(0x80);

while(x&HL_exchange(0x80))

{

RS=0;

RW=1;

EN=1;

x=LCD;

EN=0;

delayms(10);

}

}

/**************写指令**************/ void write_com(uchar com) {

check_busy();

RS=0;

RW=0;

EN=1;

LCD=0XFF;

LCD=HL_exchange(com);

EN=0;

delayms(10);

}

/**************写数据**************/ void write_dat(uchar dat)

{

check_busy();

RS=1;

RW=0;

EN=1;

LCD=0XFF;

LCD=HL_exchange(dat);

EN=0;

delayms(10);

}

#endif

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

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

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.wendangku.net/doc/678670113.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 头文件包含到主程序

基于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)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于51单片机设计的带有测温功能的电子时钟汇总

、 职业技能训练之 电子技术课程设计报告 学院电子与信息学院 设计题目基于51单片机设计的带有测温功能的电子时钟班级XXX 姓名XXX 学号XXX 指导教师XXX 时间2012年06月25日

目录 一、设计要求 二、课程设计的方案、目的及意义 三、硬件设计方案 四、软件设计方案 五、总结 六、参考资料

一、设计要求 用51单片机设计带温度显示的电子时钟,具体要求如下: 1、利用DS1302时钟芯片实现时钟功能模块。 2、时钟要求可以调节时间:年、月、日、时、分、秒。 3、利用LCD1602显示。 4、利用DS18B20芯片实现温度功能模块。 5、利用按键完成各项功能。 二、课程设计方案、目的及意义 1、总体方案: 用STC89C51单片机作为CPU主控制器,DS1302时钟芯片提供准确时钟信号,DS18B20温度传感器采集温度信息,三个按键进行加减调整、功能切换作用,通过LCD1602对外多功能显示。 2、具体方案: CPU控制所有模块,通过循环反复从DS1302中读取时钟信息,传送至LCD1602显示,得到基本时钟功能。当分为59,秒为56时开始,每隔一秒LED 灯点亮240毫秒,0分0秒时LED灯点亮700毫秒。从而实现整点光报时。 定时循环从DS18B20中读取温度信息,传送至LCD1602显示,得到基本温度计功能。当温度高于30度(包括30度)时,点亮红色LED灯,提醒当天为高温天气。低于0度时,点亮蓝色LED灯,提醒当天为冰冻天气。 键盘使用扫面方式,MENU键控制功能切换,完成时钟和温度间的转换。OK键控制时间调整与确定,UP、DOWN键调节时间,R、L 键选择调整对象。进入调整时,暂停DS1302数据读取,并将改变的时间数据写入DS1302,并送LCD1602显示,同时,启动LCD1602光标闪烁,确定调整对象,完成人机对话。退出调整时,停止写入数据,重新读取DS1302时钟信息。从而完善时钟功能。 3、目的及意义 可作为产品生产,作为居家的时钟显示与温度计。

基于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 设计思路

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

基于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) {

基于51单片机的家用温湿度语音播报系统设计

毕业设计(论文) 题目:基于51单片机的家用温湿度语音播报系统设计 姓名 学院名 专业 指导教师 2014年月日

诚信承诺 本人__________声明,本论文及其研究工作是由本人在导师指导下独立完成,论文所利用的一切资料均符合论文著作要求,且在参考文献中列出。 签名:日期:

摘要 本系统是一个基于单片机AT89C51的语音播报系统的设计,用来测量环境温湿度,整个设计系统分为5部分:单片机控制、DHT11温湿度传感器、液晶显示、语音播报以及键盘控制电路,整个设计是以AT89C51为核心,选用DHT11温湿度传感器,LED12864液晶显示器实现。当测量温湿度超过设定的温度上下限时,启动蜂鸣器和指示灯报警。语音录放选用的集成块是ISD1420 芯片,其保真度高,录音效果好,而且经济实惠。LCD采用的是LCD12864,它具有功耗低、体积小、显示内容丰富、超薄轻巧等优点,应用越来越广泛。整个设计的重点在于编程,因为其外围电路相对比较简单,实现容易。在本论文中附带了软件实现的流程图以及部分子程序以及各种硬件电路图。 关键词:液晶显示;语音播报; ISD1420

ABSTRACT This system is a design of the speech thermometer according to the microprocessor AT89C51,which is used to measure the environment temperature, The whole design system is divided into 5 parts: A microprocessor control, temperature sensor,the LCD display, the speech report and the keyboard control circuit, at the same time ,The whole design take AT89C51 as the core, choose to single bus digital temperature sensor DS18B20, DS1302 serial clock chip, RT1602 LCD monitor realization, LCD display the current date, time, weeks and temperature. When measuring temperature over set temperature fluctuation limit, start with light alarm buzzer. Temperature display stability, and temperature measurement error acuities 1℃, plus or minus temperature the decimal part retained two significant digits. Increased Celsius temperature conversion contrast with Fahrenheit and sets up a display function beep voice automatically broadcast time temperature, manual real-time broadcast time temperature function. The speech recoding &; p layback I choose to use is the IC of ISD1420, it has high fidelity, good record effective, and economic. The LCD I choose is TC1602A, its power consume is low, it has many advantages , for example, the volume is small, the contents is abundant, super thin and agile etc, and its application is becoming more and more extensive. The whole design lies in the program, because its outer circuit is much more simple, and it can carry out more easily. In my thesis, there are flow chart and parts subprogram and various hardware circuit diagrams. Key Words: DS18B20;LCD;speech function;sounding and light alarm.

基于51单片机的数字温度报警器

摘要:随着传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发。本文设计了一种基于单片机AT89C52的温度检测及报警系统。该系统将温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。本次课程设计的测量范围为0℃--99℃,测量误差为±2℃。 关键字:温度传感器、单片机、报警、数码管显示 一、概述 本次设计可以应用到许多我们用过的软件设计,将前面所学的知识融汇在一起实现温度监测及其报警的功能,来提醒农民当前大棚内温度是否适合农作物的生长。 电子技术是在十九世纪末、二十世纪初开始发展起来的新兴技术,在二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。 随着电子技术的飞速发展,电子技术在日常生活中得到了广泛的应用,各类转换电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中必不可少的工具。 本次课设应用Protues软件设计一个温度检测报警系统,用温度传感器DS18B20采集大棚内的温度,当大棚内的温度高于30℃。或低于15℃。时,电路发出报警信号并显示当前温度,达到提醒农民的效果。 本次课设要求设计一个温度监测报警显示电路,要求温度范围:0℃--99℃;测量误差为±2℃;报警下限温度为:15℃;报警上限温度为:30℃。 二、方案论证 设计一个用于温室大棚温度监测系统。大棚农作物生长时,其温度不能太低,也不能太高,太低或太高均不适合农作物生长。该系统可实时测量、显示大棚的温度,当大棚温度超过农作物生长的温度范围时,报警提醒农民。 方案一: 方案一原理框图如图1所示。 图1 大棚温度检测系统的原理框图 方案二: 方案二原理框图如图2所示。

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

基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

基于51单片机自行车测速系统设计

摘要 随着居民生活水平的不断提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。因此爱好自行车运动的人十分学要一款能测速的装置,以知道自己的运动情况。并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。 关键词:单片机、LED显示、里程/速度、霍尔元件

第一章系统总方案分析与设计 1.1 课题主要任务及内容 本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度的自行车的速度里程表。本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。 本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后对本次设计进行了系统的总结。 具体的硬件电路包括AT89C52单片机、霍尔元件以及LED显示电路等。 软件设计包括:中断子程序设计,里程计算子程序设计,显示子程序设计。软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。 1.2 任务分析与实现 本设计的任务是:以通用AT89C52单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过AT89C52的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LED显示器显示出来。 本系统总体思路如下:假定轮圈的周长为L,在轮圈上安装m个永久磁铁,则测得的里程值最大误差为L/m。经综合分析,本设计中取m=1。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数n和周长L的乘积为里程值。计数器T1计算每转一圈所用的时间t,就可以计算出即时速度v。当里程键按下时,里程指示灯亮,LED切换显示当前里程;当速度键按下时,速度指示灯亮,LED切换显示当前速度。 要求达到的各项指标及实现方法如下: 1. 利用霍尔传感器产生里程数的脉冲信号。 2. 对脉冲信号进行计数。 实现:利用单片机自带的计数器T1对霍尔传感器脉冲信号进行计数。 3. 对数据进行处理,要求用LED显示里程总数和即时速度。 实现:利用软件编程,对数据进行处理得到需要的数值。 最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。

单片机课程设计报告——温度报警器

单片机原理与应用 课程设计报告 { 课程设计名称:温度报警器设计 专业班级: 13计转本 | 学生姓名:张朝柱肖娜 学号: 140 113 指导教师:高玉芹 设计时间: 2016-11—2017-12 成绩: 信电工程学院

摘要 2009年6月14日随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。 本文主要介绍了一个基于AT89C52单片机的测温系统,详细描述了利用液晶显示器件传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感DS18B20的数据采集过程。对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机AT89C51;DS18B20温度传感器;液晶显示LCD1602。

目录 1绪论 (1) 温度报警器简介 (1) 温度报警器的背景与研究意义 (1) 温度报警器的现状及发展趋势 (1) 2 系统整体方案设计 (2) 设计目标 (2) 系统的基本方案 (2) 系统方案选择 (2) 各模块方案选择 (3) 主要元器件介绍 (3) STC89C52的简介 (3) DS18B20的简介 (4) 3 系统的硬件设计与实现 (5) 系统硬件概述 (5) 主要单元电路的设计 (5) 键盘扫描模块电路的设计 (5) 单片机控制模块电路的设计 (5) 报警模块电路的设计 (6) LCD1602显示模块电路的设计 (7) 4 系统的软件设计与实现 (8) KEIL软件介绍 (8) 系统程序设计流程图 (8) 主程序软件设计 (8) 按键软件设计 (9) 密码设置软件设计 (9) 开锁软件设计 (10) 5 系统仿真设计 (12) Proteus 软件介绍 (12) Proteus 仿真图 (12) 硬件调试 (13) 调试结果 (13) 6 结论 (14)

基于单片机的温度报警器解读

基于STC89C51的温度报警器设计 一.设计背景 温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。温度控制电路在工农业生产中有着广泛的应用。日常生活中也可以见到,如电冰箱的自动制冷,空调器的自动控制等等。在工业生产中,温度、压力、流量和液位是四种最常见的过程变量。其中,温度是一个非常重要的过程变量。例如:在冶金工业、化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行监控。然而,用常规的监控方法,潜力是有限的,难以满足较高的性能要求。采用单片机来对它们进行监控不仅具有监控方便、简单和灵活性大的优点,而且可以大幅度提高被测温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的监控问题是一个工业生产中经常会遇到的监控问题。现代社会是信息化的社会,随着安全化程度的日益提高,而通过温度报警器及时报警,避免不必要的损失。 二.设计功能介绍 此次要设计的是一个温度报警器,DS18B20采集温度数据送到单片机,单片机根据收到的数据判断是否超过报警界限,如果超过做出报警响应,报警界限可调。12864显示单片机收到的数据。 三.主要器件简介 MCS-51简介 8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 .数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

基于单片机的温度传感器的设计说明

基于单片机的温度传感器 的设计 目录 第一章绪论-------------------------------------------------------- ---2 1.1 课题简介 ----------------------------------------------------------------- 2 1.2 设计目的 ----------------------------------------------------------------- 3 1.3 设计任务 ----------------------------------------------------------------- 3 第二章设计容与所用器件 --------------------------------------------- 4第三章硬件系统设计 -------------------------------------------------- 4 3.1单片机的选择------------------------------------------------------------- 4 3.2温度传感器介绍 ---------------------------------------------------------- 5 3.3温度传感器与单片机的连接---------------------------------------------- 8 3.4单片机与报警电路-------------------------------------------------------- 9 3.5电源电路----------------------------------------------------------------- 10 3.6显示电路----------------------------------------------------------------- 10 3.7复位电路----------------------------------------------------------------- 11 第四章软件设计 ----------------------------------------------------- 12 4.1 读取数据流程图--------------------------------------------------------- 12 4.2 温度数据处理程序的流程图 -------------------------------------------- 13 4.3程序源代码 -------------------------------------------------------------- 14

基于单片机的气象监测仪毕业设计

. .. . 基于单片机的气象监测仪 毕业设计 目录 摘要 (Ⅰ) ABSTRACT (Ⅱ) 绪论 (1) 1 结构设计与方案选择 (2) 1.1 基于Internet的现代传动远程控制系统结构 (2) 1.2 方案选择 (2) 1.2.1 远程通信方案的选择 (2) 1.2.2 变频器与计算机串行通信方案的选择 (2) 2 硬件设计 (3) 2.1 单机控制 (3) 2.1.1 硬件配置 (3) 2.1.2 控制框图 (3) 2.2 多机控制 (3) 2.3 远程控制 (3) …… 结束语 (25) 致谢 (26) 参考文献 (27) 附录1 变频器参数设定程序代码 (28) 附录2 VC程序源代码 (29)

第一章地面自动气象监测仪的现状 目前中国气象局开展的地面气象监测要素包括云、能见度、天气现象、气压、空气温度、空气湿度、风速、风向、降水、雪深、蒸发、辐射、日照、地温、冻土、电线积水和地面状态。能实现仪器自动监测的气象要素有能见度、气压、空气温度湿度、风向、风速、降水、蒸发、辐射、日照和地温,其他气象要素监测只能通过人工观测实现。本研究仅对能实现地面自动气象监测的仪器进行研究。 1.1 国地面气象监测仪现状 我国地面气象监测仪主要有常规地面人工检测仪器和地面自动气象站两大类。在功能齐全和性能稳定方面,与国际上同类产品基本一致,都能满足气象要素检测的要求,国研发出的仪器具有明显的价格优势,技术支持和售后服务良好,维护成本低。目前气象系统使用常规地面气象仪器有EN2型测风数据处理仪,SJ1型虹吸式雨量计,DWJ1型自动温度计,DHJ1型自动湿度计,DYJ1自动气压计和最新研制出并投入气象业务使用的自动气象站等。气象仪器的趋势都是往数字化、智能化、集成化发展。 1.1.1 EN2型测风数据处理仪 EN2型测风数据处理仪用于气象台站观测记录地面风,由微型打印机、液晶显示器、键盘、风速风向传感器接口、上位机接口、可选的外接显示器接口、微型处理板和电源等部件组成。 主要特点:1、风速测量围大,风向测量精度高,尤其适合沿海、高山等高强风地区。2、部数据存贮器可存贮2个月的气表1容及2天的风向风速连续数据,即使打印机损坏,数据记录仍可查血。3、具有4个报警风速点。4、增加了大风组报、加密报,可选择打印次数。5、装有串行通讯接口,配有本公司开发的微机专用数据处理软件,仪器使用更方便,操作更直观。 主要功能:1、自动打印整点前十分钟平均风速及最多风向;并在8个整点前6分钟自动打印二分钟平均风速和风向;二十点自动打印全天4次二钟风速合计及平均值;全天24个整点十分钟风速合计及平均值;全天最大风速风向及发生时间;全天极大风速风向及发生时间。2、自动进行4个风速点(自设、20m/s、24m/s、28m/s)的报警,定时自动打印大风组报、加密报。当风速大于报警风速时自动发出报警音响信号,并打印出报警标志、风向风速和时间;当风速小于报警风速的连续时间达到规定值时,打印出报警解除标志及解除时刻的风向风速和时间,并发出音响信号。3、显示和设置时间,显示和设置大风报警风速,显示瞬时风向风速、当前二分钟、十分钟平均风速和最大风向;当天最大风速风向和发生时间,当天的极大风速风向和发生时间,当天整点十分钟平均风速合计。存贮2个月的气表容及2天的连续风向风速数据。可随时显示2个月任一天任意整点的风向风速,任一天最大风速风向及发生时间,极大风速风速及发生时间。4、可将EN-2数据通过接口输入微机,进行实时观测或由计算机处理成日报表、月报表、风向频率玫瑰图、风速频率图、连续曲线等。打印输出的月报表与气表1

相关文档
相关文档 最新文档