Está en la página 1de 3

Examen Interciclo

MICROPROCESADORES 2

Descripción código ensamblador del PIC16f876A

Luis Fernando Ordoñez Pineda


Universidad de Cuenca
Facultad de Ingeniería
luis.ordonezp@ucuenca.edu.ec

Resumen— En el presente ensayo se realizó la descripción del 2. Sección 2


código en lenguaje ensamblador de un programa a ejecutarse en un
PIC16f876A. En el cual se separó en código en secciones en En esta sección se realiza el reseteo de la memoria RAM desde
particular en las que cada una cumple distintas funciones en
el puerto cero, se selecciona el banco 1 y se limpian los
específico dentro del objetivo general del programa y dentro de las
configuraciones necesarias que se tiene que realizar. Para que el
registros como primera instancia. Para continuar con la
código sea funcional y se pueda probar en programas que realizan la respectiva asignación de puertos de salida, en este caso 3 (A,
implementación del código en el PIC. Cada línea destacada cuenta B, C).
con su respectiva descripción de la tarea que cumple en el entorno
global. Por último se redactaron unas conclusiones en referencia al
funcionamiento de programa.

DESARROLLO

1. Sección 1
Fig. 2 Sección 2
En esta sección se asignan espacios de memoria a variables y
puertos. 3. Sección 3

En esta sección se comienza asignando otro banco, el numero


cero. Se traslada el contenido de “TMRON” que fue definido
en la sección 1 hacia “W”, que es el registro de trabajo
(Working Register). Es un registro relevante especial de 8 bits.
Se realiza una operación de resta mediante el comando
“SUBLW”, y este resultado se vuelve a trasladar a “T20FF”.
Que de igual forma se definió en la sección 1. En esta misma
variable se realiza un incremento en 1.

Fig.3 Sección 3

4. Sección 4

En esta sección se realiza algo particular la configuración del


“MODULO USART”, que se va a describir de forma breve a
continuación:
 El módulo USART tiene la función retransmitir o
recibir datos en serie y puede ser en modo síncrono
o asíncrono.
 En el modo síncrono utiliza una señal de reloj y una
línea de datos.
 En el modo asíncrono, no se envía la señal de reloj,
sino que el emisor y receptor tienen que estar
trabajando a la misma frecuencia.

Entonces para esta configuración se selecciona el banco 1, se


traslada de W a SPBRG y se configura la escala del generador
de Baudios. Además se le asigna bits particulares en la
configuración de TXTA. Como: BRGH=1, se predetermina el
modo asíncrono y se establece el módulo de trasmisión en Fig. 5 Sección 5
modo serial. De igual forma se realiza la configuración de
RCSTA habilitando el puerto serial y manteniendo la 6. Sección 6
recepción en constante.
En esta sección deshabilita las fuentes de interrupción y se
adiciona un condicional TOIF. Que cuando sea 1 ejecuta la
función “return” y caso contrario ejecuta “GOTO”. Además se
adiciona el modo espera hasta que se tenga un desborde en
TMR0. Y se da fin al programa.
Fig.4 Sección 4

5. Sección 5

Se comienza seleccionando el banco 1 y configura


“optiom_reg”. Deshabilitando las UPS, definiendo Fig. 6 Sección 6
interrupción en el flanco de subida en RD0. Asignando el reloj
interno en TMR0 y modo timer. De igual forma se asigna el
flanco de subida en la fuente de reloj TMR0, adicionalmente CONCLUCIONES Y RECOMENDAIONES
se configura el preescaler.
 Por lo tanto se concluye que a pesar de realizar la
Comienza el primer ciclo de operación configurando los pines configuración del módulo USART de envío y recepción
del puerto B en 1, carga el valor inicial de TMR0. Llama a la de datos serial y en modo asíncrono. No se realiza uso
función retardo y se queda en espera hasta el desborde de del mismo en los bucles se sentencia de ejecución. Es
TMR0. En el siguiente ciclo de configurando los pines del decir solo se realiza la configuración de memoria pero no
puerto B en 0, carga el valor inicial de TMR0. Llama a la se realiza operación alguna que tenga que ver con puerto
función retardo y se queda en espera hasta el desborde de de salida ni entrada.
TMR0. Nuevamente carga e valor inicial de TMR0 y llama a  En consecuencia se puede decir que en el bloque de
la función de retardo 4 veces seguidas y en cada llamado se ejecución se activa el puerto de saluda B un ciclo.
queda en modo de espera hasta el desborde de TMR0. Hasta Poniendo en activos o 1 a los pines de salida y luego se
que en luego del ultimo llamado a retardo para a realizar de procede a realizar el inverso a esto signando el valor de
nuevo la sentencia desde el inicio asignado valores de 1 al 0 a los puertos de salida. Este ciclo negativo se repite 4
puerto B y así de manera sucesiva. veces y con la primera ejecución son 5 en total en el que
los pines de salida se encuentran el valor 0. Por ejemplo
si es que se conectaría unos leds o motores a los pines de
salida, estos se encuentran en un proceso de 5 ciclos
desactivas y un proceso de activo. Considerando posibles
retrasos y esperas.

COMENTARIOS

En mi consideración es una parte fundamental la asignación


de memoria ya que con las variables y espacios designados se
va a estar realizando las todas las ejecuciones en el resto de
programas. De igual forma en cuanto tiene que ver a la
configuración del módulo USART, es útil designar el modo
asíncrono. Ya que a pesar de que el receptor se encuentre en
espera constante, una vez definido el modo asíncrono el REFERENCIAS
trasmisor puede realizar envíos a cualquier momento. Y la
configuración del bucle de ejecución, es decir la estructura de [1] PIC16F87XA / Data Sheet 28/40/44-Pin Enhanced Flash
ejecución es bastante útil para varios procesos de aplicación Microcontrollers
práctica ya que como se mencionó se puede conectar a los
pines de salida leds, motores entre otros dispositivos
periféricos de salida o actuadores.
.

También podría gustarte