Practica

Solo disponible en BuenasTareas
  • Páginas : 5 (1001 palabras )
  • Descarga(s) : 0
  • Publicado : 11 de marzo de 2012
Leer documento completo
Vista previa del texto
Instituto Tecnológico De Chihuahua

Ingeniería Electrónica

Reporte Semáforo Con

PIC16F874

[pic]

Microprocesadores Y Microcontroladores

[pic]

Catedrático: Ing. Jorge Arturo Aguirre Beltran

Equipo #3:

Luis Hugo Celorio Donati 08061157

Juan Carlos García Bravo 08061164

Joel Eduardo Negrete Contreras 08061176







Diagrama de FlujoDiagrama de Conexion Y Simulacion

[pic]

Programa
;**************************************
;* Practica1.asm
;* Este programa simula un semáforo de dos altos.
;**************************************

; La siguiente configuración solo se utiliza si usamos alguna librería ejemplo:
LIST P=PIC16F874
#include p16f874.inc
__config_XT_OSC & _PWRTE_OFF & _WDT_OFF & _CP_OFF & _LVP_OFF & _WRT_ENABLE_OFF


CUENTA1 EQU 20H ; se definen las variables que vamos a usar siempre a partir de la dirección 20Hh
CUENTA2 EQU 21H
CUENTA3 EQU 22H
CUENTA4 EQU 23H
CUENTA5 EQU 24H
CUENTA6 EQU 25H

F EQU 1 ; Constantes del programa
W EQU 0


ORG 00H; Inicia en la dirección 00H de la memoria de programa
BSF STATUS, 5 ; Seleccion del banco 1
MOVLW 00H ; Asigna un valor de cero al acumulador
MOVWF TRISB ; RB0 como salida
BCF STATUS, 5 ; Selección del banco 0
BCF PORTB, 0 ; Pone un cero en los bits del puerto B
BCF PORTB, 1
BCF PORTB,2
BCF PORTB,3
BCF PORTB,5
BCF PORTB,7INICIO
BSF PORTB,0 ; Pone un 1 en el bit cero que es el led rojo2
BSF PORTB,5 ; Pone un 1 en el bit 5 que es el verde1
CALL DELAY ; Llama a la rutina Delay(retardo) que da la duracion necesaria
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTB,5 :Pone un cero en el bit 5 que da inicio al parpadeo
CALL DELAY1 ;Llama delay1 para parpadeo
BSF PORTB,5 ;Pone un 1en el bit 5 para volver a prender el led verde1
CALL DELAY1
BCF PORTB,5
CALL DELAY1
BSF PORTB,5
CALL DELAY1
BCF PORTB,5
CALL DELAY1
BSF PORTB,5
CALL DELAY1
BCF PORTB,5
CALL DELAY1
BSF PORTB,5
CALL DELAY1
BCF PORTB,5
CALL DELAY1
BSF PORTB,4 ;Pone 1 el bit 4 del Puerto b que es el amarillo
CALL DELAY
CALL DELAY
BCF PORTB,4 ;Pone un 0 en el bit 4 del Puerto B que apaga elamarillo1
BSF PORTB,3 ;Pone un 1 en el bit 3 del Puerto B que prende el rojo1
BCF PORTB,0 ;Pone un 0 en el bit 0 del puerto B que apaga el led rojo2
BSF PORTB,2 ;Pone un 1 en el bit 2 del Puerto B que prende el led verde 2
CALL DELAY ; Llama rutina de retardo
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTB,2 ;Pone un 0 en el bit 2 del Puerto B que apaga el led verde 2
CALL DELAY1 ;llama función de retardo1 que sirve para el parpadeo
BSF PORTB,2 ;Pone un 1 en el bit 2 del puerto b que prende el led verde2
CALL DELAY1
BCF PORTB,2 ;Pone un 0 en el bit 2 del Puerto b que apaga el led verde 2
CALL DELAY1
BSF PORTB,2
CALL DELAY1
BCF PORTB,2
CALL DELAY1
BSF PORTB,2
CALL DELAY1
BCF PORTB,2
CALL DELAY1
BSF PORTB,2
CALL DELAY1
BCF PORTB,2
CALL DELAY1
BSF PORTB,2CALL DELAY1
BCF PORTB,2
BSF PORTB,1 ;Pone un 1 en el bit 1 del Puerto B que prende el led amarillo2
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTB,1 ; Pone un 0 en el bit 1del puerto b que apagar el led amarillo 2
BCF PORTB,3 ; Pone un 0 en el bit 3 del puerto b que apaga el led rojo 1
GOTO INICIO ; Va a la etiqueta inicio y se repite el ciclo



;=======================
;= DELAY:Subrutina de retardo =
;= Modifica los siguientes registros: =
;= CUENTA1 =
;= CUENTA2 =
;=======================
;(Conviene hacerse un pequeño resumen de lo que
;hace cada subrutina, puede sernos muy útil para
;usarla en otros programas)
;Subrutina hecha con 2 lazos anidados

DELAY MOVLW 04H

MOVWF CUENTA3...
tracking img