Code:
'/////////////////////////
'// EEPROM test program
'// Using the PIC16F887
'//
'/////////////////////////
'/////////////////////////
'// Define section //
'/////////////////////////
'@ __config _CONFIG1, _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_OFF & _LVP_OFF & _CP_OFF
'OSCCON = %01110000 '8 Mhz
DEFINE OSC 8
ANSELH = 0
'/////////////////////////
'// LCD configuration //
'/////////////////////////
DEFINE LCD_DREG PORTB ' Set LCD Data port
DEFINE LCD_DBIT 4 ' Set starting Data bit (0 or 4) if 4-bit bus RB.4, RB.5, RB.6, RB.7
DEFINE LCD_RSREG PORTB ' Set LCD Register Select port
DEFINE LCD_RSBIT 1 ' Set LCD Register Select bit
DEFINE LCD_EREG PORTB ' Set LCD Enable port
DEFINE LCD_EBIT 0 ' Set LCD Enable bit
DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits) '4 therefore put wire at 4, 5, 6 and 7 of LCD
DEFINE LCD_LINES 2 ' Set number of lines on LCD
DEFINE LCD_COMMANDUS 2500
DEFINE LCD_DATAUS 250
DEFINE CHAR_PACING 2000
pause 1000
'/////////////////////////
'// PIN configuration //
'/////////////////////////
TRISB = %00000000 ' Set PORTB to all output
TRISA = %11111111 ' Set PORTA to all input
TRISC = %11000000 ' Set PORTC to all output
'///////////////////////////////////////////////
'// Variable Declaration and initialization //
'///////////////////////////////////////////////
Battery_Switch var byte
i var byte
j var byte
Battery_Charge_Counter var byte
SDApin var PORTC.4 ' RTC data
SCLpin var PORTC.3 ' RTC clock
bat var byte
Write_Address var byte
RTCSec var byte :RTCMin var byte :RTCHour var byte :RTCWDay var byte :RTCDay var byte :RTCMonth var byte :RTCYear var byte :RTCCtrl var byte
lcdout $FE,1, "Bienvenue"
lcdout $FE,$C0, "Welcome"
pause 1500
I2CWRITE SDApin,SCLpin,$A0,$00,[$03,$02,$05,$00,$00,$00,$00,$00] ' Write to memory
pause 20
'////////////////////////////////////////////////////
'////////////////// PROGRAM /////////////////////////
'////////////////////////////////////////////////////
Mainloop:
lcdout $FE,1, "Appuye sur Record"
lcdout $FE,$C0, "ou sur Show"
pause 200
if PORTC.7 =0 then 'always 5v, push button to gnd
j=1
I2CRead SDApin,SCLpin,$A0,$00,[RTCSec,RTCMin,RTCHour,RTCDay]
lcdout $FE,1, " Time ", dec j
lcdout $FE,$C0, dec RTCDay, dec RTCHour, dec RTCMin, dec RTCSec
pause 2000
Endif
goto Mainloop
End
Bookmarks