东北大学秦皇岛分校毕业设计(论文) 第32页
构简单但每个按键必须占用一根I/O口线,在按键数量较多时,I/O 口线的浪费较大,故在按键数量不多时,常采用这种按键电路。
本系统提供四个按键:即查看报警状态,设置报警状态上限,设置报警状态下限,确定键。电路图如图2-12所示,按键分别由CPU的P2.1, P2.2, P2.3, P2.4检测这四个开关量输入。若其中一个有效,程序则转运至相对应的服务程序入口。
图2-12 单片机与按键连接图 按键的操作说明: 1. 查看温度报警值
按K1键,进入查看温度报警状态,此时显示屏第一行显示为“LOOK ALERT CODE”,第二行显示为“TH:0XX℃ TL:XX℃”。其中TH为高位报警值,TL为低位报警值。
按K3键退出查看温度报警状态。 2. 设定温度报警值
按K2键,进入设定温度报警状态,此时显示屏第一行显示“RESET ALERT CODE”,第二行显示“TH:0XX℃ TL:XX℃”。
此时的K1键为设定温度值加、减选择键,默认为减少。即:每按一下K1键,设定温度值键加减的状态将会互换。
K2键为TH值设定键,K3键为TL值设定键。
东北大学秦皇岛分校毕业设计(论文) 第33页
K4键为确定键,按此键退出设定状态。 4.6报警电路
本系统采用单片机直接与LED相连来显示当前系统所处的状态来报警。如图XXXX所示,其中ADD与P0.0口相连,HOLD与P0.1口相连,SUB与P0.2口相连。
报警电路图
报警电路说明:当实际温度值低于温度下限值时,加热报警(红)灯亮,表示当前温度值低于下限值,系统需要加热;相反,当实际温度值高于温度上限值时,降温报警(绿)灯亮,表示当前温度值高于下限,系统需要降温;当实际温度值在两者之间时,保持(黄)灯亮。
东北大学秦皇岛分校毕业设计(论文) 第34页
五 软件功能及框图
5.1主程序
5.2 读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出是需进行CRC校验,校验有错误时不进行温度数据的改写。其程序流程图如图5-2所示: 5.3 温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1 s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图5-3所示 5.4 计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图5-4所示 5.5显示数据刷新程序子程序
显示数据刷新程序子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位位0时将符号显示移入下一位。程序流程图如图5-5所示 5.6按键处理子程序
按键处理子程序通过扫描按键情况,主要完成温度上下限的查看和对其进行设置,程序流程图如图5-6所示
东北大学秦皇岛分校毕业设计(论文) 第35页
开始 LCD初始化 写入报警 上下限值 复位 N DS18B20 存在否? Y 显示 OK 显示 ERROM 读取温度数据 N 温度达到上限? 转换、显示 Y 报警 温度未超上下限? 报警 N 温度达到 下限? Y N Y 键盘扫描 结束
图5-1 主程序流程图

