Autor Tema: Lógica a 16F84A  (Leído 1842 veces)

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

Meta

  • Visitante
Lógica a 16F84A
« en: 07 de Febrero de 2008, 00:24:05 »
¿Es muy difícil hacer el funcionamiento de la lógica al 16F84A en ASM?


Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Lógica a 16F84A
« Respuesta #1 en: 07 de Febrero de 2008, 00:42:30 »
Hola, no es dificil, solo que la salida es de un solo bit, y la logica tambien es de un solo bit
pero las entradas estan en un puerto (de 8 bit) de los cuales solo empleas 4, y cada uno de esos bit, estan en "posiciones" diferentes, que tendras que leer, luego "alinear" con rotaciones  :mrgreen:
Esto lo pienso hablando o interpretando la "logica" del circuito

Mas simple seria emplear btfss o  btfsc e ir marcando flags, para luego implementar la and final

Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Lógica a 16F84A
« Respuesta #2 en: 07 de Febrero de 2008, 00:51:02 »
he escuchado las famosas "listas" creo

ahi testeas la entrada y saltas a una posición del codigo de programa correspondiente (y sacas el resultado), sumando al PC el numero leído, hay creo varios ejemplos por el foro
.

Meta

  • Visitante
Re: Lógica a 16F84A
« Respuesta #3 en: 07 de Febrero de 2008, 10:45:46 »
Muchas gracias a todos.

En autómatas si se hacerlo ya que en un cilco superior me enseñaron, y en unos casi 10 autómatas de diferentes fabricantes. Aunque no lo creas, el PIC es más difícil de manejar que un PLC. Eso si, el automata es de 16 Bits y 32.

PD:Creo que algunos me conocen muy bien.


EDIT:

Código: ASM
  1. TABLA DE LA VERDAD                             
  2. RB3     RB2     RB1     RB0     RA0
  3. 0       0       0       0       0
  4. 0       0       0       1       0
  5. 0       0       1       0       0
  6. 0       0       1       1       0
  7. 0       1       0       0       0
  8. 0       1       0       1       1
  9. 0       1       1       0       1
  10. 0       1       1       1       1
  11. 1       0       0       0       0
  12. 1       0       0       1       1
  13. 1       0       1       0       1
  14. 1       0       1       1       1
  15. 1       1       0       0       0
  16. 1       1       0       1       1
  17. 1       1       1       0       1
  18. 1       1       1       1       1
« Última modificación: 07 de Febrero de 2008, 16:03:56 por Meta »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Lógica a 16F84A
« Respuesta #4 en: 17 de Febrero de 2008, 22:35:26 »
Bueno, sin tener que meterte con operadores logicos y a nivel de bit...podrías fácilmente hacer:

Código: ASM
  1. Loop
  2.    call      Ejecuta
  3.    addlw  0                    ;afectar flag Z
  4.    btfsc   STATUS,Z       ;setear RA0 segun corresponda...
  5.    bcf     PORTA,0              
  6.    btfss  STATUS,Z
  7.    bsf     PORTA,0
  8.    goto   Loop
  9.  
  10. Ejecuta
  11.      movf PORTB,w
  12.      andlw 0x0F
  13.      addwf PCL,F
  14.      retlw 0  ;0
  15.      retlw 0  ;1
  16.      retlw 0  ;2
  17.      retlw 0  ;3
  18.      retlw 0  ;4
  19.      retlw 1  ;5
  20.      retlw 1  ;6
  21.      retlw 1  ;7
  22.      retlw 0  ;8
  23.      retlw 1  ;9
  24.      retlw 1  ;10
  25.      retlw 1  ;11
  26.      retlw 0  ;12
  27.      retlw 1  ;13
  28.      retlw 1  ;14
  29.      retlw 1  ;15
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything