You are on page 1of 7

Reporte Prcticas.

Jos Antonio Villalobos Maza


7 de julio de 2011 Jos Antonio Villalobos Maza Materia: Microcontroladores Universidad Politcnica de Chiapas

Segundo Corte

________________________________________________________________________________ Y por ltimo al momento que se active a D0 y se active a D1, entonces cambiara de estado, Practica 1: Barrido de Leds y los leds comenzaran a correr en ambos Resumen: En el siguiente reporte se sentidos describir la programacin de un control de PROGRAMACIN leds en lenguaje ensamblador y simulado en include p16f877a.inc el programa Proteus, tambin fue realizado list p=16f877a org 0x00 fsicamente en un protoboard.
CONTA M 0X22 CONTA2 EQU CONTA3 EQU goto inicio org 0x04 inicio BSF STATUS,5 CLRF TRISB MOVLW 0XFF MOVWF TRISD BCF STATUS,5 CLRF PORTB MOVLW B'00000001' MOVLW D'8' MOVWF CONTA2 MOVLW D'8' MOVWF CONTA3 CLRF TRISB ;-------------------------------------------------------BTFSC PORTD,1 PREGUNTAR2 BTFSC PORTD,0 goto CICLO GOTO TERMINAR PREGUNTAR2 BTFSC PORTD,0 GOTO DOS GOTO CICLO2 ;--------------------------------------------------------Inicio_retardo MOVLW D'100' MOVWF M MOVLW D'250' MOVWF CONTA ; CONTA W NOP PREGUNTAR GOTO 0X23 0X24 EQU 0X21

En ocasiones necesitamos controlar ciertas seales como es el caso de un conjunto de leds. En este reporte mostraremos la programacin de un control de leds, pero como lo mencionaba anteriormente puedes ser otros tipos de seales, como pulsos para activas motores, o pulsos para activar y/o desactivar electrovlvulas. CONTENIDO El control consiste en lo siguiente: Vamos a tener dos entradas de control en los puertos D0 y D1, el cual cuando se encuentre en la siguiente combinacin 00 respectivamente los leds permanecers apagados como se muestra en la figura. Al momento que se active a D0, entonces cambiara de estado, y los leds comenzaran a correr hacia un sentido (derecha) fig.2 Al momento que se desactive a D0 y se active a D1, entonces cambiara de estado, y los leds comenzaran a correr hacia un sentido (izquierda) fig.3

EQU

Reporte Prcticas. Jos Antonio Villalobos Maza


DECFSZ CONTA,F GOTO $-.2 DECFSZ M,F GOTO $-.6 return ;--------------------------------------------------------CICLO MOVWF PORTB RLF PORTB CALL Inicio_retardo MOVF PORTB,0 GOTO PREGUNTAR ;---------------------------------------------------------CICLO2 MOVWF PORTB RRF PORTB CALL Inicio_retardo MOVF PORTB,0 GOTO PREGUNTAR ;---------------------------------------------------------TERMINAR CLRF PORTB GOTO PREGUNTAR ;---------------------------------------------------------DOS MOVLW B'00000001' MOVWF PORTB DOSDOS RLF PORTB CALL Inicio_retardo MOVF PORTB,0 DECFSZ CONTA2,F GOTO DOSDOS MOVLW B'00000001' MOVWF PORTB DOSTRES RRF PORTB CALL Inicio_retardo MOVF PORTB,0 DECFSZ CONTA3,F GOTO DOSTRES GOTO inicio END

Segundo Corte
Se introducen 8 bits en un puerto, por programacin se divide en 2 bloques o nibbles que se restan o suman los primeros 4 menos los 4 ltimos, y el resultado se muestra por medio de cuatro bits de otro puerto. La operacin que se desea realizar depende de la activacin de un bit en otro puerto, es decir, el usuario tiene la posibilidad de restar o sumar los mismos bits por medio de la activacin de una lnea en otro puerto. PROGRAMACIN:
INCLUDE P16F877A.INC LIST P=16F877A __CONFIG _HS_OSC _WDT_OFF ORG 0X00 ORG 0X04 SUMA EQU 0X20 RESTA EQU 0X21 A EQU 0X22 BB EQU 0X23 INICIO BSF MOVLW MOVWF MOVWF MOVLW MOVWF MOVLW MOVWF BCF COND MOVFW TRISA ANDLW MOVWF BTFSC GOTO MOVFW ANDLW MOVWF BTFSC GOTO GOTO STATUS,5 0X06 ADCON1 TRISA B'11111111' TRISB B'00000000' TRISD STATUS,5 B'00000100' SUMA SUMA,2 SUMMA TRISA B'00000010' RESTA RESTA,1 SUS COND

&

Practica 2: Suma y resta de 4 bits Resumen: Esta prctica est fundamentada en operaciones simples (suma, resta) con nmeros binarios.

SUMMA MOVF

CONTENIDO El control consiste en lo siguiente:

PORTB,0 ANDLW B'00001111' MOVWF A MOVF PORTB,0 ANDLW B'11110000' MOVWF BB SWAPF BB,0 ADDWF A,0 MOVWF PORTD

Reporte Prcticas. Jos Antonio Villalobos Maza


GOTO SUS MOVF ANDLW MOVWF MOVF ANDLW MOVWF SWAPF SUBWF MOVWF GOTO END COND PORTB,0 B'00001111' A PORTB,0 B'11110000' BB BB,0 A,0 PORTD COND

Segundo Corte
MOVWF TRISA MOVLW B'00000000' MOVWF TRISC BCF STATUS,5 ;---------------------------------------------------NOMBRE CLRF PORTC MOVLW B'01111000';T MOVWF PORTC CALL RETARDO MOVLW B'01011111';O MOVWF PORTC CALL RETARDO MOVLW B'00110110'; MOVWF PORTC CALL RETARDO MOVLW B'01010000';I MOVWF PORTC CALL RETARDO MOVLW B'01111000';T MOVWF PORTC CALL RETARDO MOVLW B'01011111';O MOVWF PORTC CALL RETARDO MOVLW B'01000000';_ MOVWF PORTC CALL RETARDO GOTO NOMBRE END

Prctica 3: Display de 7 segmentos CONTENIDO Esta prctica fue muy sencilla, su funcionamiento prcticamente depende de una programacin bsica y muy lgica. Se necesitaba mostrar en el display de 7 segmentos un nombre, el cual se program mandando la seal en binario a un puerto directamente y se colocaba un retardo despus de la activacin de cada letra. PROGRAMACIN
INCLUDE P16F877A.INC LIST P=16F877A __CONFIG _HS_OSC & _WDT_OFF ORG 0X00 CONTA EQU 0X20 CONTA1 EQU 0X21 CONTA2 EQU 0X22 GOTO INICIO ;--------------------------------------------------RETARDO MOVLW D'5' MOVWF CONTA MOVLW D'250' MOVWF CONTA1 MOVLW D'200' MOVWF CONTA2 DECFSZ CONTA2,F GOTO $-.1 DECFSZ CONTA1,F GOTO $-.5 DECFSZ CONTA,F GOTO $-.9 NOP RETURN ;--------------------------------------------------INICIO BSF STATUS,5 MOVLW 0X06 MOVWF ADCON1

Practica 3: LCD y teclado matricial Resumen: La prctica consiste en hacer un teclado matricial de 4x4 en el cual al pulsar una tecla el valor de esta pueda visualizarse en el LCD.

CONTENIDO La estructura consiste en lo siguiente: El teclado est formado por 4 columnas y 4 filas, en la que las filas estn conectadas a 5v, por lo que enva un 1 lgico como entrada al microcontrolador PIC, las filas sern salidas del PIC, representadas por un 0 lgico, el puerto que se configur para el teclado matricial fue el puerto C. El puerto configurado para el control del LCD fue el puerto A y para el de envo de datos al mismo fue el puerto D. Las teclas del LCD correspondan a los siguientes dgitos de 0-9 y A-F, por lo tanto en cuanto se pulsara cualquier tecla, el valor

Reporte Prcticas. Jos Antonio Villalobos Maza


de esa tecla tena que desplegarse en el LCD. Por lo que se tena que hacer una revisin fila x columna una a una, para as poder determinar las coordenadas de la tecla que fue activada. Por lo que debi hacerse el siguiente programa: PROGRAMACIN
list p=16f877 include <p16f877.inc> __CONFIG _WDT_OFF & _XT_OSC errorlevel 1,-301 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 0X20 0X21 0X22 0X23 0X24 0X26 0X27 0X28 0X29 0X2A 0X2B ORG GOTO TECLADO CLRF TECLA MOVLW b'00001110' MOVWF PORTC COLUMNAS BTFSS PORTC,4 goto ANTIRREBOTE INCF TECLA,1 BTFSS PORTC,5 goto ANTIRREBOTE INCF TECLA,1 BTFSS PORTC,6 goto ANTIRREBOTE INCF TECLA,1 BTFSS PORTC,7 goto ANTIRREBOTE INCF TECLA,1 ;-----------------------------------MOVLW d'16' SUBWF TECLA,0 BTFSC STATUS,2 GOTO TECLADO BSF STATUS,0 RLF PORTC,1 GOTO COLUMNAS ;------------------------------------------------TABLA ADDWF PCL,1 RETLW "0" RETLW "1" RETLW "2" RETLW "3" 0X00 INICIO

Segundo Corte
RETLW "4" RETLW "5" RETLW "6" RETLW "7" RETLW "8" RETLW "9" RETLW "A" RETLW "B" RETLW "C" RETLW "D" RETLW "E" RETLW "F" ;------------------------------------ANTIRREBOTE B1 BTFSS PORTC,4 GOTO B1 B2 BTFSS PORTC,5 GOTO B2 B3 BTFSS PORTC,6 GOTO B3 B4 BTFSS PORTC,7 GOTO B4 MOVF TECLA,0 CALL TABLA ;--------------------------------------RETURN ;---------------------------------LCD MOVWF MOVLW CALL MOVLW CALL MOVLW CALL VAR3 0X38 CONTROL 0x0C CONTROL 0x84 CONTROL

; TECLA VAR3 CONT1 CONT2 CONT3 VAR1 VAR2 VAR4 AUX AUX2 AUX3

MOVF VAR3,0 CALL DATO CALL TIME65 RETURN ;-------------------------------TIEMPO1 MOVLW D'14' MOVWF CONT1 CICLO2 MOVLW D'40' MOVWF CONT2 CICLO1 DECFSZ CONT1,1 GOTO CICLO1 DECFSZ CONT2,1 GOTO CICLO1 RETURN TIME65 MOVLW D'15' MOVWF CONT2 DECRE9 DECFSZ CONT2,1 GOTO DECRE9 RETURN ;------------------------------------CONTROL BCF PORTA,0 GOTO DATO2 DATO BSF PORTA,0 DATO2 BSF PORTA,1 MOVWF PORTD BCF PORTA,1 CALL TIEMPO1 RETLW 0 ;--------------------------------------;----------------------------------------INICIO BSF STATUS,5 MOVLW 0X06 MOVWF ADCON1 CLRF TRISA

Reporte Prcticas. Jos Antonio Villalobos Maza


CLRF TRISD MOVLW 0XF0 MOVWF TRISC BCF STATUS,5 ;----------------------------------------INI CALL ;MOVLW 0X01 ;CALL MOVLW 0X01 CALL ;CALL BCF ;CALL TIEMPO1 CONTROL CONTROL TIME65 STATUS,2 TECLADO

Segundo Corte

include"p16f877a.inc" list p=16f877a errorlevel 1,-302 __Config _XT_OSC & _WDT_OFF ;---------------------------------------------------------A EQU 0X21 A2 EQU 0X22 A3 EQU 0X23 CONT1 EQU 0X24 CONT2 EQU 0X25 VAR3 EQU 0X26 ;---------------------------------------------------------ORG 0x00 GOTO CONFI ORG 0x04 ;---------------------------------------------------------CONFI BSF STATUS,5 MOVLW 0X06 MOVWF ADCON1 CLRF TRISA MOVLW B'00000001' MOVWF TRISB MOVLW 0X00 MOVWF TRISC MOVLW 0X00 MOVWF TRISD BCF STATUS,5 GOTO IV ;---------------------------------------------------------VERDE BTFSS PORTB,0 GOTO IV GOTO VERDE ;---------------------------------------------------------IV BTFSC PORTB,0 GOTO $-.1 MOVLW 0X01 CALL CONTROL BSF PORTD,1 CALL FRASE MOVLW "A" CALL LCD2 MOVLW "m" CALL LCD2 MOVLW "a" CALL LCD2 MOVLW "r" CALL LCD2 MOVLW "i" CALL LCD2 BTFSC PORTB,0 GOTO ROJO GOTO $-.14 ;---------------------------------------------------------ROJO BTFSS PORTB,0 GOTO IR GOTO ROJO ;--------------------------------------------------------IR BTFSC PORTB,0 GOTO $-.1 MOVLW 0X01 CALL CONTROL

; PROGRA CALL

TECLADO CALL LCD GOTO PROGRA ;--------------------------------END

Practica 3: Rel y LCD Resumen: La prctica consiste en controlar un relevador por medio del microcontrolador PIC para encender dos lmparas de diferentes colores, y desplegar en una pantalla LCD el color de la lmpara que est encendida.

CONTENIDO La estructura consiste en lo siguiente: Con un pulsador mandamos una seal de entrada (1 lgico) al microcontrolador para que ste a su vez emita una seal de salida la cual activar el relevador; en primera instancia una de las dos lmparas ya estar prendida, y por consiguiente el LCD ya deber desplegar el color de la lmpara encendida. Para esto se utiliz al pin B0 como entrada de la seal del pulsador, el pin D1 para la salida que controlar al relevador y el puerto C para la salida de datos que irn al LCD y el puerto A para el control del mismo. PROGRAMACIN

Reporte Prcticas. Jos Antonio Villalobos Maza


BCF CALL MOVLW CALL MOVLW CALL MOVLW CALL PORTD,1 FRASE "A" LCD2 "z" LCD2 "u" LCD2 DATO2

Segundo Corte
BSF PORTA,1 MOVWF PORTC BCF PORTA,1 CALL TIEMPO1 RETLW 0 ;---------------------------------------------------------FRASE MOVLW "L" CALL LCD MOVLW "a" CALL LCD2 MOVLW "m" CALL LCD2 MOVLW "p" CALL LCD2 MOVLW "a" CALL LCD2 MOVLW "r" CALL LCD2 MOVLW "a" CALL LCD2 MOVLW ":" CALL LCD2 MOVLW " " CALL LCD2 RETURN ;---------------------------------------------------------END

MOVLW "l" CALL LCD2 BTFSC PORTB,0 GOTO VERDE GOTO $-.11 ;---------------------------------------------------------MS MOVLW d'100' MOVWF A2 MOVLW d'250' MOVWF A NOP DECFSZ A,F GOTO $-.2 DECFSZ A2,F GOTO $-.6 RETURN ;---------------------------------------------------------LCD MOVWF VAR3 MOVLW 0X38 CALL CONTROL MOVLW 0X0C CALL CONTROL MOVLW 0X84 CALL CONTROL MOVLW 0X84 CALL CONTROL MOVF VAR3,0 CALL DATO RETURN ;---------------------------------------------------------LCD2 MOVWF VAR3 MOVLW 0X38 CALL CONTROL MOVLW 0X0C CALL CONTROL MOVLW 0X0C CALL CONTROL MOVLW 0X38 CALL CONTROL MOVF VAR3,0 CALL DATO RETURN ;---------------------------------------------------------TIEMPO1 MOVLW d'03' MOVWF CONT1 DECRE1 MOVLW d'255' MOVWF CONT2 DECRE DECFSZ CONT2,1 GOTO DECRE DECFSZ CONT1,1 GOTO DECRE1 RETURN ;---------------------------------------------------------CONTROL BCF PORTA,0 GOTO DATO2 DATO BSF PORTA,0

Prctica 7: PWM La prctica se fundamenta en el diseo de un controlador de modulacin por ancho de onda, basado en un PIC 16F877a.El cual podra ser utilizado para controlar la velocidad de un motor, pero en esta prctica solo se observa la potencia de la luminosidad de un diodo LED Esta prctica hace uso del convertidor que contiene el microcontrolador en el puerto A, el cual se controla por medio de un potencimetro se regula el ancho de pulso, por medio del control de voltaje que se deja pasar al microcontrolador. Este es dividido en dos partes y bajo este principio se realiza la programacin. PROGRAMACIN

include"p16f877a.inc" list p=16f877a errorlevel 1,-302 __Config _XT_OSC & _WDT_OFF & _LVP_OFF

Reporte Prcticas. Jos Antonio Villalobos Maza


;---------------------------------------------------------------------------------ORG 0x00 GOTO CONFI ORG 0x04 ;---------------------------------------------------------------------------------CONFI CLRF CCP1CON CLRF TMR2 MOVLW 0X7F MOVWF PR2 CALL CAD CLRF INTCON ;---------------------------------------------------------------------------------BSF STATUS,5 CLRF TRISC CLRF PIE1 MOVLW b'00000001' MOVWF TRISA MOVLW b'00001110' MOVWF ADCON1 BCF STATUS,5 ;---------------------------------------------------------------------------------CLRF PIR1 MOVLW 0X2C MOVWF CCP1CON MOVLW b'00000111' MOVWF T2CON PWM BTFSS PIR1,1 GOTO PWM BCF PIR1,1 ;---------------------------------------------------------------------------------CAD BSF MOVLW MOVWF BCF MOVLW MOVWF CICLO BTFSS GOTO BCF BSF NOP BTFSC GOTO MOVF MOVWF RETURN END STATUS,RP0 b'11010111' OPTION_REG STATUS,RP0 b'01000001' ADCON0 INTCON,T0IF CICLO INTCON,T0IF ADCON0,2 ADCON0,2 ESPERA ADRESH,0 CCPR1L

Segundo Corte
CONCLUSIN Durante este corte, se realizaron 7 prcticas las cules, necesitaban la implementacin de conocimientos bsicos en programacin lgica en lenguaje ensamblador. Al mismo tiempo que se adquiran conocimientos relacionados a la programacin de Microcontroladores, se adquiran conocimientos en electrnica, puesto que se realizaron circuitos fsicos donde se poda observar el correcto funcionamiento de la programacin. Las ltimas prcticas me parecieron muy importantes puesto que resultan muy satisfactorias en aplicaciones como el control de motores, o en sistemas que utilizan corriente alterna y necesitan ser controlados y/o manipulados. Por lo tanto concluyo este reporte diciendo que fue muy satisfactorio el hecho de haber realizado las prcticas con xito. BIBLIOGRAFA es.wikipedia.org/wiki/Modulacin_por_an cho_de_pulso ww1.microchip.com/downloads/en/device doc/39582b.pdf http://www.netrino.com/EmbeddedSystems/How-To/PWM-Pulse-WidthModulation

ESPERA

You might also like