毕业设计论文_基于单片机的数字温度计设计
图4.1 主程序流程图
4.2 读出温度子程序
读出温度子程序的主要功能是读出RAM 中的9 字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2示:
发DS18B20复位命令
Y 发读取温度命令 读取操作、CRC校验 Y N 9字节完
CRC校验正 Y N 移入温度暂存器 结束 毕业设计论文_基于单片机的数字温度计设计
图4.2 读出温度子程序流程图
4.3 温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时转换时间约为750ms,在本程序设计中采用1s 显示程序延时法等待转换的完成。温度转换命令子程序流程图如图4.3 所示:
发DS18B20复位命令 发温度转换开始命令 结束 图4.3 温度转换命令子程序流程图
4.4 计算温度子程序
计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图4.4 所示。
开始 温度零下? Y N
温度值去补码置“1”标志 置“0”标志位 计算小数位温度BCD值
计算整数位温度BCD值 结束 图4.4 计算温度子程序流程图
毕业设计论文_基于单片机的数字温度计设计
4.5 显示数据刷新子程序
显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图4.5所示。
温度数据移入显示寄存器 分离显示温度 标志位为”1” Y N 最高温度显示分离出的数据 最高显示“-“ 结束 图4.5 显示数据刷新子程序流程图
4.6 报警子程序
设置报警标志位位beep,当温度大于设置的高限报警值或低于设置的低限报警值是,beep=1报警;当温度值在正常范围内时,beep=0.报警流程图如图4.6所示:
读取测量温度值 N 温度值>120或<20? Y Beep=0 Beep=1,报警 图4.6 报警子程序流程图
4.7 按键扫描处理子程序
按键采用扫描查询方式,设置标志位,当标志位为1 时,显示设置温度,否则显示当前
毕业设计论文_基于单片机的数字温度计设计
温度。当按下K1 键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,按K2或K3分别对报警温度进行加一或减一。当再次按下K1 键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按K2或K3分别对报警温度进行加一或减一。当第三次按下K1 键时,退出温度报警线设置。显示当前温度。如下图4.7所示。
K1键按下 K2键是否按下? N K3键是否按下? N N 报警温度加1 报警温度减1 显示切换标志位是否为0 Y
调用显示子程序 图4.7 按键扫描处理子程序流程图
5. Protues仿真
5.1 Protues测温仿真
毕业设计论文_基于单片机的数字温度计设计
通过仿真软件验证该原理图的可行性。采用protues软件对电路仿真,可以得到预期效果。数码管仿真图如图5.1所示。温度传感器的仿真效果图如图5.2所示,此图验证了传感器的温度与数码管显示的数字一致。
C1U130pf19XTAL11P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161723456789RP1R110kX1C230pfCRYSTAL18XTAL29RSTR6250RESPACK-8R7250C310uF293031PSENALEEAR8250R9250K1R24.7kR34.7kR44.7kK212345678K3P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52R51kU2321VCCDQGNDDS18B2022.0Q1PNPLS1SPEAKER图5.1 数码管仿真图 321U2VCCDQGNDDS18B2022.0图5.2 温度传感器的仿真效果图
5.2 温度报警线设置仿真
如图5.3是第一次按下K1键显示的上限温度报警值,此时按K2或K3键分别对上限温度
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的数字温度计设计(2)在线全文阅读。
相关推荐: