发布时间 : 星期三 文章基于单片机无刷直流电机控制系统的设计毕业设计论文更新完毕开始阅读
的朋友,因为你们,不管是伤心、快乐,还是难过、高兴,是你们一路陪我走过,共同分享。是你们教会了我做人要学会分享,是你们教会了我要懂得站在他人的立场上考虑问题,别人取得好成绩时要真心的祝贺他们,正是因为你们,让我成长,使我变得成熟。
参考文献
[1]夏长亮.无刷直流电机控制系统[M].北京:科学出版社.2009.
[2]谭建成. 永磁无刷直流电机技术[M]. 北京:机械工业出版社.2011:1-5. [3]刘刚,王志强,房建成. 永磁无刷直流电机控制技术与应用[M].北京:机械工业出版社.2008.
[4]李刚民,等.单片机原理及实用技术[M].高等教育出版社.2005. [5]王兆安,黄俊.电力电子技术.北京:机械工业出版社[M].2000.
[6]马忠梅,等.单片机的C语言应用程序设计.北京:北京航空航天大学出版[M].2003.
[7]郭海英,微机控制PWM直流调速系统的设计[J].机电工程技术.2006. [8]皱大军,升降装置用直流无刷电机驱动系统研究[D].成都:西南大学.2010.
附录A:
程序:
#include uchar code p1[]={0x00,0x90,0x91,0x92,0x93,0x00}; *数码管位选* uchar *zy=p1; *定义指针指向数组p1* void d_ms(uchar m) { uchar i,j; for(i=0;i *延时程序* for(j=0;j<100;j++) *延时100*m微秒* { ; } } void start() *{ if(tag==0) * { P0=0xFF; * P1=0xFF; * P0=0x00; P1=0x00; tag=1; * } else tag=0; *} void up() *{ if(tag1==0) * { If(zssd<=4000) * { 开始程序* 系统未启动* 数码管各段全亮,确认完好无损* 数码管全部选通* 启动标志位置1系统启动* 再次按下,标志位置0* 向上箭头函数* 闪烁标志位为0* 最大转速为4000转* zssd+=100; *无闪烁,转速设定+100转* } } void fanzhuan() *反转函数* { P15=0; *P1.5口取反,默认高电平* P14=0; *P1.4口取反,默认低电平* P17=0; *P1.7口取反,默认高电平* } void left() *左移函数* { if(tag1==0) *闪烁标志位为0,无闪烁* { } else *已经开始闪烁* ++zy; *指针指向当前位选数组下一位* if(zy==p1[0]) *当指针指向第一位时* { tag1=1; *闪烁标志位置1,开始闪烁* zy=p1+1; *指针指向位选数组首地址* } else *有闪烁,位选与转速* switch(*zy) { } case 0x90: zssd=zs+1000;break; case 0x91: zssd=zs+100;break; case 0x92: zssd=zs+10;break; case 0x93: zssd=zs+1;break; } } zy=p1+4; *自动跳转到第五位* d_ms(200000); *2S内没动作,停止闪烁* tag1=0; *闪烁标志位置0,停止闪烁* void down() *参考up()函数* { if(tag1==0) { if(zssd>=2000) { zssd-=100; } } void right() { if(tag1==0) { tag1=1; zy=p1+4; *参考left()函数* } else switch(*zy) { case 0x90: zssd=zs-1000;break; case 0x91: zssd=zs-100;break; case 0x92: zssd=zs-10;break; case 0x93: zssd=zs-1;break; }