Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

12/10/2009 #1


Numero Multiplo
Hola tengo un problema con el siguiente codigo , la idea es que el puerto b este como entrada si pongo ahi un numero multiplo de 3 en el puerto c rc0 enciende si no lo es entonces se apaga, ya he verificado varias veces y en la simulacion no me esta funcionando me sale el led intermitente cuando pongo 0 o cualquier numero


si por favor me pueden colaborar

gracias


Codigo


LIST P = 16F877A ;indica tipo de micro
INCLUDE "P16F877A.INC"


LIST

NUM1 EQU 20H
temp EQU 21H

BSF STATUS,RP0 ; se pasa al banco 1
MOVLW B'11111111'
MOVWF TRISB ; puerto b como entrada
MOVLW B'00000000'
MOVWF TRISC ;puerto c como salida
BCF STATUS,RP0 ; se pasa al banco 0
CLRF PORTC
leer

CLRF NUM1
CLRF PORTC


INICIO
movlw PORTB ; copiio lo del puerto b a w
movwf NUM1 ; copio lo del w al num1

resta movlw b'00000011'
subwf NUM1,1 ; resto num1 - 3
btfsc STATUS,Z ; si es 0 salta
goto resultmul
btfsc STATUS,C
goto resta
goto resulnomult
resultmul


bsf PORTC,0
goto INICIO


resulnomult

bcf PORTC,0
goto INICIO


END
12/10/2009 #2

Avatar de elosciloscopio

Respuesta: Numero Multiplo
Si pudieras postearlo en un bloc de notas para verlo más claro

PD: me has dado una idea para unn programa
12/10/2009 #3
Moderador

Avatar de Vick

Respuesta: Numero Multiplo
Primer error que encontré en tu código, checalo:

movlw PORTB ; copiio lo del puerto b a w <--- con esto no estas leyendo el PortB
12/10/2009 #4


Respuesta: Numero Multiplo
Vick dijo: Ver Mensaje
Primer error que encontré en tu código, checalo:

movlw PORTB ; copiio lo del puerto b a w <--- con esto no estas leyendo el PortB

muchas gracias definitivamente ese era el error

se corrige poniendo movf portb,0 se carga el puerto b a w

pdta; si no es mucho pedir me podrian decir esa instruccion para que serviria o si no es valida movlw PORTB, o esta solo sirve por eje para cargar un valor a w movlw b 00001111
12/10/2009 #5
Moderador

Avatar de Vick

Respuesta: Numero Multiplo
daac84 dijo: Ver Mensaje
se corrige poniendo movf portb,0 se carga el puerto b a w
Exacto así se lee un puerto de entrada
daac84 dijo: Ver Mensaje
si no es mucho pedir me podrian decir esa instruccion para que serviria o si no es valida movlw PORTB, o esta solo sirve por eje para cargar un valor a w movlw b 00001111
La instrucción movlw carga la literal que pongas en W, si colocas el nombre de un registro, lo que estas cargando en W es su dirección, en el caso de PORTB cargará 0x06 en W, la instrucción movlw PORTB es valida siempre y cuando necesites precisamente hacer eso.
13/10/2009 #6

Avatar de elosciloscopio

Respuesta: Numero Multiplo
Evidente... es movf

no ví eso, gual hay algun otro error, pero prueba a correjrlo y dinos
si funciona

saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.