viernes, 30 de mayo de 2014

LABORATORIO CONVERSOR ANÁLOGO DIGITAL

·  Definición.

Convertidor analógico digital o CAD, acrónimo de Analogue to Digital Converter, circuito electrónico que convierte una señal analógica en digital. Se utiliza en equipos electrónicos como ordenadores o computadoras, grabadores digitales de sonido y de vídeo, y equipos de comunicaciones. La señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo (cuantificación discreta, o asignación de un valor numérico a una determinada intensidad de la señal) a una velocidad fija, obteniéndose así una señal digital a la salida del mismo. Esta señal se puede volver a convertir en analógica mediante un convertidor digital analógico.

·  Características generales de los convertidores A-D.
un CAD muestrea una señal analógica y la convierte en un valor digital de 'n' bits. Usualmente será necesario acondicionar la señal de entrada del convertidor A-D, bien sea atenuando bien sea amplificándola.
Este muestreo está definido por la función de transferencia. En la siguiente figura se muestra una función de transferencia ideal de un convertidor de 8 bits de precisión.


CODIGO:


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


Mis_Variables udata
ConteoRetardo res 1 ;
PROG1 code

iniciopuertos:
            clrf PORTA
            clrf PORTC
            bsf STATUS, RP0

            movlw 0x0E
            movwf ADCON1
            movlw 0x01
            movwf TRISA
            clrf TRISC
            movlw d'254'
            movwf PR2
            bcf STATUS, RP0
            movlw 0xC1
            movwf ADCON0
            movlw 0x04;
            movwf T2CON
            movlw 0x0C
            movwf CCP1CON

Rutina:
            bsf ADCON0, GO_DONE
            btfsc ADCON0, GO_DONE
            goto $-1
            movf ADRESH, w
            movwf CCPR1L
            movlw d'1'
            call Retardo
            goto Rutina

Retardo:
            movwf ConteoRetardo
Nuevo_Retardo:
            movlw d'250'
Retardo_1ms:
            addlw -d'1'
            btfss STATUS, Z
            goto Retardo_1ms
            decfsz ConteoRetardo, f
            goto Nuevo_Retardo
            return
            end

PRESENTADO : 

EDUAR ALEJANDRO ROMERO 2013276007
WILMAR FERNANDO GIRALDO 2010172084 ARA 31528
JUAN DANIEL MORA   2009272034  ARCA 30632

















LABORATORIO DE PWM

Los periféricos son los subsistemas que le añaden gran poder y versatilidad a un micro controlador ya que, al estar incluidos dentro de éste, simplifican enormemente el proceso de diseño, tanto en hardware como en software, de una determinada aplicación. Entre los más importantes están los módulos PWM (Modulación de Ancho de Pulso) , los convertidores analógico/digital (Convertidor A/D), los módulos de comunicación serial SSP y AUSART (SCI) y los comparadores. En esta página se describe la operación de un control PWM para un motor DC utilizando micro controladores PIC con el compilador 
El control PWM es uno de los tres posibles modos de operación del módulo CCP de los microcontroladores PIC16F88, 16F628A y 16F877A, y se describe a continuación debido a su gran importancia en el campo de la automatización.

Una señal PWM es una forma de onda digital binaria de una determinada frecuencia y ciclo de trabajo (duty cycle) variable. Un ejemplo típico de aplicación es el control PWM de potencia (figura 9.1), que se suele utilizar para el control de una lámpara incandescente o un motor DC. Si se considera que el nivel 0 representa OFF y el nivel 1 representa ON, la potencia que consume la carga será directamente proporcional a la duración del pulso.




Control PWM de potencia
En este modo, el pin CCP1 produce una señal PWM de hasta 10 bits de resolución, lo que significa que se tienen hasta 1024 opciones de configuración del ciclo de trabajo. Este pin tiene que configurarse como salida por medio del registro TRISB. La figura 9.2 muestra un diagrama de bloques del módulo CCP operando como control


 PWM.

 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

#define _toogle_BUZ_1 b'00000100'
#define _toogle_OUT_1 b'00010000'
#define _bit_buzzer 2
#define _bit_CCP1 2

org 000h

Start:

clrf PORTB
bsf PORTB,_bit_buzzer

bsf STATUS,RP0
movlw b'11001011'
movwf TRISB
bcf STATUS,RP0

clrf CCP1CON


movlw 0xFF
movwf PR2

movlw 0x1F
movwf CCPR1L

movlw b'00101100'
movwf CCP1CON

bsf STATUS,RP0
bcf TRISC,_bit_CCP1
bcf STATUS,RP0

clrf T2CON
movlw b'00000011'
movwf T2CON

bsf T2CON,TMR2ON

Main_TMR2_OVF:

btfss PIR1,TMR2IF
goto Main_TMR2_OVF

bcf PIR1,TMR2IF

Main_CPP_cod
bcf STATUS,RP0
movf PORTB,W
xorlw _toogle_OUT_1
xorlw _toogle_BUZ_1
movwf PORTB

goto Main_TMR2_OVF

end

EDUAR ALEJANDRO ROMERO 2013276007
WILMAR FERNANDO GIRALDO 2010172084 ARCA 31528
JUAN DANIEL MORA 2009272034 ARCA 30632






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