关于单片机的数字温度计毕业论文
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
选
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
, 基于单片机的数字温度计设计
姓 名:姜涛
学 号:01
专 业:电器自动化
指导教师:赵泽英
完成时间:2012.3.19
摘要
本文提出了基于MCS-51系列单片机的数字温度计的制作电路和编程思想。该数字温度计以宏晶公司的STC89C52 单片机为主控,配以达拉斯公司的DS18B20数字温度传感器,采用1602双行英文字符液晶作显示。实现了对温度的测量,显示,和报警等功能。
关键词: STC89C52单片机;数字传感器DS18B20;显示器LCD;
目 录
摘要..................................................................................................................................I
ABSTRACT....................................................................................... 错误~未定义书签。
1 绪论 ............................................................................................................................. 2
1.1 选题的背景 ......................................................................................................... 2
1.2 数字温度计简介 .................................................................................................. 2
1.2.1 数字温度计的特征..................................................................................... 2
1.2.2 设计实现的目标 ........................................................................................ 3 2 数字温度计的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
设计 ................................................................................................. 4
2.1
设计方案
关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案
论证与比较 ........................................................................................... 4
2.1.1 显示电路方案 ............................................................................................ 4
2.1.2 测温电路方案 ............................................................................................ 4
2.2 系统总体方案 ..................................................................................................... 4
3 数字温度计的硬件电路设计 .......................................................................................... 5
3.1 控制电路 ............................................................................................................ 5
3.1.1 MCU简介 ................................................................................................. 5
3.2.2 最小系统模块 .......................................................................................... 6
3.3 温度传感器设计 .................................................................................................. 7
3.3.1 DS18B20简介 ............................................................................................ 7
3.3.2 温度传感器与单片机的连接....................................................................... 9
3.3.3 复位信号及外部复位电路 ........................................................................ 10
3.4 单片机与报警电路 ............................................................................................ 10
3.5 显示电路.......................................................................................................... 10
4 软件设计 .................................................................................................................... 12
4.1 DS18b20的读操作 ............................................................................................ 12
4.2 DS18b20的温度数据处理.................................................................................. 13
4.3 1602显示部分.................................................................................................. 14
5 数据测试 .................................................................................................................... 16
参考文献........................................................................................................................ 18
附录1 程序源代码............................................................................. 错误~未定义书签。
1 绪论
1.1 选题的背景
随着现代信息技术的飞速发展和传统工业改造的逐步实现(能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用STC89C52单片机作为主控制器件,DSl8B20作为测温传感器通过LCD1602并行传送数据,实现温度显示。通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在-55?~125?最大线性偏差小于0.1?。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
1.2 数字温度计简介
1.2.1 数字温度计的特征
温度是我们日常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度。
数字温度计采用进口芯片组装精度高、高稳定性,误差?0.5%, 内电源、微功耗、不锈钢外壳,防护坚固,美观精致。数字温度计采用进口高精度、低温漂、超低功耗集成电路和宽温型液晶显示器,内置高能量电池连续工作?5年无需敷设供电电缆,是一种精度高、稳定性好、适用性极强的新型现场温度显示仪。是传统现场指针双金属温度计的理想替代产品,广泛应用于各类工矿企业,大专院校,科研院所。
数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD
或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。
1.2.2 设计实现的目标
1) 测温基本范围-55?~125?。
2) 测温精度误差小于或等于0.5?。
3) 超温报警。
4) LCD屏幕显示实时温度。
2 数字温度计的方案设计
2.1 设计方案论证与比较
2.1.1 显示电路方案
方案一:采用数码管动态显示
使用七段LED数码管,采用动态显示的方法来显示各项指标,此方法虽然价格成本低,但是显示单一,且功耗较大。
方案二:采用LCD液晶显示
采用1602 LCD液晶显示,此方案显示内容相对丰富,且价格不高。
综合上述原因,采用方案二,使用LCD液晶作显示电路。 2.1.2 测温电路方案
方案一:采用模拟温度传感器测温
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案二:采用数字温度传感器
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2.2 系统总体方案
根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下:
DS18B20 看门狗 温度数据采集
报警 MCU
电路 驱动显示
图2-1 系统总体设计框图
3 数字温度计的硬件电路设计
3.1 控制电路
3.1.1 MCU简介
CPU是整个控制部分的核心。在考虑经济性和满足需求的前提下,本系统选用宏晶公司生产的8位STC89C52单片机作为整个系统的控制中心。
STC89C52是宏晶公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用宏晶公司的高密度、非易失性存储技术生产,兼容
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
8051指令系统及引脚,它集Flash存储器既可在线编辑(ISP)也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大STC89C52单片机可为您提供许多高性价比的应用场合。器管脚图如图3-2:
图3-1 STC89C52管脚图
在本系统中,STC89C52单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。
STC89C52具有以下的特点:
? 8031 CPU与MCS-51 兼容
? 寿命:1000写/擦循环
? 4K字节可编程FLASH存储器
? 全静态工作:0--24MHz
? 三级程序存储器保密锁定
? 128*8位内部RAM
? 32条可编程I/O线
? 两个16位定时器/计数器
? 6个中断源
? 可编程串行通道
? 低功耗的闲置和掉电模式
? 片内振荡器和时钟
除此之外,STC89C52RC单片机还具有看门狗内部外设。在工业控制/汽车电子/航空航天等需要高可靠性的系统中,为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作” ,通常是引进看门狗,如果MCU/CPU 不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。系统中单片机STC89C52RC中自带看门狗电路。其寄存器设置相关信息如下:
表3-1 STC89C52看门狗寄存器
STC89C52单片机看门狗复位时间是可以自行选择和设置的,其设置方法是:
表3-2 看门狗定时器预分频值
3.2.2 最小系统模块
本次设计中,选用宏晶公司的51系列单片机STC89C52芯片作为电子密码电源开关的数据处理及操作控制芯片。只有单片机芯片无法完成数据处理及控制功能,必须有附加的电路,使单片机芯片组成一个可运行的系统才能实现其功能。本次设计中,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块,其中,使用P0口作为1602液晶的数据传输口,P2口作1602的命令数据控制、时钟、读写控制、和使能控制接口,P3
口作按键扫描接口,P1.4作DS18B20的总线接口。P1.3作报警控制接口。其电路连接图3-3如下:
图3-2 数据处理及控制模块
3.3 温度传感器设计
3.3.1 DS18B20简介
DS18B20可以程序设定9~12位的分辨率,精度为?0.5?C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。
温度传感器DS18B20引脚如图3-4所示。
图3-3 DS18B20TO,92封装温度传感器
引脚功能说明:
VDD :可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。
DQ :数据输入/输出脚。漏极开路,常态下高电平。
GND :为电源地
图3-4 DS18B20内部结构图
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625?/LSB形式表达,其中S为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125?的数字输出为07D0H,+25.0625?的数字输出为0191H,-25.0625?的数字输出为FF6FH,-55?的数字输出为FC90H。
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第
九个字节是冗余检验字节。
该字节各位的意义如下:
TM R1 R0 1 1 1 1 1
低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是
,用户不要去改动。R1和R0用在测试模式。在DS18B20出厂时该位被设置为0
来设置分辨率,如表1所示:(DS18B20出厂时被设置为12位)
表3-3 DS18B20温度转换时间表
R1 R0 分辨率/温度最大转向时间
位
0 0 9 93.75
0 1 10 187.5
1 0 11 375
1 1 12 750
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16,60微秒左右,后发出60,240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 3.3.2 温度传感器与单片机的连接
温度传感器的单总线(1-Wire)与单片机的P2(0连接,P2(0是单片机的高位地址线A8。P2端口是一个带内部上拉电阻的8位双向I,O,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时。如执行MOVX DPTR指令,则表示P2端口送出高8位的地址数据。在访问8位地址的外部数据存储器时,可执行MOVX RI指令,P2端口内容即为特殊功能寄存器(SFR)区中R2寄存器内容,整个访问期间不改变。在Flash编程和程序校验时,P2端口也接收高位地址和其他控制信号。图3-5为DSl8820内部结构。图3-6为DSl8820与单片机的接口电路。
图3-5 DS18B20和单片机的接口连接
3.3.3 复位信号及外部复位电路
单片机的P1.6端口是MAX813看门狗电路中喂狗信号的输入端,即单片机每执行一次程序就设置一次喂狗信号,清零看门狗器件。若程序出现异常,单片机引脚RST将出现两个机器周期以上的高电平,使其复位。该复位信号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上。若使用频率为12 MHz的晶体振荡器,则复位信号持续时间应超过2μs才完成复位操作。
图3-6 复位电路
3.4 单片机与报警电路
系统中的报警电路是由发光二极管和限流电阻组成,并与单片机的P1.2端口连接。P1端口的作用和接法与P2端口相同,不同的是在Flash编程和程序校验期间,P1接收低8位地址数据。
3.5 显示电路
采用技术成熟的74HCl64实现串并转换。LCD显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时允许从TXD端输出移位脉冲。图3-7为显示电路的连接图。
图3-7 显示电路的连接图
4 软件设计
4.1 DS18b20的读操作
DSl8B20的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSl8B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8B20供电。DSl8B20的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。DS18B20读写时序如图4-1~4-3:
图4-1 DS18B20的复位时序图
图4-2 DS18B20的写数据时序图
图4-3 DS18B20的读数据时序图
由时序图可知,DS18B20在复位时需要480us的低电平,等待15us后MCU将总线拉高,等待DS18B20的响应信号;DS18B20在写数据时分为写“0”和写“1”操作,写“0”操作时,DS18B20需要至少60us的总线被拉低,然后在
60us内将“0”写入DS18B20中,持续时间至少1us,写“1”操作是只需将写入的“0”改为“1”即可;DS18B20读操作也分为读“0”和读“1”操作,读“0”操作时,总线需要15us被拉低,再拉高45us,然后再15us内将数据读走,读“1”操作同读“0”操作。程序流程图如图4-4:
开始
DS18B20的初始化
跳过读序列号的操作
启动温度转换
DS18B20的初始化
跳过读序列号的操作
读取温度寄存器
LOW-低八位 HIGH-高八位
RET
图4-4 DS18B20读取温度的流程图
4.2 DS18b20的温度数据处理
读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625?,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5?的话,向个位进1;小于0.5?的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55?,所以可以将整数部分的最高位换成一个“-”,表示为负数。图4-2为温度数据处理程序的流程图。
开始
提取整数部分存入
HT
提取小数部分存入LT
LT右移三位,将精度降低到0.5摄氏度
将小数部分整数化
N LT是否大于5 是否为负数 N Y Y
HT++
负数标志flag=1
提取符号部分存
入sign RET
图4-5 温度数据处理流程图
4.3 1602显示部分
1602的读写时序图如下:
图4-6 1602液晶的读时序图
图4-7 1602的写时序图
根据以上时序图可以得出读写程序流程图如下:
开始 开始 选择写数据写命选择写数据写命令RS=1||RS=0 令RS=1||RS=0 选择写操作选择读操作
RW=1 RW=0
使能EN 使能EN
禁止EN 准备好写入的数
据DB0~DB7
结束
禁止EN
结束
图4-8 1602的写流程图 图4-8 1602的读流程图
5 数据测试
用手触屏温度传感器,可以发现温度大概显示为32度左右。将温度传感器
与塑料袋装的冰水混合物接触,观察液晶显示的温度是否为零度。
6 结语
本文重点介绍了单片机和数字传感器DS18B20的原理和功能,并用DS18B20与STC89C52单片机、LCD1602组成数字温度计,有超温报警功能。
在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。
参考文献
【1】作著:姜涛
【2】书名:基于单片机的数字式温度计设计
【3】出版社:西北电力学校
【4】出版年月:2012.3.19
【5】页码:27页