打印

无刷电机控制的书

[复制链接]
1934|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
logokfu| | 2013-7-2 21:32 | 只看该作者
支持

使用特权

评论回复
板凳
qq2941070113|  楼主 | 2013-7-2 21:39 | 只看该作者
忘记了说一句, 写好了免费给网友下载

使用特权

评论回复
地板
huangxz| | 2013-7-2 22:51 | 只看该作者
网上已经很多了啊,如果没有的深度,建议不要浪费时间了啊

使用特权

评论回复
5
二月十五| | 2013-7-3 17:37 | 只看该作者
支持免费给网友下载

使用特权

评论回复
6
qq2941070113|  楼主 | 2013-7-3 21:02 | 只看该作者
网上的书,写得太复杂了,想把内容写简单些.

使用特权

评论回复
7
qingqiu647| | 2013-7-3 23:31 | 只看该作者
支持,哈哈,想看看

使用特权

评论回复
8
qq2941070113|  楼主 | 2013-7-4 10:13 | 只看该作者
本帖最后由 qq2941070113 于 2013-7-5 09:07 编辑

/*********************************Copyright (c)*****************************/
//
//                              倍工电子
//                              
//                      http://2941070113.qzone.qq.com
//
//项目名称: PWM模拟
//编译环境: keil
//转载请注名出处
//作者QQ: 2941070113
// 本文件是只是讲PWM的基本原理. 不能用于项目.
/***************************************************************************/
//==================================================================
//模拟PWM输出控制灯的10个亮度级别
//==================================================================
#include "reg52.h"                        //包括一个52标准内核的头文件
//------------------------------------------------------------------
#define uchar unsigned char                 //定义一下方便使用
#define uint unsigned int                                //同上
sbit P10=P1^0;                                                                        //要控制的LED灯
sbit K1=P1^7;                                                                                //按键K1
//------------------------------------------------------------------
uchar scale;                                //用于保存占空比的输出0的时间份额,总共10份
//==================================================================
//模拟PWM输出控制灯的10个亮度级别
//==================================================================
void main(void)                                        //主程序
{
        uint n;
        TMOD=0X10;                                                //定时器1工作方式1
        TH1=0xf3; TL1=0x98;
        TR1=1;ET1=1;EA=1;                        //启动定时器,打开定时器0中断,打开总中断
        while(1)                                                        //程序循环
        {;                                                                                //主程序在这里就不断自循环,实际应用中,这里是做主要工作
                for(n=0;n<50000;n++);        //每过一会儿就自动加一个档次的亮度
                scale++; if(scale==10)scale=0;                                                
        }
}
//====================================================================
//1/1200秒定时器2中断
//====================================================================
void timer1() interrupt 3
{
        static uchar tt;                        //tt用来保存当前时间在一秒中的比例位置
        TH1=0xf3; TL1=0x98;
        tt++;
        if(tt==10)                                                //每1/120秒开始输出低电平
                {                tt=0;
                                if(scale!=0)                        //这里加是一句为了消除灭灯状态产生的鬼影
                                P10=0;
                }
        if(scale==tt) P10=1;        //按照当前占空比切换输出高电平
}

PWM.jpg (40.16 KB )

PWM.jpg

51_pwm.rar

994 Bytes

使用特权

评论回复
9
qq2941070113|  楼主 | 2013-7-4 10:20 | 只看该作者
PWM是电机控制的核心. 市面的书,把PWM讲得太复杂. 搞得初学者太累了.  上面的代码就是51模拟一个pwm. 核心代码其实只有几句话. 当然了,用上面的代码不能用来作项目, 其实用51来电机控制就不是一个很好的选择. 但为了方便入门, 51又是最好的.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

110

帖子

0

粉丝