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

Temas similares

11/05/2010 #1


pic 16f84a contador automatico y paso a paso
Hola amigos soy nuevo en este foro y en el mundo de los PIC,

mi primer proyecto es hacer un contador de 0 a 9 con un display 7 segmentos y un PIC 16F84A el cual consta de dos pulsadores...,

-el primer pulsador funciona asi: cada vez que active el pulsador debe ir mostrandome cada numero el conteo de 0 a 9. y cuando llegue a 9 comience de nuevo en cero y asi sucesivamente... es decir (cuando pulse me muestra el 1, cuando pulse otra vez me muestra el 2, cuando pulse otra vez me muestra el 3, etc etc etc)

-el segundo pulsador: cuando active el segundo pulsador , debe mostrar el mismo conteo de 0 a 9 pero de forma automatica.

ya hice la programacion y la simulacion en el proteus para el funcionamiento del primer pulsador, pero ahora como hago para añadir la funcion del segundo pulsador???

si no me entienden me preguntan...

gracias y espero su ayuda

PD: LES ADJUNTO EL ASM Y LA SIMULACION EN PROTEUS DE LO QUE HICE. EN ESTE CASO LOS NUMEROS QUE SE MUESTRAN EN EL DISPLAY LOS DEFINI YO.
11/05/2010 #2

Avatar de aguevara

Respuesta: pic 16f84a contador automatico y paso a paso
Usa algun tipo de flag es decir asigna la posicion de memoria digamos BOTON donde el bit 0 es para el boton 1 y el bit 1 para el boton 2, de manera que cuando se oprime alguno de ellos cambies el estado de las flags, asi una cancela a la otra y sabras cual es la que esta activa, de esta manera tomaras la decision de cual rutina ejecutar
03/08/2011 #3


hola a todos soy nuevo en esto de la programacion ,para hacerlo en c como se podria hacer??? e intentando varias formas pero ninguna ha funcionado les dejo lo mas ke he podido hacer.
lo unico ke hace es que con un pulsador inicia la cuenta,si pudieran darme un tip o como empezar lo agradeceria mucho.


#include <16f876.h>
# use delay(clock=4000000)
# fuses XT,NOWDT
#use fast_io(B)
#use fast_io(c)
#use fast_io(A)


void main() {

int entrada,x,inc,z;
port_b_pullups(TRUE);

set_tris_c(0X00); //salidas
set_tris_b(0xff); //entradas
set_tris_a(0x00); //salidas
output_c (0); //inicializo todos los bits de la puerta B a cero

while(TRUE){

if(input(PIN_B0)==0){
inc=0;

for(inc=0;inc<7;inc++){


output_c(0x3f);
delay_ms(1000);

output_c(0x06);
delay_ms(1000);


output_c(0x5b);
delay_ms(1000);
output_c(0x4f);
delay_ms(1000);
output_c(0x66);
delay_ms(1000);
output_c(0x6d);
delay_ms(1000);
output_c(0x7d);
delay_ms(1000);
output_c(0x07);
delay_ms(1000);}



}
}
}
21/12/2011 #4

Avatar de callecuatro1976

#include <16f84a.h>
#use delay (clock=4000000)
#byte puerto_a=0x05
#byte puerto_b=0x06
#bit ra0=0x05.0
#bit ra1=0x05.1
#bit ra2=0x05.2
#bit ra3=0x05.3
void main()
{
int i=0,j=0,m=0,k=0;
set_tris_a(0);
set_tris_b(0);
puerto_b=0;

while(1)
{
puerto_a=0;

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
for(m=0;m<10;m++)
{
ra0=1;
puerto_b=i;
delay_ms(100);
ra0=0;

ra1=1;
puerto_b=j;
delay_ms(100);
ra1=0;

ra2=1;
puerto_b=k;
delay_ms(100);
ra2=0;

ra3=1;
puerto_b=m;
delay_ms(100);
ra3=0;
}
}
}
}
puerto_b=0;
puerto_a=255;
delay_ms(10);
}
}
yo hise este pero me parese que lo mejor es usar interrupciones externas para que funcione bien
21/12/2011 #5


Bien pues en primera esta mal porqe tu al pulsar el push, debes programar que al soltarlo cambie porqe como sabras el pic es muy rapido y al presionar tu , el pic ya detectara que presionaste mas de 1 vez y por eso te muestra los numeros aleatorios, en un momento si tengo tiempo libre me pongo en tu proyecto
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.