您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 数字温度控制器的设计与制作
2020/2/21项目8数字温度控制器的设计与制作掌握单总线数字温度传感器的使用掌握液晶显示器的使用掌握温度报警器及数字温度控制器的设计本章要点:2020/2/228.1任务1认识单总线1-wire,即单线总线,又叫单总线。它是美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)近年来推出的一项特有的技术。该技术采用单根信号线,系统中的数据交换、控制都由这根线完成,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。1.单总线数字温度传感器DS18B20DS18B20是美国DALLAS公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微机处理,在一条总线上可挂接多个DS18B20芯片。单总线通常要求外接一个约为4.7kΩ的上拉电阻,当总线闲置时,其状态为高电平。DS18B20数字温度传感器可提供9~12位温度读数。读取或写入DS18B20的信息仅需一根总线,总线本身可以向所有挂接的DS18B20芯片提供电源,而不需额外的电源。由于DS18B20这一特点,非常适合于温度检测系统。(1)DS18B20的优点采用单总线的接口方式。与微处理器连接时,仅需要一条口线即可实现微处理器与DS18B20的双向通信。每个器件上都有独一无二的序列号。测量温度范围宽,测量精度高。在使用中不需要任何外围元件即可实现测温。内部有温度上、下限告警设置。支持多点组网功能。供电方式灵活。测量参数可配置。负压特性。掉电保护功能。体积小、适用电压宽、更经济。(2)DS18B20芯片结构DS18B20外形和引脚图如8-1所示,各引脚功能如表8-1所示:图8-1DS18B20外形和引脚配置图表8-1DS18B20引脚功能DS18B20内部结构如图8-2所示。图8-2DS18B20内部结构图光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。第一个八位为单总线器件识别码(DS18B20为28h),接下来48位是器件的惟一系列码,最后八位是前56位的CRC校验码。每个DS18B20的序列号都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。2.传感器的读写时序由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。包括初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。(1)初始化时序DS18B20初始化时序如图8-3所示。图8-3DS18B20初始化时序图(2)对DS18B20的写和读操作时序DS18B20的读和写操作时序分别如图8-4、8-5所示。图8-4DS18B20读操作时序图图8-5DS18B20写操作时序图3.传感器的操作使用DS18B20单线通信功能是分时完成的,它有严格的时隙概念,如果出现序列混乱,1-WIRE器件将不响应主机,因此读写时序很重要。根据DS18B20的协议规定,微控制器控制DS18B20完成温度的转换必须经过以下几个步骤:(1)每次读写前对DS18B20进行复位初始化。复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待16us~60us左右,然后发出60us~240us的存在低脉冲,主CPU收到此信号后表示复位成功。(2)发送一条ROM指令DS18B20的ROM指令集如表8-2所示:表8-2DS18B20的ROM指令集(3)发送存储器指令DS18B20的存储器指令集如表8-3所示:表8-3DS18B20的存储器指令集DS18B20进行一次温度转换的具体操作如下:1)主机先作个复位操作2)主机再写跳过ROM的操作(CCH)命令3)然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让DS18B20完成转换的操作。在这里要注意的是每个命令字节在写的时候都是低字节先写,例如CCH的二进制为11001100,在写到总线上时要从低位开始写,写的顺序是“0、0、1、1、0、0、1、1”。整个操作的总线状态如下图8-6所示。图8-6DS18B20进行一次温度转换的状态图读取RAM内的温度数据的具体操作如下:1)主机发出复位操作并接收DS18B20的应答(存在)脉冲。2)主机发出跳过对ROM操作的命令(CCH)。3)主机发出读取RAM的命令(BEH),随后主机依次读取DS18B20发出的从第0一第8,共九个字节的数据。如果只想读取温度数据,那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可。同样读取数据也是低位在前的。整个操作的总线状态如下图8-7所示。图8-7DS18B20读取RAM内的温度数据的状态图第二步跳过对ROM操作的命令是在总线上只有一个器件时,为节省时间而简化的操作,若总线上不止一个器件,那么跳过ROM操作命令将会使几器件同时响应,这样就会出现数据冲突。2020/2/2168.2任务2认识液晶显示器液晶显示器是日常生活中常见的输出设备,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。1.1602LCD液晶模块(1)1602LCD液晶显示模块结构1602LCD液晶显示模块的管脚配置图如图8-9所示:图8-91602LCD液晶模块管脚配置图引脚功能如表8-4所示。表8-41602LCD液晶模块管脚功能(2)1602LCD液晶显示模块控制指令LCD1602有11个控制指令,如表8-5所示:表8-51602LCD液晶模块控制指令集2.液晶模块读写操作时序(1)写时序写时序图如图8-10所示:图8-101602LCD液晶模块写时序图(2)读时序读时序图如图8-11所示:图8-111602LCD液晶模块读时序图从图8-10和图8-11可以看出,1602液晶的读写操作时序可总结成表8-8所示。表8-81602LCD液晶模块读写时序控制接口基本操作时序如下:读状态:输入:RS=L,RW=H,E=H输出:D0~D7=状态字写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:无读数据:输入:RS=H,RW=H,E=H输出:D0~D7=数据写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲输出:无(3)RAM地址映射图控制器内部带有80×8位(80字节)的RAM缓冲区,对应关系如图8-12所示:图8-121602LCD液晶RAM地址映射图(4)液晶操作步骤1)初始化设置显示模式设置显示开/关及光标设置2)数据控制控制器内部有一个数据地址指针,用户可用它们来访问内部的全部80字节RAM。数据指针设置读数据写数据其他设置液晶初始化子程序:液晶初始化子程序通常包含以下内容:液晶显示使能端E清零(因为上电默认是高电平,所以开始要清零,为E产生高脉冲做准备)显示模式设置:com(0x38);38是以2行16字的5*7的点阵方式显示显示开关:com(0x0f);0f是开显示,且开光标闪烁;0e开显示,且开光标,光标不闪烁;0c开显示显示模式设置:com(0x06);06地址指针自动加1,光标加1,字符不动清屏:com(0x01);01显示清屏,数据指针也清屏初始化子程序参考如下:voidinit(){lcde=0;//使能端E清零write_com(0x38);//显示模式设置write_com(0x0f);//开显示,显示光标,光标闪烁write_com(0x06);//当写一个字符后,地址指针自动加1,且光标加1,字符不动write_com(0x01);//清屏write_com(0x80);//设置数据指针}写命令子函数:参考程序如下:voidwrite_com(unsignedcharcom){lcdrs=0;//RS清零,代表指令操作D0~D7=com;delay(5);lcde=1;delay(5);lcde=0;//产生高脉冲}参考程序如下:voidwrite_data(unsignedchardata1){lcdrs=1;//RS置1,代表数据操作D0~D7=data1;delay(5);lcde=1;delay(5);lcde=0;//产生高脉冲}写数据子函数:3.液晶显示模块应用实例【实例8-1】如图8-13所示电路图,要求编程实现LCD1602液晶显示模块两行分别居中显示“HELLOWORLD!”和”WELCOME!”,并且光标能够闪烁,整屏字符能够左移显示。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L73%RV11k图8-13实例1电路图分析:Proteus中LCD1602液晶显示元件名称是LM016L(在元件查找里面可以找到),这个元件接法与LCD1602相同。参考程序如下:#includereg51.hunsignedcharcodetab[]=HELLO,WORLD!;unsignedcharcodetab1[]=WELCOME!;sbitlcdrs=P2^0;sbitlcde=P2^1;unsignedchari;voiddelay(unsignedintz){unsignedintx,y;for(x=z;x0;x--)for(y=125;y0;y--);}voidwrite_com(unsignedcharcom){lcdrs=0;P3=com;delay(5);lcde=1;delay(5);lcde=0;}voidwrite_data(unsignedchardata1){lcdrs=1;P3=data1;delay(5);lcde=1;delay(5);lcde=0;}voidinit(){lcde=0;//使能端E清零write_com(0x38);//显示模式设置write_com(0x0f);//开显示,显示光标,光标闪烁write_com(0x06);//当写一个字符后,地址指针自动加1,且光标加1,字符不动write_com(0x01);//清屏write_com(0x80);//设置数据指针}voidmain(){init();write_com(0x80+0x12);//设置数据指针for(i=0;i12;i++){write_data(tab[i]);delay(20);}write_com(0x80+0x54);//设置数据指针for(i=0;i8;i++){write_data(tab1[i]);delay(20);}for(i=0;i16;i++){write_com(0x1c);//整屏左移,LM016L与LCD1602实物的左右移相反delay(200);}while(1);}XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534
本文标题:数字温度控制器的设计与制作
链接地址:https://www.777doc.com/doc-3433534 .html