ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PRÁCTICA ALARMA DESCENDENTE PROGRAMABLE.


Enviado por   •  27 de Octubre de 2013  •  Exámen  •  14.470 Palabras (58 Páginas)  •  218 Visitas

Página 1 de 58

TAREA 15. PRÁCTICA ALARMA DESCENDENTE PROGRAMABLE.

Implementación:

Para lograr la implementación de una ALARMA DESCENDENTE PROGRAMABLE debemos de manejar varios puertos de entrada como salida, de la misma forma para crear el circuito y visualizar los valores necesitamos del uso de displays de cátodo común como el uso de latchs(74LS373), a través de señales de entrada podríamos controlar los valores de diferentes variables e irlas decrementando hasta que lleve un valor 0 y avise cuando llegue a este valor con ayuda de un buzzer.

Para realizar las funciones mencionadas necesitamos programar el PIC16F877A con el siguiente programa a partir de la siguiente lista de funciones.

B0=botón de encendido ó apagado

B1=botón selección de unidades(Segundos/Minutos).

B2= botón de correr ó parar.

B3=botón de aumento.

B4=botón de aumento.

B5=Buzzer.

Por lo tanto a partir de la lista de funciones podemos escribir el siguiente código en MPLAB, obteniendo:

list p=16f877a ;selección de dispositivO

ORG 0X00 ;SELECCIONAMOS EL ORIGEN

#INCLUDE<P16F877A.INC> ;INCLUIMOS LAS BIBLIOTECAS

VALOR EQU 0X20 ;CREAMOS LA VARIBALE VALOR

VAL2 EQU 0X21 ;CREAMOS LA VARIBALE VAL2

VAL3 EQU 0X22 ;CREAMOS LA VARIBALE VAL3

CONTADOR EQU 0X23 ;CREAMOS LA VARIBALE CONTADOR

SUMA2 EQU 0X24

SUMA3 EQU 0X25 ;CREAMOS LA VARIABLE NUMERO

SUMA EQU 0X26 ;CREAMOS LA VARIABLE SUMA

SUMA4 EQU 0X27 ;CREAMOS LA VARIBALE SUMA4

__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _BOREN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF;CONFIGURAMOS EL PIC PARA SU CORRECTO FUNCIONAMIENTO

BSF STATUS,0x05 ;Se cambio un bit del registro status para cambiar del banco 0 al 1

CLRF TRISD ;Limpiamos trisd

CLRF TRISC ;CONFIGURAMOS EL TRISC COMO SALIDAS

MOVLW B'11011111'

MOVWF TRISB ;CONFIGURAMOS TRISB COMO ENTRADAS

BCF STATUS,0x05 ;Regresamos al banco cero

GOTO RETARDO ;VAMOS A LA SUBRUTINA RETARDO

LUT ADDWF PCL,1 ;CREAMOS LA SUBRUTINA LUT

RETLW B'00111111';0

RETLW B'00000110';1

RETLW B'01011011';2

RETLW B'01001111';3

RETLW B'01100110';4

RETLW B'01101101';5

RETLW B'01111101';6

RETLW B'00100111';7

RETLW B'01111111';8

RETLW B'01100111';9

RETARDO GOTO FOR25 ;SIRVE PARA EVITAR EFECTO REBOTE EN PUSH BOTON

CONTINUARFOR25

APAGARENCENDER BTFSS PORTB,0 ;CHECAMOS EL BIT0 DLE PORTB PARA COMPROBAR SI ESTA PRENDIDO O APAGADO EL CIRCUITO

GOTO APAGAR ;SI ES 0 APAGADMOS EL CIRCUITO

GOTO ENCENDER ;SI ES 1 ENCENDEMOS EL CIRCUITO

APAGAR MOVLW B'00001111' ;EN ESTA SUBRUTINA APAGAMOS EL CIRCUITO

MOVWF PORTC

MOVLW 0X00

MOVWF PORTD

MOVLW B'00000000'

MOVWF PORTC

CLRF SUMA

CLRF SUMA2

GOTO RETARDO ;REGRESAMOS AL RETARDO

ENCENDER GOTO EFECTOREBOTE2 ;EVITAMOS EL EFECTO REBOTE

CONTINUARREBOTE2 BTFSC PORTB,2

GOTO CORRER ;SI ESTA PRENDIDO EL B2 DE PORTB VAMOS A CORRER

GOTO PARAR

PARAR BTFSS PORTB,1 ;SI ESTA APAGADO VAMOS A PARAR

GOTO CHECARBIT

INCF CONTADOR,1

CHECARBIT BTFSS CONTADOR,0 ;CHECAMOS QUE DESEA FIJAR MINUTOS O SEGUNDOS

GOTO CONTADOR0

GOTO CONTADOR1

CONTADOR0 BTFSS CONTADOR,1

GOTO CONTADOR00

GOTO CONTADOR10

CONTADOR1 BTFSS CONTADOR,1

GOTO CONTADOR01

GOTO CONTADOR11

CONTADOR10 BTFSS CONTADOR,2

GOTO SEGUNDO2;CONTADOR010

MOVLW 0X00;CONTADOR110

MOVWF CONTADOR

GOTO APAGARENCENDER

CONTADOR01 BTFSS CONTADOR,2

GOTO SEGUNDO1;CONTADOR001

MOVLW 0X00;CONTADOR101

MOVWF CONTADOR

GOTO APAGARENCENDER

CONTADOR11 BTFSS CONTADOR,2

GOTO MINUTO1;CONTADOR011

MOVLW 0X00 ;CONTADOR111

MOVWF CONTADOR

GOTO APAGARENCENDER

CONTADOR00 BTFSS CONTADOR,2

GOTO APAGARENCENDER;CONTADOR000

GOTO MINUTO2;CONTADOR100

;ESTA PARTE FIJAREMOS EL TIEMPO A PARTIR DE LA DECISION DEL USUARIO

SEGUNDO1 GOTO EFECTOREBOTE ;EVITAMOS EFECTO REBOTE

CONTINUARREBOTE BTFSS PORTB,3 ;REGRESAMOS DONDE LO LLAMAMOS

GOTO RESTAR ;SI NO ESCOGIO NADA COMPROBAMOS EL BOTON RESTAR

GOTO SUMAR ;SI ESOGIO SUMAR VAMOS A INCREMENTAR EL VALOR

SUMAR

BTFSS SUMA,3

GOTO PROCESO2

BTFSS SUMA,0

GOTO PROCESO2

GOTO VOLVERCERO

PROCESO2 INCF SUMA,1 ;DECREMENTAMOS EL VALOR DE SUMA

MOVLW B'00000001' ;COMPROBAMOS SI DESEA SUMAR EN SEGUNDO1, POR LO CUAL MOVEREMOS EL VALOR DE SEGUNDO1

MOVWF PORTC ;CONFIGURAMOS EL VALOR QUE SE VERA EN EL DISPLAY

MOVFW SUMA ;Y VAMOS A LA TABLA LUT

...

Descargar como (para miembros actualizados) txt (34 Kb)
Leer 57 páginas más »
Disponible sólo en Clubensayos.com