基于单片机的温度智能控制系统的软件设计(编辑修改稿)内容摘要:
范围更宽,电压范围:~,在寄生电源方式下可由数据线供电。 温范围-55℃~+125℃,在10~+85℃时精度为177。 零待机功耗。 可编程的分辨率为9~12位,℃、℃、℃℃,可实现高精度测温。 ,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 用户可定义报警设置。 报警搜索命令识别并标志超过程序限定温度的器件。 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 以上特点使DS18B20非常适用与多点、远距离温度检测系统。 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 DQ 为数据输入/输出引脚。 开漏单总线接口引脚。 当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。 当工作于寄生电源时,此引脚必须接地。 DS18B20的测温原理DS18B20的测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,每次测量前,首先将55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在55 ℃所对应的一个基数值[4]。 减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。 系统对DS18B20的各种操作必须按协议进行。 操作协议为:初始化DS18B20→发ROM功能命令→发存储器操作命令→处理数据[5]。 LCD1602液晶显示器 LCD1602简介字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。 当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。 LCD1602的指令说明及时序 1602液晶模块内部的控制器共有11条控制指令[6],LCD1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 1为高电平、0为低电平。 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。 指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据。 指令11:读数据。 LCD读写时序如表21所示。 表21 LCD1602读写时序表读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无 直流马达电动马达,又称为马达或电动机,是一种将电能转化成机械能,并可再使用机械能产生动能,用来驱动其他装置的电气设备。 电动机种类非常繁多,但可大致分为交流电动机及直流电动机以用于不同的场合。 马达工作的原理马达的旋转原理的依据为佛来明左手定则,当导线置放于磁场内,若导线通上电流,则导线会切割磁场线使导线产生移动。 电流进入线圈产生磁场,利用电流的磁效应,使电磁铁在固定的磁铁内连续转动的装置,可以将电能转换成力学能。 与永久磁铁或由另一组线圈所产生的磁场互相作用产生动力 直流马达的原理是定子不动,转子依相互作用所产生作用力的方向运动[7]。 电枢:可以绕轴心转动的软铁芯缠绕多圈线圈。 场磁铁:产生磁场的强力永久磁铁或电磁铁。 集电环:线圈约两端接至两片半圆形的集电环,随线圈转动,可供改变电流方向的变向器。 每转动半圈,线圈上的电流方向就改变一次。 电刷:通常使用碳制成,集电环接触固定位置的电刷,用以接至电源。 马达的基本构造电动机的种类很多,以基本结构来说,其组成主要由定子和转子所构成。 定子在空间中静止不动,转子则可绕轴转动,由轴承支撑。 定子与转子之间会有一定空气间隙,以确保转子能自由转动。 定子与转子绕上线圈,通上电流产生磁场,就成为电磁铁,定子和转子其中之一亦可为永久磁铁[8]。 第3章 系统软件设计 系统电路原理图。 ,。 首先对温度采集,将采集到的温度转换数字,采集到的温度由LCD液晶显示屏显示。 再将采集到的温度所属软件设置的哪个范围。 系统通过单片机AT89C52控制,用DS18B20数字温度传感器采集温度。 通过LCD1602液晶显示屏显示当前温度,当检测到温度高于系统设定温度值,马达将带动风扇的转动,实现自动控制降大棚里的温度。 系统电路原理图如图31所示图31 电路原理图 主程序设计从软件的功能不同可分为几大类:一是检测软件,它是用来检测温度。 二是显示部分,用来显示所检测到的温度。 三是控制部分,用来控制马达。 每一个执行软件也就是一个小的功能执行模块。 这里将各执行模块一一列出,并为每一个执行模块进行功能定义。 系统主程序流程图如图32所示。 大于设定值。 开始初始化DS18B20温度检测LCD1602显示电机带动风扇转动图 32系统主程序流程图void main(void){ P1=0xff。 //初始化p1口,全设为1 x24c02_init()。 //初始化24C08 K=x24c02_read(2)。 //读出保存的数据赋于K seconde=x24c02_read(4)。 minite=x24c02_read(6)。 hour=x24c02_read(8)。 delay_LCM(500)。 //延时500ms启动 initLCM( )。 //LCD初始化 init_timer0( )。 //时钟定时器0初始化 Init_DS18B20( )。 //DS18B20初始化 DisplayListChar(0,0,str0)。 DisplayListChar(0,1,str1)。 while (1) { keyscan()。 //按键扫描 ReadTemperature()。 //温度采集 switch(set) //LCD根据工作模式显示 { case 0:displayfun1()。 delay_L。基于单片机的温度智能控制系统的软件设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。