打印

求助:PWM调速

[复制链接]
1606|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蹲坑大变变|  楼主 | 2012-5-9 20:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究智能小车的直流电机调速,遇到以下几个问题,望高手解答1:有看了些关于PWM调速的书,但是感觉把理论运用到单片机编程上就不会了。
2:pid算法与pwm调速有什么关系?
3:以下是stc12c5a60s2官网提供的pwm的示例程序,不知道还要加入什么程序才能控制电机转动并控制占空比?
4:如何才能学会pwm调速?
#include <reg52.h>
#include <intrins.h>

#define FOSC    18432000L

typedef unsigned char BYTE;
typedef unsigned int  WORD;
////////////////////主函数入口////////////////////////////
sfr CCON     = 0xD8; //PCA控制寄存器
sbit CCF1 = 0xD9;     //PCA模块1中断标志
sbit CCF0 = 0xD8;     //PCA模块0中断标志
sbit CF   = 0xDF;     //PCA计数溢出标志位
sbit CR   = 0xDE;     //PCA计数器 运行控制位
sfr CMOD     = 0xD9; //PCA模式寄存器
sfr CL       = 0xE9;    //PCA 定时寄存器 低位
sfr CH       = 0xF9; //PCA 定时寄存器 高位
sfr CCAPM0   = 0xDA; //PCA模块0模式寄存器 //模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)   
sfr CCAPM1   = 0xDB; //PCA模块1模式寄存器 //模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)
sfr CCAP0L   = 0xEA; //PCA模块0的 捕获寄存器 低位
sfr CCAP0H   = 0xFA;    //PCA模块0的 捕获寄存器 高位
sfr CCAP1L   = 0xEB; //PCA模块1的 捕获寄存器 低位
sfr CCAP1H   = 0xFB; //PCA模块1的 捕获寄存器 高位
sfr PCA_PWM0 = 0xF2; //PCA PWM 模式辅助寄存器0
sfr PCA_PWM1 = 0xF3; //PCA PWM 模式辅助寄存器1

void main()
{

CCON=0;




CL=0;

CH=0;

CMOD=0x02;


CCAP0H=CCAP0L=0x80;

CCAPM0=0x42;



CCAP1H=CCAP1L=0x80;
//
PCA_PWM1=0x03;

CCAPM1=0x42;





CR=1;


while(1);
}

相关帖子

沙发
logokfu| | 2012-5-9 21:47 | 只看该作者

使用特权

评论回复
板凳
coody| | 2012-5-10 14:40 | 只看该作者
更新CCAP0H的值就可以改占空比了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

0

粉丝