单片机课程设计 - 图文 下载本文

南华大学电气工程学院课程设计(论文)

把DS18B20的数据引脚和单片机的一个IO接口接上即可。原理如图所示:

图2.13 DS18B20原理图

DS18B20通过编程,可以实现最高12位的温度存储,在寄存器中以补码格式存储如图所示:

图2.14 DS18B20的数据存储格式

一共 2 个字节, LSB 是低字节, MSB 是高字节,其中 MSb 是字节的高位, LSb 是字节的低位。大家可以看出来,二进制数字,每一位代表的温度的含义,都表示出来了。其中 S表示的是符号位,低 11 位都是 2 的幂,用来表示最终的温度。 DS18B20 的温度测量范围是从-55 度到+125 度,而温度数据的表现形式,有正负温度,寄存器中每个数字如同卡尺的刻度一样分布,如图所示: 表2.15 DS18B20的温度值

第14页,共69页

南华大学电气工程学院课程设计(论文)

二进制数字最低位变化 1,代表温度变化 0.0625 度的映射关系。当 0 度的时候,那就是0x0000,当温度 125 度的时候,对应十六进制是 0x07D0,当温度是零下 55 度的时候,对应的数字是 0xFC90。反过来说,当数字是 0x0001 的时候,那温度就是 0.0625 度了。 DS18B20的操作指令:

(1) Skip ROM:0xCC。当总线上只有一个温度传感器是就可以使用这个

指令跳过ROM检测。 (2) RAM存储器操作指令。

Read Scratchpad(读暂存器):0xBE。 Convert Temperature(启动温度转换):0x44。

当我们发送一个启动温度转换的指令后, DS18B20 开始进行转换。从转换开始到获取温度, DS18B20 是需要时间的,而这个时间长短取决于 DS18B20 的精度。前边说 DS18B20 最高可以用 12 位来存储温度,但是也可以用 11 位, 10 位和 9 位一共四种格式。位数越高,精度越高, 9 位模式最低位变化 1 个数字温度变化 0.5 度,同时转换速度也要快一些,如图所示:

图2.16 DS18B20的温度转换时间

第15页,共69页

南华大学电气工程学院课程设计(论文)

2.2.3 数码管显示电路

图2.17 数码管电路

因为单片机IO的驱动能力不够,所以在数码管的驱动电路里我们加上了三极管,作为开关,由数码管控制通断,来由电源直接驱动。段选脚串如一个200欧的电阻来减小流入单片机的电流。数码管是通过动态刷新来显示。

第16页,共69页

南华大学电气工程学院课程设计(论文)

2.2.4 按键原理图

图2.18 按键电路

按键的实现是通过单片机轮询每个按键来确定按键的状态的,单片机IO引脚设置为上拉输入模式,如果有按键按下,单片机IO将输入低电平,一般状态为高电平,在软件部分我们用了统计的方法来进行消抖。

2.2.5 蜂鸣器原理图

由于蜂鸣器所需电流比较大,所以我们使用了一个PnP三极管作为开关来驱

动蜂鸣器,原理是一旦IO口输出低电平时三极管导通,如果IO输出高电平时三极管关断,蜂鸣器停止鸣叫。

第17页,共69页