工程实践与科技创新4a-第12大组水温测控子系统小组设计报告_第1页
工程实践与科技创新4a-第12大组水温测控子系统小组设计报告_第2页
工程实践与科技创新4a-第12大组水温测控子系统小组设计报告_第3页
工程实践与科技创新4a-第12大组水温测控子系统小组设计报告_第4页
工程实践与科技创新4a-第12大组水温测控子系统小组设计报告_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

完成时间:2012-6-15工程实践与科技创新工程实践与科技创新水温测控子系统设计报告大组编号:12(组长)、金~海交通大 电子信息与电气工程学交通大学地交通大学地邮FFF摘要:本文介绍了一个水温测控子系统。本系统主要实现测温,控温的功能。 :Thisreportiswrittentointroduceawatertemperaturecontrolsystem.Thissystemcanmeasureandcontroltemperature.Thisfunctioniscarriedoutbytemperaturemeasurepartandtemperaturecontrolpart.Thefirstpartisworkingwithatemperaturesensing ,anditmakestheMCUtodisythetemperaturevolumethroughtheADtransitioncircuit.Thesecondpartincludesarelay.TheMCUofferasignaltotherelayandletitbeonoroff.Thenitcancontroltheelectriccupandthewaterinit.:thermistor,singlechipmachine,relayA/Dconversion,PAGE1交通大学PAGE1交通大学 编写说 缩略 系统指 系统的设计原理与分 系统的设计原 测温部 测温部分总 控温部 控温部分总 单片机子系 总线通信模 设计方 水温测量部分硬件描 热敏电阻简 电压基准源TL431的工作方 运算放大器OP07简 水温控制部分硬件描 水温控制电路总体设 继电器工作方 水温测 主要功 代码说 加热控 主要功 代码说 按键功 硬件部 软件部 测试项 测试的资 及分 误差分 硬件开 软件开 附录一软件程序 按 数码 附录三致 附录四心得体 PAGE1交通大学PAGE1交通大学子模块具体介绍,并在附录中列出了软件程序、水温定标方法等内容。数据结果以便于电子设计者们和专家们的参考借鉴及验证。计者和工程设计人员。 og/DigitConverter模拟/数字信号转换模数转PulseWidthModulation 本系统由温度测量模块、温度控制模块、单片机子系统及总线通口模块组成。其中,温度测量模块完成对温度信号及转换;温度控制模块实现对温度控制信息的转换与传递;单片机子系统从软件角度接收温度信息、本系统控制信息,输出温度控制信息;总线通口模块实现总线数据电平的转换。对于数据转换部分,本模块中利用电阻温度,完成从物理量到电压量的转换;之后利用atmel16,完成从模拟量到数字量的装换。这一点与数据处理部分息数据处理部分的本质上是优化A/D转换的性能。线性化电路的实现有多种方法,如串联电阻、并联电阻、利用运放以及电桥等,比较各种方法的精度复杂程应用到稳压管TL431产生一稳定的参考信号。0~1003078图中,A曲线为纯热敏电阻与温度的对应关系,可以看出热敏电阻与温度的关系是BBTL43136V0.1~100mA,动态电阻典型值0.223.2TL431V=2.5(R1R2)V/R2。如果改变R1的阻值大小,就可以改变输出基准电压大小。PAGE6PAGE6交通大学TL431实现稳压的过程是:当输出电压降低时,fTL431内部放大升高,e点电位降低,经K790调整后,b点电位降低。从而使输出电压稳定。 PAGE12交通大学PAGE12交通大学R5=3KΩ;R7=1KΩ;R10=3.9KΩ变阻器;RL=10KΩ同时通过水温测量电路,将返回的温度信号与用户设定的预期温度进行比较,当单片机将该信号与单片机将该信号与单片机将电压信号单片机作出判断后控制信号经由控温电路控制继电器的112V,87上。老师终于解决了这个问题。if(mode==1)unsignedintvolatiletpc[tprange]digi[0]=0x0b;digi[1]=digi[2]=(tpnow-digi[3]=(tpnow-digi[1]*100-2-3°。我们设定为if(mode==0)//运行模式 {//命令1&0:停止加热{buildInfoFrame(&frame_to_send,0x11,0x00,0x04,0x04,0x01,a);}buildInfoFrame(&frame_to_send,0x110x000x04,0x00,0x01a);//响应无错误}{//命令1&1:开始加热{buildInfoFrame(&frame_to_send,0x11,0x00,0x04,0x04,0x01,a);}buildInfoFrame(&frame_to_send,0x11,0x00,0x04,0x00,0x01,a);}t t PAGE13PAGE13交通大学 led1=elsetp++;}elseled1=//led2=0;elsetp--;}elseled2=//led3=elsetp+=10;} elseled3= PAGE22交通大学PAGE22交通大学//if //PC7,C口第7 运行/调试模式选}elseled4=} led1=PORTB=0; }elseled1=//led2=PORTB= press=}elseled2=//led3=}elseled3=//if //PC7,C口第7 }

}elseled4=}elseled1=//}elseled2=//}elseled3=//if //PC7,C口第7 运行/调试/收发模式选}elseled4=}}电路发现学长的运放电路设计有很大问题,于是我们查阅老师的课件,采用最3A中曾经用过的稳压和放大电路,并且逐步检测每一点的输出电压,终于[2] [3] 万用; 99SE//AVRapplicationbuilder:2010-04-06//Target://Crystal:#include<avr/io.h> struct{charcharcmd2_rtn;charlength;charcharvoidbuildInfoFrame(structInfoFrame*infoframe,charVER,charADR,charCMD1_RSPD,charCMD2_RTN,charLENGTH,char*INFO);intencode(structInfoFrame*infoframe,char*charparseFrame(structInfoFrame*infoframe,char*str,intlengthOfStr);voidsend_rspd(structInfoFrame*rspd);voidsend_rspd1(char*str_to_send,intcharcalcChkSum(structInfoFrame*infoframe){ infoframe->cmd2_rtn+infoframe->length));inti=for(;i<infoframe->length;{temp=(char)(temp+infoframe-}return(char)(~temp+}voidbuildInfoFrame(structInfoFrame*infoframe,charVER,charADR,charCMD1_RSPD,charCMD2_RTN,charLENGTH,char*INFO){infoframe->ver=VER;infoframe->adr=infoframe->cmd2_rtn=CMD2_RTN;infoframe->length=LENGTH;inti=for(;i<infoframe->length;{infoframe->info[i]=}infoframe->chksum=}{unsignedcharhigh=b/if(high>9)return(char)('A'+high-10);elsereturn(char)('0'+high);}{unsignedcharlow=b%if(low>9)return(char)('A'+low-10);elsereturn(char)('0'+low);}chartoSingleChar(charhigh,char{return(high<<4)+low;}intencode(structInfoFrame*infoframe,char*{int{}}voidsetFrame(structInfoFrame*infoframe,char*str,int{infoframe->ver=toSingleChar(str[1],str[2]);infoframe->adr=toSingleChar(str[3],str[4]);infoframe->cmd1_rspd=toSingleChar(str[5],str[6]);infoframe->cmd2_rtn=toSingleChar(str[7],str[8]);infoframe->length=toSingleChar(str[9],str[10]);if((lengthOfStr-14)/2>0{inti=for(;i<(lengthOfStr-14)/2;i++{}}}charparseFrame(structInfoFrame*infoframe,char*str,intlengthOfStr{ str,if(str[0]!='~' elseif(lengthOfStr<14)return255;elseif(toSingleChar(str[1],str[2])!=0x11)return1;elseif(toSingleChar(str[lengthOfStr-3],str[lengthOfStr-2])!=calcChkSum(infoframe))return2;elseif(toSingleChar(str[5],str[6])>3||toSingleChar(str[7],str[8])>3)return3;elseif((lengthOfStr-14)/2!=toSingleChar(str[9],str[10]))return4;return}voidsend_rspd(structInfoFrame*rspd{//PORTD|=charstr_to_send[14+(MAX_INFO_LENGTH<<1)];intcount=0;intlength=encode( {while(!TXC//PORTD&=}voidsend_rspd1(char*str_to_send,int{UCSRA|={}#defineBAUDRATE #defineMAX_INFO_LENGTH_SEND11s软件定时器溢出值,2005ms#defineV_T1s200#defineV_T50ms #definetplow30 #definetprange70 #defineonline0xee #defineansonline0xab //unsignedchar//unsignedchar//1s软件定时器计数unsignedcharclock1s;intvolatile //500msintvolatile////unsignedchar//unsignedchar//unsignedint//unsignedcharvolatile//ADC模块变量intvolatileadc=0;unsignedintvolatileunsignedintvolatile intvolatileintvolatileintvolatileintvolatileunsignedintvolatiletp=30;44,45,46,47,48,49,

//30,31,32,33,34,35,36,37,38,39,40,41,42, //51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,69,//71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,89, 91,92,93,94,95,96,97,98,44,45,46,47,48,49,

//30,31,32,33,34,35,36,37,38,39,40,41,42, //51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,69,//71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,89, 91,92,93,94,95,96,97,98,intcursor_receive=0;intreceive_length=0;intis_recieved=0;intreset=0;intvolatilesend_enable= 7D7~0PGFEDCBAunsignedcharNUMTOSEG7(unsignedcharDATA){switch{case0://case1://case2://case3://case4://case5://case6://case7://case8://case9://case10:AA=0x88;break;//‘A’case11:AA=0x83;break;//‘B’case12:AA=0xc6;break;//‘C’case13:AA=0xa1;break;//‘D’case14:AA=0x86;break;//‘E’case15:AA=0x8e;break;//‘F’caseAA=0xdf;break;//破折号case_':AA=0xf7;break下划线case'':AA=0xff;break;//消隐default:AA=0xff;}}voiddisy_led(unsignedcharseg,unsignedchar{unsignedchar//selPORTA&= //PA7=0;for{if((sel&0x80)== //最送U2SERPORTA&= //PORTA|= PORTA&= PORTA| sel //sel}//seg74hc595for(i=0;i<8;i++){if((seg&0x80)== //最送U2SERPORTA&= PORTA|= PORTA&= PORTA| seg //seg}PORTA|= PA7=1;PORTA& }void{PORTA= 0xE0;PAPA7、PA6、PA5PORTB= 0x01;//PORTB0PORTC0xf0;PCPC7、PC6、PC5、PC4 0x00;PCPORTD=0xFB; //设置RXD0和TXD0DDRD=0x06;}void{UBRRH=(F_CPU/BAUDRATE/16-1)/256;UCSRA=0x00;UCSRC=(1<<URSEL)|0x06;}//TIMER0initialize-//WGM://desiredvalue://actualvalue:200.321Hz(0.2%)voidtimer0_init(void){TCCR0=0x00;//stopTCNT0=0x64;//setcount =0x9C; TCCR0=0x04;//starttimer}intadcs2tp(float{inti=0;return(i+tplow);}{structInfoFrameif(frame_received.adr!=1)return;//地址不匹配,不是水温从系统0x00,a

PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=~(1<<PD2);} {{buildInfoFrame(&frame_to_send,0x110x000x03,0x04,0x01a);//参数段长度错PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}buildInfoFrame(&frame_to_send,0x11,0x00,0x03,0x00,0x01,PORTD|=(1<<PD2);send_rspd(&frame_to_sendPORTD&=} {//命令1&0:停止加热{buildInfoFrame(&frame_to_send,0x11,0x00,0x04,0x04,0x01,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}buildInfoFrame(&frame_to_send,0x110x000x04,0x00,0x01a);//响应无错误PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}{//命令1&1:开始加热{buildInfoFrame(&frame_to_send,0x11,0x00,0x04,0x04,0x01,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}buildInfoFrame(&frame_to_send,0x11,0x00,0x04,0x00,0x01,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=} {//命令2&0:温 {buildInfoFrame(&frame_to_send,0x11,0x00,0x05,0x04,0x00,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}buildInfoFrame(&frame_to_send,0x11,0x00,0x05,0x00,0x01,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=} {//命令3&0{buildInfoFrame(&frame_to_send,0x11,0x00,0x03,0x04,0x01,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}buildInfoFrame(&frame_to_send,0x11,0x00,0x03,0x00,0x01,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=}//////////其他情况命令无法识别buildInfoFrame(&frame_to_send,0x11,0x00,frame_received.cmd1_rspd,0x03,0x00,a);PORTD|=(1<<PD2);send_rspd(&frame_to_send);PORTD&=} {TCNT0=0x64;//reloadcounter{}if{clock1s_flag2=clock1s=} led1=elsetp++;}elseled1=//led2=0;elsetp--;}elseled2=//led3=elsetp+=10;}elseled3=//if //PC7,C口第7 运行/调试模式选}elseled4=} led1=PORTB=0; }elseled1=//led2=PORTB= PAGE37PAGE37交通大学press=}elseled2=//led3=}elseled3=}

//if //PC7,C口第7 }elseled4=}elseled1=//}elseled2=//}elseled3=//if //PC7,C口第7 运行/调试/收发模式选led4= }elseled4=}}145ms间隔对一个数码管进行驱动,20msif(++digi_scaner>=5)digi_scaner=1;switch(digi_scaner){case1://output_sel+=case2://output_sel+=case3://output_sel+=case4://output_sel+=} }if(mode==2){chartemp=UDR; {}PAGE39交通大学PAGE39交通大学

{is_recieved=1;}}}//callthisroutinetoinitializeallperipheralsvoidinit_devices(vo

温馨提示

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

评论

0/150

提交评论