You are on page 1of 15

MICROCONTROLADORES AVR ATMEGA8/16 AT89C51 PIC16F877A PIC 18F2550 PROGRAMACION EN BASIC PROGRAMACION EN SYSTEM

1. Introduccin 2. Arquitectura 3. Software de programacin BASCOM AVR 4. Software de simulacin, esquemtico, PCB(PROTEUS) 5. Temas: manejo de entradas salidas(pulsadores, leds, buzzer. display de siete segmentos(caja turno) display matricial 8x8(mensajero1) temporizador programable calculadora basica display HDSP-2112(mensajero2) control de acceso alarma digital control de temperatura utilizando el conversor analgico a digital y el circuito integrado LM35 de National Semiconductor voltmetro digital(adc interno) voltmetro digital(adc0831) termmetro digita(ds1820) medidor de temperatura humedad relativa(SHT15) real time, horario escolar (DS1307) comunicacin RS232, RS485(programa en Visual Basic) comunicacin SPI, shift(74HC595) motores pasos motores de corriente continua(PWM) motores de induccin monofasicos. control de intensidad luminosa(control de fase) encoder de posicin fuente digital control de acceso con tarjeta RF(formato wiengan) manejo de mdulos RF433(control remoto) Temporizador Y contador interno(fruencmetro) Generador de onda cuadrada(notas musicales) potencimetro digital(MPC401010) ibutton(ds1991) data flash(AT45DB161) grabador reproductor de voz ISD2560 generador de audio wav

generador de funciones control va telefnica sensor ultrasonico lcd grafico(trazador de curvas) lcd grafico Nokia 3130 lcd grafico color Nokia 6100 protocolo MODBUS MMC(memory multimedia card) USB (universal serial bus) TCP/IP GSM HDD(Disco duro) GPS Bluetooth Biometricos

1. introduccin Los microcontroladores se han ido introduciendo en nuestro medio por el avance tecnolgico que el pas ha alcanzado en los ltimos aos. Con lo cual me siento agradecido por el inters de ustedes sobre el tema el cual voy a tratar de ser lo ms explicito posible. Un comentario adicional es la siguiente frase que recuerdo y que un da me hizo pensar de otra manera respecto al conocimiento. no es mas sabio el que tiene mayor conocimiento, sino que hace con el conocimiento 2. introduccin a los microcontroladores Los microcontroladores son dispositivos integrados en un solo chip de entradas salidas las cuales pueden ser programadas segn la necesidad.

La arquitectura de un microcontrolador normalmente es la siguiente: unidad central de proceso memoria RAM de datos voltil memoria EEPROM de datos no voltil memoria FLASH de programa entradas/salidas

puerto serial conversores analgico digital conversores digital analgico temporizadores PWM modulacin de ancho de pulso RTC reloj en tiempo real SPI I2C USB Y otros manejadores de perifricos

Existen dos tipos de artiquitecturas: arquitectura harvard con tecnologa RISC (reduccin de instrucciones) y la arquitectura Vonn Neumann con tecnologa CISC (instrucciones complejas). La tecnologa RISC se basa en la arquitectura Harvard, la cual el dato mas la instruccin ingresan en forma paralela al bus de datos. Utilizada en los computadores MAC. La tecnologa CISC se basa en la arquitectura Von Neumann, la cual enva el dato luego la instruccin e ingresan al bus de datos en forma serial. Utilizados en los computadores PC. Con lo cual se saca una conclusin importante, que los microcontroladores con arquitectura Harvard sern los ms utilizados de hoy en adelante por ser ms rpidos en procesar la informacin. Algo en particular es que los primeros microcontroladores con memoria flash son los AVR de ATMEL. Caracterstica de nuestro medio. algunos microcontroladores PIC16F877 33 8K 368 BYTE 256 BYTE 2 10BITS 2 1 SI SI 1 1 1 F/4 4 utilizados en

AT89S51 I/O 32 FLASH 4K RAM 128 BYTE EEPROM ND PWM ND ADC ND TIMER 8BITS ND TIMER 16BITS 2 PRESCALER ND IN CIRCUIT SI UART 1 SPI 1 I2C ND CM F/12 1K$ 1

ATMEGA16 32 16 K 1 KBYTE 512 BYTE 4 10 BITS 2 1 SI SI 1 1 1 F 3

Y podramos innumerar ms caractersticas para poder decidir el uso del microcontrolador que se adecue a nuestro proyecto. BASCOM AVR Software desarrollado por la empresa MCS para programar los microcontroladores AVR de la empresa ATMEL. Los cuales son de tecnologa RISC. El programa BASCOM AVR tiene el objetivo de realizar sus proyectos de microcontroladores en un menor tiempo posible con lo cual utiliza la herramienta Basic por su fcil entendimiento y aplicacin. Forma de definir una variable: Dim A as bit Byte Word Long Integer Single String Array Double 0a1 0 a 255 2^8 0 a 65535 2^16 -2147483648 a 2147483647 (2^32)/2 -32768 a 32767 (2^16)/2 1.5 x 10^45 a 3.4 x 10^38 Cadena de caracteres maximo 254 matriz 65535 5.0 x 10^324 a 1.7 x 10^308

Operadores matemticos: Suma: a=b+c Resta: a=b-c Multiplicacin: a=b*c Divisin: X = a \ b : residuo = a MOD b Operadores de relacin = <> < > <= >= igual X no es igual X menor que X mayor que X menor igual mayor igual =Y <> Y <Y >Y X <= Y X >= Y

Operadores lgicos NOT complemento lgico AND Conjuncin OR Disyuncin XOR or exclusive Funciones Basic.

Do LOOP Do inicio del lazo instrucciones Loop regreso al inicio del salto DO LOOP-UNTIL Do A=a+1 Loop until a=2 Cuando a=2 entonces sale del lazo FOR NEXT For a=inicio to fin step pasos instrucciones Next a SELECT CASE Select case variable Case 1:instruccion Case 2:instruccion Case n:instruccion End select WHILE WEND While condicion Instrucciones Wend WAIT WAITMS WAITUS SET RESET tiempo en segundos tiempo en milisegundos tiempo en microsegundos poner un 1 al pin poner un 0 al pin

Las demas instrucciones las explicaremos con los siguientes programas. Configuracin del cristal: $crystal=1000000 (en hertz) Configuracin del puerto serial: $baud=2400 Configuracin de los pines: Los pines del microcontrolador avr tienen 3 registros los cuales son: Registro ddr, port, pin. El registro ddr nos configura al pin como entrada salida, port es el registro de salida y pin es el registro de entra. Ddrb.0=0 entrada alta impedancia Portb.0=0

Ddrb.0=0 entrada pull up Portb.0=1 Ddrb.0=1 salida a cero 20 mA Portb.0=0 Ddrb.0=1 salida a uno 20 mA Portb.0=1 USO DEL LCD 16x2 Primeramente abrimos el BASCOM AVR y entramos en option, compiler, lcd como se muestra en la figura 1

Para poder definir el lcd y los pines a ser conectados en el hardware como se muestra en la figura 2

Ejemplo para manejar un LCD 16x2 defino la velocidad del cristal $crystal=1000000 defino la variable A Dim A as byte borrar pantalla Cls apago el cursor Cursor off inicio lazo infinito Do posicin fila 1, columna 1 Locate 1,1 escribo en el lcd Lcd juan galarza 2006 posicion fila 2, columna 1 Locate 2,1 Lcd apm atmel Espero 2 segundos

Wait 2 enciende el cursor Cursor on Wait 2 tilila cursor Cursor blink Wait 2 deja de titilar cursor Cursor noblink Wait 2 apago el cursor Cursor off hago un lazo finito de 1 a 16 For A=1 to 16 desplazo una localidad al lcd hacia la derecha Shiftlcd right,1 Wait 1 Next For a=1 to 16 desplazo una localidad al lcd hacia la izquierda Shiftlcd left,1 Next Loop

Para generar un carcter que no exista en el ascci del LCD se procede de la siguiente manera. Ingresamos a tools, lcd designer y generamos el smbolo que deseamos, como se muestra en la figura 3

Y ponemos uno o ceros para dar la forma como se indica en la figura 4

Con lo cual se genera el cdigo deflcdchar, para visualizar en el LCD utilizamos la instruccin: Locate 1,15 lcd char(0) Y se imprime en el LCD en la posicin fila 1 columna 15 el carcter generado.

CONFIGIGURACION DE LOS ADC(10 bits 0 - 1023) Utilizamos la siguiente configuracin: Siempre y cuando el microcontrolador tenga conversores. $regfile = "m8def.dat" $crystal = 1000000 Config Adc =Single,Prescaler=Auto,reference=internal/external Start Adc inicio de conversion de los ADC Dim analogico As Word, canal As Byte Channel = 0 Do Analgico= Getadc(channel) Locate 1,1 Lcd "Canal " ; Canal ; " valor " ; analogico; Incr Canal If Canal > 7 Then Canal = 0 Wait 2 Loop End 'INTERNAL : voltaje de referencia interno es 2.56 V

EXTERNAL: voltaje que se encuentra en el pin VREF de 0 a 5V. COMUNICACIN RS232 La funcin de envo es print, y la de recepcin es inkey, input. BARRIDO DE TECLADO: Utilizando un teclado matricial, que consiste en pulsadores unidos en forma horizontal y vertical como se muestra en la siguiente figura.

Para la lectura se procede de la siguiente manera: definimos el puerto por ejemplo el portb de forma que los primeros 4 bits sean salidas a 1 y los otro 4 bits ms significativos sean entradas pull up. DDRB=&B00001111 PORTB=&B11111111 Luego designamos sobrenombres a los pines: X1 alias portb.0 X2 alias portb.1 X3 alias portb.2 X4 alias portb.3 Y1 alias pinb.4 Y2 alias pinb.5 Y3 alias pinb.6 Y4 alias pinb.7 Por ultimo barremos las filas para leer las columnas: Dim tecla as byte do

Tecla=16 Reset X1 If Y1 = 0 then If Y2 = 0 then If Y3 = 0 then If Y4 = 0 then Set X1 Reset X2 If Y1 = 0 If Y2 = 0 If Y3 = 0 If Y4 = 0 Set X2 Reset X3 If Y1 = 0 If Y2 = 0 If Y3 = 0 If Y4 = 0 Set X3 Reset X4 If Y1 = 0 If Y2 = 0 If Y3 = 0 If Y4 = 0 Set X4

tecla tecla tecla tecla

= = = =

0 1 2 3

then then then then

tecla tecla tecla tecla

= = = =

4 5 6 7

then then then then

tecla tecla tecla tecla

= = = =

8 9 10 11

then then then then

tecla tecla tecla tecla

= = = =

12 13 14 15

Utilizamos un eliminador de rebotes por software: If tecla<16 then waitms 200 Locate 1,1 Lcd tecla;

loop End fin de programa PROTEUS: Es un programa desarrollado para realizar esquemticos, simulacin, y pcb.

MANEJO DE ENTRADAS PARLANTES, BUZZER) Blink.bas $crystal = 1000000 Ddrb.2 = 1 Portb.2 = 0 led Alias Portb.2 Do Set Led Wait 1 Reset Led Wait 1

SALIDAS(PULSADORES,

LEDS,

'cristal a ser ultilizado 'activo Portb.2 como salida a 0 'sobrenombre del Portb.2

'pone 1 al pin led 'espera de 1 segundo 'pone 0 al pin led 'espera de 1 segundo

Loop

Led_sw.bas

Los cdigos fuentes y diagrama circuital se encuentran en formato .bas y .dsn respectivamente adjunto en el cd. Mayor informacin no dude en enviarme al email. Gracias por su acogida sus sugerencias sern bien recibidas.

ALL POWER MICROCONTROLLER Juan Galarza Jefe de diseo Email: juang86@hotmail.com