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

📄 main.c

📁 2407嵌入式系统程序(c语言)
💻 C
📖 第 1 页 / 共 2 页
字号:
						if(hand_num==8)
							hand_num=1;
						else
						hand_num=hand_num+1;
						HAND_SHOW(hand_num);
						break;
					case 2:
						if(pin_num2==10)
							pin_num2=1;
						else
						pin_num2=pin_num2+1;
						LCD_NUM(pin_num2,0xFFBB);
						break;
					case 3:
						if(pin_num3==30)
							pin_num3=1;
						else
						pin_num3=pin_num3+1;
						LCD_NUM(pin_num3,0xFFBD);
						break;
					case 4:
						if(pin_num4==30)
							pin_num4=1;
						else
						pin_num4=pin_num4+1;
						LCD_NUM(pin_num4,0xFFBF);
						break;
					}
		}
		if(KEY_DOWN==1)
		{
			switch(caidan)
				{
					case 1:
						if(hand_num==1)
							hand_num=8;
						else
						hand_num=hand_num-1;
						HAND_SHOW(hand_num);
						break;
					case 2:
						if(pin_num2==1)
							pin_num2=10;
						else
						pin_num2=pin_num2-1;
						LCD_NUM(pin_num2,0xFFBB);
						break;
					case 3:
						if(pin_num3==1)
							pin_num3=30;
						else
						pin_num3=pin_num3+1;
						LCD_NUM(pin_num3,0xFFBD);
						break;
					case 4:
						if(pin_num4==1)
							pin_num4=30;
						else
						pin_num4=pin_num4+1;
						LCD_NUM(pin_num4,0xFFBF);
						break;
					}
		}	
}
void Valid_submeau3flag(void)
{        
	int j=0,i;
	for(;;)
	{
HERE3:			
		KEY_SUBMEAU3();
			if(KEY_SURE==0)
				if(KEY_UP==0)
					{
						WAIT_KEY(i);
						continue;
					}
				else                     /*key_up=1*/
						break;
			else                   		/*key-sure=1*/
				{  
					for(;;)
					{
HERE31:					WAIT_KEY(i);
						if(KEY_UP==0)
							if(KEY_SURE==1)
							{switch(SUBMEAU3FLAG)
							   	{	case 1:  
							   		motor_startup(motor_data,motor_num); 
							   		for(;;)
							   		{
test_motor:							WAIT_KEY(i); 
									if(KEY_DOWN==1)
										{
											motor_speedup(motor_data,motor_num);
											continue; /*goto test_motor;*/
										}
									if(KEY_SURE==0)
											continue; /*goto  test_motor;*/
									else 
										*SCITXBUF=0x02;
										WORD8255=0xff;
										break;        /*goto HERE31;*/	
							   			}             /*end of for*/
							   			break;
							   		case 2:     
							   			WORD8255=data_8255;
							   			num_8255++;
							   			for(;;)
							   			{
test_8255:							   	WAIT_KEY(i);
										if(KEY_DOWN==1)
											{
												electronic(num_8255,data_8255);
							   					continue; /*goto test_8255;*/
							   				}
							   			if(KEY_SURE==0)
							   					continue;  /*goto test_8255;*/
							   			else
							   				WORD8255=0x00;
							   				break;         /*goto HERE31; */
							   	          }                  /*end of for*/
							   			}                     /*end of case*/
							   		}                     	/*end of switch*/			   
							   else				  		
								continue;         										
						else                     
							{  
							    ret_submeau3();      	
								WAIT_KEY(i);
								if(KEY_SURE==1)
								j=1;
								if(j==0)
									continue;}         /*goto HERE3;*/ 
					break;				
					}               /*end of for*/               
          }                         /* end of key_sure=1*/
      break;
     }                              /*end of for*/
}									/*end of function*/ 

void GLOVE_TYPE(argument1,i)
{
 	int glovetype=argument1;
 	WAIT_KEY(i);
	Delay1S();
	if(KEY_UP==1)
		{
			glovetype=glovetype+1;
			if(glovetype==4)
				glovetype=1;
		}
	if(KEY_LEFT==1)
		{
			glovetype=glovetype-1;
			if(glovetype==0)
				glovetype=4;
		}
	switch(glovetype)
		{case 1: 
			LCD_GLOVETYPE(28,36,40,36,22,30,21,19);
			break;
		case 2:
			LCD_GLOVETYPE(44,56,60,52,32,46,30,40);
			break;
		case 3:
			LCD_GLOVETYPE(26,34,38,34,20,28,20,17);
			break;
		case 4:
			LCD_GLOVETYPE(24,32,36,30,18,26,19,15);
			break;
		}
} 

void Amend_argument(caidan,pin_num1,pin_num2,pin_num3,pin_num4,i)
{
	int HANZI_CON[16];
	WAIT_KEY(i);
	Delay1S();
	if(KEY_LEFT==1)
		{if(caidan==1)
    		{JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBD);
    		JIQI(2,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);}	
		 if(caidan==2)
			{JIQI(2,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);} 
		 if(caidan==3)
			{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(2,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);} 	
		 if(caidan==4)
			{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(2,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);}
    	 if(caidan==5)
    		{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(2,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);}
    	 if(caidan==6)
    		{JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);
    		JIQI(2,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI,HANZI_SUDU,0xFFB9);} 	
		 if(caidan==1)
		 	caidan=6;
		 else
		    caidan=caidan-1;
		 }
	if(KEY_RIGHT==1)
		{if(caidan==1)
			{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(2,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);}	
		 if(caidan==2)
			{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(2,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);} 
		 if(caidan==3)
			{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
    		JIQI(2,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);} 	
		 if(caidan==4)
    		{JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBD);
    		JIQI(2,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI,HANZI_SUDU,0xFFBF);} 
    	 if(caidan==5)
    		{JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFB9);
    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI,HANZI_SUDU,0xFFBD); 
    		JIQI(1,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);} 
    	 if(caidan==6)
    		{JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFB9);
    		JIQI(1,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI,HANZI_SUDU,0xFFBB);
    		JIQI(1,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI+16,HANZI_SUDU,0xFFBD);
    		JIQI(2,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFBF);} 	
		 if(caidan==6)
		 	caidan=1;
		 else
		    caidan=caidan+1;
		 }


}
void Valid_submeau4flag(void)
{
	int j=0,i,glovetype;
	for(;;)
HERE4:	{		
			KEY_SUBMEAU4();
				if(KEY_SURE==0)
					if(KEY_UP==0)
						{
							WAIT_KEY(i);
							continue;
						}
					else                     /*key_up=1*/
							break;
				else                   		/*key-sure=1*/
			{   
				for(;;)
				{	
HERE41:			/*WAIT_KEY(i);*/
				if(KEY_UP==0)
					if(KEY_SURE=1)
						{  
							switch(SUBMEAU4FLAG)
								{case 1:
								glovetype=1;
								GLOVE_TYPE(glovetype,i);
								while(!KEY_SURE)
								GLOVE_TYPE(glovetype,i);   		/*KEY_SURE=0 run*/
								break;			/*goto tohere;*/
								case 2:
								caidan=1;
								pin_num1=2,pin_num2=7,pin_num3=8;pin_num3=1;
								Amend_argument(caidan,pin_num1,pin_num2,pin_num3,pin_num4,i);
								while(!KEY_SURE)
								Amend_argument(caidan,pin_num1,pin_num2,pin_num3,pin_num4,i);
								break;			/*goto tohere;*/
								}
							break;	/*end of case*/																												
						}	/*end of switch*/
					else
						continue;		/*goto HERE21;		/*end of key_sure=1*/
				else			/*end of key_up=1*/
						{  
						ret_submeau4();       	
						WAIT_KEY(i);
						j=1;         /*goto here2*/
						break;
						}	
				}        			/*fisrt for*/
				if(j==1)
				continue;
				else
				break;
			}
	}
	return;
}
void Valid_submeau2flag(void)
{       
	int j=0,i;
	for(;;)
	{                                    /*****************/
HERE2:		KEY_SUBMEAU2();
			if(KEY_SURE==0)
				if(KEY_UP==0)
					{
						WAIT_KEY(i);
						continue;        /*goto HERE2;*/
					}
				else                     /*key_up=1*/
					break;               /*goto MAININIT;*/
			else                   		/*key-sure=1*/
			{   
				for(;;)
				{	
HERE21:			/*WAIT_KEY(i);*/
				if(KEY_UP==0)
					if(KEY_SURE=1)
						{  
							switch(SUBMEAU2FLAG)
								{case 1:
								hand_num=1;
								pin_num1=14,pin_num2=5,pin_num3=5;
								PIN_SET(hand_num,pin_num1,pin_num2,pin_num3,i);
								while(!KEY_SURE)
								PIN_SET(hand_num,pin_num1,pin_num2,pin_num3,i);   		/*KEY_SURE=0 run*/
								break;			/*goto tohere;*/
								case 2:
								caidan=1;
								pin_num1=2,pin_num2=7,pin_num3=8;pin_num3=1;
								TIGHT_SET(caidan,pin_num1,pin_num2,pin_num3,pin_num4,i);
								while(!KEY_SURE)
								TIGHT_SET(caidan,pin_num1,pin_num2,pin_num3,pin_num4,i);
								break;			/*goto tohere;*/
								case 3:
								caidan=1;
								hand_num=1,pin_num2=30,pin_num3=24;pin_num3=36;
								SPEED_SET(caidan,hand_num,pin_num2,pin_num3,pin_num4,i);
								while(!KEY_SURE)
								SPEED_SET(caidan,hand_num,pin_num2,pin_num3,pin_num4,i);
								break;          /*goto tohere;*/
								case 4:
								caidan=1;
								hand_num=1,pin_num2=4,pin_num3=22;pin_num3=12;
								SEXIAN_SET(caidan,hand_num,pin_num2,pin_num3,pin_num4,i);
								while(!KEY_SURE)
								SEXIAN_SET(caidan,hand_num,pin_num2,pin_num3,pin_num4,i);
								break;			/*goto tohere;*/
								}
							break;	/*end of case*/																												
						}	/*end of switch*/
					else
						continue;		/*goto HERE21;		/*end of key_sure=1*/
				else			/*end of key_up=1*/
						{  
						ret_submeau2();       	
						WAIT_KEY(i);
						j=1;         /*goto here2*/
						break;
						}	
				}        			/*fisrt for*/
				if(j==1)
				continue;
				else
				break;
			}
	}
	return;
}
void main(void)
{	
	int glovetype;
	int i=0;
	initial();
	SCI_INIT();
	LCD_INITIAL();
	LCD_CLEAR();
	LCD_INITIALIZE();
	WAIT_KEY(i);
	ret_mainmeau();
	WAIT_KEY(i);
	for(;;)
		{
MAININIT:	WAIT_KEY(i);
			if(KEY_RIGHT==1|KEY_LEFT==1|KEY_SURE==1)
tohere:			KEY_HANDLE(); 
			if(KEY_SURE==0)
				continue;           /*first floor*/
			WAIT_KEY(i); 
			if(SUBMEAU2FLAG==1)
				{
				Valid_submeau2flag();
				continue;		
				}
			if(SUBMEAU3FLAG==1)
        		{ 
        		Valid_submeau3flag();
        		continue;
        		}
			if(SUBMEAU4FLAG==1)
				{
				Valid_submeau4flag();
        		continue;
				}
		
		}				
}
int SCI_INIT(void)
{
	*SCICCR=0x7;/*0xf 时候为什么会出现 FF*/
	*SCICTL1=0x1b;
	*SCICTL2=0x3;
	*SCIHBAUD=0x01;
	*SCILBAUD=0x03;
	*SCICTL1=0x33;
	*SCIPRI=0x60;
	*MCRA=0x3;
	*PADATDIR=0x100;
	*IMR=0x10;
	asm(" CLRC INTM");
}
void uartsent()
{
			*IFR=0x0010;
			asm(" CLRC INTM");			 			  
}

void uartrec()
{asm(" CLRC INTM");
}
void interrupt uarttr()
{
	switch(*PVIR)
		{
			case 6: uartrec();
					break;
			case 7: uartsent();
					break;
		}
}
	
void interrupt  nothing()
{
	while(1);
}

⌨️ 快捷键说明

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