Práctica de Taller 2 - · PDF filePráctica de Taller 2 Programacion lenguaje...

23
ESCUELA SUPERIOR DE INGENIERIA ---------------------------------------------------------------------- ------------------------------------------------------------------------------- DESARROLLLO AVANZADO CON MICROCONTROLADORES INSTRUCTOR: ING. EULER DEZA FIGUEROA 1 Práctica de Taller 2 CURSO:TALLER DE DESARROLLO AVANZADO CON MICROCONTROLADORES FECHA: INSTRUCTOR: ING. EULER DEZA FIGUEROA BLOQUE: GRUPO N°: RUBRICA DE EVALUACIÓN POR CADA INTEGRANTE DEL GRUPO: ALUMNO CRITERIO [Apell y Nom] C1:Puntualidad e indumentaria [0-5] C2: Colabora con el grupo [0-5] C3: Aporta soluciones [0-5] C4:Respeto y disciplina [0-5] Puntaje TOTAL [20 pts] 1. 2. 3. 4. 5. 6. 1. RUBRICA DE EVALUACIÓN GRUPAL Rubrica de Evaluación Para taller Puntaje máximo Puntuaciones Puntaje obtenido 6 5 4 3 2 1 Se observa que hicieron un trabajo ordenado, limpio y al finalizar la práctica dejaron su lugar de trabajo en orden 2 Manipula y utiliza los equipos e instrumentos de manera correcta 2 Detectan dificultades en la práctica, y dan solución de manera creativa e inventiva, aplicando técnicas aprendidas en clase, e investigación del grupo 3 Implementan los diferentes circuitos propuestos, con éxito 6 Presenta el proyecto final con estética y operativo al 100%, en el tiempo establecido 4 Realiza un informe grupal del proyecto, en donde además investigan cada dispositivo, utilizado en dicho proyecto 3 TOTAL 20

Transcript of Práctica de Taller 2 - · PDF filePráctica de Taller 2 Programacion lenguaje...

Page 1: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

1

Práctica de Taller 2

CURSO:TALLER DE DESARROLLO AVANZADO CON MICROCONTROLADORES FECHA:

INSTRUCTOR: ING. EULER DEZA FIGUEROA BLOQUE: GRUPO N°:

RUBRICA DE EVALUACIÓN POR CADA INTEGRANTE DEL GRUPO:

ALUMNO CRITERIO

[Apell y Nom]

C1:Puntualidad

e indumentaria

[0-5]

C2: Colabora

con el grupo

[0-5]

C3: Aporta

soluciones

[0-5]

C4:Respeto

y disciplina

[0-5]

Puntaje

TOTAL

[20 pts]

1. 2. 3. 4. 5. 6.

1. RUBRICA DE EVALUACIÓN GRUPAL

Rubrica de Evaluación

Para taller

Puntaje

máximo

Puntuaciones

Puntaje

obtenido 6

5 4 3 2 1

Se observa que hicieron un trabajo ordenado,

limpio y al finalizar la práctica dejaron su lugar

de trabajo en orden

2

Manipula y utiliza los equipos e instrumentos de

manera correcta

2

Detectan dificultades en la práctica, y dan

solución de manera creativa e inventiva,

aplicando técnicas aprendidas en clase, e

investigación del grupo

3

Implementan los diferentes circuitos

propuestos, con éxito

6

Presenta el proyecto final con estética y

operativo al 100%, en el tiempo establecido

4

Realiza un informe grupal del proyecto, en

donde además investigan cada dispositivo,

utilizado en dicho proyecto

3

TOTAL 20

Page 2: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

2

RA7/OSC1/CLKIN16

RB0/INT6

RB1/RX/DT7

RB2/TX/CK8

RB3/CCP19

RB410

RB511

RB6/T1OSO/T1CKI12

RB7/T1OSI13

RA0/AN017

RA1/AN118

RA2/AN2/VREF1

RA3/AN3/CMP12

RA4/T0CKI/CMP23

RA6/OSC2/CLKOUT15

RA5/MCLR4

U1

PIC16F628A

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

74LS47

R1

10k

DIG0 [LSB]

CONTADOR DE CUATRO DIGITOS

R5

1.2k

Q1BC557

T0

T0

R6

1.2k

Q2BC557

T1

R7

1.2k

Q3BC557

T2

R8

1.2k

Q4BC557

T3

DIG1[MSB]

T1

T2

T3

UP[+]

DW[-]

RST/ENT

R1

10k

R4

10ka0

a2

a1

a0

MENSAJE CORREDIZO CON DISPLAY'S MULTIPLEXADOS CON PIC 16F887

R2

10ka1

R3

10ka2

R5

10ka3

a3

3

2

1

ABC

B2

B3

B4

B5

B6

B1

B0

B2

B3

B4

B5

B6

B1

B0

C

B

A1

2

3

D

D4

4

Por: Euler Deza Figueroa

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/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

R61k

Q1BC557

MOTOR

MOTOR

Práctica de Taller 2

Programacion lenguaje assembler para

microcontroladores: Manejo de display’s y Pantallas LCD

Objetivos:

Aplicar correctamente el juego de instrucciones de los uC’s PIC

Implementar Los diferentes circuitos basados en microcntroladores y componentes

electrónicos en protoboard.

Realizar el diseño de los algoritmos para los diferentes ejercicios propuestos

Aplicar los conocimientos adquiridos al control de varios display’s de manera

multiplezada y a proceson con Pantallas LCD

Conocer las aplicaciones de la memoria interna EEPROM y TMR0. Proyectos

I).- PROPUESTAS DE DISEÑO

Page 3: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

3

II).- Materiales y equipos: MULTIMETRO DIGITAL

GRABADOR DE PIC [COMPATIBLE CON PICKIT 2]

(2) PROTOBOARD

ALICATE PINZA [CON RESORTE]

ALICATE DE CORTE [CON RESORTE]

PELACABLE [OPCIONAL]

CUCHILLA / TIJERA / CINTA MASKETING

CAJITA PORTAHERRAMIENTAS

================

(1 De cada uno) PIC16F84A, PIC 16F877A, PIC16F628A

(1) Cristal de 4MHz

(1) Cristal de 20MHz

(4) Condensadores de 22pF

(20) Resistencias de 1.2 KOhm

(20) Resistencias de 220 Ohm

(20) Resistencias de 10 KOhm

(6) LDR

(8) Led de alto brillo (Colores rojo, blanco, verde)

(8) Pulsadores NA para protoboard

CABLECILLO PARA PROTOBOARD [NO EL UTP]

(1) 74HC47

(3) 74HC164

(3) 74HC373

(5) Display ánodo común

(2) Dip – Switch de 4 pines

(6) Transistores BC557 / (6) Transistores BC548

(2) Driver L293d | Regulador L7805

(2) CI 40106

TIP31 Y TIP32 [3 de C/U]

(3) Transistores 2N2222

(2) Transistores BD137 | BD135 | // (4) DIODOS DE 1Amp

(1) Pantalla LCD de 2x16, compatible con el modelo LM016L.

CABLECILLO PARA PROTOBOARD [NO EL UTP]

ESTRUCTURA DEL CARRITO SEGUIDOR DE LINEA

(2) MOTORES PAP [BIPOLAR DE PREFERENCIA]

Estructura FAJA TRANSPORTADORA

Page 4: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

4

III).- Resumen :

TMR0:

El bloque funcional TIMER0/WATCHDOG es un

contador (registro) de 8 bits, incrementado por

hardware y programable. La cuenta máxima es de

255(el incremento es constante e independiente).

CONTADOR: Cuenta los eventos externos(a

través del pin RA4/TOCK1)

TEMPORIZADOR: Cuenta los pulsos internos

del reloj

Se puede insertar un prescaler, es decir, un divisor

de frecuencia programable que puede dividir por 2,

4, 8, 16, 32, 64, 128 o 256.

La frecuencia de reloj (fosc/4). Posteriormente, con

el uso del prescaler se puede dividir la frecuencia.

El bloque del TIMER0 puede funcionar como

WATCHDOG, lo que permite que durante el

funcionamiento normal del microcontrolador, un

desbordamiento (o timeout) del Watchdog provoque

un reset (Watchdog Timer Reset). Para evitar el

desbordamiento se debe, cada cierto tiempo y antes

de que llegue el limite, ejecutar una instrucción

CLRWDT que borra el Watchdog y que hace comenzar

un nuevo conteo desde cero

Puertos de Entrada/Salida

Pines de entrada/salida (I/O) de propósito

general

Mediante ellos, el micro PIC puede

monitorizar y controlar otros dispositivos.

Para añadir flexibilidad al micro, muchos de

sus pines de entrada/salida están

multiplexados con funciones alternativas.

Para la mayoría de los puertos, la dirección

del pin I/O es controlada por el registro de

dirección de datos, llamado TRIS. TRISX<n>

controla la dirección del pin n del puerto X.

REGISTRO OPTION_REG

REGISTRO INTCON

REGISTRO W

Registro de trabajo

Recibe los resultados de las

operaciones ejecutadas por la ALU

Puede ser escrito

Se usa para las transferencias

indirectas entre registros y

ubicaciones de memoria

Por ejemplo: Puede usarse para

transferir datos a la pila y ejecutar

un “Push” o un “Pop”

ALU (Unidad Aritmética-Lógica)

Ejecuta las operaciones con los

operandos de entrada

Tiene un registro acumulador “W”

donde sealmacenan los resultados

El registro W puede realimentar su

valor como dato de entrada a la ALU

Ejecuta operaciones según el código

que reciba en las entradas de

control.

Page 5: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

5

Registro STATUS

Ubicado en 03h,83h,103h y 183h

Resume las condiciones en que se

encuentra el microcontrolador

Bits:

IRP: Selecciona bancos altos (2 y 3) cuando

vale 1 y bancos bajos (1 y 0) cuando vale 0

RP1 y RP0: Selectores de bancos para

acceso directo.

00: Banco 0

01: Banco 1

10: Banco 2

11: Banco 3

#TO: Bit de “Time Out”. Se pone en 0

cuando hay un “RESET”

#PD: Bit de “Power Down”. Se pone en 0

cuando entra en “SLEEP”

Z: Bandera del Cero. Se pone en 1 si el

resulatado de la última operación realizada

es un 0.

DC: Bandera de Acarreo Intermedio. Se

pone en 1 si hay un carry de los 4 bits

menos segnificativos a los 4 bits más

significativos.

C: Bandera de Acarreo. Se pone en 1 si el

resultado de una operación excede la

capacidad de 8 bits y requiere de un

acarreo.

Memoria EEPROM de datos [PIC16F84A]

Resumen de características:

Memoria de datos de 64 bytes.

Lectura rápida de un byte (en el tiempo

de uno o varios ciclos de instrucción).

Escritura de un byte en unos 8 ms.

Se genera una interrupción cuando se

completa la escritura de la memoria.

1.000.000 de ciclos de

borrado/escritura.

40 años de retención de datos.

Tecnología de baja potencia y alta

velocidad CMOS

Cuando el dispositivo está protegido por

código, la CPU puede continuar leyendo y

escribiendo en la memoria EEPROM, pero

el programador del dispositivo ya no puede

acceder esta memoria.

EECON1[EEPROM Control Register-88h].

Este registro contiene configuraciones

importantes acerca de la escritura y la

lectura de la EEPROM de datos. En

concreto tiene 5 bits de control, cuya

distribución y significado es el siguiente.

U

(Unimplemented), No implementado. Se lee

como 0.

Bit 4 (flag): EEIF. Bit de interrupción de

escritura en la memoria EEPROM ( EEPROM

Interrupt Flag)

1: Este bit se pone a uno al terminar la

operación de escritura en la EEPROM, y

debe ponerse a cero por software

0: No se ha completado la operación de

escritura o no ha empezado.

Bit 3 (flag), WRERR. Bit de error de

escritura (Write Error)

1: Este bit se pone a 1 si se produce un

error de escritura de forma prematura

(Reset o Watchdog). En este caso, los

contenidos de EEADR y EEDATA no varían,

de manera que el proceso pueda ser

repetido correctamente.

0: Se ha completado la operación de

escritura.

Bit 2, WREN. Bit de habilitación de

escritura. (Write Enable)

1: Este bit debe ser habilitado para poder

escribir en la EEPROM

Page 6: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

6

0: Deshabilita la escritura de datos en la

memoria EEPROM.

Bit 1, WR. Bit de control de escritura

(Write Data)

1: Indica que se ha iniciado una operación

de escritura. Este bit debe ponerse a uno

para escribir un dato.

0: Indica que se ha completado una

operación de escritura. El PIC lo pone

automáticamente a cero

Bit 0, RD. Bit de control de lectura (Read

Data)

1: Inicia una lectura de la memoria

EEPROM. Este bit debe ponerse a uno para

poder leer un dato.

0: No se ha iniciado una lectura de la

EEPROM. El PIC lo pone automáticamente a

cero EJEMPLO LECTURA EEPROM: espera hasta confirmarlo LECTURA: BCF STATUS,RP0 ; Selecciona banco 0 MOVLW MEM1 ; Dirección a leer de MOVWF EEADR ; la EEPROM BSF STATUS,RP0 ; Selecciona banco 1 BSF EECON1,RD ; Activar lectura ESPERA BTFSC EECON1,RD ; Espera final de lectura GOTO ESPERA ; a que baje la bandera BCF STATUS,RP0 ; Selecciona banco 0 MOVF EEDATA,W ; W se carga con el valor ; leído en eeprom La memoria EEPROM es bastante lenta, por lo cual es importante esperar a que el ciclo de lectura termine, aunque algunas veces se omita. Pero es aún más importante esta espera en el ciclo de escritura, ya que la EEPROM puede tardar en ser escrita hasta 10 ms.

EJEMPLO ESCRITURA EEPROM: espera hasta confirmarlo Veamos un ejemplo de escritura típico que no utiliza interrupciones: ESCRITURA ; Establecer EEADR y EEDATA MOVLWDIRMEN1 MOVWF EEADR; Escribe la dirección en EEADR MOVLW DATO1 MOVWF EEDATA; Se escribe el dato en EEDATA BSF STATUS,RP0 ; Selecciona el banco 1 BSF EECON1,WREN ; Permiso de escritura activado ;Comienzo de la secuencia de escritura MOVLW 0x55 MOVWF EECON2 ; Se escribe el dato 55 h en EECON2 MOVLW 0xAA MOVWF EECON2 ; Se escribe AA h en EECON2 BSF EECON1,WR ; Comienza la escritura BCF EECON1,WREN ; Permiso de escritura desactivado ESPERA BTFSC EECON1,WR ; Espera a que termine la escritura GOTO ESPERA BCF STATUS,R0 ; Selecciona el banco 0

Page 7: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

7

RESUMEN

Arquitectura RISC de 35

instrucciones.

Operaciones de duración igual,

excepto saltos.

Compatible con otras familias de

PIC.

Pila de 8 niveles y 4

fuentes de interrupción.

Protección de código

programable.

Comunicación serie

Page 8: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

8

SET DE INSTRUCCIONES

Page 9: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

9

R1

10k

b6

b5

b4

b3

b2

b1

b0

b3

b2

b1

b0a2

a1

a0

CONTADOR DIGITAL [0 A 9]

RA7/OSC1/CLKIN16

RB0/INT6

RB1/RX/DT7

RB2/TX/CK8

RB3/CCP19

RB410

RB511

RB6/T1OSO/T1CKI12

RB7/T1OSI13

RA0/AN017

RA1/AN118

RA2/AN2/VREF1

RA3/AN3/CMP12

RA4/T0CKI/CMP23

RA6/OSC2/CLKOUT15

RA5/MCLR4

U1

PIC16F628A

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

74LS47

R5

10ka0

R6

10ka1

R7

10ka2

UP [+]

DOWN

ENTER

IV).- Implemente el siguiente circuito: Contador de 0 a 9 y desarrolle el programa

correspondiente [considerar los pines de alimentacion]

a).-ESCRIBIR EL CODIGO, COMPILAR Y GRABAR EN EL MICROCONTROLADOR.

b).-LUEGO MODIFIQUE EL DISEÑO PARA QUE REALICE LA MISMA FUNCIÓN PERO SIN EL

DECODIFICADOR 74HC47

Page 10: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

10

V).- Implemente el siguiente circuito: Contador de 0-99 y desarrolle el programa

correspondiente [considerar los pines de alimentacion]

a).-ESCRIBIR EL CODIGO, COMPILAR Y GRABAR EN EL MICROCONTROLADOR.

b).-LUEGO MODIFIQUE EL DISEÑO [AGREGUE PULSADORES AL PUERTO A] PARA QUE REALICE LA

FUNCION DE UN CONTADOR UP-DOWN DE DOS CIFRAS [0-99 Max]

R1

10k

b6

b5

b4

b3

b2

b1

b0

a2

a1

a0

CONTADOR DIGITAL [0 A 99]

RA7/OSC1/CLKIN16

RB0/INT6

RB1/RX/DT7

RB2/TX/CK8

RB3/CCP19

RB410

RB511

RB6/T1OSO/T1CKI12

RB7/T1OSI13

RA0/AN017

RA1/AN118

RA2/AN2/VREF1

RA3/AN3/CMP12

RA4/T0CKI/CMP23

RA6/OSC2/CLKOUT15

RA5/MCLR4

U1

PIC16F628A

a3

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2 74LS47

b7b6

b5

b4

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U374LS47

b3

b2

b1

b0

b7

1k 1k

Page 11: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

11

VI).- Implemente el siguiente circuito: Contador de 4 digitos y desarrolle el programa

correspondiente [considerar los pines de alimentacion]

RA7/OSC1/CLKIN16

RB0/INT6

RB1/RX/DT7

RB2/TX/CK8

RB3/CCP19

RB410

RB511

RB6/T1OSO/T1CKI12

RB7/T1OSI13

RA0/AN017

RA1/AN118

RA2/AN2/VREF1

RA3/AN3/CMP12

RA4/T0CKI/CMP23

RA6/OSC2/CLKOUT15

RA5/MCLR4

U1

PIC16F628A

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

74LS47

R1

10k

DIG0 [LSB]

CONTADOR DE CUATRO DIGITOS

R5

1.2k

Q1BC557

T0

T0

R6

1.2k

Q2BC557

T1

R7

1.2k

Q3BC557

T2

R8

1.2k

Q4BC557

T3

DIG1[MSB]

T1

T2

T3

UP[+]

DW[-]

RST/ENT

Page 12: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

12

VII).- Implemente el siguiente circuito: Contador de 0-255 y muestre en display’s de

manera multiplexada y desarrolle el programa correspondiente [considerar los pines de

alimentacion y la conexcion adecuada de los transistores PNP, para acticar cada anodo de

los displays (Ejercicio anterior)]

a).- ESCRIBIR EL CODIGO, COMPILAR Y GRABAR EN EL MICROCONTROLADOR

b).- MODIFICAR EL PROGRAMA PARA REALIZAR UN CONTADOR UP-DOWN DE 0 A 255

R1

10k

a2

a1

a0

CONTADOR DIGITAL CON PIC 16F887 [0 A 255]

a3

RE3/MCLR/VPP1

RA1/AN1/C12IN1-3

RA2/AN2/VREF-/CVREF/C2IN+4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RB0/AN12/INT33

RB1/AN10/C12IN3-34

RB2/AN835

RA7/OSC1/CLKIN13

RA6/OSC2/CLKOUT14

RD5/P1B28

RD6/P1C29

RD7/P1D30

RC4/SDI/SDA23

RC5/SDO24

RC3/SCK/SCL18

RC2/P1A/CCP117

RC1/T1OSI/CCP216

RC0/T1OSO/T1CKI15

RB7/ICSPDAT40

RB6/ICSPCLK39

RB5/AN13/T1G38

RB4/AN1137

RD322

RD221

RD120

RD019

RC7/RX/DT26

RC6/TX/CK25

RE2/AN710

RE1/AN69

RE0/AN58

RA3/AN3/VREF+/C1IN+5

RD427

RB3/AN9/PGM/C12IN2-36

RA0/AN0/ULPWU/C12IN0-2

U1

PIC16F887

3

2

1

ABC

B2

B3

B4

B5

B6

B1

B0

B2

B3

B4

B5B6

B1

B0

C

B

A1

2

3

D

D4

4

R6

10ka0

R7

10ka1

R8

10ka2

UP [+]

DOWN

ENTER

Page 13: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

13

Page 14: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

14

VIII).- Implemente el siguiente circuito: [Puede reemplazar por otro microcontrolador que

ud disponga (PIC16F84A, PIC16F628A, PIC16F877A, PIC16F876, ETC)]

a).- Muestre un mensaje corredizo en los 4 displays multiplexados. Por ejemplo: “HOLA

PERU – 2016 ”

a).- Muestre un mensaje corredizo, el mensaje debe estar grabado en la memoria

EEPROM Interna, a artir de la direccion 15, y muestrelo en los 4 displays multiplexados.

Por ejemplo: “HOLA PERU – 2016 ”

IX).- Implemente el siguiente circuito: Test–LCD. En la linea 1 del LCD, muestra el

estado de P1 [RA0], y en la linea 2 del LCD, se incrementa una variable contador, cuando

se pulsa P1.

[Puede reemplazar por otro microcontrolador que ud disponga (PIC16F84A, PIC16F628A,

PIC16F877A, PIC16F876, ETC)]

a).- ESCRIBIR EL CODIGO, COMPILAR Y GRABAR EN EL MICROCONTROLADOR

b).- MODIFICAR EL PROGRAMA PARA REALIZAR UN CONTADOR UP-DOWN DE 0 A 99 Max

R1

10k

R4

10ka0

a2

a1

a0

MENSAJE CORREDIZO CON DISPLAY'S MULTIPLEXADOS CON PIC 16F887

R2

10ka1

R3

10ka2

R5

10ka3

a3

3

2

1

ABC

B2

B3

B4

B5

B6

B1

B0

B2

B3

B4

B5

B6

B1

B0

C

B

A1

2

3

D

D4

4

Por: Euler Deza Figueroa

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/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

R61k

Q1BC557

MOTOR

MOTOR

R1

10k

TEST DE LA PANTALLA LCD [CONTADOR DIGITAL]

3

2

1

B2

B7

B4

B5

B6

B3

B2

B3

B4

B5

B6

B1

B0

4

4

Por: Euler Deza Figueroa

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/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

B7

RW

a0

a2

a1

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

3 2 1

a3

R6

10ka0

R7

10ka1

R8

10ka2

UP [+]

DOWN

ENTER

Page 15: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

15

Page 16: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

16

X).- Implemente el siguiente circuito: Test–EEPROM. Se graban diez datos en la

MEMORIA EEPROM INTERNA, luego se procede a leer cada direccion de memoria

grabada y se visualiza en pantalla lcd, direccion [0-10], dato[x]

Finalmente modifique el progrma y dele una aplicación que crea conveniente.

SIMULACION

Page 17: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

17

PROGRAMA EN ASSEMBLER

Page 18: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

18

XI).- Implemente el siguiente circuito: Generacion de Retardos a traves del TMR0.

a).-La siguiente aplicación genera una onda cuadrada de PERIODO=40ms [el TMR0 se

configuró de tal modo que se desborde cada 20ms]

Para el calculo de TMRO se usó el utilitario: Calculador TMR0, no obstante se puede

encontrar con la siguiente fórmula

b).-Finalmente modifique el progrma y genere un retardo de 1 segudo, a traves del TMR0

SIMULACION

R1

10k

R4

10ka0

Generacion de retardos a traves del TMR0

R2

10ka1

R3

10ka2

R5

10k2

1

B2

B7

B4

B5

B6

B3

B2

B3

B4

B5

B6

B1

B04

Por: Euler Deza Figueroa

B7

a0

a2

a1

3 2 B0

a3

UP [+]

DOWN

ENTER

LED1

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

OSC1/CLKIN16

RB0/INT6

RB17

RB28

RB39

RB410

RB511

RB612

RB713

RA017

RA118

RA21

RA32

RA4/T0CKI3

OSC2/CLKOUT15

MCLR4

U1

PIC16F84A

B0 A

B

C

D

T = TCM . Prescaler.(256 – Carga TMR0 )

Page 19: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

19

Uso del utilitario Calculadora TMR0, para calcular el TMR0, para que se desborde

en 20ms

PROGRAMA EN ASSEMBLER

Page 20: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

20

XII).- Implemente el circuito, maqueta para el control de una faja transportadora y

desarrolle el programa correspondiente [considerar los pines de alimentacion] [Faja

Tranportadora V1.0 (By: Euler Deza)]. Explicar

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1 LM016L

D7

D6

D5

D4E

RS

50%

RV1

50k

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/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

D7

D6

D5

D4

E

RWRS

R1

10k

12

X1CRYSTAL

C1

22pF

C2

22pF

FAJA TRANSPORTADORA V1.0

IN12

OUT13

OUT26

OUT311

OUT414

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U3

L293D

B4

B5

B6

B7

0

0

0

0

START

STOP

P3

SENSOR

B4

B5

B6

B7

BY: EULER DEZA

BASTAGO

MOTOR FAJA

Page 21: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

21

XIII).- EJERCICIOS COMPLEMENTARIOS:

1. Realice un juego en pantalla LCD, use caracteres especiales mediante la

memoria CGRAM de la pantalla LCD

2. Realizar un programa para controlar un carrito detector de obstáculos

monitoriado en pantalla LCD

3. Realice un programa para controlar una matriz de led’s de 8x8 [Debe

visualizar un mensaje corredizo]

4. Realice un Menu en pantalla LCD, para controlar motores, led’s, sensores,

etc

5. Diseñe el control de una faja transportadora, en donde se tenga el control

del motor DC, ademas debe contar con sensores, un contador de objetos e

indicador de alarmas con PIC, debe contar con opciones de SET-POINT,

teniendo la posibilidad de grabar los parametros mas importantes de ajuste

en la EEPROM INTERNA del PIC

6. Diseñe el prototipo de una impresora 2D, incorporando para ello dos motores

PAP, ademas algun mecanismo de envio de datos para la impresión de

formas, figuras y letras usando microcontrolador.

X).- CONCLUSIONES Y RECOMENDACIONES

Page 22: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

22

Page 23: Práctica de Taller 2 -   · PDF filePráctica de Taller 2 Programacion lenguaje assembler para microcontroladores: Manejo de display’s y Pantallas LCD Objetivos:

ESCUELA SUPERIOR DE INGENIERIA

----------------------------------------------------------------------

-------------------------------------------------------------------------------

DESARROLLLO AVANZADO CON MICROCONTROLADORES

INSTRUCTOR: ING. EULER DEZA FIGUEROA

23