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

📄 user.c

📁 这里有很多我自己做的凌阳单片机源程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		key_temp1=0;
		count_i++;	
	}
	key_temp1=0;	
	while(key_temp1!=15)
	{
		key_f1=0;
		while(key_f1==0)
		{
			key_f1=key_scan_delay();
			*P_Watchdog_Clear=0x01;
		}
		key_temp1=get_keyvalue();
	}	
	PutChar(count_i*5+20,20,'O');
	PutChar(count_i*5+25,20,'K');
	data_key=(number[0]-48)*10+(number[2]-48);
	key_temp1=read_flash(data_addr);
	if(key_temp1==0xffff)//说明是第一次擦写
	{
		page_erase(data_addr);//擦除相应的页
		switch(data_key)
		{
			case 10:write_flash(0x0001,data_addr);break;
			case 11:write_flash(0x0002,data_addr);break;
			case 12:write_flash(0x0004,data_addr);break;
			case 20:write_flash(0x0008,data_addr);break;
			case 21:write_flash(0x0010,data_addr);break;
			case 22:write_flash(0x0020,data_addr);break;
			case 30:write_flash(0x0040,data_addr);break;
			case 31:write_flash(0x0080,data_addr);break;
			case 32:write_flash(0x0100,data_addr);break;
			default:break;
		}	
	}
	else
	{
		page_erase(data_addr);//擦除相应的页
		switch(data_key)
		{
			case 10:write_flash((0x0001|key_temp1),data_addr);break;
			case 11:write_flash((0x0002|key_temp1),data_addr);break;
			case 12:write_flash((0x0004|key_temp1),data_addr);break;
			case 20:write_flash((0x0008|key_temp1),data_addr);break;
			case 21:write_flash((0x0010|key_temp1),data_addr);break;
			case 22:write_flash((0x0020|key_temp1),data_addr);break;
			case 30:write_flash((0x0040|key_temp1),data_addr);break;
			case 31:write_flash((0x0080|key_temp1),data_addr);break;
			case 32:write_flash((0x0100|key_temp1),data_addr);break;
			default:break;
		}	
	}	
}
///////////////////////////////////////////
//函数:void looking_hanshu(void)
//描述:查询车库现有存车情况,并在lcd上显示结果
//参数:无
//返回:无
/////////////////////////////////////////////
void looking_hanshu(void)
{
	unsigned int temp_num=0;	
	unsigned char gg[27]="3-2,3-1,3-0,2-2,2-1,2-0,1-2,1-1,1-0";
	unsigned int gg_i=0;
	temp_num=read_flash(data_addr);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
	for(gg_i=0;gg_i<9;gg_i++)
	{
		if(temp_num&0x0100)
		{//在这里还要显示汉字:已经存有车的车库
			PutChar(gg_i,3,gg[gg_i]);
			PutChar(gg_i+1,3,gg[gg_i+1]);
			PutChar(gg_i+2,3,gg[gg_i+2]);
			PutChar(gg_i+3,3,gg[gg_i+3]);
		}
		else
		{//在这里还要显示汉字:还没有存有车的车库
			PutChar(gg_i,3,gg[gg_i]);
			PutChar(gg_i+1,3,gg[gg_i+1]);
			PutChar(gg_i+2,3,gg[gg_i+2]);
			PutChar(gg_i+3,3,gg[gg_i+3]);
		}
		temp_num<<=1;
		*P_Watchdog_Clear=0x01;
	}	
	*P_Watchdog_Clear=0x01;
}
///////////////////////////////////////////
//函数:void control(unsigned int E_num,unsigned int left,unsigned int right)
//描述:电机控制函数
//参数:1号电机的使能位,上拉控制位,下放控制位
//返回:无
/////////////////////////////////////////////
void control(unsigned int left,unsigned int right)
{	
	 init_control();
lab1:while(P1_0==0)//P1_0说明有挡板经过
	{		
		//上拉电机表示1号电机
		if(left==1)
		{
			P1_9=1;
			P1_11=1;
			P1_12=0;			
			asm("nop");
		}
		if(right==1)
		{
			P1_9=1;
			P1_11=0;
			P1_12=1;			
		}		
		*P_Watchdog_Clear=0x01;

	}	
	if(P1_0==1)
	{
		delay();
		if(P1_0==1)
		{
			P1_9=0;	
		}
		else
		{
			goto lab1;
		}
	}
	else
	{
		goto lab1;
	}	
}
///////////////////////////////////////////
//函数:void control_con(unsigned int E_num,unsigned int left,unsigned int right)
//描述:电机控制函数
//参数:1号电机的使能位,上拉控制位,下放控制位
//返回:无
/////////////////////////////////////////////
void control_con(unsigned int left,unsigned int right)
{	
	 init_control();
lab2:while(P1_0==1)//P1_0说明有挡板经过
	{		
		//上拉电机表示1号电机
		if(left==1)
		{
			P1_9=1;
			P1_11=1;
			P1_12=0;			
			asm("nop");
		}
		if(right==1)
		{
			P1_9=1;
			P1_11=0;
			P1_12=1;			
		}		
		*P_Watchdog_Clear=0x01;

	}
	if(P1_0==0)
	{
		delay();
		if(P1_0==0)
		{
			P1_9=0;	
		}
		else
		{
			goto lab2;
		}
	}
	else
	{
		goto lab2;
	}
	
	
}
///////////////////////////////////////////
//函数:void control1(unsigned int E_num,unsigned int left,unsigned int right)
//描述:电机控制函数
//参数:2号电机的使能位,左转控制位,右转控制位,横行经过的传感器的个数
//返回:无
/////////////////////////////////////////////
void control1(unsigned int left,unsigned int right)
{
	init_control();	
lab3:while(P1_1==0)//P1_1说明有挡板经过
	{
		//上拉电机表示1号电机
		if(left==1)
		{
			P1_10=1;
			P1_13=1;
			P1_14=0;			
		}
		if(right==1)
		{
			P1_10=1;
			P1_13=0;
			P1_14=1;			
		}	
		*P_Watchdog_Clear=0x01;
	}
	if(P1_1==1)
	{
		delay();
		if(P1_1==1)
		{
			P1_10=0;	
		}
		else
		{
			goto lab3;
		}
	}
	else
	{
		goto lab3;
	}	
}
///////////////////////////////////////////
//函数:void control1_con(unsigned int E_num,unsigned int left,unsigned int right)
//描述:电机控制函数
//参数:2号电机的使能位,左转控制位,右转控制位,横行经过的传感器的个数
//返回:无
/////////////////////////////////////////////
void control1_con(unsigned int left,unsigned int right)
{
	init_control();	
lab4:while(P1_1==1)//P1_1说明有挡板经过
	{
		//上拉电机表示1号电机
		if(left==1)
		{
			P1_10=1;
			P1_13=1;
			P1_14=0;			
		}
		if(right==1)
		{
			P1_10=1;
			P1_13=0;
			P1_14=1;			
		}	
		*P_Watchdog_Clear=0x01;
	}
	if(P1_1==0)
	{
		delay();
		if(P1_1==0)
		{
			P1_10=0;	
		}
		else
		{
			goto lab4;
		}
	}
	else
	{
		goto lab4;
	}	
}
///////////////////////////////////////////
//函数:void control2(unsigned int E_num,unsigned int left,unsigned int right)
//描述:电机控制函数
//参数:3号电机的使能位,开门控制位,关门控制位
//返回:无
/////////////////////////////////////////////
void control2(unsigned int left,unsigned int right)
{	
	init_control();
		//3号电机
		if(left==1)
		{
			P1_15=1;
			P1_2=1;
			P1_4=0;	
			delay1();//要测试延时,		
				
		}
		if(right==1)
		{
			P1_15=1;
			P1_2=0;
			P1_4=1;	
			delay1();//要测试延时,	
			
					
		}	
	
}
///////////////////////////////////////////
//函数:void init_control(void);
//描述:电机控制的时候端口初始化
//参数:无
//返回:无
/////////////////////////////////////////////
void init_control(void)
{
	PB_Dir->byte.byteh=0xff;
	PB_Attrib->byte.byteh=0xff;
	PB->byte.byteh=0x00;
}

⌨️ 快捷键说明

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