单片机DS18B20数字温度计课程设计报告 下载本文

的/PSEN信号将不出现。

EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)

XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 XTAL2:片内振荡器反相放大器的输出端。 3.3显示电路LM016L

LM016L的结构及功能:

LM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,

CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,可查找参考书。CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符。

图3-3 引脚图

LM016L引脚功能说明: Vss(1脚):一般接地。 Vdd(2脚):接电源。 Vee(3脚):液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

RS(4脚):RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

9

R/W(5脚):R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

E(6脚):E(或EN)端为使能(enable)端,下降沿使能。 DB0(7脚):底4位三态、 双向数据总线 0位(最低位)。 DB1(8脚):底4位三态、 双向数据总线 1位。 DB2(9脚):底4位三态、 双向数据总线 2位。 DB3(10脚):底4位三态、 双向数据总线 3位。 DB4(11脚):高4位三态、 双向数据总线 4位。 DB5(12脚):高4位三态、 双向数据总线 5位。 DB6(13脚):高4位三态、 双向数据总线 6位。 DB7(14脚):高4位三态、 双向数据总线 7位(最高位)(也是busy flang)。 寄存器选择控制如表3-1。

表3-1寄存器选择控制

RS 0 0 1 1 R/W 0 1 0 1 操作说明 写入指令寄存器(清除屏等) 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值 写入数据寄存器(显示各字型等) 从数据寄存器读取数据 3.4 蜂鸣器报警

蜂鸣器的工作原理:蜂鸣器的端口定义为P2.2,其原理根据将蜂鸣器的一端接高电平,另一端接至P2某一脚,编写的简单程序使那一脚为低电平即可使其发出声音,否则不响。同时,在上下限报警时LCD显示“LOW!”或“HOT!”。

图3-4 蜂鸣器引脚图

3.5 DS18B20传感器

1.DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

10

图3-5 DS18B20内部结构

2.DS18B20引脚定义:

(1)DQ为数字信号输入/输出端;

存储器与控制逻辑64位ROM和单线接口Vdd温度传感器高温触发器TH高速缓存低温触发器TL配置寄存器8位CRC发生器(2)GND为电源地;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

图3-6 DS18B20引脚图 3.DS18B20工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。

低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,

11

二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。DS18B20温度数据表如表3-2所示:

表3-2:DS18B20温度数据表 TEMPERTURE +125℃ +85℃ +25.0625℃ +10.125℃ +0.5℃ 0℃ -0.5℃ -10.125℃ -25.0625℃ -55℃ DIGALOUTPUT (Binary) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 DIGITALOUTPUT (Hex) 07D0h 0550h 01991h 00A2h 0008h 000h FFF8h Ff5Eh FE6Fh FC90h 4.DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存器。配置寄存器各位字节的意义如下表3-3:

表3-3: 配置寄存器结构 TM R1 R0 1 1 低五位一直都是\,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用 户不要去改动。R1和R0用来设置分辨率,如下表3-4所示:(DS18B20出厂时被设置为12位)

表3-4: 温度分辨率设置表 R1 0 0 1 1 R0 0 1 0 1 分辨率 9位 10位 11位 12位 温度最大 转换时间 93.75ms 187.5ms 375ms 750ms 5.高速暂存存储器 高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算: 当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。

12