单片机学习小组
直播中

陶珪扁

7年用户 219经验值
私信 关注

如何用STC12C5A60S2内部PWM实现控制电机正反转?

STC12C5A60S2可以通过设置使P1^3和P1^4输出PWM 波形,但我现在要把P1^3和P1^4分别接在LN298的控制端上实现使电机正反转,可是现在的情况是电机只能一个方向转.程序如下,求大神看看怎么写才能实现我要的功能
#include
#include
#define uchar unsigned char
#define uint unsigned int
void delay(int z)
{
int x,y;
for(x=0;x for(y=0;y<930;y--);
}
void main()
{
CCON=0X00;
CH=0;  
CL=0;
CMOD=0X02; //PWM????SYSCLK/2/256,????CF??????
CCAP0H=CCAP0L=0X80;   //PWM0   50%????±?
CCAPM0=0X42;    //8??pwm??????,???í±????÷????,???í?÷??????
CCAP1H=CCAP1L=0xff; //PWM1  0%????±?
CCAPM1=0X42;
while(1)
{
CCAP0H=CCAP0L=0Xff;
CCAP1H=CCAP1L=0x80;
CR=1;
delay(3000);
CR=0;
CCAP0H=CCAP0L=0X80;
CCAP1H=CCAP1L=0xff;
CR=1;        //??PCA?????÷
delay(3000);
CR=0;
}
}

回帖(6)

于扬

2019-7-11 13:37:01
找到问题啦..........是太粗心了,那个延时程序写错啦,一延时就好久
举报

秦伙茂

2019-7-11 13:45:50
先直接接高低电平实现正反转来,程序就好写了呗
举报

王超

2019-7-11 13:55:43
先帮顶!    你是用的直流电机还是用的四相电机。你可以用PWM来控制转动的速度。并且通过来回切换PWM的channel来使电机正反转。
举报

吴巧芬

2019-7-11 14:03:57
ATmega16的功能比这个好,也好操作。为毛不用呢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分