You are on page 1of 24

LABORATORIO 1 DE SISTEMAS

EMBEBIDOS:
PROGRAMACIN DEL UC EN
ASSEMBLER PARTE 2
MSc. Roberto Furukawa
Abril 2015

LABORATORIOS
Laboratorio Tema a evaluar

Fecha

Laboratorio 1 Programacin en Assembler

Semana 6

Laboratorio 2 Uso de perifricos


Uso de interrupciones

Semana 9

Laboratorio 3 Programacin en C

Semana 10

Laboratorio 4 Uso de perifricos (teclado y


LCD)
Uso de conversor AD y
Comunicacin serial

Semana 12

Proyecto
final

Semana 15

Mdulo de visin
Mdulo de motores
(desplazamiento)
Mdulo de motores
(manipulador)

Laboratorio N1

Fecha: 18 y 25 de Abril
Instalacin y uso del proteus 8
Instalacin y uso del MPLab IDE 8.0
Desarrollo de gua MPLAB V8.00
Tutorial de simulacin en Proteus

Primeros Programas
Este programa muestra
las trasferencias entre los
registros de la memoria de
datos y el registro W.
Nota:
Despus de un RESET el
PC apunta a la direccin
0000H.
Hay
que
utilizar
las
direcciones
implementadas
de
acuerdo a la familia del
mC.
Alfredo Granados Ly

Primeros Programas
Este programa muestra el
rango de direcciones que se
puede acceder de manera
indirecta.
Despus de un RESET, el bit
IRP del registro de ESTADO
toma el valor de 0, el cual le
permite
acceder
a
los
primeros 256 bytes de manera
indirecta (00H - FFH).
Con
IRP=1
accederemos
mediante el FSR e INDF a los
siguientes 256 bytes (100H 1FFH).
Alfredo Granados Ly

Primeros Programas
Problema No3:
Realizar un programa que transfiera los datos de las direcciones
20H,21H,22H,23H a las direcciones: 120H,121H,122H,123H de
manera indirecta.

Colocar 4 valores en la memoria de datos utilizando la ventana


de Modify.
Alfredo Granados Ly

Manejo de los Puertos de


Entrada/Salida
Este programa muestra como
configurar a los pines del Puerto
A para que trabajen como:
RA0

Input.

RA1

Input.

RA2

Salida.

RA3

Salida.

RA4

Input.

RA5

Salida.

Nota:
Configurar si las lneas del
puerto A son analgicas o
digitales en el registro ADCON1
del Banco 1.
Alfredo Granados Ly

Aplicaciones
Escriba un programa para
generar una cuenta de 8 bits
por el puerto B y que el pin de
entrada RA0 del puerto A
funcione como control de
cuenta:
Si RA0 = 0 => cuenta
ascendente.
Si RA0 = 1 => cuenta
descendente.

Alfredo Granados Ly

Aplicaciones
Los PIC16F8X ejecutan una instruccin
cada 1us ya que cada ciclo de
instruccin consta de 4 pulsos de reloj
y la frecuencia del cristal (4MHz) se
divide internamente entre 4 (la
segmentacin le permite buscar la
siguiente instruccin y ejecutar la
instruccin en curso, por lo que se
considera que el PIC ejecuta una
instruccin en 1 ciclo de instruccin).

Alfredo Granados Ly

Aplicaciones
Realizar un programa para que el PIC16F84 se comporte como
un decodificador para un display de 7 segmentos (nodo
comn).

Alfredo Granados Ly

Aplicaciones
Realizar una rutina para realizar una
multiplicacin de 2 nmeros de 8 bits c/u.
Solucin:
Definimos nuestras variables de trabajo:
mulcnd:

contiene el multiplicando.

mulprl: contiene el multiplicador.


H_byte: Byte alto del resultado.
L_byte: Byte bajo del resultado.
count: Contador
sucesivas.

para

las

operaciones

Alfredo Granados Ly

Construccin de Lazos

Alfredo Granados Ly

Laboratorio N1

Primer Tutorial de programacin bsica en ASEMBLER


(Prender un led, el "HOLA MUNDO DE LOS PIC") 17:38
https://www.youtube.com/watch?v=Z67GlpBZJYA
Segundo tutorial de programacin de
microcontroladores PIC en asembler (juego de luces
basico) 11:30
https://www.youtube.com/watch?v=UFzIn7CuFwc
Tercer tutorial de programacin de microcontroladores
PIC en asembler (contador de 0 a 9) 24:48
https://www.youtube.com/watch?v=MtOqKkRQ4yw

EJERCICIO 1

Pgina 12

EJERCICIO 2

Pgina 35

Aplicaciones
1.- Realizar una rutina para obtener una base de tiempo de 1
segundo.
2.- Realizar un programa para generar por el pin RB2 del
PIC16F84 una seal de
1KHz (DC=50%).
3.- Realizar un programa para generar una secuencia de luces
en el Puerto B.
4.- Realizar un programa para contar el nmero de vueltas por
segundo que
realiza un motor de C.C.
Nota: No olvidar de borrar el flag de desordamiento del TIMER0.

Alfredo Granados Ly

Aplicaciones
Realizar una rutina para obtener una base de tiempo de 1 segundo.
Para la solucin de este problema utilice los lazos anidados. Es muy
probable que utilice hasta tres niveles (depende del nmero de cuentas
a realizar por lazo).
Se recomienda realizar como primer paso un lazo con una cuenta de
256 y calcular el tiempo consumido por este.
A continuacin anide este lazo en otro y calcule el tiempo.
Para comparar los clculos realizados por Ud, utilice la ventana de
StopWatch y para acelerar la velocidad de proceso utilice los puntos de
ruptura en el programa (Break Point Setting).
Nota: Considere en todo momento que la frecuencia del Cristal es de
4MHz.

Alfredo Granados Ly

Generar por el pin RB2 del PIC16F84


una seal de 1KHz (DC=50%).
Para generar una seal de
1KHz utilizamos el TMR0
como temporizador. La seal
de reloj se obtiene del
Cristal:
Fclk = 4MHz/4=1MHz.
Tclk = 1us.
Sin el pre-escaler la cuenta
mxima del TMR0 es de 255
y se llenar en 255us.
Dividiendo Fclk/2 el Tclk =
2us, con lo cual el TMR0 se
llena en 512us.

Alfredo Granados Ly

Realizar un programa para generar una


secuencia de luces en el Puerto B
Utilizaremos la instruccin de
rotacin:
RLF f,d : rota a la izquierda a travs
del acarreo.
RRF f,d : rota a la derecha a travs
del acarreo.

La rotacin se realizar cada


200ms. Para ello se realizar
una sub-rutina de tiempo
(utilizando el TMR0).

Con el valor del Pre-escaler a 111 tenemos una divisin de la frecuencia de


fxtal/256. Por lo tanto el TMR0 se llenar a los 65,5ms=256us*256cuentas.
Para llegar a los 200ms, el TMR0 debe desbordarse a los 50ms cuatro veces
(para ello debe utilizar un contador).
Alfredo Granados Ly

Realizar un programa para contar el nmero


de vueltas por segundo que realiza un motor
deSolucin:
C.C
De acuerdo al grfico vemos que por cada vuelta que da el motor, se genera
un pulso de reloj.
La idea es contar cuantos pulsos ingresan al TMR0 en 1 segundo (El TMR0
funcionar como contador). Utilizaremos le rutina que dura aprox. 1 segundo.
El nmero de vueltas se mostrar en el Puerto B como cuenta binaria.

Alfredo Granados Ly

Gracias por su atencin

Eventos y Artculos

Tutoriales

PIC-MPLAB
https://www.youtube.com/watch?v=FwUme53kl4M
http://centros.edu.xunta.es/iesperdouro/files/MPLAB-V8.00.pdf
Arduino
https://www.youtube.com/watch?v=eDD_lqotbFw
http://www.luisllamas.es/tutoriales-de-arduino/
DSP
http://www.ti.com/lit/ug/spru301c/spru301c.pdf
https://www.youtube.com/watch?v=TFP_0G_im7s
FPGA
http://www.xilinx.com/training/fpga-tutorials.htm
https://www.youtube.com/watch?v=Ob7B6x5g6tw

Simulador PIC y Proteus

https://
www.youtube.com/watch?v=5xvxQvLgh
W0
http://
www.marcombo.com/Descargas/978842
6714954-COMPILADOR%20C%20CCS%20Y%
20SIMULADOR%20PROTEUS%20PARA%20M
CROCONTROLADORES%20PIC/descargar_
primer_capitulo_libro_compiladorc
ccs_simulador_proteus.pdf

You might also like