基于单片机软件实现直流电机pwm以及电机的测速

基于单片机软件实现直流电机pwm以及电机的测速

ID:9707722

大小:59.00 KB

页数:5页

时间:2018-05-05

基于单片机软件实现直流电机pwm以及电机的测速_第1页
基于单片机软件实现直流电机pwm以及电机的测速_第2页
基于单片机软件实现直流电机pwm以及电机的测速_第3页
基于单片机软件实现直流电机pwm以及电机的测速_第4页
基于单片机软件实现直流电机pwm以及电机的测速_第5页
资源描述:

《基于单片机软件实现直流电机pwm以及电机的测速》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于单片机软件实现直流电机PWM以及电机的测速.freeler0()interrupt1{-if(temp){TH0=time_h_0;TL0=time_l_0;//设置低电平时间temp=0;}-else{TH0=time_h_1;TL0=time_l_1;//设置高电平时间,可以通过键盘设定来达到调速功能。temp=1;T0_count++;//作测速定时用}//这样定时在两个时间里变化起到类似两个定时器的作用//qianjin从键盘读取-if(qianjin==1)//正转{lun1=temp;lun2=1;//低电平有效}-elseif(q

2、ianjin==2)//反转{lun1=1;lun2=temp;}-elseif(qianjin==3)//停止{lun1=1;lun2=1;}}这样就可以实现直流电机正反转和调速。当然键盘程序比较简单,篇幅所限,不详细给出。五、测速通过红外对管来测量轮子转速,电路图如下:测速可以分3种:测频法、测周法和测频侧周混合法。这里我只介绍测频法,因为已经用了一个定时器,可以在这个定时器基础上设定时间,程序中T0_count就是时间变量。若要用侧周法,会有一个误差,主要来自定时器的误差。时间定了后接下来要测脉冲数,可以用计数器或者外部中断,采用计数器比较方

3、便。程序:-if(T0_count=125){TR1=0;//关闭计数器T0_count=0;int_h=TH1;//T1计数缓冲单元int_l=TL1;TH1=0;//清计数器TL1=0;T1_count=0;TR1=1;//开启计数器}//Time1中断服务函数//对T1溢出产生中断的次数进行计数//计满65535,产生一次溢出中断voidtimer1()interrupt3{//因为电机转速实际测量中电机转速并不超过65536的计数,所以不会进入中断。不然可以//用一个变量来计数}显然转速=(int_h*256+int_l)/125*P脉冲周

4、期。这里有一个误差需要修正,因为进入定时中断需要进行进行压栈等工作所以会有一定误差。摘取进入定时器中断的反汇编程序:78:voidtimer0()interrupt179:{80:C:0x0250C0E0PUSHACC(0xE0)C:0x0252C0D0PUSHPSOVTH0(0x8C),time_h_0(0x08)84:TL0=time_l_0;C:0x025A850A8AMOVTL0(0x8A),time_l_0(0x0A)85:temp=0;C:0x025DC200CLRtemp(0x20.0)86:}87:-elseC:0x025F800A

5、SJMPC:026B88:{89:TH0=time_h_1;C:0x026185098CMOVTH0(0x8C),time_h_1(0x09)90:TL0=time_l_1;C:0x0264850B8AMOVTL0(0x8A),time_l_1(0x0B)91:temp=1;C:0x0267D200SETBtemp(0x20.0)92:T0_count++;C:0x0269050CINCT0_count(0x0C)93:}显然在进入中断后首先要进行ACC和PSOV指令。把这些时间算进去后,精度就会比较高。估计在4000hz情况下测到的是4006hz

6、左右,这里的误差可能是中断响应需要一定时间,可以通过加上7、8个机器周期来修正。最后能得到4000hz以内误差只在1hz。六、结论本系统实现了直流电机的转速、方向的设定和转速的测量,而且测速精度非常高。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。