用pwm控制直流电机的调速怎么用汇编语言实现急。。。。。。。。。。。望前辈指教

用pwm控制直流电机的调速怎么用汇编语言实现急。。。。。。。。。。。望前辈指教,第1张

;这是一个独立控制2路PWM的汇编程序:

;2个输出口以高电平为有效输出,也就是当输出100%时为高电平输出,输出0%时为低电平输出。

;改变10H-11H的值可以控制2路PWM的占空比变化,例如当10H中的值从0-255变化时候,P10输出从0%-100%变化

;此程序中频率完全固定不变化,改变10H,11H,12H中的值仅改变三路输出的占空比,

;频率是完全恒定的这里PWM波周期为(r7)50usx200=10mS,约为100Hz,晶振用的是12MHz

zzz EQU P10 ;左路马达输出口

yyy EQU P11 ;右路马达输出口

ld1 EQU 10H ;左路马达,即占空比的比值,0-255变化

ld2 EQU 11H ;右路马达,即占空比的比值,0-255变化

ORG 0000H

LJMP mm

ORG 000BH

LJMP t000

;主程序段

org 0100h

mm:nop ;复位程序

mov r4,#00h ;延时1秒用

mov r5,#00h

mov r6,#05h

MOV SP,#5fH

MOV P1,#0FFH ; P1置高,关闭全部灯

MOV 10h,#0fH ;给左路马达赋值,0ffh为速度最快,00h为最慢

MOV 11h,#8fH ;给右路马达赋值,0ffh为速度最快,00h为最慢

mov r0,10h ;将左路的赋值送进左路缓存

mov r1,11h ;将右路的赋值送进右路缓存

MOV TMOD,#02H ;50us t0方式2自动重装

mov tcon,#00h

MOV TH0,#0cdH

MOV TL0,#0cdH

mov r7,#200 ;设定周期数据

SETB EA

SETB ET0

SETB TR0

mov 20h,#00h

m0:acall ys00 ;延时1秒

;acall pwm ;改变速度子程序

sJMP m0

;定时器t0中断子程序<占用区0>

org 0180h

t000: ;50us t0中断子程序,用于实现三路PWM输出

PUSH ACC

PUSH PSW

clr psw4 ;进入区0

clr psw3

CJNE R7,#00H,AA ;从这里是程序的精华,检测R7值是否为0,等于0则下一条重新赋值,否则跳到AA

MOV R7,#200 ;R7重新赋值

setb 07h ;设置改变pwm数据标志位

MOV R0,10h ;把左路速度值复制给R1

MOV R1,11h ;把右路速度值复制给R2

AA:CJNE R0,#00H,BB ;判断控制左路的值是否(或是否被减为0)为0,是则下一条关闭左路,否则跳到BB

SETB zzz ;关闭左路

sJMP CC ;跳到CC检测右路

BB:CLR zzz ;打开(或继续打开)左路

DEC R0 ;R1数值减1

CC:CJNE R1,#00H,DD ;这里控制右路与上面左路原理一样

SETB yyy

sJMP GG

DD:CLR yyy

DEC R1

GG: DEC R7 ;把R7的值减1,R7的初始值是#200h

POP PSW

POP ACC

RETI

;延时1秒时间子程序

org 0200h

ys00:push dph

push dpl

push acc

push psw

clr psw4 ;进入区0

clr psw3

ys1:djnz r4,ys1

ys2:djnz r5,ys1

ys3:djnz r5,ys1

mov r4,#00h

mov r5,#00h

mov r6,#05h

acall pwm

pop psw

pop acc

pop dpl

pop dph

ret

;pwmr改变pwm时间子程序

org 0280h

pwm:jb 07h,pwm1 ;一个完整周期到否?

ret ;未到则返回

pwm1:push acc

push psw

clr psw4 ;进入区0

clr psw3

mov a,10h

cjne a,#0ffh,pwm3 ;未到最大则继续

mov 10h,#0fh

sjmp pwm4

pwm3:mov a,10h

add a,#10h

mov 10h,a

pwm4:mov a,11h

cjne a,#0ffh,pwm6 ;未到最大则继续

mov 11h,8fh

sjmp pwm11

pwm6:mov a,11h

add a,#10h

mov 11h,a

pwm11:clr 07h

pop acc

pop psw

ret

END

就是调节脉宽,来达到调节电压的目的,最终还是控制转速\x0d\\x0d\脉宽调制(PWM)是利用数字输出对模拟电路进行控制的一种有效技术,尤其是在对电机的转速控制方面,可大大节省能量。PWM具有很强的抗噪性,且有节约空间、比较经济等特点。模拟控制电路有以下缺陷:模拟电路容易随时间漂移,会产生一些不必要的热损耗,以及对噪声敏感等。而在用了PWM技术后,避免了以上的缺陷,实现了用数字方式来控制模拟信号,可以大幅度降低成本和功耗。\x0d\直流无刷电机\x0d\直流无刷电机由电动机、转子位置传感器和电子开关线路三部分组成。直流电源通过开关线路向电动机定子绕组供电,电动机转子位置由位置传感器检测并提供信号去触发开关线路中的功率开关元件使之导通或截止,从而控制电动机的转动。在应用实例中,磁极旋转,电枢静止,电枢绕组里的电流换向借助于位置传感器和电子开关电路来实现。电机的电枢绕组作成三相,转子由永磁材料制成,与转子轴相连的位置传感器采用霍尔传感器。3600范围内,两两相差1200安装,共安装三个。为了提高电机的特性,电机采用二相导通星形三相六状态的工作方式。开关电路采用三相桥式接线方式。\x0d\调速以及稳速控制\x0d\在调速电路中,主要采用时基电路LM555和脉宽调制器SG1525来完成,LM555用于产生一个占空比一定、且有固定频率的方波信号。SG1525为单片脉宽调制型控制器芯片,具有输出51V的基准稳压电源,误差放大器、振荡频率在100^400kHz范围内的锯齿波振荡器、软启动电路、关闭电路、脉宽调制比较器、RS寄存器以及保护电路等。它解决了PWM电路的集成化问题,在实例中用此芯片来实现系统的调速。在具体的电路中,首先对位置传感器信号进行整形,形成所需要的前后沿很陡,具有一定宽度的波形。经微分电路微分,产生的微分脉冲去触发时基电路LM555,形成占空比为2:1的方波,方波频率约为200Hzo\x0d\此方波频率计算公式为:f=np/60式中,Y1为电机的额定转速r/min,f为位置传感器输出信号的频率、P为电机的极对数。方波经滤波器滤波后,形成直流电压送人脉宽调制器,与脉宽调制器的反馈电压进行比较,利用得到的误差信号去控制脉宽调制器输出的调制方波脉冲的宽度变化,即PWM输出脉冲占空比的变化,利用占空比的变化调整加在电机电枢绕组上的电压,改变电压随即改变电机电流,转速依据电流的大小来改变。\x0d\在应用实例中,PWM对调速系统来说,有如下优点:系统的响应速度和稳定精度等指标比较好;电枢电流的脉动量小,容易连续,而且可以不必外加滤波电抗也可以平稳工作;系统的调速范围宽;使用元件少、线路简单。

这个问题不是在这个篇幅内能说清楚的。简短地说,交流电机调速有交流电机的PWM驱动方式,直流电机调速有直流电机的PWM驱动方式。

交流电机的PWM调速原理,主要通过一个频率可变的交流低频信号,去调制一个高频方波驱动电压,从而在电机电枢中得到一个随调制信号频率变化的驱动电流。于是交流电机电枢就在这个电流驱动下,产生与调制信号频率一致的旋转磁场,使得电机转子旋转速度发生改变。它的调制方式是调频。

直流电机的PWM调速原理与交流电机调速原理不同,它不是通过调频方式去调节电机的转速,而是通过调节驱动电压脉冲宽度的方式,并与电路中一些相应的储能元件配合,改变了输送到电枢电压的幅值,从而达到改变直流电机转速的目的。它的调制方式是调幅。

有几点要说的吧

1、首先,你定时器0定的好像是50ms,不是1ms吧

2、然后,定时器中断0里的K,定义为uint型,这样的话,每次进入中断,k都会重新定义,即每次都会清零,起不到累计的作用,应该写为 static unsigned int k = 0 ;定义为静态变量

3、接着,把定时器1设置为方式2,是8位自动重载定时器,你确定你知道这个怎么用?假设PWM=250,TH1=PWM,此时TL1=TH1,这样定时器1的定时时间为6us,当执行P10=1;P11=0;(这里用去2us)后的3us,进入定时器1中断,然后电平就被改变了,你有算过这样的频率和占空比吗?虽然理论上这样是能产生方波,但是这样的频率是不能驱动电机的

4、其实要让电机正反转,就是其中一端输出方波,另一端输出0就行了,用两个16位的定时器产生两路PWM,在自己的中断里改变电平,不要在其他中断里改变

以上就是关于用pwm控制直流电机的调速怎么用汇编语言实现急。。。。。。。。。。。望前辈指教全部的内容,包括:用pwm控制直流电机的调速怎么用汇编语言实现急。。。。。。。。。。。望前辈指教、电机的PWM如何调速、电机PWM如何调速等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9478304.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存