课间打铃系统设计 - 图文 下载本文

DS18B20温度芯片

独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 ° C至+125 ℃ 。华氏相当于是-67 ° F到257华氏度 -10 ° C至+85 ° C范围内精度为±0.5 ° C

描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数。信息被发送到/从DS18B20 通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

四、程序流程图

开始 初始化LCD1602 初始化定时器T0 初始化中断 读取温度芯片的数据 液晶显示时间,日期 和温度 按下 模式键 按下 加法键 打开背光灯 发DS18B20复位命令 发跳过ROM命令 发启动温度转换命令 发DS18B20复位命令 发跳过ROM命令 发读暂存器指令 读取2字节的温度值 将温度值转换为BCD码送显示缓存、调用显示程序 时间调整 日期调整 闹钟设定 背光时间 系统恢复 按下 加法键 按下 减法键 上下课打铃时间 数值大小变化 EXIT 判断是否到时间 退出 蜂鸣器

五、软件的界面

六、测试结果

根据学校的上下课时间,将该系统的作息时间表设定为 第一二节:08:00—09:20 第 三 节:09:30—10:10 第 四 节:10:30—11:10 第 五 节:11:20—12:00 第 六 节:14:30—15:10 第 七 节:15:20—16:00 第 八 节:16:20—16:50

该课间打铃系统,每当上下课时间蜂鸣器都会播放一首《世上只有妈妈好》的音乐,20秒后音乐自动停止,设定好的闹钟时间蜂鸣器会发出滴答的声音。当背光模式下,屏幕暗下来的时候可以按Key3.4键来恢复正常显示。

下面是该打铃系统的测试效果: