Post on 20-Jun-2015
description
TRADUCCION POR GOOGLE TRADUCTOR DESDE LA PÁGINA
http://www.pocketmagic.net/2009/02/first-steps-with-micro-controllers-atmega8/
#.UuhDb9K3W1t
Primeros pasos con microcontroladores (ATMEGA8)
Por Radu Motisan Publicado el 11 de febrero de 2009
El ATMega8 es un microcontrolador excelente:
28 PINS (23 de entrada / salida!)
8 Kbytes de auto-programación de Flash de memoria del programa
1-Kbyte SRAM
512 octeto EEPROM
6 o 8 canales de 10 bits A / D convertidor
Hasta 16 MIPS de rendimiento de procesamiento en 16 Mhz
2.7 - operación 5.5 Volt
su hoja de datos está disponible aquí
Le sugiero que descargar la imagen ATMega8 a la izquierda e imprimirlo, ya que lo
necesitará a menudo para consultar la distribución PIN al hacer su circuito.
Los pines de entrada / salida son importantes cuando se trata de la cantidad de
dispositivos que desea conectar / control / uso.Para controlar un simple LED tendrá que
utilizar 1 PIN (para salida). Para controlar un sensor de temperatura, tendrá otro
número de identificación (por entrada).
Para hacer un circuito simple y la potencia del microcontrolador, lo primero que necesita saber es que se necesita una fuente de alimentación de 5V estable. La mejor manera de lograr esto es utilizar un regulador como el 7905/7805. Este componente tiene salida constante independientemente de la corriente de entrada - en lo que respecta a algunos límites dados, por supuesto.
Aquí es el circuito. Le sugiero que utilice sockets para el ATMega8, cambiar fácilmente su ficha en su tablero. Mediante la implementación de los esquemas anteriores, usted tendrá el microchip alimentada. Pero tendrá que programarlo con el fin de tener un resultado útil.
El desarrollo del software ATmega
Vamos a intentar algo simple - como controlar un LED de encendido / apagado.
Para ello, tenemos que conectar el LED a cualquiera de los de ATMega8 E / S disponible
pins.
Usaré Pin 28 llamado PC5. Este pin es parte del conjunto de PORTC de 7 pins PC0 -
PC6. Observe que hay otros conjuntos de pines como PORTB (PB0-PB7) y PORTD (PD0-
PD7).
Así que el cableado es como esto:
A continuación, tendrá un compilador de C para el ATMega8 y un programador de software que va a cargar el código compilado en el sistema micro. Para el compilador que he usado AVR Studio de Atmel. Descargue los 3 archivos debajo e instalarlos en el orden dado (el estudio avr sí mismo y 2 paquetes de servicios adicionales): 1 AVR Studio, versión 4.13, construir 528 (73.8mb) 2 AVR Studio 4.13 SP1 (Build 557) (37mb) 3 AVR Studio 4.13 SP2 (build 571) (45mb)
Para el cargador que he usado avrdude que viene con el paquete WinAVR: WinAVR
Tan pronto como se haya instalado todo, empezar AVR Studio. Usted obtendrá una
página como esta: Haga clic en "Nuevo proyecto" y seleccione GCC AVR, a
continuación, agregar un nombre de proyecto "TestLED" y seleccione una ubicación
para almacenar los archivos del nuevo proyecto:
Haga clic en Siguiente, y en esta nueva página será posible seleccione "AVR
Simulator" y hacia la derecha en Dispositivo, seleccione ATMega8 como se muestra a
continuación: Simplemente pulse Finalizar, y usted puede comenzar a escribir el
código:
Lo primero es lo que necesitamos saber:
# include
Incluirá esta biblioteca en nuestro proyecto para que podamos acceder a las funciones
básicas de entrada / salida y macros.
int main () es el punto de entrada de nuestro programa, aquí es donde comienza la
ejecución del programa.
Por lo tanto, lo primero que debe hacer es establecer el PORTC como salida. Para ello
vamos a utilizar un registro especial llamado DDRC:
DDRC = 0x20;
por qué 0x20? Vamos a echar un vistazo en binario:
PC
6
PC
5
PC
4
PC
3
PC
2
PC
1
PC
0
0 1 0 0 0 0 0
. Básicamente establecemos un valor de 1 a la posición asociada con nuestro pin de
destino
Para configurar todos los pines de salida, el valor hubiera sido: DDRC = 0x7F (en
binario: 1111111)
Para controlar otros puertos (B o D) que puede utilizar DDRB o DDRD de una manera
similar. En este punto, usted debe consultar la hoja de datos del microcontrolador
disponible aquí .
Lo siguiente que hay que hacer es encender el LED y fuera del código. Queremos que
esta en un bucle infinito, así que aquí está el enfoque:
DDRC = 0x20; //PC5 set to output while (1) //forever { PORTC = 0x20; //set PC5 on . again computed in binary delay_cycles(1000); //a short delay to keep led on PORTC = 0; //all C Pins off delay_cycles(1000); //a short delay to keep led off }
Un enfoque aún mejor que no interfiere con la configuración de otros pines PORTC sería:
DDRC |= 0x20; while(1) { PORTC |= 0x20; //set 1 on first position, or simpler: PORTC = 0x20; waitd();
PORTC &= 0x5F; //remove position 5 value, or simpler: PORTC = 0x0; waitd(); }
Después de que el código está listo, pulse Construir en el menú. Producirá un archivo hex., En este caso testled.hex
After the code is ready, press Build in the menu. It will produce a .hex file, in this case testled.hex
Un programador paralelo para la ATMega 8
Un programador es una interfaz de hardware que se conecta el micro controlador a un
PC.
En el PC se crea un programa de software, que luego se puede cargar en el ATMega8
utilizando el programador. Es muy sencillo.
Para facilitar las cosas, voy a describir cómo se puede crear un programador paralelo,
pero esto va a funcionar para usted si su computadora tiene un puerto paralelo ya que
es donde tiene que conectarlo. Si no lo hace, usted puede comprar un adaptador
USB2Parallel o construir un programador USB directamente (puede usar este )
Utilice cualquiera de las tres variantes de abajo. Mi primer programador era un
programador BSD paralelo.
Programador paralelo BSD
El primero se llama bsd, probablemente porque estaba disponible originalmente en el
programa AVRprog para FreeBSD.
Para este programador paralelo se necesita un conector de 25 pines LPT y 4x470
ohmios resistencias. Esta es la manera que usted necesita para hacer las conexiones
para el programador paralelo tipo BSD: Así es como me las he arreglado para
ajustarlo: . Para descargar el archivo HEX generado previamente a la atmega8,
utilizaremos nuestro programador BSD paralelo. Ir a la carpeta WinAVR, y entrar en la
subcarpeta BIN. . Copia testled.hex aquí y asegúrese de que su programador paralelo
está conectadoEscriba este comando: avrdude-p-c atmega8 bsd-U del flash: w:
testled.hex: i
To download the previously generated .HEX file to the atmega8, we will use our Parallel BSD programmer. Go to WinAVR folder, and enter the BIN subfolder. Copy testled.hex here and make sure your parallel programmer is connected.Type in this command:avrdude -p atmega8 -c bsd -U flash:w:testled.hex:i
programador paralelo STK200Esta fue mi segunda generación. Se comporta como el AVR Starter Kit STK200, y también es compatible con el software PonyProg . El diseño es simple: Para escribir el hexágono que puede utilizar: avrdude-p-c atmega8 STK200-U del flash: w: testled.hex: i
DAPA programador paraleloI más reciente construido esto, ya que no mucho tiempo después de que el STK200 me mudé a los programadores usb. Dapa, lo que significa directo AVR cable Acceso paralelo, se puede ver a continuación: El comando para escribir el hexágono es: avrdude-p-c atmega8 DAPA-U del flash: w: testled.hex: i
Los resultados:
Después de la orden avrdude, si todo va bien, verá una barra de progreso que indica la
carga de código para el microcontrolador:
Tan pronto como el software está cargado, se ejecuta automáticamente el código. A
veces puede que tenga que desconectar el programador paralelo después de
que el código se ha subido!
Aquí está mi ATMega8 micro controlador y varios leds conectados a múltiples pines de
E / S:
Espero que encuentre útil. Nuestro agradecimiento a
elforum.ro and the good people thereSociety of Robots tutorialsCrazyTB's blog
Yo ya he construido una interfaz LCD HD44780 4bit muy estable y flexible para el
ATMega8, así que estad atentos para el próximo artículo.
Puede descargar el código aquítestled.zip