单片机课程设计技术报告-家用烤箱控制系统设计技术报告.doc_第1页
单片机课程设计技术报告-家用烤箱控制系统设计技术报告.doc_第2页
单片机课程设计技术报告-家用烤箱控制系统设计技术报告.doc_第3页
单片机课程设计技术报告-家用烤箱控制系统设计技术报告.doc_第4页
单片机课程设计技术报告-家用烤箱控制系统设计技术报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计技术报告 家用烤箱控制系统设计 2012级电气3班黄美捷 20120502310075一、任务分析1、分析系统功能,选择合适的单片机及传感器,温度检测电路设计等;2、应用专业绘图软件绘制硬件电路图和软件流程图;3、按规定格式撰写、打印设计说明书一份,其中程序开发要有详细的软件设计说明,详细阐述系统的工作过程。二、控制方案本系统是一个典型的闭环系统控制。从技术指标来看,系统对控制精度的要求不高,对升温过程的线性也没有要求,因此,系统采用最简单的通断控制方式,即但烤箱达到设定温度附近(略小于)断开电阻丝加热,当温度降到低于设定值时接通加热,从而实现恒温控制。电烤箱控制采用可控硅来实现,双向可控硅和电阻丝串接在交流220v市电的回路中。单片机的p1.7口通过光电隔离器和驱动电路送到可控硅的控制端,由p1.7口德高低电平来控制可控硅的导通与断开,从而控制电阻丝的通电加热时间。三、控制程序设计1、工作流程烤箱上电复位后先处于停止加热状态,这时由a/d先读出箱内环境温度,同时通过按键由显示器显示预设温度,设置完后按启动键启动系统工作,温度检测系统不断定时检测箱内温度,并由数码管显示,达到低于温度值1时停止加热,利用余热升温至预设温度,当温度下降到下限(比预定值低2)时再启动加热,不断重复上述过程,使温度保持在预设允许误差范围内。若想修改预设温度,停止加热后,再按键修改。(30秒内温度无明显变化,蜂鸣器报警,五分钟内未达到允许温差范围内温度,蜂鸣器报警,期间任意时刻温度高于预设温度5%,蜂鸣器报警)2、功能模块根据上面的流程分析,分为以下模块: (1)按键管理:检测键盘输入,接收温度预置,启动/停止系统工作。 (2)数码管显示:显示设置温度,当前箱内温度。 (3)温度检测及转换:完成a/d转换及十进制显示 (4)温度控制:根据检测到的温度控制电烤箱工作。 (5)报警:30秒内温度无明显变化,五分钟内未达到允许温差范围内温度,期间任意 时刻温度高于预设温度5%,报警。3、资源分配模块i/o口分配:p0.0,p0.1-a/d开始采集,发送控制位。 p0.2-温度控制口。 p1.0p1.2,p3.2-键盘输入。 p1.3p1.7-数码管显示。 p2.0p2.7-a/d数据接收口。4、软件功能设计本次系统控制采用keil软件,c环境下编写(1)键盘管理上电复位后系统处于键盘管理状态,功能为温度设置和启动键。当设置温度百位超过2自动归零。键盘管理子程序如下: /*键盘设置温度*/ void settemp() if(set=0)delay(5);q=1; while(!q) if(c1=0) while(p-)display(ge,shi,bai,ge_1,shi_1,bai_1);p=36;/延时去抖bai_1+; if(bai_1=3)bai_1=0; if(c2=0) while(p-)display(ge,shi,bai,ge_1,shi_1,bai_1);p=36; shi_1+; if(shi_1=10)shi_1=0; if(c3=0) while(p-)display(ge,shi,bai,ge_1,shi_1,bai_1);p=36; ge_1+; if(ge_1=10)ge_1=0; display(ge,shi,bai,ge_1,shi_1,bai_1); if(set=0)delay(20);break; q=0;ad(); (2)显示管理 显示子程序的功能是将a/d转换完成的二进制数转换为十进制,表示当前环境温度和将按键设置返回的值表示为预设温度通过数码管显示显示子程序如下:/*ch451初始化*/void ch451_init() din=0; / 给din一个高电平 设置ch451选择4线串行接口 din=1; dclk=1;/置为默认的高电平 load=1; dout=1;/置为输入/*ch451写入*/ load=0; /串行数据加载端置1 load=1; /给load一个上升沿使data数据全部导入ch451 delay(5); void ch451_write(uint dat) /,uint length uint i; load=1; /串行数据加载端置1 for(i=12;i0;i-) dclk=0; /串行数据时钟线 置0 if(dat&0x01)=0x01) /判断data最低位是否为1 din=1; /data最低位为1的话就向din(串行数据输入)写1 else din=0; / data最低位为0的话就向din(串行数据输入)写0 dclk=1; /串行数据时钟线 置1 dat=dat1; /data向右移动一位 /*ch451显示六位数码管*/ void display( int ge, int shi, int bai,int ge_1, int shi_1, int bai_1)ch451_write(ch451_dig0|ge);/第1位显示,实际温度要显示的内容 ch451_write(ch451_dig1|shi);/第2位显示 ch451_write(ch451_dig2|bai);/第3位显示 ch451_write(ch451_dig3|ge_1);/第4位显示,设置温度要显示的内容 ch451_write(ch451_dig4|shi_1);/第5位显示 ch451_write(ch451_dig5|bai_1);/第6位显示 (3)温度检测模块a/d转换采用查询方式。为提高数据可靠性,对采样温度数字滤波,取三次采样值取平均值。温度监测子程序如下:/*ad采集*/ void ad() while(count2) start=1; delay(1); start=0; delay(5); count2-; oe=1; delay(1); tt=p1*70/51-50; oe=0; bai=tt/100+bai; shi=(tt/10)%10+shi; ge=tt%10+ge; count2=3; bai=bai/3; shi=shi/3; ge=ge/3; while(count3) display(ge,shi,bai,ge_1,shi_1,bai_1); delay(1); count3-; count3=10; (4)温度控制模块达到低于温度值1时停止加热,利用余热升温至预设温度,当温度下降到下限(比预定值低2)时再启动加热,子程序如下:if(ts-tt)2) /在离设定温度差值1摄氏度以上时电阻丝持续加热,否则停止加热 burn=0;elseburn=1; (5) 警告模块30秒内温度无明显变化,蜂鸣器报警,五分钟内未达到允许温差范围内温度,蜂鸣器报警,期间任意时刻温度高于预设温度5%,蜂鸣器报警 警告子程序如下: /*中断定时检验*/ void exter0() interrupt 1 th0=6; tl0=6; +count; if(count=2000) count=0; /清零 count1+; if(20*tt-21*ts)5) /高于设定温度5%以上时报警 burn=1;alarm=0; if(count1=30) /30秒内温度无明显变化,报警 if(tt-t0)5) alarm=0; count1=0; (6)主程序模块主程序完成系统的初始化,温度预设及电阻丝的通断。子程序如下:void main() ex0=1;tmod=0x02;th0=6;tl0=6;et0=1;tr0=1;ea=1; start=0; oe=0;ad();t0=tt; /采第一次温度作为室温作为参考 ch451_init(); /ch451初始化 ch451_write(0x401); /设定系统参数,数码显示使能 ch451_write(0x568); /设定显示参数、6位扫描极限、16/16显示驱动占空比 while(1) ad(); if(ts-tt)2)/在离设定温度差值1摄氏度以上时电阻丝持续加热,否则停止加热 burn=0; else burn=1; 四、程序流程图 软件设计流程图五、遇到的问题有些程序写入到keil软件

温馨提示

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

评论

0/150

提交评论