que raro, yo tenía la idea que con static, se iniciaba la variable a cero al ejecutarse un programa. 
Esta es la intencion que yo tenia al hacer la declaracion. Y segun tengo entendido, las variables globales hay que declararlas fuera de las funciones y del main, esto es lo que he hecho yo:
#include <16f877.h>
#use delay(clock=4000000)
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD
#org 0x1F00, 0x1FFF // bootloader
#include <lcd.c>
//#define use_portb_lcd
#byte port_a=5
#byte port_b=6
#byte port_c=7
static int long_roda=0;
static int velocitat=0.00;
static int velms=0.00;
static long int rpmcotxe=0;
static long conta=0;
static long rpm=0;
static float reltrans=0;
static int cotxe=0;
static int actualitza=0;
static int pral=0;
static int sec=0;
int diametre=10;
int pino=9;
int corona=27;
static int tecla=0;
Esta es la declaracion de variables que he hecho, el motivo de que sean static es que necesito utilizar el valor y modificarlo dentro de distintas funciones, por lo que tiene que ser una variable global.
¿Cual seria la forma correcta de hacerlo?
Salu2