Autor Tema: ALgun error????  (Leído 2016 veces)

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

Desconectado natalia_mouse

  • PIC10
  • *
  • Mensajes: 42
ALgun error????
« en: 30 de Abril de 2004, 17:59:00 »
Hola...
Estoy haciendo un  proggramita para 16f84a pero no he obtenido respuesta...
Por eso decidi hacer un programita elemental en el cual pongo el puerto a en 1... no es mas y no funciona
Aqui va el codigo por si alguien ve algun error:

LIST P=PIC16F84a

w equ 00h
status equ 0x03
porta equ 0x05
trisa equ 0x85

rp0 equ 5 ;registrer banck select bit

reset org 0
goto inicio

inicio
movlw b"00000000" ; puerto a como salida
bsf status,rp0 ;bank 1
movwf trisa
;escribir en el puerto a
movlw b"11111111"
bcf status,rp0 ;bank 0
movwf porta
nada
nop
nop
goto nada ;cierra el ciclo
End

Gracias y acepto cualquier tipo de sugerencia y observaciòn
Natalia

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: ALgun error????
« Respuesta #1 en: 01 de Mayo de 2004, 06:37:00 »
Hola, entiendo que quieres poner todos los pines del puerto A a 1 (valor del puerto = 32, recuerda que el puerto a tiene 5 pines), no mandar el valor 1 al puerto a, que en ese caso seria el pin/bit menos significativo (RA0) a "1" y el resto de pines/bits a cero.


Pues para eso tienes que modificar un poco tu codigo, mas que nada el cambiar de orden algunas lineas:

LIST P=PIC16F84a

w            equ 00h
status     equ 0x03
porta       equ 0x05
trisa        equ 0x85

rp0          equ 5 ;registrer banck select bit

reset       org 0
goto        inicio

inicio       bsf status,rp0 ;bank 1
               movlw b"00000000" ; puerto a como salida
               movwf trisa
bcf           status,rp0 ;bank 0

                movlw b"11111111"  ;linea cambiada de sitio
                movwf porta ;escribir en el puerto a
nada
                nop
                nop
                goto nada ;cierra el ciclo
                End


Este es tu codigo rectificado, ahora te deberia funcionar, te recomiendo que cuando cargues un literal en el w seguidamente lo lleves al registro donde lo quieres llevar como puedes ver arriba en las lineas cambiadas,
----------------------------------------------------
movlw b"00000000" ; puerto a como salida (linea cambiada de sitio)
movwf trisa
------------------------------------------------------

movlw b"11111111"  ;linea cambiada de sitio
movwf porta
---------------------------------------------------------
primero cargas el literal y seguidamente lo llevas al registro deseado, tu error era ese basicamente.

Otro consejo pero esto no quiere decir que este mal lo que haces es que en lugar de definir las direcciones y asignarles una etiqueta como tu haces, como por ejemplo:
-----------------------------------------------------
status equ 0x03
--------------------------------------------------------
Puedes incluir en tu codigo la siguiente linea, siempre despues de indicar el procesador con list:

include <p16f84a.inc>

Este fichero que incluyes ya tiene definidas todas las etiquetas con su direccion correctamente asignada para el procesador 16f84a, asi no  hace falta que las definas tu.

Saludos.



Desconectado DevilPIC

  • PIC10
  • *
  • Mensajes: 2
RE: ALgun error????
« Respuesta #2 en: 14 de Mayo de 2004, 00:55:00 »
Hola amor como estas... mira esta bien q empices con cosas asi de sencillas para aprender... pero tienes q aprender a optimizar y depurar tus codigos desde el principo.... voy a poner tu codigo y luego voy a ponerlo como deberia ser...
tu codigo:
LIST P=PIC16F84a

w equ 00h
status equ 0x03
porta equ 0x05
trisa equ 0x85

rp0 equ 5 ;registrer banck select bit

reset org 0
goto inicio

inicio
movlw b"00000000" ; puerto a como salida
bsf status,rp0 ;bank 1
movwf trisa
;escribir en el puerto a
movlw b"11111111"
bcf status,rp0 ;bank 0
movwf porta
nada
nop
nop
goto nada ;cierra el ciclo
End



FORMA CORRECTA:


LIST P=PIC16F84a
#Include<p16f84a.inc>

org       0000
GOTO   INICIO


INICIO  movlw    b"00000000" ; puerto a como salida
             TRIS       PORTA;ESCRIBE  LA CONFIGURACION AL PUERTO
             movlw    FFH
             movwf    PORTA
             GOTO     $

             End

Desconectado FARISI

  • PIC10
  • *
  • Mensajes: 2
RE: ALgun error????
« Respuesta #3 en: 29 de Octubre de 2004, 06:18:00 »
lodo depois de de list e #include !
#define bank0 bcf status,rp0
#define bank1 bsf status,rp0

;quando escrever bank1 = bsf status,rp0/ banco 2 de memória
                           ; bank0 = bcf status,rp0

;não é preciso usar equs para endereços de memória, comece desta forma
                           cblock    ( inicio de banco ) ex : 0x0c
                           coloca-se
                           nombres
                           de
                            memória
                             
                            endc ;- fin de banco

inicio
           daqui para baixo coloca-se as configurações de funcionamento
           clrf porta
           clrf portb
           bank1
           movlw   b"00000001"    ;define
           movwf   trisb                 ; = pino ,0 entrada
                                               ;= demais pinos saída
           bank0
                 
main
          o programa propriamente dito
          movlw  b"11111110"
          movwf  portb
          nop
          goto     $

          END  
                           


 

anything