- 374.50 KB
- 11页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)基于单片机的无刷直流风扇转速测量与调节一、项目设计要求1、实现无刷直流电机转速的测量和控制2、给定转速指令:由PC发送转速值,经单片机控制器,使得电机达到并稳定在指定转速上。二、硬件设备1、测量风扇型号:品牌:台达,型号:AFB0712HHB2、51系列单片机学习板3、PC三、方案设计1、硬件电路USB提供+5V电源,可以实现PC机与开发板的数据通讯和程序下载。
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)数码管显示速度和占空比风扇电路连接:P1.0口接PWM波输入,P3.2口接测速脉冲输入
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)风扇输入和输出信号图1、输出信号----转速输出每转输出2个脉冲OC输出,如上图2.OC输出的特点外加集电极电源和负载;输出幅值任意;注意ICMAX3.输入信号---PWM输入2、程序流程图说明:程序应用模块化进行设计,主要有初始化模块、显示模块、测速模块和调速模块。编程次序可按此先后进行。(1)、初始化模块:T0和T1工作方式、标志位状态、所用单元初值、中断设置以及初始显示等。(2)、显示模块:显示风扇转速的实测值及其对应的PWM占空比。(3)测速模块:将0.5s测出的脉冲数即风扇每秒的转速。(4)调速模块:通过串口通信把风扇转速设定值发给单片机,通过改变脉冲波的占空比和PI调节来控制转速的大小。
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)3.占空比与转速关系:占空比000.160.170.180.190.20.220.240.270.290.31转速r/s01234567891011占空比0.350.380.420.460.510.540.610.740.840.941转速r/s1213141516171819202122四、设计程序:1、主程序:#include#include#includeexternunsignedcharset_value;//占空比设定//主函数voidmain(){PS=1;//串行口中断优先级别设为高T0_init();//定时器0初始化T1_init();//定时器1初始化EXT0_init();//外部中断0初始化USART_init();//串口初始化set_value=22;
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)while(1){}}2、初始化子程序#include#include//TC0初始化//设为定时器、模式2(自动重装)voidT0_init(){EA=1;ET0=1;TMOD|=0x02;TH0=TL0=0x00;TR0=1;}//TC1初始化//设为定时器、模式2(自动重装)voidT1_init(){EA=1;ET1=0;//中断关TMOD|=0x20;TH1=TL1=0xfd;TR1=1;}//EXT0初始化//负跳变沿有效、INT0(P3.2)输入脉冲voidEXT0_init(){IT0=1;EX0=1;EA=1;}//USART初始化//波特率9600bps
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)voidUSART_init(){PCON=0x40;SCON=0x50;//模式1,允许接收ES=1;}3、数码管显示子程序#include#include//硬件连接sbitDAT=P0^2;sbitSCK=P0^0;sbitRCK=P0^1;//数码管驱动xdataNUM[]={0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0x85,0xf7,0xd7};//0-9数字xdataBIT[]={0xdf,0xbf,0x7f,0xef,0xfd,0xfb,0xf7,0xfe};//位选voiddis_bit(unsignedcharpos,unsignedcharData){unsignedchari;pos=BIT[pos-1];Data=NUM[Data];RCK=0;for(i=0;i<8;i++){SCK=0;if(pos&0x80)DAT=1;elseDAT=0;pos<<=1;SCK=1;delay();}for(i=0;i<8;i++){SCK=0;
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)if(Data&0x80)DAT=1;elseDAT=0;Data<<=1;SCK=1;delay();}RCK=1;//delay();}//显示数值,两位//输入:pos:显示首位word:一个两位以下的数值voiddis_word(unsignedcharpos,unsignedcharword){dis_bit(pos++,word/10);dis_bit(pos++,word%10);}//软件延时voiddelay(){unsignedchari;for(i=5;i>0;i--);}4、测速、调速子程序#include#include"IT.H"#include"Display.H"//硬件连接sbitfan=P1^0;//风扇脉冲输入sbith=P0^6;//LED,测试//全局变量xdataunsignedcharf[]={0,0,16,17,18,19,20,22,24,27,29,31,35,38,42,46,51,54,61,74,84,94,100,100,100};//转速与占空比关系对照表//INT0参数volatileunsignedcharn;//转速volatileunsignedcharp;//脉冲数
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)//USART参数staticunsignedcharflag;//串口相关unsignedcharUsart_buf[2]="00";//接收缓冲区//PID参数unsignedcharKp=5,Ki=1;//PID参数(PI)staticunsignedinterror,error_re,Sum_e;//当前偏差,上一次的偏差,积分累加器//T0参数staticunsignedchartime;//测速计时器unsignedcharset_value;//PWM设定值//TC0中断voidT0IT()interrupt1using1{unsignedchartemp;time++;if(time>150)//0.5s,由于中断处理的程序过于庞大,以至于定时的理论值不能精确的算出。{time=0;n=p;p=0;flag=0;//若串口的两位数据不是连续发送,则在下一次接收时全部刷新temp=PID();}if(1)PWM_GENERATER(temp);//PID调节dis_word(1,n);dis_word(5,set_value);//显示占空比//dis_word(3,error);//dis_word(7,temp);}//TC1中断voidT1IT()interrupt3using1{}//EXT0中断voidEX0_IT()interrupt0using1
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015){p++;//脉冲计数}//USART中断voidUSART_IT()interrupt4using1{unsignedchartemp;Usart_buf[flag]=SBUF;flag++;if(flag>1)flag=0;temp=(Usart_buf[0]-48)*10+Usart_buf[1]-48;if(temp<23)set_value=f[temp];RI=0;TI=0;}//PWM生成程序//输入:Duty_Cycle:占空比高电平持续值voidPWM_GENERATER(unsignedcharDuty_Cycle){staticunsignedcharcom_value;com_value++;if(com_valuef[n])//error为正值的情况{error=set_value-f[n];//偏差Sum_e=Sum_e+error;//积分feedback=Kp*error/2+Ki*Sum_e;//PID计算
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)}else//error为负值的情况{error=f[n]-set_value;//偏差//积分部分if(Sum_e>error)//积分为正Sum_e=Sum_e-error;else//积分为负Sum_e=0;proportion=Kp*error/2;//比例计算integral=Ki*Sum_e;//积分if(integral>proportion)//PID计算feedback=integral-proportion;elsefeedback=0;}return(feedback);//返回结果}五、方案总结本方案基本能完成风扇转速测量与控制,达到了设计任务的要求。通过测试,本控制系统可以根据气流和通风条件等环境对运行的影响,比较及时调整PWM波形。但是,本方案也存在一些不足之处:1.由于本程序的中断处理比较复杂,定时的理论值不能精确的算出,以至测量的转速不是很精确2.由于时间关系,我们的PID控制模块只完成了PI调节,缺乏了微分调节,系统的动态性能有所下降。六、感想通过该项目的实践,我们加深了对单片机的定时器、计数器、中断等模块的理解。但是万事开头难,一开始,我们只是学了相关的理论知识,对实体的单片机并不了解,遇到各种问题,比如缺乏硬件电路的了解,风扇该如何接线如何输出信号,pwm波如何输出和调节,在调试过程中难以调到稳定速度等问题。后来结合书本,通过摸索,得出了上述程序。尽管时间紧迫、压力大,但是我们还是灵活
微机原理三级项目柯宇杰(2010124025)郭日胜(2010124015)运用并掌握微机测控装置的经典设计过程,即电路-软件-仿真-实物的设计调试试制过程;通过实践,已经熟悉了主要应用软件,Keil、Proteus、Protel等软件的使用,并已经积累了应用经验;项目实践后,锻炼了硬件设计和调试水平,提高了工程应用的直观经验;对PWM驱动直流电机、电机带动风扇的模型有了感性认识,为后面的课程打下了基础;学习了微机编程的技术,积累了编程和软件调试经验;在集体项目活动中锻炼了组织、分工协调能力。'
您可能关注的文档
- )研发费用预算审核项目报告书 2010-12-07.pdf
- 光伏项目报告.pdf
- 加拿大钾肥公司在中国平衡施肥示范项目报告.pdf
- 华南增塑剂项目报告.pdf
- 2012 年度软科学研究项目报告.pdf
- 2013 年度软科学研究项目报告 (2).pdf
- d打印机项目报告书.pdf
- 年产6000吨硅酮类耐候密封胶项目报告表.pdf
- 环评爱好者论坛加油站项目报告表正文.doc
- 格力制冷产业园项目报告书简本doc重庆市东升铝业股份有.doc
- 课程资源库平台建设项目报告.doc
- 黑龙江绥化鑫盛达项目报告.doc
- 某软件任务管理系统实践项目报告.doc
- 烟台龙矿中心医院项目报告表.pdf
- 年清洗1500万套餐具项目报告表.pdf
- 年产15000吨硅酮胶项目报告表.pdf
- 年产3000万支塑料胶瓶项目报告表.pdf
- 年产1000吨密封胶色浆项目报告表.pdf