版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/温度限制系统设计题目:基于51单片机的温度限制系统设计姓名:应连兄吕伟学院:工学院专业:自动化班级:自动化121、122学号:3221211032212206导老师:胡飞吕成绪职称:讲师2014年10月29日南京农业高校教务处制摘要: 3一、系统设计 41.1项目概要 41.2设计任务和要求: 4二、硬件设计 52.1硬件设计概要 52.2信息处理模块 52.3温度调整模块 62.3.1传感器DS18b20简介 62.3.2试验模拟电路图 72.3.3程序流程图 82.3.4仿真图模型82.4报警电路模块 9信号灯 9蜂鸣器报警 102.5电机旋转模块 122.6秒表刚好模块122.7显示模块12三、仿真后,部分显示成果 13四、两周实习总结 15五、参考文献 17六、附录 176.1原理图 176.2参考程序………...17摘要:随着社会发展的脚步,在各行各业追求经济效益已成为首要任务。在工农业以原始的运行方式逐步发展为自动化的过程中,无论是在哪个阶段对影响生产效率的某一因素如温度,时间,湿度·······实现定量的限制,直观的显示会大大提高人类劳动力的价值,增加经济效益。本次实习设计是基于51单片机限制,将DS18b20温度传感器实时温度转化,通过1602液晶对本程序设计的温度——高温40摄氏度,低温30摄氏度实行实时显示,由MP28GA步进电机的顺时针转动(温度高于40摄氏度)和逆时针旋转(温度低于30摄氏度)直观的、动态的显示,并由高温、低温报警信号灯以及蜂鸣器对温度实现进一步的显示,以达到对温度的自动限制。试验结果显示,此设计能达到效果并将温度作进一步的精确。关键字:51单片机;DS18b20传感器;LCD1602液晶;MP28GA步进电机Abstract:With
thepaceofsocialdevelopment,
thepursuitofeconomic
benefits
inallwalksoflife
hasbecomeataskoftoppriority.
Inindustryandagriculture
torun
theoriginalwayof
theprogressivedevelopmentof
automation
intheprocess,whetheritis
thestageatwhich
influenceonthe
productionefficiency
ofacertainfactorssuchastemperature,
time,
humiditycontrol
--
-----
toachievequantitative,
intuitivedisplay
willgreatlyenhancethe
value
ofhuman
labor,increaseeconomicbenefits.
The
practice
ofdesign
isbasedon51MCUcontrol,DS18b20
temperaturesensor
realtimetemperature
transformation,
throughthe1602liquidcrystal
on
theprogramdesign
oftemperature,
temperature40degreesCelsius,
lowtemperature
of30degreesCelsius
toimplement
real-timedisplay,
bythe
motor
torotateclockwise
(temperatureabove40
degreesCelsius)and
counterclockwise
(temperature
below30
degreesCelsius)
intuitive,
dynamicdisplay,
andbythe
hightemperature,
lowtemperaturealarm
signal
lampandbuzzer
achievefurther
display
of
temperature,
inordertoachieve
theautomaticcontroloftemperature.
Experimentalresultsshowthat
thisdesign
canachievetheresult
andthetemperature
further
precise.Keyword:monolithicintegratedcircuit;Sensors;DS18b20;LCD1602LCD;MP28GAsteppermotor一、系统设计1.1项目概要在工农业生产过程以及日常生活中温度限制系统起着特殊重要的作用。在构建资源节约型,环境友好型的社会进程中,保证资源的不奢侈是至关重要的,就温度来说,温度的过高过低不仅会影响生产效率,带来资源的奢侈,而且会给工作人员的平安带来确定的隐患。为了在各方面收到令人满意的效果,本次的基于AT89S52的单片机温度限制系统具有许多优点,能通过步进电机的正传反转直观的显示系统是处于高温状态还是低温状态,能通过LCD液晶上的显示时间知道温度过高过低的持续时间,具有很好的应用价值和应用前景。1.2设计任务和要求:接受DS18B20作为温度传感器进行温度检测(本设计中接受手动调整温度的凹凸);在LCD上显示温度;用步进电机的正传、反转对应所设计的高温、低温;在LCD上显示秒表以检测从系统起先时温度达到高温、低温时所用时间,计算出系统超过凹凸温的时间;在所设温度上下限的前提下超过最高温度或低于最低温度时通过LED、蜂鸣器报警。二、硬件设计2.1硬件设计概要依据应用、设计、项目需求,将此系统分为以下几个模块,分别是信息处理模块,温度调整模块、报警电路模块、电机旋转模块、秒表计时模块,显示模块。2.2信息处理模块AT89S52是ATMEL公司的以8031核构成的8位Flash单片机系列。这个系列单片机的最大特点就是在片内含有Flash存储器,AT89S52单片机是一种低功耗高性能的CMOS8位微限制器,内置8KB可在线编程闪存。该器件接受Atmel公司的高密度非易失性存储技术生产,其指令和工业标准的80C51指令集兼容。片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。通过把通用的8位CPU和可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。它的应用范围广,可用于解决困难的限制问题,且成本较低。单片机模块如图(1)所示。图(1)单片机模块2.3温度调整模块2.3.1传感器DS18b20简介DALLAS最新单线数字温度传感器DS18b20简介新的“一线器件”,体积更小、适用电压更宽、更经济。Dallas半导体公司的数字化温度传感器DS18b20是世界上第一片支持“一线总线”接口温度传感器。一线总线独特而且经济的特点,运用户可轻松地组建传感器网络,为测量系统的构建引入全新的概念。DS18b20、DS1822“一线总线”数字化温度传感器同DS1820一样,DS18b20也支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为0.5℃。DS18b20的精度较差为2℃。现场温度干脆以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境限制、设备或过程限制、测量类消费电子产品等。和前一代产品不同,新的产品支持3V~5V的电压范围,使系统设计更灵敏、便利。而且新一代产品更便宜,体积更小。DS18b20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18b20的试验板原理接线图如图(2):图(2)DS18b20的试验板接线图其中:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)2.3.2试验模拟电路图温度检测限制模拟电路图ds18b20原件及其连线如图(3)温度此传感器上显示的温度同步显示到LED显示器上,并有加温,减温按钮。图(3)温度检测限制模拟电路图2.3.3程序流程图图(4)主程序流程图2.3.4仿真图模型化:图(5)仿真模型图2.4报警电路模块2.4.1.信号灯:依据所设温度的不同,当LCD显示的温度超过所设的最高温度40摄氏度时led灯D1闪烁,当LCD显示的温度低于所设的最低温度30摄氏度时led灯D2闪烁,已达到警示温度的效果。图(6)LED报警灯2.4.2.蜂鸣器报警依据所设温度,当LCD显示的温度超过所设的最高温度40摄氏度或低于最低温度30摄氏度时,蜂鸣器都会响,以达到高温或低温的报警效果,有助于爱惜工作人员的人身平安,爱惜机器设备,削减不必要的损失。图(7)蜂鸣器2.5电机旋转模块依据所设温度的不同,当LCD显示的温度超过所设的最高温度40摄氏度时,步进电机顺时针转动(程序里所设);当LCD显示的温度低于所设的最低温度30摄氏度时,步进电机逆时针旋转,当LCD显示的温度在30至40摄氏度(程序所设)时,步进电机停止转动。 图(8)电机旋转图2.6秒表计时模块程序起先执行后,LCD先显示组员的学号和姓名,随后在LCD的第一行显示温度,其次行显示时间,程序所设初始时间是23:59:56,由此时间起先秒表的显示,目的是知道程序起先运行后经过多长时间温度达到了最高值,并计算出达到最高温度后所经过的时间,以提示相关工作人员留意温度的调整,节约电,从而达到节约资源和能源的效果。图(9)秒表显示图2.7显示模块。通过采集ds18b20的温度,以及程序所设的温度值,将采集到的温度同步显示到LED显示器上,精确到小数点后第一位。如下图 图(10)显示电路三、仿真后,部分显示成果图(11)启动时显示学号和姓名拼音的缩写图(12)随后显示温度(精确到小数点后一位)以刚好钟功能图(13)温度达到40度时,高温报警启动,D1亮,蜂鸣器鸣叫,同时步进电机正转图(14)温度达到30度时,低温报警启动,D2亮,蜂鸣器鸣叫,同时步进电机反转图(15)当温度在30和40度之间时,仅仅显示温度和时间,报警灯不亮,步进电机不转,蜂鸣器也不响四、两周实习总结 这次单片机实习我们的题目是温度检测。老师一共给出了三个题目,我们通过抽签抽到了这个题目。起初刚拿到这个题目时真的是一点儿头绪都没有,虽然上学期学了单片机,但这个温度传感器DS18B20却是一点都不了解,感觉无从下手。好在老师给了许多资料,无奈之下,只有一点一点的看,一点一点的学,还有不会的就去网上找视频看。前两三天几乎都没动手起先做,等到弄得差不多懂了的时候才起先动手设计。我们刚起先是先做最简洁的功能即显示温度。虽然简洁但也遇到了一些问题,但都是一些变量定义的问题,所以还是解决掉了。接着我们就起先往上加功能,我们加了一个时钟和电机,显示温度时显示时间,高温报警时,电机正传,低温报警时,电机反转。其中让我印象最深刻的就是画仿真图时,把两个芯片的引脚干脆接在了一起,在仿真时不管怎么弄电机就是不转,我们也是很困惑。后来发觉引脚端的电平没变更,始终是灰的,才意识到两个芯片根本没有连好。另一个问题就是时钟模块时间总是走不准,通过向大神的请教才知道是电机程序的循环占了确定的执行时间导致定时器的定时不准。通过整个实习,我们遇到过许多问题,但通过我们的努力我们还是一个个的解决掉了,整个项目完成时,没有感觉到累,反而是特殊的激烈,感觉很有成就感。通过这个实习,学到了许多,也收获了许多。 虽然说单片机实习结束了,但觉得它对我们以后的就业的确有很大帮助,就这次实习过程中所了解的,虽然上位机没有做成功,但的的确确感受到了单片机的强大,也感受到了单片机的作用,以前虽然学过单片机的课程但“上位机”三个字听都没听过,别说自己揣摩着作,这次还是从别的同学那里听到的,自己也着手做了一点,但由于时间缘由没有做成功,这一点感到特殊的缺憾,不过以后还是有时间的,可以在接下来的时间里好好琢磨单片机的相关学问,希望在以后的工作和学习中以及生活中用到,真真做到学以致用。这次的实习相比以往有许多不同的地方,首先是分组的状况,以前一般都是和自己熟悉的或学号挨着比较近的学生一个小组,但这次我和二班的同学一组,虽然说我们都不是学霸,但我们没有放弃,照旧以自己的进度来完成本次实习,虽然说在学习的过程中遇到了许多问题,如程序报错,仿真电路图有错,步进电机不转等等,这些问题我们先解决,假如是在解决不了就找其他同学帮忙调解然后明白自己错在了哪里,这样一步步的下来的确学到了不少东西。以前觉得特殊难的单片机经过这次的实习也没觉得很难,即使单片机的只是很丰富。总的来说自己对这次的实习还是可以的,获得了许多书本上的学问,获得了许多实践的学问,获得了许多无法在课堂上学到的东西。本次实习也算是高校的最终一次是实习,我们小组一起探讨过,思索过,也为了一个小问题苦恼过,如LED灯不亮,蜂鸣器不响,步进电机不转,LCD上温度显示不稳定,秒表显示不出来等等,两周下来,看自己做的设计虽然说没有达到自己特殊想要的结果,但还是令人欣喜的,因为我们解决了遇到的种种问题,虽然说有些问题不是我们自己解决的,但还是突破了障碍,做到了最终一步,还是特殊感谢这次实习的机会,能够综合的熬炼我们的实力,提高自己的动手实力,设计思维,总牢固力,这给我们今后的工作带来了确定的好处。通过做上位机真实的感受到了单片机,VC的强大,在学问的海洋里我们恒久是渺小的,饥渴的,还有许多学问等待我们去学习,还有许多惊喜等着我们自己去挖掘,学习才有收获,实践才能锤炼学问,多学习,多实践,多收获。五、参考文献[1]郭天祥.新概念51单片机C语音教程——入门提高开发拓展攻略 [M].北 京:北京:电子工业出版社,2009.[2]韩广兴.电子元器件和好用电路基础[M].北京:电子工业出版社,2005.[3]方大千,朱丽.电子限制系统装置制作入门[M].北京:国防出版社,2006.[4]刘向举,刘丽娜.基于单片机的智能温度测控系统的设计[J].齐齐哈尔大 学学报(自然科学版).2012(03)[5]黄文力,邓小磊.DS18B20数字温度传感器接口程序的时序[J].仪器仪表 用户.2011(06)[6]黄晓林.一种好用型智能恒温限制系统设计[J].自动化技术和应用. 2011(11)[7]王文,王直.基于ARM和DS18B20的温度监测系统[J].电子设计工程. 2011(20)[8]陈锡华,贾磊磊.温度传感器DS18B20序列号批量搜寻算法[J].单片机和 嵌入式系统应用.2011(09)六、附录6.1原理图6.2参考程序6.2.1main.c:#include<reg52.h>#include<intrins.h>#include<stdio.h>#include"lcd.h"#include"temp.h"#define_Nop()_nop_()//定义空指令#defineucharunsignedchar#defineuintunsignedintunsignedchardate[]="32212206lvwei";unsignedchardate1[]="32212110ylx";unsignedchartime[]="TIME23:59:55";ucharDateTime[7];unsignedcharint_time;unsignedcharsecond=55,minute=59,hour=23;uinttvalue;uchari=0;sbitSPK=P1^7;/********************************************设置LCD位置*********************************************/voidSET_LCD_POS(ucharp){ Write_LCD_com(p|0x80);}/********************************************LCD写程序*********************************************/voidLCD_string(ucharp,uchar*s){ uchari; SET_LCD_POS(p); for(i=0;i<16;i++) { Write_LCD_Data(s[i]); DelayMs(5); }}voidformat_datetime(uchard,uchar*a){ a[0]=d/10+'0';a[1]=d%10+'0';}voiddisplay2(inttemp) {format_datetime(DateTime[3],LCD_DSY_BUFFER1+10); TEM_BCD(GET_TEMP()); LCD_string(0x00,LCD_DSY_BUFFER1); } /**********************************************************设置电机**********************************************************/unsignedcharcodeFFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};unsignedcharcodeREV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};charcodereserve[3]_at_0x3b;//保留0x3b起先的3个字节/**********************************************************电机正传**********************************************************/voidmotor_ffw(unsignedintn){unsignedchari;unsignedintj;for(i=0;i<8;i++)//一个周期转30度{P1=FFW[i];//取数据DelayMs(8);//调整转速}P1=0xf0;//使步进电机掉电}/**********************************************************步进电机反转(转n*30度)**********************************************************/voidmotor_rev(unsignedintn){unsignedchari;unsignedintj;for(j=0;j<n;j++)//转n*30度{for(i=0;i<8;i++)//一个周期转30度{P1=REV[i];//取数据DelayMs(8);//调整转速}}P1=0xf0;//使步进电机掉电}/*****************************************钟表显示******************************************/voidclock_write(unsignedints,unsignedintm,unsignedinth){ write_sfm(0x48,h); write_sfm(0x4b,m); write_sfm(0x4e,s);}/*******************************************主函数********************************************/voidmain(){ LCD_Init();write_string(0x80,date); write_string(0xC0,date1);DelayMs(500); TMOD=0x10;TH1=0x4C;TL1=0x00;EA=1;ET1=1;TR1=1;int_time=0; while(1) { if(i==0) Write_LCD_com(0x01); while(i==0) { display2(); if(htvaluetemp==1) { motor_ffw(12);//电机正转360度 HT=0; SPK=1; } else { HT=1; SPK=0; } if(ltvaluetemp==1) { motor_rev(6);//电机反转180度 LT=0; SPK=1; } else { LT=1; SPK=0; } } } }voidT0_interserve(void)interrupt3{ int_time++; if(int_time==20) { int_time=0; second++; clock_write(second,minute,hour); } if(second==60) { second=0; minute++; } if(minute==60) { minute=0; hour++; } if(hour==24) { hour=0; } TH1=0x4C;TL1=0x00;}6.2.2LCD.h#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P0^2;sbitRW=P0^1;sbitEN=P0^0;charcodereserve[3]_at_0x3b;//保留0x3b起先的3个字节voiddelay(uintz) //延时函数,此处运用晶振为11.0592MHz{uintx,y;for(x=z;x>0;x--) for(y=110;y>0;y--); }/*******************************************//**LCD1602程序模块 **//*******************************************/voidDelayMs(uintt){ uinti,j; for(i=t;i>0;i--) for(j=246;j>0;j--);}/******************************************读LCD状态********************************************/ucharRead_LCD_State(){ ucharstate; RS=0; RW=1; EN=1; DelayMs(1); state=P0; EN=0; DelayMs(1); returnstate;}/********************************************忙则等待*********************************************/voidLCD_Busy_Wait(){ while((Read_LCD_State()&0x80)==0x80); DelayMs(5);}/**********************************************LCD写数据***********************************************/voidWrite_LCD_Data(uchardat){ LCD_Busy_Wait(); RS=1; RW=0; EN=0; P2=dat; EN=1; DelayMs(1); EN=0;}/***********************************************LCD写指令************************************************/voidWrite_LCD_com(uchari){ LCD_Busy_Wait(); RS=0; RW=0; EN=0; P2=i; EN=1; DelayMs(1); EN=0;}/*******************************************LCD初始化********************************************/voidLCD_Init(void){ Write_LCD_com(0x38); //显示模式设置 DelayMs(1); Write_LCD_com(0x38); DelayMs(1); Write_LCD_com(0x38); DelayMs(1); Write_LCD_com(0x38); Write_LCD_com(0x08); //显示关闭 Write_LCD_com(0x01); //显示清屏 Write_LCD_com(0x06); //显示光标移动设置 DelayMs(1); Write_LCD_com(0x0C); //显示开及光标设置}voidwrite_string(ucharaddr,uchar*p)//接受指针的方法输入字符,n为字符数目{Write_LCD_com(addr);while(*p!='\0')Write_LCD_Data(*p++);}voidwrite_sfm(ucharaddr,uchardat)//向指定地址写入数据{ ucharshi,ge; shi=dat/10; ge=dat%10; Write_LCD_com(0x80+addr); Write_LCD_Data('0'+shi); Write_LCD_Data('0'+ge);}6.2.3TEMP.HsbitDQ=P3^7; //DS18B20温度sbitHT=P0^3; //高温报警sbitLT=P0^4; //低温报警#defineucharunsignedchar#defineuintunsignedintbitflag;uinttvalue;externucharhtvaluetemp=0,ltvaluetemp=0;externucharLCD_DSY_BUFFER1[]={"temperature:"}; //LCD显示缓冲/*******************************************/ /*******************************************/voidDelayUs(ucharus){ while(us--);}/*****************************************ds1820复位******************************************/uchards1820rst(){ unsignedcharx=0; DQ=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程基础材料加工术 6
- 工程基础材料加工术 4
- 大学生就业指导研究突破点
- 2026 八年级下册《阿基米德原理》课件
- 医院档案管理员岗位制度
- 医院负责制度规范
- 单位食堂采购配送制度
- 卫生单位工作制度
- 卫生站工作制度范本
- 卫生院培训医疗核心制度
- 【MOOC】《电网络分析》(浙江大学)章节期末慕课答案
- 2025年贵州省公安厅招聘警务辅助人员考试真题(含答案)
- 算力中心容器化部署方案
- 殡仪馆面试题目及答案
- 低空经济农林植保
- 拍摄剪辑培训课件
- 《数控加工编程》课件-端面粗车循环指令G72
- 2024年凤凰新华书店集团有限公司市县分公司招聘笔试真题
- 人教版八年级下册历史教案全册
- 五一游西安作文400字左右
- 毒品与艾滋病预防智慧树知到期末考试答案章节答案2024年湖南警察学院
评论
0/150
提交评论