数字温度控制器的设计与制作

上传人:龙*** 文档编号:48366176 上传时间:2018-07-14 格式:PPT 页数:46 大小:1.87MB
返回 下载 相关 举报
数字温度控制器的设计与制作_第1页
第1页 / 共46页
数字温度控制器的设计与制作_第2页
第2页 / 共46页
数字温度控制器的设计与制作_第3页
第3页 / 共46页
数字温度控制器的设计与制作_第4页
第4页 / 共46页
数字温度控制器的设计与制作_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《数字温度控制器的设计与制作》由会员分享,可在线阅读,更多相关《数字温度控制器的设计与制作(46页珍藏版)》请在金锄头文库上搜索。

1、*1项目8 数字温度控制器的设计与制作 掌握单总线数字温度传感器的使用掌握液晶显示器的使用掌握温度报警器及数字温度控制器的设计本章要点:*28.1 任务1 认识单总线1-wire,即单线总线,又叫单总线。它是美国的 达拉斯半导体公司(DALLASSEMICONDUCTOR)近年来推出的一项特有的技术。该技术采用单根信号 线,系统中的数据交换、控制都由这根线完成,既可 传输时钟,又能传输数据,而且数据传输是双向的, 因而这种单总线技术具有线路简单,硬件开销少,成 本低廉,便于总线扩展和维护等优点。1.单总线数字温度传感器DS18B20DS18B20是美国DALLAS公司生产的单总线数字温度传感器

2、,可把温度信号直接转换成串行数字信号供微机处理, 在一条总线上可挂接多个DS18B20芯片。单总线通常要求外接一个约为4.7k的上拉电阻,当总线闲置时,其状态为高电平。DS18B20数字温度传感器可 提供912位温度读数。读取或写入DS18B20的信息仅需一 根总线,总线本身可以向所有挂接的DS18B20芯片提供电源 ,而不需额外的电源。由于DS18B20这一特点,非常适合于 温度检测系统。(1)DS18B20的优点 采用单总线的接口方式。与微处理器连接时,仅需要一条口 线即可实现微处理器与 DS18B20 的双向通信。 每个器件上都有独一无二的序列号。 测量温度范围宽,测量精度高。 在使用中

3、不需要任何外围元件即可实现测温。 内部有温度上、下限告警设置。 支持多点组网功能。 供电方式灵活。 测量参数可配置。 负压特性。 掉电保护功能。体积小、适用电压宽、更经济。(2) DS18B20芯片结构DS18B20外形和引脚图如8-1所示,各引脚功能如表8-1所示 :图图8-1 DS18B20外形和引脚配置图图表8-1 DS18B20引脚功能DS18B20内部结结构如图图8-2所示。图图8-2 DS18B20内部结结构图图光刻ROM中的64位序列号是出厂前被光刻好的,它可以看 作是该DS18B20的地址序列码。第一个八位为单总线器件识别 码(DS18B20为28h),接下来48位是器件的惟一

4、系列码,最后八 位是前56位的CRC校验码。每个DS18B20的序列号都各不相同, 这样就可以实现一根总线上挂接多个DS18B20的目的。2.传感器的读写时序由于DS18B20是在一根I/O线上读写数据,因此,对读写 的数据位有着严格的时序要求。包括初始化时序、读时序、 写时序。所有时序都是将主机作为主设备,单总线器件作为 从设备。而每一次命令和数据的传输都是从主机主动启动写 时序开始,如果要求单总线器件回送数据,在进行写命令后 ,主机需启动读时序完成数据接收。数据和命令的传输都是 低位在先。DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。(1) 初始化时序DS

5、18B20初始化时时序如图图8-3所示。图图8-3 DS18B20初始化时时序图图(2) 对DS18B20的写和读操作时序DS18B20的读读和写操作时时序分别别如图图8-4、8-5所示。图图8-4 DS18B20读读操作时时序图图图图8-5 DS18B20写操作时时序图图3.传感器的操作使用 DS18B20 单线通信功能是分时完成的,它有严格的时隙概 念,如果出现序列混乱, 1-WIRE 器件将不响应主机,因此读 写时序很重要。根据 DS18B20 的协议规定,微控制器控制 DS18B20 完成温度的转换必须经过以下 几 个步骤 :()每次读写前对 DS18B20 进行复位初始化。复位要求主

6、 CPU 将数据线下拉 500us ,然后释放, DS18B20 收到信号 后等待 16us60us 左右,然后发出60us240us 的存在低脉 冲,主 CPU 收到此信号后表示复位成功。()发送一条 ROM 指令DS18B20的ROM指令集如表8-2所示:表8-2 DS18B20的ROM指令集()发送存储器指令DS18B20的存储器指令集如表8-3所示:表8-3 DS18B20的存储储器指令集DS18B20进进行一次温度转换转换 的具体操作如下: 1)主机先作个复位操作 2)主机再写跳过过ROM的操作(CCH)命令 3)然后主机接着写个转换转换 温度的操作命令,后面释释放总总 线线至少一秒

7、,让让DS18B20完成转换转换 的操作。在这这里要注意 的是每个命令字节节在写的时时候都是低字节节先写,例如CCH的 二进进制为为11001100,在写到总线总线 上时时要从低位开始写,写 的顺顺序是“0、0、1、1、0、0、1、1”。整个操作的总线总线 状态态如下图图8-6所示。图图8-6 DS18B20进进行一次温度转换转换 的状态图态图读读取RAM内的温度数据的具体操作如下: 1)主机发发出复位操作并接收DS18B20的应应答(存在)脉冲。 2)主机发发出跳过对过对 ROM操作的命令(CCH)。 3)主机发发出读读取RAM的命令(BEH),随后主机依次读读取 DS18B20发发出的从第

8、0一第8,共九个字节节的数据。如果只想读读 取温度数据,那在读读完第0和第1个数据后就不再理会后面 DS18B20发发出的数据即可。同样读样读 取数据也是低位在前的。整 个操作的总线总线 状态态如下图图8-7所示。图图8-7 DS18B20读读取RAM内 的温度数据的状态图态图第二步跳过对ROM操作的命令是在总线上只有一个器件时,为节省时间而简化的操作,若总线上不止一个器件 ,那么跳过ROM操作命令将会使几器件同时响应,这样就 会出现数据冲突。*168.2 任务2 认识液晶显示器液晶显示器是日常生活中常见的输出设备,如在计算器、万用表、电子表及很多家用电子产品中都可以看到, 显示的主要是数字、

9、专用符号和图形。 1.1602LCD液晶模块(1)1602LCD液晶显示模块结构1602LCD液晶显示模 块的管脚配置图如图8-9 所示: 图8-9 1602LCD液晶模块管脚配置图引脚功能如表8-4所示。 表8-4 1602LCD液晶模块块管脚功能(2)1602LCD液晶显示模块控制指令 LCD1602 有11个控制指令,如表8-5所示:表8-5 1602LCD液晶模块控制指令集2.液晶模块读写操作时序 (1)写时序写时序图如图8-10所示:图8-10 1602LCD液晶模块写时序图(2)读时序读时序图如图8-11所示:图8-11 1602LCD液晶模块读时序图从图8-10和图8-11可以看

10、出,1602液晶的读写操作时序可 总结成表8-8所示。表8-8 1602LCD液晶模块读块读 写时时序控制接口基本操作时序如下:读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字 写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无 读数据:输入:RS=H,RW=H,E=H 输出:D0D7=数据 写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无(3)RAM地址映射图控制器内部带有808位(80字节)的RAM缓冲区,对应关 系如图8-12所示:图图8-12 1602LCD液晶RAM地址映射图图(4)液晶操作步骤 1)初始化设置显显示模式设设

11、置显显示开/关及光标设标设 置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显

12、示清屏,数据指针也清屏初始化子程序参考如下: void init( ) lcde=0; /使能端E清零write_com(0x38); /显示模式设置write_com(0x0f); /开显示,显示光标,光标闪烁write_com(0x06); /当写一个字符后,地址指针自动加1,且光标加1,字符不动write_com(0x01); /清屏write_com(0x80); /设置数据指针 写命令子函数:参考程序如下: void write_com(unsigned char com) lcdrs=0; /RS清零,代表指令操作D0D7=com;delay(5);lcde=1;delay(5);

13、lcde=0; /产生高脉冲 参考程序如下: void write_data(unsigned char data1) lcdrs=1; /RS置1,代表数据操作D0D7=data1;delay(5);lcde=1;delay(5);lcde=0; /产生高脉冲 写数据子函数:3.液晶显示模块应用实例【实例8-1】如图8-13所示电路图,要求编程实现LCD1602 液晶显示模块两行分别居中显示“HELLO WORLD!”和 ”WELCOME!”,并且光标能够闪烁,整屏字符能够左移显 示。图8-13 实例1电路图 分析:Proteus中LCD1602液晶显示元件名称是LM016L(在 元件查找里

14、面可以找到),这个元件接法与LCD1602相同。参考程序如下:#include unsigned char code tab=“HELLO,WORLD!“; unsigned char code tab1=“WELCOME!“; sbit lcdrs=P20; sbit lcde=P21; unsigned char i; void delay(unsigned int z) unsigned int x,y;for(x=z;x0;x-)for(y=125;y0;y-); void write_com(unsigned char com) lcdrs=0;P3=com;delay(5);lcd

15、e=1;delay(5);lcde=0; void write_data(unsigned char data1) lcdrs=1;P3=data1;delay(5);lcde=1;delay(5);lcde=0; void init( ) lcde=0; /使能端E清零write_com(0x38); /显示模式设置write_com(0x0f); /开显示,显示光标,光标闪烁write_com(0x06); /当写一个字符后,地址指针自动加1,且光标加1,字符不动write_com(0x01); /清屏write_com(0x80); /设置数据指针 void main() init();write_com(0x80+0x12); /设置数据指针for(i=0;i #define uchar unsigned char #define uint unsigned int uchar code disp=“0123456789“;/定义字符数组显示数字 uchar code disp2=“Temp:“;/说明显示的是温度 uchar code disp3=0xdf,C;/温度单位 uchar code disp4=“ L: H: “;/温度上下限显示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号