In a previous example we connected a 16×2 LCD to our development board and displayed text on it, in this example we use the 2 buttons on the board to display some text on the LCD
There are 2 buttons on the board, slightly confusing is that Key 1 on the board is connected to RD0 and Key 2 on the board is connected to RD 1. You can see this in the section of the schematic below.
In the code example we will display a message on the LCD depending on which button is pressed
Code
This code was written in MikroC and uses the LCD libraries
[codesyntax lang=”cpp”]
// LCD module connections sbit LCD_RS at RC4_bit; sbit LCD_EN at RC6_bit; sbit LCD_D4 at RD4_bit; sbit LCD_D5 at RD5_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D7 at RD7_bit; sbit LCD_RS_Direction at TRISC4_bit; sbit LCD_EN_Direction at TRISC6_bit; sbit LCD_D4_Direction at TRISD4_bit; sbit LCD_D5_Direction at TRISD5_bit; sbit LCD_D6_Direction at TRISD6_bit; sbit LCD_D7_Direction at TRISD7_bit; // End LCD module connections void main() { TRISD.F0 = 1; TRISD.F1 = 1; do{ Lcd_Init(); // Initialize LCD if(PORTD.F0 == 0) //If the switch is pressed { Delay_ms(100); //Switch Debounce if(PORTD.F0 == 0)//If the switch is still pressed { Lcd_Cmd(_LCD_CLEAR); // Clear display Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off Lcd_Out(1,1,"BUTTON 1");//Write text'button 1' in first row Delay_ms(1000); } } if(PORTD.F1 == 0) //If the switch is pressed { Delay_ms(100); //Switch Debounce if(PORTD.F1 == 0)//If the switch is still pressed { Lcd_Cmd(_LCD_CLEAR); // Clear display Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off Lcd_Out(1,1,"BUTTON 2");//Write text'button 2 in first row Delay_ms(1000); } } }while(1); }
[/codesyntax]