Introducción. Características. Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción. Características. Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN"

Transcripción

1 NOTA DE APLICACIÓN Implementación de la multiplexación de displays en un Contador de Eventos sobre un microcontrolador MC68HC908JK1. por Martin Serra, LabDSP FCEFyN UNC supervisado por Ing. Diego Dujovne, LabDSP FCEFyN UNC Introducción El siguiente trabajo se desarrolló con el fin de introducirse en la programación de microcontroladores de la familia HC908, en particular el modelo HC908JK1, a través de una aplicación sencilla pero de mucha utilidad, como lo es el multiplexado de displays. Esta aplicación se la implementó en un contador de eventos, que muestra los resultados en 5 displays de 7 segmentos. El modelo utilizado (HC908JK1) es el más pequeño de la familia, pero logra adaptarse en forma justa a los requerimientos en la cantidad de puertos, por lo que su precio económico lo hace ideal para aplicaciones donde no haya mayores requerimientos de hardware que los de los displays. Características El Contador de Eventos a pesar de haber sido realizado sobre un microcontrolador HC908JK1, puede ser fácilmente adaptado para cualquier otro modelo superior de la misma familia. Se trata de un programa que cuenta la cantidad de flancos ascendentes que se producen por segundo sobre el pin 4 del puerto D y la muestra a través de 5 displays de 7 segmentos en Hertz. Para poder contar el número de flancos que se producen, se utilizó la función de Captura de Entrada como un generador de interrupciones. Cabe destacar que originalmente esta función provista por el microcontrolador no solo permite generar interrupciones sino que además cuenta la cantidad de pulsos de clock entre eventos. Aquí se lo utilizó en forma parcial en reemplazo del pin de IRQ, para aprender a configurar esta función. Página 1/21

2 Descripción General La estructura general del programa responde al siguiente diagrama de flujo: Instrucciones de pre-procesamiento Inicio Loop Principal Rutina de interrupción del TIM Rutina de interrupción de la Captura de Entrada Multiplexación de displays Lacheo de la cantidad de eventos Una vez que las instrucciones de pre-procesamiento han sido ejecutadas, y las variables junto con los registros inicializados, se entra en la rutina de Loop_Principal. Esta contiene una instrucción que salta a ella misma, en espera de alguna de las dos interrupciones posibles. Cuando se detecta un flanco ascendente en el bit 4 del puerto D, correspondiente a la entrada de la función Captura de Entrada, se genera una interrupción que accede a la rutina Captura. En esta rutina se incrementa en uno una variable de 16 bits llamada NEventos y se sale de la interrupción. En forma paralela, el módulo de tiempo (TIM) se encuentra contando a la frecuencia del clock del micro. Cuando la cuenta iguala a un valor cargado con anterioridad en el registro TMODH:TMODL, se produce lo que se denomina un overflow o desbordamiento y se genera una interrupción que llama a la rutina MultDisp_&_Gate. Esta rutina posee dos partes: Gate y Displays. La primera funciona como compuerta: se encarga, cada un segundo, de colocar la cantidad de eventos contados durante el último segundo, almacenados en NEventos, en la variable frec y de borrar NEventos. Luego, esta variable es tomada por la segunda parte, Displays, convertida convenientemente al formato BCD y mostrada en el display que corresponda. Se debe notar que a la parte de Gate se accede solo cada un segundo. En el resto de los casos, se saltea esta parte y solo se ejecuta Displays, usando los valores guardados con anterioridad en la variable frec. De esta manera, la cuenta mostrada por los displays, se actualiza cada un segundo con el número exacto de eventos contados por la rutina Captura. Página 2/21

3 Descripción cuantitativa de cada sección Instrucciones de pre-procesamiento RAMStart EQU $0080 ROMStart EQU $F600 ;Defino vbles que indican las direcciones iniciales de memoria. VectorStart EQU $FFDE $Include 'jl3regs.inc' ;Archivo que contiene direcciones de registros. org RAMStart *************************************************** * Definición de variables * *************************************************** contador ds 1 ;Contador de la rutina resta. sustraen ds 2 ;sustraendo: vble de la rutina resta. dig1 ds 1 ;Vbles que contienen cada digito de la frecuencia medida dig2 ds 1 ;despues de la decodificacion BCD. dig3 ds 1 dig4 ds 1 dig5 ds 1 NumAConv ds 2 ;Numero a Convertir: se carga el numero a convertir a BCD. NEventos ds 2 ;Numero de Eventos: cantidad de flancos contados. frec ds 2 ;Frecuencia: numero de eventos despues del tiempo de Gate. NInterrup ds 2 ;Numero de Interrupciones: veces que interrupmpe el TIM (a ;las 100 se entra en Gate). NDIsplay ds 1 ;Numero de dislpay a multiplexar. Al comienzo del programa se definen tres variables con las direcciones de memoria de los comienzos de la RAM, ROM y vectores de interrupción. La sentencia $Include 'jl3regs.inc' permite incluir este archivo en la compilación, ya que contiene la dirección de todos los registros del micro para no tener que definir la dirección de aquellos utilizados. Luego se definen en la RAM todas las variables que se usarán en el programa. Página 3/21

4 Inicio org ROMstart Inicio: rsp ;Reseteo stack pointer: SP! 00FF bset 0,CONFIG1 ;Apago el COP. clra ;Limpio acumulador y partes alta y baja del Index Register. clrx clrh clr dig1 ;Limpio las variables. clr dig2 clr dig3 clr dig4 clr dig5 clr NEventos clr NEventos+1 clr frec clr frec+1 mov #$01,NInterrup ;Numero luego del cual se ejecutare al rutina Gate mov #$F4,NInterrup+1 ;(500). mov #!6,NDisplay ;Numero del display a activar. mov #% ,DDRB ;Seteo puerto B como salida para mandar info al display. mov #% ,DDRD ;Seteo puerto D como salida para controlar los displays, ;excepto bit 4 que sirve de entrada de señal a medir. mov #% ,TSC ;Seteo el TIM para que el contador se incremente con ;una frecuencia de (Internal BusClk % 1). mov #$1C,TMODH ;Cargo el numero (7372) hasta el cual contara el TIM antes mov #$CC,TMODL ;de interrumpir para contar la cantidad de eventos (tiempo ;de Gate) y multiplexar displays. mov #% ,TSC0 ;Seteo el canal 0 del TIM para capturar la entrada en el ;flanco ascendente de la señal. cli ;Activo interrupciones. En este bloque se configuran los módulos a utilizar por medio de sus respectivos registros: la instrucción rsp inicializa el stack pointer, situando el mismo en la dirección $00FF para mantener la compatibilidad de código con los modelos HC05. Esto se debe a que en la mayoría de los HC05 la RAM se extiende solo hasta $00FF, no siendo así en la mayoría de los HC08, en donde la memoria excede la dirección $00FF. Se debe tener en cuenta que el Stack Pointer contiene la dirección superior de la pila, por lo que la dirección de la misma decrece con cada dato nuevo que se introduzca; Página 4/21

5 se setea en uno el bit 0 del registro CONFIG1, llamado COPD, para deshabilitar el COP (Computer Operating Properly); se inicializan las variables antes definidas, colocando algunas en cero; Debido a la necesidad de manejar números mayores a 255, se deben utilizar variables, o lugares de memoria, de 16 bits, que permiten almacenar hasta el número Sin embargo, como el microcontrolador junto con todo su set de instrucciones es de 8 bits, se deben separar a las variables de 16 bits en dos partes de 8 bits cada una: el byte superior y el inferior. De esta manera, cada parte de la variable larga puede ser tratada con las instrucciones de 8 bits. Como se sabe, el nombre de la variable no es más que una etiqueta que indica un lugar de memoria de 8 bits. Cuando se manejan variables de 16 bits, esta etiqueta indicará el lugar de memoria de 8 bits más bajo de la variable de 16 bits. Esta posición de memoria corresponde a la parte alta de la variable de 16 bits, es decir, el byte superior. Para hacer referencia a la parte baja de la variable larga (el byte inferior), se le deberá sumar 1 byte a la dirección apuntada por la etiqueta de la variable, a través del operando +. Por ejemplo, en la sección de Inicio, NInterrup hace referencia a la parte alta de la variable, mientras que Ninterrup+1 se refiere a la parte baja. De esta manera, cada byte de la variable larga, puede ser tratado como una variable independiente de 1 byte. se configura el puerto B como salida para mandar los datos a los displays, cargando % en el registro Data Direction Register B (DDRB); y el puerto D también como salida para controlar la activación de cada display mediante el registro DDRD, excepto el bit 4 que corresponde a la entrada de la Captura de Entrada; se configura el módulo de tiempo (TIM): Primero se carga el registro TSC: colocando TOIE en 1, lo que habilita la generación de interrupciones por parte del TIM; TSTOP en 0, lo que habilita la cuenta; TRST en 1, para limpiar la cuenta y comenzar a contar desde $000; y [PS2:PS0] en %000 para que el contador se incremente a la frecuencia del bus interno del micro, es decir, que el pre-scaler divida esta frecuencia por uno. Página 5/21

6 Luego, se carga en los registros TMODH:TMODL el número hasta el cual contará el TIM antes de generar el pedido interrupción, de forma tal que este pedido se produzca con una frecuencia de 500Hz (2 mseg). El número se calcula teniendo en cuenta que la frecuencia del bus interno del micro es un cuarto de la frecuencia del clock externo, y que el pre-scaler del TIM no modifica este valor: 1 F 1 clock 4 TMOD = TMOD = TMOD = ( F ) INTERRUPCION ( F ) INTERRUPCION F 4 clock ,002_ seg 6 Hz 1 1 TMOD 7372 $ 1CCC Finalmente, se carga el registro correspondiente al canal 1 del TIM, para configurar la Captura de Entrada: colocando CH0IE en 1, para habilitar la generación de interrupciones; y [MS0A:ELS0B:ELS0A] en %001 para que la captura de entrada se produzca en el flanco ascendente de la señal de entrada. Loop Principal Loop_Principal: bra Loop_Principal ;Espero interrupciones. Página 6/21

7 Consiste en un bucle (loop) infinito, que no realiza ninguna operación fuera de la de salto, en donde se espera que se presenten alguna de los dos interrupciones posibles. Rutina de interrupción del TIM: Multiplexado de Displays y Gate NInterrup:NInterrup+1 =0 Si NEventos+1 --> frec > NEventos+1 NEventos --> frec 0 --> NEventos > NInterrup:NInterrup+1 No dec NDisplay NDisplay = 5 Si Conversión a frec:frec+1 Dig5 Dig5 --> PTB BCD Selección de DISPLAY5 No.. NDisplay. = 4. Si Conversión a frec:frec+1 Dig4 Dig4 --> PTB BCD Selección de DISPLAY4 No NDisplay = 3 Si Conversión a frec:frec+1 Dig3 Dig3 --> PTB BCD Selección de DISPLAY3 No NDisplay = 2 Si Conversión a frec:frec+1 Dig2 Dig2 --> PTB BCD Selección de DISPLAY2 frec:frec+1 No Conversión a BCD Selección de Dig1 Dig1 --> PTB 6 --> NDisplay Salir DISPLAY1 MultDisp_&_Gate: dec NInterrup+1 bne a lda NInterrup cbeqa #$00,a dec NInterrup dec NInterrup+1 a: lda NInterrup+1 ora NInterrup bne Displays ;Decremento en uno la vble NInterrup. ;Si no es cero, salteo la rutina Gate, en caso ;contrario, entro a Gate. Página 7/21

8 Para decrementar la variable de 16 bits NInterrup, que se carga con 500 en Inicio, se decrementa primero la parte baja (NInterrup+1) hasta hacerla cero. Recién cuando esta es cero, se decrementa la parte alta (NInterrup) junto con la baja nuevamente. Mientras que las partes alta y baja de NInterrup no sean igual a cero simultáneamente, se salta directamente a la parte de los displays, salteando Gate. Gate: mov NEventos,frec ;Muevo la vble NEventos a frec. mov NEventos+1,frec+1 clr NEventos ;Limpio NEventos. clr NEventos+1 mov #$01,NInterrup ;Cargo nuevamente NInterrup con 500. mov #$F4,NInterrup+1 Se mueven partes alta y baja de NEventos a frec y se recarga NEventos con el valor original. La variable frec contiene los datos, en formato hexadecimal, que serán utilizados por Displays para ser mostrados en los displays. Displays: dec NDisplay ;Decremento NDisplay y verifico que display lda NDisplay ;corresponde multiplexar. cbeqa #!5,Displ5 cbeqa #!4,Displ4 cbeqa #!3,Displ3 cbeqa #!2,Displ2 cbeqa #!1,Displ1 Displ5: mov frec,numaconv ;Cargo en la rutina de la resta la cantidad de eventos mov frec+1,numaconv+1 ;hasta el momento. mov #$27,sustraen ;Cargo partes alta y baja de mov #$10,sustraen+1 ;(sustraen:sustraen+1). jsr Conversion_BCD ;Salto a rutina Resta. mov contador,dig5 ;Coloco en dig5 el resultado de la rutina Resta. ldx dig5 ;Busco en la posición dig5 de la tabla, la combinación que lda Tabla7seg,x ;corresponde a ese numero y la cargo en el acumulador. mov #% ,PTD;Controlo la activación del display 5 con el bit 2 del puerto D. sta PTB ;Paso el acumulador a la salida del puerto B. bra Salida_Disp Displ4: mov #$03,sustraen ;Cargo partes alta y baja de 1000 mov #$E8,sustraen+1 ;(sustraen:sustraen+1). jsr Conversion_BCD ;Salto a rutina Resta. mov contador,dig4 ;Coloco en dig4 el resultado de la rutina Resta. ldx dig4 lda Tabla7seg,x mov #% ,PTD ;Idem pero para el display 4, utilizando el bit 3 sta PTB ;del puerto D. bra Salida_Disp Página 8/21

9 Displ3: mov #$00,sustraen ;Cargo partes alta y baja de 100 mov #$64,sustraen+1 ;(sustraen:sustraen+1). jsr Conversion_BCD ;Salto a rutina Resta. mov contador,dig3 ;Coloco en dig3 el resultado de la rutina Resta. ldx dig3 lda Tabla7seg,x mov #% ,PTD ;Idem pero para el display 3, utilizando el bit 4 sta PTB ;del puerto D. bra Salida_Disp Displ2: mov #$00,sustraen ;Cargo partes alta y baja de 10 mov #$0A,sustraen+1 ;(sustraen:sustraen+1) jsr Conversion_BCD ;Salto a rutina Resta. mov contador,dig2 ;Coloco en dig2 el resultado de la rutina Resta. ldx dig2 lda Tabla7seg,x mov #% ,PTD ;Idem pero para el display 2, utilizando el bit 5 sta PTB ;del puerto D. bra Salida_Disp Displ1: mov NumAConv+1,dig1 ;Coloco en dig1 el ultimo digito del numero a convertir. ldx dig1 lda Tabla7seg,x mov #% ,PTD ;Idem pero para el display 1, utilizando el bit 6 sta PTB ;del puerto D. mov #!6,NDisplay Salida_Disp:bclr 7,TSC rti ;Limpio el bit TOF del registro de control del TIM ;para habilitar nuevas interrupciones. La variable NDisplay contiene el número de display a activar. Al comienzo de la rutina, se compara este valor y se salta a la parte de la misma que corresponda al display seleccionado (Displx). Una vez adentro, se carga en sustraen la unidad decimal del orden que le corresponde al display, lo cual es pasado a la subrutina Conversión_BCD. Esta subrutina devuelve, a través de la variable contador, el número decimal correspondiente al display a activar. Este número, después de ser transferido a digx (donde x corresponde al número de display a activar), es cargado en la parte baja del registro Index Register (Registro de Indice) usando tax. Luego, este valor almacenado en el registro se usa para indicar la posición de la tabla Tabla7seg que contiene la codificación en formato 7 segmentos que corresponde al número a mostrar en el display. Esta codificación se carga en el acumulador utilizando la instrucción lda Tabla7seg,x. Finalmente, se coloca en el puerto D la combinación adecuada para permitir el encendido de los leds del display que corresponda y en el puerto B el número a mostrar en formato 7 segmentos. Se debe notar que este programa fue diseñado para displays del tipo ánodo común. Página 9/21

10 La variable NumAConv es la que contiene en formato hexadecimal el número que será convertido por la rutina Conversión_BCD en cada display. Esta variable se carga con la cantidad de eventos únicamente en la parte Displ5 de Gate, y es modificada después de cada conversión. Recordemos que la cuenta había sido colocada en la variable frec por Gate. En Displ1 no se llama a la subrutina de conversión, debido a que el resto de la conversión anterior, que se guardó en NumAConv, corresponde al último dígito en formato decimal. La rutina finaliza limpiando el bit 7 del registro TSC (TOF) para habilitar nuevas interrupciones. Conversion_BCD: clr contador Repite: lda NumAConv+1 sub sustraen+1 sta NumAConv+1 bcc Massigni dec NumAConv Massigni: lda NumAConv sub sustraen sta NumAConv bmi Salida_Resta inc contador bra Repite Salida_Resta: lda NumAConv+1 add sustraen+1 sta NumAConv+1 lda NumAConv adc sustraen sta NumAConv rts Página 10/21

11 (NumAConv+1) - (sustraen+1) --> (NumAConv+1) Si Carry = 0 No (NumAConv) > (NumAConv) (NumAConv) - (sustraen) --> (numaconv) Negative = 1 No Si (NumAConv+1) + (sustraen+1) --> (NumAConv+1 (contador) > (contador) (NumAConv) + (sustraen) --> (numaconv) Salida El principio de funcionamiento de la conversión se basa en restarle al número a convertir (contenida en la variable NumAConv) la unidad decimal del orden correspondiente al display a activar, en forma sucesiva hasta obtener un resultado negativo. La unidad decimal del orden correspondiente se almacena en la variable sustraen, dentro de Displays. Cada vez que el resultado es positivo, se incrementa en uno la variable contador, se almacena el resultado en NumAConv y se vuelve a realizar la resta, utilizando ahora el resultado de la resta anterior guardado en NumAConv. Cuando el resultado de la operación sea negativo, se deshace la última resta, es decir, se le suma a NumAConv lo que se le había restado en la última operación (sustraen), sin incrementar contador. Es después de un resultado negativo que se sale de la subrutina. Página 11/21

12 Rutina de interrupción de la Captura de Entrada: Captura inc NEventos+1 NEventos+1=0 No Si inc NEventos Salida Captura: inc NEventos+1 ;Incremento en uno la vble NEventos. bne f inc NEventos f: bclr 7,TSC0 ;Limpio el bit TOF para permitir nuevas interrupciones. rti Como ya se mencionó con anterioridad, la función de esta rutina es la de incrementar en uno la variable de 16 bits NEventos cada vez que se produzca un flanco ascendente en el bit 4 del puerto D. De este manera, va almacenando la cantidad de eventos producidos a partir del último Gate. Para realizar esto, se divida a la variable en sus dos partes de 8 bits, incrementándose siempre primero la parte baja (NEventos+1), y luego verificando si se ha hecho cero. En caso de producirse esto último, es que se han contado 16 eventos (F en hexadecimal), y se debe incrementar en uno la parte alta de la variable (NEventos). Página 12/21

13 Conclusión La idea fundamental de este ejemplo fue la de permitir la familiarización con la programación de esta nueva línea de microcontroladores, los HC08. A pesar de ser visiblemente más potentes que sus antecesores (los HC05), su forma de programación se ha mantenido prácticamente intacta. Sólo existen pequeñas diferencias en algunas instrucciones que hacen referencia específicamente a recursos más potentes. En este programa se intentaron implementar aquellos recursos del micro que aparecen en prácticamente cualquier tipo de aplicación, como son el Timer Interface Module, los puertos como entradas y salidas, las interrupciones vectorizadas, el manejo de las interrupciones, etc. Esto permitió mostrar la forma en que deben ser programados sus registros, el significado de sus bits más importante y la forma de calcular los valores de los contadores para obtener las frecuencias deseadas. Cabe destacar que estos puntos son específicos de esta marca de microcontroladores. Por otro lado, se repasaron algunas técnicas básicas de programación. Estas últimas son, en su mayoría, universales para cualquier línea de microcontroladores. Se destacan dentro de estas técnicas: el manejo de valores mayores a 8 bits, la multiplexación de displays, indexación de tabla, conversión de formato binario a BCD y BCD a 7 segmentos, etc. Hardware utilizado E-FLASH 08 Hardware propio Página 13/21

14 Bibliografía TECHNICAL DATA - MC68HC908JK1/JK3/JL3 (HCMOS Microcontroller Unit) de MOTOROLA. TIM08 - Timer Interface Module (Reference Manual) de MOTOROLA. CENTRAL PROCESSOR UNIT (Reference Manual) de MOTOROLA. E-FLASH 08 - Manual del usuario de Electrocomponentes S.A. CASM08Z - 68HC08 Assembler Help de P&E Microcomputer Systems. Agradecimientos Agradecemos la colaboración de Motorola por el apoyo ofrecido al Laboratorio y, en este caso, por el aporte de la bibliografía aquí utilizada. Además, agradecemos a la empresa Electrocomponentes S.A. que nos brindó la placa de emulación en circuito con los programas correspondientes para el uso de la misma, permitiéndonos así, programar, simular y emular nuestros proyectos. Dichos programas son, respectivamente, WINIDE v1.2, CASM08Z v3.16, ICD08SZ v1.32, ICS08JLZ v1.32 y PROG08SZ, todos de P&E Microcomputer Systems, Inc. Página 14/21

15 Archivo List File del programa Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE RAMStart EQU $ ROMStart EQU $F VectorStart EQU $FFDE $Include 'jl3regs.inc' 8 ; 68HC908JL3, 68HC908JK3, 68HC908JK1 Equates PTA EQU $0000 ; Ports and data direction PORTA EQU $ PTB EQU $ PORTB EQU $ PTD EQU $ PORTD EQU $ DDRA EQU $ DDRB EQU $ DDRD EQU $ PDCR EQU $000A PTAUE EQU $000D INTKBSR EQU $001A ; IRQ & Keyboard KBSCR EQU $001A INTKBIER EQU $001B KBIER EQU $001B INTSCR EQU $001D CONFIG1 EQU $001F ; System configuration register CONFIG2 EQU $001E ; System configuration register TSC EQU $0020 ; Timer TCNTH EQU $ TCNTL EQU $ TMODH EQU $ TMODL EQU $ TSC0 EQU $ TCH0H EQU $ TCH0L EQU $ TSC1 EQU $ TCH1H EQU $ TCH1L EQU $002A ADSCR EQU $003C ; ADC Converter ADR EQU $003D ADCLK EQU $003E BSR EQU $FE00 ; SIM Module RSR EQU $FE BFCR EQU $FE FLCR EQU $FE08 ; Flash control Página 15/21

16 Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE FLSPR EQU $FE FLTCR EQU $FE0A BRKH EQU $FE0C ; Break control BRKL EQU $FE0D BSCR EQU $FE0E INT1 EQU $FE04 ; Interrupt Status INT2 EQU $FE INT3 EQU $FE COPCTL EQU $FFFF ; COP control register ;(C)opywrite P&E Microcomputer Systems, ; You may use this code freely as long as this copyright notice 71 ; is included org RAMStart *************************************************** 78 * Definición de variables * 79 *************************************************** contador ds sustraen ds dig1 ds dig2 ds dig3 ds dig4 ds dig5 ds NumAConv ds 2 008A 89 NEventos ds 2 008C 90 frec ds 2 008E 91 NInterrup ds NDIsplay ds F org ROMstart 96 F600 [01] 9C 97 Inicio: rsp F601 [04] 101F 98 bset 0,CONFIG1 F603 [01] 4F 99 clra Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE 3 F604 [01] 5F 100 clrx F605 [01] 8C 101 clrh F606 [03] 3F clr dig1. F608 [03] 3F clr dig2 F60A [03] 3F clr dig3 F60C [03] 3F clr dig4 F60E [03] 3F clr dig5 F610 [03] 3F8A 107 clr NEventos F612 [03] 3F8B 108 clr NEventos+1 F614 [03] 3F8C 109 clr frec F616 [03] 3F8D 110 clr frec Página 16/21

17 F618 [04] 6E018E 112 mov #$01,NInterrup F61B [04] 6EF48F 113 mov #$F4,NInterrup+1 F61E [04] 6E mov #!6,NDisplay F621 [04] 6EFE mov #% ,DDRB. F624 [04] 6EEF mov #% ,DDRD 117 F627 [04] 6E mov #% ,TSC 119 F62A [04] 6E1C mov #$1C,TMODH F62D [04] 6ECC mov #$CC,TMODL F630 [04] 6E mov #% ,TSC F633 [02] 9A 125 cli Loop_Principal: F634 [03] 20FE 128 bra Loop_Principal ***************************************************************** 132 * Rutina de interrupción del TIM: * 133 * se multiplexan los displays y * 134 * se captura la cuenta de eventos cada 500 entradas * 135 ***************************************************************** 136 Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE MultDisp_&_Gate: 138 F636 [04] 3A8F 139 dec NInterrup+1 F638 [03] bne a F63A [03] B68E 141 lda NInterrup F63C [04] cbeqa #$00,a F63F [04] 3A8E 143 dec NInterrup F641 [04] 3A8F 144 dec NInterrup+1 F643 [03] B68F 145 a: lda NInterrup+1 F645 [03] BA8E 146 ora NInterrup F647 [03] bne Displays **************************************************** 150 * Ruitna de Gate: * 151 * se captura la cuenta de los eventos * 152 **************************************************** 153 F649 [05] 4E8A8C 154 Gate: mov NEventos,frec F64C [05] 4E8B8D155 mov NEventos+1,frec+1 F64F [03] 3F8A 156 clr NEventos F651 [03] 3F8B 157 clr NEventos+1 F653 [04] 6E018E 158 mov #$01,NInterrup F656 [04] 6EF48F 159 mov #$F4,NInterrup **************************************************** 162 * Rutina para multiplexar displays * 163 **************************************************** 164 F659 [04] 3A Displays: dec NDisplay F65B [03] B lda NDisplay F65D [04] 41050C 167 cbeqa #!5,Displ5 F660 [04] cbeqa #!4,Displ4 F663 [04] 41033C 169 cbeqa #!3,Displ3 Página 17/21

18 F666 [04] cbeqa #!2,Displ2 F669 [04] cbeqa #!1,Displ1 F66C [05] 4E8C Displ5: mov frec,numaconv F66F [05] 4E8D mov frec+1,numaconv+1 F672 [04] 6E mov #$27,sustraen F675 [04] 6E mov #$10,sustraen+1 Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE 5 F678 [05] CDF6E5 176 jsr Conversion_BCD F67B [05] 4E mov contador,dig5 F67E [03] BE ldx dig5 F680 [04] D6F lda Tabla7seg,x F683 [04] 6E mov #% ,PTD F686 [03] B sta PTB F688 [03] bra Salida_Disp F68A [04] 6E Displ4: mov #$03,sustraen F68D [04] 6EE mov #$E8,sustraen+1 F690 [05] CDF6E5 185 jsr Conversion_BCD F693 [05] 4E mov contador,dig4 F696 [03] BE ldx dig4 F698 [04] D6F lda Tabla7seg,x F69B [04] 6E mov #% ,PTD F69E [03] B sta PTB F6A0 [03] bra Salida_Disp F6A2 [04] 6E Displ3: mov #$00,sustraen F6A5 [04] 6E mov #$64,sustraen+1 F6A8 [05] CDF6E5 194 jsr Conversion_BCD F6AB [05] 4E mov contador,dig3 F6AE [03] BE ldx dig3 F6B0 [04] D6F lda Tabla7seg,x F6B3 [04] 6E mov #% ,PTD F6B6 [03] B sta PTB F6B8 [03] bra Salida_Disp F6BA [04] 6E Displ2: mov #$00,sustraen F6BD [04] 6E0A mov #$0A,sustraen+1 F6C0 [05] CDF6E5 203 jsr Conversion_BCD F6C3 [05] 4E mov contador,dig2 F6C6 [03] BE ldx dig2 F6C8 [04] D6F lda Tabla7seg,x F6CB [04] 6E mov #% ,PTD F6CE [03] B sta PTB Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE 6 F6D0 [03] bra Salida_Disp F6D2 [05] 4E Displ1: mov NumAConv+1,dig1 F6D5 [03] BE ldx dig1 F6D7 [04] D6F lda Tabla7seg,x F6DA [04] 6E mov #% ,PTD F6DD [03] B sta PTB F6DF [04] 6E mov #!6,NDisplay F6E2 [04] 1F Salida_Disp:bclr 7,TSC F6E4 [07] rti ************************************************************ 220 * Rutina de conversión de hexadecimal a BCD * 221 ************************************************************ Conversion_BCD: F6E5 [03] 3F clr contador Página 18/21

19 F6E7 [03] B Repite: lda NumAConv+1 F6E9 [03] B sub sustraen+1 F6EB [03] B sta NumAConv+1 F6ED [03] bcc Massigni F6EF [04] 3A dec NumAConv F6F1 [03] B Massigni: lda NumAConv F6F3 [03] B sub sustraen F6F5 [03] B sta NumAConv F6F7 [03] 2B bmi Salida_Resta F6F9 [04] 3C inc contador F6FB [03] 20EA 235 bra Repite 236 Salida_Resta: F6FD [03] B lda NumAConv+1 F6FF [03] BB add sustraen+1 F701 [03] B sta NumAConv+1 F703 [03] B lda NumAConv F705 [03] B adc sustraen F707 [03] B sta NumAConv F709 [04] rts *********************************************************** 247 * Rutina de interrupción de la captura de entrada * 248 *********************************************************** 249 F70A [04] 3C8B 250 Captura: inc NEventos+1 F70C [03] bne f F70E [04] 3C8A 252 inc NEventos F710 [04] 1F f: bclr 7,TSC0 Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE 7 F712 [07] rti ************************************************************** 258 * Tabla de decodificacion de BCD a 7 segmentos * 259 ************************************************************** Tabla7seg: F713 7E 262 db % F714 0C 263 db % F715 B6 264 db % F716 9E 265 db % F717 CC 266 db % F718 DA 267 db % F719 F8 268 db % F71A 0E 269 db % F71B FE 270 db % F71C CE 271 db % F71D 7C 272 db % F71E F2 273 db % F71F EE 274 db % F720 E2 275 db % ******************************************************** 279 * Rutina de servicio de interrupción inservible * 280 ******************************************************** dummy_isr: Página 19/21

20 F721 [07] rti **************************************************** 287 * Vectores de interrupción * 288 * permite vectorizar las interrupciones * 289 **************************************************** 290 FFDE 291 org VectorStart 292 FFDE F dw dummy_isr FFE0 F dw dummy_isr FFE2 F dw dummy_isr FFE4 F dw dummy_isr FFE6 F dw dummy_isr Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE 8 FFE8 F dw dummy_isr FFEA F dw dummy_isr FFEC F dw dummy_isr FFEE F dw dummy_isr FFF0 F dw dummy_isr FFF2 F dw MultDisp_&_Gate FFF4 F dw dummy_isr FFF6 F70A 305 dw Captura FFF8 F dw dummy_isr FFFA F dw dummy_isr FFFC F dw dummy_isr FFFE F dw Inicio Symbol Table A F643 ADCLK 003E ADR 003D ADSCR 003C BFCR FE03 BRKH FE0C BRKL FE0D BSCR FE0E BSR FE00 CAPTURA F70A CONFIG1 001F CONFIG2 001E CONTADOR 0080 CONVERSION_BCD F6E5 COPCTL FFFF DDRA 0004 DDRB 0005 DDRD 0007 DIG DIG DIG DIG DIG DISPL1 F6D2 DISPL2 F6BA DISPL3 F6A2 DISPL4 F68A Página 20/21

21 DISPL5 DISPLAYS DUMMY_ISR F FLCR FLSPR FLTCR F66C F659 F721 F710 FE08 FE09 FE0A Contador de Eventos.asm Assembled with CASM08Z 06/08/02 11:31:22 a.m. PAGE 9 FREC 008C GATE F649 INICIO F600 INT1 FE04 INT2 FE05 INT3 FE06 INTKBIER 001B INTKBSR 001A INTSCR 001D KBIER 001B KBSCR 001A LOOP_PRINCIPAL F634 MASSIGNI F6F1 MULTDISP_&_GATE F636 NDISPLAY 0090 NEVENTOS 008A NINTERRUP 008E NUMACONV 0088 PDCR 000A PORTA 0000 PORTB 0001 PORTD 0003 PTA 0000 PTAUE 000D PTB 0001 PTD 0003 RAMSTART 0080 REPITE F6E7 ROMSTART F600 RSR FE01 SALIDA_DISP F6E2 SALIDA_RESTA F6FD SUSTRAEN 0081 TABLA7SEG F713 TCH0H 0026 TCH0L 0027 TCH1H 0029 TCH1L 002A TCNTH 0021 TCNTL 0022 TMODH 0023 TMODL 0024 TSC 0020 TSC TSC VECTORSTART FFDE Contacto del autor: mserra@efn.uncor.edu Copyright 2002 LabDSP FCEFyN UNC Córdoba, Argentina Página 21/21

Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN. Introducción:

Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN. Introducción: NOTA DE APLICACIÓN Ejemplo de implementación del microcontrolador MC68HC908GP32 en la multiplexación de displays usando módulo TIM por César Gianfelici, LabDSP FCEFyN UNC supervisado por Ing. Diego Dujovne,

Más detalles

Analog To Digital Converter. Module (ADC) Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II ING.

Analog To Digital Converter. Module (ADC) Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II ING. Analog To Digital Converter Module (ADC) Analog to Digital Convertor Module Clock Generation Module (CGM) System Integration Module (SIM) LVR COP BREAK IRQ RESET 68HC8 CPU Timer Interface Module (TIM)

Más detalles

Generación de PWM para la familia HC08JL

Generación de PWM para la familia HC08JL Introducción Generación de PWM para la familia HC08JL Todos los microcontroladores HC08 incluyen al menos un módulo de Timer que es muy útil para generar o capturar señales, ya sean estas periódicas en

Más detalles

Problemario: Memoria / Entrada Salida / Buses / Interrupciones

Problemario: Memoria / Entrada Salida / Buses / Interrupciones Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC2721 Arquitectura del Computador I Problemario: Memoria / Entrada Salida / Buses / Interrupciones PARTE

Más detalles

Capítulo 2 LOS MICROCONTROLADORES MC68H(R)C908JL3/JK3/JK1. Capítulo 3 INTRODUCCIÓN A LA PROGRAMACIÓN DE LOS MICROCONTROLADORES MOTOROLA- FREESCALE

Capítulo 2 LOS MICROCONTROLADORES MC68H(R)C908JL3/JK3/JK1. Capítulo 3 INTRODUCCIÓN A LA PROGRAMACIÓN DE LOS MICROCONTROLADORES MOTOROLA- FREESCALE CONTENIDO Mensaje del editor...iii Web de Apoyo...iv Agradecimientos...vi El autor...vii Contenido...ix Prólogo de Freescale...xv Introducción... xvii Capítulo 1 INTRODUCCIÓN A LOS MICROCONTROLADORES MOTOROLA-FREESCALE

Más detalles

NT0106. Notas Técnicas de Uso y Aplicación 2.6 CAPTURA DE ENTRADA INPUT CAPTURE CAPTURA DE EVENTOS EXTERNOS MEDICIÓN DEL PERÍODO. 2.6.

NT0106. Notas Técnicas de Uso y Aplicación 2.6 CAPTURA DE ENTRADA INPUT CAPTURE CAPTURA DE EVENTOS EXTERNOS MEDICIÓN DEL PERÍODO. 2.6. Notas Técnicas de Uso y Aplicación 2.6 CAPTURA DE ENTRADA INPUT CAPTURE CAPTURA DE EVENTOS EXTERNOS MEDICIÓN DEL PERÍODO Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica

Más detalles

QUÉ ES UN MICRONTROLADOR?

QUÉ ES UN MICRONTROLADOR? QUÉ ES UN MICRONTROLADOR? Página 1 Un microcontrolador es la forma más básica y simple de un sistema computarizado En un solo integrado o chip se encuentra el microprocesador propiamente dicho o CPU, la

Más detalles

Buceando en el HC908...

Buceando en el HC908... COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Como implementar un control remoto por infrarrojo en

Más detalles

RESETS & INTERRUPCIONES

RESETS & INTERRUPCIONES RESETS & INTERRUPCIONES EN EL CPU08 Resets & Interrupciones Los Resets inicializan al CPU a un estado conocido!!!!. Todos los resets son manejados por medio del System Integration Module (S.I.M ) Tipos

Más detalles

2.1 CONTROL DE EVENTOS TEMPORIZADOS TIMER

2.1 CONTROL DE EVENTOS TEMPORIZADOS TIMER Notas Técnicas de Uso y Aplicación 2.1 CONTROL DE EVENTOS TEMPORIZADOS TIMER MODULE GENERACIÓN DE RETARDOS DE HARDWARE Preparado por: Elías Lombardo Batista Y por: Rangel Alvarado Estudiante Graduando

Más detalles

Control automático del nivel de luz.

Control automático del nivel de luz. Control automático del nivel de luz. Dose, Aldo Franke, Favián Lima, Carlos aldo_dose@yahoo.com.ar favian.franke@gmail.com carlos_ariel20081@hotmail.com Eje temático: 4. Aplicaciones en dispositivos hogareños

Más detalles

1.8 PROGRAMACIÓN DEL MICROCONTROLADOR

1.8 PROGRAMACIÓN DEL MICROCONTROLADOR Notas Técnicas de Uso y Aplicación 1.8 PROGRAMACIÓN DEL MICROCONTROLADOR REGISTROS, LOCALIDADES DE MEMORIA Y MAPA DE MEMORIA MAPA DE MEMORIA DE LOS MICROCONTROLADORES JK3/JL3 Preparado por: Rangel Alvarado

Más detalles

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas

Más detalles

Laboratorio 1 Entorno de desarrollo y subrutinas

Laboratorio 1 Entorno de desarrollo y subrutinas Laboratorio 1 Entorno de desarrollo y subrutinas Objetivos Dar los primeros pasos con el uso de la placa. Desarrollar subrutinas que acceden a puertos de entrada y salida (E/S). Validar subrutinas básicas

Más detalles

RESETS & INTERRUPCIONES

RESETS & INTERRUPCIONES RESETS & INTERRUPCIONES EN EL CPU08 Resets & Interrupciones Los Resets inicializan al CPU a un estado conocido!!!!. Todos los resets son manejados por medio del System Integration Module (S.I.M ) Tipos

Más detalles

(SPI) Módulo Serial Sincrónico

(SPI) Módulo Serial Sincrónico SERIAL PERIPHERAL INTERFACE (SPI) Módulo Serial Sincrónico SERIAL PERIPHERAL INTERFACE MODULE Clock Generation Module (CGM) System Integration Module (SIM) LVI COP IRQ BREAK RESET 68HC08 CPU Timer Interface

Más detalles

NT0104. Notas Técnicas de Uso y Aplicación 2.4 MODULACIÓN POR ANCHO DE PULSO UNBUFFERED PWM CONFIGURACIÓN DEL PWM UNBUFFERED Y SUS LIMITANTES

NT0104. Notas Técnicas de Uso y Aplicación 2.4 MODULACIÓN POR ANCHO DE PULSO UNBUFFERED PWM CONFIGURACIÓN DEL PWM UNBUFFERED Y SUS LIMITANTES Notas Técnicas de Uso y Aplicación 2.4 MODULACIÓN POR ANCHO DE PULSO UNBUFFERED PWM CONFIGURACIÓN DEL PWM UNBUFFERED Y SUS LIMITANTES Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing.

Más detalles

1.10 PUERTOS GENERALES DE ENTRADA Y SALIDA

1.10 PUERTOS GENERALES DE ENTRADA Y SALIDA Notas Técnicas de Uso y Aplicación 1.10 PUERTOS GENERALES DE ENTRADA Y SALIDA USO DE PUERTOS PARA GENERAR SEÑALES Y DETECTAR SEÑALES DIGITALES Preparado por: Rangel Alvarado Estudiante Graduando de Lic.

Más detalles

ACIÓN DEL MICROCONTROLADOR CPU08 CPU08 DE

ACIÓN DEL MICROCONTROLADOR CPU08 CPU08 DE Notas Técnicas de Uso y Aplicación 1.7 PROGRAMACIÓN DEL MICROCONTROLADOR CPU08 CPU08 DE LOS MICROCONTROLADORES DE LA FAMILIA HC08 Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica

Más detalles

Diseño de Controladores Digitales: Trabajo Practico Final

Diseño de Controladores Digitales: Trabajo Practico Final Diseño de Controladores Digitales: Trabajo Practico Final Pablo Rendtorff Dispenser programable de alimento balanceado para mascotas. Diagrama: El Dispense consta de: Un tanque Un dosificador (para el

Más detalles

Timer Interface Module

Timer Interface Module Timer Interface Module M.C. Jorge Eduardo Ibarra Esquer Timer Interface (TIM) El TIM es un timer de 2 canales que proporciona una referencia de temporización con captura de entrada, comparador de salida

Más detalles

Puertos de Entrada/Salida

Puertos de Entrada/Salida Dispositivos Entrada / Salida en Flía CPU08 Sistemas con Microcontroladores y Microprocesadores http://www.herrera.unt.edu.ar/procesadores Puertos de Entrada/Salida El mc posee 13 líneas de entrada/salida

Más detalles

APENDICE A Microcontrolador de 8 bits MC68HC11F1

APENDICE A Microcontrolador de 8 bits MC68HC11F1 APENDICE A Microcontrolador de 8 bits MC68HC11F1 Características generales: Memoria RAM de 1Kbyte Memoria EEPROM de 512 bytes Cuatro modos de operación o Bootstrap o Expandido o Single chip o Test Siete

Más detalles

Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores

Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores http://www.herrera.unt.edu.ar/procesadores Temas a Tratar Tipos de Instrucciones. Movimiento de Datos Procesamiento Aritméticas

Más detalles

Diseño de Controladores Digitales.

Diseño de Controladores Digitales. Universidad Nacional de Quilmes. Ingeniería en Automatización y Control Industrial. Diseño de Controladores Digitales. Presentación final. Proyecto de aplicación del Microcontrolador MC68HC11F1. Diseño

Más detalles

Flia. HC908. Detalles de la Arquitectura. Curso de Microcontroladores Familia HC908 Flash de Motorola Parte II

Flia. HC908. Detalles de la Arquitectura. Curso de Microcontroladores Familia HC908 Flash de Motorola Parte II Flia. HC908 Detalles de la Arquitectura MC68HC908 Detalles de la Arquitectura Familia MC68HC908 Nomenclatura Diagrama en Bloques Pines Mapa de Memória Nomenclatura: Como se podrá observar en el próximo

Más detalles

5 - Lenguaje Ensamblador

5 - Lenguaje Ensamblador PROGRAMACIÓN EN ENSAMBLADOR 62 Fuente.asm,.s51,... Fases del Ensamblado Ensamblado Objeto.obj,.r03 Objeto Enlazado Ejecutable.hex,.bin Librerías Eprom Simulador Emulador Monitor PROGRAMACIÓN EN ENSAMBLADOR

Más detalles

Práctica 3 - Arquitectura del CPU

Práctica 3 - Arquitectura del CPU Práctica 3 - Arquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar

Más detalles

Motorola MC68HC908JK3/JK1

Motorola MC68HC908JK3/JK1 Sistema de desarrollo para microcontrolador Motorola. MC68HC908JK3/JK1 Motorola MC68HC908JK3/JK1 GUSTAVO A. GALEANO info@propuestadinamica.com JUAN ANDRÉS CASTAÑO WELGOS welgos@telesat.com.co Sin invertir

Más detalles

NT0112. Notas Técnicas de Uso y Aplicación 2.12 MÓDULO DE AUTORECUPERACIÓN AWU PARA MICROCONTROLADORES DE LA SERIE Q

NT0112. Notas Técnicas de Uso y Aplicación 2.12 MÓDULO DE AUTORECUPERACIÓN AWU PARA MICROCONTROLADORES DE LA SERIE Q Notas Técnicas de Uso y Aplicación 2.12 MÓDULO DE AUTORECUPERACIÓN AWU PARA MICROCONTROLADORES DE LA SERIE Q Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica Universidad

Más detalles

Microcontrolador PIC16F84: Arquitectura

Microcontrolador PIC16F84: Arquitectura Microcontrolador PIC16F84: Arquitectura La arquitectura del PIC es tipo Harvard: Mem. de Programa (instrucciones) (tipo FLASH) Control DIR DATOS µp (tipo RISC, pipeline de 2 etapas) Control DIR DATOS 14

Más detalles

INTRODUCCIÓN. Comunicación Serial.

INTRODUCCIÓN. Comunicación Serial. INTRODUCCIÓN La función principal de este tipo de comunicación es la de convertir datos de salida de forma paralela a serial y la de convertir datos de entrada de forma serial a paralela. El acceso al

Más detalles

Programación de Microcontroladores

Programación de Microcontroladores Programación de Microcontroladores Simulación en Crocodile Technology Práctica Nº 1 Encender un led cuando arranque el microcontrolador. Práctica Nº 2 Encender un led tres veces consecutivas. 1 Práctica

Más detalles

Terminales del P 8085 (vistos hasta ahora)

Terminales del P 8085 (vistos hasta ahora) Terminales del P 8085 (vistos hasta ahora) Buses de direcciones y datos Bus de control Alimentación, clock, reset Registros internos del P 8085 Transferencia: MVI r,dato MOV r1,r2 LDA dir STA dir Aritméticas:

Más detalles

MONITOR ROM MODULE (MON08)

MONITOR ROM MODULE (MON08) ROM MODULE (MON08) Que es el Monitor ROM?? Es un módulo exclusivo de la familia HC908 FLASH de Freescale, que permite forzar al MCU a un estado especial de comunicación con el mundo exterior. Este modo

Más detalles

Ejemplo del uso de las subrutinas

Ejemplo del uso de las subrutinas Ejemplo del uso de las subrutinas Enunciado del problema: Diseñar un contador BCD que cuente de 0 a 59 para simular un timer de 60 segundos y que el conteo de dos dígitos BCD, sea desplegado en los displays

Más detalles

NT0012. Notas Técnicas de Uso y Aplicación 1.12 CONVERTIDOR ANALÓGICO DIGITAL UNA CONVERSIÓN CONFIGURACIÓN DE LECTURA DEL ADC

NT0012. Notas Técnicas de Uso y Aplicación 1.12 CONVERTIDOR ANALÓGICO DIGITAL UNA CONVERSIÓN CONFIGURACIÓN DE LECTURA DEL ADC Notas Técnicas de Uso y Aplicación 1.12 CONERTIDOR ANALÓGICO DIGITAL UNA CONERSIÓN CONFIGURACIÓN DE LECTURA DEL ADC Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica ÍNDICE

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

SISTEMA MÍNIMO BASADO EN EL PIC16F84

SISTEMA MÍNIMO BASADO EN EL PIC16F84 PRÁCTICA 0 CIRCUITO BASE SISTEMA MÍNIMO BASADO EN EL PIC16F84 1 PRÁCTICA 1_1 COMPUERTA AND DE TRES ENTRADAS Hardware X0 X1 X2 Y 2 Comportamiento esperado INICIO Configurar Puerto A como entradas y Puerto

Más detalles

TUTORIAL: AÑADIR NUEVA FUNCIONALIDAD A UN JUEGO DE NES

TUTORIAL: AÑADIR NUEVA FUNCIONALIDAD A UN JUEGO DE NES TUTORIAL: AÑADIR NUEVA FUNCIONALIDAD A UN JUEGO DE NES Este proceso es un poco complicado y en algunos juegos no se puede realizar. Para el ejemplo, vamos a utilizar el juego Adventures of Dino Riki, The

Más detalles

PRÁCTICA 2: Programas básicos. Tipos de direccionamiento.

PRÁCTICA 2: Programas básicos. Tipos de direccionamiento. SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 2: Programas básicos. Tipos de direccionamiento. Tipos de direccionamiento Ejemplos y ejercicios - 1 - 1. Objetivos - Introducir

Más detalles

Tema: Lazos y Control de Flujo en HC12.

Tema: Lazos y Control de Flujo en HC12. Microprocesadores. Guía 2 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Laboratorio de Microprocesadores (Edificio 3, 2a planta). Tema: Lazos y Control

Más detalles

El Stack y Subrutinas

El Stack y Subrutinas El Stack y Subrutinas El STACK El Stack es un grupo de localidades de memoria de lecto-escritura que son usadas para almacenar el contenido de registros y direcciones de memoria temporalmente durante la

Más detalles

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com

Más detalles

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

Más detalles

P1.0,... P1.7 7 EN3 EN2

P1.0,... P1.7 7 EN3 EN2 Ing. O. Richer Microprocesadores I Práctica #7 Manejo de un Display Trabajo en grupo. Conecte al microcontrolador 8051 un display formado por 5 dígitos a base de LED s de siete segmentos, como se muestra

Más detalles

Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II. CPU08 Core ING. DANIEL DI LELLA

Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II. CPU08 Core ING. DANIEL DI LELLA INTRODUCCION AL CPU08 CPU08 Clock Generation Module (CGM) System Integration Module (SIM) LVI COP IRQ BREAK RESET 68HC08 CPU Timers Interface Modules (TIM) 8 BIT A/D Converter Module (ADCM) Internal Bus

Más detalles

Mapas de Memoria y E/S

Mapas de Memoria y E/S Mapas de Memoria y E/S Sistemas con Microprocesadores http://www.herrera.unt.edu.ar/procesadores Conexiones internas del CPU08 Dentro del mc el CPU08 se vincula con memoria y con los dispositivos de E/S

Más detalles

O B J E T I V O I N T R O D U C C I O N M A R C O T E O R I C O

O B J E T I V O I N T R O D U C C I O N M A R C O T E O R I C O O B J E T I V O Realizar un contador decimal que se exhiba en un display de 7 segmentos, cada número deberá estar exhibido durante un segundo. I N T R O D U C C I O N En la mayoría de los sistemas electrónicos

Más detalles

8.4. El software en los μprocesadores

8.4. El software en los μprocesadores 8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado

Más detalles

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA INTRODUCCIÓN AL PIC NOMENCLATURA ARQUITECTURA. TEMPORIZACIÓN. SET DE INSTRUCCIONES. MODOS DE DIRECCIONAMIENTO.

Más detalles

PRACTICA 4. REALIZAR ENCENDIDO-APAGADO DE DIODOS LED

PRACTICA 4. REALIZAR ENCENDIDO-APAGADO DE DIODOS LED PRACTICA 4. REALIZAR ENCENDIDO-APAGADO DE DIODOS LED DESCRIPCIÓN. En esta práctica vamos a realizar el encendido y apagado de diodos led. Para ellos iremos activando y desactivando las salidas de la puerta

Más detalles

W4IKS MANUAL DEL USUARIO

W4IKS MANUAL DEL USUARIO W4IKS MANUAL DEL USUARIO Introducción El controlador 170 es una mini computadora diseñada para controlar señales de transito. El hardware esta compuesto por el procesador, memoria (RAM y EPROM), una interfase

Más detalles

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 3: Bucles Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios -

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

ARQUITECTURA DEL PIC16F84A

ARQUITECTURA DEL PIC16F84A ARQUITECTURA DEL PIC16F84A Arquitectura interna del PIC16F84A CPU ALU Decodificador de Instrucciones - Buses Registro de trabajo W PC Contador de Programa Organización de la memoria Memoria de Programa

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011

Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011 Apellidos, Nombre: Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011 Problema 1. Realice un programa que calcule la cantidad de números negativos

Más detalles

Arquitectura y mapa de memoria del 80C167. Cesáreo Fernández Martínez Álvaro Sánchez Miralles

Arquitectura y mapa de memoria del 80C167. Cesáreo Fernández Martínez Álvaro Sánchez Miralles Arquitectura y mapa de memoria del 80C167 Cesáreo Fernández Martínez Álvaro Sánchez Miralles Introducción Microcontrolador (Embedded Processor) de 16 bits ALU y Registros de 16 bits Diseñado para tareas

Más detalles

Introducción a los microcontroladores. Decanato de Postgrado Mayo de 2011

Introducción a los microcontroladores. Decanato de Postgrado Mayo de 2011 Introducción a los microcontroladores Decanato de Postgrado Mayo de 2011 Microcontroladores aaaaa Un microcontrolador (Micro Controller Unit, MCU), es un circuito integrado programable, construido con

Más detalles

PROYECTO DE DISEÑO 2 INFORMACIÓN PRELIMINAR

PROYECTO DE DISEÑO 2 INFORMACIÓN PRELIMINAR INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA IE-3308 LABORATORIO DE DISEÑO LÓGICO Profesor: Ing. Luis Carlos Rosales. PROYECTO DE DISEÑO 2 INFORMACIÓN PRELIMINAR Información General:

Más detalles

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com

Más detalles

MEMORIA EJERCICIO 1 EJERCICIO 2

MEMORIA EJERCICIO 1 EJERCICIO 2 MEMORIA EJERCICIO 1 Determinar el mapa de memoria de un procesador con 16 señales de bus de direcciones, una señal de asentimiento de bus de direcciones AS, una señal de lectura R, otra de escritura W

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Los números naturales y enteros en el 80X86 y en LAN

Los números naturales y enteros en el 80X86 y en LAN Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales

Más detalles

PRÁCTICA 6: Gobierno del display 7 segmentos

PRÁCTICA 6: Gobierno del display 7 segmentos SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 6: Gobierno del display 7 segmentos Display 7 segmentos - 1 - Ingeniería de Sistemas y Automática 1. Objetivos: Gobierno

Más detalles

Trabajo Práctico 3 - Simon

Trabajo Práctico 3 - Simon Trabajo Práctico 3 - Simon Organización del Computador 1 Verano 2006 8 de marzo de 2006 Introducción En los años 80 hizo furor entre la muchachada un juego bastante simple pero entretenido: el Simon. Este

Más detalles

SISTEMA MULTITAREA BASADO EN PRIORIDADES - KERNEL

SISTEMA MULTITAREA BASADO EN PRIORIDADES - KERNEL Documento en desarrollo como Notas Técnicas de Uso y Aplicación SISTEMA MULTITAREA BASADO EN PRIORIDADES - KERNEL PARA MICROCONTROLADORES CON CPU08 Preparado por: Rangel Alvarado Estudiante Graduando de

Más detalles

Registros SFR vistos hasta ahora: Microcontroladores PIC

Registros SFR vistos hasta ahora: Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El

Más detalles

9. Lenguaje ensamblador

9. Lenguaje ensamblador 9. Lenguaje ensamblador Lenguaje máquina: un programa o secuencia de instrucciones viene dado por una secuencia de códigos binarios. Lenguaje ensamblador: secuencia lógica de sentencias pertenecientes

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

Uso de la herramienta de desarrollo y los modos de direccionamiento del HC12.

Uso de la herramienta de desarrollo y los modos de direccionamiento del HC12. Microprocesadores. Guía 1 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Laboratorio de Microprocesadores (Edificio 3, 2a planta). Uso de la herramienta

Más detalles

Conversor Analógico Digital

Conversor Analógico Digital Introducción: Magnitud analógica: Conjunto de valores continuos en un rango determinado. Variables de naturaleza analógica: Corriente, Presión, Temperatura, Velocidad, etc... Procesamiento: Necesidad de

Más detalles

Capítulo 1. Introducción a los PIC de 8 bits

Capítulo 1. Introducción a los PIC de 8 bits Capítulo 1. Introducción a los PIC de 8 bits 1.1 Memorias y Registros Entre los componentes básicos de un microcontrolador podemos definir el contador, sus registros, la memoria, el watchdog timer, el

Más detalles

Microprocesadores, Tema 3 (2):

Microprocesadores, Tema 3 (2): Microprocesadores, Tema 3 (2): Programación del Microcontrolador PIC18 a Bajo Nivel Guillermo Carpintero Marta Ruiz Universidad Carlos III de Madrid Ubicando el programa en la memoria del PIC18 Figura

Más detalles

Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80

Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 1 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 2 Cargue el numero F2H y 68H en los registros B y C respectivamente Almacene A2H en la locación de memoria 2065H Reste el 68H de F2H (F2H-68H)

Más detalles

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador PROBLEMAS TEMA 1: Estructuras de interconexión de un computador Problemas propuestos en examen 1.1 Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato

Más detalles

Instrucciones de Control de Flujo y Usos de la Pila

Instrucciones de Control de Flujo y Usos de la Pila 1 Instrucciones de Control de Flujo y Usos de la Pila Objetivos Generales Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Microprocesadores Analizar la forma en que se ejecutan algunas

Más detalles

Relación de Problemas I

Relación de Problemas I Relación de Problemas I 352) $1'5e6 52/'È1 $5$1'$ 1. Realizar el cálculo del tiempo que transcurre durante la ejecución del bloque de instrucciones sombreado, en función del contenido de los registros

Más detalles

Unidad IV: Programación de microcontroladores

Unidad IV: Programación de microcontroladores Unidad IV: Programación de microcontroladores El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos,

Más detalles

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Arq. de Computadora I Ing. Carlos Ortega H. 1 Interrupciones FUNCIÓN INT

Más detalles

CURSO: ELECTRÓNICA DIGITAL UNIDAD 2: SISTEMAS COMBINATORIOS - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA 1. CIRCUITOS ARITMÉTICOS

CURSO: ELECTRÓNICA DIGITAL UNIDAD 2: SISTEMAS COMBINATORIOS - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA 1. CIRCUITOS ARITMÉTICOS CURSO: ELECTRÓNICA DIGITAL UNIDAD 2: SISTEMAS COMBINATORIOS - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA En Electrónica digital se tienen sistemas combinatorios y sistemas secuenciales. Un sistema combinatorio

Más detalles

MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627)

MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627) MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627) TEMARIO Objetivo: El estudiante comprenderá la evolución de los microcontroladores y microprocesadores así como sus diferencias, desarrollara su habilidad

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen tendrá una duración total de 2 horas. El examen constará de dos partes: teoría y problemas. La nota final será la suma de las dos partes

Más detalles

Ejercicios. Arquitectura de Computadoras. José Garzía

Ejercicios. Arquitectura de Computadoras. José Garzía Ejercicios de Arquitectura de Computadoras José Garzía Se pretende diseñar una sección de control con 32 estados, que genere 4 señales de control, reciba 2 señales de condición y en un estado se puedan

Más detalles

Tema: Lenguaje ensamblador embebido

Tema: Lenguaje ensamblador embebido Compiladores. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Lenguaje ensamblador embebido Contenido En esta guía se presenta una breve introducción a las estructuras

Más detalles

Buceando en el HC908...

Buceando en el HC908... COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Guía de Conversión de los MC908QT/QYx a MC908QTxA/QYxA.

Más detalles

LENGUAJE C PARA SISTEMAS DEDICADOS

LENGUAJE C PARA SISTEMAS DEDICADOS LENGUAJE C PARA SISTEMAS DEDICADOS FUNDAMENTOS Computadora Se dispone de un S.O. El S.O. inicia y configura los periféricos. El S.O. brinda al usuario subrutinas para utilizar los periféricos ( system

Más detalles

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III APUNTE DEL 8155 ELECTRÓNICA DIGITAL III Revisión 1.1 Marzo, 2011 Interfaz a periférico 8155 Descripción general El chip 8155 es un dispositivo introducido por Intel en 1977. Contiene memoria RAM (SRAM)

Más detalles

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 La Unidad de Control La instrucción

Más detalles

Técnicas Digitales III

Técnicas Digitales III Universidad Tecnológica Nacional Facultad Regional San Nicolás Técnicas Digitales III Familia 56800 DSP56F801 1 DSP56F801 Nombre funcional Nº Pines Power (V DD ) 5 Ground (V SS ) 6 Supply Cap. 2 PLL y

Más detalles

Examen 22 de Febrero 2006

Examen 22 de Febrero 2006 Problema 1 Examen 22 de Febrero 2006 La dirección de marketing de una conocida empresa de desodorantes ha decidido entregar un regalo con cada desodorante en spray. Para ello ha sido encargada la construcción

Más detalles

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Administración de la memoria Profesor Ing. Johan Carvajal Godínez Contenidos Organización de la memoria del MCU Administración de la memoria de programa (Flash)

Más detalles

Arquitectura (Procesador familia 80 x 86 )

Arquitectura (Procesador familia 80 x 86 ) Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene

Más detalles

ORGANIZACIÓN DE LA MEMORIA

ORGANIZACIÓN DE LA MEMORIA Existen dos tipos de memoria en todos los µc, memoria de programa y memoria de datos. La primera (EPROM, EEPROM, FLASH, etc) contiene los códigos de operación que se ejecutarán para seguir una secuencia

Más detalles

7.- La conversión correcta a base seis del número (3BA.25) 14 es: a) b) c) d)

7.- La conversión correcta a base seis del número (3BA.25) 14 es: a) b) c) d) Ejercicios capítulo 1. Profesor Guillermo Sandoval Benítez Ejercicios 1.- Liste en orden ascendente los primeros diez dígitos de los sistemas numéricos de base tres, cuatro y cinco. 2.- Realizar las siguientes

Más detalles

Controladores Lógicos Programables

Controladores Lógicos Programables Inicio Objetivos del Programa Misión y Visión del programa Perfil del admitido Perfil del egresado Plan de Estudios Objetivos de la Acreditación Controladores Lógicos Programables Click to edit Master

Más detalles

TEMA 4 TECNICAS DE DIRECCIONAMIENTO

TEMA 4 TECNICAS DE DIRECCIONAMIENTO TEMA 4 TECNICAS DE DIRECCIONAMIENTO CURSO 2010/2011 TECNICAS DE DIRECCIONAMIENTO 1. Introducción 2. Registros de los Generadores de Direcciones (DAG) Registros Alternos de los DAG 3. Modos de Operación

Más detalles

ARQUITECTURA DE LAS COMPUTADORAS

ARQUITECTURA DE LAS COMPUTADORAS ARQUITECTURA DE LAS COMPUTADORAS PROGRAMAS UTILIZANDO EL MICROPROCESADOR 8085 (2007) DETERMINAR PASO A PASO EL RESULTADO DE LA CORRIDA DE LOS SIGUIENTES PROGRAMAS 1) MEMORIA CONTENIDO MNEMONICO A 66 06

Más detalles