收藏 分享(赏)

PWM调速的C语言程序编写(非常简单).doc

上传人:精品资料 文档编号:9778015 上传时间:2019-09-03 格式:DOC 页数:4 大小:31KB
下载 相关 举报
PWM调速的C语言程序编写(非常简单).doc_第1页
第1页 / 共4页
PWM调速的C语言程序编写(非常简单).doc_第2页
第2页 / 共4页
PWM调速的C语言程序编写(非常简单).doc_第3页
第3页 / 共4页
PWM调速的C语言程序编写(非常简单).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、PWM 调速的 C 语言程序编写关于 PWM 的原理在上一篇文章中已经说的很详细了 ,现在就细说一下 pwm C 语言程序的编写。C 语言中 PWM 的编写有这么几种方法;一、用普通的I/O 口输出的 PWM ,二、使用定时计数器编写,三、就是使用片内 PWM 了。1 先说使用普通的 IO 口编写 PWM 程序了。使用 I/O 口输出 PWM 波形你必须首先明白 PWM 他的实质是:调制占空比,占空比就是波形中高电平的长度与整个波长的比值。我们写 C 语言的目的是写 PWM 波形的一个周期。在这个周期内高低电平的比值是可以改变的。这也就符合了 PWM 的原意脉宽调制。即高电平的宽度的调制。当然

2、了 PWM 他也可用于改变频率,我们这里只先说他改变脉宽。一旦我们的 C 语言程序写完那么他产生的 PWM 波形的频率就一定了。(也可写频率变化的 PWM,难度有点大)一般我们控制使用1K 到 10K 的 PWM 波进行控制。当然了你也可在要求不是很高的地方使用频率更低的 PWM 波。比如在飞思卡尔智能车比赛中我们学校使用的 PWM 波频率只有 600HZ.我们要改变一个 PWM 波周期内的高电平的宽度显然需要将一个 PWM 波的周期分成单片机可以控制的 N 个小的周期,N 的取值越大你的调速等级越高,但产生的 PWM 频率就越低。我们下面以实现 100级调速为例编写 PWM 程序。先写出程序

3、再慢慢给大家分析void pwm (uchar x,uint y) /X 为占空比 Y 为函数使用时间 uint i,j,a,b;for(i=y;i0;i-) /定时外函数for(j=7;j0;j-) /定时内函数for(a=y;a0;a-) /PWM 波高电平宽度PORTA=0X01;for(b=100-y;b0;b-) /PWM 低电平宽度PORTA=0X00;这个程序够简单吧 轻松的实现 AVR 单片机的 PA.0 口输出 7KHZ 左右的 PWM 脉冲你可以将 PORTA=0X01;改为 P1.0=0X01;就可以移植到 51 单片机上了为什么使用参数 Y 定时 是因为用普通 I/O 口控制它的开关没有使用定时器编写的灵活。如果这不符合你的需要 你可以不使用时间参数Y 控制他的开关,只要去掉关于 Y 的部分 利用控制 I/O 口的方向来控制它的使用上面的程序参数如下在 mega16 单片机上使用 8M 晶振 一个 PWM 脉冲大约 128s 循环 7 次是 940ms 所以输出 PWM 脉冲频率是 7KHZ 左右注意:我使用时精度要求不高 所以没有考虑 for 语句运行时花费的时间故实际占空比略低,但误差是很小的。需要高精度的朋友可以自己做修改。2.下面说如何使用定时/计数器来编写 PWM C 语言程序;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报