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

📄 lcd.c

📁 tmsf2812下的ms128545zk的驱动源码程序
💻 C
字号:
#define LCD_FUNC
#include "..\include\DSP281x_Device.h" // DSP281x Headerfile Include File
#include "..\include\LEU_Master_Test.h" //SelfDefine Headerfile Include File
#include "..\include\LCD.h"
#include "..\include\KEY.h"
//#include "../../zcq/flashbioszcqcfg.h"





//lcd func 
void lcd_init(void)
{
	
	lcd_ioinit();
	LCD_RST_CLEAR=1;
	delayms(20);
 	LCD_RST_SET=0x01;
	delayms(40);
	lcd_write_command(LCD_MODE);
	delayms(1);
	lcd_write_command(LCD_MODE);
	delayms(1);
	lcd_write_command(LCD_TURNON);
	delayms(1);
	lcd_write_command(LCD_CLEAR);
	delayms(10);
	lcd_write_command(LCD_SETENTERDOT);
	delayms(1);
	lcd_write_command(LCD_CURSOROFF);
	delayms(1);
	 lcd_clear();
}

void lcd_write_command(uchar command)
{
	 
	 LCD_RW_CLEAR=1;
	 LCD_RS_CLEAR=1;
	 LCD_D0_7_SET=(command)&0x00ff;
	 LCD_D0_7_CLEAR=(~command)&0x00ff;
	 LCD_E_SET=1;
	 delayus(1);
	 LCD_E_CLEAR=1;
	 delayus(20);
}
void lcd_write_data(uchar data)
{

	 LCD_RW_CLEAR=1;
	 LCD_RS_SET=1;
	 LCD_D0_7_SET=(data)&0x00ff;
	 LCD_D0_7_CLEAR=(~data)&0x00ff;
	 LCD_E_SET=1;
	 delayus(1);
	 LCD_E_CLEAR=1;
	 delayus(20);

}
void lcd_putchar(uchar * p,uchar x,uchar y,uchar length)// disp ascii
{

	 uchar addr,i;
 	 if(x==1)
	 addr=0x80+y-1;
	 if(x==2)
	 addr=0x90+y-1;
	 if(x==3)
	 addr=0x88+y-1;
	 if(x==4)
	 addr=0x98+y-1;
	 lcd_write_command(addr);
	 for(i=0;i<length;i++)
	 {

		 lcd_write_data(*p);
		 p++;
	 }

}
 
void lcd_clearchar(uchar x,uchar y,uchar length)
{

	 uchar addr,i;
 	 if(x==1)
	 addr=0x80+y-1;
	 if(x==2)
	 addr=0x90+y-1;
	 if(x==3)
	 addr=0x88+y-1;
	 if(x==4)
	 addr=0x98+y-1;
	 lcd_write_command(addr);
	 for(i=0;i<length;i++)
	 {
		 lcd_write_data(' ');
	 }
}
		 
		 
void lcd_readbusy(void)
{
	 Uint16 i=0;
	 EALLOW; 
	 LCD_D0_7_DIR=0xff00 & LCD_D0_7_DIR;//as input
	 EDIS;
	 LCD_RW_SET=1;
	 LCD_RS_CLEAR=1;
	 LCD_E_SET=1;
	 delayus(1);
	 i=LCD_D0_7_DAT;
	 LCD_E_CLEAR=1;
	 while(i|0xff7f==0xffff);
	 EALLOW;
	 LCD_D0_7_DIR=0x00ff|LCD_D0_7_DIR;//as out
	 EDIS;
}


void lcd_ioinit(void)
{
 	 EALLOW;
     LCD_RW_DIR=0x01;    	//  as OUT
	 LCD_RS_DIR=1;
	 LCD_E_DIR=1;
	 LCD_D0_7_DIR=0x00ff|LCD_D0_7_DIR;
	 LCD_RST_DIR=0x01;
   	 EDIS;
	 LCD_RW_CLEAR=1;  //拉低
	 LCD_RS_CLEAR=1;  //
	 LCD_E_CLEAR=1;   //
	 LCD_D0_7_CLEAR=0x00ff;//
	 LCD_RST_CLEAR=1;      //
	 
}
void lcd_clear(void)
{
	lcd_write_command(LCD_CLEAR);
	delayms(10);
	//TSK_sleep(10);
}
void lcd_cursor(uchar x,uchar y)// cursor location
{

	 uchar addr;
 	 if(x==1)
	 addr=0x80+y-1;
	 if(x==2)
	 addr=0x90+y-1;
	 if(x==3)
	 addr=0x88+y-1;
	 if(x==4)
	 addr=0x98+y-1;
	 lcd_write_command(addr);
}

 void lcd_test()
 {
     uchar keyno = 0x01;
 	 while(keyno!=0x80)
 	 {
 	  LCD_D0_7_DAT = keyno;
 	  keyno = keyno<<1;
 	  LCD_E_SET =1;
 	  LCD_E_CLEAR=1;
 	  
 	  LCD_RW_SET=1;
 	  LCD_RW_CLEAR=1;
 	  
 	  LCD_RS_SET=1;
 	  LCD_RS_CLEAR=1;
 	  
 	  LCD_RST_SET=1;
 	  LCD_RST_CLEAR=1;
 	 } 
 /*
  LCD_D0_7_DIR = 0x007f;
  LCD_D0_7_DAT = 0X0000;
  LCD_D0_7_SET = 0X007F;
  LCD_D0_7_CLEAR = 0X0000;
  LCD_D0_7_TOG = 0X007F;
  
  */
  
 }
 
 //***************************************
     
void menufunc0(void)
{/*
   uchar arrow;
   if(pdpmenuflag==1)
   {
   arrow = 1;
   pdpmenuflag = 0;
   }
  
  lcd_putchar((uchar *)"<---",arrow,3,4);
  if((key_read()==DOWN)&&(arrow<5)&&(arrow>0))
    {
     arrow+=1;
     lcd_clear();
    }
  if((key_read()==0xe7)&&(arrow<5)&&(arrow>0))
    {
     arrow-=1;
     lcd_clear();
    }
*/	 
		
	//	lcd_putchar((uchar *)"ABCDEFGH",2,1,16);
	//old1menucount=menucount;
//		lcd_putchar((uchar *)"欢迎使用",1,3,8);
	//	lcd_putchar((uchar *)"北京交大思诺科技",2,1,16);
	//	lcd_putchar((uchar *)"版本 1.0",3,3,8);
	    
	//delayms(2000); 
}

 //***************************************

⌨️ 快捷键说明

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