种基于C8051F单片机的直流无刷电机转速控制系统.docVIP

  • 12
  • 0
  • 约2.72千字
  • 约 4页
  • 2017-08-24 发布于河南
  • 举报

种基于C8051F单片机的直流无刷电机转速控制系统.doc

无刷直流电机内置3个霍尔效应传感器,用来检测转子的位置,也决定电机的换相,并可以根据该信号来计算电机的转速。当电机正常运行时,通过霍尔传感器可得到3个脉宽为180度电角度的互相重叠的信号,而电机转速的改变可以从位置传感器输出脉冲频率的改变上反映出来,因此可以利用单片机对这个 脉冲信号进行监测得到电机转速。因频率和转速成正比测量,所以测出输出脉冲的频率即可计算出转速。另外,为了提高精度,高速(/1000HZ)采用测频法,低速(1000HZ)采用测周法。   将脉冲信号输出与INT0连接,采用INT0中断对转速脉冲计数,每1s读一次计数值,将此值与预设的转速值比较,若大于预设的转速值,则减小DAC0的数值;若小于预设的转速值,则增加DAC0的值,调整电机的转速直到转速值等于预设定的值。电机当前的转速值可在七段数码管上显示,在电机的可控范围内控制电机转速等于预设值。 单片机程序采用C51完成,部分源程序如下: 1、系统时钟初始化,采用18.432MHZ外部晶振: ? void?SYSCLK_Init?(void) ?? { ?? ???????int?i;?????????????????????????????//延时计数器 ?? ???????OSCXCN=0x67;????????????????????//开启外部振荡器18.432MHz晶体 ?? ???????for(i=0;i256;i++)?;????????//等待振荡器启振 ?? ???????while(!(OSCXCN0x80))?;???????//等待晶体振荡器稳定 ?? ???????OSCICN=0x88;??????????????????//选择外部振荡器为系统时钟源并允许丢失时钟检测器 ?? } ?? ?2、IO口初始化 ? void?PORT_Init?(void) ?? ?? ??????XBR0????=0x07;?????????????????????//使能SMBus,SPI0,和UART0 ?? ??????XBR1????=0x04;????????????????????//P1.0---int0 ?? ??????XBR2????=0x40;????????????????????//使能数据交叉开关和弱上拉 ?? ??????EMI0CF??=0x27; ?? ??????EMI0TC??=0x21; ?? ??????P74OUT??=0xFF; ?? ??????P0MDOUT?=0x15; ?? ??????P1MDOUT?|=0x3C;??????//P1.2-P1.5推挽输出 ?? ??????P1?=?0xc3;?????//P1.2-P1.5=0 ?? ?? 3、定时器0初始化,定时时间为1ms ? ?void?Timer0_Init?(void) ?? { ?? ????????CKCON|=0x8; ?? ????????TMOD|=0x1;?????????????????????//16位 ?? ?????????Count1ms=10; ?? ????????TR0?=?0;?????????????????????????//停止定时器0 ?? ????????TH0?=?(-SYSCLK/1000)??8;???????//设初值,1ms时溢出 ?? ????????TL0?=?-SYSCLK/1000; ?? ????????TR0?=?1;??????????????????????//开启定时器0 ?? ????????IE|=?0x2;? ?? } ?? 4、Timer0中断: ? void?Timer0_ISR?(void)?interrupt?1???????????? ?? { ?? ????TH0?=?(-SYSCLK/1000)??8;?? ?? ????TL0?=?-SYSCLK/1000; ?? ????if?(Count1ms) ?? ????{ ?? ????????Count1ms--; ?? ????} ?? ????if?(Count1s)? ?? ????{ ?? ????????Count1s--;??????????????????//Count1s初值为1000 ?? ????} ?? ????else?? ????{ ?? ????????Count1s=1000; ?? ????????SaveMotorCount=MotorCount;??????????//MotorCount为测得每秒脉冲个数 ?? ????????MotorCount=0; ?? ??

文档评论(0)

1亿VIP精品文档

相关文档