Desarrollar destrezas en la creación de programas siguiendo ciertas especificaciones recibidas al comienzo de la práctica. Ese semáforo tuviera los 3 colores básicos
Enviado por Vero De Landazury • 24 de Febrero de 2016 • Práctica o problema • 1.870 Palabras (8 Páginas) • 96 Visitas
[pic 1]
[pic 2]
Objetivo
Desarrollar destrezas en la creación de programas siguiendo ciertas especificaciones recibidas al comienzo de la práctica. Ese semáforo tuviera los 3 colores básicos: verde, rojo y naranja. A demás de que el semáforo iniciara en verde y después parpadeara y se apagara ese color, al apagarse el led de color verde, tenía que encender el led de color naranja y luego apagarse, y por ultimo al momento de apagarse el led naranja, debía encender el led de color rojo y apagarse, también se debía realizar esta secuencia cíclicamente.
Especificaciones técnicas de la práctica
Esta práctica se trata del diseño de un semáforo basado en el microcontrolador PIC 16F84A.
El semáforo controla la vialidad basando las especificaciones siguientes: debía tener los 3 colores básicos: verde, rojo y naranja. A demás de que el semáforo iniciara en verde y después parpadeara y se apagara ese color, al apagarse el led de color verde, tenía que encender el led de color naranja y luego apagarse, y por ultimo al momento de apagarse el led naranja, debía encender el led de color rojo y apagarse, también se debía realizar esta secuencia cíclicamente.
El sistema tendrá un switch de on/off que será necesario presionar para llevar a cabo un reset en el funcionamiento del semáforo para que al momento de presionarlo se resetee el programa y comienze su ciclo otra vez desde el inicio. Y otro push buttom para que al momento de presionarlo simule la acción de un semáforo para peatones que al momento de presionarlo el semáforo este en el color que este aumente su velocidad y llegue al color rojo para que de este modo el peatón pueda cruzar la vialidad donde se encuentra.
La programación utilizada fue la siguiente (para esto utilizamos el software de programación llamado MPLAB):
ERRORLEVEL -302
; remove message about using proper bank
LIST P=16F84A
INCLUDE "P16F84A.INC"
__CONFIG _CP_ON & _WDT_OFF & _PWRTE_OFF & _HS_OSC
Valor equ 0x0C ; Crear variable en OXOC
valor2 equ 0X0D; Crar variable en OXOD
resultado equ 0x0E; Crear variable en OxOE
org 0x00
BSF STATUS,5 ;Cambio a BANKO 1
CLRF TRISB ; Declaro B salidas
movlw 0x00
movwf TRISB
movlw 0xFF ; Cargo unos a W " W como registro de trabajo "
movwf TRISA ;Muevo W a TRISA
BCF STATUS,RP0 ;Cambio a BANKO 0
Inicio
; para el if
movfw PORTA
andlw b'00000001' ; mascara
sublw b'00000000' ; extrar
btfss STATUS,Z ;big state file si hay uno en el registro en bit que voy aplicar lo brincara
goto RAPIDO
goto PARPADEO
PARPADEO ; INICIA
bsf PORTB,0
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
CALL Retardo_200ms
bcf PORTB,0
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
bsf PORTB,0
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_20ms
CALL Retardo_20ms
CALL Retardo_20ms
bcf PORTB,0
CALL Retardo_20ms
CALL Retardo_100ms
bsf PORTB,0
CALL Retardo_20ms
CALL Retardo_100ms
bcf PORTB,0
CALL Retardo_20ms
CALL Retardo_100ms
bsf PORTB,0
CALL Retardo_20ms
CALL Retardo_100ms
bcf PORTB,0
CALL Retardo_20ms
bsf PORTB,1
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
CALL Retardo_100ms
...