robot_function.c

来自「这是一个在凌阳单片机上实现一个具有时钟显示和播报、播放音乐并跳舞、对机器人前进计」· C语言 代码 · 共 715 行 · 第 1/2 页

C
715
字号
		PlaySnd(D25);
		RobotSystemInit();
		
		
		uiP_IOB_Dir = *P_IOB_Dir;					//读回IOB口的状态值
		uiP_IOB_Attrib = *P_IOB_Attrib;
		uiP_IOB_Data = *P_IOB_Data;
	
		uiP_IOB_Dir |= 0x0a00;						//改变IOB9、IOB11位
		uiP_IOB_Attrib |= 0x0a00;
		uiP_IOB_Data |= 0x0a00;
	
		*P_IOB_Dir = uiP_IOB_Dir;					//设置IOB9、IOB11为高电平输出
		*P_IOB_Attrib = uiP_IOB_Attrib;				//其它IO口不变
		*P_IOB_Data = uiP_IOB_Data;
		
		Set_IOB_Bit(4,1,1,1,1);
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(6,1,1,1,1);
		
		PlaySnd(D26);
		RobotSystemInit();
		
		
		uiP_IOB_Dir = *P_IOB_Dir;					//读回IOB口的状态值
		uiP_IOB_Attrib = *P_IOB_Attrib;
		uiP_IOB_Data = *P_IOB_Data;
	
		uiP_IOB_Dir |= 0x2200;						//改变IOB9、IOB13位
		uiP_IOB_Attrib |= 0x2200;
		uiP_IOB_Data |= 0x2200;
	
		*P_IOB_Dir = uiP_IOB_Dir;					//设置IOB9、IOB13为高电平输出
		*P_IOB_Attrib = uiP_IOB_Attrib;				//其它IO口不变
		*P_IOB_Data = uiP_IOB_Data;
		
		Set_IOB_Bit(4,1,1,1,1);
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(6,1,1,1,1);
		
		PlaySnd(D27);
		RobotSystemInit();
		
		
		uiP_IOB_Dir = *P_IOB_Dir;					//读回IOB口的状态值
		uiP_IOB_Attrib = *P_IOB_Attrib;
		uiP_IOB_Data = *P_IOB_Data;
	
		uiP_IOB_Dir |= 0x4800;						//改变IOB11、IOB14位
		uiP_IOB_Attrib |= 0x4800;
		uiP_IOB_Data |= 0x4800;
	
		*P_IOB_Dir = uiP_IOB_Dir;					//设置IOB11、IOB14为高电平输出
		*P_IOB_Attrib = uiP_IOB_Attrib;				//其它IO口不变
		*P_IOB_Data = uiP_IOB_Data;
		
		Set_IOB_Bit(4,1,1,1,1);
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(6,1,1,1,1);
		
		PlaySnd(D28);
		RobotSystemInit();
		
		
		uiP_IOB_Dir = *P_IOB_Dir;					//读回IOB口的状态值
		uiP_IOB_Attrib = *P_IOB_Attrib;
		uiP_IOB_Data = *P_IOB_Data;
	
		uiP_IOB_Dir |= 0x0200;						//改变IOB9位
		uiP_IOB_Attrib |= 0x0200;
		uiP_IOB_Data |= 0x0200;
	
		*P_IOB_Dir = uiP_IOB_Dir;					//设置IOB9为高电平输出
		*P_IOB_Attrib = uiP_IOB_Attrib;				//其它IO口不变
		*P_IOB_Data = uiP_IOB_Data;
		
		Set_IOB_Bit(4,1,1,1,1);
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(6,1,1,1,1);
		
		PlaySnd(D29);
		RobotSystemInit();
	}
	RobotSystemInit();
}

void Robot_Dance(unsigned int n)
{
	unsigned int uiCount;
	
	*(unsigned int *)0x7012 = 1;
	
	for(uiCount = 0;uiCount < n;uiCount++)
	{	
		Set_IOB_Bit(4,1,1,1,1);
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(6,1,1,1,1);
		Set_IOB_Bit(11,1,1,1,1);
		PlaySnd(MUSIC1);
		Set_IOB_Bit(11,1,1,0,0);
		Set_IOB_Bit(9,1,1,1,1);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(MUSIC2);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
		Set_IOB_Bit(9,1,1,1,1);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(MUSIC3);
		Set_IOB_Bit(11,1,1,0,0);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(13,1,1,1,1);
    	*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(MUSIC4);
		Set_IOB_Bit(13,1,1,0,0);
		Set_IOB_Bit(14,1,1,1,1);
		Set_IOB_Bit(9,1,1,1,1);
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(MUSIC4);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(8,1,1,1,1);
		Set_IOB_Bit(11,1,1,1,1);
		Set_IOB_Bit(14,1,1,1,1);
    	*(unsigned int *)0x7012 = 0x0001;
    	Delay(400);
    	RobotSystemInit();
	}
	RobotSystemInit();
}

void Robot_Go1(unsigned int n)
{
	unsigned int uiCount;
	for(uiCount = 0;uiCount < n;uiCount++)
	{	
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(9,1,1,1,1);
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(11,1,1,0,0);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(11,1,1,0,0);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(11,1,1,0,0);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
		Delay(2000);
		*(unsigned int *)0x7012 = 0x0001;
		RobotSystemInit();
	}
	RobotSystemInit();
}



void Robot_Go2(unsigned int n)
{
	unsigned int uiCount;
	
	 *P_IOA_Data= 0xffff;
    *P_IOA_Attrib = 0xffff;
    *P_IOA_Dir = 0xffff;
	*P_IOA_Data = 0x00f0;
	
	for(uiCount = 0;uiCount < n;uiCount++)
	{	
		Set_IOB_Bit(5,1,1,1,1);
		Set_IOB_Bit(9,1,1,1,1);
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(11,1,1,0,0);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(11,1,1,0,0);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(11,1,1,0,0);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
//		PlaySnd(WALK);
		Set_IOB_Bit(9,1,1,0,0);
		Set_IOB_Bit(11,1,1,1,1);
//		Delay(2000);
        showtime();
		*(unsigned int *)0x7012 = 0x0001;
		RobotSystemInit();
	}
	RobotSystemInit();
}



void Robot_Backup(unsigned int n)
{
	unsigned int uiCount;
	for(uiCount = 0;uiCount < n;uiCount++)
	{
		Set_IOB_Bit(8,1,1,1,1);
		PlaySnd(WALK);
		Set_IOB_Bit(8,1,1,0,0);
		Set_IOB_Bit(10,1,1,1,1);
		Delay(2000);
		PlaySnd(WALK);
		Set_IOB_Bit(8,1,1,1,1);
		Set_IOB_Bit(10,1,1,0,0);
		Delay(2000);
		PlaySnd(WALK);
		Set_IOB_Bit(8,1,1,0,0);
		Set_IOB_Bit(10,1,1,1,1);
		Delay(2000);
		RobotSystemInit();
	}
	RobotSystemInit();
}

void Robot_TurnRight(unsigned int n)
{
	unsigned int uiCount;
	for(uiCount = 0;uiCount < n;uiCount++)
	{	
		Set_IOB_Bit(4,1,1,1,1);
		Set_IOB_Bit(9,1,1,1,1);
		Set_IOB_Bit(10,1,1,1,1);
		PlaySnd(WALK);
		Delay(2000);
		RobotSystemInit();
	}
}

void Robot_TurnLeft(unsigned int n)
{
	unsigned int uiCount;
	
	for(uiCount = 0;uiCount < n;uiCount++)
	{	
		Set_IOB_Bit(6,1,1,1,1);
		Set_IOB_Bit(8,1,1,1,1);
		Set_IOB_Bit(11,1,1,1,1);
		PlaySnd(WALK);
		Delay(2000);
		RobotSystemInit();
	}
}

void Robot_HeadTurnLeft(unsigned int n)
{
	unsigned int uiCount;
	for(uiCount = 0;uiCount < n; uiCount++)
	{
		Set_IOB_Bit(13,1,1,1,1);
		PlaySnd(TURNHEAD);
		Delay(200);
		RobotSystemInit();
	}
}

void Robot_HeadTurnRight(unsigned int n)
{
	unsigned int uiCount;
	for(uiCount = 0;uiCount < n;uiCount++)
	{
		Set_IOB_Bit(14,1,1,1,1);
		PlaySnd(TURNHEAD);
		Delay(200);
		RobotSystemInit();
	}
}

void Robot_Shoot_Prepare(unsigned int n)
{
	unsigned int uiCount;
	
	Set_IOB_Bit(7,1,1,1,1);
	for(uiCount = 0;uiCount < n;uiCount++)
	{
		PlaySnd(SHOOT);
		Delay(200);
	}
}

void Robot_Shoot2(unsigned int n)
{
	unsigned int uiCount;
	for(uiCount = 0;uiCount < n;uiCount++)
	{
		Set_IOB_Bit(15,1,1,1,1);
		PlaySnd(GUN);
		Delay(200);
	}
	RobotSystemInit();
}

void Robot_Shoot_Five(unsigned int n)
{
	unsigned int uiCount1;
	unsigned int uiCount2;
	for(uiCount1 = 0;uiCount1 < n;uiCount1++)
	{
		for(uiCount2 = 0;uiCount2 < 5;uiCount2++)
		{
			Set_IOB_Bit(15,1,1,1,1);
			PlaySnd(GUN);
			Delay(200);
		}
	}
	RobotSystemInit();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?