“常用公式”在线计算,“设计手册”在线查询
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 1 个关于本帖的回复 最后回复于 2013-3-13 14:16

沙发
狗狗 新来的 发表于 2013-3-13 14:16:54 | 只看该作者
研发埠培训中心
直流电机调速主要采用PWM调速方式实现。51单片机实现直流电机调速可以采用中断方式实现PWM脉宽的控制,实现调速功能。 下例是51单片机结合中断实现直流电机调速的程序。#include<reg52.h> sbit KEY1 = P3^1;    //定义调速按键sbit PWM = P1^5;    //定义调速端口unsigned char CYCLE;    //定义周期T=x*0.1msunsigned char PWM_ON ;    //定义高电平时间 void delay(unsigned int cnt){        while(--cnt);} main(){        unsigned char PWM_Num;        TMOD |=0x01;        TH0=(65536-1000)/256;        TL0=(65536-1000)%256;        IE= 0x82;        TR0=1;         CYCLE = 10;        while(1)        {                if(!KEY1)                {                        delay(10000);                        if(!KEY1)                        {                                PWM_Num++;                                if(PWM_Num==4)                                         PWM_Num=0;                                switch(PWM_Num)                                 {                                        case 00=0x06WM_ON=0;break;                                        case 10=0x5BWM_ON=4;break;                                        case 20=0x4FWM_ON=6;break;                                        case 30=0x66WM_ON=8;break;                                        default:break;                                }                        }                }        }}void tim(void) interrupt 1 using 1{        static unsigned char count;        TH0=(65536-1000)/256;        TL0=(65536-1000)%256;         if (count==PWM_ON)        {                PWM = 1;        }        count++;        if(count == CYCLE)        {                count=0;                if(PWM_ON!=0)                        PWM = 0;         }}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台