You are on page 1of 12

GUA SENCILLA: PROGRAMAR Y SIMULAR EN PROTEUS En este apartado se dan las recomendaciones a seguir para la entrega del proyecto

final de Microcontroladores I.

El desarrollo del programa en Assembler Para generar el archivo en lenguaje ensamblador: 1. Abrir el Bloc de Notas de office siguiendo esta ruta: Inico/Todos los programas/Bloc de Notas 2. Una vez abierto el programa se deber escribir el programa el cual debe contener: a. Una cabecera donde se muestre el ttulo. b. Cada lnea deber estar comentada. c. Las secciones para las Sub-rutinas y/o interrupciones deben estar especificadas para su mejor comprensin.

Cabecera

Programa en Assembler T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

Comentarios

3. Guardar el archivo. a. Hacer click sobre Archivo luego en Guardar como b. Se crea una carpeta nueva para guardar el los archivos referentes al programa. Click derecho sobre la ventana de guardar como/ Nuevo/carpeta

c. Se nombra el archivo y se guarda con la extensin .asm nombre_del_archivo.asm

d. Click sobre guardar y listo.

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

Crear un proyecto en Proteus 7 y simularlo 1. Una vez instalado Proteus abrir el programa siguiendo la siguiente ruta:
Inicio/ todos los programas/ Proteus 7 Professional/ ISIS 7 Professional

2. Para buscar los componentes se hace click sobre el smbolo P en el men de la izquierda.

Smbolo P

3. Al hacer click en el men P se abre la siguiente ventana para buscar los componentes.

a b d

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

a. Se teclea el componente a buscar b. Muestra los componentes con el nombre indicado dentro de la librera c. Aqu se puede buscar por categora d. Muestra el smbolo del componente que se agregar e. Una vez seleccionado el componente deseado se clickea sobre ok 4. Para colocar un componente en el rea de trabajo: a. Se selecciona del men de componentes del proyecto a la izquierda b. Se hace click sobre el lugar del rea de trabajo donde se desea colocar.

b rea de trabajo

5. Para realizar las conecciones slo se debe hacer click en el terminal del dispositivo que se desea conectar luego en el siguiente terminal y listo

Terminales

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

6. Para cambiar las propiedades de un componente se hace doble click sobre el componente y en el cuadro que se despliega tras la accin se colocan los valores que se desean. 7. Una vez terminado todas las conexiones se procede a cargar el programa en el microcontrolador para simular. El procedimiento es el siguiente: a. Se hace click sobre Source, luego en add/Remove Source file

b. En la seccin Source Code Filename se hace click sobre New y se ubica el arcivo .asm que se haba guardado.

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

c. Asegurate

de

que

en

Code

Generation

Tool

aparezca

MPSAMWIN si no seleccinalo desde la barra desplegable pulsando sobre la flecha. d. Una vez seleccionado el archivo se da click en OK e. Luego se hace doble click sobre el PIC f. En el cuadro que aparece seleccionamos la frecuencia del cristal y hacemos click sobre OK. Nota que en el cuadro Program File aparece el archivo seleccionado pero con la extensin .HEX eso est bien.

g. Luego le damos a Play para simular. Si el programa no tiene errores todo marchar bien y vers una ventana que se abre y se cierra muy rpido, pero eso dice que est bien, y ya puedes presionar los pulsadores o ver cmo se comporta lo que programaste.

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

Qu hacer si hay ERRORES y el programa no corre? Si hay algn error con el programa se abrir una ventana con muchas palabras en ingls como la siguiente y el programa no correr.

Pero no te preocupes que todo tiene solucin. 1. Debes leer el reporte donde dice ERROR [133] y seguido, despus de los dos puntos, dice cual es el error: Symbol not Previously defined

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

(POTB_TRISB). No hace falta saber mucho ingls para darse cuenta que el smbolo est definido mal, debera ser PORTB_TRISB falta una R; jeje, un error tonto, pero ahora dnde est? 2. Para ubicar el error tienes que ir a la carpeta que creaste para guardar los archivos del programa que creaste recuerdas? Y abres el archivo que tiene la extensin .ERR

3. Abres el archivo con Bloc de Notas y otra vez ms cosas en ingles

4. Pero te vas a la lnea que comienza por ERR justo antes de decir el error muestra un nmero, en este caso 21. Ese nmero indica la lnea donde est el error, as que abrimos nuevamente el archivo .asm y clickeamos en la barra de men sobre Ver y checkeamos la opcin Barra de estado. 5. Una vez que hacemos eso ahora podemos navegar por las lneas de

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

programacin y en la parte inferior derecha de la pantalla nos mostrar el nmero de lnea y columna en la que estamos. De esa manera ubicamos la lnea donde est el error que se mencionaba: Symbol not Previously defined (POTB_TRISB) en la lnea 21. Y all est, solo tenemos que acomodar el smbolo y listo. 6. Debemos repetir esto para cada error hasta que ya no exista ninguno. 7. Guardamos los cambios. 8. Vamos a nuestro proyecto de Proteus y hacemos click sobre Play y ya veremos que todo marcha segn lo planeado, es decir, FUNCIONA SEGN LO PROGRAMADO

LOS COMPONENTES DEL PROYECTO EXPLICADO

Puedes buscar los componentes as: Pic: Resistencia: Led: Pulsador: PIC16F84A RESISTOR LED-BLUE (O CUALQUIER COLOR PERO LOS QUE DICEN ACTIVOS) BUTTON La fuente y la Tierra: Para estas has click derecho sobre el rea de trabajo selecciona Place/Terminal/ luego GROUND (para la tierra) o POWER (para la fuente) NOTA: Para los dems componentes solo tienes que tomarte un tiempo y buscarlos en la librera.

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

UN EJERCICIO PARA QUE PRACTIQUES

AQU TE DEJO EL PROGRAMA ANTERIOR PARA QUE PRACTIQUE A GUARDARLO Y SIMULARLO. TIENE UN ERROR PARA QUE LO CORRIJAS Y LUEGO VEAS COMO FUNCIONA. NO ES EL MISMO ERROR EXPLICADO AS QUE DEBERS SEGUIR LOS PASOS PARA ENCONTRARLO.

;******************************************************************************* ; PROGRAMA PARA REPRESENTAR EL ESTADO DE UN ; PULSADOR CONECTADO EN RB0, MEDIANTE UN LED CONECTADO A RB1 ;******************************************************************************* LIST P=16F84A utilizar RADIX HEX STATUS PORTB_TRISB rp0 ORG 00 goto inicio ORG 05 partir de la inicio bsf movlw movwf bcf bucle btfsc PORTB_TRISB,0 apaga el led goto encender bsf led goto apagar bcf seguir goto END bucle PORTB_TRISB,1 apagar PORTB_TISB,1 seguir STATUS,rp0 b'00000001' PORTB_TRISB STATUS,rp0 EQU EQU EQU 03 06 5 ; Directiva que indica el dispositivo a

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

Seccin de declaracin de registros y variables Directiva de inicio Salto a inicio la siguiente instruccin se escribir a 05h de la memoria de programa etiqueta de inicio se cambia al banco 1 para.... se configura RB0 como entrada se vuelve al banco 0 etiqueta donde se regresa el programa pregunta por el estado de RB0 si es uno de lo contrario enciende el led Va a apagar Etiqueta donde se enciende el led se coloca en "1" a RB1 para encender el va a seguir Etiqueta donde se apaga el led se coloca un "0" en RB1 para apagar el led etiqueta para continuar la verificacin va al bucle de repeticin del programa Directiva de fin de programa

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

GUA DE EJERCICIOS PROPUESTOS. MICROCONTROLADORES

1.

Se desea realizar un programa en

los interruptores e ilumine el led correspondiente al interruptor que se halle cerrado. 7. Se desea confeccionar un programa que

lenguaje ensamblador que permita sumar dos valores desconocidos que se encuentran en las posiciones 0Ch y 0Dh de la memoria de datos. El resultado deber depositarse en la posicin 0Eh. 2. Realice un programa que sume un valor

incremente el valor de un contador CONTA de unidad en unidad hasta alcanzar el valor 7Ah, momento en el cual se deber reiniciar y comenzar nuevamente el conteo. El valor del contador deber mostrarse en las lneas del puerto B. 8. En un PIC16F84 que trabaja a 1 MHz se

guardado en 0Ch de la memoria de datos y el valor inmediato 0x07. El resultado de esta operacin deber depositarse en la direccin 0Ch. 3. Se tienen 4 interruptores conectados a

las lneas RA0 a RA3 del puerto A. El programa que se debe confeccionar tiene que leer el valor introducido por estas lneas, sumarle el valor inmediato 5 y guardar el resultado en la direccin 0Ch de la memoria de datos. 4. Se tienen 4 interruptores conectados a

conecta un diodo led a la lnea RB7. Se desea hacer parpadear el led cada 8,2 ms. Confeccione el programa. 9. En un PIC16F84 que trabaja a 4 MHz se

conecta un diodo led a la lnea RB7. Se desea hacer parpadear el led cada 10 ms. Confeccione el programa. 10. Se desea incrementar un contador

las lneas RA0 a RA3 del puerto A y cuatro leds conectados a las lneas RB0 a RB3 del puerto B. se desea realizar un programa que permita visualizar que interruptor est activo, sabiendo que el led conectado a la lnea RB0 indica el estado del interruptor conectado a RA0 y as

CONTA cada 1 segundo y el resultado debe ser visualizado en 4 diodos led conectados en las lneas RB0 RB3 de la puerta B. Cuando el contador alcance el valor 0Fh deber reiniciarse y empezar nuevamente el conteo. 11. Confeccione un programa que permita

sucesivamente. 5. Confeccione un programa que permita

sumar y restar el valor introducido por las lneas RA0 RA4 y RB0 RB4. El resultado de la suma debe depositarse en la direccin 0Ch y el resultado de la resta en la direccin 0Dh. 6. Se dispone de cinco interruptores que

incrementar un contador CONTA cada vez que se reciba una seal introducida mediante un pulsador que se encuentra conectado a la lnea RA4 del puerto A. 12. Se desea confeccionar un programa que

actan como perifricos de entrada y se conectan a las cinco lneas del puerto A de un PIC16F84 funcionando a 4 MHz con oscilador externo tipo XT. Como perifricos de salida actan 5 diodos led unidos a las lneas RB0RB4 del puerto B. tambin se dispone de un pulsador manual para provocar electrnico el reset. de A) disee el esquema PIC, (B)

mediante la interrupcin por TMR0 permita el encendido y apagado de un led cada 500 ms (500 ms encendido y 500 ms apagado). El led se encuentra conectado a la lnea RB7 y se sabe que el PIC trabaja a una frecuencia de 4MHz. 13. Realice un programa, mediante

interrupciones, que permita explorar el estado de dos interruptores conectados a las lneas RA0 y RA1 continuamente y reflejar su estado sobre dos

conexionado

del

confeccione un programa que explore el estado de

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com

diodos led conectados a RB0 y RB1. Adems existe un tercer diodo conectado a RB7 que est parpadeando continuamente cada segundo. El PIC se encuentra funcionando a 4 MHz. 14. Confeccione un programa que haga rotar

el estado de ON en siete leds conectados desde RB1 RB7 cada 10 ms. Se deber configurar una interrupcin externa que permita, mediante un pulsador conectado a RB0, detener la rotacin y mostrar el ltimo estado. Tambin se encuentra conectado un pulsador en RA0 que servir como inicializador del programa. 15. Confeccione un programa mediante

interrupciones que controle una alarma conectada a las cuatro puertas de un automvil. Conectadas a RB4 RB7 hay cuatro sensores que controlan cada una de las puertas. Cuando cualquiera de las puertas se abra deber sonar un Buzzer que est conectado en RA0. Para detener la alarma se utilizar un sensor infrarrojo conectado a RB0. 16. Realice un programa que permita la

conversin de 3 dgitos binarios introducidos por RA0 RA2 a BCD y ser visualizado mediante un display 7 segmentos conectado a las lneas del Puerto B. 17. Confeccione un programa que visualice el

conteo mediante un display 7 segmento conectado al puerto B. el valor a contar ser seleccionado mediante tres interruptores conectados a las lneas de menos peso del puerto A. La pausa entre cada nmero ser de 500 ms. Asuma que el PIC trabaja con un cristal de 4 MHz.

T.S.U Isaas Rodrguez. t_ingenious@hotmail.com