欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 為什么單片機按鍵控制電機不動,一直響,求解 [打印本頁]

作者: qwettyuio    時間: 2021-5-18 11:19
標題: 為什么單片機按鍵控制電機不動,一直響,求解
#include <reg51.h>           //頭文件
#define uchar unsigned char
#define uint unsigned int
unsigned char keyval;   //存儲按鍵值
code BeatCode[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};   //正轉
code defeatcode[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反轉
void delay(uint z); //延時函數
int i;           //變量
sbit S1=P3^0;   //按鍵
unsigned long beats=0;
void StartMotor(unsigned long angle);
unsigned char tmp;
static unsigned char index=0;

void StartMotor(unsigned long angle)
{
        EA=0;
        beats=(angle*4076)/360;
        EA=1;
}
void moveup()
{
        tmp = P1;
        tmp = tmp & 0xF0;
        tmp = tmp | BeatCode[index];                        
        P1 = tmp;
        index++;
        index = index & 0x07;
        beats--;
}
void main()
{
        TMOD=0x01;
        EA=1;
        ET0=1;
        TR0=1;
        TH0=0xF8;
        TL0=0xCD;
        keyval=0;
        StartMotor(10);   //轉動十度
        while(1)
        {
                switch(keyval)
                {
                        case 1:moveup();break;
                }
        }
}
void Time0() interrupt  1
{
        TH0=0xF8;
        TL0=0xCD;
        if((P3&0x0f)!=0x0f)
        {
                delay(5);
                if(S1==0)
                        keyval=1;
        }
}
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}


作者: devcang    時間: 2021-5-18 12:49
驅動電壓、電流,是否足夠,不可以直接單片機的IO驅動的
作者: glinfei    時間: 2021-5-18 15:00
moveup() 里面沒有延時啊,步進電機的每步要加個延時,否則轉不起來,頂多抖動發聲。
作者: dahai1029167960    時間: 2021-5-18 15:05
先用指示燈看下控制是否出現錯誤,在查看驅動電流是否足夠
作者: 漠城    時間: 2021-5-18 18:16
普通直流電機,51開發板可以驅動的,建議看看代碼有沒有錯。
作者: qwettyuio    時間: 2021-5-18 18:20
漠城 發表于 2021-5-18 18:16
普通直流電機,51開發板可以驅動的,建議看看代碼有沒有錯。

編譯代碼沒有出錯
作者: qwettyuio    時間: 2021-5-18 18:20
devcang 發表于 2021-5-18 12:49
驅動電壓、電流,是否足夠,不可以直接單片機的IO驅動的

使用un2003驅動
作者: qwettyuio    時間: 2021-5-18 18:21
glinfei 發表于 2021-5-18 15:00
moveup() 里面沒有延時啊,步進電機的每步要加個延時,否則轉不起來,頂多抖動發聲。

加延時就出錯
作者: qwettyuio    時間: 2021-5-18 18:22
glinfei 發表于 2021-5-18 15:00
moveup() 里面沒有延時啊,步進電機的每步要加個延時,否則轉不起來,頂多抖動發聲。

沒有任何反應
作者: birdzhyli    時間: 2021-5-18 21:40
什么電機都不說一下,怎么判斷?估計是5線4相小電機,換相之間延時要大于100us,這個值要自己試試,從大往小調
作者: birdzhyli    時間: 2021-5-18 21:43
qwettyuio 發表于 2021-5-18 18:21
加延時就出錯

加延時出錯就查出錯的原因




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1