《DSB温传感器的数字温计设计 .docx》由会员分享,可在线阅读,更多相关《DSB温传感器的数字温计设计 .docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习可编辑资料 - - - 欢迎下载精品名师归纳总结基于 DS18B20 温度传感器的数字温度计设计目录基于 DS18B20 温度传感器的数字温度计设计3基于 DS18B20 温度传感器的数字温度计设计1摘要: 1关键字: 1The conception of the numerical thermometer based on DS18B2011 引言 12 总体设计 22.1 方案论证 22.2 总体设计 3 3 硬件设计 33.1 单片机系统 33.2 温度传感器模块 43.3 储
2、备模块 63.4 液晶显示模块73.5 串口通信模块103.6 电源模块 10 4 软件设计 114.1 主程序流程 114.2 DS18B20 模块程序设计 114.3 HS1602 驱动程序设计144.4 AT24C08 储备模块程序设计164.5 RS-232-C 串口通信模块程序设计17 5 测试及结果分析 216 附录 217 参考资料 22可编辑资料 - - - 欢迎下载精品名师归纳总结基于 DS18B20 温度传感器的数字温度计设计周焱华,王小彬,周焕军(湖北师范学院运算机科学系)摘要: 本文介绍了一种基于DS18B20 的数字温度计设计方案。方案利用AT89S52 单片机把握D
3、S18B20 进行数据采集并由HS1602 液晶显示模块显示结果,另外,采集结果可由RS-232-C 接口送入运算机显示并储备。按键把握实现过界报警温度设定和实时监控,利用AT24C08 芯片进行储备,实现温度测量储备与再现。关键字: 温度采集,储备再现,过界报警,串行通信The conception of the numerical thermometer based on DS18B20Zhou Yanhua,Wang Xiaobin,Zhou Huanjun Computer Science Department,HuBeiNormal UniversityAbstract: In th
4、is page,we introduced a conception of the numerical thermometer based on DS18B20. Theconception makes use of AT89S52 control DS18B20 to carry on the data collection,and displays the result use the HS1602 liquid crystal display module. Moreover, the result can be sent into the computer by the interfa
5、ce of RS-232- C to display and store. The key control carries out the temperature setting of over the boundary to alarm,and real-time monitoring.And makes use of the chip of AT24C08 carries on the storage, and carrying out the temperature measurement storage and reappearing.Keywords: Temperature col
6、lect,Storing to reappear,Over the boundary to alarm,Serial communication 1引言随着电子技术的进展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的便利。支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本。以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20 为核心,以 ATMEL公司的 AT89S52为把握器设计的DS18B20 温度把握器结构简洁、测温精确、具有确定把握功能的智能温度把握器。可编辑资料 - - - 欢迎下载精品名师归纳总结2 总体设计2.1 方案论证
7、2.1.1 温度传感器方案一:接受热敏电阻可中意测温要求,但热敏电阻精度低,重复性和牢靠性较差,对于精度要求较高的测温不适用,而且接受热敏电阻要求复杂的电路和算法,增加了设计复杂度。方 案 二 : 采 用 专 用 的 集 成 温 度 传 感 器 ( 如 AD590、 LM35/LM45) 和 数 字 化 温 度 传 感 器( DS18B20、 DS1620)测温,数字化温度传感器具有接口简洁、直接数字量输出、精确度高等优点。 DS18B20 是 DALLAS公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线” 接口的温度传感器。一线总线特殊而且经济的特点,使用户可轻松的组建传感器网络
8、,它的测量温度范畴为 55 125,在 10 85范畴内,精度为 0.5,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境把握、设备或过程把握、测温类消费电子产品等,DS18B20 支持 3 5.5V 的电压范畴,使系统设计更灵敏、更便利、更廉价、体积更小。DS18B20 可以程序设定9 12 位的辨论率,精度为0.5,分辨率设定及用户设定的报警温度储备在E2PROM 中,掉电后照旧储存。因此,本方案选用DS18B20作为温度测量传感器。2.1.2 单片机系统目前比较流行51 系列单片机和凌阳单片机。AT89C51 单片机需要用仿真器来
9、实现软硬件的调试,较为繁琐。 AT89S52 八位单片机除具有AT89C51 单片机全部的优点外,具有更大的程序储备空间,可在线仿真的功能,便利调试。凌阳十六位单片机虽然可以更好的完成把握功能,但较AT89S52 八位单片机价格昂贵,而且编程以及外围功能电路的设计都不及AT89S52 成熟。因此,选用 AT89S52八位单片机作为温度采集的控部分。2.1.3 电源模块接受一般的直流电源实现电路简洁,而且接受集成电源芯片设计的直流电源电压比较稳固,完全中意系统各模块的供电要求,但是一般直流电源体积比较大,变压器的散热对测温精度也有影 响,所以,选用锂离子手机充电电池和配套的锂电池充电器作为系统的
10、供电模块。手机用的锂电池电压范畴是 3.6V 到 4.2V ,限定充电电压是4.25V ,完全中意 AT89S52 和 DS18B20 等各模块的工作电压范畴。2.1.4 显示模块由于系统要求实现测量环境温度、测量体温、过界报警设置、温度储备再现等多种功能,要显示的信息不仅仅是温度值,所以接受数码管显示几乎不行能。另外,手机电池电量有限,而数码管耗电较大,不符合设计要求。因此,选用常见的 HS1602 液晶显示模块显示测温结果。2.1.5 确定方案为了不失通用性和智能性,本方案接受AT89S52 单片机作为把握器,单总线温度传感器DS18B20进行温度采集。电源部分没有接受一般的直流电源而利用
11、锂离子手机充电电池和配套的锂电池充电器,手机用的锂电池电压范畴是3.6V 到 4.2V ,限定充电电压是4.25V ,完全中意AT89S52 和DS18B20 等各模块的工作电压范畴。由于手机电池电量有限,所以显示模块使用HS1602 液晶显示模块而没有使用数码管。可编辑资料 - - - 欢迎下载精品名师归纳总结2.2 总体设计本方案设计的系统由按键把握模块、单片机系统、温度传感器模块、液晶显示模块、储备模块、串口通信模块和电源模块组成,其总体架构如图1。程序把握串口通信模块温度传感器模块按键模块单片机系统液晶显示模块储备模块电源模块图 1 系统总体设计3 硬件设计3.1 单片机系统方案接受
12、AT89S52 单片机作为把握器,完成全部的把握功能,包括: 温度传感器 DS18B20 的初始化和读去温度值HS1602 液晶模块驱动按键识别和把握温度储备及读去和 PC 机的串口通信单片机系统的电路如图2。图 2 单片机系统电路可编辑资料 - - - 欢迎下载精品名师归纳总结3.2 温度传感器模块3.2.1 DS18B20 原理DS18B20 接受 3 脚 PR-35 封装或 8 脚 SOIC 封装,管脚排列如图 3 所示。图中 GND 为的, DQ 为数据输入 /输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平, Vcc 是外部 +5V 电源端,不用时应接的, NC 为空脚。图
13、3 DS18B20 的外部结构DS18B20 内部主要包括寄生电源、温度传感器、64 位激光 ROM 单线接口、存放中间数据的高速暂存器(内含便笺式RAM ),用于储备用户设定的温度上下限值的TH 和 TL 解发器储备与把握规律、 8 位循环冗余校验码( CRC )发生器等七部分,内部结构如图4。图4 DS18B20 内部结构寄生电源由二极管VD1 、VD2 和寄生电容 C 组成,电源检测电路用于判定供电方式,寄生电源供电时, V DD 端接的,器件从单线总线上猎取电源,在DQ 线呈低电平常,改由C 上的电压Vc连续向器件供电。该寄生电源有两个优点:第一,检测远程温度时无需本的电源。其次,缺少
14、正常电源时也能读ROM 。如接受外部电源V DD ,就通过 VD2 向器件供电。光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的的址序列码, 如图 5 所示。开头 8 位( 28H )是产品类型标号,接着的48 位是 DS18B20 自身的序列号,最终8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。主机操作ROM 的命令有五种,如表 1 所示。图564 位ROM 的结构表1 DS18B20 的ROM 命令指令说明读 RO
15、M ( 33H )读 DS1820的序列号可编辑资料 - - - 欢迎下载精品名师归纳总结匹配ROM(55H )跳过ROM(CCH )继读完 64 位序列号的一个命令,用于多个DS1820时定位此命令执行后的储备器操作将针对在线的全部DS1820可编辑资料 - - - 欢迎下载精品名师归纳总结搜 ROM ( F0H )识别总线上各器件的编码,为操作各器件作好预备报警搜寻( ECH )仅温度越限的器件对此命令作出响应DS18B20测量温度时使用特有的温度测量技术。其内部的低温度系数振荡器能产生稳固的频率信号 f0 ,高温度系数振荡器就将被测温度转换成频率信号f。当计数门打开时, DS18B20
16、对 f0 计数,计数门开通时间由高温度系数振荡器准备。芯片内部仍有斜率累加器,可对频率的非线性予以被偿。测量结果存入温度寄存器中。一般情形下的温度值应为9 位(符号点1 位),但因符号位扩展成高 8 位,故以 16 位被码形式读出,表2 给出了温度和数字量的关系。可编辑资料 - - - 欢迎下载精品名师归纳总结表2DS1820 温度数字对应关系表DS18B20温度传感器的内部储备器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM ,后者存放高温度和低温度触发器TH 、 TL 和结构寄存器。暂储备备器包含了8 个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低8 位,其
17、次个字节是温度的高8 位,第三个和第四个字节是TH 、TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新,第六、七、八个字节用于内部运算,第九个字节是冗余检验字节,如表 3 所示。表3 DS18B20 暂存器分布寄存器内容字节的址温度最低数字位0温度最高数字位1高温限制2低温限制3保留4保留5计数剩余值6每度计数值7CRC 校验8该字节各位的意义为TM R1 R0 1 1 1 1 1,低五位始终都是1 ,TM 是测试模式位,用于设置DS18B20 在工作模式仍是在测试模式,在DS18B20 出厂时该位被设置为0,用户不用改动,R1 和R0 用来设置
18、辨论率,DS18B20 出厂时被设置为 12 位,辨论率设置如表4 所示。表 4 辨论率设置表R1R0辨论率温度最大转换时间009 位93.75ms0110位187.5ms1011位375ms1112位750ms依据 DS18B20 的通讯协议,主机把握DS18B20 完成温度转换必需经过三个步骤:每一次读写之前都要对DS18B20 进行复位,复位成功后发送一条ROM 指令,最终发送RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主CPU 将数据线下拉 500 微秒,然后释放,DS18B20 收到信号后等待16 60 微秒左右,后发出60 240 微秒的存在低脉冲,主CPU
19、收到此信号表示复位成功。 ROM 命令令和暂存器的命令如表1 和表 5。表 5 DS18B20 暂存器的命令指令说明温度转换( 44H )启动在线 DS1820做温度 A/D 转换读数据( BEH )从高速暂存器读 9bits 温度值和 CRC 值可编辑资料 - - - 欢迎下载精品名师归纳总结写数据( 4EH )将数据写入高速暂存器的第2 和第 3 字节中复制( 48H )将高速暂存器中第2 和第 3 字节复制到 EERAM读 EERAM ( B8H )将 EERAM内容写入高速暂存器中第2 和第 3 字节可编辑资料 - - - 欢迎下载精品名师归纳总结读 电 源 供 电 方 式( B4H
20、)3.2.2 DS18B20 电路连接明白 DS1820的供电方式可编辑资料 - - - 欢迎下载精品名师归纳总结由于 DS18B20 工作在单总线方式,其硬件接口特殊简洁,仅需利用系统的一条I/ O 线与 DS18B20的数据总线相连即可,如图6 所示。图 6 DS18B20 电路3.3 储备模块3.3.1 AT24C08 结构本方案利用AT24C08 芯片进行储备,实现温度测量储备与再现。AT24C08 是 ATMEL公司生产的串行 EEPROM ( 8K , 10248),直接通过 I 2C 总线的 SDA 中的器件的址码变更来变换读写功能,当从串行时钟线SCL 输入正边缘时钟信号时,数
21、据进入每一个EEPROM 器件,在负边缘时数据从每个器件中输出,串行数据线SDA 双向输送时,该脚用漏极开路驱动,1、2、3 脚作器件的址输入。其外部引脚及引脚功能如图7 所示。可编辑资料 - - - 欢迎下载精品名师归纳总结图 7 AT24C08 外部引脚及引脚功能AT24C08 内部主要由 EEPROM 储备阵列及其行和列译码电路、电源泵/定时、串行多路调制器、数据寄存器、I2C 总线把握规律电路组成,如图8 所示。电源泵的设置免除外设置的写入高压电源。数据寄存器保证了页写数据的装载空间。器件的址比较器用于辩识自己的从的址。图 8 AT24C08 内部结构图3.3.2 AT24C08 工作
22、原理从的址选择AT24C08 片内的储备空间的址接受了一个字的址(WORDADR )字节的寻址,故片内寻址范畴为 256 字节。页写功能EEPROM 写入时,总需要确定的写入时间(515ms),因此,在写入时无法连续写入多个数据字节,在E2PROM 器件中设有确定容量的数据寄存器,用户一次写入EEPROM 的数据字节不大于页写字节数时可按通常RAM 的写入速度装载至EEPROM 中的数据寄存器中,随后启动自动写入定时把握规律,经过510ms 自动将数据寄存器中的数据同步写入EEPROM 的指定单元中。 AT24C08 的页写字节数为 16。页的址空间的 “翻卷 ”对应于页写字节数,数据寄存器分
23、别有2、3、4 位页的址,为字的址的低位部分。在写入时,写入数据依据字的址(WORDADR )的最低部分,定为在数据寄存器的页的址空间、数据寄存器的址的低位部分,溢出时不会向字的址的高位部分进位,这就造成写入数据在的址的 “翻卷 ”。EEPROM的写周期时序由于页写功能的设置,I2C 总线对 AT24C08 的操作只表达在对其数据寄存器的装载, 在数据装载完毕, E2PROM 接收到 I 2C 总线发送的停止位后,自动启动一个内部同步的写周期,将数据寄存器中的数据写入EEPROM 阵列中,在这个内部写入周期中全部输入皆无效。写周期终止后AT24C08 才答应对总线响应。3.3.3 AT24C0
24、8 的连接电路图 9 AT24C08 连接电路3.4 液晶显示模块HS1602 接受标准的 16 脚接口,其引脚如表6 所示,其中VSS 为的电源, VDD 接 5V正电源, V0 为液晶显示模块对比度调整端,接正电源时对比度最弱,接的电源时对比度最高,可以通过一个10K 的电位器调整对比度。RS 为寄存器选择,高电平常选择数据寄存器,低电平常选择指令寄存器。RW 为读写信号线,高电平常进行读操作,低电平常进行写操作,当 RS 和 RW 共同为低电平常可以写入指令或者显示的址,当RS 为低电平 RW 为高电平常可以读忙信号,当RS 为高电平 RW 为低电平常可以写入数据。E 端为使能端,当E
25、端由高电平跳变成低电平常,液晶模块执行命令。LEDA和 LEDK为背光电源, LEDA接 5V 正电源, LEDK 接 GND 。D0D7 为 8 位双向数据线。可编辑资料 - - - 欢迎下载精品名师归纳总结表 6 接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源的9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数 据 / 命 令 选 择 端( H/L )12D5Data I/O5R/W读/写选择端( H/L )13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1
26、Data I/O16BLK背光源负极用 HS1602 液晶显示模块显示字符或字符串之前必需对其进行初始化,HS1602 液晶显示模块的初始化流程如下:5.0 初始化过程(复位过程)5.1 延时 15ms5.2 写指令 38H (不检测忙信号)5.3 延时 5ms5.4 写指令 38H (不检测忙信号)5.5 延时 5ms5.6 写指令 38H (不检测忙信号) 5.7(以后每次写指令、读/写数据之前均需检测忙信号)5.8 写指令 38H :显示模式设置5.9 写指令 38H :显示关闭5.10 写指令 01H :显示清屏5.11 写指令 06H:显示光标移动设置5.12 写指令 0CH :显示
27、开关及光标位置HS1602 液晶模块内部的字符发生储备器(CGROM )已经储备了 128 个不同的点阵字符图形,如表7 所示。表 7CGROM 中的字符代码与图形对应关系高低00000010001101000101011001110000CGRAM0Pp0001!1AQaq0010”2BRbr0011#3CScs0100$4DTdt0101%5EUeu0110&6FVfv01117GWgw10008HXhx10019IYiy可编辑资料 - - - 欢迎下载精品名师归纳总结1010*:JZjz1011+。Kk1100,Nn1111/.O_oHS1602 液晶模块内部的把握器共有11 条把握指令
28、,如表8 所示。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。表 8 HS1602 液晶模块内部的把握器把握指令指令码可编辑资料 - - - 欢迎下载精品名师归纳总结指令R/RSW说明D0 D1 D2 D3 D4 D5 D6 D7可编辑资料 - - - 欢迎下载精品名师归纳总结清屏0000000001清显示 ,光标回位光标返回000000001*ADD=0 时,回原位输入方式00000001I/D S准备是否移动以及移动方向显示开关0000001DCBD-显示 ,C- 光标 ,B- 光标闪烁S/可编辑资料 - - - 欢迎下载精品名师归纳总结移位000001R/L *移动光标及整体显
29、示C可编辑资料 - - - 欢迎下载精品名师归纳总结功能设置00001DL NF*DL- 数据位数 ,L- 行数,F- 字体CGRAM的址设置0001A5 A4 A3 A2 A1 A0设置 CGRAM的的址DDRAM的址设置001A6 A5 A4 A3 A2 A1 A0设置 DDRAM的的址AC6AC5AC4AC3AC2可编辑资料 - - - 欢迎下载精品名师归纳总结忙标志 /读的址计数器 01BFCGRAM/DDRAM数AC1 AC0读出忙标志位 BF 及 AC 值可编辑资料 - - - 欢迎下载精品名师归纳总结据写CGRAM/DDRAM数据读10写数据将内容写入 RAM 中11读数据将内容
30、从 RAM 中读出可编辑资料 - - - 欢迎下载精品名师归纳总结HS1602 液晶显示模块可以和单片机AT89C51 直接接口,电路如图10 所示。图 10 AT89S52 和 HS1602 液晶模块连接电路液晶显示模块是一个慢显示器件,所以在执行每条指令之前确定要确认模块的忙标志为低电平,表示不忙,否就此指令失效。要显示字符时要先输入显示字符的址,也就是告诉模块在哪里显示字符,表9 是 HS1602 的内部显示的址。即第1 行的显示的址应为80H+显示位置,第2 行的显示的址应为C0H+显示位置。表 9 HS1602 的内部显示的址显示位置12345678910 11 12 13 14 1
31、5 16第 1 行80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F第 2 行C0C1 C2C3C4 C5C6C7C8C9 CA CB CCCD CE CF可编辑资料 - - - 欢迎下载精品名师归纳总结3.5 串口通信模块RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中 EIAElectronic Industry Association 代表美国电子工业协会, RS( recommended standard)代表举荐标准, 232 是标识号, C 代表 RS232 的最新一次修改,在这之前,有 RS232B 、RS232
32、A ,它规定连接电缆和机械、电气特性、信号功能及传送过程。RS-232C 适合于数据传输速率在020000b/s 范畴内的通信。PC 机常用 DB-9 连接器作为供应多功能I/O 卡或主板上COM1 和 COM2 两个串行接口的连接器,它只供应异步通信的9 个信号, 9 针串口功能见表10,并且对电缆长度也有要 求: RS-232C 标准规定,如不使用MODEM ,在码元畸变小于4% 的情形下, DTE 和 DCE之间最大传输距离为15m( 50 英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的,为了保证码元畸变小于4% 的要求,接口标准在电气特性中规定,驱动器的负载电容应小于25
33、00pF。针脚表功能109 针串口功能一览表针脚功能1载波检测6数据预备完成2接收数据7发送请求3发送数据8发送清除4数据终端预备完成9振铃指示5信号的线本方案对 RS-232-C 接口接受 3 线制( RXD 、TXD 、GND )软握手的零 MODEM方式进行单片机和PC 之间的数据通信,即PC 机和单片机的发送数据线(TXD )与接收数据( RXD )交叉连接,二者的的线(GND )直接相连,其它信号线如握手信号线均不用,而接受软件握手。但由于RS-232-C 的规律电对的是对称的,与TTL 、MOS 规律电平完全不同,规律 0 电平规定为 +5 +15V 之间,规律 1 是电平为 -5
34、 -15V 之间,因此利用 MAX232 芯片进行电平转换,电路连接如图11。图 11 RS-232-C 通信连接电路3.6 电源模块本方案接受锂离子手机充电电池和配套的锂电池充电器作为电源,手机用的锂电池电压范畴是 3.6V 到 4.2V ,限定充电电压是4.25V ,完全中意各模块的工作电压范畴。充电器在作为电源的同时也可以对锂电池进行充电,所以系统在离开市电时可正常工作。充电器电路如图 12 所示。图 12 充电电路可编辑资料 - - - 欢迎下载精品名师归纳总结4 软件设计4.1 主程序流程软件部分包括五个部分,对应着系统的五种模式,程序流程如图13 所示。初始化模式选择State=0
35、环境温度模式State=1体温计模式State=2设定模式State=3State=4储存/删除数据 读出数据改状态指示改状态指示改状态指示改状态指示改状态指示读最新温度读最新温度设定温度值储存/删除数据读出数据刷新显示缓冲区数据判定是否刷新显示缓冲区数据刷新显示缓冲区数据储存数据并刷新显示缓冲区数据刷新显示缓冲区数据显示图 13 程序流程图4.2 DS18B20模块程序设计4.2.1 程序流程DS18B20 模块程序主要完成DS18B20 的初始化和温度的读去操作,程序流程如图14所示。4.2.2 程序源码uchar DataH 。uchar DataL 。unsigned long Dat
36、a 。void Delay uchar uswhile -us 。可编辑资料 - - - 欢迎下载精品名师归纳总结bit init_18b20/1820 初始化uchar n=0。bit flag=0 。DQ=1 。_nop_ 。DQ=0 。Delay255 。Delay20 。/550us DQ=1 。Delay55 。ifDQ=0flag=1 。/detect 1820 success. elseflag=0。/detect 1820 fail.Delay100 。DQ=1 。return flag 。void write1820_byte uchar wr/单字节写入uchar i。fo
37、r i=0 。 i=1 。uchar read1820_byte void/ 读取单字节uchar i,u=0 。fori=0 。i=1 。DQ=1 。ifDQ=1u|=0x80。Delay18 。/40usreturnu 。可编辑资料 - - - 欢迎下载精品名师归纳总结/对从 DS18B20 读出的温度值( ddh, ddl )进行处理,送显示缓冲区void DataCodingunsigned char ddH , unsigned char ddLData = ddH * 256 + ddL 。Data = Data * 625 。void Get_temperaruevoidif i
38、nit_18b20 write1820_byte 0xcc 。/skip rom write1820_byte 0x44 。/temp convertDelay35 。if init_18b20 write1820_byte 0xcc 。/skip rom write1820_byte 0xbe 。/read tempDataL = read1820_byte 。DataH = read1820_byte&0x0f。DataCoding DataH, DataL 。DS18B20 初始化DS18B20 是否存在?否是跳过 ROM 匹配温度转换延时跳过 ROM 匹配读暂存器转换为显示码终止可编辑
39、资料 - - - 欢迎下载精品名师归纳总结图 14 DS18B20 模块程序流程图4.3 HS1602 驱动程序设计4.3.1 程序流程HS1602 液晶驱动主要完成HS1602 的初始化以及字符和字符串的显示,程序流程如图15所示。开头1602 液晶模块初始化显示图 15 HS1602 液晶驱动程序流程图4.3.2 程序源码/液晶初始化 void lcd_initvoiddelay_nms15 。lcd_write_command0x38,0 。/显示模式设置三次此时不管 lcd 闲暇与否 delay_nms5 。lcd_write_command0x38,0 。delay_nms5 。lc
40、d_write_command0x38,0 。delay_nms5 。lcd_write_command0x38,1 。/显示模式设置 从今之后均需 lcd 闲暇 lcd_write_command0x08,1 。/显示关闭lcd_write_command0x01,1 。/显示清屏lcd_write_command0x06,1 。/显示光标移动设置lcd_write_command0x0c,1 。/显示开及光标设置/写指令函数 : E= 高脉冲 RS=0 RW=0/command 为指令, wait_en 指定是否要检测 LCD 忙信号void lcd_write_commandunsigned char command,unsigned char wait_enuchar xdata *dig 。ifwait_enwait_enable 。 / 如 wait_en 为 1,就要检测 LCD 忙信号,等待其闲暇dig=&DIGPORT 。*dig=command 。可编辑资料 - - - 欢迎下载精品名师归纳总结/写数据函数 : E =高脉冲 RS=1 RW=0void lcd_write_dataunsigned char char_datauchar xdata