Informe Labo 2 - Micros II

18
UNIVERSIDAD PRIVADA DEL VALLE FACULTAD DE INFORMATICA Y ELECTRONICA INGENIERIA ELECTRONICA CAMPUS TIQUIPAYA MICROPROCESADORES II Informe de Laboratorio Nº 2 CONTADORES DE EVENTOS Y TEMPORIZADORES Grupo “A” Estudiante: Ariel Adrián Carvajal Pardo Docente: Msc. Ing. Gerson Pérez Villarroel Evaluación

description

informe del Laboratorio II de la materia de MIcroprocesadores de la universidad del valle

Transcript of Informe Labo 2 - Micros II

Page 1: Informe Labo 2 - Micros II

UNIVERSIDAD PRIVADA DEL VALLEFACULTAD DE INFORMATICA Y ELECTRONICAINGENIERIA ELECTRONICA CAMPUS TIQUIPAYA

MICROPROCESADORES II

Informe de Laboratorio Nº 2

CONTADORES DE EVENTOS Y TEMPORIZADORES

Grupo “A”

Estudiante: Ariel Adrián Carvajal Pardo

Docente: Msc. Ing. Gerson Pérez Villarroel

Cochabamba 01 de Abril

Gestión I – 2015

Evaluación

Page 2: Informe Labo 2 - Micros II

UNIVERSIDAD PRIVADA DEL VALLE

SERVICIOS DE LABORATORIO

LABORATORIOS DE DISEÑO ELECTRONICO II

PRACTICA Nº 2

CONTADORES DE EVENTOS Y TEMPORIZADORES

1. OBJETIVOS.

Al finalizar la práctica el estudiante:

Manejará y configurará los puertos de entrada y salida de los microcontroladores PIC. Será capaz de operar los lenguajes de entorno de programación de los microcontroladores. Estará familiarizado con el repertorio de instrucciones de los PIC asociados a la

configuración de los puertos. Será capaz de manejará y configurar los distintos módulos de temporización en los

microcontroladores PIC, para su utilización en aplicaciones como contadores de eventos o como temporizadores.

2. MARCO TEORICO

En los últimos 40 años, los adelantos investigativos en la ciencia y tecnología han permitido revolucionar al mundo con una serie de inventos e innovaciones en todas las áreas del saber. Uno de estos campos más investigados y explotados es sin duda la electrónica.

La automatización industrial e incluso la domótica, que es la automatización del hogar, está expandiéndose inmensurablemente; hoy en día se vive una era donde todo tiende a ser automático, con el fin de facilitar el curso de la vida de la humanidad. (Ledezma, 2010)

Set de Instrucciones

Hasta aquí, para poder iniciar a programar el Microcontrolador PIC 16F877, solo necesitamos conocer el set de instrucciones el cual se presenta en la siguiente figura:

En él se puede ver el Mnemonico de las instrucción, sus operandos, descripción, los ciclos que toma su ejecución, el Opcode y los bit que puede afectar cada operación. Están clasificadas de acuerdo a su funcionamiento si están dirigidas a Operaciones de Byte, de Bit o de Literales y Control.

Page 3: Informe Labo 2 - Micros II

Es importante entender cada una de ellas y memorizarlas para poder programar de manera más eficiente el micro.

Este conjunto de instrucciones corresponden a la programación ASM que es la más común, la de más bajo nivel, la que interactúa directamente con el micro haciéndolo más eficiente en tiempo de ejecución, por eso es importante dominarlo aunque el objetivo sea programar en lenguaje C, existirá un momento en el que seguramente necesitaras saber Ensamblador, además es el ideal para aprender la programación de PIC's.

Este es el resumen de las instrucciones, la idea es tener una noción de las instrucciones para poder entender mejor nuestro primer programa; más adelante veremos más a detalle cada una de las instrucciones para ver casos específicos en los que nos pueden servir. (S.,2007)

Page 4: Informe Labo 2 - Micros II

3. MATERIALES

1 Multímetro Digital

Fuente de energía

Bread boardO

Protoboard

Resistencias de Diseño

Cables para Fuente

Microcontrolador 16F887A

Page 5: Informe Labo 2 - Micros II

LEDS

Display 7 Seg

4. PROCEDIMIENTO.

Parte 2.1Desarrollar un programa, utilizando el modulo temporizadores, para contar eventos y mostrar la cuenta en un displays de 7 segmentos conectado a un puerto configurado como salida. El conteo debe ser en base hexadecimal que empiece en 0 y termine en F.

CODIGOlist p=16f877Ainclude <p16f877A.inc> 

org 0x00

nop _INICIO

bsf STATUS,RP0 ;Ir banco 1bcf STATUS,RP1movlwb'00000110' ;PA como entrada digitalmovwfADCON1movlw0xFFmovwfTRISA ;PA entradaclrf TRISB ;PB salidamovlw b'11111000' ;Valor a escribir en el registro de configuración movwf OPTION_REG ;Configuracion del TMRObcf STATUS,RP0 ;Ir banco 0bcf STATUS,RP1clrf TMR0 ;TMR0=0 inicializamos el contador en ceroclrf PORTB

_BUCLE

Page 6: Informe Labo 2 - Micros II

movf TMR0,W ;W=TMR0call _TABLAmovwf PORTB ;Escribe el valor de TMR0 en PORTBgoto _BUCLE ;Salta a la etiqueta bucle

_TABLA addwf PCL,F ;CONT ES EL CONTADOR DEL PROGRAMAretlw b'00111111' ;SE INTRODUCE EL NUMERO 0retlw b'00000110' ;SE INTRODUCE EL NUMERO 1retlw b'01011011' ;SE INTRODUCE EL NUMERO 2retlw b'01001111' ;SE INTRODUCE EL NUMERO 3retlw b'01100110' ;SE INTRODUCE EL NUMERO 4retlw b'01101101' ;SE INTRODUCE EL NUMERO 5retlw b'01111101' ;SE INTRODUCE EL NUMERO 6retlw b'00000111' ;SE INTRODUCE EL NUMERO 7retlw b'01111111' ;SE INTRODUCE EL NUMERO 8retlw b'01101111' ;SE INTRODUCE EL NUMERO 9retlw b'01110111' ;SE INTRODUCE LA LETRA Aretlw b'11111111' ;SE INTRODUCE LA LETRA B.retlw b'00111001' ;SE INTRODUCE LA LETRA Cretlw b'01011110' ;SE INTRODUCE LA LETRA dretlw b'01111001' ;SE INTRODUCE LA LETRA Eretlw b'01110001' ;SE INTRODUCE LA LETRA F

END

SIMULACION

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP2 16

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP1 20

RB7/PGD40

RB6/PGC 39RB5 38RB4

37RB3/PGM

36RB2

35RB1 34

RB0/INT33

RD7/PSP730

RD6/PSP6 29RD5/PSP5 28RD4/PSP4

27RD3/PSP3

22RD2/PSP2

21

RC7/RX/DT26

RC6/TX/CK 25RC5/SDO 24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

0

Page 7: Informe Labo 2 - Micros II

LAYOUT

Parte 2.2Desarrollar un programa, utilizando temporizadores para generar un retardo de 0,5 segundos. A partir del cual se incrementa un contador cuyo valor se muestrar en un displays de 7 segmentos conectado a un puerto configurado como salida. El conteo debe ser en base hexadecimal que empiece en 0 y termine en F.

CODIGO

list p=16f877Ainclude <p16f877A.inc>CONT EQU 0X20AUX EQU 0X19

org 0x00nop

_INICIO

bsf STATUS,RP0 ;Ir banco 1bcf STATUS,RP1clrf TRISB ;PB salidamovlw .125 ;Valor a escribir en el registro de configuración movwf PR2 ;Configuracion de las cuantas del PR2

bcf STATUS,RP0 ;Ir banco 0bcf STATUS,RP1movlwb'01001011'

movwf T2CONclrf TMR2 ;TMR2=0 inicializamos el contador en ceroclrf PORTB

Page 8: Informe Labo 2 - Micros II

_VACIARclrf CONT

_MAIN movf CONT,W ;W=CONT

call _TABLAmovwf PORTB ;Escribe el valor de TMR2 en PORTBcall _RETARDOincf CONTgoto _MAIN ;Salta a la etiqueta _MAIN

_RETARDOmovlw.25movwfAUX

_ESPERA1clrf TMR2bcf PIR1, TMR2IFbsf T2CON, TMR2ON

_ESPERAbtfss PIR1, TMR2IFgoto _ESPERA decfsz AUX,F goto _ESPERA1bcf T2CON, TMR2ONreturn

_TABLA addwf PCL,F ;CONT ES EL CONTADOR DEL PROGRAMAretlw b'00111111' ;SE INTRODUCE EL NUMERO 0retlw b'00000110' ;SE INTRODUCE EL NUMERO 1retlw b'01011011' ;SE INTRODUCE EL NUMERO 2retlw b'01001111' ;SE INTRODUCE EL NUMERO 3retlw b'01100110' ;SE INTRODUCE EL NUMERO 4retlw b'01101101' ;SE INTRODUCE EL NUMERO 5retlw b'01111101' ;SE INTRODUCE EL NUMERO 6retlw b'00000111' ;SE INTRODUCE EL NUMERO 7retlw b'01111111' ;SE INTRODUCE EL NUMERO 8retlw b'01101111' ;SE INTRODUCE EL NUMERO 9retlw b'01110111' ;SE INTRODUCE LA LETRA Aretlw b'11111111' ;SE INTRODUCE LA LETRA Bretlw b'00111001' ;SE INTRODUCE LA LETRA Cretlw b'01011110' ;SE INTRODUCE LA LETRA Dretlw b'01111001' ;SE INTRODUCE LA LETRA Eretlw b'01110001' ;SE INTRODUCE LA LETRA Fgoto _VACIAR

END

Page 9: Informe Labo 2 - Micros II

LAYOUT

SIMULACION

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP1 17

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD 40RB6/PGC 39

RB538

RB437

RB3/PGM36

RB2 35RB1

34RB0/INT

33

RD7/PSP7 30RD6/PSP6 29RD5/PSP5

28RD4/PSP4

27RD3/PSP3

22RD2/PSP2 21

RC7/RX/DT 26RC6/TX/CK 25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U2

PIC16F877A

Parte 2.3Realizar un programa que rote a la izquierda el encendido de uno de ocho LEDs conectados a un puerto configurado como salida. El salto de la rotación de LED a LED debe ser en primera instancia cada 0,0625 segundos durante 4 y luego de 0,25 segundos durante los siguientes 4 segundos.

Page 10: Informe Labo 2 - Micros II

CODIGO

list p=16f877Ainclude <p16f877A.inc>CONT EQU 0X20AUX EQU 0X19TEMP1 EQU 0X18

org 0x00nop

_INICIO

bsf STATUS,RP0 ;Ir banco 1bcf STATUS,RP1clrf TRISC ;PC salidamovlw .125 ;Valor a escribir en el registro de configuración movwf PR2 ;Configuracion de las cuantas del PR2

bcf STATUS,RP0 ;Ir banco 0bcf STATUS,RP1movlwb'01001011'

movwf T2CONclrf TMR2 ;TMR2=0 inicializamos el contador en ceroclrf PORTCmovlw.67

movwf CONT ;CONT=W

_SECUENCIA1

movlwb'00000001' ;SE PRENDE LED DEL BIT 0movwfPORTCcall _RETARDO_06call _VERIFICAmovlwb'00000010' ;SE PRENDE LED DEL BIT 1movwfPORTCcall _RETARDO_06call _VERIFICAmovlwb'00000100' ;SE PRENDE LED DEL BIT 2movwfPORTCcall _RETARDO_06call _VERIFICAmovlwb'00001000' ;SE PRENDE LED DEL BIT 3movwfPORTCcall _RETARDO_06call _VERIFICAmovlwb'00010000' ;SE PRENDE LED DEL BIT 4movwfPORTCcall _RETARDO_06call _VERIFICA

Page 11: Informe Labo 2 - Micros II

movlwb'00100000' ;SE PRENDE LED DEL BIT 5movwfPORTCcall _RETARDO_06call _VERIFICAmovlwb'01000000' ;SE PRENDE LED DEL BIT 6movwfPORTCcall _RETARDO_06call _VERIFICAmovlwb'10000000' ;SE PRENDE LED DEL BIT 7movwfPORTCcall _RETARDO_06call _VERIFICAgoto _SECUENCIA1

_VERIFICAdecfsz CONT,Freturnbcf STATUS,Zmovlw.16

movwf CONT ;CONT=Wgoto _SECUENCIA2

_SECUENCIA2

movlwb'00000100' ;SE PRENDE LED DEL BIT 2movwfPORTCcall _RETARDO_025call _VERIFICA2movlwb'00001000' ;SE PRENDE LED DEL BIT 3movwfPORTCcall _RETARDO_025call _VERIFICA2movlwb'00010000' ;SE PRENDE LED DEL BIT 4movwfPORTCcall _RETARDO_025call _VERIFICA2movlwb'00100000' ;SE PRENDE LED DEL BIT 5movwfPORTCcall _RETARDO_025call _VERIFICA2movlwb'01000000' ;SE PRENDE LED DEL BIT 6movwfPORTCcall _RETARDO_025call _VERIFICA2movlwb'10000000' ;SE PRENDE LED DEL BIT 7movwfPORTCcall _RETARDO_025call _VERIFICA2movlwb'00000001' ;SE PRENDE LED DEL BIT 0movwfPORTCcall _RETARDO_025

Page 12: Informe Labo 2 - Micros II

call _VERIFICA2movlwb'00000010' ;SE PRENDE LED DEL BIT 1movwfPORTCcall _RETARDO_025call _VERIFICA2goto _SECUENCIA2

_VERIFICA2decfsz CONT,Freturnbcf STATUS,Zmovlw.67

movwf CONT ;CONT=Wgoto _SECUENCIA1

_RETARDO_06movlw.3movwfAUX

_ESPERA1clrf TMR2bcf PIR1, TMR2IFbsf T2CON, TMR2ON

_ESPERAbtfss PIR1, TMR2IFgoto _ESPERA decfsz AUX,F goto _ESPERA1bcf T2CON, TMR2ONreturn

_RETARDO_025movlw.12movwfAUX

_ESPERA01clrf TMR2bcf PIR1, TMR2IFbsf T2CON, TMR2ON

_ESPERA0btfss PIR1, TMR2IFgoto _ESPERA0 decfsz AUX,F goto _ESPERA01bcf T2CON, TMR2ONreturn

END

Page 13: Informe Labo 2 - Micros II

LAYOUT

SIMULACION

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP1 17

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD 40RB6/PGC 39

RB538

RB437

RB3/PGM36

RB2 35RB1

34RB0/INT

33

RD7/PSP7 30RD6/PSP6 29RD5/PSP5

28RD4/PSP4

27RD3/PSP3

22RD2/PSP2 21

RC7/RX/DT 26RC6/TX/CK 25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U3

PIC16F877A

00000100

Page 14: Informe Labo 2 - Micros II

5. CUESTIONARIO.1. Explicar las diferencias básicas de los distintos módulos de temporización de los

microcontroladores PIC.

En los temporizadores del microcontrolador, se tienen distintas características entre ellos, como ser desde el valor del prescaler que se puede usar entre ellos, siendo el TMR0 el que tiene el mayor prescaler, y el TMR2 el que tiene el menor prescaler posible, pero ahí también es donde aparecen distintas características entre estos dos temporizadores. El temp2 tiene la capacidad de ser mas preciso a la hora de manejar los tiempos de retardo, ya que es solo necesario el uso de bucles para que incrementen si tiempo de retardo. En cambio con los otros 2 temporizadores, no es muy preciso a la hora de calcular el tiempo de retardo, produciendo variaciones que a la larga si tendrán mucho significado

2. ¿Cuál es la frecuencia mínima de refrescamiento en la multiplicación de puertos?

El tiempo de refrescamiento debe ser bastante rápido, casi siendo instantáneo, ya que se necesita que se cambie el número a mostrar, varias veces durante el tiempo que se vaya a mostrar los leds encendidos. Esto quiere decir que es casi necesario que exista un tiempo de refrescamiento sumamente diminuto para nuestra percepción, pero bastante notable y suficiente para el microcontrolador. Este tiempo suele estar por el orden de los microsegundos.

6. CONCLUSIONES

Tras finalizar la práctica de laboratorio se lograron los objetivos que eran manejar y configurar los puertos de entrada y salida de los microcontroladores PIC. Ser capaz de operar los lenguajes de entorno de programación de los microcontroladores. Estar familiarizado con el repertorio de instrucciones de los PIC asociados a la configuración de los puertos. Ser capaz de manejará y configurar los distintos módulos de temporización en los microcontroladores PIC, para su utilización en aplicaciones como contadores de eventos o como temporizadores. Habiendo culminados los objetivos que se buscaban cubrir se da por terminada esta práctica de laboratorio.

7. WEBGRAFÍA

Ledezma, J. H., 2010. BANCO DE TESIS. [En línea] Available at: http://dpicuto.edu.bo/tesis/facultad-nacional-de-ingenieria/carrera-de-ingenieria-electrica-y-electronica/1746-diseno-e-implementacion-de-un-controlador-logico-programable-mediante-el-microcontrolador-16f877a.html[Último acceso: 11 marzo 2015].

S., I., 2007. PIC 16F877. [En línea] Available at: http://picmicrocontroller877.blogspot.com/2007/08/set-de-instrucciones.html[Último acceso: 11 Marzo 2015].