Autor Tema: Memoria EEPROM 24LC256 con pic16F873  (Leído 1663 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado na7alia

  • PIC10
  • *
  • Mensajes: 1
Memoria EEPROM 24LC256 con pic16F873
« en: 20 de Mayo de 2005, 01:19:00 »
Hola!
He tratado de trabajar con la Memoria 24LC256, pero solo he logrado leer de ella. Tuve que quemarla con un programador de memorias pues utilizando el Pic Basic no logro  escribir en ella. Alguien me puede ayudar?
El codigo .bas es el siguiente:

DEFINE HSER_RCSTA 90h  " RECEPCION SERIAL HABILITADA
DEFINE HSER_TSTA  20h  " TRANSMISION SERIAL HABILITADA
DEFINE HSER_BAUD 2400  " VELOCIDAD DE TRANSMISION 2400 BAUDIOS

SYMBOL SCL = PORTC.3
SYMBOL SDA = PORTC.4


D12     VAR BYTE
D11     VAR BYTE
D1      VAR BYTE

ESCRITURA_MEMORIA:
     
        HSEROUT ["INGRESE EL DATO A GUARDAR EN MEMORIA (2 DIGITOS): ",13,10]
        HSERIN [D11,D12]
        HSEROUT [D11,D12,13,10]
        D11 = D11 << 4
        D12 = D12 & %00001111
        D1 = D11 + D12
        I2CWRITE SDA,SCL,%10101110,$0006,[D1]
        PAUSE 1000
       
               
        HSEROUT ["SU DATO HA SIDO GRABADO",13,10]                                                                                                      
        PAUSE 100

MAIN:  
        I2CREAD SDA,SCL,%10101111,$0006,[D1]

        HSEROUT [13,10,"EL DATO GRABADO ES: ",HEX D1,13,10]
        PAUSE 2000
       
        GOTO MAIN
       
        END  


El programa esta dise�ado para ser leido por el hyperterminal de Windows

Muchas graciasFlash

Desconectado LOBONET1

  • PIC10
  • *
  • Mensajes: 6
RE: Memoria EEPROM 24LC256 con pic16F873
« Respuesta #1 en: 26 de Mayo de 2005, 14:47:00 »
Hola Amigo aca te paso una rutina que te tendria que funcionar no es muy dificil de entender esto lo podes usar con cualquier pic y memoria que soporte el protocolo I2C te adjunto el codigo
Saludos

SO      con     0                       " Define serial output pin
N2400   con     4                       " Set serial mode
DPIN    var     PORTA.0                 " I2C data pin
CPIN    var     PORTA.1                 " I2C clock pin
B0      var     byte
B1      var     byte
B2      var     byte

   For B0 = 0 To 15                   " Loop 16 times
      I2CWRITE DPIN,CPIN,$A0,B0,[B0]  " Write each location"s address to itself
      Pause 10                        " Delay 10ms after each write
   Next B0

loop:  
   For B0 = 0 To 15 step 2             " Loop 8 times
      I2CREAD DPIN,CPIN,$A0,B0,[B1,B2] " Read 2 locations in a row
      Serout SO,N2400,[#B1," ",#B2," "]" Print 2 locations
   Next B0

   Serout SO,N2400,[13,10]             " Print linefeed

   Goto loop