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

Temas similares

11/06/2016 #1


Problemas al realizar un conteo
hola a todos

tengo que realizar un proyecto para ingresar edad para ello utilizo 2 pulsadores para realizar el incremento y decremento de la edad pero quiero que empiece desde 18 hasta el 80 el problema es que tanto incremento como decremento solo llegan a 255 y no se que pueda ser espero alguien me pueda asesorar y ayudarme a resolver este problema

codigo:
Código:
#include <16f877a.h>              
#use delay(clock=4000000)   
#fuses xt,nowdt,noprotect     
#byte portd=6                      
#include <lcd.c>                
int valor=0;

void main(void)
{
lcd_init();                             
lcd_putc(" Entrenador\n");        
lcd_putc(" Inteligente");              
delay_ms(2000);                 
lcd_putc("\f");                     
lcd_putc("Ingresar Edad\n");         

while(true)
{

if(input(pin_A0)==0)  
{
valor++;                       
delay_ms(500);       

if(valor>=80)              
{                            
valor=0;
}
}
if(input(pin_A1)==0)   
{
valor--;                         
delay_ms(500);       

if(valor==0)          
{                    
valor=80;
}
}
lcd_gotoxy(2,2);                    
lcd_putc(" ");                         
printf(lcd_putc,"%3U",valor);       
}
}
11/06/2016 #2
Moderador

Avatar de D@rkbytes

Según entendí, puede ser así:
Código PHP:
void main (void)
{
   
int8 edad 18;
   
lcd_init();                                              
   
lcd_putc("\fIngresar Edad\nEdad:");         

while(
true)
{
   if(!
input(PIN_A0))  
   {                             
      if(
edad 79edad 17;
      
edad++;
      
delay_ms(500);
   }
   
   if(!
input(PIN_A1))   
   {     
      if(
edad 19edad 81;          
      
edad--;
      
delay_ms(500);
   }
   
   
lcd_gotoxy(6,2);                                           
   
printf(lcd_putc,"%2u",edad);       
   }

11/06/2016 #3


D@rkbytes dijo: Ver Mensaje
Según entendí, puede ser así:
Código PHP:
void main (void)
{
   
int8 edad 18;
   
lcd_init();                                              
   
lcd_putc("\fIngresar Edad\nEdad:");         

while(
true)
{
   if(!
input(PIN_A0))  
   {                             
      if(
edad 79edad 17;
      
edad++;
      
delay_ms(500);
   }
   
   if(!
input(PIN_A1))   
   {     
      if(
edad 19edad 81;          
      
edad--;
      
delay_ms(500);
   }
   
   
lcd_gotoxy(6,2);                                           
   
printf(lcd_putc,"%2u",edad);       
   }

si asi es muchas gracias ya entendi como tenia que hacerle era desde el INT=18 desde ahi puedo poner mi comienzo
11/06/2016 #4

Avatar de ruben90

Creo que tienes error de sintaxis, no coloques sentencias if dentro de otra sentencia if, y tienes error al comparar la variable valor con 0 y 80.
Preba esto,
Código:
...
while(true) {
if(input(pin_A0)==0) {
valor++;
delay_ms(500);
}
if(input(pin_A1)==0) {
valor--;
delay_ms(500);
}
if(valor>=80) valor=80;
if(valor<=0) valor=0;
...
13/06/2016 #5


hola a todos, tengo un problema similar espero y alguien me pueda ayudar, estoy iniciando en lo que es la programación en lenguaje C con MikroC for Pic...Estoy tratando de hacer una barra de leds con el pic16f628a y estoy utilizando el registro de desplazamiento 74HC164...La primera secuencia que estoy tratando de hacer es que los leds prendan uno por uno, después de que prendan todos se apaguen y vuelva iniciar....pero no lo hace se apagan todos pero ya no vuelve iniciar espero y alguien pueda checar mi código y pueda decirme cual es el error, aquí les adjunto mi código de antemano gracias
Código:
int cont1;

void main() {
CMCON=0x07;           //Comparadores analogicos deshabilitados
TRISB=0;
TRISA=1;
RB0_bit=1             //Envia dato a registro de desplz.

while (1){
RB1_bit=0;            //Señal de relog
Delay_ms(200);
RB1_bit=1;
cont1++;              //Incr en una unidad
if(cont1>=9){
RB2_bit=1;
Delay_ms(30);
RB2_bit=0;
cont1=0;
}
}
}
tambien les adjunto la simulacion
Archivos Adjuntos
Tipo de Archivo: rar Barra_de_leds.rar (13,8 KB (Kilobytes), 3 visitas)
14/06/2016 #6

Avatar de ruben90

Hola dosekk, sabes cómo funciona el 74HS164? Te invito a ver este video, está en inglés pero resolverá algunas de tus dudas,
16/06/2016 #7


ruben90 dijo: Ver Mensaje
Hola dosekk, sabes cómo funciona el 74HS164? Te invito a ver este video, está en inglés pero resolverá algunas de tus dudas,
https://m.youtube.com/watch?v=h84cDS7_9Pg
ah ya amigo gracias ya vi mi error, ademas de que estaba compilando otro programa anterior que había hecho en el mikroC, no se porque, no se cerro por completo el anterior programa y por eso no veía cambios en el Proteus! xD
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.