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

📄 display.c

📁 C51单片机一个小项目源程序:包含液晶12232驱动,AD7705驱动,按键扫描及单片机内部EEPROM的驱动,是一个比较值得参考的源程序
💻 C
字号:
#include "mylib.h"
extern uchar  Data_AD[4];
extern uint AD_data;
extern uint  k;
extern uchar  KEY_NO;
extern uchar data MENU_NO;
extern uchar data MENU_MENU1_NO;
extern uchar data MENU_MENU2_NO;
extern uchar i;
extern uint  j;
uint Ck1;
extern uint Ch1k,Ch2k;
extern bit in2;
void  display_num(uchar mode,uchar beginaddre,uchar cole,uchar k1a,uchar k2a,uint k)
{
   uchar k1,k2,k3,k4,k5;
   k1=k/10000;
   k=k%10000;	  				
   k2=k/1000;
   k3=(k%1000)/100;
   k4=(k%100)/10;
   k5=k%10;
   if(mode)	
   { 
   if(k1a==1)
   {
	  switch(k1)
     {
       case 0:	
	            dprintf(beginaddre,cole,"0",0);
	    	    break;
	   case 1:	dprintf(beginaddre,cole,"1",0);
	            break;
	   case 2:	dprintf(beginaddre,cole,"2",0);
	            break;
	   case 3:	dprintf(beginaddre,cole,"3",0);
	            break;
	   case 4:	dprintf(beginaddre,cole,"4",0);
	            break;
	   case 5:	dprintf(beginaddre,cole,"5",0);
	            break;
	   case 6:	dprintf(beginaddre,cole,"6",0);
	            break;
	   case 7:	dprintf(beginaddre,cole,"7",0);
	            break;
	   case 8:	dprintf(beginaddre,cole,"8",0);
	            break;
	   case 9:	dprintf(beginaddre,cole,"9",0);
	            break;
	   default:	break;
   } 
   }
   if(k2a==1)
   {  
   switch(k2)
   {
       case 0:	
	            dprintf(beginaddre+8,cole,"0",0);
	            break;
	   case 1:	dprintf(beginaddre+8,cole,"1",0);
	            break;
	   case 2:	dprintf(beginaddre+8,cole,"2",0);
	            break;
	   case 3:	dprintf(beginaddre+8,cole,"3",0);
	            break;
	   case 4:	dprintf(beginaddre+8,cole,"4",0);
	            break;
	   case 5:	dprintf(beginaddre+8,cole,"5",0);
	            break;
	   case 6:	dprintf(beginaddre+8,cole,"6",0);
	            break;
	   case 7:	dprintf(beginaddre+8,cole,"7",0);
	            break;
	   case 8:	dprintf(beginaddre+8,cole,"8",0);
	            break;
	   case 9:	dprintf(beginaddre+8,cole,"9",0);
	            break;
	   default:	break;
   } 
   }
   switch(k3)
   {
       case 0:	
	            dprintf(beginaddre+16,cole,"0",0);
	            break;
	   case 1:	dprintf(beginaddre+16,cole,"1",0);
	            break;
	   case 2:	dprintf(beginaddre+16,cole,"2",0);
	            break;
	   case 3:	dprintf(beginaddre+16,cole,"3",0);
	            break;
	   case 4:	dprintf(beginaddre+16,cole,"4",0);
	            break;
	   case 5:	dprintf(beginaddre+16,cole,"5",0);
	            break;
	   case 6:	dprintf(beginaddre+16,cole,"6",0);
	            break;
	   case 7:	dprintf(beginaddre+16,cole,"7",0);
	            break;
	   case 8:	dprintf(beginaddre+16,cole,"8",0);
	            break;
	   case 9:	dprintf(beginaddre+16,cole,"9",0);
	            break;
	   default:	break;
   }
   switch(k4)
   {
       case 0:
	            dprintf(beginaddre+24,cole,"0",0);
	            break;
	   case 1:	dprintf(beginaddre+24,cole,"1",0);
	            break;
	   case 2:	dprintf(beginaddre+24,cole,"2",0);
	            break;
	   case 3:	dprintf(beginaddre+24,cole,"3",0);
	            break;
	   case 4:	dprintf(beginaddre+24,cole,"4",0);
	            break;
	   case 5:	dprintf(beginaddre+24,cole,"5",0);
	            break;
	   case 6:	dprintf(beginaddre+24,cole,"6",0);
	            break;
	   case 7:	dprintf(beginaddre+24,cole,"7",0);
	            break;
	   case 8:	dprintf(beginaddre+24,cole,"8",0);
	            break;
	   case 9:	dprintf(beginaddre+24,cole,"9",0);
	            break;
	   default:	break;
   }
   switch(k5)
   {
       case 0:	dprintf(beginaddre+32,cole,"0",0);
	            break;
	   case 1:	dprintf(beginaddre+32,cole,"1",0);
	            break;
	   case 2:	dprintf(beginaddre+32,cole,"2",0);
	            break;
	   case 3:	dprintf(beginaddre+32,cole,"3",0);
	            break;
	   case 4:	dprintf(beginaddre+32,cole,"4",0);
	            break;
	   case 5:	dprintf(beginaddre+32,cole,"5",0);
	            break;
	   case 6:	dprintf(beginaddre+32,cole,"6",0);
	            break;
	   case 7:	dprintf(beginaddre+32,cole,"7",0);
	            break;
	   case 8:	dprintf(beginaddre+32,cole,"8",0);
	            break;
	   case 9:	dprintf(beginaddre+32,cole,"9",0);
	            break;
	   default:	break;
     }
}
}
void test_menu()
{
	MENU_NO=1;
	MENU_MENU1_NO=1;
	lcd_clr();
	EA=0;
	k=0;	
}
/*
       标定	  1.转矩
	   选择	  2.转角
*/
void Biao_ding()
{
    MENU_NO=2;
	MENU_MENU1_NO=2;
	MENU_MENU2_NO=1;
	EA=0;
	lcd_clr();
	dprintf(0,0,"标定",0);
	dprintf(0,1,"选择",0);
	dprintf(57,0,"转矩",0);
	dprintf(57,1,"转角",0);
	disp_num_order();
} 
void Turnaround_Power()
{
    MENU_NO=3;
	MENU_MENU1_NO=3;
	lcd_clr();
	EA=0;
	dprintf(25,0,"转矩标定",0); 
	for(j=0;j<3;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"矩",0); 
		  dprintf(16,1,"00",0); 
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"矩",1); 
		  dprintf(16,1,"00",1);
	   }
	}
}
void Turnaround_Corner()
{
    MENU_NO=4;
	MENU_MENU1_NO=4;
	lcd_clr();
	EA=0;
	dprintf(25,0,"转角标定",0);
	for(j=0;j<3;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"角",0); 
		  dprintf(16,1,"00",0); 
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"角",1); 
		  dprintf(16,1,"00",1);
	   }
	} 
}

void Turnaround_Power_20()
{
    MENU_NO=5;
	MENU_MENU1_NO=5;
	lcd_clr();
	EA=0; 
	dprintf(25,0,"转矩标定",0);
	for(j=0;j<3;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"矩",0); 
		  dprintf(16,1,"40",0); 
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"矩",1); 
		  dprintf(16,1,"40",1);
	   }
	} 
}
void Turnaround_Corner_20()
{
    MENU_NO=6;
	MENU_MENU1_NO=6;
	lcd_clr(); 
	EA=0;
	dprintf(25,0,"转角标定",0);
	for(j=0;j<3;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"角",0); 
		  dprintf(16,1,"360",0); 
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(0,1,"角",1); 
		  dprintf(16,1,"360",1);
	   }
	} 
}

void Turnaround_Corner_test()
{
    lcd_clr();
    dprintf(40,0,"检测1",0);
	for(j=0;j<2;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(40,1,"检测1",0); 
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(40,1,"检测1",1); 
	   }
	}  
	MENU_NO=7;
	MENU_MENU1_NO=7;
	EA=0;
	lcd_clr();
	CH1_init();
    Ck1=filter(1);
}

void Turnaround_Corner_test2()
{
    lcd_clr();
    dprintf(40,0,"检测2",0);
	for(j=0;j<2;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(40,1,"检测2",0); 
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(40,1,"检测2",1); 
	   }
	}  
    MENU_NO=8;
	MENU_MENU1_NO=8;
	EA=0;
	CH1_init();
    Ck1=filter(1);
	//CH2_init();
    //Ck2=filter(0);
	lcd_clr();
	dprintf(42,0,"0000",0);
	dprintf(84,0,"0000",0);
	dprintf(42,1,"000",0);
	dprintf(84,1,"000",0);
}

void Turnaround_Corner_test3()
{
    lcd_clr();
    dprintf(40,0,"检测3",0);
	for(j=0;j<2;j++)
	{  
	  for(i=0;i<30;i++)
	  {
	      dprintf(40,1,"检测3",0);  
	   }
	  for(i=0;i<30;i++)
	  {
	      dprintf(40,1,"检测3",1); 
	   }
	}
	EA=1;
	lcd_clr();  
    MENU_NO=10;
	MENU_MENU1_NO=10;

}

void disp_numorder_settings()
{
    dprintf(0,0,"1.",0);
	dprintf(0,1,"2.",0);
	dprintf(61,0,"3.",0);
	dprintf(61,1,"4.",0);
	switch( MENU_MENU2_NO )
	{
	    case 1:	dprintf(0,0,"1.",1);
		break;
		case 2:	dprintf(0,1,"2.",1);
		break;
		case 3:	dprintf(61,0,"3.",1);
		break;
		case 4:	dprintf(61,1,"4.",1);
		break;
		default:
		break;
	}
} 

void turn_up(bit mode)
{
	++MENU_MENU2_NO;
  	if(MENU_MENU2_NO == 3)
		MENU_MENU2_NO = 1;
	if(mode==0)
	    disp_num_order();
	else 
	    disp_numorder_settings();
}

void disp_num_order()
{
	dprintf(39,0,"1.",0);
	dprintf(39,1,"2.",0);
	switch( MENU_MENU2_NO )
	{
	    case 1:
				Wait7705(15000);
		    	dprintf(39,0,"1.",1);
				Wait7705(15000);
		break;
		case 2:
		        Wait7705(15000);
		    	dprintf(39,1,"2.",1);
				Wait7705(15000);
		break;
		default:
		break;
	}
}

void Turnaround_Power_ling_data()
{
    AD7705_reset();
 	CH2_init();
 //   AD_data=filter_biaoding(0);
	delay();
	AD_data=filter_biaoding(0);
//    AD_data=ReadDataCh1_Ch2(0);
	Data_AD[0]=AD_data/256;
	Data_AD[1]=AD_data%256;
	dprintf(0,1,"正保存",0);
	Wait7705(40000);
//	Wait7705(20000);
	lcd_clr1(3,40,20,0);
	lcd_clr1(4,40,20,0);
	Turnaround_Power_20(); 
}

void Turnaround_Power_20_data()
{
	lcd_clr();
	dprintf(25,0,"转矩标定",0);
//	CH2_init();
//	AD_data=filter_biaoding(0);
	delay();
	AD_data=filter_biaoding(0);
//    AD_data=ReadDataCh1_Ch2(0);
	Data_AD[2]=AD_data/256;
	Data_AD[3]=AD_data%256;
	sector_erase(0x8200); 
    if(sequential_write_flash_in_one_sector(0x8200, 4, Data_AD))
   {
	   Led=0;
	   for(i=0;i<1;i++)
	   for(j=1;j;j++);
	   Led=1;
    }
	dprintf(0,1,"正保存",0);
	Wait7705(60000);
//	Wait7705(20000);
	dprintf(0,1,"标定完成",0);
	Wait7705(60000);
//	Wait7705(20000);
    Biao_ding();
}

void Turnaround_Corner_ling_data()
{
    AD7705_reset();
	CH1_init();
	AD_data=ReadDataCh1_Ch2(1);
//	delay();
//	AD_data=ReadDataCh1_Ch2(1);
	Data_AD[0]=AD_data/256;
	Data_AD[1]=AD_data%256;
	dprintf(0,1,"正保存",0);
	Wait7705(40000);
//	Wait7705(20000);
	lcd_clr1(3,40,20,0);
	lcd_clr1(4,40,20,0);
	Turnaround_Corner_20(); 
}

void Turnaround_Corner_20_data()
{
    lcd_clr();
	dprintf(10,0,"转角标定",0);
	CH1_init();
	AD_data=ReadDataCh1_Ch2(1);
//	delay();
//	AD_data=ReadDataCh1_Ch2(1);
	Data_AD[2]=AD_data/256;
	Data_AD[3]=AD_data%256;
	sector_erase(0x8400); 
    if(sequential_write_flash_in_one_sector(0x8400, 4, Data_AD))
	{
		Led=0;
		for(i=0;i<1;i++)
		for(j=1;j;j++);
		Led=1;
	}
	dprintf(0,1,"正保存",0);
	Wait7705(60000);
//	Wait7705(20000);
	dprintf(0,1,"标定完成",0);
	Wait7705(60000);
//	Wait7705(20000);
    Biao_ding();
}






⌨️ 快捷键说明

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