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

標題: [求助]求步進電機加減速控制程序,單片機的C51語言程序,要是用定時器實現的加減速控制。 [打印本頁]

作者: xuxiaoqmm    時間: 2012-7-5 08:38
標題: [求助]求步進電機加減速控制程序,單片機的C51語言程序,要是用定時器實現的加減速控制。
 就是為了步進電機有一個比較高的速度啟動時讓步進電機有一個加速過程,從而得到比較高的速度,現在就要求用定時器中斷來完成,大神會的指導一下小弟,非常的感謝!
作者: 青蘋果    時間: 2012-7-5 09:15
步進電機的速度快不到哪里去哦
作者: xuxiaoqmm    時間: 2012-7-5 11:01
 我現在不加減速的話速度只能到300多,我現在需要它到600多,版主知道怎么弄么?最好能有程序,感謝了。
作者: 青蘋果    時間: 2012-7-5 12:41
延時減短就可以
作者: xuxiaoqmm    時間: 2012-7-5 14:48
 延時是可以,但是我現在需要用定時期來延時,因為我需要同時控制兩個電機運行。我是通過給定時器賦值,然后改變這個值弄的,但不明白為什么就是實現不了,這是我的程序,麻煩幫我看一下,有沒有什么錯誤。
// 加大轉速   加減速過程


#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit A1=P1^0;  //定義脈沖輸出
sbit B1=P1^1;  //定義方向輸出


 unsigned int i=0;

 unsigned int j=1000;


/*------------------------------------------------
                    定時器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
  TMOD |= 0x01;      //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響            
  TH0=(65536-j)/256;//TH0=0x00;          //給定初值,這里使用定時器最大值從0開始計數一直到65535溢出
  TL0=(65536-j)%256; //TL0=0x00;
 EA=1;            //總中斷打開
 ET0=1;           //定時器中斷打開
 TR0=1;           //定時器開關打開
}

/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
       Init_Timer0();
       while(1);

}

/*------------------------------------------------
                 定時器中斷子程序
------------------------------------------------*/
void Timer0_isr() interrupt 1
{

 TH0=(65536-j)/256;         
 TL0=(65536-j)%256;       
 
     if(i<=80)  //       勻速
        {
              B1=0;    // 正方向
            A1=~A1;        //用示波器可看到方波輸出
             i++;

            j=j-10;
        }

     if(i>80&&i<=6000)  // 勻速
        {
            B1=0;   // 正方向
            A1=~A1;        //用示波器可看到方波輸出
             i++;
        }

        if(i>6000&&i<=6080)  // 減速
        {
            B1=0;   // 正方向
            A1=~A1;        //用示波器可看到方波輸出
             i++;

        }

        if(i>6080)        // 停
        {
            TR0=0;
        }
}

作者: bittianlei    時間: 2012-7-7 23:47
“interrupt 1”中,數字有沒有錯誤

作者: 傳文ING    時間: 2012-7-8 14:09

能否將MAIN()的主程序也放上來看看呢?


作者: hufter    時間: 2019-4-19 21:55
我現在也遇到了和樓主一樣的問題,樓主解決了沒




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