基于ds18b20的温控系统设计与实现内容摘要:

0m时,读取的测温数据发生错误,当采用双绞线带屏蔽电缆为总线电缆时,正常通讯距离可达l50m,当采用每米胶合次数更多的双绞线带屏蔽电缆时,正常通讯距离可以进一步加长。 这种情况主要由总线分布电容使信号波形产生畸变造成的。 因此,存进行长距离测量时要充分考虑总线分布电容和阻抗匹配问题。 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图7所示。 图7 LM016L结构图LCD1602主要技术参数:容量:162个字符芯片工作电压:—工作电流:()模块最佳工作电压:字符尺寸:(WH)mm引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表6所示: 表6引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第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与单片机接口电路系统显示电路由单片机AT89C5字符液晶显示器LCD1602和1k8的排组构成。 单片机实现对LCD命令和显示数据的读写控制功能,P0口作数据口,与LCD1602L的D0~D7相接,在P0口与D0~D7数据线之间分别接8个上拉电阻,以确保电路能够正常显示。 AT89C51的P1口作为LCD的控制线,~、RW和E端;LCD1602的其它三个控制端V和V、V分别接电源和地。 系统显示电路组成如图8所示。 图8 系统硬件电路组成首先看看继电器的驱动 图9继电器接线图这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图为什么要明白这个图的原理?单片机是一个弱电器件,比如控制电动机,就要有一个环节来衔接,这个环节就是所谓的功率驱动.继电器驱动就是一个典型的、,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件。 还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,因为,一直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西?怎么样理解这个电路图? 要理解这个电路,应该没有问题:首先的,? 简单的来说三极管有两个作用,一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用.,继电器是一个水轮机,三极管就是水龙头,它的把手就是那个带有电阻的引脚.现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只手,当单片机的这个引脚输出低电平的时候,就像手在打开三极管水龙头,水就从上往下流,继电器水轮机,如果是输出高电平,手就开始关水龙头,继电器水轮机因为没有水流下来,就会停止.这就是三极管的开关作用.简单的理解和记忆就是:三极管是一个开关器件,其实你真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别).图上还有一个东西,是保护二极管,如果不需要深入理解的话,你大可不必追就为什么有它存在,但是一定得记住,只要是用三极管驱动继电器的场合,:并联在继电器两端,阴极一定接vcc这里我们先要安装好51试验板上的两个轻触按钮开关,我们采用的是独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应引脚之间。 、“1” 当有按键按下时对应的单片机引脚被按钮开关下拉为“0”,这种方法比较直观,而且比较简单,在按键数量不多的场合下使用很广泛。 因为机械开关开关时有抖动,所以需要在程序中加一个软件去抖动程序,它的工作原理如下:当单片机检测到有按键被按下后立即执行一个10毫秒的延时程序,然后再在检测该引脚是否仍然为闭合状态。 如果仍然为闭合说明确认该键被按下立即执行相应的处理程序,否则可能是干扰,丢弃这次检测结果。 接下来我们再安装一个四位的拨码开关,就是图中红色的开关,它相当于四个装在一起的拨动开关,当开关拨到ON一侧时,对应的那路就会接通,而且不经常改变的场合。 这里因为单片机引脚资源不够,所以我们只使用了拨码开关的第4位,第1位闲置。 三个开关可以逻辑组合出8种状态,所以我们能够方便灵活地预置多达7种的倒计时时间。 最后我们来安装两个继电器和相关电路,有了继电器我们的实验板不再仅仅是做做实验而已,可以用于控制一些负载,比如说:充电器,洗衣机,电风扇等,使我们的实验板的实用功能大大增强,这也是电子制作实验室网站的单片机实验板和其他公司的产品不同的地方。 这里继电器由相应的S8050三极管来驱动,开机时,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR ,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单。 3 系统软件设计 主程序设计系统主流程图如图10所示。 系统初始化开始DS18B20测温LCD1602显示温度在正常范围继电器工作YN结束按键选择读取温度点调温YN图10 主程序流程图 读DS18B20的序列号程序设计 读DS18B20的序列号的主程序设计流程图如图10所示,程序中主要对DS18B20的初始化子程序,然后读出DS18B20的64位序列号存入到40H~47H中,然后将40H内容送入P0口,显示出40H中的二进制数,记录下来,然后分别把41H47H的内容送入P0口显示并记录,五个DS18B20的序列号分别为:(1)6F0000030A2F6D28(2)600000030A2D0F28(3)2D0000030A384628(4)/20000030A516B28(5)4F0000030A46/828 图11读DS18B20的序列号 图12 温度报警子程序流程图主程序流程图温度报警子程序流程图如图21所示。 先将设定温度报警上限值与当前温度带借位相减,如果借位标志位为1,调高温度报警程序,温度值后面显示“H”否则顺序执行,把当前温度值与下限报警温度值相减,如果借位标志位为1,调低温报警程序,温度值后面显示“L”,否则顺序执行,温度值后显示“。 ”。 温度的精度设计,DS18B20温度传感器的高速暂存器TL中的低四位为小数位,二进制数从0000~1111共16个数,,即0000对应00H,0010对应01H。 取出的二进制数与DB块首地址相加为地址去寻址小数码表,即可得到实际小数位的BCD码。 程序如下所示:MOV A,TEMPLANL A,0FH。 取出小数位的温度值 MOV DPTR,TEMPDOTTABMOVC A,@A+DPTR。 MOV TEMPLC,A。 TEMPLC LOW=小数部分 BCD小数部分码表:TEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H DB 05H,05H,06H,06H,07H,08H,08H,09H4系统仿真调试 软件编程与调试简介Keil软件是美国Keil Software 公司出品的51 系列兼容单片机C语言和汇编语言软件开发系统 ,而且是目前最流行开发MCS51系列单片机的软件。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。 运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN9NT、WIN2000、WINXP等操作系统。 在KEIL软件中编程的步骤如下:先建一个新的工程,保存到一个位置。 224。 选择处理器,这里选择AT89C51。 224。 接下来会问是否把Startup Code加入到工程,选否即可。 工程就建完了。 224。 新建一个文档用来编辑程序。 224。 下面进行工程配置。 点击Project菜单下的Options for Target ‘Target 1’。 224。 在弹出对话框的Target 项里输入晶振为12M,然后勾上Use Onchip ROM。 224。 在Output项里勾上Create HEX File。 224。 然后点击Project菜单里的build target或Rebuild all target。 224。 编译完会在下面Output Window里显示编译成功与否的信息和错误提示。 如果出现错误,双击错误提示处即可找到错误程序语句 系统软、硬件交互仿真程序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。