lcd-bak.c

来自「ertfs文件系统里面既有完整ucos程序」· C语言 代码 · 共 441 行 · 第 1/2 页

C
441
字号
    0x02,0x00,0x00,0x00,0x00,0x60,0x90,0x90,
    0x60,0x00,0x00,0x80,0x78,0x07,0x00,0x00,
    0x00,0x00,0x07,0x08,0x08,0x08,0x07,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,0x07,0x78,0xc0,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
    0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x80,0x80,0x00,0x00,0x00,0x00,0x10,0x28,
    0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0xc0,0x78,0x07,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,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x01,0x03,0x02,0x04,0x04,0x04,0x08,0x08,
    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];
  }
}
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
#if 0
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!");
}
#endif

#define SCR_XSIZE 	(320)  
#define SCR_YSIZE 	(240)

#define COLOR_NUMBER 256

#define LCD_XSIZE 	(320)
#define LCD_YSIZE 	(240)
unsigned aLcdActiveBuffer[LCD_YSIZE][LCD_XSIZE/4];
#define M5D(n) ((n) & 0x1fffff)
#define ARRAY_SIZE_COLOR 	(SCR_XSIZE/1*SCR_YSIZE)
#define HOZVAL			(LCD_XSIZE/4-1)
#define HOZVAL_COLOR		(LCD_XSIZE*3/8-1)
#define LINEVAL			(LCD_YSIZE-1)
#define MVAL			(13)
#define CLKVAL_COLOR 		(4) //60Mhz 
#define MVAL_USED 0
#define INT32U unsigned
//*****************************************************************
//** 函数名:void Lcd_Clr(void)
//** 输 入: Null
//** 输 出: Null
//** 功能描述:清槠

⌨️ 快捷键说明

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