Top Banner
Microcontroladores. PWM Fátima Daniela González Mateo Universidad Politécnica de Chiapas. Mecatrónica La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga. INTRODUCCIÓN En la siguiente práctica se pretende modificar el ciclo de trabajo de una señal periódica de una fuente de energía. Esto se logra través de distintos registros utilizados en la programación de PIC 16f877. En esta práctica es de suma importancia conocer el funcionamiento de distintos registros del pic, los cuales su descripción se encuentra en el datasheet. Como parte fundamental de programa se encuentra el convertidor analógico digital, el cual ya se encuentra incluido dentro de las funciones del pic. CODIGO DEL PROGRAMA Include”p16f877a.inc" List p=16f877a Error level 1,-302 __Config _XT_OSC & _WDT_OFF & _LVP_OFF ;-------------------------------- --------------------------- ORG 0x00 GOTO CONFI ORG 0x04 ;-------------------------------- --------------------------- CONFI CLRF CCP1CON CLRF TMR2 MOVLW 0X7F MOVWF PR2
15

REPORTE DE PRACTICAS

Nov 29, 2014

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: REPORTE DE PRACTICAS

Microcontroladores.

PWM

Fátima Daniela González MateoUniversidad Politécnica de Chiapas.

Mecatrónica

La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal  o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.

INTRODUCCIÓN

En la siguiente práctica se pretende modificar el ciclo de trabajo de una señal periódica de una fuente de energía. Esto se logra través de distintos registros utilizados en la programación de PIC 16f877.

En esta práctica es de suma importancia conocer el funcionamiento de distintos registros del pic, los cuales su descripción se encuentra en el datasheet.

Como parte fundamental de programa se encuentra el convertidor analógico digital, el cual ya se encuentra incluido dentro de las funciones del pic.

CODIGO DEL PROGRAMA

Include”p16f877a.inc"List p=16f877aError level 1,-302__Config _XT_OSC & _WDT_OFF & _LVP_OFF;-----------------------------------------------------------ORG 0x00GOTO CONFIORG 0x04;-----------------------------------------------------------CONFI CLRF CCP1CON

CLRF TMR2MOVLW 0X7FMOVWF PR2CALL CADCLRF INTCON

;-----------------------------------------------------------BSF STATUS, 5CLRF TRISC

CLRF PIE1MOVLW b'00000001'MOVWF TRISAMOVLW b'00001110'MOVWF ADCON1BCF STATUS, 5

;-----------------------------------------------------------CLRF PIR1MOVLW 0X2CMOVWF CCP1CONMOVLW b'00000111'MOVWF T2CON

PWM BTFSS PIR1, 1GOTO PWMBCF PIR1, 1

;-----------------------------------------------------------CAD BSF STATUS, RP0

Page 2: REPORTE DE PRACTICAS

MOVLW b'11010111'MOVWF

OPTION_REGBCF STATUS,

RP0

MOVLW b'01000001'MOVWF ADCON0

CICLO BTFSS INTCON, T0IF

GOTO CICLOBCF INTCON, T0IFBSF ADCON0, 2

ESPERA NOPBTFSC ADCON0, 2GOTO ESPERAMOVF ADRESH, 0MOVWF CCPR1LRETURNEND

SIMULACIÓN DEL PROGRAMA EN PROTEUS

Figura 5 Simulación PWM

CONCLUSIÓN

Con esta práctica se aprendió la utilización de los distintos registros con que cuenta el pic, así como también el convertidor analógico digital, con el objetivo de modificar la señal de una fuente.

REFERENCIAhttp://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsos

Microcontroladores.

LCD CON TECLADO MATRICIAL

Page 3: REPORTE DE PRACTICAS

Fátima Daniela González MateoUniversidad Politécnica de Chiapas.

Mecatrónica

Un teclado matricial es un simple arreglo de botones conectados en filas y columnas, de modo que se pueden leer varios botones con el mínimo número de pines requeridos. Un teclado matricial 4×4 solamente ocupa 4 líneas de un puerto para las filas y otras 4 líneas para las columnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un microcontrolador. Si asumimos que todas las columnas y filas inicialmente están en alto (1 lógico), la pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y checar cada columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de las filas se recorre hacia la siguiente y así secuencialmente.

INTRODUCCIÓN

Con esta práctica se pretender aprender el funcionamiento tanto de lcd como el del teclado matricial. Para ello es fundamental conocer de forma teórica como operan cada uno de ellos para posteriormente poderlo realizar de forma física.

La lógica del programa consiste en que a través del teclado matricial enviar información que será visualizada en pantalla, dicha información es enviada a través del programa que contiene el pic.

CODIGO DEL PROGRAMA

List p=16f877Include <p16f877.inc>__CONFIG _WDT_OFF & _XT_OSC & _LVP_OFF & _CPD_OFFErrorlevel 1,-301

TECLA EQU 0X20

VAR3 EQU 0X21CONT1 EQU 0X22CONT2 EQU 0X23CONT3 EQU 0X24VAR1 EQU 0X26 VAR2 EQU 0X27VAR4 EQU 0X28 AUX EQU 0X29AUX2 EQU 0X2AAUX3 EQU 0X2B

ORG 0X00

GOTO INICIO

TECLADO CLRF TECLA MOVLW b'00001110' MOVWF PORTC

COLUMNAS

BTFSS PORTC, 4GOTO ANTIRREBOTE

INCF TECLA, 1 BTFSS PORTC, 5 GOTO

ANTIRREBOTEINCF TECLA, 1 BTFSS PORTC, 6 GOTO ANTIRREBOTE

INCF TECLA, 1 BTFSS PORTC, 7 GOTO ANTIRREBOTE

INCF TECLA, 1 ;------------------------------------

MOVLW d'16'SUBWF TECLA, 0BTFSC

STATUS, 2GOTO TECLADO

Page 4: REPORTE DE PRACTICAS

BSF STATUS, 0RLF PORTC, 1GOTO COLUMNAS

;--------------------------------------------------TABLA ADDWF PCL, 1

RETLW"0"RETLW"1"RETLW"2"RETLW"3"RETLW"4"RETLW "5"RETLW"6"RETLW"7"RETLW"8"RETLW"9"

RETLW"A"RETLW"B"RETLW"C"RETLW"D"RETLW"E"RETLW"F"

;-------------------------------------ANTIRREBOTEB1 BTFSS PORTC, 4

GOTO B1B2 BTFSS PORTC, 5

GOTO B2B3 BTFSS PORTC, 6

GOTO B3B4 BTFSS PORTC, 7

GOTO B4MOVF TECLA, 0CALL TABLARETURN

;----------------------------------

LCD MOVWF VAR3MOVLW 0X38CALL CONTROLMOVLW 0x0C CALL CONTROL MOVLW 0x84CALL CONTROLMOVF VAR3, 0CALL DATOCALL TIME65RETURN

;--------------------------------TIEMPO1 MOVLW D'14'

MOVWF CONT1CICLO2 MOVLW D'40'

MOVWF CONT2CICLO1 DECFSZ

CONT1, 1GOTO CICLO1DECFSZ

CONT2, 1GOTO CICLO1RETURN

TIME65 MOVLW D'15'MOVWF CONT2

DECRE9 DECFSZCONT2, 1

GOTO DECRE9RETURN

;-------------------------------------CONTROL BCF PORTA, 0

GOTO DATO2DATO BSF PORTA, 0DATO2 BSF PORTA, 1

MOVWF PORTBBCF PORTA, 1CALL TIEMPO1RETLW 0

;---------------------------------------INICIO BSF STATUS, 5

MOVLW 0X06MOVWF ADCON1CLRF TRISACLRF TRISBMOVLW 0XF0MOVWF TRISC BCF STATUS, 5

;------------------------------------------

INI CALL TIEMPO1; MOVLW 0X01; CALL CONTROLMOVLW 0X01CALL CONTROL; CALL TIME65

; BCF STATUS, 2; CALL TECLADO

PROGRA CALL TECLADOCALL LCDGOTO PROGRA

; ---------------------------------END

SIMULACIÓN DEL PROGRAMA EN PROTEUS

Page 5: REPORTE DE PRACTICAS

Figura 3 Simulación teclado matricial con LCD

CONCLUSIÓN

A través de esta práctica se puedo aprender el funcionamiento de teclado matricial y el lcd. Se tuvieron algunos problemas a la hora de realizarlo de forma física con el lcd esto debido al tiempo en que trabaja

REFERENCIAhttp://micropic.wordpress.com/2007/06/13/teclado-matricial-4x4/

Microcontroladores.

CONTADOR ASCENDENTE DE 0 A 99

Fátima Daniela González MateoUniversidad Politécnica de Chiapas.

Mecatrónica

La función de este circuito es contar de 0 a 99 y visualizarlo en 2 displays de 7 segmentos. Esto se logra a través del multiplexado de dichos displays. Para ello es importante implementarle el tiempo necesario para que esto pueda ocurrir.

INTRODUCCIÓN

Page 6: REPORTE DE PRACTICAS

Con la siguiente práctica se pretende hacer un contador ascendente del 0 al 99 a través de un pulso que se introducirá en el pic, la cuenta ira avanzando de 1 en 1.

Para lograr que este programa funcione se debe multiplexar ambos displays para así poder visualizar la cuenta.

CODIGO DEL PROGRAMA

Include”p16f877a.inc"List p=16f877aErrorlevel 1,-302__Config _HS_OSC & _WDT_OFF

ORG 0x00 GOTO INICIO

; GOTO 0X04;--------------------------------------------------

ROTACION EQU 0X20UNI EQU 0X21DEC EQU 0X22VAR1 EQU 0X23VAR2 EQU 0x24VAR3 EQU 0X25

;-------------------------------------------------INICIO BSF STATUS, 5

MOVLW 0x06MOVWF ADCON1MOVLW 0xFFMOVWF TRISACLRF TRISCCLRF TRISDBCF STATUS, 5

;----------------------------------------------------CLRF UNICLRF DEC

MOVLW 0x00MOVWF PORTD

EMPE BTFSS PORTA, 0CALL ANTIRMOVLW b'00000010'MOVWF ROTACIONMOVLW UNIMOVWF FSR

DISPLAY MOVLW 0x00MOVWF PORTCMOVF ROTACION,

0MOVWF PORTD

MOVF INDF, 0CALL TABLAMOVWF PORTCCALL RETARDOBTFSC ROTACION,

0GOTO EMPEBCF STATUS, 0RRF ROTACIONINCF FSRGOTO DISPLAY

INCREMENTO INCF DECMOVF DEC, 0XORLW d'10'BTFSC STATUS, 2CALL INCREMENTO1CALL RETARDORETURN

INCREMENTO1 CLRFDEC

INCF UNIMOVF UNI,

0XORLW

d'10'BTFSC STATUS, 2CLRF UNIRETURN

RETARDOMOVLW D'1

RET3 MOVWF VAR3MOVLW D'30

RET2 MOVWF VAR2MOVLW D'80

RET MOVWF VAR1DECFSZ

VAR1, 0GOTO RETDECFSZ

VAR2, 0GOTO RET2DECFSZ

VAR3, 0GOTO RET3RETURN

Page 7: REPORTE DE PRACTICAS

ANTIR NOPB1 BTFSS PORTA, 0

GOTO B1

CALL INCREMENTORETURNEND

SIMULACIÓN DEL PROGRAMA EN PROTEUS

Figura 2 Simulación contador 0 a 99

CONCLUSIÓN

El tener ambas salidas del display de un mismo puerto causó dificultad para poder mostrarlo físicamente, pero para ello se debe dar al programa un retardo necesario para así lograr el objetivo de la práctica

REFERENCIA

http://usuarios.multimania.es/charlytospage/contado0a99.htm

Page 8: REPORTE DE PRACTICAS

Microcontroladores.

Relé con LCD

Fátima Daniela González MateoUniversidad Politécnica de Chiapas.

Mecatrónica

El relé o relevador es un dispositivo electromecánico. Funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de una bobina  y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes.

INTRODUCCIÓN.

El objetivo de esta práctica es activar dos lámparas a través de un relé, dicho relé se activara con un pulso que le llegara del pic, además de esto en una pantalla LCD se mostrara un texto indicando que lámpara está encendida.

CODIGO DEL PROGRAMA.include"p16f877a.inc"list p=16f877aerrorlevel 1,-302__Config _XT_OSC & _WDT_OFF & _LVP_OFF;------------------------------------------------------------------A EQU 0X21A2 EQU 0X22A3 EQU 0X23CONT1 EQU 0X24CONT2 EQU 0X25VAR3 EQU 0X26;------------------------------------------------------------------

ORG 0x00GOTO CONFIORG 0x04

;------------------------------------------------------------------CONFI BSF STATUS,5

MOVLW 0X06MOVWF

ADCON1CLRF TRISACLRF TRISBMOVLW 0X0F

MOVWFTRISC

CLRF TRISDBCF STATUS,5

;------------------------------------------------------------------

INICIO BTFSS PORTC,0GOTO AZULGOTO NARANJA

;------------------------------------------------------------------AZUL MOVLW

B'00010000'MOVWF

PORTC;------------------------------------------------------------------

MOVLW0X01

CALL CONTROLCALL

FOCO MOVLW"A"

CALL LCDMOVLW

"Z"

Page 9: REPORTE DE PRACTICAS

CALL LCDMOVLW

"U"CALL LCDMOVLW

"L"CALL LCD

MANTENER BTFSS PORTC,0GOTO MANTENERGOTO INICIO

;------------------------------------------------------------------NARANJA MOVLW

B'00000000'MOVWF

PORTC;------------------------------------------------------------------

MOVLW0X01

CALL CONTROLCALL

FOCO MOVLW"N"

CALL LCDMOVLW

"A"CALL LCDMOVLW

"R"CALL LCDMOVLW

"A"CALL LCDMOVLW

"N"CALL LCDMOVLW

"J"CALL LCDMOVLW

"A"CALL LCD

MANTENER1 BTFSC PORTC,0GOTO

MANTENER1GOTO INICIO

;-----------------------------------------------------------------------------PRIMERO MOVWF VAR3

MOVLW 0X02CALL CONTROLMOVLW 0X30CALL CONTROLMOVLW 0X0C

CALL CONTROLMOVLW 0X06CALL CONTROLMOVF VAR3,0CALL DATORETURN

;-----------------------------------------------------------------CONTROL BCF PORTA,0

GOTO DATO2DATO BSF PORTA,0DATO2 BSF PORTA,1

MOVWF PORTBBCF PORTA,1CALL TIEMPO1RETLW0

;-----------------------------------------------------------------LCD MOVWF VAR3

MOVLW 0X06CALL CONTROLMOVLW 0X30CALL CONTROLMOVLW 0X0CCALL CONTROLMOVLW 0X06CALL CONTROLMOVF VAR3,0CALL DATORETURN

;------------------------------------------------------------------TIEMPO1 MOVLW d'03'

MOVWF CONT1DECRE1 MOVLW d'255'

MOVWF CONT2DECRE DECFSZ CONT2,1

GOTO DECREDECFSZ CONT1,1GOTO DECRE1

RETURN;-------------------------------------------------------------------FOCO MOVLW "F

CALL PRIMEROMOVLW "OCALL LCDMOVLW "CCALL LCDMOVLW "OCALL LCDMOVLW " "CALL LCDRETURN

;---------------------------------------------------------------------

Page 10: REPORTE DE PRACTICAS

END

SIMULACIÓN DEL PROGRAMA EN PROTEUS

CONCLUSIÓN.

Al finalizar esta práctica se aprendió el funcionamiento de un relevador, asi como también se aprendió a insertar una cadena de caracteres en el LCD, tuve dificultades al conectar el LCD debido a distintos factores

REFERENCIAS.http://www.seid.com.mx/productos/modulos/

Page 11: REPORTE DE PRACTICAS

Microcontroladores.

Display 7 segmentos

Fátima Daniela González MateoUniversidad Politécnica de Chiapas.

Mecatrónica

El displays de 7 segmentos, es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos. Este elemento se ensambla o arma de manera que se pueda activar cada segmento (diodo LED ) por separado logrando de esta manera combinar los elementos y representar todos los números en el display (del 0 al 9).

INTRODUCCIÓN.

Con esta práctica se pretende realizar un programa el cual permita visualizar FATI en un display de 7 segmentos, esto de forma automática, es decir que las letras se van formando y posteriormente tiene un retardo para luego continuar con una nueva letra, así formando la palabra completa.

Para esta practica se utilizó el pic 16f84 a diferencia de las demás prácticas, el pic ira encendiendo el dsiplay a medida que se le vaya cargando un valor al puerto de salida y así formar las letras.

CODIGO DEL PROGRAMA.

include p16f84a.inclist p=16f84aerrorlevel 1,-302__Config _XT_OSC &_WDT_OFF

VAR1 EQU 0x20VAR2 EQU 0x21VAR3 EQU 0x22VAR4 EQU 0x23VAR5 EQU 0x24

ORG 0x00

;--------------------------------BSF STATUS,5MOVLW 0xFFMOVWF TRISACLRF TRISBBCF STATUS,5

;--------------------------------;PROGRAMA

CLRF PORTB

PROGRAMA MOVLW d'113'MOVWF PORTBCALL RETARDOMOVLW d'119'MOVWF PORTBCALL RETARDOMOVLW d'120'MOVWF PORTBCALL RETARDOMOVLW d'6'MOVWF PORTBCALL RETARDOGOTO PROGRAMA

RETARDO MOVLW d'2'MOVWF VAR5MOVLW d'247'MOVWF VAR4MOVLW d'100'MOVWF VAR3

DEC3 MOVLW d'5'MOVWF VAR2

Page 12: REPORTE DE PRACTICAS

MOVLW d'248'DEC2 MOVWF VAR1DEC1 NOP

DECFSZ VAR1,1GOTO DEC1DECFSZ VAR2,1GOTO DEC2DECFSZ VAR3,1GOTO DEC3

CARGA MOVLW d'248'MOVWF VAR4

DEC4 NOP

DECFSZ VAR4GOTO DEC4DECFSZ VAR5GOTO CARGANOPNOPNOPNOP

RETURNEND

SIMULACIÓN DEL PROGRAMA EN PROTEUS

Fig. 1 Simulación nombre con display

Page 13: REPORTE DE PRACTICAS

CONCLUSIÓN.

Después de realizar la práctica se aprendió el funcionamiento de los display de 7 segmentos así como también su configuración, se manejó retardos para que las letras pudieran ser visualizadas y finalmente aprendí que con por medio del pic puedo manejar el encendido de cierto pines de un puerto.

REFERENCIAS.

Datasheet PIC16F84A

http://www.unicrom.com/Tut_display-7-segmentos.asp