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

📄 lcd11_4.txt

📁 RA8835的液晶驱动程序 已调试通过 希望对大家有用
💻 TXT
📖 第 1 页 / 共 4 页
字号:
       for(i=1;i<9;i++)
      {
        lcdWrLineVerticalR1(5, 39, 24*i+1,23); 
       }
	   lcdWrLineVerticalR1(5, 39, 217,21);
       for(j=1;j<10;j++)
      	{
      	  lcdWrLineHorizontal(5,0,24*j,4);
      	}
       lcdWrLineVertical(5, 0, 2,22);
      for(k=1;k<9;k++)
      {
        lcdWrLineVertical(5, 0, 24*k+1,23); 
    
      }
      lcdWrLineVertical(5, 0, 217,21);
      lcdWrLineVertical(5, 13, 49,23);
      lcdWrLineVertical(5, 26, 49,23);

      
      lcdWrLineVertical(5, 13, 97,23);
      lcdWrLineVertical(5, 26, 97,23);

      lcdWrLineVertical(5, 26, 193,23);
      lcdWrLineVertical(3, 13, 217,21);
      lcdWrLineVertical(3, 34, 217,21);

      lcdWrWord(5,Data_Bu,16,6);
      lcdWrWord(5,Data_Ping,18,6);
      lcdWrWord(5,Data_Heng,20,6);
      lcdWrWord(5,Data_Du,22,6);

      lcdWrWord(5,Data_Dian,2,28);
      lcdWrWord(5,Data_Ya,8,28);
      lcdWrLetter(5,Data_V, 12, 28);

      lcdWrWord(5,Data_Bu,2,76);
      lcdWrWord(5,Data_Ping,4,76);
      lcdWrWord(5,Data_Heng,6,76);
      lcdWrWord(5,Data_Du,8,76);
      lcdWrLetter(5,Data_B, 38, 76);

      lcdWrWord(5,Data_Dian,2,100);
      lcdWrWord(5,Data_Liu,8,100);
      lcdWrLetter(5,Data_A, 12, 100);

      lcdWrWord(5,Data_Bu,2,148);
      lcdWrWord(5,Data_Ping,4,148);
      lcdWrWord(5,Data_Heng,6,148);
      lcdWrWord(5,Data_Du,8,148);
      lcdWrLetter(5,Data_B, 38, 148);


	   lcdWrWord(5,Data_Ce,30,198);
       lcdWrWord(5,Data_Liang,34,198);
      

        lcdWrWord(5,Data_Zhuang,1,219);
        lcdWrWord(5,Data_Tai,3,219);

        lcdWrWord(5,Data_Wei,7,219);
        lcdWrWord(5,Data_Ce,9,219);
        lcdWrWord(5,Data_Liang,11,219);

        lcdWrWord(5,Data_Ce,14,219);
        lcdWrWord(5,Data_Liang,16,219);
	    lcdWrWord(5,Data_Fang,18,219);
        lcdWrWord(5,Data_Shi41,20,219);
        lcdWrWord(5,Data_Dan,22,219);
        lcdWrWord(5,Data_Xiang,24,219);
        lcdWrWord(5,Data_Dian,26,219);
        lcdWrWord(5,Data_Ya,28,219);
        lcdWrWord(5,Data_Dian,30,219);
        lcdWrWord(5,Data_Liu,32,219);
 
       lcdWrWord(5,Data_Tui,35,219);
       lcdWrWord(5,Data_Chu,37,219);	
}
/*
void key_read()
{
    Uint16    k1,k2,k3,k4;
    EALLOW;
    GpioMuxRegs.GPAMUX.all=0x0DFF;//IOPA0~7 IOPB4~7 设置为IO方式
    GpioMuxRegs.GPBMUX.all=0xFF0F;
    GpioMuxRegs.GPADIR.all=0x0FFF;//IOPA0~7 设置为输入方式 
    GpioMuxRegs.GPBDIR.all=0x00F0;//IOPB4~7 设置为输出方式
    EDIS;
    k1=GpioDataRegs.GPADAT.bit.GPIOA15;
	k2=GpioDataRegs.GPADAT.bit.GPIOA14;
	k3=GpioDataRegs.GPADAT.bit.GPIOA13;
    k4=GpioDataRegs.GPADAT.bit.GPIOA12;
}*/
void test()
{    
     
     
   
       Uint16 i,j,k;
       lcdWrLineHorizontal(5, 0, 0,8);
       lcdWrLineHorizontal(5, 0, 238,8);
       lcdWrLineVerticalR1(5, 39, 2,22);
       for(i=1;i<9;i++)
       {
        lcdWrLineVerticalR1(5, 39, 24*i+1,23); 
       }
	   lcdWrLineVerticalR1(5, 39, 217,21);
       for(j=1;j<10;j++)
      	{
      	  lcdWrLineHorizontal(5,0,24*j,4);
      	}
       lcdWrLineVertical(5, 0, 2,22);
      for(k=1;k<9;k++)
      {
        lcdWrLineVertical(5, 0, 24*k+1,23); 
    
      }
      lcdWrLineVertical(5, 0, 217,21);
      lcdWrWord(5,Data_Tui,35,219);
      lcdWrWord(5,Data_Chu,37,219);
    //  lcdWrLetter(5, Data_A,0,0);
   //   lcdNegDis2(5,0,0,1); 
	 // LCD_WR_CMD(0x47);
	  //ttmp1=LCD_RD_DAT();
	 // ttmp2=LCD_RD_DAT();
	  //ttmp3=ttmp1|ttmp2;
  //  key_read();
}

void keyprocess(void)
{
   Uint16 temp;
   temp=keyvalue;
   switch(temp)
   {
   	case 1:
	    CLEAR();
   		Screen1Display();
   		break;
   	case 2:
		CLEAR();
   		Screen2Display();
   		break;
   	case 3:
		CLEAR();
   		Screen3Display();
   		break;
   	case 4:
		CLEAR();
   		Screen4Display();
   		break;
   	default :
		break;	
  }
}
////////////////////////////////////////////////////////////////////////
void main(void)
{
  
	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/*初始化PIE*/
	InitPieCtrl();

	/*初始化PIE中断噶勘?/
	InitPieVectTable();	
	
	/*初始化外设*/
    InitPeripherals();
    
	InitGpio();
	EALLOW;	
	PieVectTable.TINT0 = &ISRTimer0;
	PieVectTable.TINT2 = &ISRTimer2;
	
	EDIS;   
    
	/*设置CPU*/
	ConfigCpuTimer(&CpuTimer0, 100,10000);	
	ConfigCpuTimer(&CpuTimer2, 50, 1000000);	
	
 	StartCpuTimer0();
 	StartCpuTimer2();

    /*开中断*/
	IER |= M_INT1;
	IER |= M_INT14;	
	PieCtrl.PIEIER1.bit.INTx7=1;
	

	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM
	*Led8Lock = 0XB7;

    EALLOW;
    GpioMuxRegs.GPFMUX.bit.XF_GPIOF14 = 0;
    GpioMuxRegs.GPFDIR.bit.GPIOF14 = 1;
    EDIS;
	F2812_GPIOF14 = 0;
	lcd_2int();
	CLEAR();
  	while(1)

	{
	 // Screen5Display();
	  //test();
	  keyprocess();
	}

} 

	
void  Getkey()
{
 GpioMuxRegs.GPAMUX.all=0x0FFF;//IOA12~15 为IO口
 GpioMuxRegs.GPADIR.all=0x0FFF;//IOA12~15为输入口
 Curkey=GpioDataRegs.GPADAT.all;
 //NXT_sta=KEY_IDL;
 switch(NXT_sta)
 {
   case KEY_CON:
      if(keycnt>=4)
	  NXT_sta=KEY_END;
	  else
      NXT_sta=KEY_IDL;
	  break;

   case KEY_END:
      if(((Curkey|0xDFFF)==0xDFFF)&&(keytemp==KEY_k1))
      {
         keyvalue=KEY_k1;
         keycnt=0;
      }
      else if(((Curkey|0xEFFF)==0xEFFF)&&(keytemp==KEY_k2))
	  {
	     keyvalue=KEY_k2;
	     keycnt=0;
	  }
	  else if(((Curkey|0x7FFF)==0x7FFF)&&(keytemp==KEY_k3))
	  {
	     keyvalue=KEY_k3;
	     keycnt=0;
	  }
	  else if(((Curkey|0xBFFF)==0xBFFF)&&(keytemp==KEY_k4))
	  {
	     keyvalue=KEY_k4;
         keycnt=0;
	  }
	  NXT_sta=KEY_IDL;
	  break;

   case KEY_IDL:

      if((Curkey|0xDFFF)==0xDFFF) //k1被按下
	  {
	    keytemp=KEY_k1;
		keyvalue=NO_KEY;
		if(Prekeytemp==keytemp)
		{
		keycnt++;
		}
		else 
		keycnt=0;
	    Prekeytemp=KEY_k1;
		NXT_sta=KEY_CON;
	  }

      else if((Curkey|0xEFFF)==0xEFFF) //k2被按下
	  {
        keytemp=KEY_k2;
		keyvalue=NO_KEY;
		if(Prekeytemp==keytemp)
		{
		keycnt++;
		}
		else 
		keycnt=0;
	    Prekeytemp=KEY_k2;
		NXT_sta=KEY_CON;
      }

	  else if((Curkey|0x7FFF)==0x7FFF) //k3被按下
	  {
        keytemp=KEY_k3;
		keyvalue=NO_KEY;
		if(Prekeytemp==keytemp)
		{
		keycnt++;
		}
		else 
		keycnt=0;
	    Prekeytemp=KEY_k3;
		NXT_sta=KEY_CON;
	  }

	  else if((Curkey|0xDFFF)==0xDFFF) //k1被按下
	   {
        keytemp=KEY_k4;
		keyvalue=NO_KEY;
		if(Prekeytemp==keytemp)
		{
		keycnt++;
		}
		else 
		keycnt=0;
	    Prekeytemp=KEY_k4;
		NXT_sta=KEY_CON;
	  }
	  break;

	default:
	  break;
  }
}		

interrupt void ISRTimer0(void)
{
	PieCtrl.PIEACK.bit.ACK7=1;
	LedCount++;
	if(LedCount>4)
	{
		F2812_GPIOF14 = ~F2812_GPIOF14;	
		LedCount=0;
	};
    Getkey();
	return;
}


interrupt void ISRTimer2(void)
{
	SendData(SpiCode[SpiCount]);
	SpiCount++; 
	if (SpiCount>16){	SpiCount=0;
	F2812_GPIOF14 = ~F2812_GPIOF14;}
	
}


void	SendData(Uint16 data)
{
	Uint16	i,Temp;
	Temp = 0x80;
	for	(i=0;i<8;i++)
		{
			if ((data & Temp)==0)	ClrData;
			else	SetData;
			Temp >>= 1;
			ClrClk;
			Delay(10);
			SetClk;
		}
	*Led8Lock = 0xB7;
	Delay(10);	
	*Led8Lock = 0xBF;
	SetData;		
}
//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

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