温度显示器的设计设计.docx
- 文档编号:25659459
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:25
- 大小:662.97KB
温度显示器的设计设计.docx
《温度显示器的设计设计.docx》由会员分享,可在线阅读,更多相关《温度显示器的设计设计.docx(25页珍藏版)》请在冰豆网上搜索。
温度显示器的设计设计
温度显示器的设计设计
1引言1
1.1课题背景1
1.2课题研究的目的和意义1
2温度显示器原理2
2.1温度显示器的设计方案2
2.2温度显示器的电路原理2
3温度显示器的硬件设计3
3.1DS18B20温度传感器的基本介绍3
3.1.1性能简述3
3.1.2DS18B20温度传感器的存储器4
3.1.3DS18B20存储器操作命令4
3.1.4DS18B20的测温原理5
3.1.5DS18B20使用时的注意事项6
3.1.6DS18B20的外形和内部结构6
3.2AT89C2051单片机的基本介绍7
3.2.1性能简述7
3.2.2AT89C2051的引脚介绍如图所示。
8
3.2.3AT89C2051的振荡器特性及芯片擦除9
3.2.4AT89C2051与AT89C51对比10
3.2.56AT89C2051内部结构11
4温度显示器的软件设计12
5测试15
5.1测试内容15
5.2测试结果15
结论与展望16
致谢17
参考文献18
附录一19
附录二20
附录三22
1引言
1.1课题背景
温度控制器是对温度进行控制的开关设备。
在当今的社会中,越来越多的坏境需要对温度进行控制。
随着温控器应用领域和范围的日益广泛,电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的的出现使现代的科学研究得到了质的的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。
在现代社会中,温度控制不仅应用在工厂生产方面,其作用作用也体现到了各个方面。
1.2课题研究的目的和意义
目的:
培养学生综合运用所学知识,结合实际独立完成课题的工作能力;对学生的知识面、运用理论结合实际去处理问题的能力、实验能力进行考核。
意义:
温度控制器是使用DS18B20集成温度传感器,七段数码管做显示,AT89C2051单片机做处理控制,电路简单。
该电路最大的特点是用可以直观方便的调节所要限定的温度值,温度值是用3个7段共阳极数码管显示的,上电后会显示当前的温度值,按设定键时会闪烁显示设定温度值,这时可以按上/下调节键调整设定温度值,再次按下设定键时返回当前温度显示同时会对设定温度值进行保存,这个设定值会保存在DS18B20中,掉电后也不会丢失,下次上电时,单片机会自动读入上次的温度设定值。
2温度显示器原理
2.1温度显示器的设计方案
设计的这一款温度控制器是使用DS18B20集成温度传感器,七段数码管做显示,AT89C2051单片机做处理控制,电路简单。
特点是用可以直观方便的调节所要限定的温度值,温度值是用3个7段共阳极数码管显示的,上电后会显示当前的温度值,按设定键时会闪烁显示设定温度值,这时可以按上/下调节键调整设定温度值,再次按下设定键时返回当前温度显示同时会对设定温度值进行保存,这个设定值会保存在DS18B20中,掉电后也不会丢失,下次上电时,单片机会自动读入上次的温度设定值。
长按设定键为关闭显示和温控,再次按下时功能再次打开。
2.2温度显示器的电路原理
制作中DS18B20使用外接电源的供电方式,数据端用4.7K电阻上拉,并联接到2051的11脚上。
晶振选用12M的,使用简单的上电复位电路。
选用共阳极的数码管,用S8550作位驱动,段引脚通过470欧的电限流电阻接入2051的P1口上,如选用的数码管亮度不足可以调小限流电阻值。
笔者也使用过共阴极的数码管,在P1口用1K电阻上拉提供电流,亮度不高,但可以节省三个位驱动IO脚,电路更是简单。
电路中有三个按键,分别是显示开关/温度设定,温度上调,温度下调,在电路上电运行时程序初始是处于关闭状态的,要按一下S1电路开始显示和监测,如再按一下S1进入温度设定状态,设定值每秒闪烁一次,这时可以按S2或S3进行调节,再按下S1时退回显示当前温度状态并保存温度值到DS18B20。
电路原理图
3温度显示器的硬件设计
3.1DS18B20温度传感器的基本介绍
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果
3.1.1性能简述
(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)测温范围-55℃~+125℃,固有测温分辨率0.5℃。
(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
(4)工作电源:
3~5V/DC
(5)在使用中不需要任何外围元件
(6)测量结果以9~12位数字量方式串行传送
(7)不锈钢保护管直径Φ6
(8)适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温
(9)标准安装螺纹M10X1,M12X1.5,G1/2”任选
(10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
3.1.2DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PPRAM,后者存放高温度和低温度触发器TH.T和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
第三个和第四个字节是TH.TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六七八个字节用于内部计算。
第九个字节是冗余检验字节,详见表中内容。
3.1.3DS18B20存储器操作命令
3.1.4DS18B20的测温原理
低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
1.低温度系数振荡器是一个对频率随温度变化很小的振荡器,为计数器1提供频率稳定的技术脉冲。
2.高温度系数计数器是一个对频率对温度很敏感的振荡器,为计数器2提供了一个频率随温度变化的技术脉冲。
3.DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样,高温系数振荡器则将被测温度转换成频率信号。
当计数门打开时,DS18B20进行计数,计数门打开时间高温度系数振荡器决定。
原理图如图2。
3.1.5DS18B20使用时的注意事项
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送ROM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
DS18B20使用中注意事项,DS18B20虽然具有测温系统简单,测温精度高,连接方便,占用口线少等特点,但在实际应用中也应注意以下几方面的问题:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M,C等高级语言进行系统程序计时,对DS18B20最好采用汇编语言实现。
(2)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。
当单总线上所挂DS18B20超过八个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(3)连接DS18B20的总线电缆是有长度限制的。
试验中,当采用普通信号电缆传输长度超过50M时,读取的测温数据将发生错误。
当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150M,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。
这种情况主要是由总线分布电容使信号波产生畸变造成的。
因此,再用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,程序进入死循环。
这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组姐VCC和地线,屏蔽层在源端单点接地。
3.1.6DS18B20的外形和内部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的外形及管脚排列如下图1:
DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
图1:
DS18B20外形及引脚排列图
图2:
DS18B20内部结构图
3.2AT89C2051单片机的基本介绍
AT89C2051是由ATMEL公司推出的一种小型单片机。
95年出现在中国市场。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受,其程序的电可擦写特性,使得开发与试验比较容易。
对于一些不大复杂的控制电路我们就可以增加少量元件来实现,例如,对温度的控制,过压的控制等。
3.2.1性能简述
1、和MCS-51产品兼容;
2、2KB可重编程FLASH存储器(10000次);
3、2.7-6V电压范围;
4、全静态工作:
0Hz-24MHz;
5、2级程序存储器保密锁定;
6、128*8位内部RAM;
7、15条可编程I/O线;
8、两个16位定时器/计数器;
9、6个中断源;
10、可编程串行通道;
11、高精度电压比较器(P1.0,P1.1,P3.6);
12、直接驱动LED的输出端口。
3.2.2AT89C2051的引脚介绍如图所示。
(1)VCC:
电源电压。
(2)GND:
接地。
(3)P1口:
P1口是一个8位双向I/O口。
口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。
P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。
P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P1口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。
当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。
(4)P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O口引脚。
P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3口缓冲器可吸收20mA电流。
当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。
P3口还用于实现AT89C2051的各种第二功能,如下表所示。
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
引脚口
功能
P3.0
RXD串行输入端口
P3.1
TXD串行输出端口
P3.2
INT0 外中断0
P3.3
INT1 外中断1
P3.4
T0定时器0外部输入
P3.5
T1定时器1外部输入
(5)RST:
复位输入。
RST一旦变成高电平所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
(6)XTAL1:
作为振荡器反相器的输入和内部时钟发生器的输入。
(7)XTAL2:
作为振荡器反相放大器的输出。
3.2.3AT89C2051的振荡器特性及芯片擦除
1.振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.芯片擦除
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2.4AT89C2051与AT89C51对比
AT89C2051
AT89C51
2KB可编程Flash存储器(可擦写1000次)
4KB可编程Flash存储器(可擦写1000次)
两级程序存储器保密
三级程序存储器保密
静态工作频率:
0Hz-24MHz
静态工作频率:
0Hz-24MHz
128字节内部RAM
128字节内部RAM
2个16位定时/计数器
2个16位定时/计数器
一个串行通讯口
一个串行通讯口
6个中断源
6个中断源
15条I/O引线
32条I/O引线
1个片内模拟比较器
片内时种振荡器
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
啊T89C2051是精简版的51单片机,精简掉了P0口和P2口,只有20引脚,但其内部集成了一个很实用的模拟比较器,特别适合开发精简的51应用系统,毕竟很多时候我们开发简单的产品时用不了全部32个I/O口,用AT89C2051更合适。
1.两者的不同点
AT89C2051可以看作AT89C51的简化版。
如果不需要扩展片外RAM,ROM主要区别有:
(1)AT89C51有4KB的ROM,而AT89C2051只有2KB的ROM。
(2)AT89C51有4个8位I/O口,而AT89C2051只有2个8位I/O口(P3.6没有引脚)。
由于AT89C2051的IO线很少,导致它无法外加RAM和程序ROM,片内Flash存储器也少,但它的体积比AT89C51小很多.
2.两者的共同点
两者不是同一种芯片,但有相同的指令集,因为两者都是基于MCS-51硬核的。
3.2.56AT89C2051内部结构
AT89C2051内部结构图
AT89C2051是一带有2K字节闪速可编程可擦除只读存储器(EEPROM)的低电压,高性能8位CMOS微处理器。
它采用ATMEL的高密非易失存储技术制造并和工业标准MCS-51指令集和引脚结构兼容。
通过在单块芯片上组合通用的CPLI和闪速存储器,ATMEL的AT89C2051是一强劲的微型处理器,它对许多嵌入式控制应用提供一定高度灵活和成本低的解决办法。
AT89C2051提供以下标准功能:
2K字节闪速存储器,128字节RAM,15根I/O口,两个16位定时器,一个五向量两级中断结构,一个全双工串行口,一个精密模拟比较器以及两种可选的软件节电工作方式。
空闲方停止CPU工作但允许RAM、定时器/计数器、串行工作口和中断系统继续工作。
掉电方式保存RAM内容但振荡器停止工作并禁止有其它部件的工作到下一个硬件复位。
4温度显示器的软件设计
这个温度控制器制作的最大难点应该算是2051程序的编写和调试。
因在电路中有数字显示,按键设定,数据采集和继电器控制。
首先要考虑的是在电路中3个数码管的阴极是接在P1上的,也就是说要使用动态显示的编程方法,在程序中使用了一个定时中断去处理显示,定时器的定时值为20毫秒,每间隔20毫秒程序但会执行定时中断显示所要显示的数字,同时在这个定时中断中还会去扫描按键,看是否有键被按下并对其结果进行处理。
在这20ms的时间里程序还会完成温度数据的采集和转换和对当前温度和设置温度的对比等等。
在编写采集DS18B20数据的函数时运用了DS18B20的单总线协议,在读写DS18B20时IO口的电平时序上应尽可能做到与资料上提供的数据相一致。
下面为温度传感器的读取温度程序:
//mega87.3728MHzgcc编译通过,_delay_us(us)_delay_ms(ms)调用库函数
//初始化把dq设置为输出
#defineds18b20_dqPC5
#defineset_ds18b20_dq_ddr()DDRC|=1< #defineset_ds18b20_dq()PORTC|=1< #defineclr_ds18b20_dq()PORTC&=~(1< #defineclr_ds18b20_dq_ddr()DDRC&=~(1< #definein_ds18b20_dq()PINC&(1< #defineds18b20_read_rom0x33 #defineds18b20_match_rom0x55 #defineds18b20_skip_rom0xcc #defineds18b20_search_rom0xf0 #defineds18b20_alarm_search_rom0xec #defineds18b20_write_ram0x4e #defineds18b20_read_ram0xbe #defineds18b20_copy_ram0x48 #defineds18b20_convert_tem0x44 #defineds18b20_eecall_eeprom0xb8 #defineds18b20_read_power_supply0xb4 voidreset_ds18b20(void) { clr_ds18b20_dq(); _delay_us(198);//100us _delay_us(198);//100us _delay_us(198);//100us _delay_us(198);//100us set_ds18b20_dq(); _delay_us(38);//20us } voidack_ds18b20(void) { while(in_ds18b20_dq()); while(! (in_ds18b20_dq())); _delay_us(38);//20us } ucharread_ds18b20(void) { uchardata=0; uchari=0; for(i=0;i<8;i++) { data>>=1; clr_ds18b20_dq(); _delay_us (1);//1us set_ds18b20_dq(); _delay_us (2);//2us if(in_ds18b20_dq())data|=0x80; _delay_us(118);//60us } return(data); } voidwrite_ds18b20(uchardata) { uchari=0; for(i=0;i<8;i++) { if(data&0x01){ clr_ds18b20_dq(); _delay_us(14);//8us set_ds18b20_dq(); _delay_us(108);//55us } else { clr_ds18b20_dq(); _delay_us(108);//55us set_ds18b20_dq(); _delay_us(14);//8us } data>>=1; } } voidconvert_ds18b20(void) { reset_ds18b20(); ack_ds18b20(); _delay_ms (1); write_ds18b20(ds18b20_skip_rom); write_ds18b20(ds18b20_convert_tem); } voidread_temperature(void) { reset_ds18b20(); ack_ds18b20(); _delay_ms (1); write_ds18b20(ds18b20_skip_rom); write_ds18b20(ds18b20_read_ram); temperature_low=read_ds18b20(); temperature_high=read_ds18b20(); } 详细源程序见附录二 5测试 5.1测试内容 测试点 内容 说明 1 是否显示当前温度值 上电后会显示当前的温度值 2 是否可以进行温度设定并保存 按设定键时会闪烁显示设定温度值,这时可以按上/下调节键调整设定温度值,再次按下设定键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 显示器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)