Practica de laboratorio: Uso de la tarjeta de desarrollo "DEMOQE128"
Soy estudiante de ingeniería electrónica de la Universidad Simón Bolívar de Venezuela (USB), hace unos meses me encontraba cursando la materia “Arquitectura del computador 1” donde se nos estuvo evaluando la utilización de la tarjeta de desarrollo “DEMOQE128” para generar proyectos en “CODEWARRIOR” en modo “Assembler”.
Fuente
Objetivos:
Utilizar los puertos C y E como salidas para iluminar los leds.
Utilizar los puertos A y D como entrada para leer los pulsadores.
Utilizar el ADC para capturar datos analógicos.
Se utilizó la función “_Startup” para definir los puertos C y E como salida, se utilizó la instrucción “bset” con la nomenclatura adecuada para cada pin y puerto de manera que quedaran definidos como salida, luego se volvió a utilizar dicha instrucción con la respectiva nomenclatura para definir el estado inicial de cada led en apagado.
Posteriormente se utilizó la instrucción “bclr” con la nomenclatura adecuada de cada pin y puerto para definir pines y puertos como entradas, se utilizó para los pines 2 y 3 de los puertos A y D. Luego se cargó #%00001100 en el acumulador para posteriormente cargar estos valores en los puertos A y D y de esta manera poder activar los pines 2 y 3 de cada puerto.
Posteriormente se avanza a la función “mainLoop” donde se carga en el acumulador #%11111111 y luego se guardaron estos valores en los pines 0,1,2,3,4 y 5 del puerto C y en los pines 6 y 7 del puerto E para activarlos. Luego se colocaron las instrucciones de Branch, las cuales se relacionan con los pines 2 y 3 de los puertos A y D. Con esto se logra que al ser presionado dichos pines se enlazan con las funciones PRENDE 0,1,2 y 3 respectivamente. De no presionarse ningún pin, se regresa a la función “mainLoop” en la cual oscilará hasta que se active algún pin. Si se presiona algún pin se saltará al bloque de funciones “PRENDE”, si se presiona algún botón, se saltará a la función PRENDE correspondiente y encenderá el led indicado según sea el caso, luego se retorna a “mainLoop”.
Para esta parte se utilizó el ADC para captura de datos analógicos. En principio se utilizó el mismo código en la parte de “_Startup” que las actividades anteriores (la actividad 1 y 2) , y al final se le agrego lo siguiente para dar inicio al ADC correspondiente al puerto del potenciómetro para capturar datos en modo "continuous conversión", "hardware triggered" y con una resolución de ocho bits.
Luego se va a la función “mainLoop” para luego llegar al bloque de “Espera” en donde se hace un branch para saber si el potenciómetro está activado de no ser así regresa a la función “Espera” hasta que el potenciómetro sea activado. Una vez dentro de “Espera” se carga el valor que registre el potenciómetro, posteriormente se invierte y se guarda el contenido en los respectivos acumuladores de los puertos C y D.
Luego se colocaron las instrucciones de Branch, las cuales se relacionan con los pines 2 y 3 de los puertos A y D. Con esto se logra que al ser presionado dichos pines se enlazan con las funciones GUARDA 0,1,2 y 3 respectivamente. De no presionar ningún pin, se regresa a la función “mainLoop”.
Si se presiona algún botón, se saltará a la función GUARDA correspondiente y procederá a primero invertir el valor del ADC para que sea el mismo que registre el potenciómetro y luego lo guardará en la dirección de memoria correspondiente, para finalmente retornar a “mainLoop”.
Resultados :
Se logró programar el DEMOQE para poder ejecutar las instrucciones pedidas, primero se habilitaron los pines de los puertos C y E para poder encender o apagar según se requiera, luego se les inicializó como apagados. Posteriormente se codificó para que al ser presionado cualquiera de los pulsadores de los puertos A y D se encendieran los leds de los puertos C y E. Efectivamente se logró que el DEMOQE reaccionara según las instrucciones indicadas a medida que se presionaba cada pulsador.
Por otro lado, se logró programar el DEMOQE para registrar el valor marcado por el potenciómetro en los pines de los puertos C y E (los Leds) y ser capaz de guardarlos en memoria al presionar uno de los pulsadores de los puertos A y D.
Referencias:
Vargas Domingo, "Lab05", entregado en marzo de 2019
"MC9S08QE128 Reference Manual"
Curamos la etiqueta #spanish con el token SPACO de la Comunidad de Hispano Hablantes, te invitamos a formar parte de nuestra comunidad.