Académique Documents
Professionnel Documents
Culture Documents
PROFESOR:
ALUMNOS:
ING. SISTEMA
MEDINA, EDWARD
C.I:19.226.046
RIGAL, FRANK
BARRIENTOS , TONY
C.I:18.244.398
Contenido
Introduccin .......................................................................................................................................2
Funcionamiento ..........................................................................................................................3
Microcontrolador ...............................................................................................................................4
Caractersticas ....................................................................................................................................5
Arquitectura Harvard .....................................................................................................................6
Comportamiento de los semforos sin que ocurran llamados peatonales. ...................................8
Comportamiento de los semforos cuando ocurran llamados peatonales. ...................................8
ccs compiler (microcontrolador pic en c) .....................................................................................11
Explicacin del cdigo ..................................................................................................................13
Explicacin de las instrucciones enumeradas ...............................................................................18
Introduccin
El presente manual tcnico tiene como finalidad explicar cmo se elabora o se disea
electrnicamente un semforo vehicular, como es su comportamiento sin llamados
peatonales, como es su comportamiento ante llamados peatonales, que tipo de integrado se
utiliza para la construccin electrnica del semforo. Es importante aclarar que en este
informe se explica el diseo de un semforo electrnico a escala, para una maqueta no para
implementarlo en la realidad del trnsito vehicular, ya que para implementarlo en la
realidad habra que acoplar otra circuitera electrnica para luego acoplarla con la etapa de
potencia. Este manual se enfocara ms en explicar la parte de programacin del integrado
especficamente llamado microcontrolador, se explicara el algoritmo utilizado y el cdigo
utilizado para elaborar el programa del semforo. Tambin se explicara que leguaje de
programacin se utiliz para la elaboracin de dicho programa y que tipo de hardware se
utiliz, en este caso se utiliz un microcontrolador, adems ase explicara qu tipo de
microcontrolador se utiliz, a que marca pertenece o que compaa lo elabora. Adems se
explicara la circuitera electrnica para su elaboracin, que componentes electrnicos se
utilizaron adems del microcontrolador.
Los semforos, tambin conocido tcnicamente como seales de control de trfico, son
dispositivos de seales que se sitan en intersecciones viales y otros lugares para regular el
trfico, y por ende, el trnsito peatonal.
El auge de las seales de trfico est ligado al rpido aumento del trfico automovilstico.
El trfico urbano brot enormemente despus de que Henry Ford introdujo el modelo T en
1908 y lo comenz a producir en masa a partir de 1913. Por primera vez, los coches eran
baratos y lo suficientemente confiable para los desplazamientos en masa.
Funcionamiento
El tipo ms frecuente tiene tres luces de colores:
Cuando pasa de verde a rojo primero hay una transicin donde se enciende el amarillo,
cuando pasa de rojo a verde no hay una transicin pasa directo.
Microcontrolador
Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado programable,
capaz de ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques
funcionales, los cuales cumplen una tarea especfica. Un microcontrolador incluye en su
interior las tres principales unidades funcionales de una computadora: unidad central de
procesamiento, memoria y perifricos de entrada/salida.
Es un dispositivo altamente integrado de arquitectura Harvard destinado la automatizacin
y microcontrol, el cual se distinguen tres tipos de memoria de memoria: RAM (voltil),
ROM, EEPROM Y FLASH.
Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad
de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o
microvatios). Por lo general, tendr la capacidad para mantener la funcionalidad a la espera
de un evento como pulsar un botn o de otra interrupcin, el consumo de energa durante el
estado de reposo (reloj de la CPU y los perifricos de la mayora) puede ser slo nano
vatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batera de
larga duracin. Otros microcontroladores pueden servir para roles de rendimiento crtico,
donde sea necesario actuar ms como un procesador digital de seal (DSP), con
velocidades de reloj y consumo de energa ms altos.
Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que
pueda controlar algn proceso es necesario generar o crear y luego grabar en la EEPROM o
equivalente del microcontrolador algn programa, el cual puede ser escrito en lenguaje
ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa
pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema
numrico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador
cuando ste es alimentado con el voltaje adecuado y asociado a dispositivos analgicos y
discretos para su funcionamiento.
Caractersticas
Esquema de un microcontrolador. En esta figura, se ve el microcontrolador metido dentro
de un encapsulado de circuito integrado, con su procesador (CPU), Buses, Memoria,
perifricos, y puertos de entrada /salida. Fuera del encapsulado se ubican otros circuitos
para completar perifricos internos y dispositivos que pueden conectarse a los pines de
entrada/salida. Tambin se conectaran a los pines del encapsulado la alimentacin, masa,
circuito de completamiento del oscilador y otros circuitos necesarios para que el
microcontrolador pueda trabajar.
Los microcontroladores estn diseados para reducir el costo econmico y el consumo de energa
de un sistema en particular. Por eso el tamao de la unidad central de procesamiento, la cantidad de
memoria y los perifricos incluidos dependern de la aplicacin. El control de un electrodomstico
sencillo como una batidora utilizar un procesador muy pequeo (4 u 8 bits) porque sustituir a un
autmata finito. En cambio, un reproductor de msica y/o vdeo digital (MP3 o MP4) requerir de
un procesador de 32 bits o de 64 bits y de uno o ms cdecs de seal digital (audio y/o vdeo). El
control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un
microcontrolador de 16 bits, al igual que el sistema de control electrnico del motor en un
automvil.
Los microcontroladores representan la inmensa mayora de los chips de computadoras vendidos,
sobre un 50% son controladores "simples" y el restante corresponde a DSP ms especializados.
Mientras se pueden tener uno o dos microprocesadores de propsito general en casa (Ud. est
usando uno para esto), usted tiene distribuidos seguramente entre los electrodomsticos de su hogar
una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo
electrnico como automviles, lavadoras, hornos microondas, telfonos, etc.
Arquitectura Harvard
La otra variante es la arquitectura Harvard, y por excelencia la utilizada en
supercomputadoras, en los microcontroladores, y sistemas integrados en general. En este
caso, adems de la memoria, el procesador tiene los buses segregados, de modo que cada
tipo de memoria tiene un bus de datos, uno de direcciones y uno de control.
La ventaja fundamental de esta arquitectura es que permite adecuar el tamao de los buses
a las caractersticas de cada tipo de memoria; adems, el procesador puede acceder a cada
una de ellas de forma simultnea, lo que se traduce en un aumento significativo de la
velocidad de procesamiento. Tpicamente los sistemas con esta arquitectura pueden ser dos
veces ms rpidos que sistemas similares con arquitectura Von Neumann.
La desventaja est en que consume muchas lneas de E/S del procesador; por lo que en
sistemas donde el procesador est ubicado en su propio encapsulado, solo se utiliza en
supercomputadoras. Sin embargo, en los microcontroladores y otros sistemas integrados,
donde usualmente la memoria de datos y programas comparten el mismo encapsulado que
el procesador, este inconveniente deja de ser un problema serio y es por ello que
encontramos la arquitectura Harvard en la mayora de los microcontroladores.
Por eso es importante recordar que un microcontrolador se puede configurar de diferentes
maneras, siempre y cuando se respete el tamao de memoria que este requiera para su
correcto funcionamiento.
1
2
Peat
on 1
Peat
on 2
0
0
0
0
0
0
0
0
Semaforo 1
Luz
Luz
derech Cruc
a
e
0
0
0
0
1
0
1
1
Rojo
Verde
Sem
aforo
1
Sem
aforo
2
Sem
aforo
3
Sem
aforo
4
Semaforo 2
Luz
Luz
derec Cru
ha
ce
1
0
1
1
0
0
0
0
PIN_ PIN_B
B0
2
PIN_ PIN_B
B4
6
PIN_
B5
PIN_
B7
PIN_ PIN_B
B0
2
PIN_
B1
PIN_
B3
PIN_ PIN_B
B4
6
PIN_
B5
PIN_
B7
Semaforo 3
Luz
Luz
derec Cru
ha
ce
0
0
0
0
1
0
1
1
Semaforo 4
Luz
Luz
derec Cru
ha
ce
1
0
1
1
0
0
0
0
Tiem
po
45
45
45
45
Esta tabla realmente no es una tabla de la verdad, es importante mencionar que sirve de
gua para la secuencia de encendido de luces, el encendido de la luz roja representa el 0 y el
7
calle o avenida los peatones del lado horizontal. Es de suponer que en el cambio entre la
condicin 2 a la 3 va haber un intervalo de transicin de 5 segundos donde se van
encender las luces amarillas del semforo 2 y 4 para que posteriormente el semforo 2 y 4
pasen a rojo encendido. En los terceros t segundos cuando es apretado cualquiera de los
dos botones de llamado peatonal del lado vertical se recorta el tiempo de encendido a la
mitad tiempo que le corresponda a las luces verdes tanto de derecha como de cruce que
pertenecen al semforo 1 y semforo 3; es decir que si en el tercer tiempo hubo un llamado
peatonal la condicin nmero 3 que duraba 45 segundos se recorta a 23 segundos, y a la
vez tambin se recorta tiempo de la condicin nmero 4 que tambin durara 23 segundos
ms, para que pase rpidamente retorne a la condicin nmero 1 y puedan cruzar la calle o
avenida los peatones del lado vertical. En los cuartos t segundos cuando es apretado
cualquiera de los dos botones de llamado peatonal del lado vertical se recorta el tiempo
solamente de la condicin nmero 4, para que pase rpidamente retorne a la condicin
nmero 1 y puedan cruzar la calle o avenida los peatones del lado vertical. Es de suponer
que en el cambio entre la condicin nmero 4 a la numero 1 va haber un intervalo de
transicin de 5 segundos donde van encender las luces amarillas del semforo 1 y 3 para
que posteriormente el semforo 1 y semforo 3 pasen a rojo encendido.
Condicin nmero 1
Se encuentran la luz roja encendida del semforo 1 y 3. En el semforo 2 y 4 solamente
estn encendidas las luces de verde derecho.
Condicin nmero 2
Se encuentran la luz roja encendida del semforo 1 y 3. En el semforo 2 y 4, estn
encendidas las luces de verde derecho y verde de cruce.
Condicin nmero 3
Se encuentran la luz roja encendida del semforo 2 y 4. En el semforo 1 y 3 solamente
estn encendidas las luces de verde derecho.
Condicin nmero 4
Se encuentran la luz roja encendida del semforo 2 y 4. En el semforo 1 y 3, estn
encendidas las luces de verde derecho y verde de cruce.
1
2
Peat
on 1
Peat
on 2
0
0
1
1
1
1
0
0
Semaforo 1
Luz
Luz
derech Cruc
a
e
0
0
0
0
1
0
1
1
Semaforo 2
Luz
Luz
derec Cru
ha
ce
1
0
1
1
0
0
0
0
Semaforo 3
Luz
Luz
derec Cru
ha
ce
0
0
0
0
1
0
1
1
Semaforo 4
Luz
Luz
derec Cru
ha
ce
1
0
1
1
0
0
0
0
Tiem
po
23
23
23
23
9
Rojo
Sem
aforo
1
Sem
aforo
2
Sem
aforo
3
Sem
aforo
4
Verde
PIN_ PIN_B
B0
2
PIN_ PIN_B
B4
6
PIN_
B5
PIN_
B7
PIN_ PIN_B
B0
2
PIN_
B1
PIN_
B3
PIN_ PIN_B
B4
6
PIN_
B5
PIN_
B7
10
11
12
13
set_tris_a(0x00);
set_tris_b(0x00)//con esta instruccin se declara como salida los pines B0 al B7 del registro
//B o puerto B
port_a=0;
port_b=0;//con esta instruccin se recalca como salida los pines B0 al B7 del registro B O
//puerto b en caso de que haya un reinicio en el microcontrolador PIC
bandera=0;//con esta instruccin se inicializa la bandera igual a cero
banderb=0;//con esta instruccin se inicializa la bandera igual a cero
delay_ms(775);//
1)
2)
14
contador=contador+23;//
3)
bandera=1;//
4)
banderb=1;//
5)
};//
6)
};//
7)
contador=0;//
8)
bandera=0;//
9)
port_a=0;//
10)
11)
while (contador<45){ //
12)
contador=contador+1;//
13)
delay_ms(775);//
If ((input (pin_A2)
(bandera==0)){//15)
14)
==1
||
input(pin_A3)==1
||
banderb==1
contador=contador+23;//
17)
banderb=1;//
18)
};//
&&
16)
bandera=1;//
};//
19)
20)
contador=0;//
21)
bandera=0;//
22)
banderb=0;//
23)
24)
15
output_low(PIN_B7);//
25)
output_high(PIN_B5);//
26)
output_low(PIN_B1);//
27)
while (contador<5){//
28)
contador=contador+1;//
29)
delay_ms(775);//
};//
30)
31)
contador=0;//
32)
output_low(PIN_B5);//
33)
output_low(PIN_B0);//
34)
output_high(PIN_B2);//
35)
output_high(PIN_B4);//
36)
output_low(PIN_B7);//
37)
//;
while (contador<45){//
38)
contador=contador+1;//
39)
delay_ms(775);//
40)
42)
bandera=1;//
43)
banderb=1;//
44)
};//
};//
41)
45)
46)
16
contador=0;//
47)
port_a=0;//
48)
bandera=0;//
49)
50)
while (contador<45){//
51)
contador=contador+1;//
52)
delay_ms(775);//
53)
55)
bandera=1;//
56)
banderb=1;//
57)
}//
58)
};//
59)
contador=0;//
60)
bandera=0;//
61)
banderb=0;//
62)
63)
output_low(PIN_B3);//
64)
output_high(PIN_B1);//
65)
17
while (contador<5){//
66)
contador=contador+1;//
67)
delay_ms(775);//
68)
};//
69)
contador=0;//
70)
} // fin while
71)
72)
se
declara
para
que
contador acumulativo
funcione
el
4) esta instruccin se utiliza para que se levante la bandera: bandera=1 para que junto con
banderb=1 que se ejecuta en la lnea enumerada como 5 en este informe, para que
posteriormente se ejecute una sola l vez contador=contador+23.
5) esta instruccin se utiliza que se levante la bandera llamada banderb=1 y que junto con
la anterior bandera impiden que se ejecute una segunda vez el contador=contador+23
6) la llave que est en la instruccin enumerada como 6, indica el cierre de la declaracin
de control if ((input (pin_A2) ==1||input (pin_A3)==1)&&(bandera=0)) {.
18
22) con esta instruccin se coloca o carga la bandera llamada bandera con cero para que
pueda ser utilizada ms adelant en el cdigo
23) con esta instruccin se coloca o carga la bandera llamada banderb con cero para que
pueda ser utilizada ms adelant en el cdigo
24) en esta lnea de cdigo se coloca el PIN_B6 en bajo, es decir se apaga el PIN_B6
porque el semforo 2 y 4, va entrar en transicin entre el cambio de la condicin numero 2
a la numero3; es decir se va encender prximamente el rojo del semforo 2 y 4. Se est
apagando el verde derecho del semforo 2 y 4.
25) en esta lnea de cdigo se coloca el PIN_B7 en bajo, es decir se apaga el PIN_B7
porque el semforo 2 y 4, va entrar en transicin entre el cambio de la condicin numero 2
a la numero3; es decir se va encender prximamente el rojo del semforo 2 y 4. Se est
apagando el verde de cruce del semforo 2 y 4.
26) en esta lnea de cdigo se coloca el pin_B5 en alto, es decir se enciende el pin_B5
porque el semforo 2 y 4, va entrar en transicin entre el cambio de la condicin numero 2
a la numero3; es decir se va encender prximamente el rojo del semforo 2 y 4. Se est
encendiendo el amarillo del semforo 2 y 4.
27) esta lnea de cdigo est manteniendo el pin b1 en bajo o en estado de apagado porque
representa el amarillo del semforo 1 y 3, al cual no le corresponde estar encendido
todava.
28) esta instruccin se coloc para fijar el contador en 5, y ejecute el delay 5 veces, ya que
representa la transicin entre el cambio de la condicin nmero 2 a la numero 3 del
semforo 2 y 4; es decir representa al cambio de encendido luz verde derecha y cruce al
encendido de la luz roja del semforo 2 y 4. Significa mientras contador sea menor a 5 se
van ejecutar todas la lneas que estn entre llaves.
29) esta lnea de cdigo representa el contador acumulativo de la transicin de la condicin
nmero 2 a la condicin nmero 3 del semforo 2 y 4.
30) este delay est puesto para hacer un detenido especificado de 775 ms
31) esta llave representa el cierre del while de la lnea 28
32) en esta lnea de cdigo se igualo variable contador a cero para que pueda ser utilizada
como contador otra vez.
33) esta instruccin pone al pin_B5 en estado de apagado o en bajo porque representa al
amarillo del semforo 2 y 4, ya que los semforos 2y 4 entraron a la condicin nmero 3
donde el rojo del semforo 2 y 4 deben estar encendidos.
20
34) esta instruccin pone en bajo o en estado de apagado el pin_B0 porque representa a la
luz roja del semforo 1y3, adems se est en la condicin numero 3 donde nicamente
debe estar encendidas la luz verde derecha del semforo 1 y 3.
35) en esta parte del cdigo se pone en alto o en estado de encendido el pin_B2 porque
representa la luz verde derecho del semforo 1 y 3.
36)
37)
38)
39)
40)
41)
42)
43)
44)
45)
46)
47)
48)
49)
51)
52)
53)
54)
55)
56)
57)
58)
59) esta llave se coloca par indicar el cierre de la declaracin de control while de la lnea
enumera como 51 en este cdigo.
21
60) en esta lnea de cdigo se igualo variable contador a cero para que pueda ser utilizada
como contador otra vez.
61) en esta lnea de cdigo se iguala a cero la bandera llamada bandera, ya que ser
utilizada otra vez en la primera condicin llamado peatonal y en la segunda condicin de
llamado peatonal.
62) en esta lnea de cdigo se iguala a cero la bandera llamada banderb, ya que ser
utilizada otra vez en la primera condicin llamado peatonal y en la segunda condicin de
llamado peatonal.
63) esta instruccin pone en bajo el pin_b2 o en estado de apagado el pin_b2, ya que el
semforo 1 y semforo 3 va entrar en la transicin entre el cambio de la condicin numero
4 a la condicin a la condicin nmero 1, por lo tanto se apaga el verde derecho del
semforo 1 como el 3.
64) esta instruccin pone en bajo el pin_b3 o en estado de apagado el pin_b3, ya que el
semforo 1 y semforo 3 va entrar en la transicin entre el cambio de la condicin numero
4 a la condicin a la condicin nmero 1, por lo tanto se apaga el verde de cruce del
semforo 1 como el 3.
65) esta instruccin esta puesta para que este en alto pin_B2; es decir en estado de
encendido, ya que en esta parte del cdigo el pin_B2 representa a el amarillo del semforo
1 y 3. Porque el semforo 1 y 3 va pasar de la condicin numero 4 a la numero 1.
66) esta instruccin se coloc para fijar el contador en 5, y ejecute el delay 5 veces, ya que
representa la transicin entre el cambio de la condicin nmero 4 a la numero 1 del
semforo 1 y 3; es decir representa al cambio de encendido luz verde derecha y cruce al
encendido de la luz roja del semforo 1 y 3. Significa mientras contador sea menor a 5 se
van ejecutar todas la lneas que estn entre llaves.
67) este contador esta puesto para hacer el conteo de 5 veces que va durar el delay
ejecutndose,
68) este delay est puesto para hacer un detenido especificado de 775 ms.
69) esta llave indica el cierre de la declaracin de control while puesta en la lnea 66.
70) en esta parte del cdigo se coloca el contador=0 para que cuando retorne de nuevo al
primer contador empiece en cero.
71) esta llave indica el fin de la declaracin de control while (true).
72) est llave indica el fin de la funcin void main.
22
23
24
Mascara de componentes:
26
27