Está en la página 1de 52

Sitio de descarga:

www.mcselec.com
BASCOM-AVR es el COMPILADOR BASIC original para la familia AVR .
Est diseado para ejecutarse en W98/NT/W2000/XP/VISTA y Win7

Beneficios Clave
Estructurado en BASIC con etiquetas.
Programacin estructurada con IF-THEN-ELSE-END IF, DO-LOOP, WHILE-
WEND, SELECT-CASE.
Cdigo mquina rpida en lugar del cdigo interpretado.
Las variables y las etiquetas pueden ser tan largos como 32 caracteres.
Bit, Byte, Integer, Word, Long, Single , Double y las variables String.
Gran conjunto de funciones trigonomtricas de punto flotante. Fecha y Hora
y funciones de clculo.
Los programas compilados trabajan con todos los microcontroladores AVR
que tienen memoria interna.
Comandos especiales para pantallas-LCD, chips I2C y chips 1Wire , PC
keyboad, telcados matriciales, recepcin RC5, software UART, SPI, LCD
grfico, RC5 envo IR, RC6 o Sony cdigo. TCP / IP con chip W3100A.
Las variables locales, funciones de usuario, soporte de la biblioteca.
Integrado simulador para la prueba .
AVR:
AVR es una familia de microcontroladores de 8 bits con una amplia
gama de variantes
diferentes en:
Tamao del programa de la memoria (flash)
Tamao de la memoria EEPROM
Nmero de pines I / O
Nmero de servicios tales como caractersticas de los chips UART y
ADC
Paquete de formularios

El microcontrolador mas pequeo es el ATTINY11 con 1k flash y 6


pines I / O. El
Microcontrolador mas grande es ATMEGA256x con 256k flash, 54
pines I/O

Todos los controladores tienen el AVR RISC mismo como conjunto de


instrucciones,
QUE NECESITO PARA
EMPEZAR?
TENER INSTALADO BASCOM
AVR EN LA PC
PROGRAMADOR CON SU
SOFTWARE
TENER INSTALADO
PROGRAMADOR O GRABADOR
ATMEGA 48

28 PINES, 3 PUERTOS B,C,D PUEDEN SER USADOS COMO


ENTRADA O SALIDA.
EL PUERTO C POSEE CONVERSORES ANALOGO DIGITALES
4 KBYTES DE MEMORIA FLASH O MEMORIA DE DATOS
MEMORIA EEPROM DE 256 BYTES
6 CANALES PWM
OSCILADOR INTERNO DE 8MHZ
RTC INTERNO CON CRISTAL DE 32768HZ
VOLTAJE DE OPERACIN DE 2,7V A 5,5V
ATMEGA 8

28 PINES, 3 PUERTOS B,C,D PUEDEN SER USADOS COMO


ENTRADA O SALIDA.
EL PUERTO C POSEE 6 CONVERSORES ANALOGO DIGITALES
8 KBYTES DE MEMORIA FLASH O MEMORIA DE DATOS
MEMORIA EEPROM DE 512 BYTES
6 CANALES PWM
OSCILADOR INTERNO DE 1MHZ, 2MHZ, 4MHZ, 8MHZ
RTC INTERNO CON CRISTAL DE 32768HZ
VOLTAJE DE OPERACIN DE 2,7V A 5,5V
ATMEGA 16

40 PINES, POSEE 4 PUERTOS A,B,C,D PUEDEN SER USADOS


COMO ENTRADA O SALIDA.
EL PUERTO A POSEE 8 CONVERSORES ANALOGO DIGITALES
16 KBYTES DE MEMORIA FLASH O MEMORIA DE DATOS
MEMORIA EEPROM DE 512 BYTES
4 CANALES PWM
OSCILADOR INTERNO DE 1MHZ, 2MHZ, 4MHZ, 8MHZ
RTC INTERNO CON CRISTAL DE 32768HZ
VOLTAJE DE OPERACIN DE 2,7V A 5,5V
ATMEGA 164P

40 PINES, POSEE 4 PUERTOS A,B,C,D PUEDEN SER USADOS


COMO ENTRADA O SALIDA.
EL PUERTO A POSEE 8 CONVERSORES ANALOGO DIGITALES
16 KBYTES DE MEMORIA FLASH O MEMORIA DE DATOS
MEMORIA EEPROM DE 512 BYTES
4 CANALES PWM
OSCILADOR INTERNO DE 1MHZ, 2MHZ, 4MHZ, 8MHZ
RTC INTERNO CON CRISTAL DE 32768HZ
INTERRUPCIONES EN TODOS LOS PUERTOS
2 PUERTOS USART
CONEXIONES
BASICAS

FUENTE 5V DC

GND
VCC
CONEXIONES AL
PROGRAMADOR
PROGRAMADOR
AVR
MEGATRONICA

GND
VCC
RST
SCK
MIS
MO
S
FUSEBITS
ATMEGA48: DESHABILITAR DIVIDE CLOCK BY 8
SELECCIONAR EL VALOR DEL OSCILADOR

ATMEGA8: ESCOGER EL VALOR PARA EL OSCILADOR


DESHABILITAR WATCH DOG

ATMEGA16: SELECCIONAR EL VALOR DEL OSCILADOR


DESHABILITAR EL JTAG

ATMEGA 164: DESHABILITAR EL JTAG


DESHABILITAR DIVIDE CLOCK BY 8
SELECCIONAR EL VALOR DEL OSCILADOR
INSTRUCCIONES
BASICAS
$regfile direcciona el microcontrolador que se utilizar
direcciona el microcontrolador que se utilizar
$crystal sirve para especificar la frecuencia de
oscilacin
config configura un pin o puerto como entrada o salida
toggle complementa el estado anterior de un var o
puerto
Wait genera un retardo en segundos
Waitms genera un retardo en milisegundos
Waitus genera un retardo en microsegundos
Dim sirve ara dimensionar el tipo de variable
Alias Sirve para dar un nombre general a un puerto o
pin
Ddr configura las resistencias pull-ups internas
SIMBOLOS
OPERADORES MATEMATICOS
OPERADORES
OPERADORES MATEMATICOS
SUMA: A=2 + B
RESTA: A=B - C
MULTIPLICACION: A=B * 5
DIVISION: X=A / B
RESIDUO: A MOD B

OPERADORES DE RELACION
IGUAL T = 5
NO ES IGUAL T <> 5
MENOR QUE T <5
MAYOR QUE T>5
MENOR IGUAL T <= 5
MAYOR IGUAL T >= 5

OPERADORES LOGICOS
NOT NEGACION
AND CONJUNCION
OR DISYUNCION
XOR OR EXCLUSIVA
REPRESENTACION LOGICA
DIGITAL
existen varias formas de escribir
digitalmente ya sea en decimal, binario o
hexadecimal:

Portb=&hf9 numero hexadecimal


Porta=&b0001010 numero binario
Portc=255 numero decimal
ESTRUCTURA DE UN PROGRAMA EN BASIC

CONFIGURACION Y
DIMENSIONAMIENTO

PROGRAMA
PRINCIPAL

SUBRUTINA
S
Un led (de la sigla inglesa LED: Light-Emitting Diode:
diodo emisor de luz, tambin diodo luminoso) .
PROYECTO 1
PARPADEO DE UN LED

compilamos
PROYECTO 1
PARPADEO DE UN LED
PROYECTO 1
PARPADEO DE UN LED
PROYECTO 2
SEMAFORO1
PROYECTO 3
ESCRITURA EN EL PUERTO
PROYECTO 4
SEMAFORO 2 INTERSECCIONES
DISPLAY 7 SEGMENTOS ANODO
COMUN

El display de 7 segmentos o
visualizador de 7 segmentos es un
componente que se utiliza para la
representacin de nmeros en
muchos dispositivos electrnicos
debido en gran medida a su
simplicidad
PROYECTO 5
CONTADOR AUTOMATICO CICLICO 0-9
PULSADORES

Un botn o pulsador es un dispositivo utilizado


para activar alguna funcin. Los botones son de
diversa forma y tamao y se encuentran en todo
tipo de dispositivos, aunque principalmente en
aparatos elctricos o electrnicos.
PROYECTO 6
ENCENDIDO Y APAGADO DE LED CON PULSADOR
PROYECTO 7
LECTURA Y ESCRITURA EN UN PUERTO
PROYECTO 8
CONTADOR 0-9 CON PULSADOR

DISEE UN PROGRAMA QUE AL PRESIONAR EL


PULSADOR SE INCREMENTE EL NUMERO EN EL
DISPLAY DE UNO EN UNO , MEDIANTE LA
UTILIZACION DE LA INSTRUCCIN IF, ADEMAS
DECODIFICADOR 74LS47
EL C.I. 74LS47 ES UN DECODIFICADOR DE BINARIO A
7SEGMENTOS ANODO COMUN.
SE INGRESA UN NUMERO BINARIO DE 4 BITS POR LAS
ENTRADAS A,B,C,D Y ESTE ENCIENDE LOS LEDS NECESARIOS
PARA VISUALIZAR CORRECTAMENTE EL NUMERO EN EL DISPLAY.
PROYECTO 9
CONTADOR 0-9 CON 74LS47 Y PULSADOR

DISEE UN PROGRAMA QUE AL PRESIONAR EL


PULSADOR SE INCREMENTE EL NUMERO EN EL
DISPLAY DE UNO EN UNO , MEDIANTE LA
UTILIZACION DE LA INSTRUCCIN IF, ADEMAS
CONTROLAR QUE EL NUMERO MAXIMO SEA EL
PROYECTO 10
LETRERO CON DISPLAY

LA INSTRUCCIN LOOKUP SIRVE PARA OBTENER UN VALOR CONSTANTE DE


UNA TABLA, ESTO LO HACE SEGN EL NUMERO DE VECES QUE REPITA LA
INSTRUCCIN FOR NEXT.
TRANSISTORES
LOS TRANSISTORES PUEDEN FUNCIONAR COMO
AMPLIFICADORES O EN CORTE Y SATURACION SEGN LA
CONFIGURACION QUE SE DISEE EL CIRCUITO.

PN NP
P N
PROYECTO 11
CONTADOR 0-99 MULTIPLEXADO

DISEE UN PROGRAMA QUE AL PRESIONAR EL


PULSADOR SE INCREMENTE EL NUMERO EN EL
DISPLAY DE UNO EN UNO , MEDIANTE LA
UTILIZACION DE LA INSTRUCCIN IF, ADEMAS
CONTROLAR QUE EL NUMERO MAXIMO SEA EL
MOTOR DC
EL MOTOR DE CORRIENTE CONTINUA CONVIERTE LA ENERGIA
ELECTRICA EN MECANICA, PRODUCIENDO UN MOVIENTO.
SE PUEDE CONTROLAR TANTO LA VELOCIDAD COMO EL
SENTIDO DEL GIRO.
PWM
LA MODULACION DE ANCHO DE PULSO PWM, ES UNA TECNICA
EN LA QUE SE MODIFICA EL CICLO DE TRABAJO DE UNA SEAL
PERIODICA PARA CONTROLAR LA CANTIDAD DE ENERGIA QUE
SE ENVIA A UNA CARGA.
PROYECTO 12
CONTROL DE VELOCIDAD DE MOTOR DC

DISEE UN PROGRAMA QUE CONTROLE LA


VELOCIDAD DE UN MOTOR DC MEDIANTE DOS
PULSADORES, UTILIZANDO LA MODULACION DEL
ANCHO DE PULSO.
PUENTE H
EL CIRCUITO PUENTE H PERMITE LA POLARIZACION DE UN
MOTOR DE TALMANERA QUE PUEDA GIRAR TANTO EN SENTIDO
HORARIO Y COMO EN SENTIDO ANTIHORARIO
PROYECTO 13
CONTROL DE SENTIDO GIRO DE MOTOR DC

DISEE UN PROGRAMA QUE CONTROLE EL SENTIDO


DEL GIRO DE UN MOTOR DC MEDIANTE DOS
PULSADORES Y LA UTILIZACION DEL C.I. L293D.
MOTOR PASO A
PASO
El motor paso a paso est concebido de tal manera que gira un
determinado ngulo proporcional a la "codificacin" de
tensiones aplicadas a sus entradas . La posibilidad de controlar
en todo momento esta codificacin permite realizar
desplazamientos angulares lo suficientemente precisos,
dependiendo el ngulo de paso (o resolucin angular) del tipo
de motor (puede ser tan pequeo como 1,80 hasta unos 15).
PROYECTO 14
CONTROL DE MOTOR PAP UNIPOLAR CON TIP122

DISEE UN PROGRAMA QUE CONTROLE EL SENTIDO


DEL GIRO DE UN MOTOR PASO A PASO UNIPOLAR
MEDIANTE DOS PULSADORES Y LA UTILIZACION DEL
TRANSISTOR TIP 122 EN CORTE Y SATURACION.
SERVOMOTOR
1800u
s

600 2400
us us

HITEC

La instruccin PULSEOUT permite


generar pulsos de diferente ancho de
pulso en MICROSEGUNDOS por un pin de
un puerto:
PULSEOUT PORTB,0,600
PROYECTO 15
CONTROL DE UN SERVOMOTOR

DISEE UN PROGRAMA QUE CONTROLE EL SENTIDO


DEL GIRO DE UN SERVOMOTOR MEDIANTE DOS
PULSADORES.
PROYECTO 16
DISEO DE UN BRAZO ROBOTICO 3 EJES

DISEE UN PROGRAMA QUE CONTROLE EL SENTIDO DEL GIRO DE


LOS 3 SERVOMOTORESQUE GENERAN EL MOVIMIENTO DEL BRAZO
MEDIANTE 6 PULSADORES Y LA UTILIZACION DEL MATERIAL
ACRILICO PARA LA ESTRUCTURA MECANICA.
LCD 2X16
UN DISPLAY DE CRISTAL LIQUIDO, ES UN DISPOSITIVO QUE NOS
PERMITE MOSTRAR INFORMACION ALFANUMERICA O CARACTERS
DISEADOS.

CONFIG LCD=16*2 CONFIGURA LA CLASE DE LCD


Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 ,
Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 CONFIGURAMOS PINES A
UTILIZAR
LOCATE X,Y POSICION DEL CURSOR FILA,COLUMNA
LCD HOLA SIRVE PARA ESCRIBIR TEXTO EN LA
PANTALLA
PROYECTO 17
MANEJO DE LCD 2X16
LCD 2X16
PARA CREAR NUESTROS PROPIOS CARACTERES HACEMOS USO DE
LA HERRAMIENTA LCD DESIGNER EN TOOLS

DISEAMO
S NUESTRA
IMAGEN Y
PRESIONA
MOS OK

REEMPLAZAMOS EL SIMBOLO ? POR UN NUMERO DE 0 AL 7


PROYECTO 18
MANEJO DE LCD 2X16 PERSONAJE
KEYPAD 4X4
EL TECLADO 4X4 ES UNA MATRIZ DE PULSADORES EL CUAL NOS
PERMITE CONTROLAR 16 PULSADORES CON SOLO 8 PINES.
EN BASCOM EXISTE LA FUNCION CONFIG KBD Y GETKBD(), LAS
CUALES NOS PERMITEN REALIZAR LA LECTURA DEL TECLADO 4X4.
PROYECTO 19
LECTURA DE TECLADO 4X4 CON LCD
PROYECTO 20
CERRADURA ELECTRONICA CON CLAVE

DISEE UN PROGRAMA QUE MEDIANTE EL INGRESO POR TECLADO


DE UNA CLAVE DE TRES DIGITOS PUEDA CONTROLAR EL ENCENDIDO
DE UNA CERRADURA ELECTRICA ACTIVADA POR UN RELE, LA CLAVE
INERNA DEL SISTEMA ES 4 9 2.