Академический Документы
Профессиональный Документы
Культура Документы
Asignatura:
Microprocesadores
Práctica No.4
Profesor:
Jose Luis Bravo León.
Alumno:
Gutiérrez Cruz Jesus Alejandro
Grupo:
6CM4
Objetivo: Uso de subrutinas en la configuración y manejo de puertos de entrada y salida.
Marco Teórico.
Puertos de Entrada y salida.
Aunque el uso de microcontroladores ahorra considerablemente la cantidad de chips
empleados en un proyecto específico, existen aplicaciones muy complejas en las que
resulta prácticamente imposible incluir en un solo circuito integrado todas las funciones que
se requieren para cubrir cierto requerimiento; lo que obliga a colocar dos o más integrados
trabajando en estrecha cooperación, intercambiando datos, repartiendo instrucciones,
enviando y recibiendo información, etc.
Tradicionalmente, la forma en la que se realiza este intercambio de datos digitales es
utilizando varias líneas de comunicación entre chips, y esta cantidad de líneas es
equivalente a la cantidad de bits que maneja el dispositivo en cuestión; esto significa que
un microprocesador de 8 bits usa 8 líneas de comunicación, uno de 16 bits usaría 16 líneas,
y así sucesivamente (aunque esto no siempre se cumple).
El bus de direcciones (address bus) varía de tamaño según el procesador de la familia que
se emplee (puede ser de 20, 24 ´o 32 bits), pero para la entrada/salida es siempre de 16
bits.
Esto permite al microprocesador direccionar hasta 65536 diferentes localizaciones
especiales de entrada/salida, lo que es más que suficiente para la mayoría de los
dispositivos, aunque muchas veces un dispositivo requiera más de una dirección de
entrada/salida. Hay 2 espacios de direcciones, pero un solo bus de direcciones y son las
líneas de control las que deciden a que espacio estamos accediendo en cada momento. De
esta manera, el direccionamiento de entrada/salida (I/O addressing) se comporta
exactamente igual que el direccionamiento de memoria (memory addressing). La memoria
y los dispositivos I/O comparten el bus de datos y los 16 primeros bits del bus de
direcciones.
Un puerto I/O tiene una apariencia de celda de memoria para el computador, pero tiene
conexiones con el mundo exterior. Los puertos de entrada/salida se clasifican
habitualmente en tres tipos diferentes:
Existe una diferencia entre las interrupciones hardware y las demás: cuando se entra en
una ISR de una interrupción hardware, el procesador 80x86 deshabilita posteriores
interrupciones hardware poniendo a 0 el flag de interrupción. Esto no ocurre con las traps
ni con las excepciones. Por tanto, si queremos inhabilitar las interrupciones en medio de
una ISR de trap o excepción, hay que hacerlo explícitamente, con la instrucción “cli” en
ensamblador o con los medios que proporcione el sistema operativo
Tanto los subsistemas de entrada/salida mapeada en memoria como los que usan puertos
de entrada/salida necesitan que sea la CPU la que realice la transferencia de los datos
entre el dispositivo y la memoria. Para algunos dispositivos de alta velocidad, esta forma de
procesar los datos puede resultar demasiado lenta
Desarrollo.
Una vez guardado y compilado el programa sin problema alguno, continué con el paso
siguiente, el cual fue abrir la ventana de HARDWARE STACK, el cual me permitía desplegar
los registros de memoria de ahí.
Observe los valores que tomó el registro STKPTR, así como los valores que se fueron
almacenando en el área de STACK al momento que realice la ejecución de las subrutinas.
Los datos desplegados se muestran en la siguiente tabla.
INSTRUCCIÓN STKPTR DIRECCIÓN DE
RETORNO
RETURN 0 x 01 001004
RETURN 0 x 01 001008
Como para este programa se necesitaba que si un número mayor a doce se leyera, ese
dato seria ignorado.
Del programa de MPLAB IDE, seleccione la herramienta Stimuls, la cual me sirvió para
asignar un valor de entrada a PORTB que fuera menor a 0 X 0C (12 decimal). El valor que
yo elegí fue cero, de esta manera llené la tabla correspondiente.
00102C Return - - - - -
En las últimas dos partes de la tabla no hay nada ya que como el numero ingresado es
mayor a 12, se estará repitiendo hasta que la condición se cumpla.
Como el programa estaba correcto; abrí de la carpeta el archivo con extensión .HEX y pase
a conectar el PIC18F4550 a la computadora para que de esta manera se transfiriera el
código creado y así visualizar su funcionamiento.
CONCLUSION.
Para esta práctica fue necesario el conocimiento sobre los puertos de entrada y salida del
PIC18F4550, así como sus comandos para su programación. De esta manera pude realizar
la programación del PIC y poder observar su funcionamiento.
BIBLIOGRAFIA.
Microprocesadores
Leopoldo Parra Reynada
Red Tercer Milenio
Pág. 123; 151