You are on page 1of 13

LABORATORIO 1 DE SISTEMAS

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

LABORATORIOS
Laboratorio

Tema a evaluar

Fecha de entrega

Laboratorio 1

Programacin en Assembler

Semana 4-5

Laboratorio 2

Uso de perifricos
Uso de interrupciones
Implementacin

Semana 6-7

Proyecto parcial

Informe parcial

Semana 9

Laboratorio 3

Programacin en C

Semana 10-11

Laboratorio 4

Uso de perifricos (teclado y LCD)


Uso de conversor AD y Comunicacin
serial
Implementacin

Semana 12-13

Proyecto final

Informe
Exposicin

Semana 14-15

Laboratorio N1_2

Fecha de desarrollo: 16 y 23 de abril


Fecha de entrega: 23 de abril

Revisin Laboratorio 1_1

Ejemplo del tutorial


Ejercicio 1 y 2
ejem1
ejem4
problema3
ejem5
ejem6
ejem7
ejem9
aplicaciones
ejem11
ejem12

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
rotacin:

la

instruccin

de

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 de C.C
Solucin:
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

Revisin Laboratorio 1_2

ejem1
ejem4
Problema3
ejem5
ejem6
ejem7
ejem9
ejem11
ejem12
aplicacin 1
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ejercicio 4

Tutoriales en video

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

You might also like