TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Moyin en 01 de Marzo de 2007, 23:46:19

Título: Contador LCD MKB
Publicado por: Moyin en 01 de Marzo de 2007, 23:46:19
Hola foristas, despues de recibir de ustedes mucho contribuyo con algo en este foro, basandome en algunos ejemplos y empleando algo de logica me atrevo a subir un ejemplo de un contador en LCD con el PIC16F84 empleando el MKB, no es la gran cosa pero sera de ayuda a los que como yo en un principio tomaban las referencias de este foro para dar sus primeros pasos, gracias a Navasimo, Jovani, Paola y todods aquellos que nos han ayudado a los que vamos atras.
 Bueno menos rollo y mas accion, aqui les dejo el programa:


program Cont999LCD
 'PIC16F84
' El siguiente programa realiza un conteo del 0 al 999 en el LCD
' Controlado por el puertoB
' RB1 = RS (Register Select)
' RB2 = RW
' RB3 = E (Enable)
' RB4 = D4 (Data Line Number 4)
' RB5 = D5 (Data Line Number 5)
' RB6 = D6 (Data Line Number 6)
' RB7 = D7 (Data Line Number 7)
' LCD configurado a 4 bits


dim Conteo as char[3]       ' Esta variable contendrá el valor
                            ' del conteo actual pero en la forma de caracteres
dim Conta as byte

main:
'******************************************************************************
' INICIALIZACIÓN DE PUERTOS Y PERIFÉRICOS
'******************************************************************************

     TRISB = 0     'Configura PORTB todo como salida
     TRISA = 3     'RA0 Y RA1 COMO ENTRADAS

     Lcd_Config(PORTB,7,6,5,4,PORTB,1,2,3)'Configura PORTB para LCD
     Lcd_Out(1,1,"Num     Vueltas")       ' Escribe mensaje en fila 1 columna 1
     Lcd_Out(2,1,"Contador 0_999")       ' Escribe mensaje fila 2 columna7
     Lcd_Cmd(Lcd_Cursor_Off)              ' Apaga el cursor



     conta=0              'Inicio Cuenta a cero
checo:
  if PORTA.1=0 then       'Si el boton esta presionado=0
      delay_ms(100)       'Espera 100 ms para estabilizar
      Conta=0              'Resetea entonces el contador
  else
      if PORTA.0=1 then   'Mira boton libre
         delay_ms(100)    'Espera 100ms para evitar rebote mecanico
        if PORTA.0=0 then 'Presiona boton, activo en flanco de bajada
           Conta=conta+1  'Incrementa cuenta en "1"
        if Conta=999 then 'SI conta es 999 vuelve a empezar
           Conta=0        'Conta vale 0 inicio de conteo
        end if
        end if
     end if
  end if



'******************************************************************************
' Esta parte transforma el dato "conta" a cadena de caracteres
'******************************************************************************


        ByteToStr(conta,CONTEO) 'Transforma conta en "conteo" a cadena de caracteres
        Lcd_Out(1,5,CONTEO)     ' Escribe el valor en forma de texto de la
                                ' variable CONTEO
        Delay_ms(100)        ' Espera un momento para continuar con el
                                ' conteo
        goto checo              'Vuelvo a mirar estado de botones

     end.


Un saludo a todos :-/
Título: Re: Contador LCD MKB
Publicado por: navaismo en 02 de Marzo de 2007, 15:09:31
Gracias Moyin por compartir con nosotros el fruto de tu esfuerzo sigue asi.

Saludos
Título: Re: Contador LCD MKB
Publicado por: Moyin en 03 de Marzo de 2007, 03:31:30
Gracias Max, y con lo que me orientaron les incluyo tambien la simulacion en proteus:


                                      (http://img453.imageshack.us/img453/2349/contaia4.jpg)