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

📄 lcd.c

📁 Samsung S3c2440主板 Flash编程烧写软件
💻 C
📖 第 1 页 / 共 2 页
字号:
    0x08,0x08,0x08,0x04,0x04,0x04,0x02,0x03,
    0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,
    0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x01,0x02,0x04,0x04,0x04,0x0c,0x08,0x08,
    0x08,0x08,0x18,0x10,0x10,0x10,0x10,0x10,
    0x08,0x10,0x10,0x10,0x10,0x10,0x18,0x08,
    0x08,0x08,0x0c,0x04,0x04,0x04,0x02,0x01,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
unsigned char DIG_FONT[]=
{
/*0*/ 0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
/*1*/ 0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xff,
/*2*/ 0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,
/*3*/ 0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,
/*4*/ 0x00,0xff,0xff,0x00,0xff,0xff,0x00,0xff,
/*5*/ 0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,
/*6*/ 0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,
/*7*/ 0x00,0x00,0x00,0xff,0xff,0xff,0x00,0xff,
/*8*/ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
/*9*/ 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
unsigned char DISP_BUF[1152];//1 row/line is for ICON
//Turns the display ON or OFF.//
void Switch_LCD(U8 on_off)
{
	Comm_Port=switch_on_off+(on_off&0x01);//only bit0 is used
}
// Initial Display Line //
void Init_LCD_Line(U8 line_num)
{
	Comm_Port=init_line+(line_num&0x3f);//mask Bit7 and Bit6
}
// sets reference voltage //
void Set_Ref_Voltage(U8 ref_value)
{
	Comm_Port=set_ref;
	Comm_Port=ref_value&0x3f;						//mask Bit7 and Bit6
}
// Set Page Address //
void Set_Page(U8 page_num)
{
	Comm_Port=set_Page_addr+(page_num&0x0f);//mask High 4bit
}
// Set Column Address //
void Set_Col(U8 col_num)
{
	Comm_Port=set_col_addr_h+(col_num/0x10);//output High 4bit
	Comm_Port=set_col_addr_l+(col_num%0x10);//output Low 4bit
}
//ADC Select->Changes the relationship between RAM column address and segment driver. The direction of segment driver output pins can be reversed by software.//
void ADC_Select(U8 direct)
{
	Comm_Port=adc_select+(direct%0x01);//only bit0 is used
}
// Reverse Display ON_OFF //
void Reverse_Disp(U8 on_off)
{
	Comm_Port=reverse_disp+(on_off&0x01);//only bit0 is used
}
// Entire Display ON / OFF //
void Entire_Disp(U8 on_off)
{
	Comm_Port=entire_disp+(on_off&0x01);//only bit0 is used
}
// Select LCD Bias(0:1/7 1:1/9) //
void Sele_Bias(U8 bias)
{
	Comm_Port=sel_bias+(bias&0x01);//only bit0 is used
}
// Soft Reset //
void Soft_Reset(void)
{
	Comm_Port=soft_reset;
}
// SHL Select //
void SHL_Select(U8 on_off)
{
	Comm_Port=shl_select+(on_off&0x01);//only bit0 is used
}
// Power control //
void Power_Ctrl(U8 power_value)
{
	Comm_Port=power_ctrl+(power_value&0x07);//only bit2~0 sre used
}
// Regulator Resistor Select //
void Regulator_Select(U8 resistor)
{
	Comm_Port=reg_res_sel+(resistor&0x07);//only bit2~0 sre used
}
// Set Static Indicator State //
void Set_Static_Indicator_State(U8 on_off)
{
	U8 temp;
	temp=on_off&0x01;		//only bit0 is used
	if(temp==0)
		Comm_Port=set_indicator;
	else
	{
		Comm_Port=set_indicator+temp;	//output 1st byte
		Comm_Port=0x02;								//ON (about 0.5 second blinking )
	}	
}
void Reflash_LCD(void)
{
  /*display-data is output from DISP_BUF[] to LCD*/
  unsigned char line_num,col_num;
  for(line_num=0;line_num<9;line_num++)
  {
    Set_Page(line_num);
    Set_Col(0);
    for(col_num=0;col_num<128;col_num++)
    	Data_Port=DISP_BUF[line_num*128+col_num];
  }
}
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
void LCD_Init(void)
{
  /*Start of Initialization*/
  ADC_Select(0);//ADC Select
  SHL_Select(0);//SHL Select
  Sele_Bias(1);//LCD Bias Select
  Power_Ctrl(VC_ON);//User LCD Power Setup by Internal Instructions->Voltage Converter ON

  Delay(1000);//Wait for 1ms
  Power_Ctrl(VC_ON+VR_ON);//User LCD Power Setup by Internal Instructions->Voltage Regulator ON

  Delay(1000);//Wait for 1ms
  Power_Ctrl(VC_ON+VR_ON+VF_ON);//User LCD Power Setup by Internal Instructions->Voltage Follower ON
  Regulator_Select(0x04);Set_Ref_Voltage(0x20);//User LCD Power Setup by Internal Instructions->Regulator Resistor Select,Reference Voltage Register Set

  Delay(1000);//Waiting for Stabilizing the LCD Power Levels
                   /*End of Initialization*/
                   /*     Start to use    */
//Display Data RAM Addressing by Instruction
//        Initial Display Line
//        Set Page Address
//        Set Column Address

//Write Display ON / OFF by Instruction->Display ON / OFF

	Switch_LCD(1);//Turn Display ON / OFF by Instruction->Display ON / OFF
//	Show_BMP(Welcome_BMP);
//	LCD_Printf(2,"Hello!");
}

void Anti_Disp(U8 line_num)         //将某行反显
{
  unsigned char col_num;
  
  for(col_num=0;col_num< MAX_COL;col_num++)
    DISP_BUF[line_num*128+col_num]=~DISP_BUF[line_num*128+col_num];
  Reflash_LCD();
}
void Earse_Line(U8 line_num)        //擦除某行
{
  unsigned char col_num;
  
  for(col_num=0;col_num< MAX_COL;col_num++)
    DISP_BUF[line_num*128+col_num]=0x00;
  Reflash_LCD();
}
void LCD_SendString(unsigned char *disp_ptr,char *pt)
{
	unsigned char temp_char;
  unsigned char ascii_w;
  while(*pt)
  {
  	temp_char=(unsigned char)(*pt);
    for (ascii_w=0;ascii_w<Ascii_W;ascii_w++)
      *disp_ptr++=Ascii[temp_char*Ascii_W+ascii_w];
    pt++;
  }
}
void LCD_Printf(U8 line_num,char *fmt,...) //从某行起显示字符串
{
  va_list ap;
  char string[256];

  va_start(ap,fmt);
  vsprintf(string,fmt,ap);
  LCD_SendString(&DISP_BUF[line_num*128],string);
  va_end(ap);
  Reflash_LCD();
}
void Page_Dn(void)//全屏下移1行
{
	int line_num,col;
	for(line_num=6;line_num>=0;line_num--)
	{
		for(col=0;col<128;col++)
			DISP_BUF[(line_num+1)*128+col]=DISP_BUF[line_num*128+col];
	}
	Reflash_LCD();
}
void Page_Up(void)
{
	unsigned char line_num,col;
	for(line_num=0;line_num<7;line_num++)
	{
		for(col=0;col<128;col++)
			DISP_BUF[line_num*128+col]=DISP_BUF[(line_num+1)*128+col];
	}
	Reflash_LCD();
}
void CLS(void)      //清屏
{
  unsigned int buf_size;
  for(buf_size=0;buf_size<1152;buf_size++)	
		DISP_BUF[buf_size]=0x00;
  Reflash_LCD();
}
void Set_Icon(unsigned char icon,unsigned char val)                //设置图标
{
	DISP_BUF[8*128+icon]=val;
	Reflash_LCD();
}
void Show_BMP(unsigned char * ptr)
{
	unsigned int counter;
	for(counter=0;counter<1024;counter++)
	{
		DISP_BUF[counter]=*ptr;
		ptr++;
	}
	Reflash_LCD();
}



⌨️ 快捷键说明

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