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

📄 lcd.c

📁 单片机工业控制板,具备I/O,KEYBOARD,步进电机伺服电机等功能
💻 C
字号:


#include <p30f4011.h>

#include "adr_port_define.h"

#include "extern_define.h"

unchar a[12]__attribute__ ((noload))={0};
UnWord data_high,data_low;




void DelayUmSec(UnDuWord N)								//1ms delay
{

do{

}while(--N);




}




void clrram(void)
{
	Nop();
	wr_lcd(comm,0x30);
	Nop();
	wr_lcd(comm,0x01);
	Nop();
}




void init_lcdsetup() 

{

wr_lcd(comm,0x30);						//fuction setting 72us

wr_lcd(comm,0x01);						//clr display 1.6ms
wr_lcd(comm,0x06);						//entrance piont setting 72us
wr_lcd(comm,0x0F);						//view staus switch 72us
}


unchar chk_busy()
	{
        
		TRISB=0XFF;
		Nop();
		
		_TRISD0=0;
		_TRISD2=0;
		_TRISE8=0;

						
		rs=0;
		Nop();
		Nop();
		Nop();

		Nop();
		wr=1;

		Nop();

		Nop();
		Nop();

		Nop();
                                      
		lcdcs=1;
		Nop();

		Nop();

		Nop();

		Nop();
		Nop();

		Nop();
		lcdcs=0;
		BUSY=busy;
		TRISB=0X00;
		Nop();
		return(BUSY);


	}













void wr_lcd(unchar dat_comm,unchar content)

{
		TRISB=0X00;			 		//RB0-RB7 DATA BUS
		_TRISD0=0;
		_TRISD2=0;
		_TRISE8=0;
		if(LCD_FLAG==1)
		
		DelayUmSec(4000);

		PORTB=content;
		if(dat_comm)
			{

				rs=1;				//write data

			}
		else
			{

				rs=0;				//write instruction
			}
			Nop();
			wr=0;
			Nop();
			Nop();
			lcdcs=1;
			Nop();
			Nop();
			Nop();
			Nop();
			Nop();
			Nop();


			lcdcs=0;

}


void array(UnWord data_num,UnWord m)
{
	if(m==1000)
	{
		q=5;
		k=4;
		a[5]=11;
		a[6]=11;
		a[7]=13;
		a[8]=14;

	}
	else if(m==100)
	{
		q=4;
		k=3;
	}

	for(i=1;i<q;i++)
	{
		
		a[i]=data_num/m;

	
	
		data_num=data_num- m*a[i];

		m=m/10;
	}



}


void array_num(UnDuWord data_number,UnWord mm)
{
	Nop();
	data_high=data_number/1000;
	Nop();
	data_low=data_number-data_high*1000;

	mm=100;
	for(i=1;i<4;i++)
	{
		
		a[i]=data_high/mm;

	
	
		data_high=data_high - mm*a[i];

		mm=mm/10;
	}
	mm=100;
	for(i=4;i<7;i++)
	{
		
		a[i]=data_low/mm;

	
	
		data_low=data_low - mm*a[i];

		mm=mm/10;
	}	

		Nop();

		Nop();
		k=10;
		a[10]=12;
		
		a[9]=11;

		a[8]=11;
	
		a[7]=a[6];
		a[6]=a[5];
		a[5]=a[4];
		a[4]=10;
		
		Nop();

	
}


void number_data()
{
	for(i=1;i<=k;i++)
	{	
		if(LCD_FLAG==1)
		DelayUmSec(4000);

		number(i);
	}


}






void number(unchar qq)
{



		


		rs=1;
		Nop();
		Nop();

		wr=0;
		Nop();
		Nop();

		lcdcs=1;	
		
		Nop();
		Nop();

		switch(a[qq])
		{
		case 0:
			PORTB=0X30;
			Nop();
			Nop();
		lcdcs=0;
		case 1:
			PORTB=0X31;
			Nop();
			Nop();
		lcdcs=0;
		case 2:
			PORTB=0X32;
			Nop();
			Nop();
		lcdcs=0;
		case 3:
			PORTB=0X33;
			Nop();
			Nop();
		lcdcs=0;
		case 4:
			PORTB=0X34;
			Nop();
			Nop();
		lcdcs=0;
		case 5:
			PORTB=0X35;
			Nop();
			Nop();
		lcdcs=0;
		case 6:
			PORTB=0X36;
			Nop();
			Nop();
			lcdcs=0;
		case 7:
			PORTB=0X37;
			Nop();
			Nop();

		lcdcs=0;

		case 8:
			PORTB=0X38;
			Nop();
			Nop();
	
		lcdcs=0;


		case 9:
			PORTB=0X39;
			Nop();
			Nop();
		lcdcs=0;
		case 10:
			PORTB=0X2E;
			Nop();
			Nop();
		lcdcs=0;
		case 11:


		
			PORTB=0X6D;
			Nop();
			Nop();
			
			
			lcdcs=0;
		
		case 12:
			PORTB=0X20;
			
			Nop();
			Nop();

			lcdcs=0;

		case 13:
			PORTB=0X2F;
			Nop();
			Nop();

			lcdcs=0;

		case 14:
			PORTB=0X73;
			Nop();
			Nop();

			lcdcs=0;



			
		default:
		break;
		}

}
























void chn_disp1(unchar const *chn1)
{
		
	if(LCD_FLAG==1)
	{	
		wr_lcd(comm,0x30);

		wr_lcd(comm,0x80);				//adress

		for(j=0;j<6;j++)			
 		{
			wr_lcd(dat,chn1[j]);

			if(LCD_FLAG==1)
				DelayUmSec(4000);
			}
		
	}
	else
	{	
		if(xx_photo==1)		
		{



			if(EXCHANGE==7)
			{

				j=0;
				wr_lcd(dat,chn1[j]);

				}
			else if(EXCHANGE==8)
			{

				j=1;
				wr_lcd(dat,chn1[j]);
				}


			else if(EXCHANGE==9)
			{
	
				j=2;
				wr_lcd(dat,chn1[j]);

				}
	
			else if(EXCHANGE==10)
			{
				j=3;
				wr_lcd(dat,chn1[j]);
				}

			else if(EXCHANGE==11)
			{
				
				j=4;
				wr_lcd(dat,chn1[j]);

				}

			else if(EXCHANGE==12)
			{
				
				j=5;
				wr_lcd(dat,chn1[j]);
				}



		}
		
	}

		
}


void chn_disp2(unchar const *chn2)
{
	if(LCD_FLAG==1)
	{

		wr_lcd(comm,0x30);
		wr_lcd(comm,0x90);				//adress
		for(j=0;j<6;j++)			
 		{
			wr_lcd(dat,chn2[j]);

		if(LCD_FLAG==1)
			DelayUmSec(4000);

		}

	}
	else
	{
		if(xx_photo==1)
		{
			if(EXCHANGE==15)
			{
			
				j=0;
				wr_lcd(dat,chn2[j]);


				}
			else if(EXCHANGE==16)
			{

				j=1;
				wr_lcd(dat,chn2[j]);

				}

			else if(EXCHANGE==17)
			{
				
				j=2;
				wr_lcd(dat,chn2[j]);
				}

			else if(EXCHANGE==18)
			{
			
				j=3;
				wr_lcd(dat,chn2[j]);
				}
			else if(EXCHANGE==19)
			{

				j=4;
				wr_lcd(dat,chn2[j]);
				}

			else if(EXCHANGE==20)
			{

				j=5;
				wr_lcd(dat,chn2[j]);

				}




		}

	}



}




void chn_disp3(unchar const *chn3)
{

	if(LCD_FLAG==1)
	{
		wr_lcd(comm,0x30);
		wr_lcd(comm,0x88);				//adress
		for(j=0;j<6;j++)			
 		{
			wr_lcd(dat,chn3[j]);

			if(LCD_FLAG==1)

				DelayUmSec(4000);

			}
	}
	else
	{
		if(xx_photo==1)	
		{
			if(EXCHANGE==23)
			{
				j=0;
				wr_lcd(dat,chn3[j]);
				}
			
			else if(EXCHANGE==24)
			{	j=1;
				wr_lcd(dat,chn3[j]);
				}

			else if(EXCHANGE==25)
			{
				
				j=2;
				wr_lcd(dat,chn3[j]);
				}

			else if(EXCHANGE==26)
			{
				
				j=3;
				wr_lcd(dat,chn3[j]);
				}

			else if(EXCHANGE==27)
			{
					
				j=4;
				wr_lcd(dat,chn3[j]);
				}

			else if(EXCHANGE==28)
			{
			
				j=5;
				wr_lcd(dat,chn3[j]);
				}


		}

	}

		
}



void chn_disp4(unchar const *chn4)
{
	if(xx_photo==2)	
	{

		if(EXCHANGE==7)
		{	
		//	chk_busy();
	
			j=0;
			wr_lcd(dat,chn4[j]);

			}

		 else if(EXCHANGE==8)
		 {	
		//	chk_busy();	

			j=1;
			wr_lcd(dat,chn4[j]);


			}

		else if(EXCHANGE==9)
		{	
		//	chk_busy();

			j=2;
			wr_lcd(dat,chn4[j]);


			}
		 else if(EXCHANGE==10)
		 {
		//	chk_busy();

			j=3;
			wr_lcd(dat,chn4[j]);

			}


	}


}


void chn_disp5(unchar const *chn5)
{
	if(xx_photo==2)
	{
		if(EXCHANGE==13)
		{	
	
			j=0;
			wr_lcd(dat,chn5[j]);
			}

		else if(EXCHANGE==14)
		{	
		
			j=1;
			wr_lcd(dat,chn5[j]);
			}

		else if(EXCHANGE==15)
		{	
			
			j=2;
			wr_lcd(dat,chn5[j]);
			}
		else if(EXCHANGE==16)
		{	

			j=3;
			wr_lcd(dat,chn5[j]);

			}
		else if(EXCHANGE==17)
		{	
		
			j=4;
			wr_lcd(dat,chn5[j]);
			}

		else if(EXCHANGE==18)
		{	

			j=5;
			wr_lcd(dat,chn5[j]);
			}






	}

}
void chn_disp6(unchar const *chn6)
{


		if(xx_photo==2)
		{
			if(EXCHANGE==21)
			{	

					
				j=0;
				wr_lcd(dat,chn6[j]);
				}

			else if(EXCHANGE==22)
			{	
		
				j=1;
				wr_lcd(dat,chn6[j]);
				}

			else if(EXCHANGE==23)
			{	
		
				j=2;
				wr_lcd(dat,chn6[j]);
				}

			else if(EXCHANGE==24)
			{	
			
				j=3;
				wr_lcd(dat,chn6[j]);

				}

			else if(EXCHANGE==25)
			{	

				j=4;
				wr_lcd(dat,chn6[j]);
				}

			else if(EXCHANGE==26)
			{	

				j=5;
				wr_lcd(dat,chn6[j]);

				}



		}


}



void chn_disp7(unchar const *chn7)

{

		if(xx_photo==3)
		{
			if(EXCHANGE==7)
			{	

					
				j=0;
				wr_lcd(dat,chn7[j]);
				}

			else if(EXCHANGE==8)
			{	
		
				j=1;
				wr_lcd(dat,chn7[j]);
				}

			else if(EXCHANGE==9)
			{	
		
				j=2;
				wr_lcd(dat,chn7[j]);
				}

			else if(EXCHANGE==10)
			{	
			
				j=3;
				wr_lcd(dat,chn7[j]);

				}
		}


}


void chn_disp8(unchar const *chn8)

{

		if(xx_photo==3)
		{
			if(EXCHANGE==13)
			{	

					
				j=0;
				wr_lcd(dat,chn8[j]);
				}

			else if(EXCHANGE==14)
			{	
		
				j=1;
				wr_lcd(dat,chn8[j]);
				}

			else if(EXCHANGE==15)
			{	
		
				j=2;
				wr_lcd(dat,chn8[j]);
				}

			else if(EXCHANGE==16)
			{	
			
				j=3;
				wr_lcd(dat,chn8[j]);

				}
		}


}




void chn_disp9(unchar const *chn9)

{

		if(xx_photo==3)
		{
			if(EXCHANGE==19)
			{	

					
				j=0;
				wr_lcd(dat,chn9[j]);
				}

			else if(EXCHANGE==20)
			{	
		
				j=1;
				wr_lcd(dat,chn9[j]);
				}

			else if(EXCHANGE==21)
			{	
		
				j=2;
				wr_lcd(dat,chn9[j]);
				}

			else if(EXCHANGE==22)
			{	
			
				j=3;
				wr_lcd(dat,chn9[j]);

				}
		}


}



void chn_disp10(unchar const *chn10)

{

		if(xx_photo==4)
		{
			if(EXCHANGE==7)
			{	

					
				j=0;
				wr_lcd(dat,chn10[j]);
				}

			else if(EXCHANGE==8)
			{	
		
				j=1;
				wr_lcd(dat,chn10[j]);
				}

			else if(EXCHANGE==9)
			{	
		
				j=2;
				wr_lcd(dat,chn10[j]);
				}

			else if(EXCHANGE==10)
			{	
			
				j=3;
				wr_lcd(dat,chn10[j]);

				}
		}


}


void chn_disp11(unchar const *chn11)
{


		if(xx_photo==4)
		{
			if(EXCHANGE==13)
			{	

					
				j=0;
				wr_lcd(dat,chn11[j]);
				}

			else if(EXCHANGE==14)
			{	
		
				j=1;
				wr_lcd(dat,chn11[j]);
				}

			else if(EXCHANGE==15)
			{	
		
				j=2;
				wr_lcd(dat,chn11[j]);
				}

			else if(EXCHANGE==16)
			{	
			
				j=3;
				wr_lcd(dat,chn11[j]);

				}

			else if(EXCHANGE==17)
			{	

				j=4;
				wr_lcd(dat,chn11[j]);
				}

			else if(EXCHANGE==18)
			{	

				j=5;
				wr_lcd(dat,chn11[j]);

				}



		}


}


void chn_disp12(unchar const *chn12)
{


		if(xx_photo==4)
		{
			if(EXCHANGE==21)
			{	

					
				j=0;
				wr_lcd(dat,chn12[j]);
				}

			else if(EXCHANGE==22)
			{	
		
				j=1;
				wr_lcd(dat,chn12[j]);
				}

			else if(EXCHANGE==23)
			{	
		
				j=2;
				wr_lcd(dat,chn12[j]);
				}

			else if(EXCHANGE==24)
			{	
			
				j=3;
				wr_lcd(dat,chn12[j]);

				}

			else if(EXCHANGE==25)
			{	

				j=4;
				wr_lcd(dat,chn12[j]);
				}

			else if(EXCHANGE==26)
			{	

				j=5;
				wr_lcd(dat,chn12[j]);

				}



		}


}


void chn_disp13(unchar const *chn13)
{

	if(KR_input==3)
	{
		j=0;
		wr_lcd(dat,chn13[j]);
	}

	else if(KR_input==4)
	{
		j=1;
		wr_lcd(dat,chn13[j]);

	}
	else if(KR_input==5)
	{
		j=2;
		wr_lcd(dat,chn13[j]);

	}

	else if(KR_input==6)
	{
		j=3;
		wr_lcd(dat,chn13[j]);

	}
	else if(KR_input==7)
	{
		j=4;
		wr_lcd(dat,chn13[j]);

	}

	else if(KR_input==8)
	{
		j=5;
		wr_lcd(dat,chn13[j]);

	}
	else if(KR_input==9)
	{
		j=6;
		wr_lcd(dat,chn13[j]);

	}

	else if(KR_input==10)
	{
		j=7;
		wr_lcd(dat,chn13[j]);

	}

}

void chn_disp14(unchar const *chn14)
{
	if(KR_input==3)
	{
		j=0;
		wr_lcd(dat,chn14[j]);
	}

	else if(KR_input==4)
	{
		j=1;
		wr_lcd(dat,chn14[j]);

	}
	else if(KR_input==5)
	{
		j=2;
		wr_lcd(dat,chn14[j]);

	}

	else if(KR_input==6)
	{
		j=3;
		wr_lcd(dat,chn14[j]);

	}
	else if(KR_input==7)
	{
		j=4;
		wr_lcd(dat,chn14[j]);

	}

	else if(KR_input==8)
	{
		j=5;
		wr_lcd(dat,chn14[j]);

	}
	else if(KR_input==9)
	{
		j=6;
		wr_lcd(dat,chn14[j]);

	}

	else if(KR_input==10)
	{
		j=7;
		wr_lcd(dat,chn14[j]);

	}

}

void chn_disp15(unchar const *chn15)
{
	if(KR_input==3)
	{
		j=0;
		wr_lcd(dat,chn15[j]);
	}

	else if(KR_input==4)
	{
		j=1;
		wr_lcd(dat,chn15[j]);

	}
	else if(KR_input==5)
	{
		j=2;
		wr_lcd(dat,chn15[j]);

	}

	else if(KR_input==6)
	{
		j=3;
		wr_lcd(dat,chn15[j]);

	}
	else if(KR_input==7)
	{
		j=4;
		wr_lcd(dat,chn15[j]);

	}

	else if(KR_input==8)
	{
		j=5;
		wr_lcd(dat,chn15[j]);

	}
	else if(KR_input==9)
	{
		j=6;
		wr_lcd(dat,chn15[j]);

	}

	else if(KR_input==10)
	{
		j=7;
		wr_lcd(dat,chn15[j]);

	}

}

void chn_disp16(unchar const *chn16)
{

	if(KR_input==3)
	{
		j=0;
		wr_lcd(dat,chn16[j]);
	}
	else if(KR_input==4)
	{
		j=1;
		wr_lcd(dat,chn16[j]);

	}
	else if(KR_input==5)
	{
		j=2;
		wr_lcd(dat,chn16[j]);

	}

	else if(KR_input==6)
	{
		j=3;
		wr_lcd(dat,chn16[j]);

	}
	else if(KR_input==7)
	{
		j=4;
		wr_lcd(dat,chn16[j]);

	}

	else if(KR_input==8)
	{
		j=5;
		wr_lcd(dat,chn16[j]);

	}
	else if(KR_input==9)
	{
		j=6;
		wr_lcd(dat,chn16[j]);

	}

	else if(KR_input==10)
	{
		j=7;
		wr_lcd(dat,chn16[j]);

	}




}



void chn_disp17(unchar const *chn17)
{

	if(KR_input==3)
	{
		j=0;
		wr_lcd(dat,chn17[j]);
	}
	else if(KR_input==4)
	{
		j=1;
		wr_lcd(dat,chn17[j]);

	}
	else if(KR_input==5)
	{
		j=2;
		wr_lcd(dat,chn17[j]);

	}

	else if(KR_input==6)
	{
		j=3;
		wr_lcd(dat,chn17[j]);

	}
	else if(KR_input==7)
	{
		j=4;
		wr_lcd(dat,chn17[j]);

	}

	else if(KR_input==8)
	{
		j=5;
		wr_lcd(dat,chn17[j]);

	}
	else if(KR_input==9)
	{
		j=6;
		wr_lcd(dat,chn17[j]);

	}

	else if(KR_input==10)
	{
		j=7;
		wr_lcd(dat,chn17[j]);

	}




}


⌨️ 快捷键说明

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