Hi, The following is ...

just a simple 18F2520 header !!!

Code:
'*****************************************************************************
'*****************************************************************************
'
'Defines
'*****************************************************************************

DEFINE OSC 4
DEFINE BUTTON_PAUSE 250 
DEFINE ADC_BITS 10
'DEFINE LCD_COMMANDUS 2000
'DEFINE LCD_DATAUS 50


' Define LCD connections

DEFINE LCD_DREG PORTC   	' Set LCD Data port
DEFINE LCD_DBIT 4       	' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_RSREG PORTB  	' Set LCD Register Select port
DEFINE LCD_RSBIT 5      	' Set LCD Register Select bit
DEFINE LCD_EREG PORTB   	' Set LCD Enable port
DEFINE LCD_EBIT 6      		' Set LCD Enable bit
DEFINE LCD_BITS 4       	' Set LCD bus size (4 or 8 bits)

'
'
'*****************************************************************************
' Constantes
'*****************************************************************************

ExtOSC 		con 32768		'Quartz Horloge "temps" en Hz

Tension_ 	con 0			'Correspondance pour Canaux ADC
TempA_		con 1
TempH_		con 2
Dureetonte	con 1		' de -1h à +59 mn ... ( 1/2 durée !!! )
Kelvin		con 273

'***************************  seuils Alarmes  ********************************
			
AlmVolt		con 15	* 100	'>=		Tension trop élevée			1/100 V
AlmRpm		con 3600 		'>=		Régime trop élevé			T/Mn
AlmAir		con 90  + 273	'>=		Temp Air Trop élevée		°K ^ 82
AlmHuileL	con 0   + 273	'<=		Temp Huile trop basse		°K
AlmHuileH	con 100 + 273	'>=		Temp Huile trop élevée		°K

'**************  Periodicités d'Entretien ( ordre croissant ! )  *************

Service1	con 10 ' Heures
ServiceV	con 20				
Service2	con 25
Service3	con 50
Service4	con 100
Service5	con 300

DATA (0),0 (29) 'Raz des Mémoires si reprogrammation

'*****************************************************************************
' 1er préchargement 22H31M29S
'*****************************************************************************

DATA @0, $1
DATA @4, $1
DATA @6, $16 				' 22 Heures
DATA @10,$1F				' 31 Minutes
DATA @12,$1D				' 29 Secondes
DATA @14,$FF
DATA @16,$0D				' 3583 Tr/mn
DATA @22,$53				' 83°C Air
DATA @26,$59				' 89°C Huile

VERSION		con 1			'N° de la révision

'*****************************************************************************
'*****************************************************************************
'Config processeur
'*****************************************************************************
'

'@  __CONFIG    _CONFIG1L, _WDT_OFF_1L & _WDTPS_128_1L
@   __CONFIG    _CONFIG1H, _IESO_OFF_1H & _OSC_XT_1H & _FCMEN_OFF_1H
@	__CONFIG	_CONFIG2L, _BOREN_OFF_2L & _PWRT_ON_2L
@   __CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
'@  __CONFIG    _CONFIG3L, _WDT_OFF_3L & _WDTPS_128_3L
@   __CONFIG    _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_PORTBE_3H
@   __CONFIG    _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _DEBUG_OFF_4L & _XINST_OFF_4L
'@  __CONFIG    _CONFIG4H, _WDT_ON_4H & _WDTPS_128_4H
@   __CONFIG    _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L
@   __CONFIG    _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
@   __CONFIG    _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L
@   __CONFIG    _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H & _WRTD_OFF_6H 
@   __CONFIG    _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L
@   __CONFIG    _CONFIG7H, _EBTRB_OFF_7H 

'*****************************************************************************
'Config TIMERs

T0CON = %00000010	' 16Bits 1/8 prescaler, Horloge Système, OFF
					' Utilisé pour détection sous regime ou arret
					
T1CON = %00000000	'1/1 prescaler, Quartz 32,768
' *** Géré par Elapsed Timer ***

T3CON = %01110001	' CCP SUR TMR3,1/8 prescaler,Horloge système,ON
					' Mesure de la vitesse
'*****************************************************************************
'Config CCP1 arret CCP2

CCP1CON = %00000101	' Capture sur front montant 

CCP2CON = %00000000	'inhibition module CCP2

'*****************************************************************************
'Inhibition SSP

SSPCON1.5 = 0

'*****************************************************************************
'Inhibition Comparateurs

CMCON = 7

'*****************************************************************************
'Inhibition Reference interne

CVRCON = 0

'*****************************************************************************
'Config Interruptions

INTCON  = %10000000
INTCON2 = %11110000
INTCON3 = %00000000

PIE1    = %00000100
PIE2    = %00000000

IPR1    = %00000001
IPR2	= %00000000

RCON	= %10000000

'*****************************************************************************
'Config ADC
'*****************************************************************************

ADCON0 = %11000000		' 
ADCON1 = %00011011 		' 3/1 
ADCON2 = %10100110		' Right Just., 8Tad, clock /64

'*****************************************************************************
'*****************************************************************************
'Config et Prepositionnement E/S
'*****************************************************************************

PORTA	= %00110000
PORTB 	= %00010000
PORTC	= %00001000
'PORTD	= 0
'PORTE	= 0

TRISA 	= %00011111
TRISB	= %00000110
TRISC	= %00000111
'TRISD	= %00000000
'TRISE	= %00000000
'
'*****************************************************************************
'Alias E/S
'*****************************************************************************

'MCLR/ sur Broche 1 par R/C/D

Voltage		var PORTA.0		'TENSION Batterie / 4
TempA		var PORTA.1		'LM335
TempH		var PORTA.2		'LM335
Vref		var PORTA.3		'TL431 = 4.096v ...
Raz			var PORTA.4		'JUMPER Raz/Programmation
AlRef		var PORTA.5		'Alimentation référence TL431

Buzzer		var PORTB.0	
Contact		var PORTB.1		' + 12 v sous clé ( / 4 = 2 - 4 v !!! )
Selection 	var PORTB.2		'Poussoir sélection Affichage
Signal		var PORTB.3		'Sortie Survitesse
AlLCD		var PORTB.4		'Alimentation LCD BS 250 !!! 0 = ON : 1 = OFF
RS			var PORTB.5
E			var PORTB.6
Alm			var PORTB.7		'Sortie Alarme

'			var PORTC.0		'Qz 32768
'			var PORTC.1		'   "
Speed		var PORTC.2		'Entrée compte-tours 1C/4T
Alim		var PORTC.3		'Autoalimentation
D4			var PORTC.4
D5			var PORTC.5
D6			var PORTC.6
D7			var PORTC.7

'Buzzer		var PORTD.0		'Sortie commande Buzzer
'Signal		var PORTD.1		'Voyant Survitesse
'RS			var PORTD.2
'E			var PORTD.3
'D4			var PORTD.4
'D5			var PORTD.5
'D6			var PORTD.6
'D7			var PORTD.7

'			var PORTE.0
'			var PORTE.1
'AlRef		var PORTE.2

'*****************************************************************************
'Types Variables
'*****************************************************************************
'
Result		var WORD

Volt		var WORD
Tension		var WORD
Tensionmoy	var WORD

Tair		var WORD
TAMax		var WORD		' Valeur Maxi Split
TairMax		var WORD		' Valeur Maxi mémorisée

Thuile		var WORD
THMax		var WORD		' Valeur Maxi Split
THuileMax	var WORD		' Valeur Maxi mémorisée

.
.
.
Now, you know what you have to do ...

hé,hé

Alain