PWM调速的C语言程序编写.doc

上传人:豆**** 文档编号:33506316 上传时间:2022-08-11 格式:DOC 页数:4 大小:13KB
返回 下载 相关 举报
PWM调速的C语言程序编写.doc_第1页
第1页 / 共4页
PWM调速的C语言程序编写.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《PWM调速的C语言程序编写.doc》由会员分享,可在线阅读,更多相关《PWM调速的C语言程序编写.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、nt 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语句运行时花费的时间故实际占空比略低,但误差是很小的。需要高精度的朋友可以自己做修改。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁