• 8.03 MB
  • 46页

电子工程设计报告北工大温度

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'电子工程设计报告题目:闭环温度控制系统设计——单片机、AD、DA、显示键盘电路及系统软件专业:小组:姓名学号:张三(090201xx)李四(090201xx)指导教师:完成日期: 摘要要求:摘要内容在400字以内。注:摘要是学术论文的重要组成部分,是以提供文献内容梗概为目的,不加评论和补充解释,简明、确切地记述文献重要内容的短文。摘要一般只用二三句话概括论文的主题和结论,通常不涉及具体的数据和方法,多用于综述,会议报告等。该类摘要通常具有独立性和自含性,可用于帮助潜在的读者来决定是否需要阅读全文。目录要求:最多列到三级标题。44 一、背景与功能指标要求建议阐述内容:1)主要解决什么问题、满足什么要求、达到什么目的。例如:增加功能、提高技术指标、降低能耗、降低污染、提高生产效率等等。2)所要设计的产品、系统或生产工艺流程要完成哪些任务,有哪些基本要求(例如,功能、指标、基本性能、目标成本、技术水平等方面的要求),需要解决哪些关键性的问题。通过需求分析归纳出基本的设计任务,形成设计任务书。本阶段需要完成的任务1.课程的主要目的了解小型电子系统的设计过程,学习小型电子系统的设计方法。2.本阶段的具体任务完成温度控制系统的设计与实现。⑴核心单元⑵模拟量接口⑶人机交互单元⑷各模块控制程序⑸系统运行控制程序二、系统方案设计44 三、硬件电路设计建议阐述内容:在方案设计形成的基本设计框架内,根据设计任务的要求选择能够解决问题,同时满足设计要求的电路。电路设计内容使用工程图纸进行表述,并配以文字说明介绍电路的基本组成及主要元件的功能。3.1单片机电路建议阐述内容:MCS-51系列单片机有众多性能优异的兼容产品、成熟的开发环境、世界上最大的单片机客户群、高性价比、畅通的供货渠道,是初学者的首选机型。说明所选电路或系统的工作过程,如何解决设计任务中提出的技术问题,如何实现规定的功能,如何满足规定的指标。单片机电路要包含地址空间分配情况。44 3.2AD电路44 44 3.3DA电路3.4显示键盘电路44 44 44 44 3.5、电路调试建议阐述的内容包括以下三个部分:3.5.1调试的原理与方法调试包括电路或系统功能和指标的检验,它以电路或系统的基本工作原理为基础,并且遵循一定的方法。44 3.5.2调试的过程与数据对于调试项目、所用仪器、测试电路的连接方法可以使用图、表进行表述。准确、客观的记录数据,结果也可以制成相应的图、表,以便更加直观的表明电路或系统的性能。循环显示44 44 44 测温44 44 44 键盘44 44 44 44 44 AD44 44 44 44 44 44 44 3.5.3误差分析对于实测结果与理论计算或理想结果之间存在的差距,根据对于电路或系统各环节性能的了解,提出科学的解释,并提出改进措施。四、软件程序设计五、附录代码5.1AD#include"C8051F020.h"#include"absacc.h"#include"data_define.c"#defineC2XBYTE[0xD000]#defineTIMER0x800044 #include"Init_Device.c"#defineDP1XBYTE[0x0000]#defineDP2XBYTE[0x0100]unsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};voiddelay(void);voiddisplay(unsignedcharx,y);voidmain(void){unsignedcharx=0,y=0,z=0,num=0;Init_Device();while(1){C2=x;delay();x=C2;y=x*99/255%10;num=1;display(num,y);z=x*99/255%10;num=2;display(num,z);delay();}}voiddelay(void){longinti;for(i=0;i#include"data_define.c"#include"Init_Device.c"#include"cx.h"#include"KEY_table.h"staticunsignedintDataT=0;staticunsignedintDataTO=0;staticunsignedintDataTI=0;staticunsignedintTargetT=0;staticunsignedintTargetTH=0;staticchartp=0;staticunsignedintsign=0;staticunsignedcharSwitch=0;staticunsignedintInput=0;staticintLastOrder=0;#defineDTD_tablecodeconstunsignedintD_table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};voiddelay(void);voiddelay1(void);voidDisplay(constunsignedint,constunsignedint);unsignedintConvert(constunsignedint);44 unsignedintConvertD2H(constunsignedint);unsignedintReadT(void);unsignedintReadKey(void);unsignedintReadKeyS(void);unsignedintDecode(unsignedint);unsignedintReadInput(void);voidTask(void);voidmain(void){Init_Device();while(1){ReadInput();Task();}}unsignedintConvert(constunsignedinta){if(a<0xcd)return(int)98*a/0xff;return(int)99*a/0xff;}44 unsignedintReadT(void){C2=0;delay();returnC2;}voidDisplay(constunsignedintx,constunsignedintz){C11=DT[z/10];C12=DT[z%10];C13=DT[x/10];C14=DT[x%10];}voiddelay(void){longinti;for(i=0;i<0x1f0;++i);}voiddelay1(void){longinti;for(i=0;i<0x81f0;++i);}unsignedintReadKeyS(void){unsignedchartemp=0;unsignedchartemp1=0;44 unsignedchari=0;temp=C43;temp=0x1f&C43;if(temp==0x1f){return0xff;}temp1=temp;delay();temp=0x1f&C43;if(temp!=temp1){return0xff;}if(temp==0x1e){returnK11;}if(temp==0x1d){Switch=~Switch;returnK12;}}unsignedintReadKey(void){44 unsignedinttemp=0;unsignedinti=0;while(1){temp=0x1f&C41;if(temp!=0x1f){i=0x0;break;}temp=0x1f&C42;if(temp!=0x1f){i=0x40;break;}temp=0x1f&C43;if(temp!=0x1f){i=0x80;break;}temp=0x1f&C44;if(temp!=0x1f){i=0xC0;break;}return0xff;}returni|temp;44 }unsignedintDecode(unsignedinta){switch(a){caseK1:return1;caseK2:return2;caseK3:return3;caseK4:return4;caseK5:return5;caseK6:return6;caseK7:return7;caseK8:return8;caseK9:return9;caseK10:return0;caseK11:return10;default:return0xff;}44 }unsignedintReadInput(void){unsignedintkey=0;unsignedinti=0;unsignedinttemp=0;key=ReadKeyS();i=Decode(ReadKeyS());if(i!=10){return0xff;}Display(0,DataTO);while(1){key=ReadKey();i=Decode(key);if(i<10){DataTI=i;Display(DataTI,DataTO);break;}Task();}44 while(1){key=ReadKey();if(key==0xff)break;Task();}while(1){key=ReadKey();i=Decode(key);if(i<10){DataTI=DataTI*10+i;Display(DataTI,DataTO);TargetT=DataTI;TargetTH=ConvertD2H(TargetT);break;}Task();}returnDataTI;}voidTask(void){44 DataT=ReadT();DataTO=Convert(DataT);tp=TargetT-DataTO;if((tp>0x7f&&tp<0xff)||tp==0xff){tp=~tp+1;sign=1;}else{sign=0;}while(1){if(tp<6){tp=TargetTH-DataT;LastOrder=LastOrder+5*tp;if(LastOrder<0){LastOrder=0;C3=0;break;}if(LastOrder>0xff){44 LastOrder=0xff;C3=0xff;break;}C3=LastOrder;break;}if(sign==1){C3=0;break;}if(sign==0){C3=255;break;}break;}Display(DataTI,DataTO);return;}unsignedintConvertD2H(constunsignedinta){returna*0xff/100;}5.3键盘44 #include"C8051F020.h"#include"absacc.h"#include"data_define.c"#include"Init_Device.c"#defineDP1XBYTE[0x0000]#defineDP2XBYTE[0x0100]#defineKEY_WRXBYTE[0x0200]#defineKEY_RDXBYTE[0x0300]#definelinescan10xfe#definelinescan20xfd#definelinescan30xfb#definelinescan40xf7#defineTIMER0x8000unsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};voiddisplay(unsignedcharx,y){DP1=table[x];DP2=table[y];}voidmain(void){unsignedcharl_val,r_val,r_state,temp,conter;DP1=DP2=0xff;Init_Device();while(1){for(l_val=1;l_val<5;++l_val){switch(l_val){case1:KEY_WR=linescan1;break;case2:KEY_WR=linescan2;break;case3:KEY_WR=linescan3;break;44 default:KEY_WR=linescan4;}r_state=~KEY_RD&0x1f;if(r_state!=0){for(conter=1,r_val=1,temp=1;conter<6;++conter,++r_val,temp=temp<<1){if((r_state&temp)!=0)display(l_val,r_val);}}}}}5.4显示#include"C8051F020.h"#include"absacc.h"#include"data_define.c"#defineDP1XBYTE[0x0000]#defineDP2XBYTE[0x0100]#defineDP3XBYTE[0x0200]#defineDP4XBYTE[0x0300]#defineTIMER0x8000#include"Init_Device.c"unsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};voiddelay(void);44 voiddisplay(unsignedcharx,y);voidmain(void){unsignedchari=0,num=0;Init_Device();DP1=DP2=DP3=DP4=!i;while(1){for(num=0;num<9;++num){i++;if(i<=4)display(i,num);else{i=1;display(i,num);}delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();44 }}}voiddisplay(unsignedcharx,y){if(x==1)DP1=table[y];elseif(x==2)DP2=table[y];elseif(x==3)DP3=table[y];elseDP4=table[y];}voiddelay(void){unsignedinti;for(i=0;i