舞蹈机器人Word文件下载.docx

上传人:b****3 文档编号:18464740 上传时间:2022-12-16 格式:DOCX 页数:44 大小:24.68KB
下载 相关 举报
舞蹈机器人Word文件下载.docx_第1页
第1页 / 共44页
舞蹈机器人Word文件下载.docx_第2页
第2页 / 共44页
舞蹈机器人Word文件下载.docx_第3页
第3页 / 共44页
舞蹈机器人Word文件下载.docx_第4页
第4页 / 共44页
舞蹈机器人Word文件下载.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

舞蹈机器人Word文件下载.docx

《舞蹈机器人Word文件下载.docx》由会员分享,可在线阅读,更多相关《舞蹈机器人Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。

舞蹈机器人Word文件下载.docx

//定义电机0的状态A

unsignedcharstate0_B=0;

//定义电机0的状态B

unsignedcharstate1_A=0;

//定义电机1的状态A

unsignedcharstate1_B=0;

//定义电机1的状态B

unsignedcharstate2_A=0;

//定义电机2的状态A

unsignedcharstate2_B=0;

//定义电机2的状态B

unsignedcharstate3_A=0;

//定义电机3的状态A

unsignedcharstate3_B=0;

//定义电机3的状态B

unsignedcharstate4_A=0;

//定义电机4的状态A

unsignedcharstate4_B=0;

//定义电机4的状态B

unsignedcharstate5_A=0;

//定义电机5的状态A

unsignedcharstate5_B=0;

//定义电机5的状态B

unsignedcharstate6_A=0;

//定义电机6的状态A

unsignedcharstate6_B=0;

//定义电机6的状态B

//unsignedcharstate7_A=0;

//定义电机7的状态A

//unsignedcharstate7_B=0;

//定义电机7的状态B

//unsignedcharstate8_A=0;

//定义电机8的状态A

//unsignedcharstate8_B=0;

//定义电机8的状态B

unsignedinttemp=0xffff;

unsignedinttemp_595;

unsignedinttemp_0;

unsignedinttemp_1;

unsignedinttemp_2;

unsignedinttemp_3;

unsignedinttemp_4;

unsignedinttemp_5;

unsignedinttemp_6;

unsignedinttemp_7;

unsignedcharP17_temp;

unsignedcharP17_flag;

unsignedintnum_0=0xffff;

unsignedintnum_1=0xffff;

unsignedintnum_2=0xffff;

unsignedintnum_3=0xffff;

unsignedintnum_4=0xffff;

unsignedintnum_5=0xffff;

unsignedintnum_6=0xffff;

//unsignedintnum_7=0xffff;

//unsignedintnum_8=0xffff;

unsignedintcount_0=0;

unsignedintcount_1=0;

unsignedintcount_2=0;

unsignedintcount_3=0;

unsignedintcount_4=0;

unsignedintcount_5=0;

unsignedintcount_6=0;

//unsignedintcount_7=0;

//unsignedintcount_8=0;

voidWR_595();

voidOUT_595();

voidscan();

voidstart_595(void);

voidstop(void);

voidmoto0(unsignedchars0);

voidmoto1(unsignedchars1);

voidmoto2(unsignedchars2);

voidmoto3(unsignedchars3);

voidmoto4(unsignedchars4);

voidmoto5(unsignedchars5);

voidmoto6(unsignedchars6);

voidmoto7(unsignedchars7);

voidscan0(unsignedintn0);

voidscan1(unsignedintn1);

voidscan2(unsignedintn2);

voidscan3(unsignedintn3);

voidscan4(unsignedintn4);

voidscan5(unsignedintn5);

voidscan6(unsignedintn6);

voidscan7(unsignedintn7);

voiddelay50ms(intms);

/********************************************************/

/*将显示数据送入74HC595内部移位寄存器*/

voidWR_595(void)

{ucharj;

temp_595=temp;

for(j=0;

j<

16;

j++)

{

temp_595=temp_595<

<

1;

SDATA_595=CY;

SCLK_595=1;

//上升沿发生移位

_nop_();

SCLK_595=0;

}

}

/*将移位寄存器内的数据锁存到输出寄存器并显示*/

voidOUT_595(void)

{

RCK_595=0;

RCK_595=1;

//上升沿将数据送到输出锁存器

/*595开启子程序*/

/********************************************************/

voidstart_595(void)

WR_595();

OUT_595();

/*停止子程序*/

voidstop(void)

{temp=0xffff;

//取数据

WR_595();

//把数据写入595的寄存器

}

/*延时子程序*/

voiddelay50ms(intms)

{

intk;

while(ms--)

for(k=12500;

k>

0;

k--)

/*开关电机*/

/*0--关电机//关某位用1或,其他位为0*/

/*1--正转//开某位用0与,其他位为1*/

/*2--反转*/

voidmoto0(unsignedchars0)

{switch(s0)

{case0:

{temp_0=temp;

temp_0|=0x0003;

temp=temp_0;

}break;

//关电机

case1:

temp_0&

=0xfffe;

//正转

case2:

=0xfffd;

//反转

voidmoto1(unsignedchars1)

{switch(s1)

{temp_1=temp;

temp_1|=0x000c;

temp=temp_1;

temp_1&

=0xfffb;

=0xfff7;

}

voidmoto2(unsignedchars2)

{switch(s2)

{temp_2=temp;

temp_2|=0x0030;

temp=temp_2;

temp_2&

=0xffef;

=0xffdf;

voidmoto3(unsignedchars3)

{switch(s3)

{temp_3=temp;

temp_3|=0x00c0;

temp=temp_3;

temp_3&

=0xffbf;

=0xff7f;

voidmoto4(unsignedchars4)

{switch(s4)

{temp_4=temp;

temp_4|=0x0300;

temp=temp_4;

temp_4&

=0xfeff;

=0xfdff;

voidmoto5(unsignedchars5)

{switch(s5)

{temp_5=temp;

temp_5|=0x0c00;

temp=temp_5;

temp_5&

=0xfbff;

=0xf7ff;

voidmoto6(unsignedchars6)

{switch(s6)

{temp_6=temp;

temp_6|=0x3000;

temp=temp_6;

temp_6&

=0xefff;

=0xdfff;

voidmoto7(unsignedchars7)

{switch(s7)

{temp_7=temp;

temp_7|=0xc000;

temp=temp_7;

temp_7&

=0xbfff;

=0x7fff;

/*脉冲电机控制*/

/*num_i--输入电机的转动角数*/

/*state0_B--前一个电平状态*/

/*state0_A--当前电平状态*/

voidscan0(unsignedintn0)

{num_0=n0;

voidscan1(unsignedintn1)

{num_1=n1;

voidscan2(unsignedintn2)

{num_2=n2;

voidscan3(unsignedintn3)

{num_3=n3;

voidscan4(unsignedintn4)

{num_4=n4;

voidscan5(unsignedintn5)

{num_5=n5;

voidscan6(unsignedintn6)

{num_6=n6;

/*voidscan7(unsignedintn7)

{num_7=n7;

voidscan8(unsignedintn5)

}*/

voidscan(void)

/*****************第0个扫描***************************************/

state0_B=state0_A;

state0_A=in0;

if(state0_A!

=state0_B)//判断是否有电平跳变

count_0++;

if(count_0>

num_0)

{moto0(0);

start_595();

count_0=0;

num--;

num_0=0xffff;

}

/******************第一个扫描*************************************/

state1_B=state1_A;

state1_A=in1;

if(state1_A!

=state1_B)//判断是否有电平跳变

{count_1++;

if(count_1>

num_1)

{moto1(0);

count_1=0;

num_1=0xffff;

/*****************第二个扫描***************************************/

state2_B=state2_A;

state2_A=in2;

if(state2_A!

=state2_B)//判断是否有电平跳变

{count_2++;

if(count_2>

num_2)

{moto2(0);

count_2=0;

num_2=0xffff;

/*****************第三个扫描**************************************/

state3_B=state3_A;

state3_A=in3;

if(state3_A!

=state3_B)//判断是否有电平跳变

{count_3++;

if(count_3>

num_3)

{moto3(0);

count_3=0;

num_3=0xffff;

/****************第四个扫描*************************************/

state4_B=state4_A;

state4_A=in4;

if(state4_A!

=state4_B)//判断是否有电平跳变

{count_4++;

if(count_4>

num_4)

{moto4(0);

count_4=0;

num_4=0xffff;

/****************第五个扫描****************************************/

state5_B=state5_A;

state5_A=in5;

if(state5_A!

=state5_B)//判断是否有电平跳变

{count_5++;

if(count_5>

num_5)

{moto5(0);

count_5=0;

num_5=0xffff;

/**************第六个扫描******************************************/

state6_B=state6_A;

state6_A=in6;

if(state6_A!

=state6_B)//判断是否有电平跳变

{count_6++;

if(count_6>

num_6)

{P2=0xff;

count_6=0;

num_6=0xffff;

/****************第七个扫描****************************************

state7_B=state7_A;

state7_A=in7;

if(state7_A!

=state7_B)//判断是否有电平跳变

{count_7++;

if(count_7>

num_7)

{moto7(0);

count_7=0;

num_7=0xffff;

/****************第八个扫描****************************************

state8_B=state8_A;

state8_A=in8;

if(state8_A!

=state8_B)//判断是否有电平跳变

{count_8++;

if(count_8>

count_8=0;

}*/

/*主程序*/

voidmain(void)

{SCLK_595=0;

stop();

run=0;

P17_flag=1;

while

(1)

{

while(P17_flag)

P17_temp=P1;

P17_temp|=0x7f;

if(P17_temp==0x7F)

P17_flag=0;

switch(run)

{

case0:

//0-1秒,双手向前伸直,与身体成90度

num=2;

moto0

(1);

scan0(950);

//11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1