⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 robot_function.c

📁 这是一个在凌阳单片机上实现一个具有时钟显示和播报、播放音乐并跳舞、对机器人前进计时、避障等功能的机器人的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -