CURSO DE MICROCONTROLADORES EL MPLAB
Short Description
ESTE ES EL COMPLEMENTO DEL CURSO DE MICROCONTROLADORES PIC16F87X...
Description
36 Microcontrolador
11/3/08
09:48
Página 36
CURSO DE MICROCONTROLADORES EL MPLAB (I) S
E R O D A L O R 36 T N O C O R C I M
Francisco Javier Tortosa Martínez Ingeniero de Sistemas Indytel Sistemas S.L. www.microladder.com
Fernando Remiro Domínguez Profesor de Sistemas Electrónicos IES. Juan de la Cierva www.terra.es/personal/fremiro
En el número 178 , ya publicamos un manual de usuario del MPLAB en su versión de 16 bits, pero la verdad que en podo o mejor dicho en casi nada se parece a esta versión de 32 bits con la que estamos trabajando ahora. Por lo tanto antes de seguir analizando otros microcontroladores de Microchip, nos hemos propuesto publicar este manual de usuario del MPLAB IDE, tanto para los nuevos usuarios de los estos microcontroladores, como para algunos que son más expertos, y no le sacan todo su posible potencial de uso.
RESISTOR
Foto 1.- Logotipo del MPLAB
COMO OBTENER EL PROGRAMA Lo primero que debemos hacer es obtener el programa que es de libre disposición y que nos lo ofrece la empresa Microbio en su web www.microchip.com y ya en la página principal en el apartado de design encontramos un enlace al MPLAB IDE, pulsamos sobre él y al final de esta nueva página encontramos un enlace de descarga en el que pone MPLAB IDE v8.02 Interim Release Zipped Installation, pulsando con el botón auxiliar del ratón lo guardamos en un subdirectorio de nuestro disco duro. Como el archivo
que hemos descargado está comprimido en formato Zip, lo extraemos en un subdirectorio y se ejecuta el archivo MP802_Install. El MPLAB IDE está desarrollado bajo el sistema operativo Windows. Es un entrono para el diseño de los microcontroladores PIC y dsPIC. Con el MPLAB se puede: • Crear y revisar código fuente a través de su editor. • Ensambla, compila y linkar el código fuente. • Depuración siguiendo el flujo del programa en el simulador o emulando en el circuito en tiempo real.
• Cronometra el tiempo de ejecución en el simulador o en el emulador • Visualiza las variables en la ventana del reloj • Permite programar el firmware utilizando diversos programadores. COMENZANDO CON EL MPLAB IDE Una vez instalado el programa, se recomienda seguir los siguientes pasos. 1. Como el path o camino absoluto de los ficheros de trabajo del MPLAB no deben exceder de 62
36 Microcontrolador
11/3/08
09:48
Página 37
Figura 1.- Programas que aparecen al abrir el archivo zip de la carpeta MP802.
caracteres, se recomienda crear una carpeta en el directorio raiz de nuestro disco duro, en mi caso yo tengo creada una carpeta que
denomino Trabajo y dentro de ella, una carpeta con cada microcontrolador o gran proyecto realizado con los microcontroladores
PIC, por ejemplo C:Trabajo/ Pic16F876A. 2. Para empezar a trabajar con el MPLAB IDE, hacer doble clic
Figura 2.- Pantalla que aparece al ejecutar por primera vez el MPLAB IDE
S E R O D A L O R 37 T N O C O R C I M RESISTOR
36 Microcontrolador
11/3/08
09:48
S E R O D A L O R 38 T N O C O R C I M
RESISTOR
Página 38
en el icono que aparece después de la autoinstalación o Start>Programs>Microchip>MPLAB selecto IDE vx.xx>MPLAB IDE. Aparecerá una pantalla desplegable como la de la figura 2. 3. Seguidamente seleccionaremos el dispositivo con el que vamos a trabajar, para ello se debe seleccionar en la barra de herramientas el menú Configure>Select Device y seleccionar el microcontrolador que aparece en la lista de dispositivos, con el que se desea trabajar, en nuestro caso el PIC16F876A. Los "Leds" indican que elementosIDE del MPLAB dan soporte al dispositivo. • El Led verde indica soporte total. • Una luz amarilla indica el apoyo preliminar es decir que solo permite hacer algunas cosas en particular para el MPLAB IDE con esta herramienta herramie nta y este dispositivo. Se debe entender que a menudo una luz amarilla en lugar de verde se toma para los nuevos dispositivos que necesitan rápidamente un apoyo y no da tiempo a desarrollar todas las funciones. • Un LED rojo indica que el dispositivo no tiene apoyo para este elemento. El apoyo puede desarrollarse posteriormente o ser impropio para la herramienta, por ejemplo, los dsPIC que no pueden apoyarse MPLAB ICE 2000. 4. Para empezar a escribir nuestro primer programa, debemos seleccionar en la barra de menú File> New o seleccionar el icono con la misma función. 5. Seguidamente escribimos nuestro programa, que en este caso consiste en leer unos interruptores que conectamos en el PORTA (líneas RA0:RA5) y muestra sobre las líneas RB0:RB5 el valor leído. El programa puede ser el que seguidamente se muestra y que hemos denominado Ejem_1.asm. Para salvar el fichero fuente se selecciona File>Save As…. Aparece un cuadro de diálogo como el que se muestra en la figura 6, en el que se
Figura 3 .-Cuadro de diálogo de selección de dispositivo.
Figura 4.- Pantalla para la selección del menú de un nuevo archivo.
36 Microcontrolador
11/3/08
09:48
Página 39
;******************************************************************************************** ;****************************************************************** ************************** ;Ejem_1.asm ;Ejemplo para simulación Entradas/Salidas en el entrenador ;Sencillo ejemplo de E/S con los PIC 16F87XA ;Leer el estado de los 5 interruptores conectados en las líneas(RA4-RA0) y reflejar el nivel ;lógico de los mismos sobre los leds RB4-RB0 conectados a la puerta B ;ESTE PROGRAM PROGRAMA A UTIL UTILIZA IZA EL BOOTL BOOTLOADER OADER COMO COMO PROGRAMA PROGRAMA DE CARGAA TRA TRAVÉS VÉS DEL PUER PUERETO ETO SERIEE DEL PC SERI ;****************************************************************** ;********************************* *********************************************************** ************************** List p=16F876A ;Tipo de procesador includ inc ludee "P1 "P16F8 6F876A 76A.I.INC" NC" ;De ;Defin finici icione oness de de regi registr stros os inte interno rnoss __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF org 0x00 ;Vector de Reset goto Inicio org 0x 0x05 Inicio
Bucle
bs f movlw movl w movwf clrf movl mo vlw w movwf bc f
;Salva el el ve vector de de in interrupciónx STATUS,RP0 b'0000 0 00001 01110' ADCON1 TRISB b'001 0 0111111' TRISA STATUS,RP0
movf PORTA,W movwf PORTB goto Bucle
;Selecciona banco 1 ;Puerta A E/ E/S digitales ;Puerta B se configura como salida ;Puerta A se se configura como entrada ;Selecciona banco 0 ;Leer las entradas RA0-RA4 ;Reflejar en las salidas ;Bucle sin fin
RESISTOR
end Figura 5.- Circuito sobre el que se puede probar el programa Ejem1.asm
solicita el nombre del archivo, que nosotros hemos llamado Ejemp1.asm.
Al salvar el programa, el usuario verá como cambia el color del texto del fichero fuente, los comentarios
S E R O D A L O R 39 T N O C O R C I M
se ven en verde, las instrucciones en azul las etiquetas y nombres de registro en rojo tejo.
36 Microcontrolador
11/3/08
09:48
S E R O D A L O R 40 T N O C O R C I M
Página 40
RESISTOR
Figura 6.- Cuadro de diálogo para guardar el archivo fuente.
6. A la hora de trabajar trabajar con el MPLAB en la escritura de un programa fuente, no puede ser útil configurar algunas de las propiedades del editor, para lo cual seleccionamos en la barra de herramientas Edit>Properties… en este cuadro de diálogo se recomienda seleccionar la pestaña de ‘ASM’File Types y seleccionar las opciones que se muestran en la Figura 7. En la pestaña de Text se puede elegir el tipo de letra que al usuario le parezca más interesante, en dicha pestaña se pueden observar las Figura 7.- Cuadro de diálogo de la pestaña ASM File Types de editor de opciones del MPLAB
36 Microcontrolador
11/3/08
09:48
Página 41
Figura 8.- Cuadro de diálogo de las opciones de texto y fuentes
opciones del cuadro de diálogo de la figura 8. En dicho cuadro se aprecia como se puede modificar el tipo y tamaño
de texto, así como los colores que los parámetros que indica dicho texto. 7. Seguidamente se puede ensamblar el programa y simular su
funcionamiento, tal y como iremos viendo en los próximo números de la revista.
36 Microcontrolador
11/3/08
09:48
Página 42
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
13/6/08 13/6/08
09:13
Página 42
CURS CU RSO O DE MI MICR CROC OCON ONTR TROLA OLADO DORE RESS EL MPLA LAB B (II) S
E R O D A L O R 42 T N O C O R C I M
Fernando Remiro Domínguez Profesor de Sistemas Electrónicos IES. Juan de la Cierva www.terra.es/personal/fremiro
Francisco Javier Tortosa Martínez Ingeniero de Sistemas Indytel Sistemas S.L. www.microladder.com
RESISTOR
Foto 1.- Placas de desarrollo realizadas realizadas en el labora laboratorio torio de Desarr Desarrollo ollo de Prod Productos uctos Electrónicos Electrónicos del IES Juan de la Cierva de Madrid.
Esta es la se Esta segu gund ndaa en entr treg egaa de dell ma manu nual al de dell en ento torn rnoo de de desa sarr rrol ollo lo MP MPLA LABB ID IDE, E, qu quee co como mo se pu pued edee ir co comp mpro roba band ndo, o, ad adem emás ás de pe perm rmititir irno noss es escr crib ibir ir el pr prog ogra rama ma en le leng ngua uaje je ensa en samb mbla lado dorr o co conn un co comp mpililad ador or de al alto to ni nive vel,l, pe perm rmititee re real aliz izar ar la de depu pura raci ción ón de dell prog pr ogra rama ma ya se seaa ut utililiz izan ando do el si simu mula lado dorr qu quee llllev evaa in inco corp rpor orad adoo o he herr rram amie ient ntas as co como mo sonn el MP so MPLA LABB IC ICD2 D2 o lo loss em emul ulad ador ores es MP MPLA LABB 20 2000 00 y MP MPLA LABB 40 4000 00.. CREANDO UN NUEVO PROYECTO Dos de las ca cara racte cterís rístic ticas as del MPLAB IDE son los proyectos y los escenarios (workspaces). Un proyecto contiene los archivos necesitaron para diseñar o construir
una aplicación (el código fuente, el linkador, etc.) así como varias herraherramientas de construcción ( build ). ). El workspace contiene la información sobre el dispositivo selecciona selecciona-do, herramientas de puesta a punto del programador, además se pueden
abrir ventanas para ver y configurar otros escenarios del IDE. La manera mejor manera de preparar par ar un pro proye yecto cto y su esc escena enario rio (workspace ) asociado es usando el Project Wizard . No obstante cuando se trabaja con una aplicación de un
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
único arch único archivo ivo en ensa ensambla mblador dor,, se puedee usar Quickbuild (Project> pued ), es decir, ensamblar el Quickbuild ), código con el ensamblador MPSM y no crear un proyecto. Sin embargo utilizando un workspace se pueden guardar todos los escenarios y salvar las configuraciones.
CREAR UN PROYECTO CON EL WIZARD Para crear un nuevo proyecto con el Wizard una vez que tenemos escrito nuestro programa en ensamblador ensamblador,, debemos debe mos de segu seguir ir los sigu siguiente ientess pasos: • Se Sele lecc ccio iona namo moss P roject/Project , lo que hará aparece aparecer r la panWizard tall ta llaa de la bi bien enve veni nida da de la Figura 1.
13/6/08 13/6/08
09:13
Página 43
• Cuando pulsamos Siguiente, aparece la ventana de selección de la herramienta de trabajo. Se puede seleccio sele ccionar nar una herr herramie amienta nta de Microchip o de terceras partes. En la ventana de Active Tollsuite solo aparece la suite de herramientas de los lenguajes que trabajan con el dispositivo previamente selecciona selecciona-do. Para ver el resto de herramien herramien-tas instaladas pulsar sobre la flecha de Active Toolsuite, apareciendo la pantalla de la figura 3.
Figura 3.-pantalla de selección de la herramienta de programación.
Figura 1.- Pantalla de bienvenida del Project Wizard.
• Pulsamos sobre Siguiente y en la pantalla de diálogo nos solicita el microcontrolador con el que queremos trabajar. En este caso seleccionamos el PIC16F876A.
Figura 2.- Selección de microcontrolador contro lador del proyec proyecto. to.
Si aún no aparece la herramienta deseada, pulsar sobre el botón “ Help !” y aparecer apareceráá My Suite Isn´t Listed !” un listado de herramientas con una “X” en rojo indicará indicará si es el caso que que no se ha realizado la instalación o que el camino ejecutable no es conocido por el MPLAB IDE, para asignar o verificar asignaciones de herramientas a los archivos ejecutables, pulsar sobre el botón en la herramientaa para mostrar mient mostrar el cami camino no del archivo ejecutable. • Pulsar sobre Siguiente y aparece aparecerá rá una nueva ventana de diálogo como
Figura 4
la de la figura 4, pulsando sobre elegimos imos el nombr nombree y Browse… eleg camino de nuestro proyecto. Una vez seleccionado el camino de nue nuestr stroo pro proyec yecto to que tie tiene ne la extens ext ensión ión *.m *.mcp cp pul pulsam samos os sob sobre re siguie sig uiente nte y apa aparec recee una ven ventan tanaa como la de la figura 5, en la que nos solici sol icitan tan que se selec lecci cione onemos mos los ficheros que integran nuestro proyecto, en nuestro caso ejem_1.asm , pulsamos sobre Add>> para añadir el archivo y volvemos a pulsar pulsar sobres siguiente, apareciendo la pantalla de la figura 6.
Figura 5.- Pantalla de selección de los archivos que integran el proyecto.
Figura Figu ra 6.- Pantalla de fina finalili zación del asistente de creación de proyectos.
Si no se abre la ventan del proyecto, seleccionar View>Project , tal y como se muestra en la figura 7, donde se puede apreciar en la parte superior de la pantalla que aparece el nombre del Proyecto, en nuestro caso ejem_1.mcw. En estos momentos se abrirá una pantalla con forma de árbol como la de mostrada en la figura 8, en la que en la raíz aparece el nombre del pro-
S E R O D A L O R 43 T N O C O R C I M RESISTOR
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
S E R O D A L O R 44 T N O C O R C I M
13/6/08 13/6/08
09:13
Página 44
• Si se pulsa el botón derecho sobre un archivo, aparece la opción de Remove, que nos permitirá eliminar archivos del proyecto. • Otra de las opciones que aparece es la de Build Options… que no usaremos en esta guía didáctica y la por ultimo aparece la opción de Edit que al ac activ tivarl arlaa nos pr prese esenta nta el archivo seleccionado para visualizarlo y que además podremos modificarlo.
MONTAR O CONSTRUIR EL PROYECT PROYECTO: O:
Figura 7.- Solicitud de apertura del fichero a editar.
RESISTOR
Figura 9.- Barra de progreso del montaje o ensamblado del programa
Ahora estamos en condiciones de construir el proyecto pulsando el botón de la barra de herramientas o seleccionando Project>Build All . Durante la construcción del proyecto aparecer una barra de progreso como la de la figura 9, que se cerrará cuando haya terminado el proceso de montaje, si todo ha ido bien, la barra será de color verde y aparecerá un color rojo en caso contrario. También se abrirá la ventana de salida ( Output) como la de la figura 10. Si al final de esta pantalla aparece la frase “ BUILD SUCCEDED” se confirma que el ensamblado se ha producido con éxito. Por tanto, ya se está en condiciones de pasar a la simulación. En esta pantalla pueden aparecer algunos mensajes de aviso llaman la at atenc ención ión Message , que llaman sobre situaciones a tener en cuenta y que podrían ocasionar un error en el programa pero que no impiden el
Figura 8.- Ventana de visualización del proyecto
yecto y los ficheros que se han añadido posteriormente. • Si se pulsa sobre uno de los archivos del árbol, este se abrirá automáticamente. • Si dentro de esta pantalla se pulsa el botón de la derecha del ratón, aparece la opción de Add Files que activándola permite agregar más ficheros fuente al proyecto.
Figura Figu ra 10.10.-V Venta entana na del delre regist gistro rode de sali salida. da.
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
13/6/08 13/6/08
Figura 11.- Pantalla de selección de archivo.
09:13
Página 45
que ha ocurrido un error en el proceso de ensamblado del programa y veremo ver emoss que se ha gen gener erado ado un fichero fich ero de err errores ores que desc describe ribenn cada uno de ellos. ellos. Si hacemos hacemos un doble clic sobre la línea que muestra el error error,, el cursor saltará directamente a la línea de código donde se encuentra éste. Una vez subsanados los errores, volveremos a repetir el proceso de ensamblado del fichero fuente para obtener el fichero con extensión .hex que en nuestro caso será ejem_1.hex . Este fichero con extensión *.hex , es el que cargaremos en nues nuestro tro micr micropro oprocesa cesador dor utilizando la herramienta de grabación de la que dispongamos. Para ver el fich fichero ero ejem_1.hex , bast ba star aráá co conn se sele lecc ccio iona narr el me meni ni File>Open y dentro de los tipos de archivos seleccionar All Files [*.*] y seleccionamos el archivo e jem_1. hex. Cuando abrimos el archivo se puede ver que únicamente contine códigos hexadecimales y que serán los que se graven posteriormente en el microcontrolador
SELECC SELE CCIÓ IÓN N DE DELA LA HERRAMIENTA DE DEPUR DEPURACIÓN ACIÓN Para poner a punto los programas, el MP MPLA LAB B al pu puls lsar ar en Debugger>Select Toll nos permite elegir entree las siguientes entr siguientes opci opciones ones,, tal y como se puede ver en la figura 13: • El si simu mula lado dorr MP MPLA LAB B SIM. SI M. Simula Sim ula el fun funci ciona onamie miento nto de Figura 12.- Contenido del archivo hexadecimal.
correcto ensamblado. En la figura 10 se aprecian los mensajes de las líneas 21, 22 y 24 en las que se utilizan respectivamente los registros ADCON1, TRISB y TRISA, que se encuentran en el banco 1, este mensaje nos indica que estos registros no se encuen encuentran tran en el banco 0, para que lo com compr probe obemos mos,, ya que en caso contrario tendríamos problemas en el funcionamie funcionamiento nto de nuestro programa. Si al final de la pantalla del registro de salida, aparece el mensa je “ BUILD FAILED”, nos indi indica ca
Figura 13,. Ventana de selección de la herramienta de depuración
S E R O D A L O R 45 T N O C O R C I M RESISTOR
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
S E R O D A L O R 46 T N O C O R C I M
RESISTOR
13/6/08 13/6/08
09:13
Página 46
microcontrolador con el software microcontrolador que se le introduce. • El MPLAB ICD2 depuración en circuito. Permite correr el código en el ci circ rcui uito to do dond ndee te tene nemo moss conectadoo nuestro microcontrolaconectad dor, con todos los periféricos que utilice y permite realizar Breack Point en el programa y ver el estado de los registros utilizando el entorno del MPLAB. • El emulador en circuito MPLAB ICE IC E 40 4000 00.E .Emu mula la la lass gr gran ande dess memo me mori rias as de lo loss PI PIC1 C188 y lo loss Figura Figur a 15 15..- Cu Cuad adrode rode diá diálog logo o de las lasve venta ntana nass de vi visua sualiz lizac ación iónde dell MPL MPLAB. AB. dsPIC en el hardware. El emula emulado dorr en circu circuit itoo IC ICE E 2000. 200 0. Emu Emula la un gra grann núm número ero de VENTANAS DE • Fille Registers microcontroladores microcontro ladores y permite el acce- VISUALIZACIÓN • Hardwar Hardwaree Stack so a las distintas partes de memoria. Una vez ensamblado el programa, y • Locals Comprobar en el directorio IDE la sel selec eccio ciona nada da la her herra ramie mienta nta de • Program Memory lista de dispositivos que lo soportan. depuración, en este caso la de simu- • Special Registers Una vez elegida la herramienta de lación, podemos visualizar las dis- • Watch depuración por ejemplo el simulador tintas ventanas que nos darán infor- • Memori Usage Gauge aparece una nueva barra de herra- mación sobre el estado del micro- • Simulator Trace mientas como la que se muestra en proc procesad esador or y sus memo memorias rias.. Par Paraa • Simulator Analiczer la figura 14. ello hacer clic con el ratón sobre DISASSEMBLY LY View en la barra de herramientas, VENTANA DISASSEMB aparece el cuadro de diálogo de la LISTING: figura 15. Nos presenta el código máquina y el Las opciones activas son: archivo fuente, para entrar en ella Figura Fig ura14. 14.-- Bar Barra ra de deher herram ramien ientas tasde de • Disassemby Listing hay que pul pulsar sar en Vie View> w> Disasla her herrami ramienta entade de dep depura uración ción • EEPROM sembly Linsting y se aparece una
Rum: Comienza la ejecución del programa a toda velocidad. En este caso, simulador ejecuta el programa a toda velocidad hasta que se detenga haciendo clic en el icono de abajo. Halt: Detiene la ejecución del programa. El programa de ejecución puede seguir paso a paso, a velocidad opcional o a toda velocidad de nuevo. Animate: Comienza la ejecución del programa a velocidad opcional. opcional. La velocidad de ejecución se fija en el cuadro de diálogo Debugger/Stettings../Amimations/ Realtime Update. Step Into: Comienza paso a paso la ejecución del programa. Las instrucciones instrucciones son ejecutadas una tras otra. Por otra parte, haciendo clic en este icono permite ejecutar las subrutinas y macros paso a paso. Step Over: Este icono al igual que el anterior permite realizar la ejecución de las instrucciones de una en una, pero las subrutinas las ejecuta de golpe, como si fuera un única instrucción. Step Out: Cuando estamos dentro de una subrutina al pulsar este icono, el programa corre de golpe hasta que sale de ella y se para poder seguir con la ejecución paso a paso. Reset: Restablece microcontrolador. Al hacer clic en este icono, el contador de programa se posiciona al principio del programa y la simulación puede comenzar.
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
13/6/08 13/6/08
09:13
Página 47
Figura Figu ra 16.16.-V Venta entana na de visu visualiz alizació ación n Disa Disasse ssembly mblyList Listing ing,,
ventan como la de la figura 16, en la que podemos ver que aparece de izquierda a derecha la posición de memoria de programa, el código de hexadecimal de la instrucción, el código de la instrucción en ensamblador,, el número de línea de nuesblador
tro programa fuente y el programa fuente fuen te que escr escribimo ibimoss noso nosotros tros.. Además nos muestra en el caso de estar simulando el funcionamiento con una flecha de color verde la posición en la de memoria a la que apunta el contador de programa en
este momento y con una letra B encerra ence rrada da en un circ circulo ulo rojo los puntos pun tos del ru ruptu ptura ra ( Breakpoints) que hemos marcado en la simulación haciendo un doble clic con el ratón sobre la línea en la que queremos el Breakpoints. Pulsando sobre el botón contractual del ratón, aparece una ventan con las siguientes opciones: • Set/Remove Breakpoint: nos permite poner o quitar un punto de ruptur rup turaa a la lín línea ea ac actua tualme lmente nte seleccionada. • Enable/Disable Break: Activa o desactivaa un punto de ruptura en la desactiv línea actualmente seleccionada. • Breakpoints: deshabilita, habilite o bo borr rraa to todo doss lo loss pu punt ntos os de ruptura. • Run To Cursor: Ejecute el programa gra ma de sit situac uación ión de dell cur cursor sor actual hasta aquí.
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
S E R O D A L O R 48 T N O C O R C I M
13/6/08 13/6/08
09:13
• Set PC at Cursor: Ponga al Contador del Programa (PC) en la en el valor de la posición que se indica con el cursor. • Copy: copia el texto seleccionado al portapapeles. El texto se selecciona cio na pul pulsan sando do el bot botón ón de la izquierda del ratón y arrastrando hasta donde donde nos interese interese y en ese momento soltamos el botón. • Select All: Selecciona todo el texto de la ventana. • Output to File: Guarda el contenido de la ventana en un archivo de texto que podemos indicar desde aquí. • Print: Para imprimir el archivo • Properties: Despliega un cuadro de diálogo de cómo queremos que aparezcan aparezc an escritos los datos de la ventana de desensamblado.
Página 48
Figura 17 17,. ,. Vent enta a de dell co cont nten enido idode de la me memor moria ia E2P E2PROM ROMde de us usua uario rio..
VENTANA EEPROM EEPROM::
RESISTOR
Seleccionando View>EEPROM aparece una ventana como la que se muestra en la figura 17, en la que se ve el co cont nten enid idoo de la me memo mori riaa E2PROM de usuario del microcontrol tr olaador con el qu quee es este temo moss trabajando. En esta ventana se muestran los datos de las columnas de la dirección hexadecimal de los datos, el contenido de las distintas posiciones de memoria y la representación en có códig digoo ASCII ASCII de la lín línea ea de datos correspondiente. Pulsando sobre el botón contractual del ratón aparece un menú que nos permite: • Close: Cerrar esta ventana • Find: Buscar en esta ventana el texto indicado en el cuadro dialogo de esta opción. • Find Next: Enc Encont ontra rarr en esta esta ventana la próxima coinciden coincidencia cia del texto indicado en el cuadro de diálogo anterior anterior.. Con busca hacia delante en la ventana y con + busca hacia atrás en la ventana. • Go To: Va a la di dire recc cció iónn de memoria indicada en el cuadro de diálogo. • Import Table: abre el cuadro de diálogo para importar una tabla de
Figur Fig ura a 18 18..- Ven entan tana a qu quee mue muestr stra a el co conte ntenid nido o de la me memo moria riaRAM RAMde de da dato toss en formato hexadec hexadecimal. imal.
valores a la E2PROM valores E2PROM desde desde la posición que se indique. • Export Table: Abre el cuadro de diálogo para exportar el contenido de la las posiciones posiciones de memo memoria ria E2PROM a un un archivo de extensión *.MCH. • Fill Memory: Abre el cuadro de diálogo diál ogo que nos perm permite ite llen llenar ar desd de sdee un unaa po posi sici ción ón a ot otra ra de memoria E2PROM con un valor constante, datos que vayan incrementado o datos aleatorios. • Output to File: abre un cuadro de diálogo para guardar el contenido dell bl de bloq oque ue de po posi sici cion ones es de memoria que se indique. • Print: Para imprimir el contenido de la ventana. • Refresh: Refresca los datos de esta ventana.
• Properties: Despliega un cuadro de diálogo de cómo queremos que aparezc apa rezcan an escr escritos itos los dato datoss de esta ventana.
VENTANA FILE REGISTER REGISTERS: S: Para visualizar esta ventana se activa View View>File >File Regist ers. Muestra el contenidoo de todas las posiciones de contenid la memoria RAM del dispositivo seleccionado, selecciona do, cuando el simulador ejecuta una instrucción, comprueba el valor del registro correspondiente y si lo modifica, la ventana se actualiza. En el formato hexadecimal, que corresponde con la mostrada en la figura 18, se pueden ver las siguientes columnas de información: • Parte alta de la dirección Hexadecimal de la memoria, la parte baja
42-49 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
13/6/08 13/6/08
09:13
Página 49
Figura 19 Ventan que muestra el contenido de la memora RAM en formato simbólico.
se indica en la cabecera de cada una de as columnas. • La rep repres resent entaci ación ón ASC ASCCII CII de la línea de datos correspondiente. En el fo form rmat atoo si simb mból ólic icoo qu quee corresponde a la figura 19, presenta los registros representados representados con su nombre simbólicos y el contenido de los mismos en formato hexadecimal, decimal,, binario y ASCII. decimal Pulsando sobre el botón contractual del ratón aparece un menú que nos permite: • Close: Cerrar esta ventana • Ful Fulll Mem Memory ory Upd Update ate:: La actualización de los registros de esta ventan se actualizan después de una parada solo si se habilitó. Por defecto esta opción esta habilitada. Si la ventana está abierta, solo los datos visibles se actualizan, si la ventana está cerrada no se actuali actualiza za ningún dato. • Find: Buscar en esta ventana el texto indicado en el cuadro dialogo de esta opción. • Fin Find d Nex Next: t: Encontrar en esta ventana la próxima coincidencia del texto indicado en el cuadro de diálogo anteri ant erior or.. Con busca hacia hacia delante en la ventana y con + busca hacia atrás en la ventana. • Go To: Va a la dirección de memoria indicada en el cuadro de diálogo. • Import Table: abre el cuadro de diálogo para importar una tabla de valores valor es a la memori memoriaa RAM desde la posición que se indique. • Export Table: Abre el cuadro de diálogo para exportar el contenido
de la las posiciones de memoria RAM a un archivo archivo de extensión extensión *.MCH. • Fill Memory: Abre el cuadro de diálogo diál ogo que nos perm permite ite llenar desd de sdee un unaa po posi sici ción ón a ot otra ra de memoria RAM con un valor constante, datos que vayan incrementado o datos aleatorios. • Output to File: abre un cuadro de diálogo para guardar el contenido dell bl de bloq oque ue de po posi sici cion ones es de memoria que se indique. • Print: Para imprimir el contenido de la ventana. • Refresh: Refresca los datos de esta ventana. • Properties: Despliega un cuadro de diálogo de cómo queremos que aparezc apar ezcan an escr escritos itos los dato datoss de esta ventana.
VENTANA HARDWAR HARDWAREE STACK: Para visualizar esta ventana se activa Vie Noss View>Har w>Hardware dware Stack . No muestr mue straa el co conte ntenid nidoo de la Pil Pilaa
Hardware y el número de niveles disponibles y los utilizados por el punto pun to en el que se en encue cuentr ntraa la simulación del programa. En la venta se muestra: • TOS: la pa part rtee al alta ta de la pi pila la (TOS) • Stack Level: Es el número total de niveles de pila del dispositivo. • Stack Return Address. Indica la dirección a la que retorna el programa cuando el Contador de Programa cargue le valor de vuelta de subrutina o de interrupción. En esta ventan los valores usados permanec man ecen en sin var variar iar cu cuand andoo se mueve el puntero de la Pila hacia arriba. • Location: Informa sobre la posición relativa de una función Estando en esta venta si se pulsa sobre el botón contractua contractuall del ratón, se despliega una ventana que nos permite: • Close: Cerrar la ventana • Pop Snack: Carga la parte alta de la Pila en el Contador de Programa • Set To Top-of-Stack: p-of-Stack: Pone en la parte alta de la Pila la dirección en la que se encuentra el cursor. • Output to File: abre un cuadro de diálogo para guardar el contenido dell bl de bloq oque ue de po posi sici cion ones es de memoria que se indique. • Print: Para imprimir el contenido de la ventana. • Refresh: Refresca los datos de esta ventana. • Properties: Despliega un cuadro de diálogo de cómo queremos que aparezc apar ezcan an escr escritos itos los dato datoss de esta ventana.
Figura 20.- venta de la Pila Hardware.
S E R O D A L O R 49 T N O C O R C I M RESISTOR
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
22/7/08 22/7/08
09:15
Página 50
CURS CU RSO O DE MI MICR CROC OCON ONTR TROLA OLADO DORE RESS EL MPLA LAB B (III) S
E R O D A L O R 50 T N O C O R C I M
Fernando Remiro Domínguez Profesor de Sistemas Electrónicos IES. Juan de la Cierva www.terra.es/personal/fremiro
Francisco Javier Tortosa Martínez Ingeniero de Sistemas Indytel Sistemas S.L. www.microladder.com
RESISTOR
Foto 1.- Placas de desarrollo realizadas realizadas en el labora laboratorio torio de Desarr Desarrollo ollo de Prod Productos uctos Electrónicos Electrónicos del IES Juan de la Cierva de Madrid.
Esta es la te Esta terc rcer era a en entr treg ega a de es este te ma manu nual al so sobr bre e el fu func ncio iona nami mien ento to de dell MP MPLA LAB B ID IDE. E. En esto es toss mo mome ment ntos os Mi Micr croc ochi hip p ha sa saca cado do la ve vers rsió ión n 8. 8.14 14 de es este te pr prog ogra rama ma,, po porr lo qu que e ya anti an tici cipa pamo moss qu que e to toda dass la lass re refe fere renc ncia iass qu que e ha haga gamo moss pa para ra el pr próx óxim imo o nú núme mero ro de Resi Re sist stor or,, se ha hará rán n so sobr bre e es esta ta nu nuev eva a ve vers rsió ión, n, qu que e pu pued ede e ob obte tene ners rse e de fo form rma a to tota talm lmen ente te gratui gra tuita ta de la we web b ww www.m w.micr icroc ochip hip.co .com m
VENTANA PROGRAM MEMORY En esta ventana se pueden ver las posiciones de memoria que ocupa cada una de las instrucciones, el código de operac ope ración ión de cad cadaa ins instru trucci cción ón y la dir direc ec-ción ci ón de me memo mori riaa de pr prog ogra rama ma quese ha
asignado a cada etiqueta. asignado etiqueta. Se visualiza activando View>Program Memory. Pulsando sobre el botón contractual del ratón, aparece una ventan con las siguientes opciones: • Close: Cerrar esta ventana • Set/Remo Set/Remove ve Breakpoint (Machi-
ne/Symbolic Only): Poner o quitar ne/Symbolic un pu punt ntoo de ru rupt ptur uraa a la lí líne neaa actualmente seleccionada. • Enab Enable/D le/Disab isable le Bre Break ak (Mac (Machihine/Symbolic Only): Habilita o deshabilita un punto de ruptura en la línea seleccionada actualmente.
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
22/7/08 22/7/08
09:15
Página 51
Figura 1.- Ventana de la Memoria de Programa
• Breakpoints: Habilita o deshabilita todos los puntos de ruptura • Run To Cursor: Ejecuta el programa a la situación actual del cursor. • Set PC at Cursor: Pone el Contador de Prog Programa rama (PC) en la posi posi-ción actual del cursor. • Cent Center er Debu Debugg Loca Location tion:: Indica posición actual del PC actual en la ventana • Cursor Tracks Debug Location: Rastre Ras treaa el flujo flujo del cursor cursor par paraa depurar la dirección. • Find: Busca en esta ventana el texto indicado en el cuadro dialogo de esta opción. • Find Next: Encue Encuentra ntra en esta venventana la próxima coincidencia del texto indicado en el cuadro de diálogoo anterior log anterior.. Con busca hacia delante en la ventana y con + busca hacia atrás en la ventana. • Go To: Va a la dirección de memoria indicada en el cuadro de diálogo. • Import Table: abre el cuadro de diálogo para importar una tabla de valores a partir de la posición posición de memomemoria de programa que se indique. • Export Table: Abre el cuadro de diálogo para exportar el contenido de la las posicione posicioness de memoria de programa prog rama a un archivo archivo de extenextensión *.MCH. • Fill Memory: Abre el cuadro de diálogo que nos permite llenar desde una posición a otra de memoria de programa con un valor constante, datos que vayan incrementado o datos aleatorios.
S E R O D A L O R 51 T N O C O R C I M RESISTOR
Figura 2.- Venta de los Registros Especiales.
• Output to File: abre un cuadro de diálogo para guardar el contenido del bloque de posiciones de memoria que se indique. • Print: Para imprimir el contenido de la ventana. • Refresh: Refresca los datos de esta ventana. • Properties: Despliega un cuadro de
diálogoo de có diálog cómo mo que querem remos os que aparezcan escritos los datos de esta ventana.
VENTANA DE SPECIAL REGISTERS Esta ventana ventana pre presen senta ta tod todos os los registros Especiales SRF indicándonos la pos posic ición ión queocup queocupaa el re regi gistr stroo den dentro tro
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
22/7/08 22/7/08
09:15
S E R O D A L O R 52 T N O C O R C I M
RESISTOR
de la memoria, el nombre del registro y su contenido en binario, hexadecimal y ASCII. Se visualiza en View>Special Function Registers. Paraa mod Par modifi ificar carman manual ualmen mente te uno de estos registros se debe hacer un doble clicc en la fil cli filaa del reg registr istroo cor corres respon pondie diennte y modificarlo. Esto no es válido para los pu puer ertos tos qu quee ac actu tuen en co como mo en entr trad ada, a, en cuyo caso hay que ir dentro del menú , opci ción ón Stimulu Debugger, la op Stimuluss Contr Controler oler como se verá más adelante adelante.. Pulsando sobre el botón contractual del ratón, aparece una ventan con las siguientes opciones: • Go To: Va a la dirección de memoria indicada en el cuadro de diálogo. • Import Table: ab abre re el cua cuadr droo de diá diálologo para importar una tabla de valores a partir de la posición de memoria de programa que se indique. • Export Table: Abre el cuadro de diálogo para exportar el contenido de la lass po la posi sici cion ones es de me memo mori riaa de programa progra ma a un archivo de extensión extensión *.MCH. • Fill Registers: Abre el cuadro de diálogo que nos permite llenar desde un registro hasta otro con un valor constante, tant e, dato datoss que vay vayan an incr increme ementad ntadoo o datos aleatorio aleatorios. s.
Página 52
Figura 3.- Cuadro de diálogo de las propiedades de los Registros de funciones especales.
Figura 4.- Ventana de visualización de Watch.
• Ou abre re un cua cuadr droo de diá diá-Outpu tputt to Fil File: e: ab logoo par log paraa gua guarda rdarr el con conten tenido ido del blo blo-que de registros, desde el registro que se indique. • Print: Par Paraa imp imprim rimir ir el con conten tenido ido de la ventana.
• Refresh: Refresca los datos de esta ventana. • Properties: Despliega un cuadro de diálogo de cómo el que se muestra en la Figura 3. En esta ventana se puede modificar la posición de las columnas
que hemos indicado al principio de este epígrafe, de manera que si queremos que aparezca la columna Binary inmedia inme diatame tamente nte des despué puéss de SFR debemos emos de pos posici iciona onarno rnoss Name, deb sobre sob re el ep epígr ígraf afee Bin Binar aryy de dell cu cuadr adroo de
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
22/7/08 22/7/08
09:15
Página 53
diálogo y pulsando obre Move Up o Move Down poner dicha columna en la posición que nos interese. Si pulsamos el botón Hide, la columna desaparece de la ventana.
VENTANA VENT ANA WATC WATCH H Esta ventan permite supervisar los registros de usuario o FSR que hayamos seleccionado previamente mientras corre el programa, en esta ventana se puede puedenn abrir cuatro subventanas difere dif erente ntes. s. Se visu visualiz alizaa en View> Watch. Pulsand Puls andoo sobr sobree el botó botónn con contra tractua ctuall del ratón, aparece una ventan con las siguientes opciones: • Close: Cerrar esta ventana • Find: Buscar en esta ventana el texto indicado en el cuadro dialogo de esta opción. • Fin Encont ontrar rar en est estaa ven ventan tanaa Findd Nex Next: t: Enc la pró próxim ximaa coi coinci nciden dencia cia del deltex texto to ind indiicado en el cuadro de diálogo anterior. Con busca hacia hacia delante delante en la ventanaa y con + busca ventan hacia atrás en la ventana. • Add: Al activar esta opción aparece un cuadro de diálogo como el de la figura 5, que nos permite añadir un SRF o un símbolo al Watch.
Figura Figu ra 5.- Cuad Cuadro ro de diál diálogo ogo para añadir nuevos símbolos al Watch.
Figura 6.- Representación de la memoria utilizada en un programa que no corresponde al ejem1.
• Delete: Borra del Watch el iten que tengamos seleccionado • Save Watch Tab: Gua Guarda rda los reg registr istros os y sím símbol bolos os de la sub subve venta ntana na se selec leccio cio-nada en un archivo. • Load Watch Tab: car carga ga los reg registr istros os y símbolos de un archivo en la subventana seleccionada. • Add Watch Tab: añade una nueva subventana al Warch, se pueden tener hasta 16. • Rename Watch Tab: Permite dar un nombre a cada una de las subventas • Import Table: Abre el cuadro de diálogo para importar el contenido de la los registros o símbolos. • Export Table: Abre el cuadro de diálogo para exportar el contenido de la las posiciones de memoria de programa a un archivo. • Out abre re un cu cuad adro ro de diá diá-Output put to Fil File: e: ab logo para guardar el contenido del bloque blo que de po posic sicion iones es de me memor moria ia que se indique. • Print: Para imprimir el contenido de la ventana. • Refresh: Refresca los datos de esta ventana. • Properties: Despliega un cuadro de diálogo de cómo queremos que aparezcan escritos los datos de esta ventana.
VENTANA VENTA NA ME MEMO MORI RI US USAGE AGE GAUGE Esta ventana indica la cantidad de memor me moria ia de pr prog ogra rama ma y de me memo mori riaa de
datos se usa datos usann ac actua tualme lmenteen nteen el pr proye oyeccto. Se visualiza en View>Memori Usage Gauge, pero para poder visualizar losdatoss se de losdato debe be lin linda darr el pr prog ogra rama ma po porr ejemplo en nuestro en el caso que estamos sim simul ulado ado (e (ell pro progr gramaejem amaejem1) 1) qu quee trabaja con el PIC16F876A, se puede añad añ adir ir al pr proy oyec ecto to el ar arcchi hivo vo C:\Archivos de programa\Microchip\ MPASM Suite\LKR\16F876a.lkr.
VENTANA SIM VENTANA SIMULAT ULATOR OR TRACE Estaa ve Est venta ntana na no noss ay ayudaa udaa la sim simul ulaación del programa. El simulate Trace toma una “instantánea” de la ejecución dell pr de prog ogra rama.En ma.En el sim simula uladorel dorel bu buff ffer er de traza o de memoria de traza es útil para visualizar un registro a lo largo de la ejecución del programa, de manera quee se pu qu pued edaa re regi gist stra rarr po porr do dond ndee pa pasa sa el progra pro grama ma y des despué puéss ana analiza lizarlo. rlo. El simulador toma datos desde la última vez que se pulsó Rum o Animate hasta que se det detien ienee la simu simulac lación ión del pro progra gra-ma, que normalmente será con un Brebuff ffer er de tr traz azaa es co compa mpart rtiiakpoint . El bu do con el logic analyzer. Para Pa ra vis visua ualiz lizar ar la ve vent ntan anaa de memoria de traza hay que seleccionar el men menúú View iew>Si >Simula mulate te Tr Trace ace.. El simulador muestra una ventana denominada Trace en la se puede ver cualquier variación sobre los registros al ejecut eje cutars arsee el cód código igo de ins instru trucci cción. ón. Est Estaa ventana vent ana tien tienee las colu columnas mnas de info informarmación siguiente:
S E R O D A L O R 53 T N O C O R C I M RESISTOR
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
22/7/08 22/7/08
09:15
S E R O D A L O R 54 T N O C O R C I M
Página 54
RESISTOR
Figura 7.- Ventana de Traza de memoria
• Line: Número de líneas ejecutadas desde que se pulsó Rum por última vez. • Addr: Dirección de la memoria de programa donde se encuentra la instrucción • Op: Códi Código go de ope operac ración ión numé numéric ricoo de la instrucción. • Label: Etiqueta de la instrucción si la tuviera. • Instructio Instruction: n: Instrucción ejecutada. ejecutada. • SA: Dirección numérica del registro fuente • SD: Dato del registro fuente • DA: Dirección numerica del registro destino • DD: Dato del registro Destino • Cycles: Ciclos máqui máquinas nas trans transcurr curridos. idos. Pulsando sobre el botón contractual del ratón, aparece una ventan con las siguientes opciones: • Close: Cerrar esta ventana • Find: Buscar en esta ventana el texto
indicado en el cuadro dialogo de esta opción. • Find Encontr ontrar ar en esta ven ventana tana FindNext Next:: Enc la pró próxima xima coi coinci nciden dencia cia del text textoo indi indi-cado en el cuadro de diálogo anterior. Con busca busca hacia delante delante en la ventana y con + busca hacia atrás en la ventana. • Go To: Sal Salte te al la opc opción ión esp espec ecifi ificad cada: a: • Trigger. Sal Salte te a la situ situaci ación ón del Trigger. • Top Salt ltaa a lapar laparte te al alta ta de la ve vent ntaaop.. Sa na. • Bottom Salte lte al fin final al de la ven ventan tana. a. Bottom.. Sa • Go To Trace Line. Line. Vaya a la línea de la tra traza za espec especifi ificad cadaa en el cua cuadro dro de diálogo. • Go To Sou Abra ra la ve vent ntan anaa Source rceLin Linee. Ab del Archiv Archivoo y va a la línea de código de fuente que corresponde a la línea del rastro seleccionada. seleccionada. • Show Sourc Habilit ilitaa o des deshab habilit ilitaa la Source: e: Hab venta ve ntann co conn el có códig digoo fu fuen ente te qu quee ap apar areece debajo de la memoria de traza.
• Reload: Recarga la memoria de traza con los valores que contiene el buffer buffer.. • Reset Tie Stamp: Inicializa la imagen de tiempo condicional del prosecesador. • Display Time: En el ventana aparece la información del número de ciclos en segundos o en formato científico. • Symboloc Disassembly: Enlug Enlugarde arde la dirección numérica para SFRs y símbolos, despliega los nombres de los mismos. • Ou abre re un cu cuad adro ro de diá diá-Outpu tputt to Fil File: e: ab logoo par log paraa gua guarda rdarr el con conten tenido ido del bloque de posiciones de memoria que se indique. • Print: Pa Para ra imp imprim rimir ir el con conten tenido ido de la ventana. • Refresh: Refresca los datos de esta ventana. • Properties: Despliega un cuadro de diálogo de cómo queremos que aparezc re zcan an es escr crito itoss los da datos tos de es esta ta ve venta nta-na.
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
VENTANA SIM VENTANA SIMULA ULATOR TOR ANALIZER La ve venta ntana na de la fig figura ura 8 co corre rrespo sponde nde a un analizador lógico, sobre el que se pueden visualizar todos los pines del
22/7/08 22/7/08
09:16
Página 55
microcontrolador seleccionado microcontrolador seleccionadoss durante un período de tiempo. Los datos son guardados junto con la memoria de traza y est están án sinc sincron roniza izados dos.. Par Paraa visu visuali alizar zar la ve venta ntana na de dell an anali aliza zado do lóg lógico ico hay que
selecciona selecc ionarr el men menúú View iew> > Log Logic ic Analyzer Analyz er.. Y en este caso para comprocomprobar el funcionamiento del analizador ejecut eje cutare aremos mos en el sim simula ulador dorel el sig siguie uiennte código:
;*************************************************** ;********************************* *********************************** *********************************** ************************ ****** ;Contador_binario.asm ;Cuenta en binario, incrementado el PORTB cada 5 us ;********************************* ;*************** ************************************ *********************************** *********************************** ************************ ****** List Li st p=16 p= 16F F87 876A 6A ;Tip ;T ipoo de pr proc oceesa sado dorr include inclu de "P16F "P16F876A 876A.INC .INC"" ;Def ;Definic iniciones iones de regi registros stros inte internos rnos __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF _LVP_OFF CBLOCK 0x20 ENDC ORG Ini nici cioo
Bucle
bsf bsf clrf bcff bc clrf incf nop nop got o end
0x00
;Vector de Reset
STATU TUS S,R ,RP P0 TRISB STA ST ATU TUS, S,RP RP00 PORTB PORTB,F
;Sele ;Se lecccio iona na ba banc ncoo 1 ;Puerta B se configura como salida ;Sel ;S elec ecci cion onaa ba banc ncoo 0
Bucle
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
S E R O D A L O R 56 T N O C O R C I M
22/7/08 22/7/08
09:16
Página 56
Figura 9.- Ventana de diálogo de la selección de canales del analizador lógico.
RESISTOR
Para utilizar el analizador lógico hay que sel selecc ecciona ionarr los can canale aless que se des deseean visualizar, para ello pulsar sobre el botón de Channels que despliega una ventana como la de la figura 9, y que dependiendo depend iendo del microc microcontrola ontrolador dor puede mostrarnos hasta 64 canales, sobre los que podremos ver los “0” y “1” y los cambios de estados de la simulación. Paraa el ejemplo Par ejemplo que nos ocu ocupa pa selecc sel ecciona ionamos mos toda todass las líne líneas as del PORTB, POR TB, par paraa ell elloo con el rat ratón ón sel selecc eccioionamos RB0 y manteniendo pulsado la tecla de mayúsc mayúsculas, ulas, seleccionamos seleccionamos RB7. Seguidamente pulsamos el botón pasará aránn los pin pines es sel selecc eccion ionado adoss a Add y pas la ven ventan tanaa Selec sequieeSelected ted Signal Signal(s) (s), si sequi re eliminar algún canal, solo habrá que selecc sel ecciona ionarlo rlo y puls pulsar ar el bot botón ón de Remove. Los Controles de esta ventana • Trigger Position: Dispone de tres botones boto nes circ circular ulares es que per permite mitenn espe espe-cificar donde ocurrirá el disparo: al inici ini cioo de la ca captu ptura ra (S (Sta tar) r),, en el ce centr ntroo de captura (Center), o al final de la captura (End). • Active PC = :Hay dos métodos de activar la captura de los datos. • Trigger PC PC = value. El valor introducido en la caja de texto es el valor de disparo.
• Tr Activa ivando ndo est estee Trigge iggerr Now Now:: Act botón, el valor actual del PC se pone en la caja de texto. • Trig Limpi piaa el va valorde lorde dis dis-Trigger ger Clear: Clear:Lim paro y los buffer de datos para una nueva captura. Los buffers de datos tamb ta mbié iénn se bo borr rran an si se ci cier erra ra la ve vent ntaana del analiza analizador dor lógico. • Time Base: La base de tiempos se puede pue de sel selecc ecciona ionarr ent entre re cic ciclos los de
máquina, segundo máquina, segundos, s, miliseg milisegundos, undos, microsegundos microsegu ndos y nanosegun nanosegundos. dos. • Mode: Ind Indica ica el modo modo de disparo disparo seleccionado, es decir, simple o complejo. En la barra de herramientas se pueden seleccionar las siguientes: • Scro Scroll ll Axes Axes:: Permite deslizarse en el eje vertical del analizad analizador or lógico. • Zoom Realiza un Zoom de Zoom Axe Axes: s:Realiza zona seleccionada. • Zo Realiza iza un ampl ampliaia Zoom om It Al Alll Ax Axes: es:Real ción del la zona de la ventan • Zoom Out All Axe Axes: s: Reduce el tamaño del contenido de la ventana • Zom Boox: Activa Activando ndo esta opción opción,, con ratón se puede marcar un área de la ventan del analizador lógico para ampliarla. • Cursor: Act Activan ivando do el cur cursor sor,, se pue puede de mover arrastrándole con el ratón o con las teclas de las flechas o con las teclas de avance y retroceso de pagina. • Copy to Clipboard: Copia la imagen al portapape portapapeles. les. • Save to File: Guarda la pantalla del analizador analizad or como una imagen. • Print: imprime la pantalla como un grafico. • Preview: Es un unaa vi vista sta previa previa de dell documento que se va a imprimir.
Figura 9.- Ventana de diálogo de la selección de canales del analizador lógico.
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
17/10/08 17/10/08
11:35
Página 50
CURS CU RSO O DE MI MICR CROC OCON ONTR TROLA OLADO DORE RESS EL MPLA LAB B (IV) S
E R O D A L O R 50 T N O C O R C I M
Francisco Javier Tortosa Martínez Ingeniero de Sistemas Indytel Sistemas S.L. www.microladder.com
Fernando Remiro Domínguez Profesor de Sistemas Electrónicos IES. Juan de la Cierva www.terra.es/personal/fremiro
RESISTOR
Foto 1.- Foto de robot “Zapatones”, realizado en el Laboratorio del C.G.S. de Desarrollo de Productos Electrónicos del IES Juan de la Cierva de Madrid.
En es esta ta oc ocas asió ión n no noss va vamo moss a ce cent ntra rarr en la in inte tegr grac ació ión n de dell pr prog ogra ram ma Pr Prot oteu euss de Labc La bcen ente terr El Elec ectr trón ónic ica a co con n el MP MPLA LAB. B. Co Como mo po pode demo moss ve verr el pr prog ogra rama ma no noss pe perm rmit itir irá á real re aliz izar ar la si simu mula laci ción ón qu que e ve vení níam amos os re real alza zand ndo o co con n el MP MPLA LAB B a la ve vezz qu que e ge gene nera ramo moss o vis visual ualiz izam amos os ex exter ternas nas al pro progr gram ama a del mi micro croco contr ntrol olado ador. r.
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
VENTANAS DE DEBUGGER Paraa dep Par depura urarr los pro progra gramas mas el MPLAB MPL AB dis dispon ponee de una unase seriede riede he herr rraamientas que se despliegan dentro de la barra bar ra de her herram ramien ientas tas de Deb Debugugger>Selectt To ger>Selec Tool, ol, tal y como se muestra en la figura 1.
17/10/08 17/10/08
11:36
Página 51
Bus de datos
8 RA4/T0CKI pin
Foosc/4
0 1
PSout
1 Preescaler Programable
T0SE
0
Sincronización con el reloj interno
TMR0 PSout
(Retardo de 2 ciclos) El bit T0IF T0IF se pone a 1 si hay overflow
3 T0CS
PS2,PS1,PS0
PSA
Figura 1.- Diagrama de bloques del TMR0
REGISTRO OPTION u OPTION_REG (Dirección 81h,181h)
Figura 1.- ventana de Debugger
El deb debugge uggerr por Prot Proteus eusVSM VSM solo aparec apa recerá erási si tie tienes nes inst instala alado do en su orde orde-nador la versión 7.1 de este programa, quee se va ha qu haci cien endo do ca cada da ve vezz má máss pop popuular en las universida universidades, des, centros de formación mac ión prof profesio esional nal e inge ingenie niería rías, s, por lo que nos parece interesante recalcar como co mo fun funcio ciona na en su int integ egra raci ción ón co conn el MPLA MP LAB. B. Pa Para ra el ello lo va vamos mosaa ililust ustra rarr co conn un ejemplo de como se trabajaría con este entorno. Pero antes de nada debemos decir que Proteus es un programa de Labcente Labcenterr Electronics, Electronics, cuya web es http://www.labcenter.co.uk/index.cfm ,en España este producto está comercializado por la empresa Ingeniería Eléctrica Electrónica, Electrónica, cuya pagina web es http://www.ieeproteus.com/ . trat ataa de Ejemplo Ejemp lo de aplicac aplicación: ión: Se tr comprobar como funciona el TMR0 del PIC16F877A como contador de eventos externos que le llegan a través de la lílíne neaa RA RA44 y pa paraver raver el es esta tado do de dell TMR0 presenta el valor de este en el PORTB. POR TB. Para Paraello elloen en nues nuestro tro pro program gramaa configuraremos la línea RA4 como entr en trad adaa y tod todoo el PO POR RTB co como mo sa salilida da y en el registro OPTION_REG el bit T0SC=1 para indicar que los impulsos de TMR0 llegarán a través de la línea RA4, T0SE=1 para que se incremente en los flancos de bajada y el PSA=1 para asignar el preescaler al WDT y que por lo tanto el TMR0 se incremenincremente dir direc ectam tamen ente te en ca cada da fla flanco nco,, que quelle lle--
El Registro de OPTION_REG es un registro que puede ser leído o escrito y que contiene varios bits de control para configurar la asignación del preescaler al TMR0 o al WDT, la interrupción externa, el TMR0 y las resistencias de pull-up del PORTB PORTB.. Nota.- Asignar el preescaler como 1: 1 al registro registroTMR0 preescaler al TMR0,, asigna el preescaler Watchdog.. Watchdog R/W-1 RBPU Bit 7
R/W-1 INTED
R/W-1 T0CS
R/W-1 T0SE
R/W-1 PSA
R/W-1 PS2
R/W-1 PS1
R/W-1 PS0 Bit 0
Bit 7: #RBPU: Resistencia tencia de Pull-up Pull-up en, el PORTB #RBPU: Resis 1=Resistencia de Pull-up desactivada 0= Resistencia de Pull-up activada bit6 1:INTEDG 1:INTEDG:,:, Flanco, de control de interrupciones 1:Interrupción por flanco ascendente en el pin pin RB0/INT, 0:Interrupción por flanco: descendente en el pin RB0/INT bit 5: T0SC Selecciónn del tipo de Reloj para para TMR0 T0SC.. Selecció 1 = Los pulsos pulsos se introducen introducen a través del, del, pin RA4/TOCK1 RA4/TOCK1 0 = Los Pulsos Pulsos de reloj internos internos-- Fosc/4 Fosc/4 bit 4: T0SE para TMR0 T0SE:: Tipo de flanco para 1 = Inc Incre remen mento to de de TMR0 en cada flanco, descendente por el pin RA4/TOCKI 0 = Inc Incre remen mento to de de TMR0 en cada flanco ascendente :por el pin RA4/TOCKI bit 3: PSA PSA:,:, Asignación del Preescaler 1 = El preescale preescalerr se le asigna asigna al al WDT 0 = El preescale preescalerr se le asigna asigna al al TMR0 bit 2-0:PS2:PS0 2-0:PS2:PS0:: Rango de actuación actuación del del preescaler preescaler PS2 0 0 0 0 1 1 1 1
PS1 0 0 1 1 0 0 1 1
PS0 0 1 0 1 0 1 0 1
Divisor de TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256
Divisor de WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128
51 RESISTOR
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
S E R O D A L O R 52 T N O C O R C I M
17/10/08 17/10/08
11:36
Página 52
;**************************************************** ;********************************** ************************************ ******************************* ************* ;Programa...........:Timer0_02 ;Plataforma Hardware :Monibot PIC16F877A ;Fecha..............:Septiembre 2008 ;Descripción........:Este programa comprueba comprueba el funcionamiento del Timer 0 como ;contador de los impulsos aplicados a la línea RA4/T0CKI, donde se ha conectado ;un pulsador. Cada vez que se pulse se incrementa un contador que se visualiza ;los 8 diodos LEDS conectados en las líneas RB0:RB7. ; Como es un incremento por cada impulso aplicado al pin TOCKI no es necesario asignarle asignarle ; divisor de frecuenc frecuencia ia al TMR0. Por tanto el Prescaler se asigna al Watchdog. ; ; ZONA DE DA DATOS TOS **************** ********************************** *********************************** *********************************** ******************** Lis istt p=116F p= 6F87 877A 7A ;Tipoo de pro ;Tip rocces esad ador or include incl ude "P16F8 "P16F877A. 77A.INC" INC" ;Def ;Definic iniciones iones de regi registro stross inter internos nos CBLOCK
0x20
ENDC
__config _CP_OFF & _DEBUG_OFF _DEBUG_OFF & _CPD_OFF & _LVP_OFF _LVP_OFF & _XT_OSC &_WDT_OFF ; ZONA DE CÓDIGOS **************** ********************************** ************************************ ********************************** **************** org 0x00 ;Vector de Reset goto Inicio Inicio
RESISTOR
org
0x05
bsf movlw mov lw movwf bsf clrf movl mo vlw w movw mo vwff bcf clrf
STATUS,RP0 b'0000 b'0 00001 0110' 10' ADCON1 TRISA,4 TRISB b'001 0 01110 1000 00'' OPTI OP TION ON_R _REG EG STA ST ATUS US,R ,RP0 P0 TMR0
;Selecciona banco 1 ;Puerta A E /S /S digitales ;Configura RA4 como entrada ;Configura el PORTB como Salida ; TM TMR0 R0 co como mo co cont ntad ador or po porr fl flan anco co de desc scen ende dent ntee de ; RA RA4/ 4/T0 T0CK CKI. I. Pr Pres esca cale lerr as asig igna nado do al Wat atch chdo dog. g. ; Inicializa contador.
; La sección "Principal" es de mantenimiento. Solo se dedica a visualizar el Timer 0. Principal movf TMR0,W ; Lee el Timer 0. movwf mov wf POR PORTB TB got otoo Prin Pr inccip ipal al end
Figura 3.- Circuito de prueba para el programa TMR0_02.asm.
gan a la línea RA4. , para ello configuramos el TMR0 como contador de eventos even tos exte externos rnos,, para paraque que el pre preesca escaler ler sea de 1:1, se asigna el preescaler al WDT .Por lo tanto el programa puede serr el qu se quee he hemo moss de deno nomi mina nado do Timer0_02.asm. Lo primero que vamos a hacer es dibujar el circuito que queremos simular en el programa programa ISIS (“Intellige (“Intelligent nt Schematic Input System”) de Proteus, que es programa que realiza la captura de esq esquem uemas. as. En nue nuestr stroo cas casoo obte obtendr ndreemoss un ci mo circ rcui uito to co como mo el qu quee se mu mues estr traa en la Figura 3. Las características de la señal de reloj que se conecta a la línea RA4 son las que se muestran en la figura 4, l. además para que la simulación no de
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
17/10/08 17/10/08
11:36
Página 53
Figura 4.- Edición de la señal de reloj que inyectamos por la línea RA4.
Figura 5.- Ventan de edición del microcontrolador PIC16F877A.
Figura Fig ura 6.-sel 6.-selec ecció ción n de dell Use Rem Remot otee De Debu bug g Mo Moni nito torr de dell MPLAB
problemas, el interruptor de conectado a la línea RA4 debe permanecer abierto, como se ve en el circuito. Como se puede apreciar el microcontrolador no hace falta ni conectarle el circuito de relo re loj,j, es de deci cirr cr crist istal al de cu cuar arzo zo de la fr freecuencia de oscilación y condensadores o una red R-C, ni conectar la señal de rese re sett a niv nivel el al alto to pa para ra ev evita itarr un re reset setde dell microcontrolador,, no obstante al editar microcontrolador las prop propieda iedades des del PIC1 PIC16F87 6F877A 7Adeb debeemos de indicar la frecuencia a la que deseamo dese amoss tra trabaje bajeel el mic microc rocontr ontrolad olador or y no le vamos a asignar ningún archivo de simulación, ya que luego en la integración con el MPLAB lo tomará. Por lo tanto, la ventan de propiedades del microc mic rocont ontrol rolado adorr que queda da com comoo se mue muesstra en la figura 5. Por último en la barra de herramientas mien tassel selecc ecciona ionamos mos Deb Debug ug y act activa iva-mos la opción Use Remote Debug Monitor, tal y como se muestra en la figura 6. Por ultimo salvamos el archivo con el nombre “Entrenador Basico PIC16F877A“ y cerramos el programa ISIS de Proteus. Seguidamente abrimos el entorno del MPLAB y creamos un proyecto conel con el nom nombre breTi Timer mer0_0 0_022 sig siguie uiendo ndo los paso pa soss qu quee he hemo moss in indi dica cado do a lo la larg rgoo de los art artícul ículos os ant anterio eriores res.. Y par paraa comp comprorobar el fun funcion cionami amient entoo del mism mismo, o, sele se lecc ccion ionam amos os la op opci ción ón De Debu buggger>Pr ger >Prote oteus us VSM, esto pro provoc vocaa la
Figura 7.- Pantalla del visor del Proteus VSM en el entorno MPLAB.
S E R O D A L O R 53 T N O C O R C I M RESISTOR
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
S E R O D A L O R 54 T N O C O R C I M
17/10/08 17/10/08
11:36
Página 54
Figura 8.- nueva barra de herramientas después de abrir el esquema de nuestro circuito denominado “Entrenador Basico para PIC16F877A”.
Figura 9.- Aspecto de la barra de herramientas durante la simulación del funcionamiento del circuito.
RESISTOR
Figura 10.- Visualización de los registros internos del microcontrolador, al mismo tiempo que corre el programa y le llegan señales externas.
apertura de una ventana como la que se muestra en la figura 7. Seguida Seg uidamen mente, te, se abr abree el dise diseño ño que previamente habíamos guardado para probar el funcionamiento de nuestro softwa sof tware. re.Est Estoo pro provoc vocaa dos cos cosas, as, la pri pri-mera es que se abra el esquema del circuito cu ito qu quee ha habí bíam amos os dis diseñ eñad adoo y la segunda es que aparezca en la barra de herram her ramien ientas tas un botó botónn com comoo ver verde de cuy cuyaa función es la de inicio de simulación (startrt sim (sta simula ulation tions) s) y otr otroo en vide videoo inv invererso, tal y como puede verse en la figura 8. Al pulsar sobre el punto verde, la barra de herramientas toma el aspecto que se muestra en la figura 9, donde
ahora en vide inverso aparece el botón que antes era verde y aparece un botón rojo ro jo queal ac activ tivar arlo lo ge gene nera ra la par paradade adade la sim simula ulació ciónn ( sto stopp sim simula ularon ron).).Ade Además más aparecen activos los iconos de Rum y Animate. Pues bien, si pulsamos sobre el botón de Rum, podemos observar como co mo al co corre rrerr el pro progra grama ma sob sobre re el cir cir-cuitito, cu o, se mod modif ific ican an el es esta tado do de losdiodos LEDS conectados al PORTB de acue ac uerd rdoo a un con conta tador dorde de 8 bit bitss bi binar narios ios a la fr frec ecue uenc ncia ia de1 Hz Hz.. Lo qu quee es esta tamo moss viendo es como reacciona nuestro circuito y nuestro programa cuando le llega una señal externa, sin necesidad de habi ha bililita tarr la op opci ción ón de De Debu buggger>Es ger >Estimu timulus lus y gen genera erarr a man manoo los losdis dis--
tintos o con un fichero el momento de cambio de las señales externas del circuito. Si ahora activamos el botón rojo de Stop Simulation y volvemos al programa Proteus y volvemos a abrir nuestro circuito, podemos modificar este, por ejemplo eje mplose se sug sugier ieree modi modific ficar ar la fre frecue cuenncia de la señal de reloj a una frecuencia de 100 KHz., salvamos el archivo con el mi mism smoo no nomb mbre reyy al alvo volv lver eral alMP MPLA LAB B veremos que el archivo se ha modificado, si ahora abrimos una venta en View>Watch y añadimos los registro WREG,, POR WREG PORTTA y POR PORTB, TB, pode podemos mos ir ejecut eje cutand andoo el pro progra grama ma en mod modoo ani animamate o en modo paso a paso (step) (step) y anali-
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
zar como van variando los distintos registros regi strossegún segúncorr corree el progr programa ama prin princicipal y según van cambiando las señales externas, tal y como se muestra en la figura fig ura10. 10. Ejem Ej empl ploo de ap aplilica caci ción ón:: En el siguiente ejemplo ejemplo vamos a hacer que el microcont micr ocontrola rolador dor utilic utilicee su módul móduloo comparador para generar una señal en forma de diente de sierra escalonada y para visualizarlo podremos utilizar el osciloscop oscil oscopio io virtu virtual al que inclu incluye ye Prote Proteus. us. El pro progra grama ma se con configu figura ra el reg registr istroo CVRCON para que la tensión del módulo CVREF se obtenga también por la línea RA22 de RA dell mi micr croc ocon ontr trola olado dorr y pa para ra qu quee el rango del escalón sea CVRRSRC/24, de acuerdo con los parámetros de este registro. En la fi figur guraa 11se mu mues estrael trael di diag agra ra-ma de bl bloq oque uess de dell mó módu dulo lo ge gene nera rado dorr de tensión de referencia CV REF. Básicamente consta de una red resistiva de 16 etapas. El bit CVREN habilita o no el móduloCVREF desc desconec onectánd tándolo olo de la alim alimenentación. El bit CVRR modifica la red resistiva lo que permite obtener 2 rangos diferente diferentes. s. Mediante los bits CVR3:CVR0 se controla un multiplexor que permite determinar la tensión de salida (CV REF) según la etapa seleccionada. Cuando se produce un Reset en el dispositivo, el módulo CVREF queda desconectado (CVREN=0). También queda desconectada la salida de la tensión CVREF por la línea RA2 (CVROE=0) y se selecciona el rango alto (CV RR=0). En el modo Sep de bajo consumo, el módulo CVREF sigue activado y el registro CVRCON permanece inalterable.
17/10/08 17/10/08
11:36
Página 55
Registro CVRCON (dirección 0x9D) R/W-0 CVREN Bit 7 bit 7:
R/W-0 CVEOE
CVREN:
R/W-0 CVRR
U-0 --
R/W-0 CVR3
R/W-0 CVR2 CVR2
R/W-0 CVR1
Activación del módulo CVref
1 = Alime Alimentació ntaciónn para el módulo módulo CVref CVref en ON 0 = Alime Alimentació ntaciónn para el módulo módulo CVref CVref en OFF bit 6:
CVROE:
Salida de la tensión de referencia CVref
1 = La tensión tensión del módulo módulo CVREF se obtiene también por el pin RA2/AN2/VREF0 = La tensión tensión del módulo módulo CVREF se se desconecta del pin RA2/AN2/VREF bit 5:
CVRR:
Selección de rango
1 = Rango bajo de de 0 a 0,75C 0,75CV VRSRC con pasos de CV RSRC/24 0 = Rango alto de de 0 a 0,75C 0,75CV VRSRC con pasos de CVRSRC/32 bit 4: No implementado bit 3-0:CVR3:CVR0: Selección de la tensión tensión CVREF de salida salida 0VR2:VR015 Si CVRR=1 CVREF = ((CR)/24)*CVRSRC Si CVRR=0 CVREF = * (C (CV VRSRC) +(VR3 +(VR3:VR0 :VR0/32)*( /32)*(CV CVRSRC)
55
La tensión de referencia del módulo es la Vdd y Vss general del sistema. La tensión de salida se puede ajustar en dos rangos de 16 etapas cada uno. El rango se selecciona mediante el bit CVRR y las etapas mediante un valor de 4 bits (entre 0 y 15) que se aplican a los bits CVR3:CVR0. La ecuación para calcular la tensión de salida CVREF es la siguiente: Si CVRR=1 (rango bajo) CVREF = ((CR)/24)*C (( CR)/24)*CV VRSRC Si CVRR=0 (rango alto) CVREF = * (C (CV VRSRC) +(VR3 +(VR3:VR0 :VR0/32)* /32)*(CV (CVRSRC) • •
Si la tensión fuente de referencia CVREF = 5V, en rango de baja resolución es de 0.20833V por cada etapa o paso (1/24)*5. La tensión de salida está comprendida entre 0 y unos 3.124V. En el rango de alta resolución resolución es de 0.150 por cada etapa etapa o paso. La tensión CVREF de salida está comprendida ahora entre 1,25V y 3.59V.
V DD
16
Estad os
CVREN 8R
R
R
R
R
8R
RA2/AN2/VREF-/CVREF
CVR OE Entrada Comparador CVREF
R/W-0 CVR0 Bit 0
Mu ltiplexor Anal ogi co 16:1
REF Figura 11.-Diagrama de bloques del módulo generado de CV REF
CVR3 CVR2 CVR1 CVR0
CVRR
RESISTOR
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
17/10/08 17/10/08
11:36
Página 56
;*********************************************************************************************** ;Programa: Diente_Sierr Diente_Sierra_02.asm a_02.asm ;Plataforma Hardware :Monibot PIC16F877A ;Fecha..............:Octubre 2008 ;Descripción:Utilizando ;Descripción:U tilizando el módulo generador CVREF, obtenemos una tensión analógica en diente de sierra ;de 16 escalones.La tensión de salida se obtiene por la patilla RA2/CVREF ;*********************************************************************************************** List p=16F877A ;Tipo de procesador includ inc ludee "P1 "P16F8 6F877A 77A.IN .INC" C" ;Inclu ;In cluir ir def defini inicio ciones nes de los reg regist istros ros int inter ernos nos
S E R O D A L O R 56 T N O C O R C I M
CBLOCK Valor ENDC
0X20
;Valor para el D/A de salida
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF _LVP_OFF Inicio
org
0x00
bsf movl mo vlw w movwf mov wf bcf
STATUS STA US,R ,RP0 P0 b'0000 0 00010 1000 00'' OPTIO OPT ION_R N_REG EG STA ST ATUS US,R ,RP0 P0
;Con ;C onfi figu guta ta el TM TMR0 R0 co como mo te temp mpor oriz izad ador or y pr pree eesc scal aler er 1: 1:11
Bucl Bu clee
RESISTOR
movlw movl w b' b'00 0000 0011111 11'' andwf Valor,W ;Lee el valor para salida iorl io rlw w b'11100 000000 00'' ;CV ;C VRE REFF en ON, CV CVRE REFF --->> RA RA22,r ,raang ngoo ba bajo jo,, bsf STA ST ATUS US,R ,RP0 P0 movw mo vwff CV CVRC RCON ON ;Ten ;T ensi sión ón fu fuen ente te (C (CVR VRSR SRC) C)=V =Vdd dd-V -Vss ss,, Val alor or --->> CV CVR3 R3:C :CVR VR00 bcf STA ST ATUS US,R ,RP0 P0 incf Valor,F ;Siguiente valor o etapa de la rampa del diente de sierra call Rettardo_200micros Re ;Retardo_1ms goto Bucle ;********************************** ;**************** ************************************ *********************************** ****************************** ************* ;Subrrutina de temporización de 200uS utilizando el TMR0 Retardo_200micros bcf INTCON,INTF ;Flag de desbordamoento de TMR0 = 0 movlw .66 ;Valor experimental que hay que cargar en TMR0 movwf TMR0 ;para que la subrruina dure 200 uS Espera btfss INTCON,T0IF ;Se ha desbordado el TMR0? goto Espera ;si no se ha desbordado espera return ;Si se ha desbordado retorno subrruitna end
;Fin del programa fuente
Figura 12.- Circuito para comprobar el funcionamiento del programa diente_sierra_02.asm
50-57 Microcontrol Microcontroladores: adores:Maquet Maqueta a Resistor Resistor
Si se desea reducir el consumo en el modoo Sep mod Sepser seráá nec necesa esario rio des descon conect ectar ar el módulo mód ulo CVREF po poni nien endo do a “0 “0”” el bit CVREN, lo que desconecta a la red resistiva. Este módulo generador de tensión de referencia CV REF puede trabajar de formaa total form totalmente mente indep independi endiente ente del módulo mód uloamp ampara arador dor.. Esa Esaten tensió siónn de ref refeerencia se puede obtener por la patilla RA2/ RA 2/ CVREF si siem empr pree quese ac actitive ve el bit CVROE. Esest Esestee ca casola sola lílíne neaa RA RA22 sepue sepue-de considerar como señal de salida de un convertidor D/A de 4 bits (16 etapas). Por lo tanto el programa será el que hemos denomi denominado nado Diente Diente_Sierr _Sierra_ a_ 02.asm. El ci circu rcuito itoque queca captu pturar raremo emoss en Pro Pro-teus te us es esel el qu quee se mu mues estr traa en la lafi figu gura ra12 12.. Si seguimos los pasos indicados en el eje ejemplo mploant anteri erior or,, al simu simular larel el fun funcio cio-namiento del programa, aparecer apareceráá una panta pa ntalla llade de os osci cilo losc scopi opioo co como mo la quese muestra en la figura 13, en la que se puede ver perfectamente el funcionamiento mie nto del pro progra grama. ma.
17/10/08 17/10/08
11:36
Página 57
Figura 13.- Señal obtenida en el osciloscopio virtual de Protesus
View more...
Comments