Code:
'* Notes :16F877A
'* SAVE TO EEPROM
'****************************************************************
'_config _HS_OSC & _WDT_ON & _LVP_OFF & _CP_OFF &_BODEN_OFF
DEFINE OSC 20
DEFINE LCD_DREG PORTB
define LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
TRISA = %00000000
ADCON1=14
Asm
ERRORLEVEL -306
Endasm
include "modedefs.bas"
'TOTAL VARS
O VAR BYTE 'ONES
T VAR BYTE 'TENS
H VAR BYTE 'HUNDREDS
TH VAR BYTE 'THOUSANDS
TTH VAR BYTE 'TEN THOUSANDS
HTH VAR BYTE 'HUNDRED THOUSANDS
M VAR BYTE 'MILLIONS
OD VAR BYTE 'ONES
TD VAR BYTE 'TENS
HD VAR BYTE 'HUNDREDS
THD VAR BYTE 'THOUSANDS
TTHD VAR BYTE 'TEN THOUSANDS
HTHD VAR BYTE 'HUNDRED THOUSANDS
MD VAR BYTE 'MILLIONS
'TOTAL LOGS
O_LOG VAR BYTE 'ONES
T_LOG VAR BYTE 'TENS
H_LOG VAR BYTE 'HUNDREDS
TH_LOG VAR BYTE 'THOUSANDS
TTH_LOG VAR BYTE 'TEN THOUSANDS
HTH_LOG VAR BYTE 'HUNDRED THOUSANDS
M_LOG VAR BYTE 'MILLIONS
'READ LOGS
READ O_LOG, OD
READ T_LOG, TD
READ H_LOG, HD
READ TH_LOG, THD
READ TTH_LOG, TTHD
READ HTH_LOG, HTHD
READ M_LOG, MD
NUM VAR BYTE
NUM = 0
pause 1000
CHECK:
IF PORTE.2 = 1 THEN GOSUB CL_LOG 'FOR RESET AT START UP
IF PORTE.2 = 0 THEN START
GOTO CHECK
START:
HIGH PORTD.2 'LED
PAUSE 5
IF PORTD.3 = 1 THEN GOSUB C_P_T 'SWITCH FOR PARTS
LOW PORTD.2
PAUSE 5
GOTO START
C_P_T:
LCDOUT $FE,1,"C TEST"
LCDOUT $FE,$C0,DEC MD,DEC HTHD,DEC TTHD,DEC THD,DEC HD,DEC TD,DEC OD
O = O + 1
IF O = 10 THEN
O = 1
T = T + 1
IF T = 10 THEN
T = 0
H = H + 1
IF H = 10 THEN
H = 0
TH = TH + 1
IF TH = 10 THEN
TH = 0
TTH = TTH + 1
IF TTH = 10 THEN
TTH = 0
HTH = HTH +1
IF HTH = 10 THEN
HTH = 0
M = M +1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
WRITE O_LOG, O
WRITE T_LOG, T
WRITE H_LOG, H
WRITE TH_LOG, TH
WRITE TTH_LOG, TTH
WRITE HTH_LOG, HTH
WRITE M_LOG, M
READ O_LOG, OD
READ T_LOG, TD
READ H_LOG, HD
READ TH_LOG, THD
READ TTH_LOG, TTHD
READ HTH_LOG, HTHD
READ M_LOG, MD
RETURN
CL_LOG:
HIGH PORTD.2
PAUSE 100
LOW PORTD.2
PAUSE 100
O = $0
T = $0
H = $0
TH = $0
TTH = $0
HTH = $0
M = $0
WRITE O_LOG, O
READ O_LOG, OD
WRITE T_LOG, T
READ T_LOG, TD
WRITE H_LOG, H
READ H_LOG, HD
WRITE TH_LOG, TH
READ TH_LOG, THD
WRITE TTH_LOG, TTH
READ TTH_LOG, TTHD
WRITE HTH_LOG, HTH
READ HTH_LOG, HTHD
WRITE M_LOG, M
READ M_LOG, MD
RETURN
END
Bookmarks