基于单片机的数字温度计的设计 数字温度计的设计
随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在温度控制器中应用单片机,具有设计简单、可靠性高、功能易扩展等优点。
本文着重于温度控制器在智能控制方面的探讨。
【关键词】:18B20;单片机,51,LED
1 绪 论
临近毕业之际,特以此设计告慰我留恋的大学生活,从此,我将从这里步入社会这所大学;从此,生活将掀开新的一页!
1.1 课题介绍 1.1.1 所选课题的题目及课题来源
本人所选课题的题目为《基于18B20的多功能数字温度计》。
电子学的基础是测量科学,是来自现场的第一手资料,现场数据所反应的技术缺陷和技术优势是我们研究和探讨的永远的话题。
单片机技术发展到现在,正在向低成本,高效率,高可靠性的方向发展。
DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。
鉴于此,本课程设计题目定为《基于18B20的多功能数字温度计》。
1.1.2 课题研究的目的、意义
本课题研究的目的:实现温度测量的低成本,高效率,高可靠性。
本课题研究的意义,提供一种更新颖更合理的温度测量方法。
1.2 单片机最小系统
(图1)
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图(图1):
图1
详细说明如下:
(1) 复位电路:
由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C取10u,R取10K。原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。
(2) 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作),在本电路中,取12M。
(3) 单片机:一片AT89S51/52或其他51系列兼容单片机。对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。
1) AT89C51单片机的共40个引脚功总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个,剩下还有34个。29脚PSEN,30脚ALE为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑,这样,就只剩下32个引脚,它们是:
P0端口P0.0 - P0.7共8个;
P1端口P1.0 - P1.7共8个;
P2端口P2.0 - P2.7共8个;
P3端口P3.0 - P3.7共8个;
1.3 本课题所做的主要工作
本课题的主要工作:利用单片机最小系统外加尽可能少的元器件
1. 实现温度测量的低成本,高效率,高可靠性。
2. 提供一种更新颖更合理的温度测量方法。
2 多功能数字温度计的硬件组成 2.1 AT89C51单片机工作原理 2.1.1 单片机的雏形 MCS-48单片机是美国INTE公司于1976年推出,它是现代单片机的雏形,包含了数字处理的全部功能,外接一定的附加外围芯片即构成完整的微型计算机,其主要的功能特征为:
8位CPU(中央处理器)、内置程序存储器(ROM)、随机存取数据存储器(RAM)和输入输出端口(I/O)全部集成在单一的芯片上而构成了完整的微型计算机。
1) 8位CPU。
2) 双列直插40PinDIP封装。
3) 所有指令均为1-2个机器周期。
4) 96条指令,大部分为单字节指令。
5) 2个工作寄存器。
6) 2个可编程定时/计数器。
7) 8层堆栈。
8) 单一+5V电源供电。使用6MHz外接石英晶体管振荡器,此时机器周期为2.5us。
2.1.2 单片机的发展,MCS-48系列单片机 8048和8748是最早期的产品,8048本身具有64x8位RAM,1kx8位的ROM,而后期的8049中的RAM大到256字节,ROM却增加到了4kBytes,这个成绩在当时是相当可喜的。还有一类的产品本身是不带程序存储器的,象8035和8039,它的程序存储器只能外接,当时常用的是EPROM(紫外线擦除电写只读程序存储器)一类的ROM。
MCS-48系列单片机还有几个产品,象8021和8022单片机,8021该系列中的低价型单片机,而8022则是包含了单片机所有功能,并集成了A/D转换器的产品。
现在MCS-48系列单片机已完全退出了历史舞台,由MCS-51系列单片机取而代之。
2.2 地址锁存器(74HC573)工作原理
图2
(1)74HC/LS573 及74HC/LS574叫八d锁存器 ,结构如下图(图2)所示:
分析:
LE=1, Qn=/Dn, /Dn表示Dn的反相;
LE=0, Qn数据锁存为当前的/Dn;
OE=1, 输出为高阻态;
OE=0, On=/Qn;
(2)74HC/LS574 引脚图如(图3)所示
图3
(2) 真值表如下图(图4)所示
图4
2.3 LED数码管的工作原理
(1)LED介绍
LED是一种较为常用的发光元件。目前以LED为发光元件而研制的显示屏应用可作为实时工业控制系统中的远距离实时信息显示器,对高要求的工艺流程进行实时显示。
目前,LED显示器的主要形式有两种,一种是能够显示各种字符、汉字和图像信息的阵列式LED。另一种则是只能显示0~9这10个阿拉伯数字及少数几个英文字母的数码式LED,即八段数码管。尽管阵列式LED从功能上来说完全取代数码式LED,但由于前者的成本造价要比后者高得多,实现方法要比后者复杂,故在很多场合还经常用到数码式LED。
(2)本电路采用共阴的七段LED。
2.4 温度传感器DS18B20的工作原理
(1)DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。继“一线总线”的早期产品后,DS18B20开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
(2)基于DS18B20 的这些优势,本设计选择以此为传感元件。
3 多功能数字温度计的硬件电路的实现 3.1 电路模块框图
本电路采用基于MCS-51单片机,用LED进行显示的硬件设计方法,电路硬件模块图如下:
硬件框图
图5
3.2 电路原理图
4 系统软件设计
4.1 软件开发环境
软件采用C语言编制,采用南京伟福出品的wave仿真器进行电路仿真。
软件环境:
Windows98、Windows2000、WindowsXP 操作系统、Wave6000仿真软件一套
硬件环境:
电脑一台:配置CPU PII266M以上、内存64M以上、硬盘1G以上
wave6000仿真器一台,H8X5X仿真头一个。
4.2 软件流程图
设置温度+1并显示
Y
Y
N
N
状态=0
N
Y
Y
Y
4.3 软件设计 4.3.1 状态驱动程序
本软件采用状态驱动程序的编程方法,即将所有程序的运行状态都统一编号,然后根据程序运行到的状态来执行相应的软件功能。通过统一编号能够将程序的运行情况系统的分析清楚,然后根据编号来完成功能。这样做的好处是编程者可以将复杂的应用程序通过状态来细化程序,把一个大系统人为分割成一个一个小的状态系统,大大降低了程序的编程难度。现在我们逐一介绍下本系统各个状态的实现功能。本系统我们分为二个运行状态。
●状态1:程序上电后自动进入检测温度状态,此状态可以实时显示温度和根据温度来控制继电器。在状态1下按设置键进入状态2。
●状态2:设置温度状态。当状态1下按设置温度键后可以进入设置温度状态。可以按加一键设置温度加一,可以按减一键设置温度减一,按下确认键回到状态1。
4.3.2 显示数码管程序
单片机通过IO来控制数码管点亮顺序来点亮数码管,其中showbuff数组是显示缓冲区,1位是十位,2位是个位。
void display(void) //显示子程序
{unsigned char i;
s1=1;
s2=0;
for(i=1;i<=10;i++)
P2=255-GYTAB[showbuff[1]];
s1=0;
s2=1;
for(i=1;i<=10;i++)
P2=255-GYTAB[showbuff[2]];
}
4.3.3 DS18B20程序
unsigned char Reset(void)//复位18b20
{
unsigned char deceive_ready;
delay(10);
DQ=0; //拉低DQ线
delay(29); //延时至少480us~960us
DQ=1; //将DQ线设置位逻辑高
delay(3); //延时等待deceive_ready响应
deceive_ready=DQ; //采样deceive_ready信号
delay(25); //等待时序结束
return(deceive_ready); //有deceive_ready信号时返回0,否则返回1
}
unsigned char read_bit(void)
{
unsigned char i;
DQ=0; //拉低DQ线开始时序
DQ=1; //升高DQ线
for(i=0;i<3;i++); //延时至时序开始15us
return(DQ); //返回DQ值
}
void write_bit(unsigned char bitval)
{
DQ=0; //拉低DQ线开始时序
if(bitval==1)
DQ=1; //如果写逻辑为高
delay(5); //延时
DQ=1; //升高DQ线
}
void write_byte(unsigned char val)
{
unsigned char i,temp;
for(i=0;i<8;i++)
{
temp=val>>i; //将val位右移i位赋值给比temp
temp=temp&0x01; //取temp最低位
write_bit(temp);
delay(5); //延时至时序结束
}
}
unsigned char read_byte(void)
{
unsigned char i,m,receive_data;
m=1;receive_data=0; //初始化
for(i=0;i<8;i++)
{
if(read_bit())
{
receive_data=receive_data+(m<<i);
} //每读一位数据据,左移一位
delay(6); //延时至时序结束
}
return(receive_data); //返回value
}
unsigned char Get_temp(void)
{unsigned char TMPL,TMPH;
Reset();
write_byte(0xcc); //发跳过ROM命令
write_byte(0x44); //发启动转换命令
Reset();
write_byte(0xcc); //发跳过ROM命令
write_byte(0xbe); //发跳过ROM命令
TMPL=read_byte(); //读低8位温度值
TMPH=read_byte(); //读高8位温度值
return((TMPH*256+TMPL)/16); //返回实际温度
}
5 抗干扰设计
单片机系统的可靠性是由多种因素决定的,其中系统的抗干扰性能的好坏是影响系统可靠性的重要因素,因此本章将从干扰的来源、硬件、软件和电源系统等各个方面要分析本系统的抗干扰措施。
5.1 硬件抗干扰措施
本系统应用环境的干扰主要来自三个方面。第一是空间干扰:这类干扰来源于系统周围的电气设备比如发射机、逆变电源等发出的电干扰和磁干扰,广播电台或通讯发射台发出的电磁波,空中雷电,甚至地磁场的变化也会引起干扰。第二是供电系统干扰:这类干扰来源于大功率设备(特别是感性负载设备)的开关会使得电网电压大幅度的涨落,电网常常出现几百伏的尖脉冲干扰,往往这种状况有时持续时间很长。第三是过程通道干扰:在工业现场由于各种输入输出信号线和控制线数量很多长度很长等客观因素存在,不可能避免有干扰进入系统。往往这种干扰都是瞬间干扰,有时将你采集过来的信号完全淹没。针对上面所描述的干扰我们在系统中设计了硬件抗干扰措施,下面来分析下。
对于空间干扰我们主要是将空间干扰过来的信号全部接到地线或者大地上,使得干扰信号不能干扰系统。这里我们采用了外壳接大地、系统线路板一点接地、线路板采用敷铜方式接地等方式来处理。
对于供电系统干扰我们主要是将由供电系统过来的干扰尖脉冲滤掉或者把尖脉冲平滑。这里我们采用了具有静电屏蔽和抗电磁干扰的隔离电源变压器、采用集成稳压块稳压、直流输出部分采用大容量电解电容进行平滑滤波、在每块芯片旁边增加了104去耦电容以消除支流电源与地线中脉冲电流所造成的干扰。
对于过程通道系统干扰我们主要是是采用了光耦作为信号之间的隔离。采用光电耦合器可以将单片机与前向、后向以及其他部分切断电路的联系。事实证明能有效的防止干扰从过程通道进入单片机。光耦的主要优点是能有效抑制尖峰脉冲以及各种噪声干扰,从而使过程通道上的信噪比大大提高。
5.2 软件件抗干扰措施
软件抗干扰技术是当系统受干扰后使得系统恢复正常运行或输入信号受到干扰后去伪求真的一种辅助方法。因此软件抗干扰是被动措施,而硬件抗干扰是主动措施。但由于软件设计灵活、节省硬件资源,所以软件抗干扰技术已经得到广泛的应用。
第一我们采用了软件滤波技术,进行多次采样并求平均的方法来得到温度值,这样可以大大减少采样温度值的偶然性,提高采样数据的准确性。
第二我们采用软件看门狗技术。减少单片机由于受到外界干扰将程序计数器内的状态被破坏而导致程序进入死循环的现象出现。我们下面谈下看门狗技术的工作原理。使用一个独立的计数器来不断的计数,监视程序循环运行,程序正常运行的时候会定时将计数器内的数字清0而不使计数器计数溢出,若计数器发现时间超过已知的循环设定时间,那么就认为系统陷入了死循环,这时计数器溢出,然后给单片机复位脚一个复位信号强制单片机复位,在复位入口0000H处安排一段出错处理程序,使得系统运行进入正轨。本系统我们采用89C52自带的看门狗。
6 致 谢 经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。
在这里要感谢我的导师老师。她平日里工作繁多,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是指志老师仍然细心地纠正图纸中的错误。除了敬佩指导老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
最后还要感谢大学四年来所有的老师,为我们打下专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。
7 参考文献 [1] 李文石,电子锁的发展和设计综述,五金科技,3:3-6,1993
[2] 王磊,PLC 控制的多功能磁卡式电子密码锁设计,河南大学学报,28(3):58-61,1998
[3] 宋文阁,李明颖,王学俊, 单片机控制IC卡电子锁,大连轻工业学院学报 18(2):111-115,1999
[4] 宁爱民,应用AT89C2051单片机设计电子密码锁 淮海工学院学报 12(2):28-31,2003
[5] 张迎新等.单片机原理及应用.电子工业出版社.2006.
[6] 李朝青等.无线发送/接收IC芯片及其数据通信技术选编(1).北京航空航天大学出版. 1999.
[7] 彭 为等.单片机典型系统设计实例精讲.电子工业出版社.2006.
[8] 楼然苗等. 李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.
[9] 李鲁群. 编写Palm J2ME红外线“聊天”程序 .http://www.tele21.com.cn
[10] 李朝青.1998.单片机原理及接口技术.北京:北京航空航天大学出版社;
[11] 李朝青. 2000.PC机及单片机数据通信技术.北京航空航天大学出版社;
[12] 李军.2004.51系列单片机 高级实例开发指南.北京航空航天大学出版社;
[13] 全国大学生电子设计竞赛组委会.2005.全国大学生电子设计竞赛获奖作品选编(2003).北京:北京理工大学出版社;
[14] 张文峥,李先亮,张其善等. 2000.IrDA红外通信在导航仪中的应用. 电子技术应用;
[15] 邱玉春,李文俊. 2000.单片机系统中的红外通信接口.电子产品世界;
[16] 杨将新,李华军,刘到骏等.2006.单片机程序设计及应用(从基础到实践).电子工业出版社;
[17] 周立功.2004.LPC900系列Flash单片机应用技术,北京航空航天大学出版社;
[18] 周彦明. 2002.一种高可靠低功耗的89C2051系统.电子报;
[19] 黄耀军,周云,严国萍等. 2000.计算机红外无线互连的设计几实现. 电子技术;
[20] 黄智伟.2005.全国大学生电子设计竞赛训练教程.北京:电子工业出版社;
[21] 匿名. 2003.用PT2262实现可遥控式电子密码锁.电子设计应用;
[22] 薛宗祥,鹿树理,朱惠英等.1999.EPSON 8位单片机原理与应用.北京航空航天大学出版社;
[23] Intel corporation.1981.MCS-51(tm) family of single chip microcomputers: Users manual.Santa Clara: Intel Corporation
[24] M Mizumoto.1995.Realization of PID Controls by Fuzzy Control Methods.Fuzzy Sets and Systems
[25] Serial Infrared Physical Layer Specification, Version 1.3. October 15,1998,IBM corporation ,Hewlett-Packard Company, Sharp Inc.
[26] Link Management Protocol ,Version 1.1.January 23,1996,IBM Corporation.
[27] Serial Infrared Link Access Protocol(IrLAP),Version 1.1. June 16, 1996,IBM Corporation , [20]Hewlett-Packard Company, Apple Computer, Inc., Counterpoint Systems Foundry, Inc.
[28] AT24C01 datasheet. http://www.ateml.com
更多阅读
HC-05蓝牙模块与单片机的使用 hc05蓝牙模块
HC-05蓝牙模块与单片机的使用——简介关于HC-05蓝牙模块如何搭配单片机使用,还是以Arduino UNO升级改进版Manduino UNO为例,进行说明。HC-05蓝牙模块适用于各种3.3V的单片机系统,模块可以使用AT指令设置波特率配对、密码用户信息等,默
基于单片机的多路温度巡检仪的设计 多路巡检仪
八路温度巡检仪的设计 ------------原创功能:实现八路温度循环监测,或一路温度动态监测。设计构想:利用热敏电阻采集信号,将温度的变化体现在阻值的变化上,运放来实现电压信号放大,经过8位的模拟开关后经AD转换为数字信号,后有单片机处
基于udp的网络编程socket的错误10054与SOCKET的发送与接收缓冲区 socket接收缓冲区大小
哎!长叹一声!今天上班很鬼火,被老板骂了一顿,严重的打击了我的自信!哎,鬼火啊,到今天下班以前,才把任务完成了一点点。明天要继续努力哦!总结今天碰到的问题。首先:今天在做一个视频转发器,用vlc播放器推视频流,通过转发器然后发送到另外一个pc,
基于标准的课程设计:开发表现性评价
朱伟强* 崔允漷**摘 要:国家颁布的课程标准,作为一种政策力量,规范着课程的实践。新课程提出了建立发展性评价的理念,课程设计和教学实践要求用评价来促进学习,评价设计先于教学实施。本文主要讨论设计基于标准的课程需要思考的第二个问
基于单片机的数字温度计的设计 数字温度计的设计
【摘要】:本文介绍了用51单片机设计的一种温度控制器,实时显示当前环境温度,具有结构简单、可靠性高、成本低等特点。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在温度控制器中应用单片机,具有设计