SEMÁFORO CON PIC16F84A – TRES


Buen en esta ocasión comenzaremos con algunas prácticas utilizando el MicroCode Studio esto para programación en BASIC para nuestros Microcontroladores PIC, en esta ocasión utilizando el ya conocido PIC16F84A.
El circuito realiza la simulación de un semáforo, con pocas instrucciones y pocos elementos.
A continuación se muestra el diagrama correspondiente al semáforo, el cual tiene su oscilador externo y es un cristal de cuarzo con sus debidos capacitores, una resistencia a Vcc de 10KΩ y los LEDs (2 Rojos, 2 Verdes y 2 Amarillos) con sus debidas resistencias de 330Ω. El circuito se alimenta a 5 volts.

A continuación muestro el código para un semáforo sencillo con muy pocos elementos y muy fácil de armar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
define OSC 4
TRISB=0
PORTB=0
VECES var Byte
LED_VERDE_1      var PORTB.0
LED_AMARILLO_1   var PORTB.1
LED_ROJO_1       var PORTB.2
LED_VERDE_2      var PORTB.3
LED_AMARILLO_2   var PORTB.4
LED_ROJO_2       var PORTB.5
SEMAFORO:
high LED_ROJO_2: high LED_VERDE_1
pause 9000
low LED_VERDE_1
GOSUB BLINK_LED_AMARILLO_1
low LED_ROJO_2: high LED_VERDE_2: high LED_ROJO_1
pause 9000
low LED_VERDE_2
GOSUB BLINK_LED_AMARILLO_2
low LED_ROJO_1
goto semaforo
BLINK_LED_AMARILLO_1:
FOR VECES = 0 TO 10
high LED_AMARILLO_1
pause 300
low LED_AMARILLO_1
pause 300
NEXT VECES
RETURN
BLINK_LED_AMARILLO_2:
FOR VECES = 0 TO 10
high LED_AMARILLO_2
pause 300
low LED_AMARILLO_2
pause 300
NEXT VECES
RETURN
end
Ahora la explicación del código:
En esta publicación se trato de mejorar la presentación de firmware uso de nombres más específicos, nuevas instrucciones de código, uso de subrutinas, entre otros puntos que veremos a continuación.
  • Las primeras líneas de código se utiliza lo que ya se venía manejando el oscilador, puertos de salida, los nombres a cada pin del puerto B de nuestro PIC.
  • Ahora se cuenta con una variable tipo BYTE llamada VECES que más adelante se utilizara para establecer la cantidad de ocasiones que encenderán y apagan los LEDs amarillos.
  • Se tiene la etiqueta SEMAFORO que indica el inicio nuestra rutina principal y en el cual se encuentra que pines se deben de activar con su debido tiempo para que se tenga visualmente en los LEDs una simulación de un par de semáforos. Básicamente se inicia encendiendo el LED verde del primer semáforo y el LED rojo del segundo, mientras el LED rojo permanece activo el otro semáforo enciende y apaga el LED amarillo, después enciende el LED verde del segundo semáforo y el primero pasa rojo y se repite bueno ya sabrán ustedes el comportamiento de los semáforos. Dentro de esta rutina nos encontramos con las siguientes instrucciones GOSUB BLINK_LED_AMARILLO1 y GOSUB BLINK_LED_AMARILLO2 que no son más que saltos a otras subrutinas.
  • Después se tienes dos subrutinas que son casi iguales, la diferencia entre ellos es el nombre de cada una y el pin o LED que activan, en el primer caso activa el LED correspondiente a un primer semáforo y por supuesto la otra activa el LED del segundo semáforo. Dentro de estas se encuentra unos ciclos FOR que son los encargados de indicar cuantas veces se repetirá el encendido y apagado de los LEDs amarillos, al terminar dicha cantidad se utiliza la instrucción RETURN para regresar al lugar de donde se ha llamado la subrutina.
  • Por último tenemos el fin de nuestro programa.
  • http://electronicayrobotica.wordpress.com/2012/12/29/semaforo-con-pic16f84a-tres/
ESTE ARTICULO ES SOLO INFORMATIVO Y TIENEN QUE CONSULTARLO Y VERLO EN SU WEB ORIGINAL.
© RESERVADOS TODOS LOS DERECHOS DEL AUTOR

ATENCION:

 
AMIG@S, NO DEJEIS DE VISITAR NUESTRA SECCION DE BIBLIOTECA ELECTRONICA Y LAS APP`s PARA ANDROID ACONSEJADAS Y PODRAS DESCARGAR Y VER LO MAS INTERESANTE Y CON LOS TEMAS MAS VARIADOS -
Ir arriba