Entradas Salidas Digitales Con El AVR

http://microcontroladores-mrelberni.com/entradas-salidas-digitales-con-el-avr/ Entradas salidas digitales con el AVR Ent

Views 60 Downloads 4 File size 213KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

http://microcontroladores-mrelberni.com/entradas-salidas-digitales-con-el-avr/ Entradas salidas digitales con el AVR Entradas salidas digitales con el AVR, los pines del microcontrolador AVR pueden tener múltiples funciones, eso dependerá del microcontrolador AVR que se utilice, en esta ocación se verá el uso de estos pines como entradas digitales o como salidas digitales, en los ejemplos que se hagan en esta página y en los vídeos publicados en el canal de youtube de MrElberni, se utilizarán diversos AVR, se recomienda siempre tener a mano la hoja de datos del microcontrolador AVR que se utilice. En esta ocasión se comentará el uso de los pines de los microcontroladores como entradas salidas digitales con el AVR, los pines normalmente vienen agrupados en grupos de 8 pines, a cada uno de estos grupos se les llama puertos, algunos puertos pueden tener menos de 8 pines, por ejemplo para el ATmega88 se tiene que el puerto B tiene 8 pines, mientras que el puerto C solo tiene 7 pines, la cantidad de puertos puede variar de un modelo de microcontrolador AVR a otro. Cada uno de los pines del avr a ser utilizados como entradas salidas digitales tienen un nombre propio relacionado con el puerto al que pertenecen y al número de orden del bit con el cual se programará, por ejemplo para el puerto D se tienen los pines PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7. Para la manipulación de los pines como entradas salidas digitales con el AVR, el microcontrolador AVR cuenta con tres registros de 8 bits cada uno, estos registros son el DDRx, PORTx, PINx, las x depende del puerto a utilizar, en adelante se tomará como ejemplo el microcontrolador ATmega88, pero lo que aquí se comente en cuanto al uso de los pines como entradas salidas digitales con el AVR es muy similar para los demás microcontroladores AVR, la hoja de datos de este microcontrolador se puede ver y descargar desde aquí, la programación de los pines como entradas salidas digitales PIC se hará en C/C++ con el Atmel Studio. El siguiente es un vídeo publicado en el canal de youtube de MrElberni, en el se comenta sobre los registros a utilizar para programar los pines como entradas salidas digitales con el AVR, en este caso se comenta para el Atmega88, la información utilizada se obtiene de la hoja de datos del microcontrolador. A continuación se ve la forma en que se configuran los bits de los registros DDRx, PORTx, PINx, las x depende del puerto a utilizar, en el Atmel Studio para hacer trabajar los pines como entradas salidas digitales con el AVR, los demás tipos de registros con los que cuenta el microcontrolador AVR se configuran de la misma forma, con la única diferencia que cambiarán los nombres tanto de los registros como de sus correspondientes bits. Entradas salidas digitales con el AVR Registro DDRx Mediante el registro DDRx se eligen si los pines a utilizar del microcontrolador AVR serán salidas digitales o entradas digitales, la x representa el puerto al cual pertenezcan los pines a utilizar como entradas o salidas digitales, por ejemplo si es un pin del puerto B, entonces x será B, si es un pin de un puerto D de algún microcontrolador AVR, entonces x será D; para los microcontroladores AVR de 8 bits, el registro DDRx está conformado de 8 bits, cada uno de esos bits controlará a un pin del puerto al que pertenezca el registro DDRx para que el pin se comporte como una entrada digital o como una salida digital. -Para elegir que el pin se comporte como salida digital, se pondrá su bit correspondiente en el registro DDRx del puerto utilizado como 1. - Para elegir que el pin se comporte como entrada digital, se pondrá su bit correspondiente en el registro DDRx del puerto utilizado como 0. La siguiente es la imagen del registro DDRB del microcontrolador ATmega88

Por ejemplo: Si el bit7 o bit DDB7 se le asigna un 1, el pin PB7 será una salida digital; Si el bit3 o bit DDB3 se le asigna un 0, el pin PB3 será una entrada digital, como se puede observar los bits se cuentan de 0 a 7 de derecha a izquierda, esto será siempre así para cualquier otro registro. Este registro se puede programar para que todos los pines del puerto B sean salidas digitales o todos los pines sean entradas digitales o una mezcla de ambos, en C/C++ la programación del registro DDRB se puede hacer en binario, en decimal o hexadecimal, la forma de proceder dependerá del programa compilador que se esté utilizando. En el caso de

utilizar el compilador ATMEL STUDIO, la forma de configurar todos los pines del puerto B, para usarlos como entradas salidas digitales PIC se hace como se muestra a continuación ///////////////////////////////////////////// /// Entradas salidas digitales con el AVR /// ///////////////////////////////////////////// //todos los pines de puerto b como entradas digitales DDRB=0b00000000;//en binario DDRB=0; //en decimal DDRB=0x00; //en hexadecimal //todos los pines del puerto b como salidas digitales DDRB=0b11111111;//en binario DDRB=255; //en decimal DDRB=0xff; //en hexadecimal //algunos pines como entradas y otros como salidas digitales //PB7, PB5, PB3 y PB1 como entradas digitales //PB6, PB4, PB2 y PB0 como salidas digitales DDRB=0b01010101;//en binario DDRB=85; //en decimal DDRB=0x55; //en hexadecimal ///////////////////////////////////////////// /// Entradas salidas digitales con el AVR /// //todos los pines de puerto b como entradas digitales DDRB=0b00000000;//en binario DDRB=0; //en decimal DDRB=0x00; //en hexadecimal //todos los pines del puerto b como salidas digitales DDRB=0b11111111;//en binario DDRB=255; //en decimal DDRB=0xff; //en hexadecimal //algunos pines como entradas y otros como salidas digitales //PB7, PB5, PB3 y PB1 como entradas digitales //PB6, PB4, PB2 y PB0 como salidas digitales DDRB=0b01010101;//en binario DDRB=85; //en decimal DDRB=0x55; //en hexadecimal La forma binaria tiene la ventaja de que deja ver con que valores 0 o 1 se están programando los bits del registro utilizado, el valor asignado al registro está comprendido entre 0 y 255 porque el registro es de 8 bits. “Se ha comentado la forma de proceder para el caso del registro DDRB, pero en el ATMEL STUDIO se procede de la misma forma para cualquier otro registro del microcontrolador AVR que se quiera utilizar, que como se verá son muchos registros.” Muchas veces será necesario programar los bits de los registros bit por bit, no todos de una vez como se ha visto, esto en el lenguaje C/C++ se hace mediante operaciones con bits, y como se programará en C/C++ con el ATMEL STUDIO, las operaciones de bits se puede utilizar, es muy importante dominar las operaciones de bits ya que facilita bastante la programación de los microcontroladores; lo que se comente en adelante para la manipulación de los bits registro DDRB será aplicable a cualquier otro registro del microcontrolador AVR. Por ejemplo si se quiere utilizar solo el pin PB0 como salida digital, entonces el bit0 del registro DDRB se tiene que poner a 1, para lograr esto se procede así: DDRB |= (1