文档库 最新最全的文档下载
当前位置:文档库 › (完整版)基于51单片机的数字温度计

(完整版)基于51单片机的数字温度计

(完整版)基于51单片机的数字温度计
(完整版)基于51单片机的数字温度计

硬件课程设计实验报告课题:数字温度计

班级:

作者:

学号:

指导老师:

课设评价:

课设成绩:

目录

一.需求分析 (1)

二.概要设计 (1)

三.硬件电路设计 (3)

四.系统软件设计 (5)

五.软件仿真 (8)

六.实际连接与调试 (9)

七.本次课设的收获与感受 (11)

附录(程序源代码) (12)

一.需求分析

功能要求:

测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。

设计要求:

(一)功能要求

(1) 由4位数码管显示当前温度。

(2) 具备报警,报警门限通过键盘设置。

(3) 精度为0.5℃。

(二)画出参考的电路原理图

(三)画出主程序及子程序流程图、画出MCS51内部RAM分配图,并进行适当地解释。

(四)写出实现的程序及实现过程。并进行适当地解释说明。

二.概要设计

(一)方案选择

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

(二)系统框图

该系统可分为以下七个模块:

(1)控制器:采用单片机STC89C52对采集的温度数据进行处理;

(2)温度采集:采用DS18B20直接向控制器传输12位二进制数据;

(3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值;

(4)门限设置:主要实现模式切换及上下门限温度的调节;

(5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光;

(6)复位电路:对整个系统进行复位;

(7)时钟振荡模块:为整个系统提供统一的时钟周期。

(三)重要器件及其相关参数

(1)单片机STC89C52

P0.0~P0.7:通用I/O引脚或数据低8位地址总线复用地

址;

P1.0~P1.7:通用I/O引脚;

P2.0~P2.7:通用I/O引脚或高8位地址总线复用地址;

P3.0~P3.7:通用I/O引脚或第二功能引脚(RxD、TxD、

INT0、INT1、T0、T1、WR、RD);

XTAL1、XTAL2:外接晶振输入端;

RST/Vpd:复位信号输入引脚/备用电源输入引脚;

Vcc:接+5V电源;

Vss:地端。

(2)DS18B20

(a)通过单线总线端口访问 DS1820 的协议如下:

?初始化

? ROM 操作命令

?存储器操作命令

?执行/数据

DS1820 需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。和 DS1820 间的任何通讯都需要以初始化序列开始,初始化序列见图11。一个复位脉冲跟着

一个存在脉冲表明DS1820 已经准备好发送和接收数据(适当的ROM 命令和存储器操作命令)

(b)当总线上只有一个器件时,DS18B20读温度的流程为:

复位发0CCH SKIP ROM命令发44H开始转换命令延时复位发0CCHSKIP ROM命令发0BEH读存储器命令连续读出两个字节数据(即温度)结束。

?Convert T [44h]

这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS1820 保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS1820 又忙于做时间转换的话,DS1820 将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。

?Read Scratchpad [BEh]

这个命令读取暂存器的内容。读取将从字节0 开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。(c)DS18b20 用12 位存贮温值度最高位为符号位,下图为18b20 的温度存储方式,负温度S=1 正温度S=0

LSB:

D7 D6 D5 D4 D3 D2 D1 D0

D7 D6 D5 D4 D3 D2 D1 D0

三.硬件电路设计

本次实验采用了老师提供的单片机系统,所以整体的硬件电路设计需要在已知的硬件条件下进行设计。

(一)下图为已有的单片机系统部分电路图

分析:(1)由上图可知,时钟振荡电路,复位电路均以在原系统中正确连接。

(2)数字温度计所需的显示电路电路中,原系统将段码输出连在P2接口中,但由图

可知,该图中的六个数码管中的小数点均无法点亮,原因在于图中并未对其进行连接,也无引脚供外界连接。而六个数码管的位选端口连在P1接口上。本次课程设计中,我们选择使用P1.0~P1.3上所连接的四个数码管。

(3)通过软件测试验证,原系统中的数码管为共阴极,且原系统中位选信号是通过

一个反向器之后才输入数码管。

(4)原系统中P0端口未使用,所以可以用排线引出,连接我们所需要补充的电路,

包括DS18B20总线输入电路、门限设置电路以及报警电路。

(二) 温度采集电路、门限设置电路及报警电路(其余电路省略)

图中:

(1)门限中的三个按键,分别为模式切换按键、加按键、减按键;

(2)报警电路中,超过高门限或者低于低门限时发光二极管被点亮,其余时刻均熄灭;(3)DS18B20温度采集电路中,需要注意的是DQ上需要一个上拉电阻,一般为4.7KΩ左右。

四.系统软件设计

(一)读取数据的流程图

DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电

容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。下图读取数据流程图。

(二)温度数据处理程序的流程图

读出温度数据后,temp的低四位为温度的小数部分,可以精确到0.0625℃,temp的中间8位为温度的整数部分,temp的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行显示时要使用另外的查询表,与整数显示查询表有所不同。因为本次课程设计只要求测试的温度范围为0~70℃,所以符号位S必为0,软件设计中则默认所测数据为正,从而不设符号位判定。

(三)模式切换流程图

使用模式值st来标记不同模式,st=1时,表示在正常温度模式,st=2,表示在高门限模式,st=3表示在低门限模式,每次按下一次模式切换键,st+1,待其加至4时,将该值返回至1。从而形成了模式键不断按下,三种模式循环切换的情况。

防抖在这里是十分关键的。因为此处的按键是按下然后又返回为按了一次。所以按下时,则进入程序,为了防止机械抖动等不确定情况,延时恰当的一段时间后再次检测是否确实按下。若确实按下,则对模式进行切换。切换后,延时等待按键返回高位,返回高位后,再次延时消除抖动,再次检验,确定按键返回高位后,退出程序。

五.软件仿真

电路图连接:严格按照硬件设计中已有的单片机系统的连接方式和自己补充的电路的连接方式进行仿真,要最贴近实际电路,才能更准确的得到仿真结果。

系统电路图

高门限下数码管显示

低门限下数码管显示

正常模式下数码管显

六.实际连接与调试

(一)仿真成功后,在实际操作中,电路图的连接应该严格按照仿真电路进行。

问题:在最开始实验中,我将DS18B20的DQ连接在P1.4,且仿真成功。但是在实际连接中,我将DQ连接在了P0.4端口,但实际电路中无任何数据显示。再次仿真,将DQ接至P0.4,仿真不成功。后查阅P0、P1、P2以及P3口的内部结构后发现,除P0外另外三口均接有上拉电阻,而P0则无。所以P0在作为通用I/O接口使用时,必须外接上拉电阻,其余端口则不需要。所以,为方便起见,实际中,将DQ按照最初仿真设计,接至P1.4。

(二)原系统所拥有资料太少,数码管类型未知。

因只查阅到原系统的部分电路图,且无详细说明,所以为证明在网上搜索到的电路图的正确性以及确定数码管的类型。先编写一个简单的数字显示程序。最开始,我并没有意识到原系统中的片选信号接有反向器,在测试程序中,无论使用共阴还是共阳数字查询表,数码管均显示8888,后发现问题将所有片选数值取反,再次进行测试,确定数码管为共阴极。

同时,在测试过程中,发现原系统的小数点是无法点亮的。

(三)关于位选

在最开始的测试数码管类型中,我只测试了一位数码管,使其显示数值1,但测试成功后,6位数码管均显示为1。在测试过程中,我并未注意这个问题。

测试结束后,进行整体联调。但数码管始终无正确显示。当时,我首先着手于寻找软件程序中是否有错误。所以人为将temp设定为一个固定值,先确定数据处理程序和数据显示程序无误。然而数码管无法正常显示我预先设定的值,后经过反复改动,发现,在位选过程中,必须在选中一位数码管的过程中同时将其余所有的数码管关闭,否则将产生混乱。若逐一设定

S1=1;S2=0;S3=0;S4=0未免太过麻烦,所以设定一个数组,分别赋值0x08,0x04,0x02,0x01。片选时按照规则将上值赋给,则一举多得。

(四)DQ数据采集

上述问题均解决后,再次进行调试,数码管显示25592。这个值非常特殊,且第5个数码管,在程序中所有地方均是将其熄灭的,为何此处会亮呢??显然采集的数据是有很大问题的,因为很明显2559中,9为小数部分,将2559换为二进制则为1111 1111 1111。这就说明电路并没有采集到温度数据,原因一:DQ上接有上拉电阻,在输出正常温度数据外始终为高电平,所以此处很可能并没有采集到正常输出温度数据;原因二:室温不可能为25592。

但是当时,我并没有对器件是否损坏产生怀疑。原因在于,大部分时候数码管显示的是12791,且两边的1很亮且基本无闪烁,279则在不断闪烁,频率很快,造成了27.9为数码管要显示的温度的错觉,且27.9是与当时实验室的温度非常接近的。同时,在我不断的对程序

中DS18B20的初始化时等部分的时序进行调整时,279的闪烁频率发生变化,两个1并无变化。

在经历了无法显示正常温度的挫败后,我仔细查阅了DS18B20的数据手册,确定了在其初始化过程中,DQ电平应该如何变化且应当延时多少。同时也确定了DS8B20的在12位分辨率情况下数据A/D转换所需时间为500ms~750ms,所以在发出转换命令后需要给其充分的时间来进行A/D转换。

在经历了上述种种之后,我基本确定了程序中时序的正确性。

再次进行实验室,数码管始终显示的为850,第5位数码管无故亮起的情况消失了(到现在我都不清楚它当时为什么会亮)。上网搜索资料,总结原因有二。一是程序时序存在问题;二是DS18B20损坏了。

为排除第二个状况,我与同学更换了器件,数码管上显示出了令人欣喜的289!

但是,仍然存在的问题和解决过程是

(1)为保证充分的延时,导致数码管中数字不断闪烁,看起来非常不舒服。后通过改进程序,使程序采集一次数据,却多次扫描显示温度数值。以此法使其不再闪烁。但是实际上,这种方法是不完美的,完美的状况应当是多次采集数据,扫描显示多次采集值的平均值。但限于时间紧迫和后者的复杂度,只能采用前者的方法了。

程序如下:case 1:{

work_temp(read_temp());//采集处理温度数值

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

{

scan(); //显示温度

BEEP();

}

break;

}

(2)数码管大部分时间显示的是正常温度,但是仍然会在某些时候跳变为2559,,1279等数值。猜测可能是接触不良造成的,后将接线焊在板子上后,该问题得到了解决。但仍偶尔出现不稳定状况,则主要是排线,+5V电压线,地线等诸多因素的影响,稍作调整后即可消除。

(五)最终结果

七.本次课设的收获与感想

附录:

#include "reg51.h"

#include "intrins.h" //_nop_();延时函数用#include "math.h"

#define disdata P2 //段码输出口#define discan P1 //扫描口

#define uchar unsigned char

#define uint unsigned int

sbit duqu=P1^4; //温度采集输入口sbit dian=P2^7; //LED小数点控制

sbit key1=P0^0; //模式切换键

sbit key02=P0^1; //加键

sbit key03=P0^2; //减键

sbit beep=P0^3; //LED报警

uint h;

uint temp;

uchar r;

char high=40,low=15;

uchar st=1;

uchar pp;

uchar code

ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08, 0x09,0x09};

//温度小数部分用查表法

uchar code

dis_7[15]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00,0x40,0x76,0x38, 0x39};

//共阴LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" "H" "L" "C"

uchar code scan_con[4]={0x08,0x04,0x02,0x01}; //列扫描控制字

uchar data temp_data[2]={0x00,0x00}; //读出温度暂放

uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //显示单元数据,共4个数据和一个运算暂用

/*****************8us延时函数*************************/

void delay(uint t)

{

for (;t>0;t--);

{_nop_();}

}

/****************显示扫描函数***************************/

void scan()

{

char k;

for(k=0;k<4;k++) //4位LED扫描控制

{

discan=scan_con[k]; //位选

disdata=dis_7[display[k]]; //数据显示

if (k==1){dian=1;} //小数点显示

delay(200);

}

}

/****************DS18B20复位函数************************/

ow_reset(void)

{

duqu=0;

delay(60); //拉低480~960us

duqu =1;

delay(10); //等待15~60us

if(duqu==0)

delay(30);

duqu=1;

}

/****************DS18B20写命令函数************************/ //向1-WIRE 总线上写1个字节

void write_byte(uchar val)

{

uchar i;

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

{

duqu=0;

delay(1); //严禁超时超过15us

duqu=val&0x01;

delay(5);

val>>=1;

duqu=1;

}

}

/****************DS18B20读1字节函数************************/ //从总线上取1个字节

uchar read_byte(void)

{

uchar i;

uchar value=0;

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

{

duqu=0;

value>>=1;

duqu=1;

delay(1);

if(duqu==1)

value|=0x80;

delay(5);

duqu=1;

}

return value;

}

/****************读出温度函数************************/

uint read_temp()

{

ow_reset(); //总线复位

write_byte(0xcc); //发命令

write_byte(0x44); //发转换命令

delay(200);

delay(200);

ow_reset();

write_byte(0xcc); //发命令

write_byte(0xbe);

delay(200);

delay(200);

temp_data[0]=read_byte(); //读温度值的第字节

temp_data[1]=read_byte(); //读温度值的高字节

temp=temp_data[1];

temp<<=8;

temp=temp|temp_data[0]; // 两字节合成一个整型变量。

return temp; //返回温度值

}

/****************温度数据处理函数************************/ work_temp(uint tem)

{

uchar n=0;

display[4]=tem&0x0f; // 取小数部分的值

display[0]=ditab[display[4]]; // 存入小数部分显示值

display[4]=tem>>4; // 取中间八位,即整数部分的值display[3]=display[4]/100; // 取百位数据暂存

display[1]=display[4]%100; // 取后两位数据暂存

display[2]=display[1]/10; // 取十位数据暂存

display[1]=display[1]%10;

r=display[1]+display[2]*10+display[3]*100;

if(!display[3]) //符号位显示判断

{

display[3]=0x0a; //百位为0时数码管熄灭

if(!display[2])

{

display[2]=0x0a; //十位为0时数码管熄灭

}

}

}

/******************二极管报警函数**************************/

void BEEP()

{

if(r>=high||r<=low)

{ beep=1;}

else

{beep=0;}

}

/******************单片机初始化函数**************************/ void init()

{

EA=1;

EX0=0;

EX1=0;

IT0=1;

IT1=1;

}

/******************温度/上下限调整切换**************************/ void key11()

{

while(key1==0) //当模式切换键按下则进入循环体

{

delay(300); //延时消除抖动

if(key1==0)

{

st++; //模式循环切换

if(st==4)

st=1;

}

while(!key1);//延时等待按键回到高电平

delay(300);

while(!key1);//延时消除抖动

}

}

/******************门限值加1**************************/ void key2()

{

while(key02==0)

{

delay(400);

if(key02==0)

{

if(st==3)

{

low=low+1;}

if(st==2)

{high=high+1;}

if(low>high)

{pp=low;low=high;high=pp;}

}

while(!key02);

delay(400);

while(!key02);

}

}

/******************门限值减1**************************/ void key3()

{

while(key03==0)

{

delay(400);

if(key03==0)

{

if(st==3)

{low=low-1;}

if(st==2)

{high=high-1;}

if(low>high)

{pp=low;low=high;high=pp;}

}

while(!key03);

delay(400);

while(!key03);

}

}

/******************上限温度显示**************************/ void high1()

{

uchar k;

display[0]=high%10;

display[1]=high/10;

display[2]=10; //个位熄灭

display[3]=12; //百位显示H

for(k=0;k<2;k++)

{

discan=scan_con[k];

disdata=dis_7[display[k]];

if (k==1){dian=0;}

delay(300);

disdata=0x00;

delay(100);

}

}

/******************下限温度显示**************************/ void low1()

{

uchar ki;

display[0]=low%10;

display[1]=low/10;

display[2]=10; //个位熄灭

display[3]=13; //百位显示L

for(ki=0;ki<2;ki++)

基于51单片机的DS18B20数字温度计的实训报告

电子信息职业技术学院 暨国家示性软件职业技术学院 单片机实训 题目:用MCS-51单片机和 18B20实现数字温度计 姓名: 系别:网络系 专业:计算机控制技术 班级:计控 指导教师: * 伟 时间安排:2013年1月7日至 2013年1月11日

摘要 随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。 在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。 我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度围为-55~125 oC,最高分辨率可达0.0625 oC。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 本文介绍一种基于AT89C51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量围0℃-~+100℃,使用LED模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用。该电路设计新颖、功能强大、结构简单。 关键词:单片机,数字控制,温度计, DS18B20,AT89S51

基于51单片机的数字频率计_毕业设计

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。 学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据 库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期:

基于51单片机的数字温度计的设计报告(王强)

西安文理学院物理与机械电子工程学院 课程设计报告 专业班级 2011级测控技术与仪器一班 课程单片机课程设计 题目基于51单片机的数字温度计的设计 学号 0703110135 学生姓名王强 指导教师陈琦 2014年 5月

西安文理学院物理与机械电子工程学院 课程设计任务书 学生姓名王强专业班级11级测控一班学号0703110135 指导教师陈琦职称讲师教研室 B0406 课程单片机课程设计 题目基于51单片机的数字温度计的设计 任务与要求 1、学会使用51单片机,并对其内部结构进行深入的了解。 2、了解DS18B20的原理以及使用方式。 3、对于共阳极、共阴极数码管有个清楚的认识和掌握。 4、测得的结果范围在-55~125度,精度为0.5。 开始日期 2014年5月12日完成日期 2014年5月25日 2014年5月28日

基于51单片机的数字温度计的设计 摘要 本设计主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机;数字温度传感器;最简温度检测系统;

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

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

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

基于单片机控制的数字温度计毕业设计

单片机课程设计报告 数字温度计

1 设计要求 ■基本范围-50℃-110℃ ■精度误差小于0.5℃ ■LED数码直读显示 2 扩展功能 ■实现语音报数 ■可以任意设定温度的上下限报警功能

数字温度计 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。 关键词:单片机,数字控制,温度计,DS18B20,A T89S51 1 引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机A T89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 2 总体设计方案 2.1数字温度计设计方案论证 2.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 2.2方案二的总体设计框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。 图1总体设计方框图 2.2.1 主控制器

基于AT89C5单片机的数字温度计设计

基于AT89C5单片机的数字温度计设计

CHANGZHOU INSTITUTE OF TECHNOLOGY 科研实践 题目:基于单片机的数字温度计的设计

目录 目录 (2) 1.绪论 (3) 1.1课题研究背景及意义 (3) 1.2课题研究的内容 (3) 2.数字温度计的系统概论 (5) 2.1系统的功能 (5) 2.2温度计的分析 (5) 3.设计方案和要求 (6) 3.1设计任务和要求 (6) 3.2元器件的选取 (6) 3.3系统最终设计方案 (7) 4.硬件设计 (8) 4.1总体设计结构图 (8) 4.2硬件电路概述 (8) 4.2.1最小系统 (8) 4.2.2输入电路设计 (11) 4.2.3输出电路设计 (12) 5.硬件仿真 (15)

6.实物制作 (18) 6.1电路板焊接 (18) 6.2电路板调试 (19) 7.小结 (20) 附录 (21) 1.参考文献 (21) 2.原理图 (22) 3.元器件清单 (23) 4.软件程序 (24) 5.实物图 (30) 1.绪论 1.1课题研究背景及意义 单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器仪表,机电一体化产品,家用电器等各个领域。“单片机原理与应用”在工科院校各专业中已作为一门重要的技术基础课而普遍开设。学生在课程设计,毕业设计,科研项目中会广泛应用到单片机知识,而且,进入社会后也会广泛接触到单片机的工程项目。鉴于此,提高“单片机原理及应用”课的教学效果,让学生参与课程设计

实习甚为重要。单片机应用技术涉及的内容十分广泛,如何使学生在有限的时间内掌握单片机应用的基本原理及方法,是一个很有价值的教学项目。为此,我们进行了“单片机的学习与应用”方面的课程设计,锻炼学生的动脑动手以及协作能力。 单片机课程设计是针对模拟电子技术,数字逻辑电路,电路,单片机的原理及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。通过此次课程设计实现以下三个目标:第一,让学生初步掌握单片机课程的试验、设计方法,即学生根据设计要求和性能约束,查阅文献资料,收集、分析类似的相关题目,并通过元器件的组装调试等实践环节,使最终硬件电路达到题目要求的性能指标;第二,课程设计为后续的毕业设计打好基础,毕业设计是系统的工程设计实践,而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学实验的程序和实施方法。第三,培养学生勤于思考乐于动手的习惯,同时通过设计并制作单片机类产品,使学生能够自己不断地学习接受新知识(如在本课设题目中存在智能测温器件DS18B20,就是课堂环节中不曾提及的“新器件”),通过多人的合作解决现实中存在的问题,从而不断地增强学生在该方面的自信心及兴趣,也提高了学生的动手能力,对学生以后步入社会参加工作打下一定良好的实践基础。 1.2课题研究的内容 本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数 字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机喜爱的硬 件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进 行一一介绍,该系统可以方便的是实现温度采集和显示,并可以根据需要任意 设定上下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体 积小、功耗低等优点,适合我们日常生活和工农业生产中的温度测量,也可以 当做温度处理模块嵌入其他系统中,作为其他主系统的辅助扩展。DS18B20和AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合 与恶劣环境下进行现场温度测量,有广泛的应用前景。 本设计首先是确定目标,气候是各个功能模块的设计,再在Proteus软件上 进行仿真,修改,仿真。 本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范 围内时,可以报警。

基于单片机的数字温度计设计开题报告

****大学综合性设计实验 开题报告 ?实验题目:数字温度计的设计 ?学生专业10电气工程与自动化 ?同组人:———————— ?指导老师: 2013年4月

1.国内外现状及研究意义 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: ①传统的分立式温度传感器 ②模拟集成温度传感器 ③智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。 2.方案设计及内容 (一)、方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,

基于51单片机的数字频率计毕业论文

基于51单片机的数字频率计 目录 第1节引言 (2) 1.1数字频率计概述 (2) 1.2频率测量仪的设计思路与频率的计算 (2) 1.3基本设计原理 (3) 第2节数字频率计(低频)的硬件结构设计 (4) 2.1系统硬件的构成 (4) 2.2系统工作原理图 (4) 2.3AT89C51单片机及其引脚说明 (5) 2.4信号调理及放大整形模块 (7) 2.5时基信号产生电路 (7) 2.6显示模块 (8) 第3节软件设计 (12) 3.1 定时计数 (12) 3.2 量程转换 (12) 3.3 BCD转换 (12) 3.4 LCD显示 (12) 第4节结束语 (13) 参考文献 (14) 附录汇编源程序代码 (15)

基于51单片机的数字频率计 第1节引言 本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1.1数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量围从1Hz—10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。 基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。 1.2频率测量仪的设计思路与频率的计算 频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。 1 图可知: T=NT o 为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信(注:T o

51单片机的液晶显示温度计程序

51单片机的液晶显示温度计程序 51单片机的液晶显示温度计程序#include <reg51.h> #include <intrins.h>sbit RST = P2^0; sbit CLK = P2^1; sbit DQ = P2^2; sbit TSOR = P2^3; sbit ALERT =P2^4; sbit RS = P2^7; sbit RW = P2^6; sbit EN = P2^5; /*------------------------------------------全局变量 -------------------------------------------------------*/ static unsigned char temp1,temp2; //温度值的整数部分、小数部分 static unsigned char pos,posset; //数字电位器电位值、设定值 static unsigned char min,sec; //分钟、秒static unsigned char count; //Timer0中断计数 static unsigned char minset; //设定的分钟

数 static unsigned char status1,status2; //状态标志 bit stop,timeover; //定时停止、结束 static char line0[] =" 00:00 "; static char line1[] =" . C W";/*-------------------------------------------------------------------------------------------------------------*/ void InitInterupt(); void KeyboardDelay(); /*-------------------------------------------LCD驱动函数 ------------------------------------------------*/ void DelayL(); void DelayS(); void WriteCommand(unsigned char c); void WriteData(unsigned char c); void ShowChar(unsigned char pos,unsigned char c); void ShowString(unsigned char line,char *ptr); void InitLcd(); /*----------------------------------------------键盘-程序 --------------------------------------------------*/ unsigned char GetKey(); /*---------------------------------------------数字温度计驱动

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计 一.课题选择 随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这方面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子,它可广泛应用与生产生活的各个方面,具有巨大的市场前景。 二.设计目的 1.理解掌握51单片机的功能和实际应用。 2.掌握仿真开发软件的使用。 3.掌握数字式温度计电路的设计、组装与调试方法。 三.实验要求 1.以51系列单片机为核心器件,组成一个数字式温度计。 2.采用数字式温度传感器为检测器件,进行单点温度检测。 3.温度显示采用4位LED数码管显示,三位整数,一位小数。 四.设计思路 1.根据设计要求,选择STC89C51RC单片机为核心器件。 2.温度检测采用DS18B20数字式温度传感器。与单片机的接口为P 3.6引脚。 3.采用usb数据线连接充电宝供电,接电后由按钮开关控制电路供电。 硬件电路设计总体框图为图1: 五.系统的硬件构成及功能 1.主控制器 单片机STC89C51RC具有低电压供电和体积小等特点,有40个引脚,其仿真图像如下图所示:

2.显示电路 显示电路采用4位共阳LED数码管,从P3口RXD,TXD串口输出段码。LED数码管在仿真软件中如下图所示: 3.温度传感器 DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下: 1.独特的单线接口仅需一个端口引脚进行通讯。 2.简单的多点分布应用。 3.无需外部器件。 4.可通过数据线供电。 5.零待机功耗。 6.测温范围-55~+125摄氏度。 其电路图如下图所示:

数字频率计(51单片机)

自动化与电子工程学院单片机课程设计 报告 课程名称:单片机原理与应用 学院:自动化与电子工程院 专业班级: 学生姓名: 完成时间: 报告成绩:

目录 第1章数字频率计概述 (2) 1.1数字频率计概述 (1) 1.2数字频率计的基本原理 (1) 1.3单脉冲测量原理 (2) 第2章课程设计方案设计 (2) 2.1系统方案的总体论述 (2) 2.2系统硬件的总体设计 (3) 2.3处理方法 (3) 第3章硬件设计 (4) 3.1单片机最小系统 (4) 第4章软件设计 (5) 4.1系统的软件流程图 (5) 4.2程序清单 (7) 第5章课程设计总结 (7) 参考文献 (8) 附录Ⅰ仿真截图 (9) 附录Ⅱ程序清单 (15)

第1章数字频率计概述 1.1数字频率计概述 数字频率计又称为数字频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量方波信号及其他各种单位时间内变化的物理量。 本数字频率计将采用定时、计数的方法测量频率,采用6个数码管显示6位十进制数。测量范围从10Hz—5.5kHz,精度为1%,用单片机实现自动测量功能。 基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量频率的方法对方波的频率进行自动的测量。 1.2数字频率计的基本原理 数字频率计最基本的工作原理为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率f=N/T(如图1.1所示)。 图1.1 频率测量原理 频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用的办法是使用单片机自带的计数器对输入脉冲进行计数;好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就可以实现。缺陷是受限于单片机计数的晶振频率,输入的时钟频率通常是单片机晶振频率的几分之一甚至是几十分之一,在本次设计使用的AT89C51单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。根

单片机课程设计—数字温度计

第1章概述 1.1 数字温度计简介 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 此次课程设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 1.2 设计内容及要求 本次单片机课程设计将以51系列单片机为核心,以开发板为平台;设计一个数字式温度计,要求使用温度传感器(可以采用DS18B20或采用AD590)测量温度,再经单片机处理后,由LED数码管显示测量的温度值。测温范围为0~100℃,精度误差在0.5℃以内。

第2章系统总体方案设计 2.1数字温度计设计的方案 在做数字温度计的单片机电路中,对信号的采集电路大多都是使用传感器,这是非常容易实现的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。 2.2系统设计框图 温度计电路设计总体设计方框图如图 2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用6位LED数码管以串口传送数据实现温度显示。此外,还添加了报警系统,对温度实施监控。 图2.1 数字温度计框图

单片机课程设计报告——智能数字频率计

单片机原理课程设计报告题目:智能数字频率计设计 专业:信息工程 班级:信息111 学号:*** 姓名:*** 指导教师:*** 北京工商大学计算机与信息工程学院

1、设计目的 (1)了解和掌握一个完整的电子线路设计方法和概念; (2)通过电子线路设计、仿真、安装和调试,了解和掌握电子系统研发产品的一个基本流程。 (3)了解和掌握一些常见的单元电路设计方法和在电子系统中的应用: 包括放大器、滤波器、比较器、计数和显示电路等。 (4)通过编写设计文档与报告,进一步提高学生撰写科技文档的能力。 2、设计要求 (1)基本要求 设计指标: 1.频率测量:0~250KHz; 2.周期测量:4mS~10S; 3.闸门时间:0.1S,1S; 4.测量分辨率:5位/0.1S,6位/1S; 5.用图形液晶显示状态、单位等。 充分利用单片机软、硬件资源,在其控制和管理下,完成数据的采集、处理和显示等工作,实现频率、周期的等精度测量方案。在方案设计中,要充分估计各种误差的影响,以获得较高的测量精度。 (2)扩展要求 用语音装置来实现频率、周期报数。 (3)误差测试 调试无误后,可用数字示波器与其进行比对,记录测量结果,进行误差分析。 (4)实际完成的要求及效果 1.测量范围:0.1Hz~4MHz,周期、频率测量可调; 2.闸门时间:0.05s~10s可调; 3.测量分辨率:5位/0.01S,6位/0.1S; 4.用图形液晶显示状态、单位(Hz/KHz/MHz)等。 3、硬件电路设计 (1)总体设计思路

本次设计的智能数字频率计可测量矩形波、锯齿波、三角波、方波等信号的频率。系统共设计包括五大模块: 主芯片控制模块、整形模块、分频模块、档位选择模块、和显示模块。设计的总的思想是以AT89S52单片机为核心,将被测信号送到以LM324N为核心的过零比较器,被测信号转化为方波信号,然后方波经过由74LS161构成的分频模块进行分频,再由74LS153构成的四选一选择电路控制档位,各部分的控制信号以及频率的测量主要由单片机计数及控制,最终将测得的信号频率经LCD1602显示。 各模块作用如下: 1.主芯片控制模块: 单片机AT89S52 内部具有2个16位定时/计数器T0、T1,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。利用单片机的计数器和定时器的功能对被测信号进行计数。以AT89S52 单片机为控制核心,来完成对各种被测信号的精确计数、显示以及对分频比的控制。利用其内部的定时/计数器完成待测信号周期/频率的测量。 2.整形模块:整形电路是将一些不是方波的待测信号转化成方波信号,便于测量。本设计使用运放器LM324连接成过零比较器作为整形电路。 3.分频模块: 考虑单片机利用晶振计数,使用11.0592MHz 时钟时,最大计数速率将近500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。本设计使用的分频芯片是74LS161实现4分频及16分频。 4.档位选择模块:控制74LS161不分频、4分频或者 16分频,控制芯片是74LS153。 5.显示模块:编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示,本设计选用LCD1602。 (2)测频基本设计原理 所谓“频率”,就是周期性信号在单位时间(1s)内变化 的次数。若在一定时间间隔T内测得这个周期性信号的重复变 化次数N,则其频率可表示为f=N/T(右图3-1所示)。其中脉 冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等 。利用单片机的定时/计数T0、T1的定时、计数 于被测频率f x 功能产生周期为1s的时间脉冲信号,则门控电路的输出信号持图3-1

(完整版)基于51单片机的数字温度计

硬件课程设计实验报告课题:数字温度计 班级: 作者: 学号: 指导老师: 课设评价: 课设成绩:

目录 一.需求分析 (1) 二.概要设计 (1) 三.硬件电路设计 (3) 四.系统软件设计 (5) 五.软件仿真 (8) 六.实际连接与调试 (9) 七.本次课设的收获与感受 (11) 附录(程序源代码) (12)

一.需求分析 功能要求: 测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。 设计要求: (一)功能要求 (1) 由4位数码管显示当前温度。 (2) 具备报警,报警门限通过键盘设置。 (3) 精度为0.5℃。 (二)画出参考的电路原理图 (三)画出主程序及子程序流程图、画出MCS51内部RAM分配图,并进行适当地解释。 (四)写出实现的程序及实现过程。并进行适当地解释说明。 二.概要设计 (一)方案选择 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 (二)系统框图 该系统可分为以下七个模块: (1)控制器:采用单片机STC89C52对采集的温度数据进行处理; (2)温度采集:采用DS18B20直接向控制器传输12位二进制数据; (3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值; (4)门限设置:主要实现模式切换及上下门限温度的调节; (5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光; (6)复位电路:对整个系统进行复位; (7)时钟振荡模块:为整个系统提供统一的时钟周期。

单片机课设《数字频率计设计》

单片机课程设计 学生姓名: 学号: 在班编号: 学院:电气与电子工程学院 专业: 题目:数字频率计设计 指导教师:吴翔老师 2013年01月08日

摘要 本方案主要以单片机为核心,主要分为时基电路,复位电路,显示电路三大部分,设计以单片机为核心,利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。 本设计以89C51单片机为核心,应用单片机的算术运算和控制功能并采用LED数码显示管将所测频率显示出来。系统简单可靠、操作简易,能基本满足一般情况下的需要。既保证了系统的测频精度,又使系统具有较好的实时性。本频率计设计简洁,便于携带,扩展能力强,适用范围广。 [关键词]单片机,AT89C51,运算,频率计,LED数码管。

前言 在电子测量领域中,频率测量的精确度是最高的,可达10—10E-13数量级。因此,在生产过程中许多物理量,例如温度、压力、流量、液位、PH 值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,以提高精确度。 国际上数字频率计的分类很多。按功能分类,测量某种单一功能的计数器。如频率计数器,只能专门用来测量高频和微波频率;时间计数器,是以测量时间为基础的计数器,其测时分辨力和准确度很高,可达ns数量级;特种计数器,它具有特种功能,如可逆计数器、予置计数器、差值计数器、倒数计数器等,用于工业和白控技术等方面。数字频率计按频段分类 (1)低速计数器:最高计数频率<10MHz; (2)中速计数器:最高计数频率10—100MHz; (3)高速计数器:最高计数频率>100MHz; (4)微波频率计数器:测频范围1—80GHz或更高。 单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。

基于AT89C51单片机的测温系统

引言 本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20的数据采集过程,并介绍了利用C语言编程对DS18B20的访问,该系统可以方便的实现实现温度采集和显示,使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量。 数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC89C52单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示。

一、设计要求 通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,C语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。 以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为?摄氏度。温度显示采用3位LED数码管显示,两位整数,一位小数。具有键盘输入上下限功能,超过上下限温度时,进行声音报警。 二、基本原理 原理简述:数字温度传感器DS1820把温度信息转换为数字格式;通过“1-线协议”,单片机获取指定传感器的数字温度信息,并显示到显示设备上。通过键盘,单片机可根据程序指令实现更灵活的功能,如单点检测、轮转检测、越限检测等。基于DS1820数字温度传感器的温度检测及显示的系统原理图如图 图基于DS1820的温度检测系统框图 三:主要器件介绍(时序图及各命令序列,温度如何计算等) 系统总体设计框图 由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。 测温电路设计总体设计框图如图所示,控制器采用单片机AT89S52,温度 传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实 现,键盘用来设定报警上下限温度。

基于单片机温度计

单片机温度计 学院机械学院 班级 11机自创新1班 姓名安祥乐 学号 1110100221

摘要 (3) 1、引言 (3) 2 设计内容及性能指标 (4) 3 系统方案比较、设计与论证 (4) 3.1 主控制器模块 (4) 3.2 温度测量 (4) 3.3 设置温度 (5) 3.3 显示模块 (5) 3.4 电源选取 (6) 4 系统器件选择 (6) 5 硬件实现及单元电路设计 (7) 5.1 主控制模块 (7) 5.2 显示模块电路 (7) 5.3 数码管显示驱动电路 (8) 图6 驱动电路 (8) 5.4 温度传感器(DS18B20)电路 (8) 5.4.1 DS18B20基本介绍 (8) 5.4.2 DS18B20控制方法 (9) 5.4.3 DS18B20供电方式 (9) 6 系统软件设计 (10) 6.1 程序结构分析 (10) 6.2 系统程序流图 (10) 6.2.1 DS18B20初始化程序流程图 (11) 6.2.2 读温度子程序流程图 (12) 7 系统的安装与调试 (12) 7.1 安装步骤 (12) 7.2 电路的调试 (12) 结论 (13) 参考文献 (13) 附录1 整体电路原理图 (13) 附录2 部分源程序 (14)

单片机温度计 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于STC89C52单片机的温度检测系统,详细描述了利用温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度控制,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与STC89C52结合实现最简温度控制系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度的控制,有广泛的应用前景。 关键词:单片机;温度显示;STC89C52;DS18B20; 1、引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: ①传统的分立式温度传感器 ②模拟集成温度传感器 ③智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,STC89C52单片机为控制器构成的数字温度控制装置的工作原理及程序设计作了详细的介绍。其具有读数方便,方便控制,输

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