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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7058|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

[求助]求步進電機加減速控制程序,單片機的C51語言程序,要是用定時器實現(xiàn)的加減速控制。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:42436 發(fā)表于 2012-7-5 08:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 就是為了步進電機有一個比較高的速度啟動時讓步進電機有一個加速過程,從而得到比較高的速度,現(xiàn)在就要求用定時器中斷來完成,大神會的指導(dǎo)一下小弟,非常的感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:27916 發(fā)表于 2012-7-5 09:15 | 只看該作者
步進電機的速度快不到哪里去哦
回復(fù)

使用道具 舉報

板凳
ID:42436 發(fā)表于 2012-7-5 11:01 | 只看該作者
 我現(xiàn)在不加減速的話速度只能到300多,我現(xiàn)在需要它到600多,版主知道怎么弄么?最好能有程序,感謝了。
回復(fù)

使用道具 舉報

地板
ID:27916 發(fā)表于 2012-7-5 12:41 | 只看該作者
延時減短就可以
回復(fù)

使用道具 舉報

5#
ID:42436 發(fā)表于 2012-7-5 14:48 | 只看該作者
 延時是可以,但是我現(xiàn)在需要用定時期來延時,因為我需要同時控制兩個電機運行。我是通過給定時器賦值,然后改變這個值弄的,但不明白為什么就是實現(xiàn)不了,這是我的程序,麻煩幫我看一下,有沒有什么錯誤。
// 加大轉(zhuǎn)速   加減速過程


#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開始計數(shù)一直到65535溢出
  TL0=(65536-j)%256; //TL0=0x00;
 EA=1;            //總中斷打開
 ET0=1;           //定時器中斷打開
 TR0=1;           //定時器開關(guān)打開
}

/*------------------------------------------------
                    主程序
------------------------------------------------*/
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;
        }
}
回復(fù)

使用道具 舉報

6#
ID:42565 發(fā)表于 2012-7-7 23:47 | 只看該作者
“interrupt 1”中,數(shù)字有沒有錯誤
回復(fù)

使用道具 舉報

7#
ID:42586 發(fā)表于 2012-7-8 14:09 | 只看該作者

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

回復(fù)

使用道具 舉報

8#
ID:506152 發(fā)表于 2019-4-19 21:55 | 只看該作者
我現(xiàn)在也遇到了和樓主一樣的問題,樓主解決了沒
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表