智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2421|回复: 4
打印 上一主题 下一主题

求牛人写个51单片机的两路PWM程序。框架即可

[复制链接]

5

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
威望
147
贡献
33
兑换币
0
注册时间
2012-3-25
在线时间
15 小时
毕业学校
理工大学
跳转到指定楼层
1#
发表于 2012-7-16 12:31:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献
例如motor(x,y)的模块
x,y为左右两路电机的占空比

3

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
174
威望
117
贡献
43
兑换币
0
注册时间
2012-7-5
在线时间
7 小时
毕业学校
中国科技大学
2#
发表于 2012-7-16 16:51:47 | 只看该作者
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
回复

使用道具 举报

5

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
威望
147
贡献
33
兑换币
0
注册时间
2012-3-25
在线时间
15 小时
毕业学校
理工大学
3#
 楼主| 发表于 2012-7-16 16:58:47 | 只看该作者
sunyb 发表于 2012-7-16 16:51
void PWM_Init(int m,int n)
{
PWME_PWME0=0; // Disable PWM 禁止

你这是XS128的。。我是说stc89c52的。。。通过定时器中断来输出的
回复

使用道具 举报

3

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
174
威望
117
贡献
43
兑换币
0
注册时间
2012-7-5
在线时间
7 小时
毕业学校
中国科技大学
4#
发表于 2012-7-17 09:59:19 | 只看该作者
wytc1122 发表于 2012-7-16 16:58
你这是XS128的。。我是说stc89c52的。。。通过定时器中断来输出的

失误了
回复

使用道具 举报

24

主题

1175

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5379
威望
2669
贡献
1706
兑换币
1811
注册时间
2012-10-29
在线时间
502 小时
5#
发表于 2013-1-11 07:12:25 | 只看该作者

参考一下吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 16:40 , Processed in 0.047765 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表