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
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
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
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.
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
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
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
ESCUELA SUPERIOR DE INGENIERIA
----------------------------------------------------------------------
-------------------------------------------------------------------------------
DESARROLLLO AVANZADO CON MICROCONTROLADORES
INSTRUCTOR: ING. EULER DEZA FIGUEROA
8
SET DE INSTRUCCIONES
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
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
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
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
ESCUELA SUPERIOR DE INGENIERIA
----------------------------------------------------------------------
-------------------------------------------------------------------------------
DESARROLLLO AVANZADO CON MICROCONTROLADORES
INSTRUCTOR: ING. EULER DEZA FIGUEROA
13
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
ESCUELA SUPERIOR DE INGENIERIA
----------------------------------------------------------------------
-------------------------------------------------------------------------------
DESARROLLLO AVANZADO CON MICROCONTROLADORES
INSTRUCTOR: ING. EULER DEZA FIGUEROA
15
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
ESCUELA SUPERIOR DE INGENIERIA
----------------------------------------------------------------------
-------------------------------------------------------------------------------
DESARROLLLO AVANZADO CON MICROCONTROLADORES
INSTRUCTOR: ING. EULER DEZA FIGUEROA
17
PROGRAMA EN ASSEMBLER
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 )
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
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
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
ESCUELA SUPERIOR DE INGENIERIA
----------------------------------------------------------------------
-------------------------------------------------------------------------------
DESARROLLLO AVANZADO CON MICROCONTROLADORES
INSTRUCTOR: ING. EULER DEZA FIGUEROA
22
ESCUELA SUPERIOR DE INGENIERIA
----------------------------------------------------------------------
-------------------------------------------------------------------------------
DESARROLLLO AVANZADO CON MICROCONTROLADORES
INSTRUCTOR: ING. EULER DEZA FIGUEROA
23