久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5839|回復: 6
打印 上一主題 下一主題
收起左側

51單片機如何控制電機且如何用pwm控制調速,知道占空比等理論,不知道實際操作是什...

[復制鏈接]
跳轉到指定樓層
樓主
45黑幣
新人我要控制電機運作,完全懵逼,且還要被要求用pwm調速,我知道占空比之類的理論,但不知道pwm是個什么玩意,還需要自行編寫一套程序做數模轉換什么的么?純萌新

QQ截圖20190311224127.png (94.46 KB, 下載次數: 71)

QQ截圖20190311224127.png

QQ截圖20190311224221.png (126.9 KB, 下載次數: 84)

QQ截圖20190311224221.png

最佳答案

查看完整內容

呵呵呵,正好我有一個簡單的,你一看就明白了: #include sbit z=P1^0;//直流電機一個腳,控制用,另一腳一定接電源正極 sbit k1=P3^1; sbit k2=P3^0; sbit k3=P3^2; sbit k4=P3^3; unsigned char i,n; void Delay10ms(unsigned char c) { unsigned char a,b; for(c;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } void zd(void)//電機轉動函數 { if (n==1) { z=1 ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:164602 發表于 2019-3-11 22:44 | 只看該作者
呵呵呵,正好我有一個簡單的,你一看就明白了:
#include<reg51.h>

sbit z=P1^0;//直流電機一個腳,控制用,另一腳一定接電源正極
sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;

unsigned char i,n;

void Delay10ms(unsigned char c)
{
    unsigned char a,b;
    for(c;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}

void zd(void)//電機轉動函數
{
        if (n==1)
        {
                z=1;//通電
                Delay10ms(60-i);//占空比中的占的值
                z=0;//斷電
                Delay10ms(i);//占空比中的空的值,周期固定為60ms
        }
        else
        {
                z=0;
        }
}

void main(void)
{
        unsigned char m;
        n=0;z=0;
        while (1)
        {

                if(k1==0)               
                {
                        Delay10ms(1);       
                        if(k1==0)               
                        {

                                n=1;
                                i=0;

                                for (m=0;((m<50)&&(k1==0));m++)       
                            {
                                    Delay10ms(1);
                            }
                        }
                }

                if(k2==0)               
                {
                        Delay10ms(1);       
                        if(k2==0)               
                        {

                                n=0;

                                for (m=0;((m<50)&&(k2==0));m++)       
                            {
                                    Delay10ms(1);
                            }
                        }
                }

                if(k3==0)               
                {
                        Delay10ms(1);       
                        if(k3==0)               
                        {

                                n=1;
                                i=i+10;
                                if (i>50)
                                {
                                        i=50;
                                }

                                for (m=0;((m<50)&&(k3==0));m++)       
                            {
                                    Delay10ms(1);
                            }
                        }
                }

                if(k4==0)               
                {
                        Delay10ms(1);       
                        if(k4==0)               
                        {

                                n=1;
                                i=i-10;
                                if (i>50)
                                {
                                        i=0;
                                }

                                for (m=0;((m<50)&&(k4==0));m++)       
                            {
                                    Delay10ms(1);
                            }
                        }
                }
                zd();
        }
}


怎么樣?對應電路是這樣的:




回復

使用道具 舉報

板凳
ID:317383 發表于 2019-3-12 07:51 | 只看該作者
利用鍵盤控制直流電機轉動速度,從而控制小車運動。
部分代碼,具體下載附件(包括代碼和仿真)
void init_time()
{
        TMOD=0X01;
        TH0=(65536-500)/256;
        TL0=(65536-500)%256;
        EA=1;
        ET0=1;
        TR0=1;
}
void time0() interrupt 1 using 1
{
        static uchar num;
        num++;
        if(num==numR) ENB=~ENB;
        if(num==numL)        ENA=~ENA;       
        if(num==100){ENA=~ENA;ENB=~ENB;num=0;}
        TH0=(65536-500)/256;
        TL0=(65536-500)%256;       
}
小車控制(PWM調節).rar (18 KB, 下載次數: 37)




pwmCon.jpg (264.88 KB, 下載次數: 71)

pwm控制仿真圖

pwm控制仿真圖
回復

使用道具 舉報

地板
ID:438987 發表于 2019-3-12 22:48 | 只看該作者
HC6800-ES-V2.0 發表于 2019-3-11 22:44
呵呵呵,正好我有一個簡單的,你一看就明白了:
#include

電機轉動函數那里倒是很有啟發,但鍵盤控制那個(m=0;((m<50)&&(k1==0));m++)  不是很能看懂,打算參考
做if選擇語句+!cw(按位取反)+定時器或者延時函數  的這種模式做
回復

使用道具 舉報

5#
ID:438987 發表于 2019-3-12 22:49 | 只看該作者
大體思路應該是很清晰了,細枝末節我再想想,謝謝
回復

使用道具 舉報

6#
ID:164602 發表于 2019-3-13 07:20 | 只看該作者
雨夜帶刀 發表于 2019-3-12 22:48
電機轉動函數那里倒是很有啟發,但鍵盤控制那個(m=0;((m

你說的這個,是松鍵消抖的功能,并且可以讓程序不會“死于一直按著不松手”。
回復

使用道具 舉報

7#
ID:438987 發表于 2019-3-13 21:23 | 只看該作者
HC6800-ES-V2.0 發表于 2019-3-13 07:20
你說的這個,是松鍵消抖的功能,并且可以讓程序不會“死于一直按著不松手”。

松鍵消抖,嗯,我還是做一個                temp=P2;                              
                temp=temp&0xf0;                       
                if(temp!=0xf0)                        
                {
                        temp=P2;                           
                        {
                               case 0xbe:key=0;break;         
                                case 0xde:key=1;break;           
                                case 0xee:key=2;break;
                        }
                        while(temp!=0xf0)                  
                        {
                                temp=P2;
                                temp=temp&0xf0;                 
                        }
這種類型的消抖吧,雖然感覺方法笨了點,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲色图婷婷 | 欧美一级www片免费观看 | 一区二区三区国产在线观看 | www国产精| 久久久久久免费免费 | 可以在线观看av的网站 | 色黄爽| www国产成人免费观看视频,深夜成人网 | 狠狠干影院 | 亚洲精品国产综合区久久久久久久 | 国产在线高清 | 亚洲国产精品一区 | 91精品国产一二三 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲国产成人精品在线 | 中文字幕1区 | 国产成人精品a视频一区www | 九九热在线免费观看 | 91嫩草精品| 亚洲国产精品久久人人爱 | 国产资源视频 | 日韩中文字幕久久 | 欧美电影在线观看网站 | 中文字幕国产精品视频 | 国产色片 | 国产一级免费在线观看 | 91精品国产综合久久久久 | 国产女人与拘做受免费视频 | 欧美久久久久久久 | 国产精品一区在线观看 | 亚洲国产中文在线 | 一区二区三区四区电影 | 亚洲欧美国产一区二区三区 | 日日做夜夜爽毛片麻豆 | 高清国产一区二区 | 久久久久久久一区二区三区 | 在线天堂免费中文字幕视频 | 欧美不卡一区二区三区 | 亚洲不卡在线观看 | 成人av播放 | 99精品久久久|