Transcript
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
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
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
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
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
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
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
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"
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
;---------------------------------------------------------------------
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/
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
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
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
top related