<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>WebHome/TrabajosPracticos/PracticoASM6</title><revhistory><revision><revnumber>25</revnumber><date>2012-09-27 13:34:00</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>24</revnumber><date>2012-08-22 19:21:40</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>23</revnumber><date>2012-08-22 19:20:03</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>22</revnumber><date>2012-08-22 19:17:57</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>21</revnumber><date>2012-08-21 17:38:08</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>20</revnumber><date>2012-05-15 17:12:26</date><authorinitials>GuillermoSteiner</authorinitials><revremark>Se cambia nombre desde &quot;WebHome/TrabajosPracticos/PracticoASM5&quot;</revremark></revision><revision><revnumber>19</revnumber><date>2012-05-15 17:12:13</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>18</revnumber><date>2011-10-16 13:08:41</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>17</revnumber><date>2011-10-16 13:08:02</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>16</revnumber><date>2011-10-16 13:07:13</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>15</revnumber><date>2011-10-16 13:06:22</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>14</revnumber><date>2011-10-16 13:05:27</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>13</revnumber><date>2011-10-16 13:04:02</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>12</revnumber><date>2011-10-16 13:02:31</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>11</revnumber><date>2010-12-09 16:56:13</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>10</revnumber><date>2010-11-29 13:02:44</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>9</revnumber><date>2010-10-12 20:52:40</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>8</revnumber><date>2010-10-05 19:59:29</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>7</revnumber><date>2010-09-28 20:00:33</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>6</revnumber><date>2010-09-28 19:59:34</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-09-28 19:58:21</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-09-28 19:57:33</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-09-09 14:02:27</date><authorinitials>GuillermoSteiner</authorinitials><revremark>Se cambia nombre desde &quot;TrabajosPracticos/PracticoASM5&quot;</revremark></revision><revision><revnumber>2</revnumber><date>2010-09-09 14:00:48</date><authorinitials>GuillermoSteiner</authorinitials><revremark>Se cambia nombre desde &quot;PracticoASM5&quot;</revremark></revision></revhistory></articleinfo><section><title>Trabajo Práctico Nro.6 Programación en la placa</title><para>Para los ejercicios en esta etapa deberemos utilizar lo siguiente </para><para><emphasis role="strong">Archivos de Entrada</emphasis> </para><itemizedlist><listitem><para><emphasis role="strong">head.s</emphasis>  STARTUP, configurará el hardware de microcontrolador, asignará los valores iniciales de las variables globales que así lo requieran y le pasará el mando al main del C </para></listitem><listitem><para><emphasis role="strong">main.c</emphasis> es el archivo de arranque del C, contendrá el main() {} de nuestro programa.  </para></listitem><listitem><para><emphasis role="strong">*.c</emphasis> según el práctico podrá haber algún archivo de funciones extra, los cuales serán llamado desde el C.  </para></listitem></itemizedlist><para><emphasis role="strong">Archivo de configuración y estándar</emphasis> </para><itemizedlist><listitem><para><emphasis role="strong">lpc2114.h</emphasis> Archivo de cabecera (<ulink url="https://ciii.frc.utn.edu.ar/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6?action=AttachFile&amp;do=get&amp;target=lpc2114.h">lpc2114.h</ulink>), en esta etapa los proyectos generados deberán correr en un microcontrolador real, se agrega entonces el archivo de cabecera utilizado para describir a los registros del micro con nombres identificatorios de su función y no con simples números que indican posiciones de memoria  </para></listitem><listitem><para><emphasis role="strong">Makefile</emphasis> el caso del makefile, se agrega el comando <emphasis>grabar</emphasis> para grabar el micro, posee también la variable SOURCE para asignar los fuentes del proyecto y TARGET para el nombre del archivo binario de salida. </para></listitem><listitem><para><emphasis role="strong">lpc2114_flash.ld (Linker Script)</emphasis> (<ulink url="https://ciii.frc.utn.edu.ar/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6?action=AttachFile&amp;do=get&amp;target=lpc2114_flash.ld">lpc2114_flash.ld</ulink>) idem al práctico anterior. </para></listitem></itemizedlist><para><emphasis role="strong">Archivos de salida generados por make</emphasis> Para el caso ejemplo de que en Makefile se asigne <emphasis>TARGET = prueba.hex</emphasis>, serán los mismo que en el anterior ejercicio, sumándose los .o de cada archivo .c </para><itemizedlist><listitem><para><emphasis role="strong">prueba.elf</emphasis> archivo binario.  </para></listitem><listitem><para><emphasis role="strong">prueba.hex</emphasis> archivo binario formato Intel, usado para grabar el microcontrolador. </para></listitem><listitem><para><emphasis role="strong">prueba.lst</emphasis> archivo con el código fuente y el binario desensamblado.  </para></listitem><listitem><para><emphasis role="strong">*.o</emphasis> </para></listitem></itemizedlist><section><title>Ejercicio 1</title><para>Realizar un programa que prenda los led en alguna secuencia </para><itemizedlist><listitem override="none"><para>Proyecto (<ulink url="https://ciii.frc.utn.edu.ar/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6?action=AttachFile&amp;do=get&amp;target=led.zip">led.zip</ulink>)  </para></listitem></itemizedlist></section><section><title>Ejercicio 2</title><para>Realizar un programa que envíe por RS232 una cadena de caracteres. </para><itemizedlist><listitem override="none"><para>Proyecto (<ulink url="https://ciii.frc.utn.edu.ar/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6?action=AttachFile&amp;do=get&amp;target=uart.zip">uart.zip</ulink>)  </para></listitem></itemizedlist></section><section><title>Ejercicio 3</title><para>Realizar un programa que envíe por RSR232 un contador, el mismo se incrementará cada 10ms por medio de Timer 0 y la FIQ. </para><itemizedlist><listitem override="none"><para>Proyecto (<ulink url="https://ciii.frc.utn.edu.ar/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6?action=AttachFile&amp;do=get&amp;target=fiq.zip">fiq.zip</ulink>)  </para></listitem></itemizedlist></section><section><title>Ejercicio 4</title><para>Realizar un programa que tome la entrada de un pulsador, cuente las cantidad de veces que se presiona la tecla y muestre el resultado a través de 2 display de 7 segmentos. </para><para>Nota:  </para><itemizedlist><listitem><para>Toda salida del microcontrolador debe pasar por un buffer compatible con TTL. </para></listitem><listitem><para>Se debe implementar un antirrebote en la tecla totalmente por software. </para></listitem><listitem><para>El display mostrará un contador bcd de dos dígitos, el cual al llegar a 99 comenzará de nuevo desde 0.  Proyecto (display.rar)  </para></listitem></itemizedlist></section><section><title>Ejercicio 5</title><para>Realizar un programa que lea 20 veces por segundo una entrada analógica realice un promedio de los últimos 10 y muestre el resultado en el display de 7 segmentos utilizado en el ejercicio 2, el fondo de escala del display ( 99 ), corresponderá al fondo de escala del ADC </para><itemizedlist><listitem override="none"><para>Proyecto (adc.rar)  </para></listitem></itemizedlist></section><section><title>Ejercicio 6</title><para>Modificar el proyecto anterior, para que además de realizar la conversión, promedio y envío al display, se envíe por RS232 el promedio original (10 bits) con el número de canal donde fue tomado a una PC, la PC podrá también enviar al ARM el caracter '1','2','3' o '4', para modificar dicho canal. </para><itemizedlist><listitem override="none"><para>Proyecto (uart_adc.rar)  </para></listitem></itemizedlist></section><section><title>Ejercicio 7</title><para>Rehacer el Práctico Nro 1, pero ahora implementar los retardo de los led mediante interrupciones y el timer 0, se propone un retardo de 500 ms </para><itemizedlist><listitem override="none"><para>Proyecto (<ulink url="https://ciii.frc.utn.edu.ar/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6/TecnicasDigitalesII/WebHome/TrabajosPracticos/PracticoASM6?action=AttachFile&amp;do=get&amp;target=led_irq.zip">led_irq.zip</ulink>)  </para></listitem></itemizedlist></section></section></article>