TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: henryflash en 15 de Julio de 2011, 22:10:34

Título: enmascarar un puerto
Publicado por: henryflash en 15 de Julio de 2011, 22:10:34
hola , alguien podria ayudarme , tengo que usar un puerto para hacer dos contadores, y no se como enmascarar , agradeceria a quien me pueda ayudar, yo normalmente programo en niple ,pero me parece que lo mas correcto para este caso es  ASM.gracias.
Saludos  Enrique........
Título: Re: enmascarar un puerto
Publicado por: soymoe en 15 de Julio de 2011, 22:50:12
Modificando los valores de el registro TRISA o TRISB se pueden modificar la funcion de los puertos del PIC. Debes leer el PDF del PIC
Título: Re: enmascarar un puerto
Publicado por: henryflash en 16 de Julio de 2011, 12:57:30
Modificando los valores de el registro TRISA o TRISB se pueden modificar la funcion de los puertos del PIC. Debes leer el PDF del PIC
te agradezco voy a intentarlo después te cuento.
Saludos Enrique...
Título: Re: enmascarar un puerto
Publicado por: tapi8 en 16 de Julio de 2011, 14:08:57
Tienes que enmascarar un nibble y despues el otro para leerlos por separado, verdad?
Eso se hace con una AND poniendo a 0 el que no quieres leer:

movlw  0x0F  ; para enmascarar nibble alto
andwf  PORTB  ; aqui tienes 0 en nibble alto y en el bajo la lectura de lo que haya

Para leer el alto tienes que hacer movlw 0xF0, evidentemente
Título: Re: enmascarar un puerto
Publicado por: todopic en 16 de Julio de 2011, 17:09:31
Hola Henry, supongo que tendras que sacar por un puerto, el valor de dos contadores tipo BCD...
entonces tendras dos registros, uno por cada contador...
cuando tienes que colocar ambos contadores "acomodados" en el puerto, podrias pasar el contador de unidades, directamente al puerto (los 4 bit de menor peso)...
el contador de decenas( 4 bit de mayor peso) lo rotas 4 veces a la izquierda (RLF), colocas en uno los 4 bit de menor peso de este registro, y le haces and con el puerto de salida...
Título: Re: enmascarar un puerto
Publicado por: henryflash en 31 de Julio de 2011, 22:50:38
Tienes que enmascarar un nibble y despues el otro para leerlos por separado, verdad?
Eso se hace con una AND poniendo a 0 el que no quieres leer:

movlw  0x0F  ; para enmascarar nibble alto
andwf  PORTB  ; aqui tienes 0 en nibble alto y en el bajo la lectura de lo que haya

Para leer el alto tienes que hacer movlw 0xF0, evidentemente
gracias esto me aclara un poco mas la cosa, yo en basic ponia and 15 y lograba algo parecido. lo pruebo y te cuento, muchas gracias a todos los que colaboraron con migo.
Saludos Enrique...