UNIVERSIDAD POLITECNICA SALESIANA
PRACTICA #1 DE AVR
2010
SISTEMAS MICROPROCESADOS I
CARLOS OCAMPO FERNANDO ITAS 2010-03-26
INGENIERIA ELECTRONICA
TEMA
SISTEMAS MICROPROCESADOS I
CONTROL DE PUERTOS EN EL AVR
OBJETIVO
Programas un microcontrolador microcontrolador AVR con un lenguaje de realizado en el software Bascom AVR.
Asimilar un nuevo lenguaje de programación para los atmega.
verificar el funcionamiento en cada uno de sus ejercicios tanto de lectura como de escritura en cada uno de sus pines.
MARCO TEORICO
BASCOM-AVR© Es
un COMPILADOR BASIC en Windows para la familia de microcontroladores AVR. Está diseñado para trabajar en W95/W98/NT/XP La carga de programas se puede realizar desde un PC a través del bus SPI con el AVR-ISP in system programing de Atmel por el puerto serie, con la mochila AVR-ISP de puerto paralelo - serie ó utilizando el boot ó programa cargador incorporado en la parte alta de la flash rom a través de los pins serie 1 de la CPU. CARACTERISTICAS:
BASIC estructurado con etiquetas. Programación estructurada con sentencias IF -TH EN-ELSE-END IF, DOLOOP, WHILE-WEND, SELECT- CASE. Generación de código máquina nativo en lugar de código interpretado. Bit, Byte, Entero, Word, Largo, y variables tipo String . (Solo con la Prof. Edición) Los programas compilados trabajan con todos los microprocesadores (no-MEGA) de AVR que tienen memoria interior. La Prof.-edición apoyará la serie de M EGA también. Puesto que los 1200 no no tienen SRAM, no funcionará con los los 1200. Las instrucciones y comandos de este BASIC son bastante similares a las del Visual Basic y QuickBASIC de Microsoft. Comandos específicos para el manejo de displays LCD, integrados I2C e integrados 1WIRE Chips, teclado de PC, teclado de matriz, recepción RC5, software UART. SPI, LCD Gráficos, envió de IR RC5 o código Sony. Soporta variables locales, uso de funciones, y librerías Emulador terminal integrado con opción de download. Simulador integrado por probar..
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Programador de ISP integrado (aplicación nota AVR910.ASM). se agregarán Otros programadores por pedido. Integrado el soporte del programador STK200 y STK300. También soporta el Electronics programme de bajo costo. ¡Puede construirse en 10 minutos! Editor con subrayador de sentencias. Ayuda ON LINE en el editor.
Soporta Las siguientes declaraciones (hay muchas más revise el archivo HELP): COMANDOS E INSTRUCCIONES: De estructura y condicionales IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, W END, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE. De entrada/salida PRINT, INPUT, INKEY, PRINT, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT, GETATKBD, SPC Funciones numéricas AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD, LOG, EXP, SQR, SIN,COS,TAN,ATN, ATN2, ASIN, ACOS, FIX, ROUND, MOD, SGN, POWER, RAD2DEG, DEG2RAD, LOG10, TANH, SINH, COSH. 12C I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE. 1WIRE 1WWRITE, 1WRE AD, 1WRESET, 1WIRECOUNT, 1WSE ARCHFIRST, 1WSE ARCHNEXT SPI SPIINIT, SPIIN, SPIOUT, SPIMOVE
Gestión de interrupciones ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD. Manipulación de bits SET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE. Variables DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Varios REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, RE AD, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, RE ADMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CHECKSUM. Directivas $INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$ END ASM, $LCD, $EXTERNAL, $LIB. Cadenas STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LTRIM, RTRIM, TRIM, LCASE, UCASE, FORMAT, FUSING, INSTR. Y
muchas otras funciones, declaraciones y directivas.
Para hacer un programa sólo debe seguir 4 pasos:
Escriba
el programa en BASIC. Compile a código máquina binario (ejecución rápida). Testee el resultado con el simulador integrado (con hardware adicional puedes simular todo el hardware). Programa el chip con uno de los programadores integrados . (el hardware se adquiere por separado) El programa puede escribir se en un editor MDI de código en color cómodamente.
Además de las características habituales el editor soporta Undo, Redo, Bookmarks y bloques.
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
. Escribir el valor 55 hexagesimal en el puerto D ALGORITMO E
Número 55h
S li
Código binario del número 55h en el PortD del AVR
P
I G
configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de 10101010 fin del la zo fin del programa
E
CODIGO: $regfile "m164Pdef.dat"
'librería de trabajo del ATMEGA164P
$crystal = 8000000
'cristal a utilizar 8000000 MHz
Ddrd = 255
'se especifica el puerto D como salida
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Confi Po td = Output
Do
End
el puerto D co o s lid
'inicio de un l
Portd = &B1010_1010 Loop
's ini i li
o infinito
'se escribe en el puerto el valor de 55h 'fin de lazo 'fin de pro rama
SIMULACION
2.- este programa escribe en un pin del puerto D AL ORIT MO
Entradas
Numero 55 hexagesimal
Salidas
escribir en el puerto el valor de 55 en hexagesimal.
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Loop
'f i n del la o
End
'f in de programa
SIMULACION
3.- En el pro rama numero 1 cambiar el va lor de 55 hex por el va lor decimal 240
ALGORITMO
Entradas
Numero binario 1111 0000
Salidas
escribir en el puerto el valor de F0 en hexagesimal.
Procesos
o configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de F0 hexagesimal fin del lazo fin del programa
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
DIAGRAMA DE F L JO
CODIGO 'Este programa escribe el valor 55h en el puerto D. $regfile "m164pdef.dat"
'librería de trabajo del ATMEGA164p
$crystal = 8000000 Ddrd = 255
'cristal a utilizar 8000000 MHz 'se especifica el puerto D como salida
Config Portd = Output Do
'se inicializa el puerto D como salida 'inicio de un lazo infinito
Portd = &B1111_0000 Loop
'se escribe en el puerto el valor de 240 'fin de lazo
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
SIMULACION
4.- Lectura y escritura en pu ertos Para leer en un puerto de un microcontrolado r AVR se utiliza el comando PIN . además se va ha introducir al uso de variables.
ALGORITMO Entradas
Def
Salidas
Codigo binario escrito en el puerto D
la variable A
Procesos
Def ino una Variabl e
Guardar el valor
Conf iguro el puerto D como salida
Conf iguro el puerto B como entrada
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Inicio de lazo in inito
Lee en la variable A los datos escritos en el puerto B
Se escribe en el puerto D los datos en el puerto B
f in del lazo
f in del programa
DIAGRAMA DE FLUJO
CODIGO $regf ile "m164pdef.dat" $crystal = 8000000 Ddrb = 0 SE ESPECIFICA PUERTO B COMO ENTRADAS Ddrd = 255 SE ESPECIFICA PUERTO D COMO SALIDAS Conf ig Portd = Output Conf ig Portb = Input Dim A As Byte Do A = Pinb SE LEE EN LA VARIABLE A LOS DATOS ESCRITOS EN EL PUERTO B Portd = A SE ESCRIBE EN EL PUERTO D LOS DATOS LEIDOS EN E L PUERTO B
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Loop End
SIMULACION
5.- Utilizando el esquema del tema o e j ercicio 4 se comprobara el uso de las funciones Lógicas and, or, xor y not. ALGORITMO Entradas
Def ino la variabl e A,B,C,D
Salidas
Código binario escrito en el puerto D
Procesos
Def inir la s Variables A,B,C,D
Guardar el valor d e la s Variabl es
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
conf igurar el puerto
Se inicializa el puerto D como salida
Se inicializa el puerto B como entrada
Inicio de lazo inf inito
Realización de Operaciones con f unciones lógicas and o r Xor not
Imprimir resultados en puertos A, B,C,D
Fin del lazo
Fin del Programa.
DIAGRAMA DE FL JO
CODIGO $regfile "m16def.dat" $crystal = 8000000 Ddrb = 0 Ddrd = 255 Config Portd = Output
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Config Portb = Input Dim A As Bit , B As Bit , C As Bit , D As Bit Do A = Pinb.0 And Pinb.1 Portd.0 = A B = Pinb.2 Or Pinb.3 Portd.1 = B C = Pinb.4 Xor Pinb.5 Portd.2 = C D = Not Pinb.6 Portd.3 = D Loop End
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
SIMULACION
6.- Ej
i i P (N C).
: C
l
l d l
i i
f
ió
l
: (
l d V d d ABC (AB)+/C 000 1 001 0 010 1 011 0 100 1 101 0 110 1 111 1
ALGORITMO
Defi
E
d Salid as P sos
Có i
l i
Defi ni r l s
i l e A,B,C i escr it en el
er t D
V r i l es A,B,C bl es Guard ar el al r de l as V ar ia confi ur ar el uer t o li a el uer to D como sali da S e i ni ci a li a el uer to B como ent ra S e i ni ci a d a I ni ci o de l az o i nfi nit o nes con f unc io nes ló i ca R eali zac ión de O er ac io s AN D OR s A,B,C M uest ro result ados en uer to del l az o F in
d B)
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
F in
del Programa.
DIAGRAMA DE FL JO
CODIGO 'TA BLAS DE VERDAD $regf ile "m164Pdef.dat" $crystal = 8000000
Ddrb = 0 'se especif ica el puerto B como entrada Ddrd = 255 'se especif ica el puerto D como salida Conf ig Portd = Output 'se inicializa el puerto D como salida Conf ig Portb = Input 'se inicializa el puerto B como entrada Dim A As Bit , B As Bit , C As Bit , D As Bit 'se def ine las variables A, B, C, D tipo bit Do A = Pinb.0 And Pinb.1 B = Not Pinb.2 C = A Or B Portd.0 = C Loop End
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
SIMULACION
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
CONCLUSIONES
La programación en BASCOM-AVR maneja un lengua je sencillo de ent ender lo cual permite
realizar diversas
aplicaciones.
Los puertos del AVR pueden ser utilizados como entradas o como salidas dependiendo el uso que se le quiera dar.
La f orma de carga el programa hecho en BASCOM se lo hace con el archivo .hex.
Para realizar la programación en el BASCOM no f unciona para todos los AVR para algunos AVR hay que tener otra versión del BASCOM para poder cargar el programa.
RECOMENDACIONES Leer el
manual del AVR a ocupar para saber cuáles son los
pines de Vdd y Vss ya que si no conectamos esos pines el ATMEGA no f uncionara.
Tener la programadora adecuada para los AVR verif icando si el ATMEGA que vamos a utilizar si se lo puede cargar sin
ningún inconveniente.
BIBLIOGRA IA Ho ja
de prácticas de microcontroladores AVR Manual de microcontrolador AVR ATMEGA 164P
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I