practica2AVR

35
UNIVERSIDAD POLITECNICA SALESIANA PRACTICA AVR#2 SISTEMAS MICROPROCESADOS I

Transcript of practica2AVR

Page 1: practica2AVR

UNIVERSIDAD POLITECNICA SALESIANA

PRACTICA AVR#2

SISTEMAS MICROPROCESADOS I

Page 2: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

TEMA Temporizadores.

OBJETIVO

Utilizar los temporizadores en modo de contador externo. Manejar BASCO para LCD.

MARCO TEORICOBascom puede manejar los dos tipos principales de pantallas de cristal líquido:alfanuméricos y gráficos. Por el momento, vamos a preocuparnos por el tipo más común alfanuméricos. Este tipo de pantalla LCD puede mostrar los caracteres, números y caracteres especiales. El tipo más común de LCD alfanumérico utiliza un Hitachi HD44780 como controlador de pantalla. Cuando usted no está seguro acerca de qué tipo de pantalla que están sosteniendo en sus manos, sólo tiene que mirar a lasdenominaciones de chips en la espalda. Si uno de estos dice HD44780 estás a salvo. Bascom tiene una configuración por defecto para la conexión de la pantalla LCD.Options / Compiler / LCD

Afortunadamente, el predeterminado es de tipo LCD de 16 * 2. Esta es la pantalla LCD más común con dos líneas y 16 caracteres por línea.

BASCOM permite simular el programa para simular como se vera en el LCD. Compile el programa, y luego Program / Simulate

Page 3: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

LCD de carácter conjunto.El conjunto de LCD de caracteres estándar se muestra en la siguiente tabla:

Los caracteres especiales en esta tabla se pueden enviar a la pantalla utilizando el charactercode decimal. Por ejemplo, utilice:LCD chr (228)Para enviar el símbolo μ. (1110.0100 binario es 228 en decimal)

DEFINA SUS PROPIOS PERSONAJES LCDLa LCD con el controlador HD44780 tiene espacio para ocho caracteres adicionales quese pueden definir. Usted podría utilizar caracteres especiales que de origen a:

Hacer una pantalla de barras de un metro o S-VU-meter Una pelota para pasar el tiempo del usuario, mientras que el controlador está

haciendo algo mucho tiempo.

Page 4: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Un objeto en rotación o saltar al hombre para que el usuario sepa que el controlador está aún en marcha.

Situé el cursor en Tools / LCD designer

Dar el un clic en cualquier cuadro para que este se haga negro, o clic en un cuadro negra para que se haga blanco. Hacer un símbolo de la cruz

Haga clic en Aceptar. Colocar el cursor en el origen del programa y aparecerá el siguiente texto.Deflcdchar ?,32,4,4,31,4,4,32,32' replace ? with number (0-7)Cambiar el "?" por el número "0" y eliminar el comentario después del carácter 'Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32

Page 5: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

EJERCICIOS

1.1 Temporizador en modo contador

Entradas Números ascendentes del o al 99 mediante un pulsador.

Salidas Mostrar los números en display de 7 segmentos.

Procesos - Establecemos el puerto D como Salida para los display. -Configuro puerto B para el pulsador - Defino Variables - Inicializo cada variable (para cada display) - Escribimos en cada puerto.

DIAGRAMA DE FLUJO

Especificar el puertoD y C como salida

INICIO

TCNT0=registro de almacenamiento del contador

Defino las variables A, B, I

Transformar de HEX a BCD

Visualizo en display

END

Page 6: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

CODIGO:

$regfile "m16def.dat"$crystal = 8000000

Config Portb = InputConfig Portc = OutputConfig Portd = OutputConfig Porta = OutputDim I As Byte , A As Byte , Menor As Byte , Mayor As Byte

Config Timer0 = Counter , Edge = FallingStart Timer0Tcnt0 = 0A = 0

DoA = Tcnt0Porta = Tcnt0A = Makebcd(a)

Menor = A And &B0000_1111Waitms 500

Mayor = A And &B1111_0000Shift Mayor , Right , 4For I = 1 To 20Portd = MenorPortc = 2Waitus 200Portd = MayorPortc = IWaitus 200Next

LoopEnd

Page 7: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

SIMULACION

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

7448

Q12N3904

Q22N3904

X1CRYSTAL

C1

1uF

C2

1uF

R110k

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL213

XTAL112

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

C31nF

R2

10k

FIGURA #1

1.2 Elabore un programa para mostrar el mensaje HOLA en el LCD.

Entradas 0 Salidas display de 7 lcd. Procesos -configurar puerto D para LCD.

-programar para visualizar en el LCD

Page 8: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

DIAGRAMA DE FLUJO

CODIGO

$regfile "m16def.dat"

$crystal = 8000000

Lee “HOLA”

END

Configuro pines para LCD

INICIO

Configuro puerto D como salida

Configuro LCD 16*2

Page 9: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Config Portd = Output

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1

Lcd "HOLA"

End

SIMULACION

R910k

X1CRYSTAL

C1

33p

C2

33p

PA0/ADC040

PA1/ADC139

PA2/ADC238

PA3/ADC337

PA4/ADC436

PA5/ADC535

PA6/ADC634

PB0/XCK/T01

PB1/T12

PB2/INT2/AIN03

PB3/OC0/AIN14

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

PA7/ADC733

RESET9

XTAL113

XTAL212

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP20

PD7/OC221

AVCC30

AREF32

U1

ATMEGA16

R110k

C3100p

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD2LM016L

RV1

5k

1.3 Elabore un programa que escribe en la línea superior e inferior del LCD.

Entradas 0 Salidas display de LCD. Procesos -configurar puerto D para LCD.

-programar para visualizar en el LCD tanto en la línea superior

Page 10: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

como en la línea inferior.

DIAGRAMA DE FLUJO

CODIGO

$regfile "m16def.dat"

$crystal = 8000000

Lee línea superior “INGENIERIA”

END

Configuro pines para LCD

Configuro puerto D como salida

Configuro LCD 16*2

INICIO

Lee línea inferior “BIOMEDICA”

Page 11: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Config Portb = Output

Config Portc = Output

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1

Cls

Lcd "INGENIERIA"

Lowerline

Lcd "ELECTRONICA"

End

SIMULACION

R910k

X1CRYSTAL

C1

33p

C2

33p

PA0/ADC040

PA1/ADC139

PA2/ADC238

PA3/ADC337

PA4/ADC436

PA5/ADC535

PA6/ADC634

PB0/XCK/T01

PB1/T12

PB2/INT2/AIN03

PB3/OC0/AIN14

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

PA7/ADC733

RESET9

XTAL113

XTAL212

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP20

PD7/OC221

AVCC30

AREF32

U1

ATMEGA16

R110k

C3100p

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD2LM016L

RV1

5k

1.4 Realizar un programa que permite el desplazamiento de un texto en LCD.

Page 12: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Entradas 0 Salidas display de LCD. Procesos -configurar puerto D para LCD.

-programar con la ayuda de comandos como el FOR para el desplazamiento del texto

DIAGRAMA DE FLUJO

Se mueve la frase a la derecha

END

Configuro pines para LCD

Configuro puerto D como salida

Configuro LCD 16*2

INICIO

Se mueve la frase a la izquierda

Page 13: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

CODIGO

$regfile "m16def.dat"

$crystal = 8000000

Dim I As Byte

Config Portb = Output

Config Portc = Output

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1

Cls

Do

Lcd "UPS"

For I = 1 To 10

Shiftlcd , Right

Waitms 200

Next

For I = 1 To 10

Shiftlcd , Left

Waitms 200

Next

Loop

End

Page 14: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

SIMULACION

R910k

X1CRYSTAL

C1

33p

C2

33p

PA0/ADC040

PA1/ADC139

PA2/ADC238

PA3/ADC337

PA4/ADC436

PA5/ADC535

PA6/ADC634

PB0/XCK/T01

PB1/T12

PB2/INT2/AIN03

PB3/OC0/AIN14

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

PA7/ADC733

RESET9

XTAL113

XTAL212

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP20

PD7/OC221

AVCC30

AREF32

U1

ATMEGA16

R110k

C3100p

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD2LM016L

RV1

5k

1.5 Realizar un programa que permite conocer los diferentes comandos del LCD.

Entradas 0 Salidas display de LCD. Procesos -configurar puerto D para LCD.

Page 15: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

-programar con los diferentes comandos para ver su función.

DIAGRAMA DE FLUJO

Diferentes comandos

END

Configuro pines para LCD

Configuro puerto D como salida

Configuro LCD 16*2

INICIO

Se observa en el LCD

Page 16: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

CODIGO

$regfile "m16def.dat"

$crystal = 8000000

Dim I As Byte

Config Portb = Output

Config Portc = OutputConfig Lcd = 16 * 2Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1Cls

Do

Locate 2 , 1

Lcd "*"

Wait 1

Shiftcursor Right

Lcd "@"

Home Upper

Lcd "REMPLAZO"

Wait 1

Cursor Off Noblink

Wait 1

Cursor On Blink

Wait 1Display OffWait 1

Page 17: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Display On

Loop

End

SIMULACION

R910k

X1CRYSTAL

C1

33p

C2

33p

PA0/ADC040

PA1/ADC139

PA2/ADC238

PA3/ADC337

PA4/ADC436

PA5/ADC535

PA6/ADC634

PB0/XCK/T01

PB1/T12

PB2/INT2/AIN03

PB3/OC0/AIN14

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

PA7/ADC733

RESET9

XTAL113

XTAL212

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP20

PD7/OC221

AVCC30

AREF32

U1

ATMEGA16

R110k

C3100p

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD2LM016L

RV1

5k

1.6 Realizar un programa que permite ver los caracteres que puede generar el LCD.

Page 18: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Entradas 0 Salidas display de LCD. Procesos -configurar puerto D para LCD.

-programar con los diferentes caracteres del LCD.

DIAGRAMA DE FLUJO

CODIGO

$regfile "m16def.dat"

CARACTERES DEL LCD

END

Configuro pines para LCD

Configuro puerto D como salida

Configuro LCD 16*2

INICIO

Page 19: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

$crystal = 8000000

Dim I As Byte

Config Portb = Output

Config Portc = Output

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1

Cls

Do

For I = 1 To 255

Cls

Locate 1 , 1

Lcd Chr(i)

Locate 2 , 1

Lcd "CARACTER #" ; I

Waitms 100

Next

Loop

End

SIMULACION

Page 20: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

R910k

X1CRYSTAL

C1

33p

C2

33p

PA0/ADC040

PA1/ADC139

PA2/ADC238

PA3/ADC337

PA4/ADC436

PA5/ADC535

PA6/ADC634

PB0/XCK/T01

PB1/T12

PB2/INT2/AIN03

PB3/OC0/AIN14

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

PA7/ADC733

RESET9

XTAL113

XTAL212

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP20

PD7/OC221

AVCC30

AREF32

U1

ATMEGA16

R110k

C3100p

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD2LM016L

RV1

5k

1.7 Realizar un programa que permite crear una figura para visualizar en el LCD.

Entradas 0 Salidas display de LCD. Procesos -configurar puerto D para LCD.

-programar en la barra desplegable TOOLS/LCD DESIGNER.

DIAGRAMA DE FLUJO

Configuro puerto D como salida

Configuro LCD 16*2

INICIO

Page 21: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

CODIGO

$regfile "m16def.dat"

$crystal = 8000000

$sim

Config Portd = Output

Dim Star As Byte

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1

Cursor Off

Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32 ' replace ? with number (0-7)

Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32

Deflcdchar 2 , 32 , 2 , 26 , 4 , 11 , 8 , 32 , 32 ' replace ? with number (0-7)

Graficar en TOOLS/LCD DESIGNER

END

Configuro pines para LCD

Muestra código numérico

Reemplazamos ? por (0-7)

Page 22: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Deflcdchar 3 , 32 , 17 , 10 , 4 , 10 , 17 , 32 , 32

Deflcdchar 4 , 32 , 8 , 11 , 4 , 26 , 2 , 32 , 32

Deflcdchar 5 , 32 , 8 , 5 , 14 , 20 , 2 , 32 , 32

Cls

Do

For Star = 0 To 5 Step 1

Portd = 255

Waitms 100

Portd = 0

Waitms 100

Locate 1 , 16

Lcd Chr(star)

Waitms 100

Next Star

Loop

End

SIMULACION

Page 23: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

R910k

X1CRYSTAL

C1

33p

C2

33p

PA0/ADC040

PA1/ADC139

PA2/ADC238

PA3/ADC337

PA4/ADC436

PA5/ADC535

PA6/ADC634

PB0/XCK/T01

PB1/T12

PB2/INT2/AIN03

PB3/OC0/AIN14

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

PA7/ADC733

RESET9

XTAL113

XTAL212

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP20

PD7/OC221

AVCC30

AREF32

U1

ATMEGA16

R110k

C3100p

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD2LM016L

RV1

5k

CONCLUSIONES

Podemos notar que en el ATMEGA el contador externo es un poco mas exacto que en PIC.

Para la programación de LCD algunos comandos se realiza de una manera mas fácil.

Page 24: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Las instrucciones básicas como temporizadores, contadores, algunas del LCD, las podemos encontrar tanto en PIC como en ATMEGA.

RECOMENDACIONES

Debemos configurar en opciones del BASCO el LCD dependiendo de cual estemos utilizando.

Se debe tener en cuenta que el código numérico que nos genera el LCD DESIGNER debemos de cambiar el símbolo (?) por un número del 1 al 7.

BIBLIOGRAFIA

Hoja de prácticas de AVR.Manual de ATMEGA16

Page 25: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Page 26: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Page 27: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Page 28: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Page 29: practica2AVR

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I