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

Temas similares

25/03/2012 #1


Mostrar cuenta de 0 - 9 con 74164 con pic
HOLA AMIGOS.. SOY UN ESTUDIANTE DE ING ELECTRONICA... ESTOY ENTRANDO EN EL MUNDO DE LOS Uc PIC y ya tengo varios proyectos.. bueno mi problema es el siguiente quiero hacerme un contador con el pic de 0 - 9 con el registro 74164 con el pic claro.. ya lo e implementado con instrucciones simples como el bsc y bsf.. bueno quiero que me muestre los numeros en el display anodo comun pero utilizando la instruccion RRF.. la para secuencias de luces ya la e implementado pero para mostrar un numero con ese registro no puedo hacerlo.. si alguien me pudiera ayudar o ya lo a hecho y me pueda pasar algo de la programacion en ASM se lo agradeceria muchisimo.. SALUDOS DESDE PERUU.
02/04/2012 #2

Avatar de Daniel Meza

Si áun lo necesitas; el punto de tu problema es hacer una rutina que envié serialmente el byte que hará que ciertos segmentos de tu display se enciendan. Por acá te dejo una rutina que utilicé para enviar datos serialmente precisamente a un registro SIPO 74164:

Código:
        movf		Byte,W
	movwf		Corrimiento		;Transfiere el dato a enviar al registro de  desp  
	movlw		.8
	movwf		Contador1			;Numero de bits a enviar al registro de relés
	bcf			Dat
	btfsc		Corrimiento,.7
	bsf			Dat				;Revisa si el bit a enviar es 0 o 1
	bcf			Rlj
	bsf			Rlj				;Envía el bit al registro externo
	rlf			Corrimiento,F		;Pasa al siguiente bit a enviar
	decfsz		Contador1,F		;¿Ya se enviaron los 8 bits?
	goto		$-.7				        ;Aún no, siguen enviado los siguientes bits
	return						;Datos enviados, retorno de la subrutina
Es una sencilla rutina que envía el dato almacenado en el registro "byte" por medio del pin definido como Dat (pin de datos) y el pin de señal de reloj (Rlj), el "Contador1" funciona como contador de bits enviados y el registro "Corrimiento" es un registro temporal donde se copia el byte a enviar
03/04/2012 #3
Moderador

Avatar de D@rkbytes

Contador 0-999 con un PIC16F628A y tres 74LS164
Saludos.
Aqui les adjunto un ejemplo de un contador 0-999 con un PIC16F628A y tres 74LS164
Omitendo las líneas de configuración del registro CMCON, cambiando la dirección de RAM del bloque de variables,
por 0x0C y la cabecera del programa por.
list p=16F84A
#include <P16F84A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

Se puede usar para un PIC16F84A. Espero sirva de ayuda.

Suerte y hasta luego.
Imágenes Adjuntas
Tipo de Archivo: gif SCH.gif (49,8 KB (Kilobytes), 87 visitas)
Archivos Adjuntos
Tipo de Archivo: rar Contador 0-999 con PIC16F628A y 74LS164.rar (20,0 KB (Kilobytes), 208 visitas)
25/09/2016 #4


Un saludo a todos los amigos visitantes de este foro, que siempre comparten sus conocimientos.
También agradecerle el Sr. D@rkbytes, por el archivo que subió contador 0-999 con un PIC16F628A y tres 74LS164.

También quiero pedir su autorización para modificar este programa y subirlo nuevamente.
En el cual estoy trabajando. Como contador de 4 dígitos programable. Que aumentare algunos pulsadores.

Al estar trabajando ya con este programa como contador de pulsos de 4 dígitos, al descender de más de 1000 tengo problemas.
Quisiera que me dé una mano en esta parte del programa para 4 dígitos.

Gracias anticipadamente.

Atentamente. Hércules.

Código PHP:
btfss    PORTA,Desc
        
goto    $-1                Esperar hasta que se suelte el botón
        decf    Display1
,1        Decrementar Display1
        movlw    
b'11111111'      ;d'255'            Si paso de 0 a 255
        subwf    Display1
,0        Decrementar Display2
        btfss    STATUS
,Z
        
goto    RefrescaDisp    no es 255 
        movlw    
b'00001001'     ;d'9' 
        
movwf    Display1        Sicargo 9
        decf    Display2
,1        Decrementar Display2
        movlw    
b'11111111'    ;d'255'            Si paso de 0 a 255
        subwf    Display2
,0        Decrementar Display3 
        btfss    STATUS
,Z
        
goto    RefrescaDisp    No es 10
        movlw    
b'11111111'    ;d'9' 
        
movwf    Display2        Sicargo 9
        decf    Display3
,1        Decrementar Display3
        movlw   
B'11111111'      ;    d'255'            Si paso de 0 a 255
        subwf    Display3
,0   
        btfss    STATUS
,
        
goto    RefrescaDisp    No es 10
        movlw    
b'00001001'    ;d'9' 
        
movwf    Display3        Sicargar 9
        
goto    RefrescaDisp 
;************************************************************************ 
Ascender   
        btfss    PORTA
,Asc
        
goto    $-1                Esperar hasta que se suelte el botón
        incf    Display1
,1        Incrementar Display1
        movlw     
b'00001010'            Si es 10 resetear e incrementar Display2
        subwf    Display1
,0
        btfss    STATUS
,Z
        
goto    RefrescaDisp    no es 10
        clrf    Display1        
Siresetear
        incf    Display2
,1        Incrementar Display2
        movlw     
b'00001010'            Si Decena 10resetear e incrementar 
25/09/2016 #5
Moderador

Avatar de D@rkbytes

tercules dijo: Ver Mensaje
Un saludo a todos los amigos visitantes de este foro, que siempre comparten sus conocimientos.
También agradecerle el Sr. D@rkbytes, por el archivo que subió contador 0-999 con un PIC16F628A y tres 74LS164.

También quiero pedir su autorización para modificar este programa y subirlo nuevamente.
En el cual estoy trabajando. Como contador de 4 dígitos programable. Que aumentare algunos pulsadores.
Puedes modificar el programa sin inconvenientes.
Todo lo expuesto en el Foro es de libre distribución y modificación, a menos que se indique lo contrario.
tercules dijo: Ver Mensaje
Al estar trabajando ya con este programa como contador de pulsos de 4 dígitos, al descender de más de 1000 tengo problemas.
Quisiera que me dé una mano en esta parte del programa para 4 dígitos.
Modifiqué el programa que subí para tres dígitos, ahora cuenta hasta 9999.
Mira ambos programas y compara los cambios realizados.
Archivos Adjuntos
Tipo de Archivo: rar Contador 0-9999 con PIC16F628A y 74LS164.rar (31,3 KB (Kilobytes), 11 visitas)
25/09/2016 #6


Gracias amigo por su respuesta. Aquí subo lo que he estado modificando. Si podría darle una revisión para ver si está bien o no lo que hice. Bueno lo que debo hacer es un contador programable para rebobinar transformadores y campos de licuadora. Ejemplo. Necesito por decir. 1230, espiras lo programo. Luego enter y rebobinar con un motor. Cuando llegue al programado deje de funcionar el motor. De seguro que utilizare un censor para contar los giros del motor.
También subo otro que está hecho ccs que casi no entiendo tanto. Pero algo similar quisiera hacer, que este cuando programo en 10 no anda.
Gracias por respuesta.
Atentamente hércules.
Archivos Adjuntos
Tipo de Archivo: rar CONTADOR 74LS164.rar (127,8 KB (Kilobytes), 14 visitas)
Tipo de Archivo: rar REBOBINADOR original 7seg.rar (79,9 KB (Kilobytes), 9 visitas)
25/09/2016 #7
Moderador

Avatar de D@rkbytes

Como ese programa que subes está en C, y quieres hacer un contador para bobinadora, me parece que debes ver el siguiente tema:
Contador programable para "Bobinadora"
25/09/2016 #8


Ya había revisado esa página. Lo que debo hacer es con display de 7 segmentos. En lenguaje de asm. Ccs no entiendo. Si subí el otro archivo era para indicarle algo similar.
Gracias por su comprensión.
Subo en asm modificado
Archivos Adjuntos
Tipo de Archivo: rar CONTADOR 74LS164 .asm.rar (129,8 KB (Kilobytes), 4 visitas)
25/09/2016 #9
Moderador

Avatar de D@rkbytes

tercules dijo: Ver Mensaje
Ya había revisado esa página. Lo que debo hacer es con display de 7 segmentos. En lenguaje de asm. Ccs no entiendo. Si subí el otro archivo era para indicarle algo similar.
Gracias por su comprensión.
Subo el asm modificado
Bien, pues ya nada más era cosa de adaptar el hardware, pero ahora le hace falta el reset.

Por cierto; CCS no es un lenguaje de programación, son las siglas de la empresa. Custom Computer Services.
28/09/2016 #10


Amigo D@rkbytes quisiera una mano. Como puedo insertar al programa del contador 74ls164. Asm. Los pulsadores iniciar, unidad, centena. Y me escriba en el display 7segmentos. de 0 a 99.el pulsador unidad. Y el pulsador centena escriba de 100 en 100 hasta 9900.es para rebobinar la cantidad de espiras que uno requiera. El pulsador iniciar sirve para empezar el conteo y activar el pin 3 del puerto A. hasta que concluya el conteo.
Le agradeceré por su respuesta.
Atentamente hércules.
Imágenes Adjuntas
Tipo de Archivo: jpg contador.jpg (145,3 KB (Kilobytes), 15 visitas)
28/09/2016 #11
Moderador

Avatar de D@rkbytes

Pues igualmente agregando esas nuevas rutinas y la comprobación de esas condiciones.
También puedes realizar comprobaciones que modifiquen el conteo.
Si posees conocimientos del lenguaje, no tendrás problemas, si no, te va a resultar demasiado complicado.
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.