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

標題: 51單片機控制步進電機正反轉控制程序 [打印本頁]

作者: 1963542898    時間: 2020-7-1 09:48
標題: 51單片機控制步進電機正反轉控制程序
#include <reg52.h>
typedef unsigned char uchar;
uchar direction = 0;  //0為正轉,1為反轉
uchar onoff = 0; //關為0,開為1
uchar n = 0; //每次定時器中斷觸發時n++,當n==max時電機轉動1/4
uchar max = 10;
uchar index = 0; //通過index指示電機轉動,AB,BC,CD,DA

sbit LED1 = P1 ^ 0;
sbit LED2 = P1 ^ 1;
sbit LED3 = P1 ^ 2;
sbit k_z = P3 ^ 3;
sbit k_f = P3 ^ 4;
sbit k_t = P3 ^ 6;
/*int main()
{
    P0 = 0xff;
   // 初始化中斷
    EA = 1;
    EX0 = 1; //要用到的中斷是兩個外部中斷和定時器中斷0
    IT0 = 1;
    EX1 = 1;
    IT1 = 1;
    ET0 = 1;
    //定時器0
    TMOD = 0x01; //使用定時器0,方式1
    TH0 = (65536 - 10000) / 256; //12MHz晶振下,定時器為10ms觸發中斷,更方便觀察轉動情況
    TL0 = (65536 - 10000) % 256;
    TR0 = 1;
    while(1)
    {
        switch(P3)
        {
        case 0xfe: //11111110
            max = 1;
            P0 = 1;
            break;
        case 0xfd: //11111101
            max = 10;
            P0 = 2;
            break;
        case 0xfb: //11111011
            max = 50;
            P0 = 3;
            break;
        case 0xf7: //11110111
            max = 100;
            P0 = 4;
            break;
        }
    }
} */
void Stop()interrupt 0
{
    onoff++;
    if (onoff > 1)
        onoff = 0;
}
void int1()interrupt 2
{
    direction++;
    if (direction > 1)
        direction = 0;
}
void delay50ms(void)
{
    unsigned char a, b;
    for(b = 173; b > 0; b--)
        for(a = 143; a > 0; a--);
}
void time()interrupt 1
{
    TH0 = (65536 - 10000) / 256;
    TL0 = (65536 - 10000) % 256;
    if (onoff == 1) //在開狀態下
    {
        if (n == max) //設定檔位速度,經過了max次中斷后,步進電機轉1/4圈
        {
            //LED = 0; //每次n==max時LED閃爍
            delay50ms();
            //LED = 1;
            if (k_z == 0)
            {
                                P1=0xfe;
                switch(index) //正轉時以AB,BC,CD,DA順序
                {
                case 0:P0 = 0x03;break; //00000011 AB高電平
                case 1:P0 = 0x06;break; //00000110 BC高電平
                case 2:P0 = 0x0c;break; //00001100 CD高電平
                case 3:P0 = 0x09;break; //00001001 DA高電平
                }
                index ++;
                if (index == 4) //步進電機轉完一圈時index清零
                    index = 0;
                n = 0; //到達max,n重置為0
            }
            if (k_f ==0)
            {
                                P1=0x00;
                switch(index) //反轉時以DA,CD,BC,AB順序
                {
                case 0:P0 = 0x09;break;
                case 1:P0 = 0x0c;break;
                case 2:P0 = 0x06;break;
                case 3:P0 = 0x03;break;
                }
                index ++;
                if (index == 4)
                    index = 0;
                n = 0;
            }
            else n = 0;
        }
        n++; //n!=max時,n++
    }
    else n = 0; //在關狀態下,n始終為0,無法觸發電機轉動
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91人人爽| 精品国产一区二区在线 | 久久只有精品 | 视频一区二区三区中文字幕 | 天堂免费看片 | 日本a级大片 | 国产伦一区二区三区 | 国产一级精品毛片 | 久在线 | 国产精品美女在线观看 | 青青草一区| 无码国模国产在线观看 | 91天堂| 午夜爽爽男女免费观看hd | 黄片毛片在线观看 | 国产精品亚洲精品 | 99久久久久 | 欧美一区二区激情三区 | 日韩一二区 | 一区二区久久精品 | 麻豆av一区二区三区久久 | 91视视频在线观看入口直接观看 | www.xxxx欧美 | 欧洲亚洲精品久久久久 | 色综合久 | 91精品国产91久久久久福利 | 国产小视频精品 | 日本成人免费网站 | 麻豆一区二区三区精品视频 | 欧美极品在线 | 国产精品美女在线观看 | 久久毛片 | 日韩高清一区 | 亚州精品天堂中文字幕 | 欧美日韩黄色一级片 | 黄色精品 | 久热精品在线播放 | 人人鲁人人莫人人爱精品 | www.黄色在线观看 | 羞羞视频在线网站观看 | 春色av|