I need to do a timer with 2 buttons(the first to run and pause, and the second to reset), and LCD 16x2

You can also use www.tinkercad.com to simulate.

There are a multitude of issues with your code. Here are a few:

  1. You shouldn't name a variable the same as a function name. Also, if pausa ever becomes true you will be stuck right here until you reset:
    while(pausa);

  2. zero needs to be an unsigned long

  3. You have sec, min, hora, and zero redefined as locals in the cronometro() function. This causes sec, min, hora to never increment.

  4. There is no reason to call the following every time in cronometro() function. It causes the LCD to blink:

lcd.setCursor(0,0);
lcd.print("Iniciando");
lcd.clear();
lcd.home();

  1. There is no reason to update the LCD unless seconds increases or a button is pushed. It is a waste of time.