分享
 
 
 

基于AT89C52智能温度控制器的设计

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

李鑫,曾光,廖荣辉

1 引言

DS18B20温度控制器是以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89C52为控制器制作的结构简单、测温准确、具有一定控制功能的智能温度控制器,图1为该温度控制器在电脑机箱测温控制中的应用。

通过操作面板上的3个按钮,可以设定报警温度,进而控制机箱风扇的运转与停止。

2 DS18B20特性介绍

DS18B20 是DALLAS公司的最新单线数字温度传感器,它的体积更小、适用电压更宽、更经济,DS18B20是世界上第一片支持“一线总线”接口的温度传感器,一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念,它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等,与前一代产品不同,新的产品支持3~5.5V的电压范围,使系统设计更灵活、方便,而且新一代产品更便宜,体积更小, DS18B20可以程序设定9~12位的分辨率,精度为±0.5℃。可以选择更小的封装方式,更宽的电压适用范围,分辨率设定及用户设定的报警温度存储在 E2PROM中,掉电后依然保存,DS18B20的性能是新一代产品中最好的,性能价格比也非常出色,继“一线总线”的早期产品后,DS18B20开辟了温度传感器技术的新概念,DS18B20和DS18B22使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

2.1 DS18B20的内部结构

DS18B20内部结构主要由4部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配制寄存器。DS18B20的管脚排列如图2所示。

光刻ROM中的64位序列号是出厂前被光刻好的,他可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个 DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.062 5℃/LSB形式表达,其中S为符号位。

表1是12位转化后得到的12位数据,存储在18B20的2个8b的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0℃,则这5位为0,只要将测到的数值乘于0.062 5即可得到实现温度,如果温度小于0℃,则这5位为1,测到的数值需要取反加1再乘于0.062 5即可得到实际温度。

例如:+125℃的数字输出为07D0H,+25.062 5℃的数字输出为0191H,-25.062 5℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

2.2 DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH,TL和结构寄存器。

暂存存储器包含了8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低8位,第2个字节是温度的高8位,第3个和第4个字节是TH,TL 的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新。第6、7、8个字节用于内部计算。第9个字节是冗余检验字节。

根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

复位要求主CPU将数据线下拉500μs,然后释放,DS18B20收到信号后等待16-60μs左右,后发出60-240μs低脉冲,主CPU收到此信号表示复位成功。

2.3 DS18B20使用中的注意事项

DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:

(1)DS18B20从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。

(2)在实际使用中发现,应使电源电压保持在5V左右,若电源电压过低,会使所测得的温度与实际温度出现偏高现象,经过试验发现,一般在5V左右。

(3)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格保证读写时序,否则将无法读取测温结果,在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。

(4)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。

(5)连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误,当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米胶合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。

(6)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。

测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。

3 温度控制器的设计原理

3.1 温度控制器的设计

图3为该温度的控制器的设计原理总图。

该系统直接用C52的P0口驱动数码管,但是P0口不具备数据保持能力,需要接一定大小的上拉电阻,显示方式采用扫描法。3个按键同样接有上拉电阻,这样可以有效地消除因键盘抖动所造成的误操作。

3.2 温度控制器的关键程序代码

void Init 1820(void)

{

int i,j,k;

unsigned char presence;

TMPort=1;

_nop_();

TMPort=0;

for(j=1;j<=62;j++);

i=1;

TMPort=1;

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

while(i<=6)

{

presence=TMPort;

i++;

}

if(presence==0)

{

DS18B20_EST=0;

TMPort=1;

}

else

{

DS18B20_NotEST=0;

TMPort=1;

}

}

(2)读一个字节

unsigned char read_bit(void)

{

unsigned char i;

TMPort=0;

_nop_();

_nop_();

TMPort=1;

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

return(TMPort);

}

unsigned char read_byte(void)

{

unsigned char i;

unsigned char value=0;

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

{

if(read_bit())

value|=0x01<<i;

delay(4);

}

return(value);

}

(3)写一个字节

void write_bit(char bitval)

{

TMPort=0;

_nop_();

if(bitval==1)

TMPort=1;

delay(5);

TMPort=1。

_nop_();

_nop_();

_nop_();

}

void write_byte(char val)

{

unsigned char i;

unsigned char temp;

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

{

temp=val>>i;

temp=temp&0x01;

write_bit(temp);

}

delay(5);

}

整个对DS18B20的操作都是以上述这几个操作为基础的,所以他们是使DS18B20能否正常测温的关键。对不同的操作只要发出相应的命令控制字即可,详细请参看有关技术文档。典型的测温流程如图4所示。

此外,为了提高该温度控制器的测温精度,这里还提出了一个行之有效的办法。

4 结论及展望

实验表明:该温度控制器结构简单、测温准确,具有一定的实际应用价值。

该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。

本文摘自《现代电子技术》

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有