Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practicas de Laboratorio Microcomputadoras
Practicas de Laboratorio Microcomputadoras
FACULTAD DE INGENIERA
DIVISIN DE INGENIERA ELCTRICA
DEPARTAMENTO DE INGENIERA EN COMPUTACIN
PRACTICAS
LABORATORIO DE MICROCOMPUTADORAS
Basadas en el Microcontrolador PIC16F877
CIUDAD UNIVERSITARIA
Laboratorio Microcomputadoras
Introduccin
Se ha diseado el siguiente material para su uso en el laboratorio de microcomputadoras,
con la idea principal de servir como una gua a los alumnos que cursan el laboratorio, se
proponen un conjunto de 9 prcticas, las cuales contienen informacin introductoria, que
servir al alumno como antecedente al inicio de la realizacin de cada sesin y con esta
forma clarificar los objetivos de la prctica.
Se ha propuesto el uso del microcontrolador PIC16F877; no siendo este el nico que podra
atender, ya que en realidad se intenta poner en prctica los conocimientos que en la teora
se aprenden, por lo que los ejercicios aqu propuestos inducen y llevan al alumno a un
mejor entendimiento de estos dispositivos y a un mayor aprovechamiento de los mismos.
Se iniciar con la familiarizacin del lenguaje ensamblador del PIC y la utilizacin del
ambiente MPLAB, el cul servir para editar, ensamblar y simular los programas
capturados. La prctica dos enfatizar al uso de un sistema de desarrollo con un
microcontrolador, donde se desea que el alumno ejecute directamente programas
previamente ensamblados y en algunos casos simulados directamente en la tarjeta fsica, as
mismo de la manera usada para cargar los programas en el dispositivo.
Las prcticas 3, 4 y 5 afianzar el uso de los puertos paralelos mediante posibles interfaces
que pueden conectar al el microcontrolador de manera sencilla; generando salidas de
despliegue a travs de leds, controlar motores de corriente directa, tomando lecturas de
switches y sensores externos; para el trmino de stas sesiones el alumno pueda tener una
visin ms amplia de la infinidad de aplicaciones que se pueden realizar con los puertos
paralelos.
La prctica seis mostrar al alumno las ventajas de contar con un convertidor analgicodigital dentro de los recursos del microcontrolador, adems de ampliar las posibilidades de
aplicacin de este recurso.
En la prctica siete aplicar la comunicacin serie en la modalidad asncrona, con la
finalidad que el alumno controle las funciones del PIC por medio de otro dispositivo serie,
que puede ser la computadora personal.
Una vez que el alumno ha logrado controlar y programar los recursos de un
microcontrolador, mediante la programacin en lenguaje ensamblador, se proponen dos
prcticas en las cuales el alumno resolver los ejercicios propuestos mediante la
programacin en lenguaje C. La prctica ocho usar puertos paralelos y el puerto serie,
mientras que la prctica nueve emplear el convertidor A/D y las aplicaciones utilizando
programacin mediante la tcnica de programacin con interrupciones.
Al concluir las prcticas, el alumno deber haber comprendido las ventajas que se tiene al
realizar aplicaciones con microcomputadoras as mismo describir los diferentes elementos
constituidos de stas.
Laboratorio Microcomputadoras
Contenido
Practicas
Practica No. 1
Practica No. 2
Practica No. 3
Practica No. 4
Practica No. 5
Practica No. 6
Practica No. 7
Practica No. 8
Programacin lenguaje C.
Practica No. 9
Programacin lenguaje C.
Proyecto Final
Con las prcticas propuestas se desea cubrir los objetivos que la teora demanda los cuales
se reproducen en este manual:
Objetivo de la teora de Microcomputadoras
El alumno aprender y aplicar los conocimientos de la teora y funcionamiento de los
microprocesadores y su interconexin con diferentes circuitos perifricos para la
construccin y funcionamiento de microcomputadoras. Disear y construir aplicaciones
utilizando microprocesadores y sus perifricos para diferentes sistemas, simulando
aplicaciones industriales en tiempo real, as como aplicaciones cientficas.
Atendiendo al siguiente temario
1.
2.
3.
4.
5.
6.
7.
Conceptos bsicos
Conjunto de instrucciones
Modos de direccionamiento
Seales de control y diseo de un sistema con microprocesadores
Perifricos e interfaces con microprocesadores
Tcnicas de diseo de sistemas con microprocesadores
Caractersticas generales de microprocesadores de 16 y 32 bits
Laboratorio Microcomputadoras
Laboratorio de Microcomputadoras
Prctica No. 1
Introduccin General a un Microcontrolador PIC16F877
Objetivo. Familiarizar al alumno en el conocimiento del ensamblador, del simulador, el
conjunto de instrucciones de un microcontrolador y ejecutar programas en tiempo de
simulacin.
Introduccin
Algunas de las caractersticas ms importantes que tiene el microcontrolador son:
8K de memoria FLASH
368 bytes de memoria RAM
255 bytes de memoria EEPROM
35 instrucciones
5 puertos paralelos (A, B, C, D, E)
Convertidor Analgico Digital
Comunicacin Serie Asncrona
Comunicacin Serie Sncrona (paralela, I2C)
Tres mdulos temporizadores
Dos mdulos CCP que pueden operar como Comparacin, Captura o PWM
14 posibles fuentes de interrupcin
Registro de trabajo W
PC
STATUS
Registro de banderas
Tanto los registros PC y STATUS estn ubicados en localidades de memoria RAM, dentro
de los bancos en los que se divide los 368 bytes de memoria de datos, como se muestra a
continuacin.
Laboratorio Microcomputadoras
RP0
0
1
0
1
BANCO
0
1
2
3
UBICACIN
00H-7FH
80H-FFH
100H-17FH
180H-1FFH
Laboratorio Microcomputadoras
end
La llamada gama baja y media de PICs a la que pertenece el PIC16F877 tiene el siguiente
conjunto de instrucciones.
Laboratorio Microcomputadoras
Laboratorio Microcomputadoras
Laboratorio Microcomputadoras
equ
equ
H'26'
H'27'
org
0
goto inicio
Laboratorio Microcomputadoras
5.- Elaborar un programa que encuentre el nmero menor, de un conjunto de datos ubicados
entre las localidades de memoria 20h a 40h; mostrar el valor en la direccin 41h.
Laboratorio Microcomputadoras
Tamao
6
8
8
8
3
Funcin
E/S
E/S
E/S
E/S
E/S
TRISX
85H
86H
87H
88H
89H
PORTX
05H
06H
07H
08H
09H
end
Laboratorio Microcomputadoras
org 0
goto inicio
org 5
inicio bsf STATUS,5
BCF STATUS,6
MOVLW H'0'
MOVWF TRISB
BCF STATUS,5
clrf PORTB
Secuencia:
#$80
#$40
#$20
#$10
#$08
#$04
#$02
#$01
Laboratorio Microcomputadoras
11111111
Laboratorio Microcomputadoras
end
Laboratorio Microcomputadoras
Accin puerto B
00000000
11111111
ACCION
Ejecucin
$00
$01
$02
$03
$04
$05
00000000
11111111
10000000
01000000
00100000
..
00000001
00000001
00000010
00000100
..
10000000
10000000
01000000
..
00000001
00000010
..
10000000
00000000
11111111
Laboratorio Microcomputadoras
VCC
ENABLE
Vss
INPUT1
INPUT4
OUTPUT1
OUTPUT4
VCC
220
Vel. 1
220
4.7 K
GND
M1
GND
VCC
LM18293
L293B/D
4.7 K
Dir. 1/2
GND
M2
GND
OUTPUT2
OUTPUT3
INPUT2
INPUT3
VMOTOR
ENABLE2
VCC
1
220
Dir. 1/24.7 K
2
7404
3
7404
220
4.7 K
Vmotor
(0.2 - 32 V)
Vel. 2
Laboratorio Microcomputadoras
Se alimentar el driver de motores con voltaje superior a 8 volts, ya que cuenta con
un regulador de voltaje LM7805.
Un motor se controlar a travs de las seales indicadas como Vel1 (EN1) y Dir ,
para que funcione el motor la seal Vel1 deber estar en alto y Dir podr valer 0
o 1 lo cul indicar el sentido de giro; de igual forma para el otro motor.
Por lo tanto solo requiere de 2 seales de control para cada motor, es decir cuatro en
total, que sern enviadas por el puerto paralelo seleccionado.
De acuerdo a la tarjeta empleada debe identificar en que pines del puerto se
encuentran asignadas estas seales (En1 En2 Dir Dir ).
En los sistemas con el driver integrada en la tarjeta de puertos estn asignados en
los cuatro bits menos significativos, mientras que en las otras tarjetas en los cuatro
bits ms significativos.
Entrada binaria
PuertoA
000000
000010
000100
001000
010000
Motor
Izquierdo
Derecho
OFF
OFF
OFF
ON
OFF
ON
ON
OFF
ON
OFF
Sentido de giro
Puerto B
Paro
Horario
Antihorario
Horario
Antihorario
Tabla 4.1
2.- Considerando la informacin y los circuitos del ejercicio anterior, realizar un programa
que de acuerdo a una seal de control ingresada por el puerto A, se genere la accin
indicada en la tabla 4.2.
DATO
Puerto A
$00
$01
$02
$03
$04
ACCION
MOTOR M1
MOTOR M2
PARO
PARO
DERECHA
DERECHA
IZQUIERDA
IZQUIERDA
DERECHA
IZQUIERDA
IZQUIERDA
DERECHA
Tabla 4.2
Laboratorio Microcomputadoras
Laboratorio de Microcomputadoras
Prctica No. 5
Puertos Paralelos IV (Lectura de sensores pticos)
Objetivo: Emplear los puertos paralelos, para hacer lecturas de seales externas (sensores
reflectivos) con el microcontrolador y realizar operaciones de acuerdo a los valores
recibidos.
Introduccin
Un sensor de efecto reflectivo consta de un led infla-rojo y de un fototransistor, es usado
como un sistema de deteccin de objetos, lectura de encoders y en aplicaciones de robtica,
entre otros. Para esta prctica se desea obtener es el rebote que se produce cuando el led
emite el haz infla-rojo y lo detecte el fototransistor, el cul operar en las regiones de corte
y saturacin; esta seal se adecuar para obtener un nivel lgico, mediante un circuito
comparador que opera de la siguiente manera:
Si V+(Vref) es mayor a V-(Vsensor) => Vsalida = 5 Volts
Si V- (Vsensor) es mayor a V+(Vref) => Vsalida = 0 Volts
El circuito siguiente muestra un sistema de deteccin opto-reflectivo, para uso en robots
seguidores de lnea.
220 VCC
VCC
VCC
Salidas Digitales
10K
47K
3
7
6
Dig1
1
LM339
VCC
12
47K VCC
VCC
5
10K
47K Dig2
LM339
12
220
VCC
VCC
VCC
10K
3
47K VCC
9
8
47K
Dig3
14
12
LM339
220
VCC
47K VCC
Sensor
Central
PA1
N
N
B
B
N
N
B
B
SALIDAS
Sensor
Derecho
PA0
N
B
N
B
N
B
N
B
PB3
PB2
PB1
PB0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Tabla 5.1
N (Lnea negra) 0
B (Lnea blanca) 1
3. Realizar un programa que de acuerdo a la entrada generada por los sensores, se controle
la operacin de los motores, tal como se muestra en la siguiente tabla.
ENTRADAS
Sensor
Sensor
Izquierdo Central
B
N
N
B
N
N
N
N
ACCION
Sensor
Derecho
N
N
B
N
MOTOR IZQUIERDO
MOTOR DERECHO
ATRS
ADELANTE
ADELANTE
PARO
ADELANTE
ADELANTE
ATRS
PARO
Tabla 5.2
Nota. Considerar que los sensores estn conectados en la parte baja del puerto A y los bits
restantes no tienen un nivel lgico definido, as mismo tomar en cuenta la asignacin de los
motores que depende de la tarjeta del microcontrolador empleada.
Laboratorio Microcomputadoras
ADCS1
ADCS1:ADCS0
CHS2-0
GO/DONE
ADON
ADCON1
ADFM
ADFM
ADCS0
CHS2
CHS1
CHS0
GO/DONE
ADON
PCFG3
PCFG2
PCFG1
PCFG0
PCFG3-0
ADRESH
Laboratorio Microcomputadoras
Laboratorio Microcomputadoras
2.- Utilizando el circuito anterior, realizar un programa que indique si el valor del voltaje a
la entrada del convertidor A/D, se encuentra entre los siguientes rangos de voltaje.
ENTRADAS
SALIDAS
PX2
0
0
1
PX1
0
1
1
PX0
1
1
1
Tabla 6.1
Donde Vcc = 5 volts
3.- Realizar un programa, de manera que identifique cul de tres seales analgicas que
ingresan al convertidor A/D es mayor que las otras dos; representar el resultado de acuerdo
al contenido de la tabla 6.2.
Seal
PB2
PB1
PB0
Ve1>Ve2 y Ve3
Ve2>Ve1 y Ve3
Ve3>Ve1 y Ve2
0
0
1
0
1
1
1
1
1
Tabla 6.2
Circuito empleado para este ejercicio.
Laboratorio de Microcomputadoras
Prctica No. 7
Puerto Serie SCI (Asncrono)
Objetivo. Familiarizar al alumno en el uso de una Interfaz de Comunicacin Serie
Asncrona de un microcontrolador.
Introduccin
El microcontrolador PIC16F877 contiene un mdulo USART, el cul permite la
comunicacin de tipo Asncrona, con el uso de los pines RC6 y RC7 del puerto C, la
velocidad de comunicacin se configura por software, dentro de una gama amplia de
valores, adems de contar con banderas que indican la terminacin, ya sea de la trasmisin
o la recepcin de datos.
Registros ocupados en la comunicacin serie:
Registro usado en el mdulo generador de Baud Rate
SPBRG
CSRC
TX9
TXEN
SYNC
BRGH
TRMT
TX9D
Donde:
CSRC
TX9
TXEN
SYNC
BRGH
TRMT
TX9D
Laboratorio Microcomputadoras
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
Donde:
SPEN
RX9
SREN
CREN
ADDEN,
OERR
RX9D
Registro de banderas
PIR1
RCIF
TXIF
RCIF
TXIE
Registro de trasmisin
TXREG
Registro de recepcin
RCREG
Laboratorio Microcomputadoras
Abrir una Terminal, usando la Hyper Terminal que contiene Windows o la Terminal
incluida en el IDE PIC C Compiler, consultar los apndices A y B.
TECLA
ACCION
Puerto B
0
1
2
3
4
5
Laboratorio Microcomputadoras
3.-
Laboratorio Microcomputadoras
Laboratorio Microcomputadoras
ACCION
Puerto B
Todos los bits apagados
Todos los bits encendidos
Corrimiento del bit ms significativo
hacia la derecha
Ejecucin
00000000
11111111
10000000
..
00000001
00000001
..
10000000
10000000
..
00000001
..
10000000
00000000
11111111
Laboratorio Microcomputadoras
Interrupciones
o
o
o
o
#device ADC=8
setup_port_a(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(num);
delay_us(20);
read_adc();
enable_interrupts(fuente);
enable_interrupts(GLOBAL)
Colocar la rutina de atencin a la interrupcin antes del main
Fuentes de interrupcin usadas en esta prctica
#INT_RB ; cambio de nivel del los cuatro bits ms significativos del
puerto B
#INT_RTCC; Sobreflujo del Timer0
//configuracin general
//declaracin de variables
#int_rtcc // rutina de interrupcin del timer0
clock_isr(){
//cdigo de la rutina de interrupcin
}
main()
{
set_timer0(0); // Inicia TIMER0 en 00H
setup_counters(RTCC_INTERNAL,RTCC_DIV_256); //Fuente de reloj y pre-divisor
enable_interrupts(INT_RTCC); //Habilita interrupcin por TIMER0
enable_interrupts(GLOBAL); //Habilita interrupciones generales
// programa principal
}
Laboratorio Microcomputadoras
Laboratorio Microcomputadoras