欢迎来到天天文库
浏览记录
ID:9533688
大小:1.58 MB
页数:15页
时间:2018-05-03
《基于数字温度传感器的测温系统设计.》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、深圳大学实验报告课程名称:接口技术与单片机实验项目名称:基于数字温度传感器的测温系统设计学院:物理科学与技术学院专业:应用物理指导教师:李雄军报告人:李汉平学号:班级:应用物理系实验时间:2010-6-21实验报告提交时间:2010-7-5教务处制一题目基于数字温度传感器18B20测温系统的设计二功能与性能指标要求1功能:(1)利用智能温度传感器DS18B20进行温度数据采集和单片机89C52进行数据接收和处理,得到的温度值通过转换后通过2个数码管进行显示,显示位数包括个位和十位。(2)初始报警温度通过
2、初始化实现,当测得的温度超过报警温度后报警灯Led将被点亮,可以通过按键对报警温度进行设置,设置按键一共两个,其中一个每按一次就加一摄氏度,另一个按一次减一摄氏度。(3)其他功能:复位电路,包括上电复位和按键复位,接通电源后自动复位进行温度测量,当测量不正确的时候或者报警温度设置改变后需要恢复的话可以通过按键进行复位,保证系统持续正常工作。2性能指标:测温范围为0~99度,测量精度1摄氏度,每隔一秒测量温度一次,测量准确,实时迅速,显示数字稳定,系统运行正常无误。三总体设计方案1系统组成89C52温度传
3、感器18B20报警设置温度显示报警复位电路晶振电路(1)温度数据采集:利用智能温度传感器DS18B20进行温度的采集。(2)数据接收和处理:用单片机89C52和并行口进行数据接收和处理。(3)显示部分:用单片机并行口控制2个数码管进行温度值显示。(4)报警部分:用led灯做报警器。(5)设置部分:按键进行报警温度的设置(6)其他部分:包括自动复位电路和按键复位电路,晶振。2原理图3程序设计流程图开始初始化报警温度,设定时计数初值,设定时中断次数B=10调用读温度子程序调用温度转换子程序开定时中断0,开外
4、中断0和1调用显示温度子程序开始寄存器内容压栈报警温度加1调用设温显示子程序寄存器内容出栈结束开始寄存器内容压栈报警温度减1调用设温显示子程序寄存器内容出栈结束图一主程序程序框图图二报警温度设置加1子程序图三报警温度设置减1子程序开始取报警温度显示报警温度设显示次数显示完毕?结束YesNo开始拉高DQ电平结束调用测温芯片测试子程序跳过ROM匹配发转换温度命令到18B20从温度传感器读温度保存读到温度的低位从温度传感器读温度保存读到温度的高位图四设置报警温度显示子程序图五读取18B20温度子程序开始R2=
5、8C清零拉高DQ,延时DQ拉低,延时拉高DQ准备接收18B20的信号延时等待读取DQ到C延时,把C右移到A中保存R2=0?结束R2=R2-1NoYes开始R2=8C清零拉低DQ,延时把A中的内容右移到CC的内容写入DQ延时等待拉高DQ,延时R2=0?结束R2=R2-1NoYes图六18B20的DQ端写入子程序图七18B20的DQ端读取子程序开始舍去读得温度低位后四位的小数温度值四舍五入温度低位的高四位和低位中的低四位合起来保存温度值报警超温?结束NoYes开始Flag=1设显示次数芯片存在?结束YesN
6、o图八转换温度子程序图九芯片测试子程序开始重赋定时初值B=B-1寄存器内容压栈关闭中断,停止计数调用测温子程序,调用转换温度子程序重新赋定时初值B=0?结束否是开始计时,开中断寄存器内容出栈开始取测量温度显示测量温度设显示次数显示完毕?结束YesNo图十测量温度子程序图十一测量温度显示子程序四制作与调试1硬件调试(1)硬件调试过程中,先调试数码管,使之能正常显示数字,先全部显示数字,轮流显示0~9;测试完后,使之显示一位的数字;然后测试使两位数码管同时显示不同的数字。(2)测试完数码管后,测试18B20
7、是否正常工作,方法是调用测试和初始化子程序,然后把Flag值显示在数码管上,正常通过。(3)能测到温度传感器后,下面尝试给芯片命令,包括温度转换命令、命令写入,读出温度,测试读到的温度先直接显示在数码管,可以看到比较稳定的数字。(4)测试完上一步之后,尝试把直接测到的高低位温度进行整合,调用温度转换子程序,输出到数码管,正常。(5)测试完转换温度的子程序后,调用温度显示子程序,可以看到温度值为30度,这就是我们需要的结果。(6)测试完整个系统后,发现低位的数码管比较亮,而高位很暗,这需要进行软件的调试和
8、修改。(7)测试外部中断,发现一开始不正常,后来认真检查电路,发现硬件连接有问题,修改后测试正常。2软件调试(1)先测试数码管显示子程序,用R0初值为0,查表显示的方法不断对R0加1,测试0~9是否能正常显示,测试通过。(2)测试温度获取子程序,发现数码管上数字显示稳定,说明程序没有什么问题。(3)测试温度转换子程序,数码管可以显示数字,但是低位亮高位暗,为解决这个问题,采用延长高位的延时时间来解决,后来发现效果还是不好。然后通过不断先后显
此文档下载收益归作者所有