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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為什么單片機按鍵控制電機不動,一直響,求解

[復制鏈接]
跳轉到指定樓層
樓主
ID:858009 發表于 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--);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:277550 發表于 2021-5-18 12:49 | 只看該作者
驅動電壓、電流,是否足夠,不可以直接單片機的IO驅動的
回復

使用道具 舉報

板凳
ID:844772 發表于 2021-5-18 15:00 | 只看該作者
moveup() 里面沒有延時啊,步進電機的每步要加個延時,否則轉不起來,頂多抖動發聲。
回復

使用道具 舉報

地板
ID:520967 發表于 2021-5-18 15:05 | 只看該作者
先用指示燈看下控制是否出現錯誤,在查看驅動電流是否足夠
回復

使用道具 舉報

5#
ID:808225 發表于 2021-5-18 18:16 | 只看該作者
普通直流電機,51開發板可以驅動的,建議看看代碼有沒有錯。
回復

使用道具 舉報

6#
ID:858009 發表于 2021-5-18 18:20 | 只看該作者
漠城 發表于 2021-5-18 18:16
普通直流電機,51開發板可以驅動的,建議看看代碼有沒有錯。

編譯代碼沒有出錯
回復

使用道具 舉報

7#
ID:858009 發表于 2021-5-18 18:20 | 只看該作者
devcang 發表于 2021-5-18 12:49
驅動電壓、電流,是否足夠,不可以直接單片機的IO驅動的

使用un2003驅動
回復

使用道具 舉報

8#
ID:858009 發表于 2021-5-18 18:21 | 只看該作者
glinfei 發表于 2021-5-18 15:00
moveup() 里面沒有延時啊,步進電機的每步要加個延時,否則轉不起來,頂多抖動發聲。

加延時就出錯
回復

使用道具 舉報

9#
ID:858009 發表于 2021-5-18 18:22 | 只看該作者
glinfei 發表于 2021-5-18 15:00
moveup() 里面沒有延時啊,步進電機的每步要加個延時,否則轉不起來,頂多抖動發聲。

沒有任何反應
回復

使用道具 舉報

10#
ID:889094 發表于 2021-5-18 21:40 來自觸屏版 | 只看該作者
什么電機都不說一下,怎么判斷?估計是5線4相小電機,換相之間延時要大于100us,這個值要自己試試,從大往小調
回復

使用道具 舉報

11#
ID:889094 發表于 2021-5-18 21:43 來自觸屏版 | 只看該作者
qwettyuio 發表于 2021-5-18 18:21
加延時就出錯

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表