標(biāo)題:
按鍵控制步進(jìn)電機(jī)加減速程序,能加不能減,求高手指點(diǎn)程序錯(cuò)誤..
[打印本頁(yè)]
作者:
hts2008222
時(shí)間:
2015-10-23 20:40
標(biāo)題:
按鍵控制步進(jìn)電機(jī)加減速程序,能加不能減,求高手指點(diǎn)程序錯(cuò)誤..
//按鍵控制步進(jìn)電機(jī)加減速程序:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^4;
sbit k2=P3^5;
sbit A=P3^0;
sbit B1=P3^1;
sbit C=P3^2;
sbit D1=P3^3;
void DelayMS(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb<115;bb++) //1ms基準(zhǔn)延時(shí)程序
{
;
}
}
}
void main()
{
uint i;
i=500;
while(1)
{
if(k2==0)
{
while(k2==0);
if(i<50)
{
i=i+50;
if(i==500)
{
i==50;
}
}
DelayMS(200);
}
if(k1==0)
{
while(k1==0);
if(i>50)
{
i=i-50;
if(i==50)
{
i==500;
}
}
DelayMS(200);
}
A=1;//8拍
B1=0;
C=0;
D1=0;
DelayMS(i);
A=1;
B1=1;
C=0;
D1=0;
DelayMS(i);
A=0;
B1=1;
C=0;
D1=0;
DelayMS(i);
A=0;
B1=1;
C=1;
D1=0;
DelayMS(i);
A=0;
B1=0;
C=1;
D1=0;
DelayMS(i);
A=0;
B1=0;
C=1;
D1=1;
DelayMS(i);
A=0;
B1=0;
C=0;
D1=1;
DelayMS(i);
A=1;
B1=0;
C=0;
D1=1;
DelayMS(i);
}
}
作者:
滔滔貓
時(shí)間:
2015-10-25 10:45
感覺(jué)這么寫(xiě)好復(fù)雜,你這個(gè)思路是挺明確,可是硬件運(yùn)行起來(lái)的時(shí)候容易出問(wèn)題,持續(xù)的控制,我自己有一個(gè)程序需要加我QQ:229492525
作者:
騰飛的龍
時(shí)間:
2015-10-25 13:43
這個(gè)程序只能加不能減,減應(yīng)該 if(i>500)
{
i=i-50;
if(i==50)
{
i==50;
}
}
DelayMS(200);
這樣試試
作者:
hts2008222
時(shí)間:
2015-10-28 00:58
我自己后來(lái)詳查錯(cuò)誤后找出來(lái)了,在這幾句中
if(i>50)
{
i=i-50;
if(i==50)
{
i==500;
i==500;多了一個(gè)等于號(hào)"=="
正確的是:i=500;就可以了。
謝謝各位同志有心啦
作者:
hts2008222
時(shí)間:
2015-10-28 01:03
你好!你的程序是用數(shù)組的讀取法來(lái)實(shí)現(xiàn)的吧。本人用的是8腳mcu,只有6個(gè)i/o口。用那種方法可能會(huì)對(duì)按鍵有影響。。。
作者:
danpianji0211
時(shí)間:
2015-10-31 16:59
膜拜少時(shí)誦詩(shī)書(shū)s's
作者:
VampireHoly
時(shí)間:
2018-8-2 16:12
減的程序改成if(i<500)試試
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1