温度传感器的设计报告.docx
- 文档编号:2927057
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:14
- 大小:185.97KB
温度传感器的设计报告.docx
《温度传感器的设计报告.docx》由会员分享,可在线阅读,更多相关《温度传感器的设计报告.docx(14页珍藏版)》请在冰点文库上搜索。
温度传感器的设计报告
温度传感器的设计
一、设计方案
1.1设计要求
1)通过DS18B20能够显示坏镜温度
2)通过设定的温度能够报警
1.2方案比较
方案一:
用热敏电阻103结合单片机作温度控制系统。
热敏电阻103测温的精度为0.5℃,温度测量范围-200℃~260℃,可与单片机结合,构成测温电路,且性能温定,易测.
方案二:
用DS18B20结合单片机控制温度。
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
与方案一相比,方案二的测量范围大,而且价格便宜,而且更适应生活的温度测量要求.固选方案二比较适合.
1.3主要技术参数
1)DS18B20的封装是SIP3
2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
3)测温范围-55℃~+125℃,固有测温分辨率0.5℃。
4)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温
5)工作电源:
3~5V/DC
6)在使用中不需要任何外围元件
7)测量结果以9~12位数字量方式串行传送
8)不锈钢保护管直径Φ6
二、单元电路分析
2.1下载模块
2.2电源指示灯模块和报警模块
2.3单片机及外围电路
STC125410AD系列单片机是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8~12倍。
内部集成MAX810专用复位电路,4路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合.STC12C5410AD具有在系统可编程功能,可以省去价格较高的专门编程器,开发环境的搭建非常容易。
时钟电路:
单片机片内有一个高增益反相放大器,其输入端XTAL1和XTAL2用于外接石英晶体和微调电容,构成振荡器.振荡频率选择11.0592MHZ.
复位:
为了保证CPU在需要时从已知的起点和状态开始工作,单片机安排了复位功能。
2.4传感器测温模块
2.5温度显示模块
数码管A,B,C,D,E,F,G,7个断码,分别与单片机的P1.0,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7相接。
四个数码管的位选分别是单片机的P2.0,P2.1,P2.2,P2.3,通过这三个数码管可显示,温度值.
2.6系统框图
三、器件选择
3.1DS18B20的工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图1所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图1DS18B20测温原理框图
四、原理图
五、软件设计
5.1主程序设计框图
六、总结
这份温度传感的设计报告里许多的内容都来自于网络上的资料。
通过资料的查询,我初步了解了传感器设计的一些基本要求及传感器设计的流程。
对温度传感器的工作原理有了大致的了解。
传感器这门课程涉及的知识面非常的广泛。
不仅要求我们对传感器本身的原理了解,而且我还从中回顾的单片机的知识以及对元器件的封装处理知识。
这就是我在这次温度传感器设计中的最大收获。
参考文献
[1]清华大学电子学教研组编.杨素行主编.模拟电子技术基础简明教程.3版.
北京:
高等教育出版社,2006.
[2]清华大学电子学教研组编.余孟尝主编.数字电子技术基础简明教程.3版.
北京:
高等教育出版社,2006.
[3]黄智伟主编.全国大学生电子设计竞赛电路设计.北京航空航天大学出版社,2006
[4]高吉祥主编.全国大学生电子设计竞赛培训系列教程模拟电子线路设计.电子工业出版社,2007
[5]陈永真主编.全国大学生电子设计竞赛试题精解选.电子工业出版社,2007
[6]高吉祥主编.全国大学生电子设计竞赛培训系列教程电子仪器仪表设计.电子工业出版社,2007
[7]黄智伟主编.全国大学生电子设计竞赛系统设计.北京航空航天大学出版社,2006
[8]周兴华主编.手把手教你学单片机C程序设计.北京航空航天大学出版社,2007
附录一:
PCB图
附录二:
程序
#include
#include"intrins.h"//_nop_();延时函数用
#defineDisdataP1//段码输出口
#definediscanP2//动态扫描口
sbitDQ=P3^7;//温度输入口
unsignedchardatatemp_data[2]={0x00,0x00};//读出温度暂放
codeunsignedcharseg_tab[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
charcodescan_con[4]={0xfe,0xfd,0xfb,0xf7};
//*****************1us延时函数*************************//
voiddelay_ds(unsignedintt)
{
for(;t>0;t--);
}
/****************DS18B20复位函数************************/
voidow_reset(void)
{
unsignedcharpresence=1;
while(presence)
{
while(presence)
{
DQ=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//从高拉倒低
DQ=0;
delay_ds(600);//550us
DQ=1;
delay_ds(66);//66us
presence=DQ;//presence=0复位成功,继续下一步
}
delay_ds(600);//延时500us
presence=~DQ;
}
DQ=1;//拉高电平
}
//
//
/****************DS18B20写命令函数************************/
//向1-WIRE总线上写1个字节
voidwrite_byte(unsignedcharval)
{
unsignedchari;
for(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();_nop_();_nop_();//从高拉倒低
DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//5us
DQ=val&0x01;//最低位移出
delay_ds(65);//66us
val=val/2;//右移1位
}
DQ=1;
delay_ds(10);
}
//
/****************DS18B20读1字节函数************************/
//从总线上取1个字节
unsignedcharread_byte(void)
{
unsignedchari;
unsignedcharvalue=0;
for(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();
value>>=1;
DQ=0;_nop_();_nop_();_nop_();_nop_();//4us
DQ=1;_nop_();_nop_();_nop_();_nop_();//4us
if(DQ)value|=0x80;
delay_ds(65);//66us
}
DQ=1;
return(value);
}
//
/****************读出温度函数************************/
//
unsignedintread_temp()
{
unsignedinttemp;
ow_reset();//总线复位
delay_ds(2000);
write_byte(0xcc);//发命令
write_byte(0x44);//发转换命令
ow_reset();
delay_ds
(1);
write_byte(0xcc);//发命令
write_byte(0xbe);
temp_data[0]=read_byte();//读温度值的第字节
temp_data[1]=read_byte();//读温度值的高字节
temp=temp_data[1];
temp<<=8;
temp=temp|temp_data[0];//两字节合成一个整型变量。
temp=(temp*25)/400;
returntemp;//返回温度值
}
//
/****************主程序************************/
//
main()
{
unsignedcharwendu;
wendu=read_temp();
P2=0xfe;
P1=seg_tab[(wendu/1000)];
delay_ds(2000);
P2=0xfd;
P1=seg_tab[(wendu%1000)/100];
delay_ds(2000);
P2=0xfb;
P1=seg_tab[(wendu%100)/10];
delay_ds(2000);
P2=0xf7;
P1=seg_tab[(wendu%10)];
delay_ds(2000);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度传感器 设计 报告