Objetivo
Realizar un contador que vaya desde 000000 al 999999 de uno en uno cada
centesima de segundo, con un push button ...
La siguiente figura muestra el salto a la dirección del subprograma PP1. Sin embargo, si una
subrutina o una dirección de ...
indirecto por los registros INDF y FSR. A veces esto facilita el proceso de escribir un programa. El
procedimiento entero ...
Código
Conclusiones
Gracias a esta practica pudimos saber la importancia de las subrutinas ya que sin ayuda de estas
se podria pe...
INSTITUTO POLITECNICO NACIONAL
UNIDAD PROFESIONAL
INTERDISCIPLINARIA DE INGENIERIA
Y
TECNOLOGIAS AVANZADAS
INTEGRANTES:
Fl...
Practica 4
Practica 4
Practica 4
Practica 4
Próxima SlideShare
Cargando en…5
×

Practica 4

164 visualizaciones

Publicado el

Publicado en: Ingeniería
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
164
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Practica 4

  1. 1. Objetivo Realizar un contador que vaya desde 000000 al 999999 de uno en uno cada centesima de segundo, con un push button que decida si es ascendente o descendente, y otro para detener el contador en el numero que estaba. Introducción Utilizando las subrutinas de anti-rebotes dentro de los interruptores para el correcto funcionamiento lograremos que se detenga o se decida si es ascendente o descendete el conteo, el tiempo de retardo del incremento será de 1 centesima seg. Con los 2 pushes se le asignaran tareas especificas el primero decidirá si es ascendete o descente, siendo por default un conteo ascendente, mientras que con el segundo push se mostrara en los 6 displays el numero en el que se quedo en ese instante. El funcionamiento del circuito si es que no se oprimio ninguno de estos, será ascendente con una tolerancia de +- 1 segundo por 30 mins. Marco teórico La memoria de programa del PIC es de 8K y tiene 8192 localidades para el almacenamiento de programa. Por esta razón, el contador de programa (PC) debe de ser de 13 bits de anchura (213 = 8192). Para habilitar el acceso a una localidad de memoria de programa durante el funcionamiento del microcontrolador, es necesario acceder a su dirección por medio de los registros SFR. Como todos los registros SFR son de 8 bits de anchura, este registro de direccionamiento es creado al combinar dos registros independientes: el byte bajo (de 8 bits) del contador de programa ocupa el registro PCL, mientras que el byte alto (5 bits) ocupa el registro PCLATH. Si la ejecución de programa no afecta al contador de programa, el valor de este registro (PCL y PCLATH) va incrementándose automática y constantemente: +1, +1, +1, +1... De esta manera, el programa se ejecuta como está escrito - instrucción a instrucción, seguido por un incremento de dirección constante.
  2. 2. La siguiente figura muestra el salto a la dirección del subprograma PP1. Sin embargo, si una subrutina o una dirección de salto no está en la misma página que la localidad de salto, se deben proporcionar dos bits superiores que faltan al escribir en el registro PCLATH. La siguiente figura muestra el salto a la dirección de la subrutina PP2. En ambos casos, cuando la subrutina llega a las instrucciones RETURN, RETLW o RETFIE (vuelta al programa principal), el microcontrolador continuará con la ejecución de programa desde donde se interrumpió, ya que la dirección de retorno se empuja y se guarda en la pila que consiste en registros de 13 bits, como hemos mencionado. Además del direccionamiento directo, que es lógico y claro (basta con especificar la dirección de un registro para leer su contenido), este microcontrolador es capaz de realizar el direccionamiento
  3. 3. indirecto por los registros INDF y FSR. A veces esto facilita el proceso de escribir un programa. El procedimiento entero está habilitado ya que el registro INDF no es real (no existe físicamente), sino que solamente especifica el registro cuya dirección está situada en el registro FSR. Por esta razón, escribir o leer los datos del registro INDF realmente significa escribir o leer del registro cuya dirección está situada en el registro FSR. En otras palabras, direcciones de registros se especifican en el registro FSR, y su contenido se almacena en el registro INDF. La diferencia entre el direccionamiento directo e indirecto se muestra en la siguiente figura: Como hemos visto, el problema con “los bits de direccionamiento que faltan” se soluciona con un “préstamo” del otro registro. Esta vez, es el séptimo bit, denominado bit IRP del registro STATUS.
  4. 4. Código
  5. 5. Conclusiones Gracias a esta practica pudimos saber la importancia de las subrutinas ya que sin ayuda de estas se podria perder el conteo de los displays, tambien otra parte importante fue el hacer el corrimiento de mostrar los numeros atravez de los displays para que el ojo humano no se diera cuenta de que estaba apagado en cierto momento un display.
  6. 6. INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y TECNOLOGIAS AVANZADAS INTEGRANTES: Fleshman Espinoza Juneau Medina Huerta Mario Alejandro Alvarado Domínguez Rodrigo PRÁCTICA 4 FECHA DE ENTREGA: 28/SEPTIEMBRE/2013 MICROPROCESADORES, MICROCONTROLADORES E INTERFAZ PROFESOR: DAVID ARTURO GUTIÉRREZ BEGOVICH

×