基于单片机设计的智能温度报警器(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
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++);
相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




