reporte de prácticas unidad 1

15
INSTITUTO TECNOLOGICO DE NOGALES Reporte de prácticas unidad 1 Castillo Atondo Jesús Elías Microcontroladores 17/03/2015 1 Prof. Eduardo Sánchez

Upload: elias-castillo-atondo

Post on 17-Nov-2015

225 views

Category:

Documents


5 download

DESCRIPTION

medicion de variables con una placa arduino

TRANSCRIPT

Reporte de prcticas unidad 1

Instituto tecnologico de nogales

Reporte de prcticas unidad 1

Castillo Atondo Jess ElasMicrocontroladores

Prof. Eduardo Snchez

17/03/2015

ndiceTabla de contenidondice2Objetivo general3Introduccin3Actividades3Practica #13Objetivo:3Desarrollo:3Simulacin practica #15Circuito de practica #15Practica #26Objetivo:6Desarrollo:6Simulacion de practica #27Estructura interna de un display de 7 segmentos8Practica #38Objetivo:8Desarrollo:9Circuito de practica #312Conclusiones generales12Bibliografa13

Objetivo generalRealizar programas para el control de un microcontrolador PIC16F877A utilizando lenguaje ensamblador.

IntroduccinEllenguaje ensamblador, oassembler(assembly languageeningls), es unlenguaje de programacin debajo nivelpara loscomputadores,microprocesadores,microcontroladoresy otros . Implementa una representacin simblica de loscdigos de mquinabinarios y otras constantes necesarias para programar unaarquitecturadada deCPUy constituye la representacin ms directa delcdigo mquinaespecfico para cada arquitectura legible por un programador. Esta representacin es usualmente definida por el fabricante dehardware, y est basada en losmnemnicosque simbolizan los pasos de procesamiento (lasinstrucciones), losregistrosdel procesador, las posiciones de memoriay otras caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto especfico de cierta arquitectura de computadorfsica (o virtual). Esto est en contraste con la mayora de los lenguajes de programacin dealto nivel, que idealmente sonporttiles.ActividadesPractica #1Objetivo:Realizar el programa en lenguaje ensamblador para una secuencia de leds deslizantes.Desarrollo:El primer paso fue programar y compilar el cdigo en MP-LAB XCdigo:LISTP=16F877A; Procesador utilizado.INCLUDE; En este fichero se definen las etiquetas del PIC.__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF; Configuracin para el grabador.

con1 equ 0x0C ; Variable de temporizacion. con2equ 0x0D ; Variable de temporizacion.

#definebanco1BSF STATUS,RP0#definebanco0BCF STATUS,RP0 ORG 0x00 GOTO inicio

delay: CLRF con1 MOVLW 0xF0 MOVWF con2 loop: DECFSZ con1,F GOTO loop DECFSZ con2,F GOTO loop RETURN ;******************** PROGRAMA PRINCIPAL ******************** inicio banco1; Banco 1. CLRF TRISB ; limpia Registro B banco0; Banco 0. MOVLW 0x80; PORTB 10000000 MOVWF PORTB; BCF STATUS,C; gira_izqBTFSS PORTB,7;si el bit7 = 1 salta y dira a la izq GOTO G_izq; GOTO gira_der;G_izq RLF PORTB,F;registro F a izq CALL delay; CALL delay; CALL delay; CALL delay;BTFSS PORTB,0;salta si bit0 = 1 GOTO gira_izqBCF PORTB,7; gira_der BTFSS PORTB,0;salta si bit0 = 1 GOTO G_der GOTO gira_izqG_der RRF PORTB,F CALL delay GOTO gira_der; END ; Fin de programa.Cuando compilamos el programa debemos asegurarnos de que no existan errores y despus ir a la carpeta de ubicacin del archivo con extensin .hex.Con ese archivo podemos realizar una simulacin con el programa ISIS de PROTEUS para verificar que la programacin funcione correctamente.Un esquema de la simulacin:

Simulacin practica #1Y por ltimo cuando comprobamos que la simulacin esta correcta procedemos a armar el circuito:

Circuito de practica #1

Practica #2Objetivo:Realizar un contador del 0 al 9 en un display de 7 segmentos utilizando lenguaje ensambladorDesarrollo:Crear el cdigo para el contador en MP-LAB X:Cdigo:LISTP=16F877A; Procesador utilizado.INCLUDE; En este fichero se definen las etiquetas del PIC.__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF; Configuracin para el grabador.

con1 equ 0x0C ; con2equ 0x0D ; conta equ 0x00; #definebanco1BSF STATUS,RP0#definebanco0BCF STATUS,RP0 ORG 0x00 GOTO inicio ORG 0X05

NUMERO ADDWF PCL,F; RETLW 0xC0;regresa al registo W el numero 0RETLW 0xF9; regresa al registo W el numero 1RETLW 0xA4;regresa al registo W el numero 2RETLW 0xB0;regresa al registo W el numero 3RETLW 0x99;regresa al registo W el numero 4RETLW 0x92;regresa al registo W el numero 5RETLW 0x82;regresa al registo W el numero 6RETLW 0xF8;regresa al registo W el numero 7RETLW 0x80;regresa al registo W el numero 8RETLW 0x18;regresa al registo W el numero 9

delay: CLRF con1 MOVLW 0xF0 MOVWF con2 loop: DECFSZ con1,F GOTO loop DECFSZ con2,F GOTO loop RETURN inicio banco1; Banco 1. CLRF TRISB ; limpia Registro B banco0; Banco 0 CLRF PORTB; BCF STATUS,C; ASCENDENTE CLRF conta; comienza el conteorepetir MOVF conta,0; CALL NUMERO; decodificador MOVWF PORTB; CALL delay; INCF conta,1; MOVF conta,0; XORLW .10; cuando la variable conta es igual a 10 se reinicia el conteo BTFSS STATUS,Z; GOTO repetir; GOTO ASCENDENTE; END ; Fin de programa.

Compilamos el programa y tomamos el archivo con extensin .hex para hacer la simulacin y programar fsicamente el pic.

Simulamos el circuito utilizando el programa ISIS de PROTEUS:

Simulacion de practica #2

Para la conexin del display de 7 segmentos se debe determinar si es de anodo o catodo comn de esto depender los valores que tome el decodificador.en nuestro caso contamos con un display de anodo comn

Estructura interna de un display de 7 segmentosPor ltimo se arm el circuito y se verifico su funcionamiento:Circuito de practica #2

Practica #3Objetivo:Control de un display LCD por medio de un PIC16F877ADesarrollo:Crear el cdigo para el control del display LCD en MP-LAB X:List p=16F877A ;Tipo de procesadorinclude "P16F877A.INC" ;Definiciones de registros internos__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC#define ENABLE bsf PORTE,2 ;Activa#define DISABLE bcf PORTE,2 ;Desactiva#define ESCRIBIR bcf PORTE,1 ;Pone LCD en Modo WR#define COMANDO bcf PORTE,0 ;Desactiva RS (modo comando)#define DATO bsf PORTE,0 ;Activa RS (modo datos)CBLOCK 0x20CONTA1,CONTA2,CONTA3,MENSAJE,TIEMPO,TEMP1,TEMP2,TEMP3,CONTEOENDC; CDIGOS

ORG 0 ; El programa comienza en la direccin 0.Iniciobsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.movlw b'00000110'movwf ADCON1 ;Puerta A digitalclrf TRISC ; Las lneas del Puerto B configuradas como salidas.clrf TRISE ; Las lneas del Puerto E configuradas como salidas.bcf STATUS,RP0 ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.PrincipalCOMANDOmovlw 38Hcall Print_LCDmovlw 06Hcall Print_LCDmovlw 0EHcall Print_LCDDATOmovlw 'T' ;54H ; Codigo Ascii de "T" a Wcall Print_LCDmovlw 'H' ;45H ; Codigo Ascii de "H" a Wcall Print_LCDmovlw 'I' ; Codigo Ascii de "I" a Wcall Print_LCDmovlw 'S' ; Codigo Ascii de " S" a Wcall Print_LCDmovlw ' ' ; Codigo Ascii de " " a Wcall Print_LCDmovlw 'I' ; Codigo Ascii de "I" a Wcall Print_LCDmovlw 'S' ; Codigo Ascii de "S" a Wcall Print_LCDmovlw ' ' ; Codigo Ascii de " " a Wcall Print_LCDmovlw 'M' ; Codigo Ascii de "M" a Wcall Print_LCDmovlw 'Y' ; Codigo Ascii de "Y" a Wcall Print_LCDmovlw ' ' ; Codigo Ascii de " " a Wcall Print_LCDmovlw 'S' ; Codigo Ascii de "S" a Wcall Print_LCDmovlw 'W' ; Codigo Ascii de "W" a Wcall Print_LCDmovlw 'A' ; Codigo Ascii de "A" a Wcall Print_LCDmovlw 'M' ; Codigo Ascii de "M" a Wcall Print_LCDmovlw 'P' ; Codigo Ascii de "P" a Wcall Print_LCDgoto Principal ; Crea un bucle cerrado e infinito.Print_LCDmovwf PORTC ; El contenido de W se deposita en el puerto de salida.call LCD_Ecall RETAR_100_MSreturnLCD_EENABLE ;E = 1nop : nop : nopDISABLE ;E = 0returnRETAR_100_MSmovlw d'100'movwf CONTA2LOOP3 movlw d'110'movwf CONTA3LOOP4 nop : nop : nop : nop : nop : nopdecfsz CONTA3goto LOOP4decfsz CONTA2goto LOOP3returnEND ; Fin del programa.

Debido a que nuestro PIC se dao del puerto B; seleccionamos el puerto C para tomarlos como las salidasSi bien en lenguaje ensamblador podemos enviar un carcter poniendo entre una comilla el simbolo que deseamos visualizar, existe un cdigo llamado ASCII con el cual cada simbolo esta codificado.A continuacin la tabla de cdigo ASCII:

tabla de cdigo ASCII

Despus de compilar la programacin y que no nos mostr ningn error, simulamos la programacin:

simulacin de practica #3

Por ltimo se arm el circuito y se comprob el funcionamiento:

Circuito de practica #3

Conclusiones generalesLos microcontroladores se han estado utilizando durante los ltimos aos en la automatizacin y proyectos industriales.Sin embargo en este caso se utilizaron para mtodos de aprendizaje y no enfocamos en el lenguaje ensamblador, este es un lenguaje de bajo nivel sim embargo el PIC se puede programar utilizando otro tipo de lenguaje y otro compilador como por ejemplo C.Se comprendi todo el proceso de cmo se utiliza un PIC, desde cmo crear un cdigo de programa en la computadora en lenguaje ensamblador (para eso hay que aprender para que sirven las 35 instrucciones del PIC), simular dicho cdigo mediante el uso de software y por ultimo armar fsicamente el circuito y comprobar el correcto funcionamiento de este.

Bibliografahttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://cosasdeingenieria.com/esp/index/item/561/49/curso-basico-intensivo-de-pics-de-microchip-en-lenguaje-c-presencial

3