• Domingo 17 de Noviembre de 2024, 01:49

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - andre52

Páginas: [1]
1
Inteligencia Artificial / Necesito Un Profesor De Prolog En Bogota, Colombia
« en: Lunes 11 de Septiembre de 2006, 01:01 »
Hola soy nueva en el lenguaje de prolog y necesito alguien que lo conozca bien; estoy interesada en tomar clases con profesores que se encuentren en Bogota, Colombia;  los interesados por favor escribir a andrea.j.moreno@gmail.com...gracias

2
Inteligencia Artificial / Re: Manejo De Listas En Prolog
« en: Domingo 10 de Septiembre de 2006, 23:18 »
Hola su - :  gracias por responderme con eso ya se como crearla y eliminar un elemento pero todavia no logro copiar una lista sin dañar la original y hacerlo desde la ventana donde esta el codigo y no desde la consola. me ayudas por favor.

3
Inteligencia Artificial / Manejo De Listas En Prolog
« en: Domingo 10 de Septiembre de 2006, 19:10 »
hola soy nueva en el lenguaje de prolog y necesito aprender a manejar listas, crearla copiarla, eliminar un elemento y  desplazarme dentro de ella. la verdad es que necesito hacerlo desde la ventana del codigo y no desde la consola.

Si pueden enviarme a algun tutorial o explicarme como puedo hacerlo agradeceria mucho su ayuda.

4
Microcontroladores / Re: 16f84 Y Eeprom 24c08!..
« en: Jueves 8 de Diciembre de 2005, 22:58 »
HOLA...MUCHISIMAS GRACIAS POR TU CODIGO, PUEDE GUIARME UN POCO, AUNQUE NO SE PORQUE TODAVIA NO ME FUNCIONA..TENGO UN PROBLEMA AL LEER LA BANDERA DEL PIR1, SSPIF, NUNCA ME PASA DE AHI...TE AGRADEDERIA MUCHO QUE ME AYUDARAS

********************************************************************
      BANCO1
      CLRF      TRISB            ; PURTO B COMO SALIDA
      movlw      b'00010000'
      MOVWF      TRISC            ; PUERTO C, ENTRADA
      ;MOVLW      B'11001111'      
      ;MOVWF      OPTION_REG
      BSF         SSPSTAT,SMP         ;EL DATO DE ENTRADA ES LEIDO AL FINAL DEL DATO DE SALIDA
      MOVLW      .9      
      MOVWF      SSPADD            ; VELOCIDAD DE 100KHZ
      BANCO0

      ;CONFIGURACION DE MMSP
      MOVLW      B'00101000'
      MOVWF      SSPCON
      CLRF      PIR1
      CALL       WRITE      
      CALL       READ         
      MOVWF      PORTD
      GOTO      main
START
      BANCO1
      BSF         SSPCON2,SEN         ; CONDICION DE INICIO EN LOS PINES SDA Y SCL
      BTFSC      SSPCON2,SEN
      GOTO      $-1
      BANCO0
      CALL      ESPERAR
      RETURN
START2
      BANCO1
      BSF         SSPCON2,RSEN         ; CONDICION DE INICIO EN LOS PINES SDA Y SC
      BANCO0
      CALL      ESPERAR
      RETURN

SEND   
      BCF         PIR1,SSPIF         ;FLAG MSSP
      MOVWF      SSPBUF            ; BUFFER DE SALIDA
      CALL      ACKX
      CALL      ESPERAR            
      RETURN

WRITE   
      CALL       START      
      MOVLW      B'10100000'         ;DIRECCION DISPOSITIVO         
      CALL      SEND
      MOVLW      B'00000000'         ;DIRECCION DE LA MEMORIA
      CALL      SEND
      MOVLW      .90               ;DATO
      MOVWF      SSPBUF      
      CALL      ACKX
      CALL      ESPERAR
      CALL      STOP
      RETURN

ACKX      
      BANCO1   
      BTFSC       SSPCON2, ACKSTAT    ;TRANSMISION HA OCURRIDO
      GOTO      ACKX
      BANCO0
      RETURN
      ;BANCO1
      ;BSF         SSPCON2,ACKEN      ;ACTIVA GENERACION DE ACK

READ
      CALL       START      
      MOVLW      B'10100000'         ;DIRECCION DISPOSITIVO
      CALL      SEND
      MOVLW      B'00000000'         ;DIRECCION DE LA MEMORIA
      CALL      SEND
      CALL      START2
      MOVLW      B'10100001'         ;DIRECCION DISPOSITIVO
      CALL      SEND
      BANCO1
      BSF         SSPCON2,RCEN
      BANCO0
      CALL      ESPERAR
      CALL      NACK
      CALL      LEE_BYTE
      CALL      ESPERAR
      MOVF      SSPBUF,W
      MOVWF      PORTB
      CALL      STOP
      RETURN

NACK
      BANCO1
      BSF         SSPCON2,ACKDT      ;PONE BIT ACK A 0
      BSF         SSPCON2,ACKEN      ;ACTIVA GENERACION DE ACK
      BTFSC      SSPCON2,ACKEN
      GOTO      $-1
      BANCO0
      RETURN
STOP      
      BANCO1
      BSF         SSPCON2,PEN         ;ACTIVA SECUENCIA DE PARADA
      BTFSC      SSPCON2,PEN
      GOTO      $-1
      BANCO0
      CALL      ESPERAR
      RETURN

ESPERAR   
      BCF         PIR1,SSPIF   
      BTFSS      PIR1,SSPIF      ;TRANSMISION O RECEPCION HA OCURRIDO
      GOTO      $-1
      RETURN
LEE_BYTE
      BCF         PIR1,SSPIF
      BANCO1
      BSF         SSPCON2,RCEN
      BTFSC      SSPCON2,RCEN
        GOTO      $-1
      BANCO0
      RETURN      

 

END

5
Microcontroladores / Re: 16f84 Y Eeprom 24c08!..
« en: Miércoles 7 de Diciembre de 2005, 21:33 »
Cita de: "Huguen_aus_Tirol"
Hola! No hay problema, pero tendrás que tenerme un poquito de paciencia, por lo menos hasta el sábado. Estoy con demasiado trabajo, y tengo que buscar el programa para enviartelo. En otra discución veo que quieres implementar el I2C con un 16F877; este micro ya tiene modulo I2C.
Asi que te pasaré el programa completo para emular I2C en un 16F84, y las rutinas para configurar este modulo en los micros que ya lo tienen.
Pero paciencia :) No prometo nada, pero si me da un tiempito en una de esas lo hago antes, pero no es promesa...
Saludos
Muchas gracias por tu atencion, sigo trabajando en eso, si, tienes razon el 877 ya tiene el modulo configurado pero no he logrado hacer que me funcione con el MSSP, por eso estoy intentando guiarme por tu codigo para hacerlo paso a paso ya que mi entrega es para este viernes. Igualmente te agradeceria si por casualidad tienes algun codigo que te haya funcionado con el MSSP y si no, no te preocupes continua con lo que tienes que hacer y de nuevo muchas gracias.

 ;)

6
Microcontroladores / Re: 16f84 Y Eeprom 24c08!..
« en: Miércoles 7 de Diciembre de 2005, 01:26 »
Cita de: "Huguen_aus_Tirol"
Hola! Aqui tengo algo de código, que escribí alla por el 2000, por lo que no recuerdo exactamente todos los detalles. Pero si recuerdo que me funcionó con una 24C02 y que, en parte, lo saqué de un manual de AN de Microchip.
Debería adaptarse muy bien a un 16F84 y a una 24C08. Solo hay que declarar bien las variables, los pines, etc... Pero creo que no hay problema con eso ;)
Espero que te sea útil :)

Saludos y suerte!

Código: Text
  1. ;******************************************************************************
  2. ;  RUTINAS DE COMUNICACION SERIE (MODULO I2C)
  3. ;******************************************************************************
  4. ;
  5. ; GENERA START BIT
  6. ;
  7. START_I2C
  8.   BSF  SDA  ; dejo linea de datos en 1
  9.   BSF  RP0  ; banco 1
  10.   MOVLW  _TRISC  ; configuro SDA y SCL como salidas
  11.   ANDLW  b'11100111';
  12.   MOVWF  TRISC  ;
  13.   BCF  RP0  ; banco 0
  14.   BCF  SCL  ; bajo clock
  15.   NOP    ;
  16.   BSF  SCL  ; subo clock
  17.   GOTO  $+1  ;
  18.   GOTO  $+1  ;
  19.   GOTO  $+1  ;
  20.   NOP    ;
  21.   BCF  SDA  ; bajo datos
  22.   GOTO  $+1  ;
  23.   GOTO  $+1  ;
  24.   GOTO  $+1  ;
  25.   NOP    ;
  26.   BCF  SCL  ; y bajo clock para generar start bit
  27.   GOTO  $+1  ;
  28.   GOTO  $+1  ;
  29.   RETURN    ;
  30. ;
  31. ; GENERA STOP BIT
  32. ;
  33. STOP_I2C
  34.   BCF  SDA  ; dejo linea de datos en 0
  35.   BSF  RP0  ; banco 1
  36.   MOVLW  _TRISC  ; configuro SDA y SCL como salidas
  37.   ANDLW  b'11100111';
  38.   MOVWF  TRISC  ;
  39.   BCF  RP0  ; banco 0
  40.   BCF  SDA  ; bajo datos
  41.   GOTO  $+1  ;
  42.   GOTO  $+1  ;
  43.   BSF  SCL  ; subo clock
  44.   GOTO  $+1  ;
  45.   GOTO  $+1  ;
  46.   BSF  SDA  ; subo datos
  47.   GOTO  $+1  ;
  48.   GOTO  $+1  ;
  49.   BCF  SCL  ; bajo clock
  50.   GOTO  $+1  ;
  51.   GOTO  $+1  ;
  52.   RETURN    ; y retorno
  53. ;
  54. ; ENVIA UN BIT POR SDA
  55. ;
  56. BITOUT_I2C
  57.   BSF  RP0  ; banco 1
  58.   MOVLW  _TRISC  ; configuro SDA y SCL como salidas
  59.   ANDLW  b'11100111';
  60.   MOVWF  TRISC  ;
  61.   BCF  RP0  ; banco 0
  62.   BTFSS  I2CDO  ; enviar un 1 ?
  63.   GOTO  I2CBLO  ; no, envio un 0...
  64.   BSF  SDA  ; pongo SDA en 1
  65.   GOTO  CLKOUT  ;
  66. I2CBLO
  67.   BCF  SDA  ; pongo SDA en 0
  68. CLKOUT
  69.   BSF  SCL  ; y clockeo
  70.   GOTO  $+1  ;
  71.   GOTO  $+1  ;
  72.   GOTO  $+1  ;
  73.   BCF  SCL  ;
  74.   RETURN    ; y salgo
  75. ;
  76. ; RECIBE UN BIT POR SDA
  77. ;
  78. BITIN_I2C
  79.   BSF  I2CDI  ; asumo que llega un 1
  80.   BSF  RP0  ; banco 1
  81.   MOVLW  _TRISC  ; configuro SDA como entrada y SCL como salida
  82.   ANDLW  b'11100111';
  83.   IORLW  b'00010000';
  84.   MOVWF  TRISC  ;
  85.   BCF  RP0  ; banco 0
  86.   BSF  SCL  ; subo clock
  87.   GOTO  $+1  ;
  88.   GOTO  $+1  ;
  89.   GOTO  $+1  ;
  90.   BTFSS  SDA  ; recibio un 1 ?
  91.   BCF  I2CDI  ; no, es 0
  92.   BCF  SCL  ; bajo clock
  93.   RETURN    ; y salgo
  94. ;
  95. ; RUTINA DE TRANSMISION POR I2C
  96. ;
  97. I2C_TX
  98.   MOVLW  .8  ; son 8 bits a contar
  99.   MOVWF  CNT  ;
  100. I2C_TXLP
  101.   BCF  I2CDO  ; asumo que sale un 0
  102.   BTFSC  I2CBUF,7; sacar un 0 ?
  103.   BSF  I2CDO  ; no, sale un 1...
  104.   CALL  BITOUT_I2C; envio bit
  105.   RLF  I2CBUF,F; acomodo para sacar proximo bit
  106.   DECFSZ  CNT,F  ; salieron los 8 ?
  107.   GOTO  I2C_TXLP; no, continuo sacando...
  108.   CALL  BITIN_I2C; leo bit de acknowledge
  109.   BCF  I2CACKF  ; asumo que es 0
  110.   BTFSC  I2CDI  ; es 0 ?
  111.   BSF  I2CACKF  ; no, envio un 1
  112.   RETURN    ; y salgo
  113. ;
  114. ; RUTINA DE RECEPCION POR I2C
  115. ;
  116. I2C_RX
  117.   CLRF  I2CBUF  ; borro buffer
  118.   MOVLW  .8  ; son 8 bits a leer
  119.   MOVWF  CNT  ;
  120.   BCF  C  ; borro flag de carry
  121. I2C_RXLP
  122.   RLF  I2CBUF,F; roto un bit a la izquierda
  123.   CALL  BITIN_I2C; y leo bit enviado
  124.   BTFSC  I2CDI  ; llego un 0 ?
  125.   BSF  I2CBUF,0; no, escribo un 1 en el buffer
  126.   DECFSZ  CNT,F  ; llegaron los 8 bits ?
  127.   GOTO  I2C_RXLP; no, sigo reciviendo...
  128.   BCF  I2CDO  ;
  129.   BTFSC  I2CACKF  ;
  130.   BSF  I2CDO  ;
  131.   CALL  BITOUT_I2C; envio bit de acknowledge
  132.   RETURN    ; y salgo
  133. ;
  134. ; LECTURA DE LA MEMORIA 24Cxx
  135. ;
  136. RD24CXX
  137.   CALL  START_I2C; envio condicion de start
  138.   MOVLW  _24CADD  ; traigo direccion de esclavo
  139.   MOVWF  I2CBUF  ; y cargo en buffer
  140.   CALL  I2C_TX  ; direcciono memoria
  141.   MOVFW  ADD24C  ; traigo direccion a leer
  142.   MOVWF  I2CBUF  ;
  143.   CALL  I2C_TX  ; y envio a memoria
  144.   CALL  START_I2C; envio condicion de start
  145.   MOVLW  _24CADD  ;
  146.   IORLW  0x01  ; direcciono memoria para lectura
  147.   MOVWF  I2CBUF  ;
  148.   CALL  I2C_TX  ; y envio
  149.   BCF  I2CACKF  ; preparo para acknowledge en 0
  150.   CALL  I2C_RX  ; y leo byte direccionado
  151.   CALL  STOP_I2C; genero condicion de stop
  152.   MOVFW  I2CBUF  ; cargo dato leido en
  153.   MOVWF  DAT24C  ; registro de datos de memoria
  154.   RETURN    ; y salgo
  155. ;
  156. ; ESCRITURA DE LA MEMORIA 24Cxx
  157. ;
  158. WR24CXX
  159.   CALL  START_I2C; genero bit de start
  160.   MOVLW  _24CADD  ; cargo direccion del esclavo
  161.   MOVWF  I2CBUF  ; en buffer
  162.   CALL  I2C_TX  ; envio...
  163.   MOVFW  ADD24C  ; cargo direccion a escribir
  164.   MOVWF  I2CBUF  ; en buffer
  165.   CALL  I2C_TX  ; envio...
  166.   MOVFW  DAT24C  ; cargo dato a escribir
  167.   MOVWF  I2CBUF  ; en buffer
  168.   CALL  I2C_TX  ; envio...
  169.   CALL  STOP_I2C; genero bit de stop
  170.   MOVLW  .60  ;
  171.   MOVWF  CNT1  ;
  172. WR24POLL
  173.   CALL  START_I2C;
  174.   MOVLW  _24CADD  ;
  175.   MOVWF  I2CBUF  ;
  176.   CALL  I2C_TX  ;
  177.   BTFSS  SDA  ;
  178.   GOTO  WR24P_EXIT;
  179.   DECFSZ  CNT1,F  ;
  180.   GOTO  WR24POLL;
  181.   RETLW  0xFF  ;
  182. WR24P_EXIT
  183. ;  MOVLW  .20  ;
  184. ;  MOVWF  DEL_TIME; espero 10 mseg para dar tiempo a memoria
  185. ;  CALL  DELAY  ;
  186.   RETLW  0x00  ; y salgo
  187. ;
  188. ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*;
  189.  
  190.  
HOLA Huguen_aus_Tirol ESTUVE VIENDO TU CODIGO DE LA I2C PERO REALMENTE NO ENTIENDO MUCHAS COSAS, PORQUE NO ESCRIBISTE LA DECLARACION DE VARIABLES Y POR TAL MOTIVO ESTOY UN POCO PERDIDA...TE AGRADECERIA MUCHO QUE ME ENVIARAS EL CODIGO COMPLETO..

7
Microcontroladores / I2c
« en: Martes 6 de Diciembre de 2005, 15:18 »
Necesito un programa en assembler que me indique como leer y escribir en la memoria 24C04 desde un pic16f877a

Páginas: [1]