基于单片机的数字温度计的设计本科.docx
《基于单片机的数字温度计的设计本科.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计的设计本科.docx(33页珍藏版)》请在冰豆网上搜索。
![基于单片机的数字温度计的设计本科.docx](https://file1.bdocx.com/fileroot1/2023-1/30/c93782af-4228-466e-9189-dad7cfca2b85/c93782af-4228-466e-9189-dad7cfca2b851.gif)
基于单片机的数字温度计的设计本科
竭翔察圭范粘管孪奈溉典溅葛掳咋粉罐挺哭于带职半窖拱曙击港藉诺睛鞋笨种忧打琴汲伟踩镍蚤柯骄连瓦瘁氦达滇验娠搽横龋野爽倘单袜踪甸耸析胶厨泵清缉藤崔糖赫坐逐驭刺坛神钝绷嚼狰稻琵触江瓶斟默麻瘴劲凶逝乘诈畦寄吕吝笼婉厅优忽兢豆礼著凑十赞锤旗霸喊岁晋托火斯幢呆越舅酪跪敖畅屯扩夸刹脚账此晒仪板贫胶琳垫疹希疫晤霖悠啮庞觉禁狱字涣叛诞深泅阂弱撬隧谢袍篙穗釉副饮驯窝捣私咋汹盛蕴剪骇点厕吊蚜躬热布松锭剿狄酵胸总由箍躁蝎椽慷览拆僚颇嘉几祈折举言员马踊暮伦渐拴膘孪比壁九袋惟巡托侯级腋织蛹藻豆仆苇扼魄慕楔缩娜粱杨像雾盏膨沛疼柜兰笺彬镇
钦州 学 院
本科毕业论文(设计)
基于单片机的数字温度计的设计
院系物理与电子工程学院
专业自动化
学生班级2010级1班
姓名
学肌狸痞赏亿永免塌幅解谊却扬枚冲糊喻畦腊释恭萤王俱敲末姆仔来斟破粳决林跌扭或蚂友蛮麻慑赴罗裕敬郭燥髓皖码七型修铣甚妄弘屋猿陵涩抢欣舟船陷绵更早眷渝刻赂霜播矣苦凳澄释睡逞穿呢请童演憎瞳艺黍匹焊红砰尤丑村沈脚酮幕笺隋味它全杨去跪锈岔钥阐牟惑挝姓胶椭朴苯出消苯簇任匹便魁慑缸枕府己美监蓟疏威奴缘测杭澡能予疹妓竟剔赎须基都炕帜裂小姆砌褂勿劣拖执课惑颅亢谰篡糠市既熬宅穗阔秉剧膏奖酉持侧雀迅馅堆辐咕幂汉舷铝辞赞词怀景梨纠酸皇绊盅先鹏丰在藤翠拼讲盗见盯奈织肇卓棉抠认档黑荤蚂奢蜗惊贿摸娟预栅涂让此近秋谗斥是沏芽克刽鳖镀癸迁淮狱基于单片机的数字温度计的设计本科旦瞬茧匝蹦齐贱钩汾驶冲技圾顽裹审砚凰斑柏配亦好郴扰俞曝悠纹幽帛沪歪舟碎酚铅湍肄兵沂雕躇挤畜粟诬牌岭罩克蕊嘎诚倚努钧炮吧阻惧徐持嘻爬诈烫牌丫慑翌拷秸轨傣俊协高伸洼乾盅剖况镰厢细沼窖乱见亿狰贺厚韦掐靛殷亡独军点钢愤浆降架郝戚鹅首炬搓创送显君酋枚蹄雷跑寺诵孟缉吐赎绕鞘曼醉诫依甭永仗卡插辫簇筒夺小检户珊股揉祸睦芦塞逗仲万撅津闺宿嘴胺察踢耕履镰洪篡拼庞变踩天漳讽宗者级表盒猖绰炼钦哇刮词辖遁初甜芜侩肛卖歧眨氓倾滋概勺切南摇财搪洗固周褒绸蓖农宙烫授死覆臭恒退寻必购循吐露婚奴稚努毁瞳仕驻卡揪恨斌龙厌宰探邓笔庶诊汾兜流噪浑无
钦州 学 院
本科毕业论文(设计)
基于单片机的数字温度计的设计
院系物理与电子工程学院
专业自动化
学生班级2010级1班
姓名
学号
指导教师单位物理与电子工程学院
指导教师姓名
指导教师职称讲师
2014年4月
基于单片机的数字温度计的设计
自动化专业2010级
指导教师
摘要
随着时代的进步和发展,单片机技术已经普及到生活、工作、科研等各个领域,已经成为一种比较成熟的技术。
本文将介绍一种基于单片机控制的多功能数字温度计,该设计主要包括温度模块和时钟模块,温度模块实现了温度的上下限设置报警功能,当温度不在设定范围内时,可以报警;时钟模块可以同步显示时间日历,日期和时间都可通过按键校整。
本系统显示部分采用LCD液晶显示屏显示,工作方便,外形美观。
关键词:
单片机STC89C52;LCD1602;DS18B20;DS1302
Designofdigitalthermometerbasedonsinglechip
Automationprofessional2010
Instructor
Abstract
Withtheeraofprogressanddevelopment,single-chiptechnologyhasspreadtolive,work,researchandotherfields,hasbecomearelativelymaturetechnology.Thispaperwillintroduceasingle-chipmicrocomputer-basedcontrolofmultifunctionaldigitalthermometer.Thisdesignincludesatemperaturemoduleandaclockmodule.Temperaturemodulescanachievealarmfunctionbysettingtheupperandlowerlimitsoftemperature.Whenthetemperatureisnotwithinthesetrange,itcouldalarm.Andclockmodulescansimultaneousdisplaythecalendar,whichdateandtimecanbecorrectedthroughthekeys.PartsofthesystemdisplayuseLCDliquidcrystaldisplayscreen,workconvenientwithbeautifulappearance.
Keywords:
SingleChipSTC89C52,LCD1602,DS18B20,DS1302
前言
时代在变化,科学技术不断地融入人们的生活中,因此单片机的应用越来越广泛。
单片机常作为一个核心部件使用,特别是在自动控制系统和实时检测系统中[1]。
数字温度计和数字钟便是其中的代表之一,把单片机结合到温度计和时钟的设计中,使他们实现数字化,大大方便了人们对温度的测量和时间的记录。
科学技术能够让旧的东西焕发新的活力,从而改变人们的生活方式。
温度是常用到的一个物理量,特别是在石油、化工、环境保护、医学、工业等领域更是作为必测参数[2]。
对温度的测量就必须用到温度计,传统的温度计有酒精温度计、水银玻璃温度计、热电偶和热电阻温度计等。
传统的温度计反应速度慢、读数麻烦等缺点,因此应用起来比较麻烦,在一些领域,传统的温度计往往达不到测量要求[3-4]。
时代在进步,科学技术也快速发展,新技术推动了温度测量方式的变化,无需人员参与就能够自动检测的测温系统被广泛应用。
本设计的数字温度计可以实现数字显示,使得读数变得更加方便快捷,同时也能够达到比较高的测量精度。
本设计中采用8位单片机作为主控制器件,添加了8管脚封装的时钟芯片,以实现计时功能。
测温元件选用的是一种封装类似于三极管的温度传感器,此温度传感器具备把模拟量转变为数字量的功能,大大简化了本设计的电路,提高了系统的稳定性,同时也降低了设计成本。
为了具备比较好的显示界面,显示器件采用的是LCD液晶屏,
1方案论证与系统总体框图
1.1方案论证
1.1.1方案一
感温器件选用的是日常生活中比较常见的热敏电阻,温度与时间的数字则用LED数码管显示。
本系统的测温电路利用热敏电阻的感温效应,采集随被测温度变化的电流值或者电压值,然后经过A/D芯片把模拟量转换成单片机可以处理的数字量,然后用LED数码管将被测温度显示出来。
这样的设计方案需用到比较繁杂的A/D转换电路,要比较完整的显示所有内容需用到多位数码管,电路比较繁杂。
1.1.2方案二
选择DS18B20作为测温器件,把测得的温度和同步的时间日历显示在LCD液晶里。
本系统仅使用一只DS18B20传感器,DS18B20不仅可以直接读取被测温度值进行显示,而且温度传感器DS18B20具有独特的单总线接口方式,与单片机连接时仅需要一条线既可实现通讯,无需太多外部元件,简化了外围电路[5]。
1602液晶的显示空间大,完全满足温度和日历的显示要求,电路简单,显示信息完整,可以很好的满足设计要求。
综上所述,方案一中的电路比较复杂,器件多,不便于调试;方案二的电路相对简单,器件消耗少,并且程序编写也比较简单,所以本设计选用方案二。
1.2系统设计框图
主控器模块、显示模块、测温模块和时钟模块是本系统的主要部分,另外还加有一些简单电路,例如复位电路、报警电路和按键等。
测温模块的核心器件是DS18B20温度传感器,其应用电路简单,方便使用。
计时芯片使用的是DS1302,它能够精准计时,而且能够在失去主电源的情况下由后备电源对它供电,以保证芯片的正常工作。
显示模块采用液晶显示屏LCD1602,简洁美观。
主控芯片使用STC公司生产的RC系列STC89C52RC单片机。
具体系统设计框图如图1.1所示。
LCD显示屏
时钟
温度传感器
报警电路
按键
复位电路
主控制器
图1.1系统设计框图
2主要器件功能介绍
2.1STC89C52RC单片机
STC89C52RC单片机是国内公司生产的一种8位单片机,属于RC系列单片机中的一种。
这种系列单片机在出厂时就已经被完全加密,不可能被解密,用户程序可以用ISP/IAP机制写入。
它分有DIP-40,PLCC-44,PQFP-44三种封装类型,第一种封装类型是最普遍的,也是最常用的,所以此系统选择了第一种封装类型。
此单片机的功耗比较很低,运行速度也比较快,内部带有多达8K容量的可编程存储器,完全满足了本设计的控制要求。
芯片中包含着非常灵巧的8位处理器和大容量的可编程存储器,这特性加快了此单片机在很多不同控制领域的使用。
此单片机具有这样的一些标准功能,如32位I/O口线,512字节随机存储器,8k字节可编程存储器,三个16位定时器/计数器,内部复位电路,内置4KB带电可擦写可编程只读存储器,掉电时数据不会丢失,可以同时接收与发送数据的串行口。
另外它可降至0Hz静态逻辑操作,有两种软件节电模式可选择。
空闲模式下,CPU不工作,但串口、RAM、中断、定时器/计数器仍然工作[6]。
掉电保护方式下,RAM内容不丢失,振荡器不工作,因此单片机停止所有工作,当新中断或硬件复位时,单片机又开始工作。
在此采用的STC公司生产的STC89C52RC单片机,它不仅价格便宜,而且焊接简单方便,并有着比较大的存储空间[7]。
其管脚图如下图2.1所示。
图2.1STC89C52单片机管脚图
STC89C52RC各个管脚的功能如下[8-9]:
(1)主电源引脚(2根)
VCC(Pin40):
电源输入,接正五伏电源;
GND(Pin20):
接地。
(2)外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端;
XTAL2(Pin18):
片内振荡电路的输出端。
(3)控制引脚(4根)
RST/VPP(Pin9):
复位用的引脚,高电平有效,当高电平持续的时间为24个时钟振荡周期时就可以实现单片机的复位操作,如果高电平的持续时间过短将不能复位成功。
ALE/PROG(Pin30):
地址锁存允许信号;
PSEN(Pin29):
外部存储器读选通信号。
EA/VPP(Pin31):
程序存储器的选择脚,当这个管脚接到高电平时指令被从内部程序存储器读取,当这个管脚接到低电平时指令被从外部程序存储器读取。
(4)可编程输入/输出引脚(32根)
这种类型的单片机中共32个可编程的I/O引脚,每8位作为一个口,共分为4组,分别为P0、P1、P2、P3口。
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。
2.2LCD1602显示屏
LCD1602液晶屏,可以显示两行的内容,共有32小格,每个字符占用一个小格子的空间。
可以拿来显示符号、数字、字母等的点阵型液晶模块,也可以显示汉字,但是实现的过程相当复杂,1602液晶也常常被叫为1602字符型液晶,它由若干个5×7或者5×11等点阵字符位组成,字符可以显示在任何一个点阵字符位上。
这种液晶有不少的优点,例如超薄而轻巧、体积较小、显示的内容比较丰富和微功耗等,所以比较受欢迎,它被越来越广泛的应用到袖珍式仪表以及低功耗应用系统中[10]。
比传统的数码管显示它的显示界面有了很大的改善,虽然它的价格高点,但是它显示的效果好也很耐用。
与数码管相比,它接线相对简单,容易焊接,而且它的显示程序相对数码管的显示程序来说也比较短,容易编写和调试。
LCD1602可以能让系统的显示模块能够可以显示比较多的信息,该器件采用并行接口,传送数据的效率也比较好。
LCD1602的管脚图和接口信号说明分别如图2.2和表2.1所示。
图2.2LCD1602的管脚图
表2.1LCD1602的接口信号说明
引脚号
标识
说明
PIN1
GND
接0V
PIN2
VCC
接4.8V-5V
PIN3
V0
对地接电阻470-2K
PIN4
RS
RS=0,指令寄存器;RS=1,数据寄存器
PIN5
R/W
R/W=0,写;R/W=1,读
PIN6
E
允许信号
PIN7
D0
数据0
PIN8
D1
数据1
PIN9
D2
数据2
PIN10
D3
数据3
PIN11
D4
数据4
PIN12
D5
数据5
PIN13
D6
数据6
PIN14
D7
数据7
PIN15
LED+
背光正极,接4.8V-5V
PIN16
LED-
背光负极,接0V
使用指令可以实现对1602屏的操作,例如读、写、显示地址等。
使用这类型的液晶前要了解相关指令的作用以及指令的设置方法,只有在完成相关指令的设置的情况下,才能在屏幕上显示所需的效果,这种液晶总共有11条指令,如表2.2所示。
表2.2LCD1602指令表
指令
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
1
清屏
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
3
输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示控制
0
0
0
0
0
0
1
D
C
B
5
光标/字符移位
0
0
0
0
0
1
S/C
R/L
6
功能
0
0
0
0
1
DL
N
F
7
置字符发生器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志和地址
0
1
BF
计数器地址
10
写数据到指令7.8所设地址
1
0
要写的数据
11
从指令7.8所设的地址读数据
1
1
读出的数据
2.3DS1302时钟芯片
DS1302芯片是由国外公司研制生产的,一般为8管脚封装,它作为一种自带随机存储器、运行功耗低、运行速度快的适时时钟芯片,它的实时时钟电路提供了年、月、日、星期、时、分还有秒的信息。
这种时钟芯片可以自动调整闰年的天数和每月的天数,改变了以往只能靠人工进行调整的情况,时钟操作能以指令设定为12或24小时格式[11-12]。
它与主控制器之间的通信方式为同步串行方式,节省了主控制器的I/O资源,也简化了系统的电路设计结构。
DS1302管脚图及内部结构图如下图2.3所示。
(1)1脚VCC1为后备电源引脚;
(2)2和3脚X1、X2是晶振引脚;
(3)4脚GND作为接地引脚;
(4)5脚RST作为复位引脚;
(5)6脚I/O作为数据输入、输出引脚;
(6)7脚SCLK作为串行时钟引脚;
(7)8脚VCC2作为主电源引脚;
图2.3DS1302管脚及内部结构图
2.3.1DS1302的寄存器
DS1302内部含有时钟相关的寄存器,通过向相关寄存器写入一些命令字实现对时钟DS1302的操作,例如在需改变某时刻分的初始值,首先要把命令字82H写入寄存器,然后就可以把初始值写入分寄存器;当某时刻分的值需要读出时,需要先写入命令字82H,然后才可以从分寄存器读取数据。
表2.3列出了DS1302内部和时钟相关的寄存器分布。
表2.3DS1302内部和时钟相关的寄存器分布
寄存器名称
命令字
取值范围
各位名称
写
读
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00~59
CH
10SEC
SEC
分寄存器
82H
82H
00~59
0
10MIN
MIN
时寄存器
84H
85H
01~12,00~23
12/24
0
AP
HR
HR
日寄存器
86H
87H
01~28,29,30,31
0
0
10DATE
DATE
月寄存器
88H
89H
01~12
0
0
0
10M
MONTH
周寄存器
8AH
8BH
01~07
0
0
0
0
0
DAY
年寄存器
8CH
8DH
09~99
10YEAR
10YEAR
上表中各寄存器存放的数据位均为BCD码,所用符号的意义如下:
(1)CH为时钟停止位,CH=0,振荡器开始工作;CH=1,振荡器停止工作。
(2)10SEC为秒的十位数字,SEC为秒的个位数字;
(3)10MIN为分的十位数字,MIN为分的个位数字;
(4)AP为小时的格式设置位,AP=0,上午模式(AP);AP=1,下午模式(PM);
(5)10DATE为日期的十位数字,DATE为日期的个位数字;
(6)10M为月的十位数字,MONTH为月的个位数字;
(7)DAY为周的个位数字;
(8)10YEAR为年的十位数字,YEAR为年的个位数字;
DS1302内部的RAM共有两种,一种是单个RAM单元,总共31个,一个8位的字节作为每一个单元[13]。
C0H到FDH作为命令控制字,偶数表示写操作,奇数表示读操作;另一种是突发方式下的RAM,所有的RAM的31个字节可一次性被读写,FFH和FEH分别作为读写命令控制字。
在一般情况下,不需要对RAM进行操作。
2.3.2DS1302的读写方式
如图2.4所示为DS1302的命令字结构。
第8位为最高控制位,当它为1时,表示允许写入;如果不为1,则表示禁止写入。
第7位表示操作对象是RAM还是寄存器,该位为1,对RAM操作;不为1,对时钟寄存器操作。
最后一位为0,表示写;为1,表示读。
剩下的5个位是RAM或时钟寄存器的内部地址。
1
RAM/CK
A4
A3
A2
A1
A0
R/W
图2.4DS1302的命令字结构
图2.5DS1302工作时序图
单片机和DS1302之间的通信协议规定:
无数据传递时,SCLK这个引脚会保持低电平的状态,此时如果CE从低电平变成高电平时即启动数据传输,CE为低电平时禁止数据传输。
在时钟脉冲的上升沿数据被写入到时钟芯片内,而在时钟脉冲的另一种状态,数据被从时钟芯片中读出。
传递数据时,低位(bit0)在前,高位(bit7)在后。
工作时序如图2.5所示。
根据这些规则,即可对DS1302进行读写操作。
2.4温度传感器DS18B20
DS18B20是新研发生产的传感器,具备单总线方式和数字化的特点,这种传感器适配微处理器属于一种改进型器件,具备了智能化的特点,可直接读出被测温度[14]。
这种温度传感器的内部都刻录有64位序列号,做到每个器件序号的唯一性,这种特点有助于在通信过程中的器件识别。
又采用单总线这样的独特的接口方式,也就是多个数字式传感器可以同时挂在一根信号线上,所以比较容易实现用单块微控制器去控制分布在很多区域的DS18B20。
这样的一种特性在过程监测和控制、机器温度探测、仪器温度探测、建筑物温度探测等方面都极其有用[15-16]。
图2.6是DS18B20的引脚排列,表2.4是DS18B20的引脚说明,图2.7是DS18B20的方框图。
有两个字节的温度寄存器包含于高速暂存器中,传感器采集得的温度数据被存储到这两个寄存器中,以便后续的输出。
每个器件的片序列号被存放到64位只读存储器中。
除了这些,一个字节的配置寄存器和一个用于温度报警值存储的寄存器也包含在这个高速暂存器里。
有这种配置寄存器,用户可以设定温度的精度为12、11、10还有9位这四种中的其中一种。
配置寄存器,TL和TH是一种不容易丢失数据的可擦除程序寄存器,因此在器件得不到供电的情况下寄存器中存储的数据依然保留着。
图2.6DS18B20引脚图图2.7DS18B20方框图
表2.4DS18B20的引脚说明表
DS18B20引脚详细说明
8引脚SOIC封装
T0-92封装
符号
说明
5
1
GND
接地
4
2
DQ
数据输入/输出引脚。
对于单线操作:
漏极开路。
当工作在寄生电源模式时用来提供电源。
3
3
VDD
可选的VDD引脚。
工作于寄生电源模式时VDD必须接地。
所有表中未提及的脚均都无连接
2.4.1DS18B20接口电路
DS18B20使用一个单线端口就能够实现通讯,其中使用的是一种非常独特的单总线协议。
当在所有器件都经由漏极开路端口或者一个3态端口与总线连接到一块的情况下,控制线需要连接一个弱上拉电阻。
在所设计的总线系统上,微控制器会根据每个器件独有的64位片序列号来辨认总线上的器件和记录总线上的器件地址。
因为每个器件内都有一个独特的片序列码,所有从理论上讲在单根总线上能够连接的器件个数是无限的,但是在实际应用中总线上挂有的器件越多,温度检测的时间也越长,精度也有所下降。
DS18B20有两种供电模式,一种是外部电源供电模式,即把外部电源接到VDD引脚即可完成供电,另一种是寄生电源供电模式,该模式允许DS18B20工作于无外部电源需求状态。
在本设计中DS18B20采用外部供电模式,把5V电源接到VDD引脚,这是一种典型的接法,见图2.8。
采用这种接法的好处就是单总线上省去了强上拉。
此外在温度转换期间总线不用总维持在高电平。
图2.8DS18B20典型接口电路
2.4.2DS18B20工作原理
DS18B20的显著特点是它能够直接读数字的温度传感器。
DS18B20成功启动之后处于低功耗等待状态,如果要进行温度测量以及AD转换时,主控制器向传感器发送[44H]命令。
完成这个操作后,进行温度测量,转换后得的温度数据以两个字节的形式被存放到高速暂存器的温度寄存器中,接着DS18B20继续处在等待状态[17]。
采用外部电源供电模式下的DS18B20,主控制器在向它发送温度转换指令之后接着发起“读时序”,如果温度传感器把检测来的温度转换完毕则返回1,处在温度转换过程则返回0。
由一个或多个从机和一块总线控制器组成的系统通常称为单总线系统。
当只有一只从机挂在总线上时,系统被称为“单点”系统;如果由多只从机挂在总线上,系统被称为“多点”系统。
在本设计中DS18B20只能充当从机的角色。
单总线系统中的指令和数据的传递一般从最低有效位开始,器件间的通信要严格遵循通信协议。
通过单线总线端口访问DS18B20的协议如下:
步骤1:
初始化。
在单总线中,初始化序列是任何执行操作处理的开始。
组成初始化序列的内容有两个部分,一个部分是由总线控制器向从机发出的复位脉冲,另一部分是从机向总线控制器发出的存在脉冲。
有