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

📄 lcm.c

📁 PWM输出控制三路步进电机
💻 C
📖 第 1 页 / 共 2 页
字号:
			lcm_8x16(0xb6, 0x1000, 0x4E);	//No		
			lcm_8x16(0xb6, 0x1008, 0x6F);		
			lcm_8x16(0xb6, 0x1100, 0x3A);					// 2d-
			lcm_8x16(0xb6, 0x1108, show816_L(gh));	//year
			lcm_8x16(0xb6, 0x1200, show816_H(gm));		
			lcm_8x16(0xb6, 0x1208, show816_L(gm));	//year
			lcm_8x16(0xb6, 0x1300, show816_H(gl));		
			lcm_8x16(0xb6, 0x1308, show816_L(gl));	//year
			lcm_8x16(0xb6, 0x1400, 0x20);
			lcm_8x16(0xb6, 0x1408, 0x20);		

			lcm_8x16(0xb6, 0x1500, 0x53);	//SN
			lcm_8x16(0xb6, 0x1508, 0x4E);
			lcm_8x16(0xb6, 0x1600, 0x3A);	
			is = Hex_Bcd((uint16_t)ID_No);
			gh =(uint8_t) (is >>8); 			
			gl =(uint8_t)is;
			lcm_8x16(0xb6, 0x1608, show816_L(gh));	//
			lcm_8x16(0xb6, 0x1700, show816_H(gl));		
			lcm_8x16(0xb6, 0x1708, show816_L(gl));	//			

			if(!Card_Fresh_Status)			
			{
				lcm_16x16(0xb1, 0x1208, 0xCEB4); //no use card
				lcm_16x16(0xb1, 0x1308, 0xCAB9);	
				lcm_16x16(0xb1, 0x1408, 0xD3C3);
			}
			else if(Card_Same)
			{
				lcm_16x16(0xb1, 0x1208, 0xd2d1); //4 word name(Name_Code) showed
				lcm_16x16(0xb1, 0x1308, 0xcba2);	
				lcm_16x16(0xb1, 0x1408, 0xbfa8);
			}
			else
			{
				ii= ((uint16_t)Card_Rom_16B[7] <<8) &0xff00;
				ii += Card_Rom_16B[8];							
					lcm_16x16(0xb1, 0x1208, ii); //4 word name(Name_Code) showed
			
				ii= ((uint16_t)Card_Rom_16B[9] <<8) &0xff00;
				ii += Card_Rom_16B[10];						
					lcm_16x16(0xb1, 0x1308, ii);	
				
				ii= ((uint16_t)Card_Rom_16B[11] <<8) &0xff00;
				ii += Card_Rom_16B[12];				
					lcm_16x16(0xb1, 0x1408, ii);
			
				ii= ((uint16_t)Card_Rom_16B[13] <<8)&0xff00;
				ii += Card_Rom_16B[14];
					lcm_16x16(0xb1, 0x1508, ii);			
			}
		}
	}
	else		//Company name
	{
		if(Buz_flag)
		{
			asm("nop");
			return;
		}
		News_Comm_Len=0;
		for(i=0; i<32; i++)
		{
			if((News_Comm[2*i] >0x20)&&(News_Comm[2*i] <0xf9))
				News_Comm_Len++;
			else 
				asm("nop");
		}
		if(News_Comm_Len)
			show_news();
		else
			show_CMP();

	}	
}
void show_CMP(void)
{
	uint16_t ii;
    uint8_t i;
	ii = ((uint16_t)Company[0] << 8) &0xff00;
	ii += Company[1];
		lcm_16x16(0xb1, 0x1008, ii);

	ii = (uint16_t)(Company[2] << 8) &0xff00;
	ii += Company[3];
		lcm_16x16(0xb1, 0x1108, ii);
	ii = (uint16_t)(Company[4] << 8) &0xff00;
	ii += Company[5];
		lcm_16x16(0xb1, 0x1208, ii);
	ii = (uint16_t)(Company[6] << 8) &0xff00;
	ii += Company[7]; 
		lcm_16x16(0xb1, 0x1308, ii);
	ii = (uint16_t)(Company[8] << 8) &0xff00;
	ii += Company[9];

		lcm_16x16(0xb1, 0x1408, ii);
	ii = (uint16_t)(Company[10] << 8) &0xff00;
	ii += Company[11];
		lcm_16x16(0xb1, 0x1508, ii);
	ii = (uint16_t)(Company[12] << 8) &0xff00;
	ii += Company[13];
		lcm_16x16(0xb1, 0x1608, ii);
	lcm_8x16(0xb1, 0x1708, 0x20);
	lcm_8x16(0xb1, 0x1000, 0x20);
}

void show_news(void)
{
	uint16_t ii;
    uint8_t i;
	if(News_TM_Count == News_TM_Count_Bak)
		return;
	News_TM_Count_Bak = News_TM_Count;

	News_Comm_Len_Bak = News_Comm_Len+2;
	for(i=0; i<24; i++)
	{
		News_Buff[i] = 	News_Buff[i+2];
		News_Buff[i+1] = 	News_Buff[i+3];
	}
	News_Buff[24] = News_Comm[News_TM_Count*2];
	News_Buff[25] = News_Comm[News_TM_Count*2+1];

	ii = ((uint16_t)News_Buff[0] << 8) &0xff00;
	ii += News_Buff[1];
		lcm_16x16(0xb1, 0x1000, ii);

	ii = (uint16_t)(News_Buff[2] << 8) &0xff00;
	ii += News_Buff[3];
		lcm_16x16(0xb1, 0x1100, ii);

	ii = (uint16_t)(News_Buff[4] << 8) &0xff00;
	ii += News_Buff[5];
		lcm_16x16(0xb1, 0x1200, ii);

	ii = (uint16_t)(News_Buff[6] << 8) &0xff00;
	ii += News_Buff[7]; 
		lcm_16x16(0xb1, 0x1300, ii);
	
	ii = (uint16_t)(News_Buff[8] << 8) &0xff00;
	ii += News_Buff[9];
		lcm_16x16(0xb1, 0x1400, ii);

	ii = (uint16_t)(News_Buff[10] << 8) &0xff00;
	ii += News_Buff[11];
		lcm_16x16(0xb1, 0x1500, ii);

	ii = (uint16_t)(News_Buff[12] << 8) &0xff00;
	ii += News_Buff[13];
		lcm_16x16(0xb1, 0x1600, ii);

	ii = (uint16_t)(News_Buff[14] << 8) &0xff00;
	ii += News_Buff[15];
		lcm_16x16(0xb1, 0x1700, ii);	
}
void show_time(void)
{
	uint16_t ip;
	uint32_t is;
	uint8_t gh,gm,gl;
	if(Rd_Over | Rd_Read)
	{
		asm("nop");
		return;
	}
	if(Card_Show_Time <5)	//T_CNT_SE)
	{
		asm("nop");
		return;
	}
	asm("nop");
	lcm_16x16(0xb4, 0x1600, 0xd6dc);
//	TIME_RTC[3]=6;
	switch(TIME_RTC[3])
	{
		case 0:
			ip =0xc8d5; break;
		case 1:
			ip =0xd2bb; break;
		case 2:
			ip =0xb6fe; break;
		case 3:
			ip =0xc8fd; break;
		case 4:
			ip =0xcbc4; break;
		case 5:
			ip =0xcee5; break;
		case 6:
			ip =0xc1f9; break;
		default:
			ip =0xc8d5;	 break;
	} 
	lcm_16x16(0xb4, 0x1700, ip);
	if(TIME_RTC_BK[5] !=TIME_RTC[5] || Buz_bk_flag)
	{
		lcm_8x16(0xb6, 0x1000, show816_H(TIME_RTC[6]));		
		lcm_8x16(0xb6, 0x1008, show816_L(TIME_RTC[6]));	//year
	}
	lcm_8x16(0xb6, 0x1100, 0x2D);					// 2d-
	if(TIME_RTC_BK[5] !=TIME_RTC[5] || Buz_bk_flag)
	{
		lcm_8x16(0xb6, 0x1108, show816_H(TIME_RTC[5]));		
		lcm_8x16(0xb6, 0x1200, show816_L(TIME_RTC[5])); //month
	}	
	lcm_8x16(0xb6, 0x1208, 0x2D);
	if(TIME_RTC_BK[4] !=TIME_RTC[4] || Buz_bk_flag)		//day
	{
		lcm_8x16(0xb6, 0x1300, show816_H(TIME_RTC[4]));		
		lcm_8x16(0xb6, 0x1308, show816_L(TIME_RTC[4]));
	}	
	if(TIME_RTC_BK[2] !=TIME_RTC[2] || Buz_bk_flag)
	{
		lcm_8x16(0xb4, 0x1000, show816_H(TIME_RTC[2]));		
		lcm_8x16(0xb4, 0x1008, show816_L(TIME_RTC[2])); //hour
	}
	lcm_8x16(0xb4, 0x1100, 0x3A);					//:
	if(TIME_RTC_BK[1] !=TIME_RTC[1] || Buz_bk_flag)
	{
		lcm_8x16(0xb4, 0x1108, show816_H(TIME_RTC[1]));		
		lcm_8x16(0xb4, 0x1200, show816_L(TIME_RTC[1])); //min
	}	
	lcm_8x16(0xb4, 0x1208, 0x3A);	
	if(TIME_RTC_BK[0] !=TIME_RTC[0] || Buz_bk_flag)
	{
		lcm_8x16(0xb4, 0x1300, show816_H(TIME_RTC[0]));		
		lcm_8x16(0xb4, 0x1308, show816_L(TIME_RTC[0])); //sec
	}
	if(Comm_State)
	{
		lcm_8x16(0xb4, 0x1400, 0x20);
		lcm_8x16(0xb4, 0x1408, 0x20);	
		lcm_8x16(0xb4, 0x1500, 0x20);	
		lcm_8x16(0xb4, 0x1508, 0x20);
		switch(Comm_Dsp_Order)
		{
			case 1:
				lcm_8x16(0xb4, 0x1400, 0x3e);	
				break;
			case 2:
				lcm_8x16(0xb4, 0x1400, 0x3d);	
				lcm_8x16(0xb4, 0x1408, 0x3e);
				break;
			case 3:	
				lcm_8x16(0xb4, 0x1408, 0x3d);	
				lcm_8x16(0xb4, 0x1500, 0x3e);
				break;
			case 4:
				lcm_8x16(0xb4, 0x1500, 0x3d);	
				lcm_8x16(0xb4, 0x1508, 0x3e);
				break;
			case 5:
				lcm_8x16(0xb4, 0x1408, 0x3c);	
				lcm_8x16(0xb4, 0x1500, 0x3d);
				break;
			default:
				Comm_Dsp_Order=1;
				break;
		}
	}
	else
	{
		lcm_8x16(0xb4, 0x1400, 0x20);	
		lcm_8x16(0xb4, 0x1408, 0x20);	
		lcm_8x16(0xb4, 0x1500, 0x20);	
		lcm_8x16(0xb4, 0x1508, 0x20);	
	}
	lcm_8x16(0xb6, 0x1500, 0x53);	//SN
	lcm_8x16(0xb6, 0x1508, 0x4E);
	lcm_8x16(0xb6, 0x1600, 0x3A);		
	
//		ID_No =0xf9;
	is = Hex_Bcd((uint16_t)ID_No);
	gh =(uint8_t) (is >>8); 			
	gl =(uint8_t)is;
	lcm_8x16(0xb6, 0x1608, show816_L(gh));	//
	lcm_8x16(0xb6, 0x1700, show816_H(gl));		
	lcm_8x16(0xb6, 0x1708, show816_L(gl));	//			

	Buz_bk_flag=0;
}
void show_card(void)
{
	if(Rd_Over | Rd_Read)
	{
		asm("nop");
		return;
	}
	lcm_8x16(0xb4, 0x1100, show816_H(ccc[0]));		
	lcm_8x16(0xb4, 0x1108, show816_L(ccc[0]));	//year

	lcm_8x16(0xb4, 0x1200, show816_H(ccc[1]));		
	lcm_8x16(0xb4, 0x1208, show816_L(ccc[1])); //month

	lcm_8x16(0xb4, 0x1300, show816_H(ccc[2]));		
	lcm_8x16(0xb4, 0x1308, show816_L(ccc[2]));

	lcm_8x16(0xb4, 0x1400, show816_H(ccc[3]));		
	lcm_8x16(0xb4, 0x1408, show816_L(ccc[3])); //hour

	lcm_8x16(0xb4, 0x1500, show816_H(ccc[4]));		
	lcm_8x16(0xb4, 0x1508, show816_L(ccc[4])); //min

	lcm_8x16(0xb4, 0x1000, 0x20);		
	lcm_8x16(0xb4, 0x1008, 0x20); 
	lcm_8x16(0xb4, 0x1600, 0x20);		
	lcm_8x16(0xb4, 0x1608, 0x20); 
	lcm_8x16(0xb4, 0x1700, 0x20);		
	lcm_8x16(0xb4, 0x1708, 0x20); 
}



/*
void Exchange_Row_to_Column()
{
	uchar i,j,k,m;

	for(i=0;i<32;i++)
	{
		Row_RAM[i] = LCM_RAM[i];
		Column_RAM[i]=0;
	}
	for(i=0;i<8;i++)		//0-7 row byte
	{
		j= i*2;				//0.2.4.6.8...row

		for(k=0;k<8;k++)	//0-7 column bit 
		{
			m=GET_BIT(Row_RAM[j],(7-k)); //7--
			if(m)
			{
				SET_BIT(Column_RAM[k],i);
			}
			else
			{
				CLR_BIT(Column_RAM[k],i);
			}			
		}
		j= i*2+1;
		for(k=0;k<8;k++)	//0-7 column bit 
		{
			m=GET_BIT(Row_RAM[j],(7-k)); //7--
			if(m)
			{
				SET_BIT(Column_RAM[k+8],i);
			}
			else
			{
				CLR_BIT(Column_RAM[k+8],i);
			}				
		}				
		j= i*2+16;
		for(k=0;k<8;k++)	//0-7 column bit 
		{
			m=GET_BIT(Row_RAM[j],(7-k)); //7--
			if(m)
			{
				SET_BIT(Column_RAM[k+16],i);
			}
			else
			{
				CLR_BIT(Column_RAM[k+16],i);
			}				
		}		
		j= i*2+17;
		for(k=0;k<8;k++)	//0-7 column bit 
		{
			m=GET_BIT(Row_RAM[j],(7-k)); //7--
			if(m)
			{
				SET_BIT(Column_RAM[k+24],i);
			}
			else
			{
				CLR_BIT(Column_RAM[k+24],i);
			}				
		}						
	}

	asm("nop");
} 
*/

⌨️ 快捷键说明

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