请问谁有单片机中步进机的程序代码?麻烦给小弟指教一下让小弟我参考参考,谢谢大虾了!小弟我积分全捐出 谁有单片机步进电机控制的毕业设计程序仿真,给我发一下,谢谢大
\u5355\u7247\u673a 2\u76f8\u6b65\u8fdb\u7535\u673a\u9a71\u52a8 \u5c0f\u5f1f\u6211\u73b0\u5728\u61c2\u4f7f\u6b65\u8fdb\u7535\u673a\u542f\u52a8 \u6362\u5411 \u5c31\u662f\u4e0d\u61c2\u5982\u4f55\u8bbe\u7f6e\u4e0b\u9762\u7684\u53c2\u6570 \u5e0c\u671b\u54ea\u4f4d\u6307\u70b9\u4e0b\u6b65\u8fdb\u7535\u673a\u80fd\u5355\u6b65\u8dd1\uff0c\u53ea\u80fd\u8bf4\u8dd1\u8d70\u6765\u3002\u4f46\u60f3\u8dd1\u5f97\u5feb\u3002\u5c31\u5f97\u8d70\u66f2\u7ebf\u3002
\u4f60\u8d70\u5355\u6b65\u65f6\u5019\uff0c\u7ed9\u7535\u5c31\u8d70\u4e00\u6b65\u3002\u5982\u679c\u60f3\u8fde\u7eed\u8d70\u51e0\u6b65\uff0c\u5219\u6bcf\u8d70\u4e00\u6b65\u8981\u7b49\u4e0a10-20MS\u3002\u751a\u81f3\u66f4\u957f\u3002\u5047\u5b9a10MS\u8d70\u4e00\u6b65\u30021\u79d2\u949f\u53ef\u4ee5\u8d70100\u6b65\u3002\u6b65\u8fdb\u7535\u673a\u6bcf\u5708\u6709\u51e0\u767e\u6b65\uff0c\u5e38\u89c1\u7684\u6709200\u6b65\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u6bcf2\u79d2\u53ef\u4ee5\u8f6c1\u5708\u30021\u5206\u949f\u4e5f\u5c3130\u8f6c\u3002\u60f3\u60f3\u770b\uff0c\u5982\u679c\u8ba9\u4f60\u7528\u6b65\u8fdb\u7535\u673a\u505a\u4e2a\u95f9\u949f\uff0c\u90a3\u4e0d\u662f\u600e\u4e48\u505a\u90fd\u6ca1\u4e0d\u80fd\u4e86\u5417\uff1f
\u5176\u5b9e\uff0c\u8fd9\u53ea\u662f\u4e00\u4e2a\u65b9\u9762\u3002\u4e3a\u4ec0\u4e48\u5355\u6b65\u8981\u7b4910-20MS\u5462\u3002\u662f\u56e0\u4e3a\u7535\u673a\u8fd0\u8f6c\u9700\u8981\u7535\u80fd\u8f6c\u673a\u68b0\u80fd\uff0c\u518d\u514b\u670d\u963b\u529b\u3002\u4ece\u505c\u5230\u52a8\u4e5f\u9700\u8981\u65f6\u95f4\u3002\u4e0d\u8fc7\u3002\u4e00\u4f46\u8fd0\u8f6c\u8d77\u6765\uff0c\u6709\u4e86\u52a8\u80fd\uff0c\u60c5\u51b5\u5c31\u4e0d\u4e00\u6837\u4e86\u3002\u6709\u4e86\u52a8\u80fd\u5c31\u6709\u4e86\u60ef\u6027\u529b\u3002\u53ea\u8981\u8fd9\u4e2a\u529b\u8d8a\u5927\uff0c\u5f80\u524d\u51b2\u7684\u901f\u5ea6\u5c31\u53ef\u4ee5\u8d8a\u5927\u3002\u5c31\u50cf\u73a9\u9640\u87ba\u4e00\u6837\u3002\u8f6c\u8d77\u6765\u4ee5\u540e\uff0c\u518d\u52a0\u628a\u529b\u5c31\u53ef\u4ee5\u8dd1\u5f97\u5f88\u5feb\u3002\u4f46\u60f3\u8ba9\u9640\u87ba\u8f6c\u8d77\u6765\uff0c\u5c31\u5f97\u5148\u6709\u4e00\u4e2a\u529b\u8ba9\u9640\u87ba\u5148\u8f6c\u8d77\u6765\u3002
\u8fd9\u4e2a\u529b\u5c31\u662f\u542f\u52a8\u9891\u7387\u3002\u8ba9\u7535\u673a\u5148\u52a8\u8d77\u6765\u3002\u7136\u540e\u3002\u518d\u62bd\u4e00\u4e0b\u3002\u52a0\u70b9\u529b\u3002\u62bd\u591a\u91cd\u5c31\u51b3\u5b9a\u4e86\u8dd1\u591a\u5feb\u3002\u8fd9\u4e2a\u5c31\u662f\u52a0\u901f\u65f6\u95f4\u3002\u591a\u957f\u65f6\u95f4\u8ba9\u7535\u673a\u8dd1\u5230\u6700\u7406\u60f3\u7684\u901f\u5ea6\u3002\u8dd1\u8d77\u6765\u4ee5\u540e\u3002\u7a0d\u5fae\u7ed9\u70b9\u529b\u5c31\u80fd\u7ef4\u6301\u8fd9\u4e2a\u901f\u5ea6\u3002\u8fd9\u4e2a\u529b\u7684\u4f5c\u7528\u5c31\u662f\u7ef4\u6301\u6700\u7406\u60f3\u7684\u901f\u5ea6\u3002\u8fd9\u4e2a\u901f\u5ea6\u5c31\u662f\u8fd0\u884c\u9891\u7387\u3002
\u597d\u4e86\uff0c\u8f6c\u7d2f\u4e86\uff0c\u80af\u5b9a\u8981\u505c\u4e0b\u6765\u3002\u4e0d\u8fc7\uff0c\u8f6c\u8d77\u6765\u5c31\u5df2\u7ecf\u6709\u4e86\u60ef\u6027\u529b\u3002\u60f3\u9a6c\u4e0a\u505c\u4e0b\u6765\u662f\u4e0d\u53ef\u80fd\u7684\u3002\u5f97\u6162\u6162\u7684\u505c\u3002\u4e00\u70b9\u4e00\u70b9\u7684\u51cf\u5c0f\u529b\u5ea6\u3002\u8fd9\u4e2a\u5c31\u662f\u51cf\u901f\u65f6\u95f4\u3002
\u6700\u540e\u4e00\u4e2a\u70b9\uff0c\u603b\u8109\u51b2\u4e2a\u6570\u3002\u4f60\u603b\u5171\u8d70\u4e86\u591a\u5c11\u8d70\uff1f\u8fd9\u4e2a\u77e5\u9053\u5427\uff1f\u8fd9\u4e2a\u5c31\u662f\u603b\u8109\u51b2\u4e2a\u6570\u3002
\u597d\u4e86\uff0c\u9053\u7406\u8bf4\u5b8c\u4e86\uff0c\u4f60\u8fd8\u662f\u4e0d\u4f1a\u505a\u3002\u4e3a\u4ec0\u4e48\uff1f\u6ca1\u6709\u5177\u4f53\u7684\u505a\u3002
\u542f\u52a8\u9891\u7387\u5c31\u662f\u5355\u6b65\u8fd0\u884c\u65f6\u95f4\u5c31\u884c\u4e86\u3002\u8d70\u51e0\u6b65\u5f00\u59cb\u52a0\u901f\u8fd9\u662f\u4e00\u4e2a\u53c2\u6570\u3002\u4f60\u8981\u505a\u3002\u8fd9\u4e2a\u6b65\u6570\u4ee5\u5185\u3002\u6309\u5355\u6b65\u8fd0\u884c\u65f6\u95f4\u6765\u505a\u5c31\u884c\u4e86\uff0810-20MS\uff09.
\u52a0\u901f\u65f6\u95f4\u3002\u8fd9\u4e2a\u6bd4\u8f83\u9ebb\u70e6\u3002\u4f60\u4e0a\u7f51\u627e\u4e00\u4e0b\u6b65\u8fdb\u7535\u673a\u66f2\u7ebf\u8ba1\u7b97\u65b9\u6cd5\u3002\u8fd9\u4e2a\u548c\u5177\u4f53\u7684\u7535\u673a\u53c2\u6570\u76f8\u5173\u3002\u4e0d\u662f\u6211\u80fd\u8bf4\u6e05\u695a\u7684\u3002\u9700\u8981\u6570\u5b66\u548c\u7535\u673a\u77e5\u8bc6\u3002\u4e0d\u8fc7\uff0c\u6ca1\u5173\u7cfb\u3002\u4f60\u627e\u5230\u7535\u673a\u8d44\u6599\u3002\u4e0b\u8f7d\u4e00\u4e2a\u8f6f\u4ef6\u3002\u7136\u540e\u628a\u53c2\u6570\u8f93\u5165\u3002\u8f6f\u4ef6\u53ef\u4ee5\u81ea\u52a8\u751f\u6210\u66f2\u7ebf\u7684\u3002
\u8fd0\u884c\u9891\u7387\uff0c\u81ea\u5df1\u8bbe\u3002\u8bbe\u9ad8\u4e86\u5c31\u4f1a\u8dd1\u4e0d\u52a8\uff0c\u8dd1\u7740\u8dd1\u7740\u4f1a\u505c\u987f\u751a\u81f3\u505c\u4e0b\u6765\u7684\u3002\u4f60\u81ea\u5df1\u8bd5\u8bd5\u5c31\u77e5\u9053\u4e86\u3002
\u52a0\u901f\u65f6\u95f4\uff0c\u6839\u636e\u521a\u624d\u7684\u8f6f\u4ef6\u6765\u51b3\u5b9a\u7684\u3002\u6ca1\u529e\u6cd5\u6539\u3002\u65f6\u95f4\u592a\u77ed\u4e86\uff0c\u7535\u673a\u8dd1\u4e0d\u5feb\u7684\u3002\u65f6\u95f4\u592a\u957f\u4e86\uff0c\u597d\u957f\u65f6\u95f4\u90fd\u4e0d\u80fd\u8dd1\u5230\u6700\u9ad8\u901f\u5ea6\u3002
\u51cf\u901f\u65f6\u95f4\u5c31\u662f\u52a0\u901f\u65f6\u95f4\u7684\u66f2\u7ebf\u53cd\u8fc7\u6765\u8dd1\u3002\u4e0d\u7528\u89e3\u91ca\u4e86\u3002
\u603b\u8109\u51b2\u4e2a\u6570\u3002\u81ea\u5df1\u6570\u5c31\u884c\u4e86\u3002\u4f60\u8ba9\u5b83\u8dd1\u4e00\u6b65\uff0c\u5c31\u8ba1\u4e00\u4e2a\u3002
\u8bf4\u5b8c\u4e86\u3002\u7b80\u5355\u5427\uff01
\u6b65\u8fdb\u7535\u673a\u63a7\u5236\u7f51\u4e0a\u5f88\u591a\u7684\u4f8b\u7a0b\uff0c\u627e\u4e00\u4e2a\u6765\u81ea\u5df1\u4e0b\u70b9\u529b\u6c14\u6539\u6539\u518d\u7528\u5c31\u597d\u4e86\uff0c\u5b8c\u5168\u7b26\u5408\u6761\u4ef6\u7684\u53ef\u80fd\u6ca1\u6709\u3002\u8fd9\u662f\u4ee5\u524d\u505a\u7684\u4e00\u4e2a\u4e24\u76f8\u6b65\u8fdb\u7535\u673a\u63a7\u5236\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b\uff1a
#include#define uchar unsigned charuchar stepd[]={0x01,0x03,0x02,0x06,0x04,0xc0,0x08,0x09};uchar num=0,fx=0;sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;void t0isr() interrupt 1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;P2=stepd[num];if(fx==0){num++;num%=8;}if(fx==1){if(num==0)num=7;else num--;}}main(){TMOD=0x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;TR0=1;ET0=1;EA=1;while(1){if(key1==0){while(key1==0);TR0=~TR0;}if(key2==0){while(key2==0);fx=0;}if(key3==0){while(key3==0);fx=1;}}}
#include "AT89X51.h"
int delay();
void inti_lcd();
void show_lcd(int);
void cmd_wr();
void ShowState();
void clock(unsigned int Delay) ;
void DoSpeed(); //计算速度
//正转值
#define RIGHT_RUN 1
//反转值
#define LEFT_RUN 0
sbit RS=0xA0;
sbit RW=0xA1;
sbit E=0xA2;
char SpeedChar[]="SPEED(n/min):";
char StateChar[]="RUN STATE:";
char STATE_CW[]="CW";
char STATE_CCW[]="CCW";
char SPEED[3]="050";
unsigned int RunSpeed=50; //速度
unsigned char RunState=RIGHT_RUN; //运行状态
main()
{
/*定时器设置*/
TMOD=0x66; //定时器0,1都为计数方式;方式2;
EA=1; //开中断
TH0=0xff; //定时器0初值FFH;
TL0=0xff;
ET0=1;
TR0=1;
TH1=0xff; //定时器1初值FFH;
TL1=0xff;
ET1=1;
TR1=1;
IT0=1; //脉冲方式
EX0=1; //开外部中断0:加速
IT1=1; //脉冲方式
EX1=1; //开外部中断1:减速
inti_lcd();
DoSpeed();
ShowState();
while(1)
{
clock(RunSpeed);
P0_1=P0_1^0x01;
}
}
//定时器0中断程序:正转
void t_0(void) interrupt 1
{
RunState=RIGHT_RUN;
P0_0=1;
P1=0x01;
cmd_wr();
ShowState();
}
//定时器1中断:反转
void t_1(void) interrupt 3
{
RunState=LEFT_RUN;
P0_0=0;
P1=0x01;
cmd_wr();
ShowState();
}
//中断0:加速程序
void SpeedUp() interrupt 0
{
if(RunSpeed>=12)
RunSpeed=RunSpeed-2;
DoSpeed();
P1=0x01;
cmd_wr();
ShowState();
}
//中断1:减速程序
void SpeedDowm() interrupt 2
{
if(RunSpeed<=100)
RunSpeed=RunSpeed+2;
DoSpeed();
P1=0x01;
cmd_wr();
ShowState();
}
int delay() //判断LCD是否忙
{
int a;
start:
RS=0;
RW=1;
E=0;
for(a=0;a<2;a++);
E=1;
P1=0xff;
if(P1_7==0)
return 0;
else
goto start;
}
void inti_lcd() //设置LCD方式
{
P1=0x38;
cmd_wr();
delay();
P1=0x01; //清除
cmd_wr();
delay();
P1=0x0f;
cmd_wr();
delay();
P1=0x06;
cmd_wr();
delay();
P1=0x0c;
cmd_wr();
delay();
}
void cmd_wr() //写控制字
{
RS=0;
RW=0;
E=0;
E=1;
}
void show_lcd(int i) //LCD显示子程序
{
P1=i;
RS=1;
RW=0;
E=0;
E=1;
}
void ShowState() //显示状态与速度
{
int i=0;
while(SpeedChar[i]!='\0')
{
delay();
show_lcd(SpeedChar[i]);
i++;
}
delay();
P1=0x80 | 0x0d;
cmd_wr();
i=0;
while(SPEED[i]!='\0')
{
delay();
show_lcd(SPEED[i]);
i++;
}
delay();
P1=0xC0;
cmd_wr();
i=0;
while(StateChar[i]!='\0')
{
delay();
show_lcd(StateChar[i]);
i++;
}
delay();
P1=0xC0 | 0x0A;
cmd_wr();
i=0;
if(RunState==RIGHT_RUN)
while(STATE_CW[i]!='\0')
{
delay();
show_lcd(STATE_CW[i]);
i++;
}
else
while(STATE_CCW[i]!='\0')
{
delay();
show_lcd(STATE_CCW[i]);
i++;
}
}
void clock(unsigned int Delay) //1ms延时程序
{ unsigned int i;
for(;Delay>0;Delay--)
for(i=0;i<124;i++);
}
void DoSpeed()
{
SPEED[0]=(1000*6/RunSpeed/100)+48;
SPEED[1]=1000*6/RunSpeed%100/10+48;
SPEED[2]=1000*6/RunSpeed%10+48;
}
绛旓細void SpeedUp() interrupt 0 { if(RunSpeed>=12)RunSpeed=RunSpeed-2;DoSpeed();P1=0x01;cmd_wr();ShowState();} //涓柇1:鍑忛绋嬪簭 void SpeedDowm() interrupt 2 { if(RunSpeed<=100)
绛旓細sbit KEY1 = P3^2; //姝ヨ繘鐢垫満閫嗘椂閽堟柟鍚戣浆 sbit KEY2 = P3^3; //姝ヨ繘鐢垫満椤烘椂閽堟柟鍚戣浆 sbit KEY3 = P3^4; //姝ヨ繘鐢垫満璋冮 uchar step = 0;bit AB_flag = 0;unsigned char code A_Rotation[8]={0x08,0x18,0x10,0x30,0x20,0x60,0x40,0x48}; //椤烘椂閽堣浆琛ㄦ牸 unsi...
绛旓細keyd.asm...姝ヨ繘鐢垫満鎺у埗绋嬪簭p3.2姝h浆,p3.3鍙嶈浆,p3.4鍋滄 姝ヨ繘鐢垫満鎺1.0p1.1p1.2p1.3 ;閬ユ帶鐢垫満绋嬪簭锛 鎸夐仴鎺у櫒0-9姝ヨ繘鐢垫満姝h浆0-9姝ワ紝鎸夐仴鎺у櫒11-19姝ヨ繘鐢靛櫒鍒嗗埆鍙嶈浆 ;0-9姝ワ紝鍚屾椂鏁扮爜绠″垎鍒樉绀哄綋鍓鐨鏁板瓧锛;;* [email protected] (51c51 test web) www.8951.com ...
绛旓細sp=50H(鍥犱负鍦绋嬪簭涓紝sp鍑忎簡涓ゆ锛屽悗鏉ュ張鍔犱簡涓ゆ锛屽湪绋嬪簭鏈鍚巖et鏈夊湪杩斿洖鐨鏃跺欏噺浜嗕袱娆★紝鍗冲湴鍧鍑烘爤锛屾晠鏈缁堢粨鏋滄槸50h銆傦紙51h锛=30h锛涳紙52h锛=50h锛涘洜涓簉et鎸囦护杩斿洖鏃讹紝鍑烘爤鐨勭粨鏋滄槸楂樺湴鍧=锛52h锛=50h锛涜屼綆鍦板潃=(51h)=30h;鏁呮渶缁堢粨鏋減c鍊兼槸5030h锛...
绛旓細姝ヨ繘鐢垫満鎺у埗缃戜笂寰堝鐨渚嬬▼锛屾壘涓涓潵鑷繁涓嬬偣鍔涙皵鏀规敼鍐嶇敤灏卞ソ浜嗭紝瀹屽叏绗﹀悎鏉′欢鐨勫彲鑳芥病鏈夈傝繖鏄互鍓嶅仛鐨勪竴涓袱鐩告杩涚數鏈烘帶鍒绋嬪簭锛屽彲浠ュ弬鑰冧竴涓嬶細include<reg51.h>#define uchar unsigned charuchar stepd[]={0x01,0x03,0x02,0x06,0x04,0xc0,0x08,0x09};uchar num=0,fx=0;sbit key1=P3...
绛旓細鍗曠墖鏈锛圡icrocontroller Unit锛孧CU锛夋槸涓绉嶅皬鍨嬪寲鐨勮绠楁満绯荤粺锛屽畠灏嗚绠楁満鐨凜PU銆丷AM銆丷OM銆両/O鎺ュ彛绛夋牳蹇冮儴浠堕泦鎴愬湪涓鍧楄姱鐗囦笂锛屽叿鏈変綋绉皬銆佸姛鑰椾綆銆佹帶鍒跺姛鑳藉己銆佹墿灞曠伒娲荤瓑鐗圭偣銆傚湪鎺у埗姝ヨ繘鐢垫満鏃讹紝鍗曠墖鏈轰富瑕佽礋璐d骇鐢熷拰鍙戦佹帶鍒惰剦鍐蹭俊鍙枫绋嬪簭璁捐鐨鏍稿績鏄牴鎹杩涚數鏈虹殑鍨嬪彿鍜岃鏍硷紝纭畾鎵闇鐨勬帶鍒朵俊鍙...
绛旓細51鍗曠墖姝ヨ繘鐢垫満鎺у埗鍘熺悊涓庢帶鍒惰璁绋嬪簭 51鍗曠墖姝ヨ繘鐢垫満鏄暟瀛楁帶鍒剁數鏈猴紝瀹冨皢鑴夊啿淇″彿杞彉鎴愯浣嶇Щ锛屽嵆缁欎竴涓剦鍐蹭俊鍙凤紝姝ヨ繘鐢垫満灏辫浆鍔ㄤ竴涓搴︼紝鍥犳闈炲父閫傚悎浜鍗曠墖鏈鎺у埗銆傛杩涚數鏈哄彲鍒嗕负鍙嶅簲寮忔杩涚數鏈(绠绉癡R)銆佹案纾佸紡姝ヨ繘鐢垫満(绠绉癙M)鍜屾贩鍚堝紡姝ヨ繘鐢垫満(绠绉癏B)銆51鍗曠墖姝ヨ繘鐢垫満鍖哄埆浜庡叾浠栨帶鍒剁數鏈鐨鏈...
绛旓細鍥炵瓟锛#include <REGX51.H> #define uchar unsigned char #define uint unsigned int sbit s1=P3^5; sbit s2=P3^6; sbit s3=P3^7; uchar keyval; void delayms(uchar z) { uchar i,j; for (i=z; i>0; i++) for(j=110;j>0; j++); }void delay() { uint k; for(k=0...
绛旓細delayus(zz*100); //100鍙互鏀癸紝鏅舵尟涓嶅悓鏈夋墍涓嶅悓锛岀洿鍒版劅瑙夎浆鍔ㄥ钩婊戞湁鍔涗负姝 } } else { switch(t){ case 1: zz=4;break;case 2: zz=3;break;case 3: zz=2;break;case 4: zz=1;break;} for(i=8;i>=1;i--) //鍙嶈浆 { P1=table1[i];delayus(zz*100);} } } el...
绛旓細step = 0;P0 = Tab[step];switch(runmode){ case 0 : //姝h浆 step = (step + 1) % 8;break;case 1 : //鍙嶈浆 step = (step + 7) % 8;break;case 2 : //瀹 break;case 3 : //鍋 step = 8; //Tab[8] = 0x00;break;} } //鍦ㄥ畾鏃跺櫒涓柇閲岃皟鐢ㄨ繖涓嚱鏁板氨鍙互浜嗐