GUÍA SENCILLA: PROGRAMAR Y SIMULAR EN PROTEUS En este apartado se dan las recomendaciones a seguir para la entrega del p
Views 157 Downloads 1 File size 786KB
GUÍA 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 título. b. Cada línea deberá estar comentada. c. Las secciones para las Sub-rutinas y/o interrupciones deben estar especificadas para su mejor comprensión.
Cabecera
Programa en Assembler T.S.U Isaías Rodríguez. [email protected]
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 extensión “.asm” nombre_del_archivo.asm
d. Click sobre guardar y listo.
T.S.U Isaías Rodríguez. [email protected]
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 símbolo “P” en el menú de la izquierda.
Símbolo P
3. Al hacer click en el menú “P” se abre la siguiente ventana para buscar los componentes.
a b d
c
e
T.S.U Isaías Rodríguez. [email protected]
a. Se teclea el componente a buscar b. Muestra los componentes con el nombre indicado dentro de la librería c. Aquí se puede buscar por categoría d. Muestra el símbolo 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
a
“Área de trabajo”
5. Para realizar las conecciones sólo se debe hacer click en el terminal del dispositivo que se desea conectar luego en el siguiente terminal y listo
Terminales
T.S.U Isaías Rodríguez. [email protected]
6. Para cambiar las propiedades de un componente se hace “doble click” sobre el componente y en el cuadro que se despliega tras la acción 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 sección “Source Code Filename” se hace click sobre “New” y se ubica el arcivo “.asm” que se había guardado.
T.S.U Isaías Rodríguez. [email protected]
c. Asegurate
de
que
en
“Code
Generation
Tool”
aparezca
“MPSAMWIN” si no selecciónalo 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 extensión “.HEX” eso está bien.
g. Luego le damos a “Play” para simular. Si el programa no tiene errores todo marchará bien y verás una ventana que se abre y se cierra muy rápido, pero eso dice que está bien, y ya puedes presionar los pulsadores o ver cómo se comporta lo que programaste.
T.S.U Isaías Rodríguez. [email protected]
¿Qué hacer si hay ERRORES y el programa no corre? Si hay algún error con el programa se abrirá una ventana con muchas palabras en inglés como la siguiente y el programa no correrá.
Pero no te preocupes que todo tiene solución. 1. Debes leer el reporte donde dice “ERROR [133] y seguido, después de los dos puntos,
dice cual es el error: Symbol not Previously defined
T.S.U Isaías Rodríguez. [email protected]
(POTB_TRISB). No hace falta saber mucho inglés para darse cuenta que el símbolo está definido mal, debería ser “PORTB_TRISB” falta una “R”; jeje, un error tonto, pero ahora ¿dónde 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 extensión “.ERR”
3. Abres el archivo con Bloc de Notas y otra vez más cosas en ingles
4. Pero te vas a la línea que comienza por “ERR” justo antes de decir el error muestra un número, en este caso 21. Ese número indica la línea donde está el error, así que abrimos nuevamente el archivo “.asm” y clickeamos en la barra de menú sobre “Ver” y checkeamos la opción “Barra de estado”. 5. Una vez que hacemos eso ahora podemos navegar por las líneas de
T.S.U Isaías Rodríguez. [email protected]
programación y en la parte inferior derecha de la pantalla nos mostrará el número de línea y columna en la que estamos. De esa manera ubicamos la línea donde está el error que se mencionaba: Symbol not Previously defined (POTB_TRISB) en la línea 21. Y allí está, solo tenemos que acomodar el símbolo 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 según lo planeado, es decir, “FUNCIONA SEGÚN LO PROGRAMADO”
LOS COMPONENTES DEL PROYECTO EXPLICADO
Puedes buscar los componentes así: Pic:
PIC16F84A
Resistencia:
RESISTOR
Led:
LED-BLUE (O CUALQUIER COLOR PERO LOS QUE DICEN ACTIVOS)
Pulsador:
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 demás componentes solo tienes que tomarte un tiempo y buscarlos en la librería.
T.S.U Isaías Rodríguez. [email protected]
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 DEBERÁS 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
;
Directiva
; ;
Sección de declaración de registros y variables
; ; ;
Directiva de inicio Salto a inicio la siguiente instrucción 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
apagar
; ;
de lo contrario enciende el led Va a apagar
PORTB_TISB,1
; ;
Etiqueta donde se enciende el led se coloca en "1" a RB1 para encender el
seguir
;
va a seguir
bcf
PORTB_TRISB,1
; ;
Etiqueta donde se apaga el led se coloca un "0" en RB1 para apagar el led
goto
bucle
; ;
etiqueta para continuar la verificación va al bucle de repetición del programa
;
Directiva de fin de programa
STATUS PORTB_TRISB rp0
EQU EQU EQU
ORG 00 goto inicio ORG 05 partir de la inicio bsf movlw movwf bcf
STATUS,rp0 b'00000001' PORTB_TRISB STATUS,rp0
bucle btfsc PORTB_TRISB,0 apaga el led goto encender bsf led goto apagar seguir END
03 06 5
T.S.U Isaías Rodríguez. [email protected]
que
indica
el
dispositivo
a
GUÍA DE EJERCICIOS PROPUESTOS. MICROCONTROLADORES
1.
Se desea realizar un programa en
los interruptores e ilumine el led correspondiente
lenguaje ensamblador que permita sumar dos
al interruptor que se halle cerrado.
valores desconocidos que se encuentran en las
7.
posiciones 0Ch y 0Dh de la memoria de datos. El
incremente el valor de un contador CONTA de
resultado deberá depositarse en la posición 0Eh.
unidad en unidad hasta alcanzar el valor 7Ah,
2.
Realice un programa que sume un valor
momento en el cual se deberá reiniciar y
guardado en 0Ch de la memoria de datos y el
comenzar nuevamente el conteo. El valor del
valor inmediato 0x07. El resultado de esta
contador deberá mostrarse en las líneas del
operación deberá depositarse en la dirección 0Ch.
puerto B.
3.
8.
Se tienen 4 interruptores conectados a
Se desea confeccionar un programa que
En un PIC16F84 que trabaja a 1 MHz se
las líneas RA0 a RA3 del puerto A. El programa
conecta un diodo led a la línea RB7. Se desea
que se debe confeccionar tiene que leer el valor
hacer parpadear el led cada 8,2 ms. Confeccione
introducido por estas líneas, sumarle el valor
el programa.
inmediato 5 y guardar el resultado en la dirección
9.
0Ch de la memoria de datos.
conecta un diodo led a la línea RB7. Se desea
4.
hacer parpadear el led cada 10 ms. Confeccione
Se tienen 4 interruptores conectados a
En un PIC16F84 que trabaja a 4 MHz se
las líneas RA0 a RA3 del puerto A y cuatro leds
el programa.
conectados a las líneas RB0 a RB3 del puerto B.
10.
se desea realizar un programa que permita
CONTA cada 1 segundo y el resultado debe ser
visualizar que interruptor está activo, sabiendo que
visualizado en 4 diodos led conectados en las
el led conectado a la línea RB0 indica el estado
líneas RB0 – RB3 de la puerta B. Cuando el
del
contador alcance el valor 0Fh deberá reiniciarse y
interruptor
conectado
a
RA0
y
así
Se
desea
incrementar
sucesivamente.
empezar nuevamente el conteo.
5.
11.
Confeccione un programa que permita
un
contador
Confeccione un programa que permita
sumar y restar el valor introducido por las líneas
incrementar un contador CONTA cada vez que se
RA0 – RA4 y RB0 – RB4. El resultado de la suma
reciba una señal introducida mediante un pulsador
debe depositarse en la dirección 0Ch y el
que se encuentra conectado a la línea RA4 del
resultado de la resta en la dirección 0Dh.
puerto A.
6.
12.
Se dispone de cinco interruptores que
Se desea confeccionar un programa que
actúan como periféricos de entrada y se conectan
mediante la interrupción por TMR0 permita el
a las cinco líneas del puerto A de un PIC16F84
encendido y apagado de un led cada 500 ms (500
funcionando a 4 MHz con oscilador externo tipo
ms encendido y 500 ms apagado). El led se
XT. Como periféricos de salida actúan 5 diodos
encuentra conectado a la línea RB7 y se sabe que
led unidos a las líneas RB0–RB4 del puerto B.
el PIC trabaja a una frecuencia de 4MHz.
también se dispone de un pulsador manual para
13.
provocar
interrupciones, que permita explorar el estado de
electrónico
el
reset. de
A)
diseñe
conexionado
el
del
esquema PIC,
Realice
un
programa,
mediante
(B)
dos interruptores conectados a las líneas RA0 y
confeccione un programa que explore el estado de
RA1 continuamente y reflejar su estado sobre dos
T.S.U Isaías Rodríguez. [email protected]
diodos led conectados a RB0 y RB1. Además 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 interrupción externa que permita, mediante un pulsador conectado a RB0, detener la rotación y mostrar el último estado. También 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 automóvil. 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
conversión de 3 dígitos binarios introducidos por RA0 – RA2 a BCD y ser visualizado mediante un display 7 segmentos conectado a las líneas 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 líneas de menos peso del puerto A. La pausa entre cada número será de 500 ms. Asuma que el PIC trabaja con un cristal de 4 MHz.
T.S.U Isaías Rodríguez. [email protected]