《基于单片机多路温度采集系统设计(附程序)》11000字(论文)_第1页
《基于单片机多路温度采集系统设计(附程序)》11000字(论文)_第2页
《基于单片机多路温度采集系统设计(附程序)》11000字(论文)_第3页
《基于单片机多路温度采集系统设计(附程序)》11000字(论文)_第4页
《基于单片机多路温度采集系统设计(附程序)》11000字(论文)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[22],对初学者要求不是很高,可以在Keil软件中编写,在和仿真软件调试时容易改动,方便对程序的修订和完善,软件界面如图10所示。图11开发软件界面4.2系统主程序设计本次多路温度检测系统设计,核心采用单片机进行控制,外设传感器只有四个温度DS18B20来对多点温度进行测量,设计通过按键进行相关安全值的设置,且具有声光报警功能是。实物上电后,屏幕,温度传感器进行初始化操作,然后屏幕进行温度信息的采集,同时判断是否有按键按下,是否需要对案件值进行设置,是否会进行报警指示,这便是设计的一个程序的循环过程。图12主程序流程图4.2LCD显示电路设计设计温度采集数值的大小,设置跳转界面将显示在LCD1602上,对于液晶模块驱动程序来说,上电后,屏幕进行初始化,紧接着定位显示的行与列,调用相应的液晶转换程序,完成设计的功能要求,显示程序框图如下所示:图13显示模块程序框图4.3体温测量程序设计单片机里的DS18B20温度传感器将测量到的温度数据传递出来,是以数字的方式显示的。首先进行系统初始化,然后,使用单片机的内部系统来计算温度,然后LCD1602液晶显示器上就会显示出最后所得温度。温度检测流程图如图13所示:图14DS18B20程序设计框图

5系统测试及实现经过上述对设计的介绍说明,通过AD软件设计出系统的原理图,根据原理图,在KEIL软件中编写出设计的驱动程序,本章节作为设计的收尾章节将进行实物的焊接与调试,对设计的原理及程序作出最后的完善,增强设计的实用性,功能性。5.1系统仿真测试系统仿真测试,实物的焊接做好准备,提高设计的可行性,根据第三章搭建的系统原理图,进而搭建出设计的仿真图,将生成的.hex文件进行仿真的烧录,然后进行相信你功能的验证。图15系统仿真图仿真通电后,屏幕显示4路温度值,通过加热没一路传感器,进而屏幕的数值也发生改变。图16温度显示图通过按键可以设置温度的报警值,4路检测的温度值,只要有一路大于设置的安全温度,则蜂鸣器报警,相应的指示灯点亮。图17设置界面图可以通过按键进行没一路温度值的查看,切换等。图18报警检测图5.1焊接前准备工作在实物调试焊接之前首先进行硬件的焊接,焊接实物之前要对各个硬件模块的特性,原理进行了解,查看相关的设计参数,将直插型元件焊接在万用板上。软件方面:对于软件的调试,主要通过keil编程软件的调试,排查简单的程序错误,在软件中进行编译,下载。知道出现0报错位置。紧接着将生成的.HEX文件进行烧录,在实物中进行调试。图19软件调试界面硬件方面:首先了解设计所用到的各个元器件。了解其硬件属性,分清楚正负极。查询设计用到的数码管,按键,单片机相关的引脚端口配置,了解相关的电路知识,焊工技能,为实物的搭建做好准备。紧接着便可以进行实物的焊接。5.2系统硬件调试根据设计原理图焊接要系统实物后,紧接着对设计的测温功能,温度显示采集功能,按键控制功能,声光报警功能进行验证,测试过程如下所示:设计可以进行多路温度的检测,检测的结果可以显示在液晶屏幕上,进行温度传感器的验证时,总打火机烧一下温度传感器,看屏幕的温度数值是否发生变化,经过验证设计测温完全符合人物要求,检测界面如下所示:图20温度采集功能验证设计具有五个按键,这五个按键可以对四路温度的上下限进行设置,同时可以进行每一路温度的查看,经过测试,按键执行完全符合设计要求。紧接着对声光报警功能进行验证,设计一共具有4路温度检测,4个报警指示灯,不管那路温度超抄,都会进行蜂鸣器报警,经过单独对每一路温度进行测量,最终完成该模块功能的验证。经过对这几大模块功能的验证,设计功能完全符合设计要求,到此便可宣布设计功能的完成。结束语经过几个月的努力,本次基于单片机多路温度检测系统设计完成较顺利。从设计刚开始的选题,硬件选型,电路设计,再到软件设计,到最后的测试焊接,这个过程花费了我大量心血。再次器件。我复习了模电,数电的相关知识,复习了C语言,学会使用万用表进行电路检查,连接元器件的各个特性,了解一个工程完成的必要过程。再次器件,我了解的单片机的原理,IO配置等,是我对其产生浓厚的兴趣。在软件方面,我熟悉的掌握了KEIL编程软件,PROTEUS仿真软件,AD绘图软件,这些经验都为我以后做工程提供了丰富的实践经验。本次多路温度检测系统设计的完成,让我了解到单片机的强大,本设计最主要是通过DS18B20进行温度的检测,设计的核心在于可以进行多路温度的检测,程序的编写自己电路的设计,再次期间我复习了之前的模电,数电的相关知识,了解到C语言的强大,提高了我的动手能力,了解了项目完成的基本过程,对我今在完成设计的过程中,需要足够的耐心进行功能的调试,完善,我也遇见了很多问题,最后在我的坚持下,都进行结论。本次设计的完成为我今后从事该行业奠定了基础,积累了经验。最后,对于本次设计而言,还存在更多的不足,手机充电不是很稳定,太阳能板子功率太小等,这些地方都有需改进。设计与物联网的结合将是必然的趋势,这份任务将会由今后的我们去完成。

参考文献[1]公伟军,李建军.

多路巡回式智能温度检测系统的研究[J].高师理科学刊.

2018(08)[2]李兰英,王培东,李霄燕.8098单片机在温度检测系统中的应用[J].

哈尔滨电工学院学报.

2017(04)[3]杨博.基于51单片机的温度检测系统的设计与探讨[J].电子世界.

2018(06)[4]史丽娟,李晴,王露,钱声强.

商场环境温度检测系统的设计与实现[J].

常州信息职业技术学院学报.

2020(03)[5]赵晓光.单片机温度控制系统方案的研究[J].

科技传播.

2019(03)[6]王伟,李树荣.

基于8051单片机温度采集及无线发送[J].

现代电子技术.

2019(01)[7]刘晓春.基于单片机、温度传感器的温度智能控制系统的设计[J].

电子世界.

2020(09)[8]郑春来,韩团军,贾建科.

带日历时钟的实时温度检测系统设计[J].

科技广场.

2018(07)[9]段鹏宇,李姿.基于STC89C52的智能温控风扇设计[J].

湖北农机化.

2019(10)[10]郑争兵.

基于单片机与AD590的温度测量报警系统[J].

国外电子测量技术.

2020(01)[11]李鑫宇,肖雪.

基于单片机的温度控制系统设计研究[J].通信电源技术.

2018(02)[12]李旭鹏,董燚,许建华,张超.

基于单片机的智能温度控制系统设计[J].

电子质量.

2020(02)[13]谢运祥,电力电子单片机控制技术[M].机械工业出版社,2019[14]传感器技术.王洪业.湖南科学技术出版社.2019[15]赵小兰、胡征·单片机原理及系统设计[J]电子测试,2019[16]孙宝元、杨宝清·传感器及其应用手册北京大学出版社,2020[17]郑人杰·计算机软件测试技术北京:清华大学出版社,2019

[18]胡汉才·单片机原理及系统设计北京:清华大学出版社,2020[19]王明文·软件设计模式及其使用[J]清华大学出版社,2019[20]任强·传感器选用原则计量工作,2019[21]Sensortechnology.WangHongye.HunanScienceandTechnologyPress.2019[22]ZhaoXiaolan,HuZheng.Principleandsystemdesignofsinglechipmicrocomputer[J]electronictest,2019[23]SunBaoyuan,YangBaoqing,sensoranditsapplicationmanual,PekingUniversityPress,2020[24]ZhengRenjie.Computersoftwaretestingtechnology.Beijing:TsinghuaUniversityPress,2019

[18]HuHancai.Principleandsystemdesignofsinglechipmicrocomputer.Beijing:TsinghuaUniversityPress,2020[25]WangMingming,softwaredesignpatternanditsapplication[J]TsinghuaUniversityPress,2019[26]张俊谟·单片机中级教程原理与应用北京航空航天大学出版社,2020[27]徐波译·C专家编程人民邮电出版社,2018[28]李全利·单片机原理及应用技术北京:高等教育出版社,2018[29]李维提、郭强·液晶显示应用技术北京:电子工业出版社,2017[30]HamldStone·MieroeomPuterInterfaeingUniversityofMassachusetts,2019[31]MeehanJoanne·SCMinMerseysideTQMJournal,2018附录附录A系统原理图附录B源程序//此函数提供与屏幕显示相关的函数及声明#defineucharunsignedchar //宏定义#defineuintunsignedint//管脚定义sbitrs=P2^6;sbitlcden=P2^7; //液晶的两个控制引脚ucharcodetable0[]="Happyeveryday!";ucharcodetable1[]="Myfriends"; //开机显示界面ucharcodetable2[]="T:.C";ucharcodetable3[]="H:CL:C"; //开机后初始化显示界面固定字符voiddelay_LCD(uintz) //延时函数,大约延时zms{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}//LCD写命令voidwrite_com(ucharcom){ rs=0; //rs置0 lcden=0; //en置0 P0=com; //P0口输出数据 delay_LCD(1); //延时 lcden=1; //en置1 delay_LCD(1); //延时 lcden=0; //en置零}/*********************************************************///1602液晶写命令函数,cmd就是要写入的命令/*********************************************************/voidLcdWriteCmd(ucharcmd){ LcdRs_P=0; LcdRw_P=0; LcdEn_P=0; P0=cmd; DelayMs(2); LcdEn_P=1; DelayMs(2); LcdEn_P=0; }/*********************************************************///1602液晶写数据函数,dat就是要写入的数据/*********************************************************/voidLcdWriteData(uchardat){ LcdRs_P=1; LcdRw_P=0; LcdEn_P=0; P0=dat; DelayMs(2); LcdEn_P=1; DelayMs(2); LcdEn_P=0;}/*********************************************************///1602液晶初始化函数/*********************************************************/voidLcdInit(){ LcdWriteCmd(0x38);//16*2显示,5*7点阵,8位数据口 LcdWriteCmd(0x0C);//开显示,不显示光标 LcdWriteCmd(0x06);//地址加1,当写入数据后光标右移 LcdWriteCmd(0x01);//清屏}/*********************************************************///液晶光标定位函数/*********************************************************/voidLcdGotoXY(ucharline,ucharcolumn){ //第一行 if(line==0) LcdWriteCmd(0x80+column); //第二行 if(line==1) LcdWriteCmd(0x80+0x40+column);}/*********************************************************///液晶输出字符串函数/*********************************************************/voidLcdPrintStr(uchar*str){ while(*str!='\0') LcdWriteData(*str++);}/*********************************************************///液晶输出数字/*********************************************************/voidLcdPrintNum(uintnum){ LcdWriteData(num/100+0x30); //百位 LcdWriteData(num%100/10+0x30); //十位 LcdWriteData(num%10+0x30); //个位}//LCD写数据voidwrite_date(uchardate){ rs=1; //rs置1 lcden=0; //en置0 P0=date; //P0口输出数据 delay_LCD(1); //延时 lcden=1; //en置1 delay_LCD(1); //延时 lcden=0; //en置0}/*********************************************************///按键扫描/*********************************************************/voidKeyScanf(){ uchari; uchardat1,dat2; if(KeySet_P==0) //判断是否有按键按下 { DelayMs(10); //消除按键按下的抖动 while(!KeySet_P); //等待按键释放 DelayMs(10); //消除按键松开的抖动 LcdGotoXY(1,2); //液晶第二行刷新显示 LcdPrintStr("alarm=cm"); LcdGotoXY(1,8); //显示当前的报警值 LcdPrintNum(gAlarm); i=1; while(i) { if(KeyDown_P==0) //报警值减的处理 { DelayMs(300); if(gAlarm>2) gAlarm--; LcdGotoXY(1,8); LcdPrintNum(gAlarm); } if(KeyUp_P==0) //报警值加的处理 { DelayMs(300); if(gAlarm<400) gAlarm++; LcdGotoXY(1,8); LcdPrintNum(gAlarm); } if(KeySet_P==0) //再次按下设置键的判断 { DelayMs(10); //消除按键按下的抖动 while(!KeySet_P); //等待按键释放 DelayMs(10); //消除按键松开的抖动 LcdGotoXY(1,0); //液晶恢复测量时的内容显示 LcdPrintStr("S=cm"); i=0; } } dat1=gAlarm/100; dat2=gAlarm%100; Sector_Erase(0x2000); EEPROM_Write(0x2000,dat1); EEPROM_Write(0x2001,dat2); } }//温度显示//add轮流中的组号voidData_WD(uintData,ucharFH,ucharAdd,ucharTEM_H,ucharTEM_L,bitZFH,bitZFL,ucharset){ write_com(0x80+1); //选中第一行第一位 write_date(0x31+Add); //显示路数 write_com(0x80+3); //选中第一行第三位 if(FH==0) //零上 { write_date(''); //不显示符号 } else //零下 { write_date('-'); //显示负号 } if(Data/100==0) //温度的百位为0时 { write_date(''); //不显示 } else //不为0时正常显示字符 { write_date(Data/100+0x30);//显示数字,根据LCD液晶的手册可知,数字对应的地址就是对应的数字加上0x30 } write_date(Data/10%10+0x30); //显示温度的10位 write_com(0x80+7); //选中第一行第七位 write_date(Data%10+0x30); //显示个位 write_date(0xdf); //显示° write_com(0x80+0x40+2); //显示第二行第二位 if(shanshuo==0||set!=1) //闪烁标志位为0时或者不是设置上限时 { if(ZFH==0) //零上 { write_date(''); //不显示 } else //零下 { write_date('-'); //显示负号 } if(TEM_H/10==0) //限值十位数为0 { write_date(''); //不显示 } else //不为0时 { write_date(TEM_H/10+0x30);//正常显示对应数字 } write_date(TEM_H%10+0x30); //显示个位 } elseif(shanshuo==1&&set==1) //闪烁标志位为1时且在设置上限时 { write_date(''); write_date(''); write_date(''); //关闭显示 } write_date(0xdf); //显示° write_com(0x80+0x40+11); //以下注释参考上面,略 if(sha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论