viernes, 11 de abril de 2014

LABORATORIO DE RETARDO "luces del auto fantastico"


Un retardo, es una forma de control de tiempo en la programación del PIC,


Las instrucciones 'normales' utilizan un ciclo de máquina para ejecutarse, un ciclo
máquina es la unidad básica de tiempo de ejecución de un programa en un PIC y
depende de la velocidad del oscilador.
Hay instrucciones llamadas de salto como goto,return, call, btfss etc que necesitan
2 ciclos máquina para ejecutarse.
Si contamos los ciclos máquina de una determinada parte de instrucciones de un
programa, podremos controlar los tiempos de retardo.
Como sabemos que F=1/T, siendo F=frecuencia y T=tiempo, podemos determinar
cuánto tiempo consumirá una instrucción en el microcontrolador, sabiendo que
para ejecutar una instrucción el microcontrolador utiliza 4 pulsos de reloj.
Ej : Si un microcontrolador funciona a 4MHz, ¿qué tardará en ejecutar una
instrucción?
F=1/4T -> T=1*4/F
Si F=4MHz
T=1/F = 1*4/4000000 =1useg
Es decir que para un reloj de 4 MHz, cada instrucción simple tardará 1 useg, y

para las instrucciones de salto tardará 2useg.


CÓDIGO DEL PROGRAMA



 LIST p=16F877A
#INCLUDE <P16F877A.INC>

__CONFIG _WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF ; Configuración para 


ORG 0x00 ; Inicio de programa

N EQU 0x22
cont1 EQU 0x20
cont2 EQU 0x21

BCF STATUS,RP0 ; Accede a banco 0
BCF STATUS,RP1 
CLRF PORTB ; Limpia PORTB
BSF STATUS,RP0 ; Accede a banco 1
CLRF TRISB ; Configura todas las patitas de PORTB como salidas
BCF STATUS,RP0 ; Regresa a banco 0

BSF PORTB,0 ; La línea RA0 de PORTB toma el valor 1, se enciende el LED
Encledsec
CALL Retardo ; Llamada a la rutina de retardo
RLF PORTB,1 ; Recorre el bit de RB0 a RB7
GOTO Encledsec ; Va a la etiqueta Encledsec

Retardo ; Rutina de retardo
MOVLW d'200' 
MOVWF cont1
Rep1
MOVLW d'200'
MOVWF cont2 
Rep2
DECFSZ cont2,1
GOTO Rep2 
DECFSZ cont1,1 
GOTO Rep1
Rep3
MOVLW d'200'
MOVWF cont2 
Rep4
DECFSZ cont2,1
GOTO Rep4 
DECFSZ cont1,1 
GOTO Rep3

RETURN ; Retorno a la llamada de rutina de retardo.

END ; Fin de programa


Wilmar fernando girldo  31528
Jose David quitero peña 31343

Daniel mora 30632


jueves, 10 de abril de 2014

LABORATORIO UNO PRENDER Y APAGAR UN LED

Figura 3.1. Distribución de pines del PIC16F877A

INTRODUCCIÓN


Los microprocesadores son circuitos integrados “programables”, que contienen todos
los elementos de un computador. Este componente electrónico, ha revolucionado, en los
últimos años, las técnicas de diseño, en lo referente a “sistemas de control industrial”.
Esta diseñado para controlar sistemas que realizan una tarea especifica. Como esta
integrado en una sola pastilla (chips), de reducido tamaño, suele estar incorporado al
propio dispositivo que gobierna. Podemos decir que es un “computador completo”, con
limitaciones en sus prestaciones.
Aplicaciones comunes: Hornos microondas, lavar ropas, sistema de inyección de
automóviles, teclados de PC, impresoras, vídeos, sistemas de comunicaciones, procesos
industriales etc.



Los microprocesadores son circuitos integrados “programables”, que contienen todos
los elementos de un computador. Este componente electrónico, ha revolucionado, en los
últimos años, las técnicas de diseño, en lo referente a “sistemas de control industrial”.
Esta diseñado para controlar sistemas que realizan una tarea especifica. Como esta
integrado en una sola pastilla (chips), de reducido tamaño, suele estar incorporado al
propio dispositivo que gobierna. Podemos decir que es un “computador completo”, con
limitaciones en sus prestaciones.
Aplicaciones comunes: Hornos microondas, lavar ropas, sistema de inyección de
automóviles, teclados de PC, impresoras, vídeos, sistemas de comunicaciones, procesos
industriales etc.
Los pines de entrada/salida de estos microprocesadores están organizados en cinco puertos.
el puerto A con 6 líneas, el puerto B con 8 líneas, el puerto C con 8 líneas, el puerto D con
8 líneas y el puerto E con 3 líneas. Cada pin de esos puertos se puede configurar como
Entrada o como salida independiente programando un par de registros diseñados para tal
fin. En ese registro un bit en "0" configura el pin del puerto correspondiente como salida y
un bit en "1" lo configura como entrada.







CÓDIGO EN MPLAB v8.92
     list        p=16f877a              ; directiva para definir procesador
    #include    <p16f877a.inc>  ; definiciones de variables especificas del procesador 
   
    __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF     ;configuracion del pic

     org 0                             ; vector de origen
Start:
     bsf       STATUS,RP0     ; seleccione Banco 1
     bcf       TRISB,5             ; configure pin RB4, salida, led OUT-1
     bcf       STATUS,RP0     ; seleccione Banco 0
           
MainLoop:
     bsf       PORTB,5           ; prenda led OUT-1
     bcf       PORTB,5           ; apague led OUT-1
     goto      MainLoop          ; haga ciclo

     end









Wilmarfernando girldo  31528
Jose David quitero peña 31343
Daniel mora  Gavidia    30632