Post on 02-Mar-2018
7/26/2019 Laboratorio 1_2v3
1/13
LABORATORIO 1 DE SISTEMASEMBEBIDOS:
PROGRAMACIN DEL UC ENASSEMBLER PARTE 2MSc. Roberto Furukawa
Abril 2016
7/26/2019 Laboratorio 1_2v3
2/13
LABORATORIOS
Laboratorio Tema a evaluar Fecha de entrega
Laboratorio 1 Programacin en Assembler Semana 4-5
Laboratorio 2 Uso de perifricos
Uso de interrupcionesImplementacin
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 ComunicacinserialImplementacin
Semana 12-13
Proyecto final InformeExposicin
Semana 14-15
7/26/2019 Laboratorio 1_2v3
3/13
Laboratorio N1_2
Fecha de desarrollo: 16 y 23 de abril
Fecha de entrega: 23 de abril
7/26/2019 Laboratorio 1_2v3
4/13
Revisin Laboratorio 1_1
Ejemplo del tutorial Ejercicio 1 y 2 ejem1 ejem4
problema3 ejem5 ejem6 ejem7 ejem9 aplicaciones ejem11 ejem12
7/26/2019 Laboratorio 1_2v3
5/13
7/26/2019 Laboratorio 1_2v3
6/13
Alfredo Granados Ly
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 sealde
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.
7/26/2019 Laboratorio 1_2v3
7/13
Alfredo Granados Ly
AplicacionesRealizar una rutina para obtener una base de tiempo de 1 segundo.
Para la solucin de este problema utilice los lazos anidados. Es muy probableque utilice hasta tres niveles (depende del nmero de cuentas a realizar porlazo).
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 ypara 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.
7/26/2019 Laboratorio 1_2v3
8/13
Alfredo Granados Ly
Generar por el pin RB2 del PIC16F84 una seal
de 1KHz (DC=50%).Para generar una seal de 1KHzutilizamos el TMR0 comotemporizador. La seal de reloj seobtiene del Cristal:
Fclk = 4MHz/4=1MHz.
Tclk = 1us.
Sin el pre-escaler la cuenta mximadel TMR0 es de 255 y se llenar en255us.
Dividiendo Fclk/2 el Tclk = 2us, conlo cual el TMR0 se llena en 512us.
7/26/2019 Laboratorio 1_2v3
9/13
Alfredo Granados Ly
Realizar un programa para generar una secuencia
de luces en el Puerto BUtilizaremos la instruccin derotacin:
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 cada200ms. Para ello se realizar unasub-rutina de tiempo (utilizando elTMR0).
Con el valor del Pre-escaler a 111tenemos 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).
7/26/2019 Laboratorio 1_2v3
10/13
Alfredo Granados Ly
Realizar un programa para contar el nmero de vueltas
por segundo que realiza un motor de C.CSolucin:De acuerdo al grfico vemos que por cada vuelta que da el motor, se genera un pulsode reloj.
La idea es contar cuantos pulsos ingresan al TMR0 en 1 segundo (El TMR0 funcionarcomo contador). Utilizaremos le rutina que dura aprox. 1 segundo.
El nmero de vueltas se mostrar en el Puerto B como cuenta binaria.
7/26/2019 Laboratorio 1_2v3
11/13
Revisin Laboratorio 1_2
ejem1
ejem4
Problema3
ejem5
ejem6
ejem7 ejem9
ejem11
ejem12
aplicacin 1
Ejercicio 1 Ejercicio 2
Ejercicio 3
Ejercicio 4
7/26/2019 Laboratorio 1_2v3
12/13
7/26/2019 Laboratorio 1_2v3
13/13
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 microcontroladoresPIC en asembler (juego de luces basico) 11:30
https://www.youtube.com/watch?v=UFzIn7CuFwc
Tercer tutorial de programacin de microcontroladores PICen asembler (contador de 0 a 9) 24:48
https://www.youtube.com/watch?v=MtOqKkRQ4yw