PICELECTRONICA
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Tutorial PROTON Manejo de Led y Display

Ir abajo

Tutorial  PROTON Manejo de Led y Display Empty Tutorial PROTON Manejo de Led y Display

Mensaje  Electrobicho Vie Abr 20, 2012 9:58 pm

En ocasiones es necesario saber la temperatura ambiente que hay en una determinada área y casi siempre se deja de trabajo en los cursos de microcontroladores, por ello expongo aquí un termómetro simple con un sensor LM35 y un pic 16F88, el cual creo que es de los mejores o el mejor de 18 terminales, pues bien, manos a la obra, para empezar hay que mencionar que el LM35 incrementa en 1 mV por cada grado centrigrado, de ahí la conversión que se muestra en el código.
Como visto que este PIC es muy poderoso!! por el tamaño y prestaciones que posee asi como también a ganado popularidad entre otros, les dejo esta aplicación, como se dan cuenta usa un comando llamado ANSEL, el cual indica, según su hoja de datos el pin que se usará, sin mas aquí es código.

Código:
Device = 16F88

Xtal = 4

Declare Adin_Tad = FRC

Declare Adin_Res 10            ‘ resolucin de 10 bits

Declare Adin_Stime 50          ‘ tiempo de muestreo 50ms

Declare LCD_Type 0 ‘ Tipo LCD Alpha numérico

Declare LCD_DTPin PORTB.4 ‘ El control B4,B5,B6,B7

Declare LCD_RSPin PORTB.2 ‘ RS pin  B2

Declare LCD_ENPin PORTB.3 ‘ E pin  B3

Declare LCD_Interface 4  ‘ Interface modo 4 bit

                               

ANSEL  = 1                      ‘ ADC en RA0

ADCON1 = %10000000

TRISA.0= 1                      ‘ RA0 de entrada

 

Dim Vadc As Word

Dim Temp As Float

 

Inicio:

Vadc = ADIn 0                ‘ Obtener lectura

    Temp = Vadc * 500/1024      ‘ Calcular lectura 1°C=1mV

    Print At 1,1,”Temp= “,Dec2 Temp

DelayMS 200

GoTo Inicio

End
Tutorial  PROTON Manejo de Led y Display Nueva-imagen44
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 36
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Tutorial  PROTON Manejo de Led y Display Empty Ejemplos con LED

Mensaje  Electrobicho Lun Abr 23, 2012 11:20 am

Continuando con los ejemplos bàsicos hoy les traigo algunos con LED, display y otros, para este caso se utiliza el pic 16F84A.
Código:
Device = 16F84A ‘PIC a usar

Xtal 4            ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

PORTB=0        ‘Se limpia el puerto

 

INICIO:

PORTB.0=1  ‘Encender bit menos significativo

    DelayMS 200

PORTB.0=0    ‘Apagar bit menos significativo

    DelayMS 200

GoTo INICIO

End
Tutorial  PROTON Manejo de Led y Display Nueva-imagen26

Ahora se usara el puerto b para lo cual se usara un ciclo de repeticiòn.

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

PORTB=0        ‘Se limpia el puerto

Dim i As Byte  ‘Variable para usar el ciclo for

 

INICIO:

For i=0 To 10  ‘inicia el ciclo repetitivo 0 a 10

        PORTB=0

DelayMS 200

PORTB=255

DelayMS 200

Next i          ‘Cierra el ciclo

GoTo INICIO        ‘Ir a inicio para hacerlo infinito

End

Tutorial  PROTON Manejo de Led y Display Nueva-imagen27

Ahora un ejemplo básico de botones conectados al puerto A, en este ejemplo se ve una nueva instrucción la condición IF y ENDIF.



Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

TRISA=15        ‘Todo el puerto A como entrada

Dim I As Byte  ‘Variable para usar el ciclo for

Symbol LED1 = PORTB.0  ‘LED1 va a ser PORTB.0 

Symbol LED2 = PORTB.1  ‘LED1 va a ser PORTB.1

Symbol BOTON1 = PORTA.0  ‘BOTON1 va a ser PORTB.0 

Symbol BOTON2 = PORTA.1  ‘BOTON1 va a ser PORTB.1

PORTB=0

INICIO:

If BOTON1 = 0 Then      ‘Se usarán condiciones IF para seleccionar

        LED1 = 1

Else                ‘Cuando se presiona el boton se apaga el led

            LED1=0

EndIf     

    If BOTON2 = 0 Then

        LED2 = 1

Else

            LED2=0

EndIf

GoTo INICIO        ‘Ir a inicio para hacerlo infinito

End

Tutorial  PROTON Manejo de Led y Display Nueva-imagen28
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 36
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Tutorial  PROTON Manejo de Led y Display Empty Ejemplos con display de siete segmentos

Mensaje  Electrobicho Lun Abr 23, 2012 11:41 am

Los DISPLAY de 7 segmentos son muy útiles para representar números, frases y hasta símbolos, por lo cual se cree importante utilizarlos, para ello les dejo una serie de ejemplos básicos que fácilmente pueden crecer con su imaginación.

Primero un contador usando el decodificador, para este ejemplo se utilizó un Display cátodo común y su respectivo CI 7448. La instrucción LookUpL toma un valor de acuerdo al ciclo for que se muestra y lo escribe en PORTB

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

Dim i As Byte  ‘Variable para usar el ciclo for

PORTB=0

INICIO:

For i = 0 To 9

PORTB = LookUpL i,[0,1,2,3,4,5,6,7,8,9]

DelayMS 200

Next i

GoTo INICIO        ‘Ir a inicio para hacerlo infinito

End
Tutorial  PROTON Manejo de Led y Display Nueva-imagen29

Para hacer un contador ascendente con un botón se platea el siguiente código con las instrucciones antes vistas.

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

TRISA=15        ‘Todo el puerto A como entrada

Dim CONTADOR As Byte  ‘Variable para usar el ciclo for

Symbol BOTON1 = PORTA.0  ‘BOTON1 va a ser PORTB.0

PORTB=0

INICIO:

If BOTON1 = 1 Then      ‘Se usarán condiciones IF para seleccionar

        DelayMS 100

CONTADOR = CONTADOR + 1

If CONTADOR > 9 Then CONTADOR=0

EndIf     

    PORTB=CONTADOR

GoTo INICIO        ‘Ir a inicio para hacerlo infinito

End

Tutorial  PROTON Manejo de Led y Display Nueva-imagen30

Ya que estamos en esto de los contadores también se agrega un ascendente/descendente, con dos botones para el control sobre el puerto A.

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

TRISA=15        ‘Todo el puerto A como entrada

Dim CONTADOR As Byte  ‘Variable para usar el ciclo for

Symbol BOTON1 = PORTA.0  ‘BOTON1 va a ser PORTB.0

Symbol BOTON2 = PORTA.1  ‘BOTON1 va a ser PORTB.1

PORTB=0

INICIO:

If BOTON1 = 1 Then      ‘Se usarán condiciones IF para seleccionar

        DelayMS 100

CONTADOR = CONTADOR + 1

If CONTADOR > 9 Then CONTADOR=0

EndIf     

    If BOTON2 = 1 Then      ‘Se usarán condiciones IF para seleccionar

        DelayMS 100

CONTADOR = CONTADOR – 1

If CONTADOR < 0 Then CONTADOR = 9

EndIf

    PORTB=CONTADOR

GoTo INICIO        ‘Ir a inicio para hacerlo infinito

End
Tutorial  PROTON Manejo de Led y Display Nueva-imagen31

Ya se estudiaron ejemplos con decodificador de BCD, pero ahora se usará un display y para obtener los valores se usará un software ” Display Char” , solo basta con seleccionar el segmento a utilizar y este mandara un valor decimal a una caja de texto, según sea el display a usar, cuenta con datos de salida para Ánodo y Cátodo común, en el ejemplo que se muestra es para un display cátodo común.

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

Dim i As Byte  ‘Variable para usar el ciclo for

PORTB=0

INICIO:

For i = 0 To 9

PORTB = LookUpL i,[63,6,91,79,102,109,125,7,127,103] 

        DelayMS 200                                       

    Next i

GoTo INICIO        ‘Ir a inicio para hacerlo infinito

End
Tutorial  PROTON Manejo de Led y Display Nueva-imagen33

Tutorial  PROTON Manejo de Led y Display Nueva-imagen32
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 36
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Tutorial  PROTON Manejo de Led y Display Empty Multiplexado de display de siete segmentos

Mensaje  Electrobicho Lun Abr 23, 2012 12:14 pm

Ahora un ejemplo de multiplexado de display, 4 tipo cátodo común, con un decodificador, en la imagen no se ve bien debido al barrido que realiza el PIC para que parezca que esta fijo pero en realidad se mueve a milisegundos por lo cual es imposible ver por la vista humana, para ello se usa una nueva instrucción DIG la cual toma el valor de un dígito y lo muestra en el puerto o variable que se disponga, por ejemplo:

si se tiene 1234, entonces dig 0=4, dig 1=3, dig 2=2 y dig 3=1

ahora les dejo el código para que comenten, es mismo contador de ascendente/descendente pero hasta 1000.

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

TRISA=15        ‘Todo el puerto A como entrada

Dim CONTADOR As Word 

Symbol BOTON1 = PORTA.0  ‘BOTON1 va a ser PORTB.0

Symbol BOTON2 = PORTA.1  ‘BOTON1 va a ser PORTB.1

Symbol Q3 = PORTB.4

Symbol Q2 = PORTB.5

Symbol Q1 = PORTB.6

Symbol Q0 = PORTB.7

Dim UNIDAD As Byte

Dim DECENA As Byte

Dim CENTENA As Byte

Dim MILLAR As Byte

 

PORTB=0

INICIO:

If BOTON1 = 1 Then   

        DelayMS 100

CONTADOR = CONTADOR + 1

If CONTADOR >9999  Then CONTADOR=0

EndIf     

    If BOTON2 = 1 Then   

        DelayMS 100

CONTADOR = CONTADOR – 1

If CONTADOR < 0 Then CONTADOR = 9999

EndIf

    DelayMS 5

PORTB= 16 + Dig 0, CONTADOR

DelayMS 5

PORTB= 32 + Dig 1, CONTADOR

DelayMS 5

PORTB= 64 + Dig 1, CONTADOR

DelayMS 5

PORTB= 128 + Dig 2, CONTADOR

DelayMS 5

PORTB=0

DelayMS 5

GoTo INICIO

End

Tutorial  PROTON Manejo de Led y Display Nueva-imagen34

Un ejemplo mas, este es aun mas sencillo que el anterior, se trata de formar la palabra “HOLA” en 4 display, para lo cual necesitaresmos ayuda del “Display Char” (ver descargas) formaremos las letras correspondientes y tomaremos los valores para mandarlos al puerto B, ya que los transistores que activarán los display están en el A.

Código:
Device = 16F84A ‘PIC a usar

Xtal 4          ‘Frecuencia de reloj

TRISB=0        ‘Puerto B como salida

TRISA=0

PORTB=0

PORTA=0

INICIO:

PORTB=118  ‘Letra H

    PORTA=1    ‘Activa su transistor correspondiente

    DelayMS 1

PORTB= 63    ‘Letra O

    PORTA=2

DelayMS 1

PORTB= 56    ‘Letra L

    PORTA=4

DelayMS 1

PORTB= 119  ‘Letra A

    PORTA=8

DelayMS 1

GoTo INICIO

End


Tutorial  PROTON Manejo de Led y Display Nueva-imagen35
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 36
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Tutorial  PROTON Manejo de Led y Display Empty Re: Tutorial PROTON Manejo de Led y Display

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.