智能车制作

标题: 求牛人写个51单片机的两路PWM程序。框架即可 [打印本页]

作者: wytc1122    时间: 2012-7-16 12:31
标题: 求牛人写个51单片机的两路PWM程序。框架即可
例如motor(x,y)的模块
x,y为左右两路电机的占空比

作者: sunyb    时间: 2012-7-16 16:51
void PWM_Init(int m,int n)
{
PWME_PWME0=0; // Disable PWM 禁止
PWME_PWME1=0; // Disable PWM 禁止

PWMPRCLK=0x11; // 0011 0011 A=B=总线频率/2 时钟预分频寄存器设置

PWMCLK_PCLK1=0; // PWM1-----A 时钟源的选择
PWMPOL_PPOL1=1; // Duty=High Time 极性设置
PWMCAE_CAE1=0; // Left-aligned 对齐方式设置

PWMPER1=100; // Frequency=A/2= 周期寄存器设置
PWMDTY1=m; // Duty cycle = m% 占空比寄存器设置

PWMCLK_PCLK0=0; // PWM3-----A 时钟源的选择
PWMPOL_PPOL0=1; // Duty=High Time 极性设置
PWMCAE_CAE0=0; // Left-aligned 对齐方式设置

PWMPER0=100; // Frequency=A/2= 周期寄存器设置
PWMDTY0=n; // Duty cycle = n% 占空比寄存器设置

PWME_PWME0=1; // Enable PWM 使能
PWME_PWME1=1; // Enable PWM 使能
}
应该可以用,出来的频率是总线频率的1/200
作者: wytc1122    时间: 2012-7-16 16:58
sunyb 发表于 2012-7-16 16:51
void PWM_Init(int m,int n)
{
PWME_PWME0=0; // Disable PWM 禁止

你这是XS128的。。我是说stc89c52的。。。通过定时器中断来输出的
作者: sunyb    时间: 2012-7-17 09:59
wytc1122 发表于 2012-7-16 16:58
你这是XS128的。。我是说stc89c52的。。。通过定时器中断来输出的

失误了
作者: Neozoic    时间: 2013-1-11 07:12
[attach]39275[/attach]
参考一下吧





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2