viernes, 30 de mayo de 2014

CONFIGURACIÓN PWM

PRESENTADO POR: Wilmer Alejandro Sierra                          
                                Fabian Eduardo  García
correos:                    wilmer_5050@hotmail.com
                                fabigarcia.48@hotmail.com
LABORATORIO N°5
       CONFIGURACIÓN PWM 



EN ESTE LABORATORIO CONFIGURAMOS EL PWM DEL MICRO CONTROLADOR PARA CONTROLAR  LA VELOCIDAD DE GIRO DE UN  MOTOR DC . YA QUE EL PWM NOS PERMITE LA MODULACIÓN  POR ANCHO PULSOS



MATERIALES DEL CIRCUITO
  1. PROTOBOAR
  2. PIC18F452
  3. CRISTAL CUARZO 20MHZ
  4. 8 LEDS
  5. 2 CONDENSADORES DE 22 PICOS(CERAMICOS
  6. UNA RESISTENCIA DE 10K Y  UNA DE 330 OHM
  7. UN PULSADOR 
  8. UN MOTOR DE 5V
CODIGO:

list p = 18F452
#include<p18F452.inc>
CBLOCK 0x0A
TAQ
BUFFER_ENVIO
ENDC
org 0x00
rcall CONF_PUERTOS
rcall BORRAR_BASURA
rcall CONF_ADC
rcall CONF_TMR2
rcall CONF_PWM
rcall CONF_USART
;-----------------------------------------------------------------------------------------------------------------------------------------
rcall CONVERSION

PRINCIPAL
btfsc PIR1,5
rcall LEER_SERIAL
btfsc TXSTA,1
rcall ENVIAR
btfss ADCON0,2
rcall CONVERSION
rcall MOTOR 

bra PRINCIPAL
;-----------------------------------------------------------------------------------------------------------------------------------------
CONF_PUERTOS
; Esta rutina se emplea para configurar los pines del microcontrolador que se van a emplear.
; Los pines que se configuran con CERO (0) son salidas. Los pines que se configuran con UNO (1) son entradas
setf TRISA
clrf PORTC
clrf TRISB
clrf TRISD
;76543210
movlw b'10000000'
movwf TRISC
return
;-----------------------------------------------------------------------------------------------------------------------------------------
BORRAR_BASURA
; Esta rutina garantiza que los registros que se van a emplear inicien en Cero
clrf TAQ
clrf BUFFER_ENVIO
clrf PORTC
clrf ADRESH
clrf ADRESL
return
CONF_ADC
;Esta rutina configura el conversor Analogo Digital según los valores de la Hoja de especificaciones
;76543210
movlw b'01000001'
movwf ADCON0
;76543210
movlw b'00001110'
movwf ADCON1
return
;-----------------------------------------------------------------------------------------------------------------------------------------
CONF_USART
;76543210
movlw b'00100110'
movwf TXSTA
;76543210
movlw b'10010000'
movwf RCSTA
movlw d'25'
movwf SPBRG
return
;-----------------------------------------------------------------------------------------------------------------------------------------
CONVERSION
movff ADRESH,BUFFER_ENVIO
movlw d'20'
movwf TAQ
decfsz TAQ,F
bra $-2
bsf ADCON0,2
return
;-----------------------------------------------------------------------------------------------------------------------------------------
ENVIAR
movff BUFFER_ENVIO,TXREG
return
;-----------------------------------------------------------------------------------------------------------------------------------------
MOTOR

; Valor del Ciclo Util para el primer canal
movff PORTB,CCPR1L

; Valor del periodo de las Señal
MOVLW d'249'
MOVWF PR2

;76543210
MOVLW b'00001111'
MOVWF CCP1CON
;-----------------------------------------------------------------------------------------------------------------------------------------
LEER_SERIAL
movff RCREG,PORTB
movff RCREG,PORTD
bcf PIR1,5
return
;-----------------------------------------------------------------------------------------------------------------------------------------
CONF_TMR2
; El Pre y el Post Scaler están en una relacion 1:1

CLRF TMR2

;76543210
MOVLW b'00000100'
MOVWF T2CON
RETURN
;-----------------------------------------------------------------------------------------------------------------------------------------

;_____________________________________________________

CONF_PWM

movlw d'0'
movwf CCPR1L
movwf CCPR2L

movlw d'249'
movwf PR2
;76543210
movlw b'00001100'
movwf CCP1CON
movwf CCP2CON


return
;-----------------------------------------------------------------------------------------------------------------------------------------

end

configuración puertos ADC

PRESENTADO POR: Wilmer Alejandro Sierra                          
                                Fabian Eduardo  García
correos:                    wilmer_5050@hotmail.com
                                fabigarcia.48@hotmail.com

LABORATORIO  N°4
CONFIGURACIÓN PUERTOS ADC

En este laboratorio buscamos  controlar  el voltaje   de los puertos de las salida  configurando  el conversor analogico digital del microcontrolador para que se ve reflejado   por medio de leds  


MATERIALES DEL CIRCUITO 

  1. PROTOBOAR
  2. PIC16F877A
  3. CRISTAL CUARZO 20MHZ
  4. 8 LEDS
  5. 2 CONDENSADORES DE 22 PICOS(CERAMICOS
  6. UNA RESISTENCIA DE 10K Y  UNA DE 330 OHM
  7. UN PULSADOR 
  8. UN POTENCIOMETRO 

CODIGO


list p = 16f877a ; Define el tipo de procesador a emplear
#include<p16f877a.inc> ;Incluye libreria la cual especifica la direccion de cada uno de los registros de funcion
;especifica SFR
JJ EQU 0x0A ; Establece la direccion de JJ en la RAM
org 0x00 ; Origen de programa
call CONF_PUERTOS
call BORRAR_BASURA
call CONF_ADC
call ESPERAR_CARGA
;--------------------------------------------------------------------------------------------------------------------
CONVERTIR
bsf ADCON0,2 ; Inicia la Conversion

FIN_CONVERSION

btfsc ADCON0,2 ; Espera fin conversion
goto FIN_CONVERSION
movf ADRESH,PORTB ;< El resultado de la conversion se pone en los puertos
movf ADRESL,PORTC ; los ocho bit de mayor peso estan en PORTB<7:0> los 2 de menor peso en PORTC<7:6>
call ESPERAR_CARGA ;Esperar tiempo de carga
goto CONVERTIR
;--------------------------------------------------------------------------------------------------------------------
CONF_PUERTOS
; Esta rutina se emplea para configurar los pines del microcontrolador que se van a emplear.
; Los pines que se configuran con CERO (0) son salidas. Los pines que se configuran con UNO (1) son entradas
;76543210
movlw b'00000001'
movwf TRISA
clrf TRISB ; Configura Todo el puerto B de Salida
clrf TRISC ; Configura Todo el puerto C de Salida
return
;--------------------------------------------------------------------------------------------------------------------

BORRAR_BASURA
; Esta rutina garantiza que los registros que se van a emplear inicien en Cero
clrf PORTB
clrf PORTC
return
;--------------------------------------------------------------------------------------------------------------------
CONF_ADC
;Esta rutina configura el conversor Analogo Digital según los valores de la Hoja de especificaciones
;76543210
bsf STATUS,RP0
movlw b'01000001'
movwf ADCON0
;76543210
movlw b'00001110'
movwf ADCON1
return
;--------------------------------------------------------------------------------------------------------------------
ESPERAR_CARGA
; Esta rutina genera un retardo suficiente para que el condensador del sistema de muestreo y retencion se cargue
; con el valor de la señal a convertir. Este tiempo debe ser mínimo de 12.86uSeg
movlw d'20'
movwf JJ

ESPERAR
decfsz JJ,F
goto ESPERAR
return
;--------------------------------------------------------------------------------------------------------------------
end