工控产业网

资讯

电机控制中的16位PWM在

工控产业网 2017-11-18

  占空比来实现调速。因此,PWM波发生器在直流电机的控制中是不可缺少的。

  C8051PCA高速输出工作方式一、PCA捕捉/比较模块的高速输出工作方式原理C8051单片机有PWM功能,该功能包含在一称为可编程计数器阵列PCA当中。

  可编程计数器阵列PCA包含1个16位的定时器/计数器和5个捕捉/比较模块,而每个捕捉/比较模块都有16位的模块寄存器(8位的PCAOCPHn和8位的PCAOCPLn),且每个捕捉/比较模块都有4种工作方式。其中在高速输出工作方,当PCA计数器PCA0L和PCA0H的值与该模块寄存器PCAOCPLn和PCAOCPHn中的常数值相等时,就使CEXA弓卿上的逻辑电平发生一次变化(取反),同时触发一次中断,使该模块的中断标志位CCFn被置1;如果响应这个中断,CCFr、须用软件清0.利用高速输出工作方式的这个特点,我f可以实现16位的PWM功能。PCA高速输出工作方式原理图如所示⑴。

  根据高速输出工作方式的工作原理,我们可以知道,当条件匹IEW,在CEXn弓脚上会产生一次正跳变或一次负跳变,同时触发一次中断。如果在正跳变时,将PWM高电平计数值装人16位的模块寄存器PCAOCPLn中和PCAOCPHn中;而在负跳变时,将0000H装入16位的模块寄存器PCAOCPLn和PCAOCPHn中,在CEXn引脚上我I、河以得到16位的PWM输出。这一过程可由进一步说明1.由上图可见,假如初始时CEXn引脚输出低电平,而且PCA定时器初值为0000H;当匹B己条件满足时,CEXn引脚变为高电平,同时引发一次中断。在中断服务子程序中,将PWM常数值装入模块寄存器PCAOCPn中。每一个PCA时钟,PCA定时器加1,直到与模块寄存器PCAOCPn中的PWM等时满足了匹配条件,谢使CEXn引厉出变为低电平,同时又会引发一次中断。在中断服务子程序中,将0000H装入模块寄存器PCAOCPn中,ttWPCA定时器在每?个PCA时钟到来时继续加1,直到加到FFFFH时,再加1产生溢出,PCA的值变为0000H,这样又产生##的匹配条件,使CEXn引脚变为高电平,同时引发一次中断。这次在中断服务子程序中,将PWM常数值装人模块寄存器PCAOCPn中。这样循环下去,就会在CEXn弓丨脚上输出16位的PWM PCA的高速输出工作方式原理图这个16位的PWM波的占空比由下式决定:改变变量PWM的值就可以改变占空比。

  如果取系统时钟的4分频作为PCA时钟的话,考虑到中研究方向:自动控制微机测控及电子技术;CEX0定向到PO.O;交叉开关允许;配置PO.O推M出;禁止PCA中断,PCA;将PWM的低8位送;将PWM的高8位送;设为告诉输出工作方;允许PCA中断;允许中断;允许使用PCA;是模块中断,不是模块中;读P0.0当前状时断服务程序要花一定的时间(假设没有的中断),则PWM的小值是7个PCA时钟,大值是65529个PCA时钟,这样小占空比为0.01068,大占空比为99.9893.如果取系统时钟的12分频作为PCA时钟的话,PWM的小值是3个PCAW1中,这样小占空比为0.0046,耜占空比为PWM波的频率等于PCA时钟频率的65536分频。下面是利用高速输出工作方式实现16位PWMX力能的初始化程序和中断服务子程序。在这个程序中‘系统时钟使用内部振荡器16MHz;使用模块0,其端口CEX0定向到P0.0;PCA时钟使用系统时钟4分频;16位PWM值存放到20H、21H中,低8位在前,其数据格式与PCA时钟相同m.三、相关程序初始化程序:用内部振荡器16MHz断服务子程序如下:BCCCF0,WXY1跳向处理程序断,退出RETI四、结束语我们还可以用上面相同的方法来获得n位PWM波,其中8

相关推荐

进入资讯首页查看更多内容 >