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
Bookmarks