DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

5

Click here to load reader

Transcript of DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

Page 1: DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

UNIVERSIDAD POLITECNICA SALESIANA MATRIZ DE LEDS 18X18CAMPUS SUR PROYECTO BIMESTRAL- QUITO- DISEÑO DEL PROGRAMA

DISEÑO DEL PROGRAMA

Iº parte

1. MICROCONTROLADOR A USAR: AVR atmega16 o atmega32

La elección del microcontrolador se tomara siguiendo ciertos parámetros:

1.1 Nivel del conocimiento del lenguaje de programación, en nuestro caso, tomando en cuenta la experiencia obtenida en las prácticas de laboratorio de la materia “sistemas microprocesados” que hemos realizado, decidimos que la programación para AVR’s ha llegado a ser más comprensible además de que el costo de la programadora para el mismo es más económica que para pics.

1.2 Hoja de datos o data sheet, antes de adquirir el microcontrolador, se debe consultar la hoja de datos. Al revisar las hojas de datos del PIC 16F877 y compararlas con las del AVR atmega16, surgieron varias diferencias, entre ellas que la manipulación del pic debía ser de mayor cuidado que la del avr, esto nos pareció de suma importancia pues corríamos el riesgo de dañar con mayor facilidad el pic, otra diferencia considerable eran las magnitudes de los parámetros de funcionamiento.

1.3 Cantidad de instrucciones, cuantas rutinas estarán programadas en el microcontrolador.

1.4 Capacidad, que tan extenso será el programa.

2. SOFTWARE: BASCOM AVR IDE [1.11.9.5]

3. TEXTO: ¿Qué aparecerá en nuestra matriz?

Nuestra matriz indicara los nombres y apellidos de los integrantes del grupo, animación en los mismos, además de una figura navideña.

4. DISEÑO DE LETRAS: tomando en cuenta que las medidas de nuestra matriz de leds cuenta únicamente con 18 leds de ancho x 18 leds de alto, nuestros nombres no podrán ser visualizados de manera completa y lógica , así que el programa debe estar orientado a una programación con barrido, por lo tanto los nombres se mostrarían desplazándose.

A continuación presentaremos como fuimos desarrollando nuestro programa:

¿Cuántas letras distintas hay que diseñar?

E R I K A A B R I L

V I N I C I O D A V I L A

R E M I N Z A M B R A N O

1

Page 2: DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

UNIVERSIDAD POLITECNICA SALESIANA MATRIZ DE LEDS 18X18CAMPUS SUR PROYECTO BIMESTRAL- QUITO- DISEÑO DEL PROGRAMA

1 2 3 4 5 6 7 8 9 10 11 12 13 14E R I K A B L M N Z O V D C

¿Cómo se mostraran y cuanto espacio ocupara cada letra? Por las dimensiones de nuestra matriz, únicamente alcanzaran a presentarse letras de 7x5, en el caso de que la matriz este llena, se indicaran hasta tres letras.

El formato de nuestra matriz lo representaremos mediante cuadriculas de 18x18 para en esta ir dibujando las letras que necesitaremos.

Previamente con la ayuda de lápiz y papel fuimos dibujando las letras de nuestros nombres y asignándoles códigos, asi:

Ejemplo de diseño de letras:

E5 E4 E3 E2 E1B0 X X X X XB1 XB2 XB3 X X XB4 XB5 XB6 X X X X X

2

En la parte izquierda se encuentra la denominación de cada pin del puerto del microcontrolador, en este caso podemos observar que usaremos el puerto B del circuito integrado, desde el pin 0 al pin 6 del mismo. Al igual que las variables E1…etc., representan un valor, el puerto b también lo hará.

Cada columna que conforma la letra tiene una denominación, en el caso de la letra E, constara de E1, E2, E3, E4, E5, cada una de estas será una variable que tendrá guardado el código según los leds que se encenderán y apagaran al presentarse la letra.

Page 3: DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

UNIVERSIDAD POLITECNICA SALESIANA MATRIZ DE LEDS 18X18CAMPUS SUR PROYECTO BIMESTRAL- QUITO- DISEÑO DEL PROGRAMA

De esta manera ya tenemos un código referente a la letra, así:

E5 E4 E3 E2 E1B0 X X X X XB1 XB2 XB3 X X XB4 XB5 XB6 X X X X XAl tener almacenado en cada variable de la letra 5 códigos diferentes en números binarios, es probable que la memoria de nuestro microcontrolador se llene de manera rápida, por esta razón y para evitarla, cambiaremos cada número binario en su decimal (operación que puede ser realizada con una calculadora científica).

Portb E5=%B01111111=127

E4=%B01001001=73

E3=%B01001001=73

E2=%B01000001=65

E1=%B01000001=65

De esta manera tenemos un numero decimal que representara que leds se encienden o no para la letra E.

Asi se debe ir creando cada letra correspondiente a el texto que se quiere representar en la matriz.

R5 R4 R3 R2 R1B0 X X X X XB1 X XB2 X XB3 X X X XB4 X XB5 X XB6 X X

3

Entonces nuestra letra E, constara de un código referente a las 5 columnas que ocupa.

E Portb=%B01111111 (código de la columna E1 de abajo hacia arriba, como el pin 7 del puerto b no lo usaremos, el numero después de % siempre será 0 para mantenerlo apagado, de ahí cada pin que deba enviar un 1 para encender el respectivo led, será anotado a continuación del 0).

Como cada letra está representada por 5 columnas distintas, tendremos 5 códigos uno por columna.

El código de la letra R será:

R Portb=%B01000111=126

Portb=%B00001001=9

Portb=%B00011001=25

Portb=%B00101001=41

Portb=%B01000110=70

Page 4: DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

UNIVERSIDAD POLITECNICA SALESIANA MATRIZ DE LEDS 18X18CAMPUS SUR PROYECTO BIMESTRAL- QUITO- DISEÑO DEL PROGRAMA

I5 I4 I3 I2 I1B0 X X X X XB1 XB2 XB3 XB4 XB5 XB6 X X X X X

K5 K4 K3 K2 K1B0 X XB1 X XB2 X XB3 X XB4 X XB5 X XB6 X X

A5 A4 A3 A2 A1B0 X X X X XB1 X XB2 X XB3 X X X X XB4 X XB5 X XB6 X XCuando tenga todos los numeros correspondientes a las letras a usarse, podemos empezar a programar en BASCOM.

$regfile = "m16def.dat" ‘ activar libreria de trabajo del atmega 16

$crystal = 8000000 ‘cristal a usar 8MHZ

Config Porta = Output ‘inicializo puertos de salida

Config Portd = Output ‘inicializo puertos de salida

Config Portc = Output ‘inicializo puertos de salida

4

El código de la letra A será:

A Portb=%B01111111=127

Portb=%B00010001=9

Portb=% B00010001=9

Portb=% B00010001=9

Portb=%B00111110=65

El código de la letra K será:

K Portb=%B01111111=127

Portb=%B00001000=8

Portb=%B00010100=20

Portb=%B00100010=34

Portb=%B01000001=65

El código de la letra I será:

I Portb=%B01000001=65

Portb=%B01000001=65

Portb=%B01111111=127

Portb=%B01000001=65

Portb=%B01000001=65

Page 5: DISEÑO DEL PROGRAMA MATRIZ DE LEDS 18X18

UNIVERSIDAD POLITECNICA SALESIANA MATRIZ DE LEDS 18X18CAMPUS SUR PROYECTO BIMESTRAL- QUITO- DISEÑO DEL PROGRAMA

Dim X As Word ‘defino variables

Dim Y As Byte

Dim Z As Byte

Dim Ext As Byte

Dim Var As Byte

Dim Med As Byte ‘defino variables del tipo a usarse

Dim Intr As Byte

Dim Col As Byte

Dim Aux As Word

Dim Cont As Word

Cont = 1

Portd = 48 ‘doy valores iniciales a las variables

Col = 48

Aux = 0

Column:

Portd = Col ‘column almacenara el valor que este en variable col y esta

Return a la vez estara representada en portd

Veer:

Gosub Column ‘veer variable que almacenara la subrrutina anterior seguida de un

Waitus 500 retardo de 500ms

Return

Veer2: ‘veer2 variable que almacena la subrrutina column pero con un

Gosub Column retardo de 150ms

Waitus 150

Return

Cero: ‘cero apaga el puerto b

Portb = 0

Return

5