教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

基于单片机设计的智能温度报警器(3)

来源:网络收集 时间:2026-04-07
导读: 4.系统软件设计 4.1 程序结构分析 主程序调用了3个子程序,分别是数码管显示程序、温度信号处理程序、按键设定报警温度程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:

4.系统软件设计

4.1 程序结构分析

主程序调用了3个子程序,分别是数码管显示程序、温度信号处理程序、按键设定报警温度程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示部分。按键设定程序:可以设定低温和高温报警可精确到0.1度。

4.2 系统程序流图

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,其程序流程见图11所示。

通过调用读温度子程序把存入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。

读出温度值 温度计算处理 显示数据刷新 发温度转换开始命令 初次上电 1s到? 调用显示子程序 初始化

图11 DS18B20温度流程图

4.3 DS18B20初始化程序流程图

在DS18B20工作之前需要进行初始化,流程图如下:

发复位命令 发跳过ROM命令 初始化成功 结束

图11 初始化程序流程图

4.4 读温度子程序流程图

读温度子程序的主要功能是从DS18B20中读出温度数据,移入温度暂存器保存。其程序流程图如下:

发复位命令 发跳过ROM命令 发读取温度命令 移入温度暂存器 结束

图12 温度子程序流程图

5 结束语

实现的功能:可设置温度上限高温报警和下限低温报警,报警温度可精确到0.1度,并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面,人性化的按键设置,按键还具有连加、减功能。LCD1602液晶显示的好处能够同时直观的看到实际温度和上、下限报警温度,。 通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。论文有很多不足之处,但这里的可以回忆起曾经的劳动,换回来今天的作品。然而当看着自己的作品,系统能够无误的运行,真是莫大的欣慰。真是酸甜苦辣后的得到成果都是甘甜的。 这次毕业设计的经历使我终身难忘,希望我的设计能够带给师弟师妹们学习这个课程的一个好辅助工具,那么我的辛苦没有白费,经历了这个设计后我学习了很多东西,而中途遇到的困难能够迎刃而解,为我以后遇到困难不畏惧,也为会激励我继续进步。

参考文献

[1]郭惠,吴迅.单片机C语言程序设计完全自学手册[M].电子工业出版社,2008.10:1-200.

[2]王东锋,王会良,董冠强. 单片机C语言应用100例[M]. 电子工业出版社,2009.3:145-300.

[3]Yamato I , et al 1 New conversion system for UPS using high fre2

quency link[J ]1 IEEE PESC ,1988 :210-320.

[4]Yamato I , et al 1 High frequency link DC/ AC converter for UPS

with a new voltage clamper[J ]1IEEE PESC ,1990 :52-105.

部分程序:

#include #include \#include \#define uchar unsigned char #define uint unsigned int

sbit dq = P2^3; //18b20 IO口的定义 sbit beep = P2^4; //蜂鸣器IO口定义 uchar a_a;

uint temperature ; // bit flag_300ms ; uchar key_can;

//按键值的变量

uchar menu_1; //菜单设计的变量 uint t_high = 300,t_low = 100; bit flag_lj_en; bit flag_lj_3_en;

//按键连加使能

//按键连3次连加后使能 加的数就越大了

uchar key_time,flag_value; //用做连加的中间变量 bit key_500ms ; uchar flag_clock;

//温度报警变量

uchar zd_break_en,zd_break_value; //自动退出设置界面 uchar menu_shudu = 20; //用来控制连加的速度

/***********************1ms延时函数*****************************/ void delay_1ms(uint q) { }

/******************把数据保存到单片机内部eepom中******************/ void write_eepom() { }

/******************把数据从单片机内部eepom中读出来*****************/ void read_eepom() { }

t_high = byte_read(0x2001); t_high <<= 8;

t_high |= byte_read(0x2000); t_low = byte_read(0x2003); t_low <<= 8;

t_low |= byte_read(0x2002); a_a = byte_read(0x2055); SectorErase(0x2000);

byte_write(0x2000, t_high % 256); byte_write(0x2001, t_high / 256); byte_write(0x2002, t_low % 256); byte_write(0x2003, t_low / 256); byte_write(0x2055, a_a);

uint i,j; for(i=0;i

for(j=0;j<110;j++);

…… 此处隐藏:701字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于单片机设计的智能温度报警器(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/438888.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)