Proyecto Microcontroladores Caja De Velas Electricas
12 LUCES POR MEDIO DE UNA MONEDA
Jesús Eduardo Aparicio Blanco Código: 0160832
INTRODUCCIÓN
En este proyecto se propone diseñar un código para encender un bombillo cada vez que halla interrupción externa en el puerto B por cambio de estado en cualquiera de las líneas RB4-RB7. gracias ala activación de RBIF e INTF del registro de interrupción del banco INTCON, luego se contara con el TMR0 un delay de 1seg que llamado 60 veces en una subrutina llamada delay 4 mantendra encendida la bombilla 60 segundos. Y posteriormente se apagara con otra subrutina llamada lámpara donde se verifica el tiempo de encendido de la lámpara.
OBJETIVO GENERAL
Encender un bombillo ubicado enel
puerto c o d cada que se ingrese una
moneda por el puerto B.
.
OBJETIVOS ESPECIFICOS
➢ Familiarización con el software MPLAB para el desarrollo del código fuente del microcontrolador PIC16f873.
➢ Programar el TMR0 como contador de delays para saber cuando apagar las bombillas.
➢ Controlar una interrupción externa
simulada por un push button .
➢realizar el circuito impreso por Eagle y acoplarlo con octotriacs para su correspondiente montaje.
DESARROLLO
La secuencia que se pretende realizar con este programa es:
1.controlar el registro STATUS para
configurar los puertos A,B,C y D.
[pic]
[pic]
2. Controlar el registro option que controla el TMR0.
/RBPU |INTEDG |TOCS |TOSE |PSA |PS2 |PS1 |PS0 ||Bit7 |Bit6 |Bit5 |Bit4 |Bit3 |Bit2 |Bit1 |Bit0 | |
Tabla N°1. Bits del registro OPTION
➢ -PS0 (Prescaler rate selec bits). Bits para seleccionar los valores del prescaler o rango con el que actúa el divisor de frecuencia.
➢ PSA (Prescaler Assignment bit). Asignación del divisor de frecuencia. El Prescaler es compartido entre el TMR0 y el WDT; su asignación es mutuamenteexcluyente ya que solamente a uno de ellos se puede aplicar el divisor de frecuencia a la vez.
-PSA=0, El divisor se asigna al TMR0.
-PSA=1, El divisor se asigna al WDT.
➢ TOSE (TMR0 source edge select bit). Selecciona el flanco de la señal al TMR0.
-TOSE=0, TMR0 se incrementa en cada
flanco ascendente de la señal aplicada
alpin RA4/T0CKI.
-TOSE=1, TMR0 se incrementa en cada flanco descendente de la señal aplicada al pin RA4/T0CKI.
➢ TOCS (TMR0 clock source select bit). Selecciona la fuente de la señal TMR0.
-TOCS=0, Pulsos de reloj interno
Fosc/4. (TMR0 como temporizador).
-TOCS=1, Pulsos de reloj introducidos a través del pin RA4/T0CKI (TMR0 como contador).
➢INTDEG (Interrupt edge select bit). Selector de flanco de la interrupción INT.
-INTEDG=0, Interrupción por flanco
descendente del pin RB0/INT.
-INTEDG=1, Interrupción por flanco
ascendente del pin RB0/INT
➢ RBPU (Resistor por pull up enable bit).
Habilitación de las resistencias de Pull-up del Puerto B.
-/RBPU=0,Habilita las resistencias de
pull-up del puerto B.
-/RBPU=1, Deshabilita las resistencias
de pull-up del puerto B.
EL TIMER 0 (TMR0)
El timer se implementa por medio de un contador que determina un tiempo preciso entre el momento en que el valor es cargado y el instante en que se produce un desbordamiento. El TMR0 se inicializa con un valor, que seincrementa con cada pulso de entrada hasta su valor máximo b’11111111’; con el siguiente impulso de entrada el contador se desborda pasando a valer b’00000000’, circunstancia que se advierte mediante la activación del flag TOIF del registro INTCON
El registro INTCON
GIE |PEIE |TOIF |INTF |RBIF |TOIE |INTE |RBIF | |Bit7 |Bit6 |Bit5 |Bit4 |Bit3 |Bit2 |Bit1 |Bit0 | |Tabla N°2. Bits del registro...
Regístrate para leer el documento completo.