直流电机驱动PWM频率(转)
/* =======直流电机的PWM速度控制程序======== */ /* 纬东工作室 robots51.51.net 2006年6月 */ /* 晶振采用11.0592M,产生的PWM的频率约为91Hz */ #include<reg51.h> #include<math.h> #define uchar unsigned char #define uint unsigned int sbit en1=P1^; /* L298的Enable A */ sbit en2=P1^; /* L298的Enable B */ sbit s1=P1^; /* L298的Input 1 */ sbit s2=P1^; /* L298的Input 2 */ sbit s3=P1^; /* L298的Input 3 */ sbit s4=P1^; /* L298的Input 4 */ uchar t=; /* 中断计数器 */ uchar m1=; /* 电机1速度值 */ uchar m2=; /* 电机2速度值 */ uchar tmp1,tmp2; /* 电机当前速度值 */ /* 电机控制函数 index-电机号(1,2); speed-电机速度(-100—100) */ <span style="color: rgb(255, 0, 0);">void motor(uchar index, char speed)</span> { if(speed>=- && speed=) { if(index==) /* 电机1的处理 */ { m1=abs(speed); /* 取速度的绝对值 */ if(speed<) /* 速度值为负则反转 */ { s1=; s2=; } else /* 不为负数则正转 */ { s1=; s2=; } } if(index==) /* 电机2的处理 */ { m2=abs(speed); /* 电机2的速度控制 */ if(speed<) /* 电机2的方向控制 */ { s3=; s4=; } else { s3=; s4=; } } } } void delay(uint j) /* 简易延时函数 */ { for(j;j>;j--); } void main() { uchar i; TMOD=0x02; /* 设定T0的工作模式为2 */ TH0=0x9B; /* 装入定时器的初值 */ TL0=0x9B; EA=; /* 开中断 */ ET0=; /* 定时器0允许中断 */ TR0=; /* 启动定时器0 */ while() /* 电机实际控制演示 */ { for(i=;i=;i++) /* 正转加速 */ { motor(,i); motor(,i); delay(); } for(i=;i>;i--) /* 正转减速 */ { motor(,i); motor(,i); delay(); } for(i=;i=;i++) /* 反转加速 */ { motor(,-i); motor(,-i); delay(); } for(i=;i>;i--) /* 反转减速 */ { motor(,-i); motor(,-i); delay(); } } } void timer0() interrupt /* T0中断服务程序 */ { if(t==) /*<span style="color: rgb(255, 0, 0);"> 1个PWM周期完成后(100次中断)才会接受新数值</span> */ { tmp1=m1; tmp2=m2; } if(t<tmp1) en1=; else en1=; /* <span style="color: rgb(255, 0, 0);">产生电机1的PWM信号,[0,tmp1=m1]均是高电平</span> */ if(t<tmp2) en2=; else en2=; /* 产生电机2的PWM信号 ,同理*/ t++; if(t>=) t=; /*<span style="color: rgb(255, 0, 0);"> 1个PWM信号由100次中断产生</span> */ }
直流电机驱动PWM频率(转)的更多相关文章
- stm32直流电机驱动与测速代码配套视频资料
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
- stm32直流电机驱动与测速学习总结
通过实验发现,定时器的一个通道控制一个pwm信号. 在正式开始之前也可以参考这个视频学习资料 (stm32直流电机驱动) http://www.makeru.com.cn/live/1392_1218 ...
- 不可错过的stm32单片机直流电机驱动与测速详解
stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了 ...
- 轻松掌握stm32直流电机驱动与测速
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
- stm32直流电机驱动与测速
stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了 ...
- Stm32 定时器 定时时间设置及PWM频率 占空比的设置总结
一.定时器的时钟: 当SYSCLK等于72M,APB1等于36M APB2等于72M时,定时器的时钟为72M.注意图中这句话:如果APB1/APB2预分频器=1则频率不变,否则频率x2.如果此时,AP ...
- STM32定时器输出PWM频率和步进电机控制速度计算
1.STM32F4系列定时器输出PWM频率计算 第一步,了解定时器的时钟多少: 我们知道AHP总线是168Mhz的频率,而APB1和APB2都是挂在AHP总线上的. (1)高级定时器timer1, t ...
- 直流电机驱动,TIMER口配置
电机的电压输出能力和频率有关??? 修改前:------------------------------------------------------------------------------ ...
- STM32中的PWM的频率和占空比的设置
转于http://blog.csdn.net/liming0931/article/details/8491468 下面的这个是stm32的定时器逻辑图,上来有助于理解: TIM3的ARR寄存器和 ...
随机推荐
- CentOS安装VirtualBox增强工具
安装过程中出现错误: Bulding the VirtualBox Guest Additions Kernel modules failedYour system does not seem to ...
- 随机法解决TSP问题
TSP问题一直是个头疼的问题,但是解决的方法数不胜数,很多的算法也都能解决.百度资料一大堆,但是我找到了代码比较简练的一种.随机法.下面只是个人的看法而已,如果有任何问题虚心接受. 顾名思义,随机法就 ...
- Android应用程序基础
Android程序使用Java语言编写.Android开发套件把数据.资源文件和Java代码编译到一个.以.apk为后缀名的Android压缩包中.一个单独的apk文件中的所有代码被认为是一个andr ...
- redmine配置邮件
作为一个项目管理平台,必须能够通知项目成员有关项目和任务的各种状态变化.这也是一种典型的观察者模式.开发人员可以跟踪某个任务,当任务状态.备注.文档.优先级等变化时开发人员就可以得到通知. 对于新配置 ...
- zf-关于把某个地址的svn项目移动到另一个上面的步骤
1 首先查检出来 2 然后断开连接 删除元信息(这个必须注意,很敏感的,不然酒吧元信息带入到了另外一个svn地址中了) 3 之后再到另外一个svn上建立远程资源文件,把项目导入进去,注意不要导入错了, ...
- li里元素都浮动 li 在IE6 7 下方会产生4px间隙问题
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- PAT (Advanced Level) 1047. Student List for Course (25)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
- 利用cookie实现“只弹出一次窗口”的JS代码
弹出式窗口通常被用来做弹出广告(CPM),其实用弹出式窗口用来做消息通知也是最普遍而且是最有效的方法,但如果每次刷新页面特别是刷新首页都要弹出窗口的话,那绝对是让访问者厌烦的事情. 比如你将上面的脚本 ...
- 基于POI的Excel导入导出(JAVA实现)
今天做了个excel的导入导出功能,在这记录下. 首先现在相关poi的相关jar包,资源链接:http://download.csdn.net/detail/opening_world/9663247 ...
- java socket 多线程网络传输多个文件
http://blog.csdn.net/njchenyi/article/details/9072845 java socket 多线程网络传输多个文件 2013-06-10 21:26 3596人 ...