舞蹈机器人设计方案代码

  • 格式:doc
  • 大小:219.50 KB
  • 文档页数:35
_nop_() ;
_nop_() ;
}
}
}
/********************************************************/
/* 开关电机 */
/* 0--关电机 //关某位用 1 或,其他位为0 */
/* 1--正转 //开某位用 0 与,其他位为1 */
/* 2--反转 */
void scan0(unsigned int n0);
void scan1(unsigned int n1);
void scan2(unsigned int n2);
void scan3(unsigned int n3);
void scan4(unsigned int n4);
void scan5(unsigned int n5);
{switch(s1)
{case 0: {temp_1=temp; temp_1|=0x000c; temp=temp_1;} break ;//关电机
case 1: {temp_1=temp; temp_1&=0xfffb; temp=temp_1;} break ;//正转
case 2:{temp_1=temp; temp_1&=0xfff7; temp=temp_1;} break ;//反转
unsigned char P17_temp;
unsigned char P17_flag;
unsigned int num_0=0xffff;
unsigned int num_1=0xffff;
unsigned int num_2=0xffff;
unsigned int num_3=0xffff;
{switch(s4)
{case 0: {temp_4=temp; temp_4|=0x0300; temp=temp_4;} break ;//关电机
case 1: {temp_4=temp; temp_4&=0xfeff; temp=temp_4;} break ;//正转
case 2:{temp_4=temp; temp_4&=0xfdff; temp=temp_4;} break ;//反转
/*****************************************************************************
* 舞蹈机器人程序
* 作者 :梦想科技*老高
* Email:9902013327@
* 单片机采用AT89S52,晶振频率为:12.00MHz。
unsigned int temp_0;
unsigned int temp_1;
unsigned int temp_2;
unsigned int temp_3;
unsigned int temp_4;
unsigned int temp_5;
unsigned int temp_6;
unsigned int temp_7;
SCLK_595=1 ; //上升沿发生移位
_nop_() ;
_nop_() ;
SCLK_595=0 ;
}
}
/********************************************************/
/*将移位寄存器内的数据锁存到输出寄存器并显示 */
/********************************************************/
/* 595开启子程序 */
/********************************************************/
void start_595(void)
{
WR_595();
OUT_595();
_nop_() ;
}
/********************************************************/
/********************************************************/
void moto0(unsigned char s0)
{switch(s0)
{case 0: {temp_0=temp; temp_0|=0x0003; temp=temp_0;} break ;//关电机
unsigned char state5_A=0;//定义电机5的状态A
unsigned char state5_B=0;//定义电机5的状态B
unsigned char state6_A=0;//定义电机6的状态A
unsigned char state6_B=0;//定义电机6的状态B
//unsigned char state7_A=0;//定义电机7的状态A
}
}
void moto2(unsigned char s2)
{switch(s2)
{case 0: {temp_2=temp; temp_2|=0x0030; temp=temp_2;} break ;//关电机
case 1: {temp_2=temp; temp_2&=0xffef; temp=temp_2;} break ;//正转
unsigned int count_1=0;
unsigned int count_2=0;
unsigned int count_3=0;
unsigned int count_4=0;
unsigned int count_5=0;
unsigned int count_6=0;
//unsigned int count_7=0;
unsigned char state0_A=0;//定义电机0的状态A
unsigned char state0_B=0;//定义电机0的状态B
unsigned char state1_A=0;//定义电机1的状态A
unsigned char state1_B=0;//定义电机1的状态B
unsigned char state2_A=0;//定义电机2的状态A
unsigned char state2_B=0;//定义电机2的状态B
unsigned char state3_A=0;//定义电机3的状态A
unsigned char state3_B=0;//定义电机3的状态B
unsigned char state4_A=0;//定义电机4的状态A
unsigned char state4_B=0;//定义电机4的状态B
unsigned int num_4=0xffff;
unsigned int num_5=0xffff;
unsigned int num_6=0xffff;
//unsigned int num_7=0xffff;
//unsigned int num_8=0xffff;
unsigned int count_0=0;
/* 延时子程序 */
/********************************************************/
void delay50ms(int ms)
{
int k ;
while(ms--)
{
for(k=12500; k>0 ; k--)
{
_nop_() ;
_nop_() ;
/* 停止子程序 */
/********************************************************/
void stop(void)
{temp=0xffff; //取数据
WR_595();//把数据写入595的寄存器
OUT_595();
_nop_() ;
}
/********************************************************/
case 1: {temp_3=temp; temp_3&=0xffbf; temp=temp_3;} break ;//正转
case 2:{temp_3=temp; temp_3&=0xff7f; temp=temp_3;} break ; //反转
}Байду номын сангаас
}
void moto4(unsigned char s4)
void scan6(unsigned int n6);
void scan7(unsigned int n7);
void delay50ms(int ms);
/********************************************************/
/*将显示数据送入74HC595内部移位寄存器 */
void OUT_595(void)
{
RCK_595=0 ;
_nop_() ;
_nop_() ;
RCK_595=1 ; //上升沿将数据送到输出锁存器
_nop_() ;
_nop_() ;
_nop_() ;
RCK_595=0 ;
}
/********************************************************/
/******************************************************************************/
#include <AT89X55.H>
//51芯片管脚定义头文件
#include <intrins.h>