Home Code PIC18F4520 push button example

PIC18F4520 push button example

by shedboy71

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.

waveshare buttons

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]

 

Link
PIC Board PIC18F4520-I/P PIC18F4520 PIC 8-bit RISC PIC Microcontroller Development Board +14 Accessory kits =Open18F4520 Pack-B

Share

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More