コード例 #1
0
ファイル: LCD.c プロジェクト: DharmaPatil/asp
/****************************************************************************
* 名	称:void LCD_Init(void)
* 功	能:初始化LCD
* 入口参数:无
* 出口参数:
* 说	明:无
****************************************************************************/
void LCD_Init(void)
{
	//LCD管脚初始化
	LCD_PortInit();	

	GPIO_RESET(RST);
	SysTimeDly(2);	
	GPIO_SET(RST);
	SysTimeDly(1);

	//使能片选
	GPIO_RESET(CE);

	//初始化设置
	send_1hex_data_and_1cmd_to_lcm(TEXT_HOME_ADDRESS, LCD_TXT_STP);  	//文本显示区首地址
	send_2data_and_1cmd_to_lcm(LCD_BYTES_X, 0x00, LCD_TXT_WID);  		//文本显示区宽度
	send_1hex_data_and_1cmd_to_lcm(GRAPHIC_HOME_ADDRESS, LCD_GRH_STP); 	//图形显示区首地址
	send_2data_and_1cmd_to_lcm(LCD_BYTES_X, 0x00, LCD_GRH_WID);  		//图形显示区宽度
	send_2data_and_1cmd_to_lcm(0x02,0x00,LCD_CGR_POS);   				//CGRAM偏置地址设置
	LCD_WriteCommand(LCD_MOD_OR);      									//逻辑"或"

	//先清屏,再开显示
	ClearScreen();

	//开显示
	LCD_WriteCommand(LCD_DIS_GON);      								//启用图形显示
}
コード例 #2
0
//-------------------------------------
// Display initialization
//-------------------------------------
void LCD_Initialize(void)
{
unsigned char i;
LCD_DB4_DIR |= LCD_DB4; 
LCD_DB5_DIR |= LCD_DB5; 
LCD_DB6_DIR |= LCD_DB6; 
LCD_DB7_DIR |= LCD_DB7; 
LCD_E_DIR 	|= LCD_E;   
LCD_RS_DIR 	|= LCD_RS;  
_delay_ms(15); 
LCD_RS_PORT &= ~LCD_RS; 
LCD_E_PORT &= ~LCD_E;  

for(i = 0; i < 3; i++)
  {
  LCD_E_PORT |= LCD_E; 
  _LCD_OutNibble(0x03); 
  LCD_E_PORT &= ~LCD_E; 
  _delay_ms(5); 
  }

LCD_E_PORT |= LCD_E; 
_LCD_OutNibble(0x02); 
LCD_E_PORT &= ~LCD_E; 

_delay_ms(1); 
LCD_WriteCommand(HD44780_FUNCTION_SET | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); 
LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF); 
LCD_WriteCommand(HD44780_CLEAR); 
_delay_ms(2);
LCD_WriteCommand(HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT);
LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK);
}
コード例 #3
0
ファイル: driver_ssd1303.c プロジェクト: didima7777/test
void LCD_PutPixel(unsigned char X,unsigned char Y, unsigned char color)
  {
    unsigned char data;     
    unsigned char adress=X_OFFSET;       

    if( (X>=XMAX) || (Y>=YMAX) )return;

    adress += X;                                                 
 
    LCD_WriteCommand(0xB0 + (Y/8));
    LCD_WriteCommand((unsigned char)adress & 0x0F);   
    LCD_WriteCommand((unsigned char)((adress & 0xF0) >> 4) + 0x10);       

    LCD_WriteCommand(0xE0); // вход в режим записи
    data = LCD_read_data(1);              //dummy read
    data = LCD_read_data(0);              //realy read
    LCD_WriteCommand(0xEE);  // выход из режимазаписи       

 
    if(color == 1) 
      data |= 0x01 << (Y%8);     
    else 
      data &= ~(0x01 << (Y%8));  
	
    LCD_WriteData(data);
  }
コード例 #4
0
ファイル: SSD1963.c プロジェクト: candrian/SSD1963_STM32F4
/*********************************************************************
* Function:  LCD_SetArea(start_x,start_y,end_x,end_y)
*
* PreCondition: SetActivePage(page)
*
* Input: start_x, end_x	- start column and end column
*		 start_y,end_y 	- start row and end row position (i.e. page address)
*
* Output: none
*
* Side Effects: none
*
* Overview: defines start/end columns and start/end rows for memory access
*			from host to SSD1963
* Note: none
********************************************************************/
void LCD_SetArea(u16 start_x, u16 start_y, u16 end_x, u16 end_y)
{
	long offset;

	offset = (u16)_activePage*(GetMaxY()+1);

	start_y = offset + start_y;
	end_y   = offset + end_y;



	LCD_WriteCommand(CMD_SET_COLUMN);
	Clr_Cs;
	LCD_WriteData(start_x>>8);
	LCD_WriteData(start_x);
	LCD_WriteData(end_x>>8);
	LCD_WriteData(end_x);
	Set_Cs;
	LCD_WriteCommand(CMD_SET_PAGE);
	Clr_Cs;
	LCD_WriteData(start_y>>8);
	LCD_WriteData(start_y);
	LCD_WriteData(end_y>>8);
	LCD_WriteData(end_y);
	Set_Cs;
}
コード例 #5
0
//-------------------------------------------------------------------------------------------------
//
// Procedura inicjalizacji kontrolera HD44780.
//
//-------------------------------------------------------------------------------------------------
void LCD_Initalize(void)
{
unsigned char i;
LCD_DB4_DIR |= LCD_DB4; // Konfiguracja kierunku pracy wyprowadze�
LCD_DB5_DIR |= LCD_DB5; //
LCD_DB6_DIR |= LCD_DB6; //
LCD_DB7_DIR |= LCD_DB7; //
LCD_E_DIR 	|= LCD_E;   //
LCD_RS_DIR 	|= LCD_RS;  //
_delay_ms(15); // oczekiwanie na ustalibizowanie si� napiecia zasilajacego
LCD_RS_PORT &= ~LCD_RS; // wyzerowanie linii RS
LCD_E_PORT &= ~LCD_E;  // wyzerowanie linii E

for(i = 0; i < 3; i++) // trzykrotne powt�rzenie bloku instrukcji
  {
  LCD_E_PORT |= LCD_E; //  E = 1
  _LCD_OutNibble(0x03); // tryb 8-bitowy
  LCD_E_PORT &= ~LCD_E; // E = 0
  _delay_ms(5); // czekaj 5ms
  }

LCD_E_PORT |= LCD_E; // E = 1
_LCD_OutNibble(0x02); // tryb 4-bitowy
LCD_E_PORT &= ~LCD_E; // E = 0

_delay_ms(1); // czekaj 1ms 
LCD_WriteCommand(HD44780_FUNCTION_SET | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); // interfejs 4-bity, 2-linie, znak 5x7
LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF); // wy��czenie wyswietlacza
LCD_WriteCommand(HD44780_CLEAR); // czyszczenie zawartos�i pamieci DDRAM
_delay_ms(2);
LCD_WriteCommand(HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT);// inkrementaja adresu i przesuwanie kursora
LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK); // w��cz LCD, bez kursora i mrugania
}
コード例 #6
0
ファイル: lcd-api.c プロジェクト: alshorin/projects
void LCD_Clear( void )
{
    LCD_WriteCommand( LCD_CLR );
    LCD_WriteCommand( LCD_HOME );

    gX = 0;
    gY = 0;

} // LCD_Clear
コード例 #7
0
ファイル: io.c プロジェクト: Martin-Ting/RunningClock
void LCD_Cursor(unsigned char column) {
   if ( column < 17 ) { // 16x1 LCD: column < 9
						// 16x2 LCD: column < 17
      LCD_WriteCommand(0x80 + column - 1);
   } else {
      LCD_WriteCommand(0xB8 + column - 9);	// 16x1 LCD: column - 1
											// 16x2 LCD: column - 9
   }
}
コード例 #8
0
ファイル: LCD.c プロジェクト: dom11990/LCD_Board
/**
 *
 * @return 0 on success
 */
int LCD_InitiaizeLCD(void)
{
    LCD_WriteCommand(LCD_CMD_CLEAR_DISPLAY);
    LCD_WriteCommand(LCD_CMD_FUNCTION_8B_2L_FSML);
    LCD_WriteCommand(LCD_CMD_DISPLAY_DON_COFF_BOFF);
    LCD_WriteCommand(LCD_CMD_ENTRY_MODE_INC_NO_S);
    LCD_WriteCommand(LCD_CMD_RETURN_HOME);

    return 0;
}
コード例 #9
0
ファイル: io.c プロジェクト: Martin-Ting/RunningClock
void LCD_init(void) {

    //wait for 100 ms.
	delay_ms(100);
	LCD_WriteCommand(0x38);
	LCD_WriteCommand(0x06);
	LCD_WriteCommand(0x0f);
	LCD_WriteCommand(0x01);
	delay_ms(10);						 
}
コード例 #10
0
ファイル: lcd-api.c プロジェクト: alshorin/projects
void LCD_BlinkCursor( int onOff )
{
    if ( onOff )
    {
        LCD_WriteCommand( LCD_ON_CTRL | LCD_ON_DISPLAY | LCD_ON_CURSOR | LCD_ON_BLINK );
    }
    else
    {
        LCD_WriteCommand( LCD_ON_CTRL | LCD_ON_DISPLAY | LCD_ON_CURSOR );
    }

} // LCD_BlinkCursor
コード例 #11
0
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void LCD_DefineCharacter(char index, char * pattern)
{
    char i ;
    LCD_WriteCommand(HD44780_CGRAM_SET + (8 * index));
    for(i = 0; i < 8; i++)
        LCD_WriteData(*(pattern + i));
}
コード例 #12
0
ファイル: lcd-api.c プロジェクト: alshorin/projects
void LCD_Init( uint8_t numLines, uint8_t numCols )
{
    if ( numLines > 4 )
    {
        numLines = 4;
    }
    gNumLines = numLines;

    if ( numCols > 40 )
    {
        numCols = 40;
    }
    gNumCols = numCols;

    // Let the low level HAL do most of the initialization

    LCD_HAL_Init();

    LCD_DisplayOff();

    LCD_Clear();

    LCD_WriteCommand( LCD_ENTRY_MODE | LCD_ENTRY_INC );

    LCD_HideCursor();   // also turns on display

} // LCD_Init
コード例 #13
0
ファイル: SSD1963.c プロジェクト: candrian/SSD1963_STM32F4
/*********************************************************************
* Function:  void  SetScrollStart(SHORT line)
*
* Overview: First, we need to define the scrolling area by SetScrollArea()
*			before using this function. 
*
* PreCondition: SetScrollArea(SHORT top, SHORT scroll, SHORT bottom)
*
* Input: line - Vertical scrolling pointer (in number of lines) as 
*		 the first display line from the Top Fixed Area defined in SetScrollArea()
*
* Output: none
*
* Note: Example -
*
*		SHORT line=0;
*		SetScrollArea(0,272,0);
*		for(line=0;line<272;line++) {SetScrollStart(line);LCD_Delay(100);}
*		
*		Code above scrolls the whole page upwards in 100ms interval 
*		with page 2 replacing the first page in scrolling
********************************************************************/
void LCD_SetScrollStart(u16 line)
{
	LCD_WriteCommand(CMD_SET_SCROLL_START);
	Clr_Cs;
	LCD_WriteData(line>>8);
	LCD_WriteData(line);	
	Set_Cs;
}
コード例 #14
0
ファイル: LCD.c プロジェクト: konradwyr/Identyfikacja-online
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void LCD_Initialize(void)
{
	vu8 i = 0;
	vu32 delayCnt = 0;
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

	GPIO_InitStructure.GPIO_Pin   =  LCD_D4|LCD_D5|LCD_D6|LCD_D7|LCD_RS|LCD_RW|LCD_EN;
	GPIO_InitStructure.GPIO_Speed =  GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode  =  GPIO_Mode_Out_PP;
	

	GPIO_Init(LCD_GPIO, &GPIO_InitStructure);
        
        GPIO_ResetBits(LCD_GPIO, LCD_RS | LCD_EN | LCD_RW);
	
	for(delayCnt = 0; delayCnt < 300000; delayCnt++);
	
	for(i = 0; i < 3; i++)              
	{
		LCD_WriteNibble(0x03);            
		for(delayCnt = 0;delayCnt < 30000; delayCnt++);
	}
	
	LCD_WriteNibble(0x02);             
	
	for(delayCnt = 0;delayCnt < 6000; delayCnt++);
	   
	LCD_WriteCommand(HD44780_FUNCTION_SET | 
	                 HD44780_FONT5x7 | 
	                 HD44780_TWO_LINE | 
	                 HD44780_4_BIT);
	
	LCD_WriteCommand(HD44780_DISPLAY_ONOFF | 
	                 HD44780_DISPLAY_OFF); 
	
	LCD_WriteCommand(HD44780_CLEAR);
	
	LCD_WriteCommand(HD44780_ENTRY_MODE | 
	                 HD44780_EM_SHIFT_CURSOR | 
	                 HD44780_EM_INCREMENT);
	
	LCD_WriteCommand(HD44780_DISPLAY_ONOFF | 
	                 HD44780_DISPLAY_ON |
	                 HD44780_CURSOR_OFF | 
	                 HD44780_CURSOR_NOBLINK);
}
コード例 #15
0
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void lcd_init(void)
{
    vu8 i = 0;
    vu32 delayCnt = 0;
    GPIO_InitStructure.GPIO_Pin=LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7 | LCD_RS | LCD_EN;
    GPIO_InitStructure.GPIO_OType= GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_NOPULL;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_Init (LCD_GPIO, & GPIO_InitStructure);
    GPIO_Write (LCD_GPIO,0);
     
    GPIO_ResetBits(LCD_GPIO, LCD_RS | LCD_EN );
     
    for(delayCnt = 0; delayCnt < 300000; delayCnt++);
     
    for(i = 0; i < 3; i++)             
    {
        LCD_WriteNibble(0x03);           
        for(delayCnt = 0;delayCnt < 30000; delayCnt++);
    }
 
    LCD_WriteNibble(0x02);            
     
    for(delayCnt = 0;delayCnt < 6000; delayCnt++);
        
    LCD_WriteCommand(HD44780_FUNCTION_SET |
                     HD44780_FONT5x7 |
                     HD44780_TWO_LINE |
                     HD44780_4_BIT);
     
    LCD_WriteCommand(HD44780_DISPLAY_ONOFF |
                     HD44780_DISPLAY_OFF);
     
    LCD_WriteCommand(HD44780_CLEAR);
     
    LCD_WriteCommand(HD44780_ENTRY_MODE |
                     HD44780_EM_SHIFT_CURSOR |
                     HD44780_EM_INCREMENT);
     
    LCD_WriteCommand(HD44780_DISPLAY_ONOFF |
                     HD44780_DISPLAY_ON |
                     HD44780_CURSOR_OFF |
                     HD44780_CURSOR_NOBLINK);
}
コード例 #16
0
ファイル: driver_ssd1303.c プロジェクト: didima7777/test
void LCD_clear_str(char page_start,char page_end,char x_start,char x_end,char color)
  {
    unsigned char i,pages;    
    unsigned char adress=x_start;       

    for (pages=page_start; pages < page_end; pages++)           
	{                        
    LCD_WriteCommand(0xB0 + pages);                   
    LCD_WriteCommand((unsigned char)adress & 0x0F);   
    LCD_WriteCommand((unsigned char)((adress & 0xF0) >> 4) + 0x10);       

    for (i=x_start; i < x_end; i++)	         
      {
       LCD_WriteData(color);
      }
    }
           
  }
コード例 #17
0
ファイル: SSD1963.c プロジェクト: candrian/SSD1963_STM32F4
/*********************************************************************
* Function:  void  SetTearingCfg(BOOL state, BOOL mode)
*
* Overview: This function enable/disable tearing effect
*
* PreCondition: none
*
* Input: 	BOOL state -	1 to enable
*							0 to disable
*			BOOL mode -		0:  the tearing effect output line consists
*								of V-blanking information only
*							1:	the tearing effect output line consists
*								of both V-blanking and H-blanking info.
* Output: none
*
* Note:
********************************************************************/
void LCD_SetTearingCfg(bool state, bool mode)
{


	if(state == 1)
	{
		LCD_WriteCommand(0x35);
		Clr_Cs;
		LCD_WriteData(mode&0x01);
		Set_Cs;
	}
	else
	{
		LCD_WriteCommand(0x34);
	}


}
コード例 #18
0
ファイル: LCD.c プロジェクト: DharmaPatil/asp
void ClearScreen(void)
{
	uint8 i,j;

	send_1hex_data_and_1cmd_to_lcm(TEXT_HOME_ADDRESS, LCD_ADR_POS);

	LCD_WriteCommand(LCD_AUT_WR);

	for(j=0; j<144; j++)	   //参数为144同时清除图形区部分
	{
		for(i=0; i<30; i++)
		{
			LCD_WriteDataAuto(0x00);
		}
	}

	LCD_WriteCommand(LCD_AUT_OVR);
}
コード例 #19
0
ファイル: driver_ssd1303.c プロジェクト: didima7777/test
void LCD_clear(unsigned char color)
  {
    unsigned char i,pages;    
    unsigned char adress=X_OFFSET;       

    for (pages=0; pages < PAGEMAX; pages++)           
	{                        
    LCD_WriteCommand(0xB0 + pages);                   
    LCD_WriteCommand((unsigned char)adress & 0x0F);   
    LCD_WriteCommand((unsigned char)((adress & 0xF0) >> 4) + 0x10);       

    for (i=0; i < XMAX; i++)	         
      {
       LCD_WriteData(color);
      }
    }
           
  }
コード例 #20
0
ファイル: menu.c プロジェクト: nowhard/DISPLAY_USO
void CalibrationScreen(unsigned char channel)//экран калибровки канала
{
//   sprintf(&string_buf,"Chn. val.:% 8lu",channels[channel].channel_data);
//   LCD_WriteAC(LCD_1_STR_ADDR);
//   LCD_WriteString(&string_buf);

 	if(input_field_ptr==&input_field_lo)
	{
			LCD_WriteAC(LCD_1_STR_ADDR);
			sprintf(&string_buf,"Low val [%6s]",input_field_lo.input_char_buf);
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_2_STR_ADDR);
			sprintf(&string_buf,"High val %6s ",input_field_hi.input_char_buf);
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_4_STR_ADDR);
			sprintf(&string_buf,"'='-Enter,'/'-Del");
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_1_STR_ADDR+9+input_field_lo.char_count);
			LCD_WriteCommand(LCD_CMD_CURSOR);
	}

	if(input_field_ptr==&input_field_hi)
	{
			LCD_WriteAC(LCD_1_STR_ADDR);
			sprintf(&string_buf,"Low val  %6s ",input_field_lo.input_char_buf);
			LCD_WriteString(&string_buf); 

			LCD_WriteAC(LCD_2_STR_ADDR);
			sprintf(&string_buf,"High val[%6s]",input_field_hi.input_char_buf);
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_4_STR_ADDR);
			sprintf(&string_buf,"'='-Enter,'/'-Del");
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_2_STR_ADDR+9+input_field_hi.char_count);
			LCD_WriteCommand(LCD_CMD_CURSOR);
	}
}
コード例 #21
0
ファイル: menu.c プロジェクト: nowhard/DISPLAY_USO
unsigned char dispMenu(void)
{
xdata menuItem code * tempMenu, *tempMenu2;

	// первая строка - заголовок. Или пункт меню верхнего уровня


	tempMenu = selectedMenuItem;//->Parent;

	LCD_WriteCommand(LCD_CMD_ON);
    LCD_WriteCommand(LCD_CMD_CLEAR);

	if ((tempMenu == &m_s0i1)||(tempMenu == &m_s0i2)||(tempMenu == &m_s0i3)||(tempMenu == &m_s0i4)) 
	{ // мы на верхнем уровне
		dynamic_disp= DYN_DISPALY_ON;
	} 
	else 
	{
		dynamic_disp=DYN_NOT_DISPLAY;

		LCD_WriteCommand(LCD_SET_ADDR|0x1);
		LCD_WriteCommand(LCD_SET_ADDR|0x1);

		tempMenu2=tempMenu->Previous;
		if(tempMenu2!=&NULL_ENTRY)
		{
			LCD_WriteString(tempMenu2->Text);
		}
		
		LCD_WriteCommand(LCD_SET_ADDR|0x40);
		LCD_WriteData(0xC9);

		LCD_WriteCommand(LCD_SET_ADDR|0x41);
		LCD_WriteString(tempMenu->Text);


		LCD_WriteCommand(LCD_SET_ADDR|0x15);

		tempMenu2=tempMenu->Next;
		if(tempMenu2!=&NULL_ENTRY)
		{
			LCD_WriteString(tempMenu2->Text);

			LCD_WriteCommand(LCD_SET_ADDR|0x55);
	
			tempMenu2=tempMenu2->Next;
			if(tempMenu2!=&NULL_ENTRY)
		    LCD_WriteString(tempMenu2->Text);
		}
	}
	return (1);
}
コード例 #22
0
ファイル: SSD1963.c プロジェクト: candrian/SSD1963_STM32F4
/*********************************************************************
* Function:  SetScrollArea(SHORT top, SHORT scroll, SHORT bottom)
*
* PreCondition: none
*
* Input: top - Top Fixed Area in number of lines from the top
*				of the frame buffer
*		 scroll - Vertical scrolling area in number of lines
*		 bottom - Bottom Fixed Area in number of lines
*
* Output: none
*
* Side Effects: none
*
* Overview:
*
* Note: Reference: section 9.22 Set Scroll Area, SSD1963 datasheet Rev0.20
********************************************************************/
void LCD_SetScrollArea(u16 top, u16 scroll, u16 bottom)
{
	LCD_WriteCommand(CMD_SET_SCROLL_AREA);
	Clr_Cs;
	LCD_WriteData(top>>8);
	LCD_WriteData(top);
	LCD_WriteData(scroll>>8);
	LCD_WriteData(scroll);
	LCD_WriteData(bottom>>8);
	LCD_WriteData(bottom);
	Set_Cs;	
}
コード例 #23
0
ファイル: HD44780.c プロジェクト: AdrK/Kinetis_Keyboard
void LCD_Init(void){

	_delay_ms(50);														// 50ms dla ustabilizowania siê napiêcia zasilania
	
																						// start initialization	                                                 
	LCD_WriteCommand((uint8_t)LCD_INIT);
	_delay_ms(1);                             // 1ms, minimum 39us
	
	LCD_WriteCommand((uint8_t)LCD_FSET);
	_delay_ms(1);                             // 1ms, minimum 39us
	
	LCD_WriteCommand((uint8_t)LCD_FSET);
	_delay_ms(1);                             // 1ms, minimum 37us
	
	LCD_WriteCommand((uint8_t)LCD_OFFON);
	_delay_ms(1);                             // 1ms, minimum 37us
	
	LCD_WriteCommand((uint8_t)LCD_CLR);
	_delay_ms(2);                             // 2ms, minimum 1.54ms
	
	LCD_WriteCommand((uint8_t)LCD_EMODE);
	_delay_ms(1);                             // 1ms (O tym dokumentacja nie wspomina³a....)
	
	                                          // stop initialization
}
コード例 #24
0
ファイル: LCD.c プロジェクト: brucetsao/Nuvoton
void ILI9341_LCD_SetAddress(uint32_t x1,uint32_t x2,uint32_t y1,uint32_t y2)
{
    if(x1 >= 240)
        x1 = 239;
    if(x2 >= 240)
        x2 = 239;  
    if(y1 >= 320)
        y1 = 319;  
    if(y2 >= 320)
        y2 = 319;      
    
    LCD_WriteCommand(0x2a);
    LCD_WriteData(x1>>8);
    LCD_WriteData(x1);
    LCD_WriteData(x2>>8);
    LCD_WriteData(x2);

    LCD_WriteCommand(0x2b);
    LCD_WriteData(y1>>8);
    LCD_WriteData(y1);
    LCD_WriteData(y2>>8);
    LCD_WriteData(y2);
}
コード例 #25
0
void wczytaj_haslo(int indeks)
{
	unsigned char Tekst[2];
	int i=0;
	char tab[5]={0,0,0,0,0};

	Tekst[0]=0;
	Tekst[1]=0;
	while (i<4)
	{
		Tekst[0]=KBD_ReadKey();
		if (Tekst[0] !=0 )
		{
			tab[i]=Tekst[0];
			i++;
			wyswietl_gwiazdki(i);
			Tekst[0]=0;
		}
		delay_10us();
	}
	tab[4]=0;

	i=0;
	int dobrze=0;
	char dane=0;
	uint16_t adres_hasla=(adres(indeks)+4);
	for(;i<4;i++)
	{
		dane=(Read_24Cxx(adres_hasla,M2404));
		if(tab[i]==dane)
		{
			dobrze++;
		}
		adres_hasla++;
	}

	LCD_WriteCommand(HD44780_CLEAR);
	LCD_GoTo(0,0);

	if(dobrze==4)
	{
		LCD_WriteText((unsigned char *)"Otwieram drzwi");
		Zamek1_On();
	}
	else
	{
		LCD_WriteText((unsigned char *)"Bledne haslo");
	}
 }
コード例 #26
0
ファイル: SSD1963.c プロジェクト: candrian/SSD1963_STM32F4
/*********************************************************************
* Function:  void  SetBacklight(BYTE intensity)
*
* Overview: This function makes use of PWM feature of ssd1963 to adjust
*			the backlight intensity. 
*
* PreCondition: Backlight circuit with shutdown pin connected to PWM output of ssd1963.
*
* Input: 	(BYTE) intensity from 
*			0x00 (total backlight shutdown, PWM pin pull-down to VSS)
*			0xff (99% pull-up, 255/256 pull-up to VDD)
*
* Output: none
*
* Note: The base frequency of PWM set to around 300Hz with PLL set to 120MHz.
*		This parameter is hardware dependent
********************************************************************/
void LCD_SetBacklight(u8 intensity)
{
	LCD_WriteCommand(0xBE);			// Set PWM configuration for backlight control
	Clr_Cs;
	LCD_WriteData(0x0E);			// PWMF[7:0] = 2, PWM base freq = PLL/(256*(1+5))/256 = 
								// 300Hz for a PLL freq = 120MHz
	LCD_WriteData(intensity);		// Set duty cycle, from 0x00 (total pull-down) to 0xFF 
								// (99% pull-up , 255/256)
	LCD_WriteData(0x01);			// PWM enabled and controlled by host (mcu)
	LCD_WriteData(0x00);
	LCD_WriteData(0x00);
	LCD_WriteData(0x00);

	Set_Cs;
}
コード例 #27
0
ファイル: menu.c プロジェクト: nowhard/DISPLAY_USO
void SettingsScreen(void)
{
 	if(input_field_ptr==&input_field_lo)
	{
			LCD_WriteAC(LCD_1_STR_ADDR);
			sprintf(&string_buf,"Address [%2s]",input_field_lo.input_char_buf);
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_4_STR_ADDR);
			sprintf(&string_buf,"'='-Enter,'/'-Del");
			LCD_WriteString(&string_buf);

			LCD_WriteAC(LCD_1_STR_ADDR+9+input_field_lo.char_count);
			LCD_WriteCommand(LCD_CMD_CURSOR);
	}	
}
コード例 #28
0
ファイル: LCD.c プロジェクト: dom11990/LCD_Board
/**
 * Sets the DDRAM address to the specified row and column. This is where text
 * will be written to.
 * @param row 0 indexed row
 * @param column 0 indexed column
 * @return 0 on success
 */
int LCD_SetPosition(char row, char column)
{
    char DDRAM_address;
    //for a 2x16 display:
    //row 0 is DDRAM 0x00 to 0x0F
    //row 1 is DDRAM 0x40 to 0x4F
    row = (row)?0x40:0x00;

    DDRAM_address = row+column;

    //only perform the LCD operation if the address is valid
    if(DDRAM_address <= 0x4F)
        LCD_WriteCommand(LCD_CMD_SET_DDRAM_ADDRESS|DDRAM_address);
    else
        return LCD_ERROR_INVALID_DDRAM_ADDRESS;
    return 0;
}
コード例 #29
0
ファイル: lcd-api.c プロジェクト: alshorin/projects
void LCD_MoveTo( unsigned x, unsigned y )
{
    uint8_t addr = x & 0x3f;

    if ( y & 1 )
    {
        addr += 0x40;   // Lines 1 & 3 add 0x40
    }
    if ( y & 2 )
    {
        addr += 0x14;   // Lines 2 & 3 add 0x14
    }

    LCD_WriteCommand( LCD_DDRAM | addr );

    gX = x;
    gY = y;

} // LCD_MoveTo
コード例 #30
0
ファイル: SSD1963.c プロジェクト: candrian/SSD1963_STM32F4
/*********************************************************************
* Function: void PutPixel(SHORT x, SHORT y)
*
* PreCondition: none
*
* Input: x,y - pixel coordinates
*
* Output: none
*
* Side Effects: none
*
* Overview: puts pixel
*
* Note: 
********************************************************************/
void LCD_PutPixel(u16 x, u16 y, u16 color)
{
	if(_clipRgn){
		if(x<_clipLeft)
			return;
		if(x>_clipRight)
			return;
		if(y<_clipTop)
			return;
		if(y>_clipBottom)
			return;
	}
  	
	LCD_SetArea(x,y,GetMaxX(),GetMaxY());
	LCD_WriteCommand(CMD_WR_MEMSTART);
	Clr_Cs;
	LCD_WriteData(color);
	Set_Cs;
}