找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2325|回復(fù): 10
收起左側(cè)

這個(gè)單片機(jī)步進(jìn)電機(jī)勻加速程序有問(wèn)題嗎?

[復(fù)制鏈接]
ID:826204 發(fā)表于 2020-12-3 18:09 | 顯示全部樓層 |閱讀模式
求大神看看下列程序有沒有問(wèn)題
謝謝了

#include<reg52.h>
sbit shudu=P1^4;
sbit ENA=P1^5;
unsigned int Tspeed[3]={20,4000,10000};
unsigned int XL=1000;
unsigned int q=0;
void time();
void can();
void time()
{
    TMOD=0x01;
          TH0=(65536-XL)/256;
          TL0=(65536-XL)%256;
          EA=1;
          ET0=1;
          TR0=1;
}
void main()
{
           time();
     while(1);
           {
                   can();
                 }
}
void can()
{
        
                if(q==800)   //1/4圈脈沖
{
        XL-=100;
              q=0;   
}
    if(XL==100)
{
              q=0;
}
}
void clock() interrupt 1
{
    TH0=(65536-XL)/256;
          TL0=(65536-XL)%256;
          shudu=~shudu;
          q++;
}

回復(fù)

使用道具 舉報(bào)

ID:827243 發(fā)表于 2020-12-4 09:32 | 顯示全部樓層
基本沒問(wèn)題,800個(gè)脈沖調(diào)速一次,不過(guò)10次以后XL減到零還需要改良一下
回復(fù)

使用道具 舉報(bào)

ID:826204 發(fā)表于 2020-12-4 16:17 | 顯示全部樓層
daemondong 發(fā)表于 2020-12-4 09:32
基本沒問(wèn)題,800個(gè)脈沖調(diào)速一次,不過(guò)10次以后XL減到零還需要改良一下

但是  我試了一下
步進(jìn)電機(jī)并沒有加速
而是保持初始XL=1000的脈沖頻率一直轉(zhuǎn)
這是怎么回事啊
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2020-12-4 16:29 | 顯示全部樓層
改變量太小了,脈沖的頻率和步進(jìn)電機(jī)的轉(zhuǎn)速并不是線性關(guān)系的,在某些區(qū)間,幾乎對(duì)轉(zhuǎn)速改變不大。
回復(fù)

使用道具 舉報(bào)

ID:826204 發(fā)表于 2020-12-4 17:53 | 顯示全部樓層
robinsonlin 發(fā)表于 2020-12-4 16:29
改變量太小了,脈沖的頻率和步進(jìn)電機(jī)的轉(zhuǎn)速并不是線性關(guān)系的,在某些區(qū)間,幾乎對(duì)轉(zhuǎn)速改變不大。

我試了試  改變量大了也不行
能指點(diǎn)一下 怎么寫勻加速程序嗎
謝謝了
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2020-12-4 18:47 | 顯示全部樓層
TH0=(65536-XL)/256;  改成  TH0=(65535-XL)/256;
TL0=(65536-XL)%256; 改成  TL0=(65535-XL)%256;
再試試
回復(fù)

使用道具 舉報(bào)

ID:790408 發(fā)表于 2020-12-4 21:07 | 顯示全部樓層
驅(qū)動(dòng)步進(jìn)電機(jī)起步時(shí)不應(yīng)該讓電機(jī)慢慢加速嗎
回復(fù)

使用道具 舉報(bào)

ID:826204 發(fā)表于 2020-12-5 11:53 | 顯示全部樓層
1922323908 發(fā)表于 2020-12-4 21:07
驅(qū)動(dòng)步進(jìn)電機(jī)起步時(shí)不應(yīng)該讓電機(jī)慢慢加速嗎

對(duì)啊
我就是想讓它勻加速
但是程序有問(wèn)題
找不出來(lái)
回復(fù)

使用道具 舉報(bào)

ID:826204 發(fā)表于 2020-12-5 12:04 | 顯示全部樓層
robinsonlin 發(fā)表于 2020-12-4 18:47
TH0=(65536-XL)/256;  改成  TH0=(65535-XL)/256;
TL0=(65536-XL)%256; 改成  TL0=(65535-XL)%256;
再 ...

也不行
我編了好多的程序
只要改變中斷里的變量XL就行不通 (是不是定時(shí)器中斷不能有變量?)
總是保持第一個(gè)初始XL的頻率運(yùn)行、
所以一直弄不明白
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2020-12-5 14:38 | 顯示全部樓層
旅途1 發(fā)表于 2020-12-5 12:04
也不行
我編了好多的程序
只要改變中斷里的變量XL就行不通 (是不是定時(shí)器中斷不能有變量?)

剛剛仔細(xì)看了你的代碼, 程序框架結(jié)構(gòu)上有點(diǎn)漏洞。  請(qǐng)嘗試把  if(q==800)  改為 if(q>=800)  ,至于原因,自己慢慢體會(huì)吧,多總結(jié)就會(huì)有提高了。
回復(fù)

使用道具 舉報(bào)

ID:826204 發(fā)表于 2020-12-5 19:35 | 顯示全部樓層
robinsonlin 發(fā)表于 2020-12-5 14:38
剛剛仔細(xì)看了你的代碼, 程序框架結(jié)構(gòu)上有點(diǎn)漏洞。  請(qǐng)嘗試把  if(q==800)  改為 if(q>=800)  ,至于原因 ...

感謝你的回答
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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