Practica1 1 AVR
-
Upload
carlitosvoley -
Category
Documents
-
view
1.767 -
download
3
Transcript of Practica1 1 AVR
UNIVERSIDAD POLITECNICA SALESIANA
PRACTICA #1 DE AVR
SISTEMAS MICROPROCESADOS I
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
TEMA CONTROL DE PUERTOS EN EL AVR
OBJETIVO
Programas un 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-THEN-ELSE-END IF, DO-LOOP,
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 MEGA también. Puesto que los 1200 no tienen SRAM, no funcionará con 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 condicionalesIF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.
De entrada/salidaPRINT, 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éricasAND, 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.
12CI2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.
1WIRE1WWRITE, 1WREAD, 1WRESET, 1WIRECOUNT, 1WSEARCHFIRST, 1WSEARCHNEXT
SPISPIINIT, SPIIN, SPIOUT, SPIMOVE
Gestión de interrupcionesON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.
Manipulación de bitsSET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE.
VariablesDIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
VariosREM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, READMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CHECKSUM.
Directivas$INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD, $EXTERNAL, $LIB.
CadenasSTRING, 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 escribirse 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
1. Escribir el valor 55 hexagesimal en el puerto D
ALGORITMO
Entradas Número 55h
Salidas Código binario del número 55h en el PortD del AVR
Procesos configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de 10101010 fin del lazo fin del programa
DIAGRAMA DE FLUJO
CODIGO:
$regfile "m164Pdef.dat" 'librería de trabajo del ATMEGA164P
$crystal = 8000000 'cristal a utilizar 8000000 MHz
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Ddrd = 255 'se especifica el puerto D como salida
Config Portd = Output 'se inicializa el puerto D como salida
Do 'inicio de un lazo infinito
Portd = &B1010_1010 'se escribe en el puerto el valor de 55h
Loop 'fin de lazo
End 'fin de programa
SIMULACION
2.- este programa escribe en un pin del puerto D
ALGORITMO
Entradas Numero 55 hexagesimal
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Salidas escribir en el puerto el valor de 55 en hexagesimal.
Procesos configurar el puerto iniciar un lazo infinito escribir en el puerto el valor de 55 hexagesimal fin del lazo
DIAGRAMA DE FLUJO
CODIGO
'Este programa escribe en un pin del puerto D
$regfile "m164Pdef.dat" 'librería de trabajo del ATMEGA 164p
$crystal = 8000000 'cristal a utilizar 8000000 MHz
Ddrd = 255 'se especifica el puerto D como salida
Config Portd = Output 'se inicializa el puerto D como salida
Portd = 0
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Do
Portd.1 = 1 'se escribe en el puerto el valor de 55h
Loop 'fin del lazo
End 'fin de programa
SIMULACION
3.- En el programa numero 1 cambiar el valor de 55 hex por el valor decimal 240
ALGORITMO
Entradas Numero binario 1111 0000
Salidas escribir en el puerto el valor de F0 en hexagesimal.
Procesos o configurar el puerto
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
iniciar un lazo infinito escribir en el puerto el valor de F0 hexagesimal fin del lazo fin del programa
DIAGRAMA DE FLUJO
CODIGO
'Este programa escribe el valor 55h en el puerto D.
$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
Config Portd = Output 'se inicializa el puerto D como salida
Do 'inicio de un lazo infinito
Portd = &B1111_0000 'se escribe en el puerto el valor de 240
Loop 'fin de lazo
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
SIMULACION
4.- Lectura y escritura en puertos
Para leer en un puerto de un microcontrolador AVR se utiliza el comando PIN .además se va ha introducir al uso de variables.
ALGORITMO
Entradas Defino la variable A Salidas Codigo binario escrito en el puerto D Procesos
Defino una Variable Guardar el valor Configuro el puerto D como salida Configuro el puerto B como entrada
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Inicio de lazo infinito Lee en la variable A los datos escritos en el puerto B Se escribe en el puerto D los datos en el puerto B fin del lazo fin del programa
DIAGRAMA DE FLUJO
CODIGO
$regfile "m164pdef.dat"$crystal = 8000000Ddrb = 0 ‘SE ESPECIFICA PUERTO B COMO ENTRADASDdrd = 255 ‘SE ESPECIFICA PUERTO D COMO SALIDASConfig Portd = OutputConfig Portb = InputDim A As ByteDoA = Pinb ‘SE LEE EN LA VARIABLE A LOS DATOS ESCRITOS EN EL PUERTO BPortd = A ‘SE ESCRIBE EN EL PUERTO D LOS DATOS LEIDOS EN EL PUERTO B
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
LoopEnd
SIMULACION
5.- Utilizando el esquema del tema o ejercicio 4 se comprobara el uso de las funciones Lógicas and, or, xor y not.
ALGORITMO
Entradas Defino la variable A,B,C,D Salidas Código binario escrito en el puerto D Procesos
Definir las Variables A,B,C,D Guardar el valor de las Variables
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
configurar el puerto Se inicializa el puerto D como salida Se inicializa el puerto B como entrada Inicio de lazo infinito Realización de Operaciones con funciones lógicas and or Xor not Imprimir resultados en puertos A,B,C,D Fin del lazo Fin del Programa.
DIAGRAMA DE FLUJO
CODIGO
$regfile "m16def.dat"$crystal = 8000000Ddrb = 0Ddrd = 255Config Portd = Output
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Config Portb = InputDim A As Bit , B As Bit , C As Bit , D As BitDoA = Pinb.0 And Pinb.1Portd.0 = AB = Pinb.2 Or Pinb.3Portd.1 = BC = Pinb.4 Xor Pinb.5Portd.2 = CD = Not Pinb.6Portd.3 = DLoopEnd
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
SIMULACION
6.- Ejercicio Propuesto: Crear la tabla de la siguiente función booleana: (A and B)OR (Not C).
Tabla de Verdad
ABC (AB)+/C0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 11 0 1 01 1 0 11 1 1 1
ALGORITMO
Entrada Defino la variable A,B,C Salidas Código binario escrito en el puerto D Procesos
Definir las Variables A,B,C Guardar el valor de las Variables configurar el puerto Se inicializa el puerto D como salida Se inicializa el puerto B como entrada Inicio de lazo infinito Realización de Operaciones con funciones lógicas AND OR Muestro resultados en puertos A,B,C Fin del lazo
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
Fin del Programa.
DIAGRAMA DE FLUJO
CODIGO
'TABLAS DE VERDAD$regfile "m164Pdef.dat"$crystal = 8000000Ddrb = 0 'se especifica el puerto B como entradaDdrd = 255 'se especifica el puerto D como salidaConfig Portd = Output 'se inicializa el puerto D como salidaConfig Portb = Input 'se inicializa el puerto B como entradaDim A As Bit , B As Bit , C As Bit , D As Bit 'se define las variables A, B, C, D tipo bitDoA = Pinb.0 And Pinb.1B = Not Pinb.2C = A Or BPortd.0 = CLoopEnd
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
SIMULACION
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
CONCLUSIONES
La programación en BASCOM-AVR maneja un lenguaje sencillo de entender 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 forma de carga el programa hecho en BASCOM se lo hace con el archivo .hex.
Para realizar la programación en el BASCOM no funciona 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 funcionara.
Tener la programadora adecuada para los AVR verificando si el ATMEGA que vamos a utilizar si se lo puede cargar sin ningún inconveniente.
BIBLIOGRAFIA
Hoja de prácticas de microcontroladores AVRManual 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