DS18B20水温控制系统+电路图程序(最新)
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
入口参数出口参数无,次显示结束,口复位口复位,数码管参考文献单片机应用开发实用子程序边春元等编著人民邮电出版社官方英文文档官方英文站点下载全国大学生电子设计大赛培训系列教程高吉祥主编电子工业出版社单片微型计算机原理及应用张毅坤等编著西安电子科技大学出版社微型计算机接口技术王兆月等编著机械工业出版社度计算当符号位时,直接将二进制位转换为十进制当时,先将补码变换为原码,再计算十进制值。
完成温度转换后,就把测得的温度值与做比较,若或操作命令存储器操作命令处理数据初始化单总线上的所有处理均从初始化开始操作命令总线主机检测到的存在便可以发出操作命令之这些命令如表所示表操作命令表指令代码读匹配跳过搜索告警搜索存储器操作命令如表所示表存储器操作命令表指令代码写暂存存储器读暂存存储器复制暂存存储器温度变换重新调出读电源温度转换算法及分析由于转换后的代码并不是实际的温度值,所以要进行计算转换。
温度高字节高位是用来保存温度的正负标志为的,高字节低位和低字节来保存温度值。
其中低字节的低位来保存温度的小数位。
由于本程序采用的是的精度,小数部分的值,可以用后四位代表的实际数值乘以,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留位小数即可。
也就说,本系统的温度精确到了度。
算法核心首先程序判断温度是否是零下,如果是,则保存的是温度的补码值,需要对其低位取反加变成原码。
处理过后把的温度到单片机的中,里面已经是温度值的码了,然后转换码到码,分别把小数位,个位,十位的码存入中。
加热控制部分由于本系统要控制电热丝加热,功率较大,因此要借助功率电路。
在器件选择上留足余量,增加安全性。
加热部分采用继电器控制,电路简单可靠。
电路如图所示。
当实测温度低于设定值时,由单片机输出高电平信号。
三极管导通,继电器开始工作对水加温。
为了防止继电器频繁动作。
在软件中对水温测量精确到,而在温度设定时只取整数。
可以有的余量。
当设定温度低于实测温度时为了加快系统动态响应速度,设置个小功率电扇,加速水温的降低。
使系统整体性能得以提高。
原理图如图所示。
键盘显示控制器部分本设计中采用动态显示方式驱动个七段数码管,分别显示温度的十位个位和小数位。
数码管采用共阴极,由于单片机每个的拉电流只有。
所以在位码和段码都加上了同相驱动器。
键盘采用按键开关经上拉电阻分别接口上,起到控制上调和下调作用。
每按上调和下调键,设定温度值增减。
单片机接晶振,提供系统时钟基值。
另接复位按键。
原理图如图所示。
图继电器控制图风扇控制图图键盘显示控制器部分原理图系统软件设计系统的软件设计采用汇编语言,对单片机进行变成实现各项功能。
主程序对模块进行初始化,而后调用读温度处理温度显示键盘和继电器各模块。
用的是循环查询方式,来显示和控制温度。
读取温度模块子程序每次对操作时多要按造工作过程中的协议进行。
初始化操作命令存储器操作命令处理数据程序流程图如图所示。
数据处理子程序由于转换后的代码并不是实际的温度值,所以要进行数据处理。
由于本程序采用的是的精度,小数部分的值,可以用后四位代表的实际数值乘以,得到真正的数值,数值可能带几个小数位,所以采取四舍五入,保留位小数即可。
也就说,本系统的温度精确到了度。
首先程序判断温度是否是零下,如果是,则保存的是温度的补码值,需要对其低位取反加变成原码。
处理过后把的温度到单片机的中,里面已经是温度值的码了,然后转换码到码,分别把小数位,个位,十位的码存入中。
数据处理子程序流程图如图所示。
图读取温度子程序流程图图数据处理子程序流程图返回数据传递温度是否为负码转换求补运算开始的存在不存在时显示信息处理从得到的数据赋值给调用数码管显示子程序扫描键盘处理继电器程序名称功能程序出错处理,显示三个,即入口参数无出口参数如果没有找到,那么就显示,显示为程序名称功能处理采集后的的数据入口参数出口参数判温度是否零下为,说明是正数,跳往,如果是负数,则对低为进行补码处理二进制数求补双字节取反加取补码后存回,此时里面的值就可以表示温度了,不过还要继续处理下。
高位取反,加上从低位进来的位写回取低位小数位,单位是,得出来的数要乘以,通过查表来算出值查表小数部分小数位的码送入显示中整数部分得到个位单个数值后就得到个位真正的个位组合后的值存入转换值成为码目前存入的是十位和个位的编码位十位数位个位数小数部分码表以此类推程序名称功能十六进制转入口参数出口参数,程序名称功能初始化,确定是否是存在的入口参数无出口参数主机发出延时微秒的复位低脉冲然后拉高数据线,释放总线进入接受状态初始化存在操作命令存储操作命令读取温度值返回是否键盘扫描子程序按键功能控制键加键减键键盘子程序流程图如图所示。
图键盘子程序流程图开始为键是否按下是否有键按下是否有键按下是否有键按下显示返回主程序子程序子程序子程序是是是是是否否否否否主程序流程图总模块流程图如图所示。
本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。
图所示为系统主程序流程图图主程序流程图否初始化开始调用转换子程序存在数据处理子程序显示子程序键盘扫描子程序继电器控制子程序处理显示是系统测试静态温度测试测试方式由于种种条件的限制,采用模拟加热方式进行测试。
利用继电器的指示灯来显示继电器的动作。
红灯表示加热,绿灯表示降温。
测量仪器空调温度显示屏测试结果如表所示表测试结果数据标准温度测量温度误差动态温控测量测试方式加热方式用体温对传感器进行加热。
设定控制温度,记录超调温度,稳态误差。
超调温度与加热的功率有关,这里不再测量。
测量仪器空调温度显示屏测量结果如表所示表测试结果数据设定温度超调温度稳态误差结果分析有以上的测量结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由来决定。
在控温指标中,影响系统的性能的因素很多。
最关键的是加热系统本身的物理性质及控制算法。
由于条件的限制,在本设计中采用体温进行测试。
附录产品使用说明本水温控制系统能在范围内设定任意温度值,超出此范围将有出错显示,之后返回到或。
通过按键确认开始温度设定的键为加键,每按次使设定温度值加的键为减键,每按下次设定温度值减。
设置完温度要在按键确认温度设定完成,之后显示实测温度值。
当温度传感器没有接入时也将有出错提示显示。
附录元件清单元件单价数量个单价晶振继电器数码管按键开关发光二极管排阻电阻电解电容插槽面包板附录系统硬件原理图附录软件程序清单低位高位计算后十位的码存放计算后的个位和小数位的码存放计算后十位和个位码的存放数码管小数位数码管个位数码管十位键盘输入后,的个位值键盘输入后,的十位值输入数据确认按钮上调按钮下调按钮读取的输入端口继电器控制端口,加热,断开风扇控制,降温,断开标志位,确定是否存在,存在,不存在键盘输入的标志位,为说明键盘正在输入,为说明键盘输入退出程序开始执行初始化由于是由用户输入的,所以先赋值初始化调用读温度子程序,
