Found another one using I2C
Code:
'****************************************************************
'* Name : Ext. EEprom.BAS *
'* Author : [GADELHAS] *
'* Notice : Copyright (c) 2011 *
'* : All Rights Reserved *
'* Date : 14-08-2010 *
'* Version : 1.0 *
'* Notes : *
'* : EASYPICV6 + PIC16F887 + LCD 16X2 *
'****************************************************************
@__CONFIG _CONFIG1, _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BOR_ON & _DEBUG_OFF & _LVP_OFF & _FCMEN_ON & _IESO_OFF
@__CONFIG _CONFIG2, _WRT_OFF & _BOR40V
DEFINE OSC 8
DEFINE I2C_HOLD 1
' VARIÁVEIS
' ====================================================================
I var byte 'VARIÁVEL DOS I2C READ AND WRITE
buffer var byte[13]
buffer1 var byte[13]
buffer[0] = "H"
buffer[1] = "u"
buffer[2] = "g"
buffer[3] = "o"
buffer[4] = " "
buffer[5] = "O"
buffer[6] = "l"
buffer[7] = "i"
buffer[8] = "v"
buffer[9] = "e"
buffer[10] = "i"
buffer[11] = "r"
buffer[12] = "a"
' REGISTOS PINOUT 1 = IN; 0 = OUT
' ====================================================================
'76543210
TRISA = %00000001
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
TRISE = %00000000
ADCON0 = 0
ANSEL = 0
ANSELH = 0
CM1CON0= 0
CM2CON0= 0
PORTA = 0
PORTB = 0
PORTC = 0
PORTD = 0
PORTE = 0
' NOMES PINOUT
' ====================================================================
LED VAR PORTA.0
SDA var PORTC.4
SCL var PORTC.3
' DEFENIÇÕES
' ====================================================================
DEFINE LCD_DREG PORTB ' LCD Data bits on PORTB
DEFINE LCD_DBIT 0 ' PORTB starting address
DEFINE LCD_RSREG PORTB ' LCD RS bit on PORTB
DEFINE LCD_RSBIT 4 ' LCD RS bit address
DEFINE LCD_EREG PORTB ' LCD E bit on PORTB
DEFINE LCD_EBIT 5 ' LCD E bit address
DEFINE LCD_BITS 4 ' LCD in 4-bit mode
DEFINE LCD_LINES 2 ' LCD has 2 rows
DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us
DEFINE LCD_DATAUS 50 ' Set data delay time in us
' INICIO PROGRAMA
' ====================================================================
MAIN:
HIGH LED
PAUSE 500
LOW LED
PAUSE 500
HIGH LED
PAUSE 500
LOW LED
PAUSE 500
HIGH LED
'0123456789012345
lcdout $FE, 1, "Teste Ext.EEprom"
lcdout $FE,$C0," Hugo Oliveira"
GOSUB WRITEEEPROM
GOSUB READEEPROM:
lcdout $FE, 1, "Teste Ext.EEprom"
lcdout $FE,$C0, STR buffer1\13
end
' SUB ROTINA - LE EEprom
' ====================================================================
READEEPROM:
FOR I = 0 to 12
i2cread sda,scl,$A3, I,[buffer1[I]]
NEXT
RETURN
' SUB ROTINA - ESCREVE EEprom
' ====================================================================
WRITEEEPROM:
FOR I = 0 to 12
i2cwrite sda,scl,$A2, I,[buffer[I]]
pause 5
next
RETURN
END
Bookmarks