Avr

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

Views 194 Downloads 7 File size 170KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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) • 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) 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 microcontroladores Los 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 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 nuestro medio.

algunos

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

microcontroladores PIC16F877 33 8K 368 BYTE 256 BYTE 2 10BITS 2 1 SI SI 1 1 1 F/4 4

utilizados

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

en

Y podríamos innumerar más características 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 tecnología 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 fácil entendimiento y aplicación. 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 matemáticos: Suma: a=b+c Resta: a=b-c Multiplicación: a=b*c División: X = a \ b : residuo = a MOD b Operadores de relación =

< > =

igual X no es igual X menor que X mayor que X menor igual mayor igual

=Y Y Y X = Y

Operadores lógicos NOT complemento lógico AND Conjunción OR Disyunción 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

tiempo en segundos tiempo en milisegundos tiempo en microsegundos

SET RESET

poner un 1 al pin 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 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 ‘posición 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 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

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,15 lcd 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" $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 Analógico= 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. COMUNICACIÓN RS232 La 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 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

tecla tecla tecla tecla

= = = =

0 1 2 3

Reset X2 If Y1 = 0 If Y2 = 0 If Y3 = 0 If Y4 = 0 Set X2

then then then then

tecla tecla tecla tecla

= = = =

4 5 6 7

Reset X3 If Y1 = 0 If Y2 = 0 If Y3 = 0 If Y4 = 0 Set X3

then then then then

tecla tecla tecla tecla

= = = =

8 9 10 11

Reset X4 If Y1 = 0 If Y2 = 0 If Y3 = 0 If Y4 = 0 Set X4

then then then then

tecla tecla tecla tecla

= = = =

12 13 14 15

Utilizamos un eliminador de rebotes por software: If tecla