Avr

16
MICROCONTROLADORES AVR ATMEGA8/16 AT89C51 PIC16F877A PIC 18F2550 PROGRAMACION EN BASIC PROGRAMACION EN SYSTEM 1. Introducción 2. Arquitectura 3. Software de programación BASCOM AVR 4. Software de simulación, esquemático, 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 analógico a digital y el circuito integrado LM35 de National Semiconductor voltímetro digital(adc interno) voltímetro digital(adc0831) termómetro digita(ds1820) medidor de temperatura humedad relativa(SHT15) real time, horario escolar (DS1307) comunicación RS232, RS485(programa en Visual Basic) comunicación SPI, shift(74HC595) motores pasos motores de corriente continua(PWM) motores de inducción monofasicos. control de intensidad luminosa(control de fase) encoder de posición fuente digital control de acceso con tarjeta RF(formato wiengan) manejo de módulos RF433(control remoto) Temporizador Y contador interno(fruencímetro) Generador de onda cuadrada(notas musicales) potenciómetro digital(MPC401010) ibutton(ds1991)

Transcript of Avr

Page 1: Avr

MICROCONTROLADORES AVR ATMEGA8/16 AT89C51 PIC16F877A PIC 18F2550PROGRAMACION EN BASIC

PROGRAMACION EN SYSTEM

1. Introducción2. Arquitectura3. Software de programación BASCOM AVR4. Software de simulación, esquemático, 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 analógico a

digital y el circuito integrado LM35 de National Semiconductor

voltímetro digital(adc interno) voltímetro digital(adc0831) termómetro digita(ds1820) medidor de temperatura humedad relativa(SHT15) real time, horario escolar (DS1307) comunicación RS232, RS485(programa en Visual Basic) comunicación SPI, shift(74HC595) motores pasos motores de corriente continua(PWM) motores de inducción monofasicos. control de intensidad luminosa(control de fase) encoder de posición fuente digital control de acceso con tarjeta RF(formato wiengan) manejo de módulos RF433(control remoto) Temporizador Y contador interno(fruencímetro) Generador de onda cuadrada(notas musicales) potenciómetro digital(MPC401010) ibutton(ds1991) data flash(AT45DB161) grabador reproductor de voz ISD2560 generador de audio wav generador de funciones control vía telefónica sensor ultrasonico lcd grafico(trazador de curvas)

Page 2: Avr

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. introducción

Los microcontroladores se han ido introduciendo en nuestro medio por el avance tecnológico que el país ha alcanzado en los últimos años. Con lo cual me siento agradecido por el interés de ustedes sobre el tema el cual voy a tratar de ser lo más explicito posible.Un comentario adicional es la siguiente frase que recuerdo y que un día 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. introducción a los microcontroladoresLos microcontroladores son dispositivos integrados en un solo chip de entradas salidas las cuales pueden ser programadas según la necesidad.

La arquitectura de un microcontrolador normalmente es la siguiente:

unidad central de proceso memoria RAM de datos volátil memoria EEPROM de datos no volátil memoria FLASH de programa entradas/salidas puerto serial conversores analógico digital conversores digital analógico temporizadores PWM modulación de ancho de pulso RTC reloj en tiempo real

Page 3: Avr

SPI I2C USB Y otros manejadores de periféricos

Existen dos tipos de artiquitecturas: arquitectura harvard con tecnología RISC (reducción de instrucciones) y la arquitectura Vonn Neumann con tecnología CISC (instrucciones complejas).

La tecnología RISC se basa en la arquitectura Harvard, la cual el dato mas la instrucción ingresan en forma paralela al bus de datos. Utilizada en los computadores MAC.

La tecnología CISC se basa en la arquitectura Von Neumann, la cual envía el dato luego la instrucción e ingresan al bus de datos en forma serial. Utilizados en los computadores PC. Con lo cual se saca una conclusión importante, que los microcontroladores con arquitectura Harvard serán los más utilizados de hoy en adelante por ser más rápidos en procesar la información. Algo en particular es que los primeros microcontroladores con memoria flash son los AVR de ATMEL.

Característica de algunos microcontroladores utilizados en nuestro medio.

AT89S51 PIC16F877 ATMEGA16 I/O 32 33 32FLASH 4K 8K 16 KRAM 128 BYTE 368 BYTE 1 KBYTEEEPROM ND 256 BYTE 512 BYTEPWM ND 2 4ADC ND 10BITS 10 BITSTIMER 8BITS ND 2 2 TIMER 16BITS 2 1 1PRESCALER ND SI SIIN CIRCUIT SI SI SIUART 1 1 1SPI 1 1 1I2C ND 1 1CM F/12 F/4 F1K$ 1 4 3

Y podríamos innumerar más características para poder decidir el uso del microcontrolador que se adecue a nuestro proyecto.

BASCOM AVRSoftware desarrollado por la empresa MCS para programar los microcontroladores AVR de la empresa ATMEL. Los cuales son de tecnología RISC. El programa BASCOM AVR tiene el objetivo de realizar sus proyectos de microcontroladores en un menor tiempo posible con

Page 4: Avr

lo cual utiliza la herramienta Basic por su fácil entendimiento y aplicación.

Forma de definir una variable:

Dim A as bit 0 a 1 Byte 0 a 255 2^8

Word 0 a 65535 2^16Long -2147483648 a 2147483647 (2^32)/2Integer -32768 a 32767 (2^16)/2Single 1.5 x 10^–45 a 3.4 x 10^38String Cadena de caracteres maximo 254Array matriz 65535Double 5.0 x 10^–324 a 1.7 x 10^308

Operadores matemáticos:

Suma: a=b+cResta: a=b-cMultiplicación: a=b*cDivisión: X = a \ b : residuo = a MOD b

Operadores de relación = igual X = Y <> no es igual X <> Y < menor que X < Y > mayor que X > Y <= menor igual X <= Y >= mayor igual X >= Y

Operadores lógicos

NOT complemento lógicoAND Conjunción OR Disyunción XOR or exclusiveFunciones Basic.

Do LOOP

Do ’inicio del lazoinstruccionesLoop ’regreso al inicio del salto

DO LOOP-UNTILDoA=a+1Loop until a=2 ’Cuando a=2 entonces sale del lazo

Page 5: Avr

FOR NEXTFor a=inicio to fin step pasos instruccionesNext a

SELECT CASESelect case variable Case 1:instruccion Case 2:instruccion Case n:instruccionEnd select

WHILE WENDWhile condicionInstruccionesWend

WAITtiempo en segundosWAITMS tiempo en milisegundosWAITUS tiempo en microsegundos

SET poner un 1 al pinRESET poner un 0 al pin

Las demas instrucciones las explicaremos con los siguientes programas.

Configuración del cristal: $crystal=1000000 (en hertz)Configuración del puerto serial: $baud=2400

Configuración 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 impedanciaPortb.0=0

Ddrb.0=0 entrada pull upPortb.0=1

Ddrb.0=1 salida a cero 20 mAPortb.0=0

Ddrb.0=1 salida a uno 20 mAPortb.0=1

USO DEL LCD 16x2

Page 6: Avr

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

Page 7: Avr

‘defino la velocidad del cristal$crystal=1000000‘defino la variable ADim A as byte‘borrar pantallaCls‘apago el cursorCursor off‘inicio lazo infinitoDo‘posición fila 1, columna 1Locate 1,1‘escribo en el lcdLcd “juan galarza 2006”‘posicion fila 2, columna 1Locate 2,1Lcd “apm atmel”Espero 2 segundosWait 2‘enciende el cursorCursor onWait 2‘tilila cursorCursor blinkWait 2‘deja de titilar cursorCursor noblinkWait 2‘apago el cursorCursor off‘hago un lazo finito de 1 a 16For A=1 to 16‘desplazo una localidad al lcd hacia la derecha Shiftlcd right,1 Wait 1NextFor a=1 to 16‘desplazo una localidad al lcd hacia la izquierda Shiftlcd left,1NextLoop

Para generar un carácter que no exista en el ascci del LCD se procede de la siguiente manera. Ingresamos a tools, lcd designer y generamos el símbolo que deseamos, como se muestra en la figura 3

Page 8: Avr

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

Con lo cual se genera el código deflcdchar, para visualizar en el LCD utilizamos la instrucción:Locate 1,15lcd char(0)Y se imprime en el LCD en la posición fila 1 columna 15 el carácter generado.

CONFIGIGURACION DE LOS ADC(10 bits 0 - 1023)Utilizamos la siguiente configuración:Siempre y cuando el microcontrolador tenga conversores.$regfile = "m8def.dat"

Page 9: Avr

$crystal = 1000000Config Adc =Single,Prescaler=Auto,reference=internal/externalStart Adc ‘inicio de conversion de los ADCDim analogico As Word, canal As ByteChannel = 0DoAnalógico= Getadc(channel)Locate 1,1Lcd "Canal " ; Canal ; " valor " ; analogico;” ”Incr Canal If Canal > 7 Then Canal = 0Wait 2LoopEnd

'INTERNAL : voltaje de referencia interno es 2.56 V‘EXTERNAL: voltaje que se encuentra en el pin VREF de 0 a 5V.

COMUNICACIÓN RS232La función de envío es print, y la de recepción 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 más significativos sean entradas pull up. DDRB=&B00001111

Page 10: Avr

PORTB=&B11111111

Luego designamos sobrenombres a los pines:X1 alias portb.0X2 alias portb.1X3 alias portb.2X4 alias portb.3Y1 alias pinb.4Y2 alias pinb.5Y3 alias pinb.6Y4 alias pinb.7

Por ultimo barremos las filas para leer las columnas:Dim tecla as bytedoTecla=16Reset X1If Y1 = 0 then tecla = 0If Y2 = 0 then tecla = 1If Y3 = 0 then tecla = 2If Y4 = 0 then tecla = 3Set X1

Reset X2If Y1 = 0 then tecla = 4If Y2 = 0 then tecla = 5If Y3 = 0 then tecla = 6If Y4 = 0 then tecla = 7Set X2

Reset X3 If Y1 = 0 then tecla = 8If Y2 = 0 then tecla = 9If Y3 = 0 then tecla = 10If Y4 = 0 then tecla = 11Set X3

Reset X4If Y1 = 0 then tecla = 12If Y2 = 0 then tecla = 13If Y3 = 0 then tecla = 14If Y4 = 0 then tecla = 15Set X4

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

Page 11: Avr

loopEnd ‘fin de programa

PROTEUS:Es un programa desarrollado para realizar esquemáticos, simulación, y pcb.

MANEJO DE ENTRADAS SALIDAS(PULSADORES, LEDS, PARLANTES, BUZZER)

Blink.bas$crystal = 1000000 'cristal a ser ultilizado

Ddrb.2 = 1 'activo Portb.2 como salida a 0Portb.2 = 0

Page 12: Avr

led Alias Portb.2 'sobrenombre del Portb.2

Do

Set Led 'pone 1 al pin ledWait 1 'espera de 1 segundoReset Led 'pone 0 al pin ledWait 1 'espera de 1 segundo

Loop

Led_sw.bas

Page 13: Avr

Los códigos fuentes y diagrama circuital se encuentran en formato .bas y .dsn respectivamente adjunto en el cd.Mayor información no dude en enviarme al email. Gracias por su acogida sus sugerencias serán bien recibidas.

Page 14: Avr

ALL POWER MICROCONTROLLERJuan GalarzaJefe de diseño Email: [email protected]