Exemplo n.º 1
0
void LCD_Move(unsigned char Row, unsigned char Col)
{
   if (Row == 0) LCD_Inst(0x80 + Col);
   if (Row == 1) LCD_Inst(0xC0 + Col);
   if (Row == 2) LCD_Inst(0x94 + Col);
   if (Row == 3) LCD_Inst(0xD4 + Col);
   }
Exemplo n.º 2
0
Arquivo: lcd.c Projeto: rgrosko/TCCPos
void LCD_Init (void)
{
	int i;

	// Habilita GPIOA e GPIOC
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

	// Programa como saída
	GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);

	// Programa como saída
	GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7);

	// Programa como saída
	GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_6);

	// EN=1
	GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0x08);

	// RS=0
	GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0x00);

	for(i=0;i<3;i++)
	{
		// Escreve 0x30 no Data (PC7-PC4)
		GPIOPinWrite(GPIO_PORTC_BASE , GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7, 0x30);

		// Dá um pulso no EN
		LCD_EN_Pulse();

		// Delay de ~5ms
		SysCtlDelay(83333);
	}

	// Escreve 0x20 no Data (PC7-PC4)
	GPIOPinWrite(GPIO_PORTC_BASE , GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7, 0x20);

	// Dá um pulso no EN
	LCD_EN_Pulse();

	// Delay de ~5ms
	SysCtlDelay(83333);

	// Envia as instruções 0x01, 0x06 e 0x0c (ver lcd1.pdf pág3)
	LCD_Inst(0x01);	// Clear display
	LCD_Inst(0x06);	// Increment, Display Shift Off
	LCD_Inst(0x0c);	// Display On, Cursor Underline Off, Cursor Blink Off
}
Exemplo n.º 3
0
Arquivo: lcd.c Projeto: rgrosko/TCCPos
void LCD_WriteCol (char txt[20], int row, int col)
{
	unsigned char address_d = 0;

	switch(row)
	{
		case 0:
			address_d = 0x80;
			break;

		case 1:
			address_d = 0xC0;
			break;

		case 2:
			address_d = 0x94;
			break;

		case 3:
			address_d = 0xD4;
			break;
	}
	address_d = address_d + col;

	// Envia o endereço inicial do LCD como instrução
	LCD_Inst(address_d);

	// Envia todos os caracteres da string de entrada
	while(*txt) LCD_Data(*txt++);
}
Exemplo n.º 4
0
void main(void)
{
    //variables
    unsigned char i;

    //inputs and outputs
    TRISA = 0;
    TRISB = 0;
    TRISC = 0;
    TRISD = 0;
    TRISE = 0;
    ADCON1 = 0x0F;
    
    LCD_Init();

    LCD_Move(0,0);  for (i=0; i<20; i++) LCD_Write(MSG0[i]);
    Wait_ms(3000);
    LCD_Inst(1);

    // set up Timer0 for PS = 1
    T0CS = 0;
    T0CON = 0x88;
    TMR0ON = 1;
    TMR0IE = 1;
    TMR0IP = 1;
    PEIE = 1;
    
    // set up Timer1 for 1ms
    TMR1CS = 0;
    T1CON = 0x81;
    TMR1ON = 1;
    TMR1IE = 1;
    TMR1IP = 1;
    PEIE = 1;

    // set up Timer3 for 1ms
    TMR3CS = 0;
    T3CON = 0x81;
    TMR3ON = 1;
    TMR3IE = 1;
    TMR3IP = 1;
    PEIE = 1;

    //Turn on all interrupts
    GIE = 1;

    while(1){
        LCD_Move(1,0); LCD_Out(Timer0, 3);
    }
}
Exemplo n.º 5
0
void LCD_Init(void)
{
   TRISD = 0x03;       // 20x4 LCD Boards
   
   LCD_Inst(0x33);
   LCD_Inst(0x32);
   LCD_Inst(0x28);
   LCD_Inst(0x0E);
   LCD_Inst(0x01);
   LCD_Inst(0x06);
   }
Exemplo n.º 6
0
Arquivo: lcd.c Projeto: rgrosko/TCCPos
void LCD_Clear (void)
{
	LCD_Inst(0x01);
}