Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Problems with matrix led project

Status
Not open for further replies.

Armando

New Member
Hi, I'm new using the ATmega 8535 and I'm doing a program (in Assembly) to display in a matrix led (16 x 8) a message (for example: Hello World).

By the time, we don't saw much the Assemly language for the ATmega. I have an idea of how to make the program, but I have questions about how to display the message and what can I write of the code.

This is my code. I had some help from the professor:

;Proyecto final

;Aqui se define la estructura basica del programa
.include "m8535def.inc"
.org $00
rjmp inicio
.org $15

inicio: ldi r16,$5f ;configurar la pila
out spl,r16
ldi r17,$02
out sph,r17

retardo: ldi r22, 100 ;con estos valores 100,5,100
repite4: ldi r21,5 ;el retardo es de aproximadamente
repite3: ldi r20,100 ;un segundo
repite2: dec r20
cpi r20,0
brne repite2
dec r21
cpi r21,0
brne repite3
dec r22
cpi r22,0
brne repite4
reti
retardo1: ldi r22, 50
repite5: ldi r21,5
repite6: ldi r20,100
repite7: dec r20
cpi r20,0
brne repite7
dec r21
cpi r21,0
brne repite6
dec r22
cpi r22,0
brne repite5
reti

;Aqui empieza el codigo de la matriz de leds

rcall confpacb
rcall almac

denues: ldi YH, $0
ldi YL, $70
ldi XH, $0
ldi XL, $70
ldi r16, $6 ;matriz de 6 columnas
ldi r17, $13 ;Armando Cifuentes: 17 palabras contando espacio. 17 to hex= 11+2=13
mul r16, r13 ;letras del mensaje en Hexadecimal
movw r31:r30, r1:r0
add r26, r30
adc r27, r3
mov r21, r28
repit: mov r28, r21
ldi r16, $0
otravez: ldi r20, $0f
rcall mandamsg
ldi r17, $11
add r28, r17
inc r16
cp r16, r18
brlt otravez
inc r21
cp r21, r26
brne repit

;.......hace falta codigo

;Aqui empiezan las letras

;Inicio de palabra: Armando
;caracter: A
ldi r16,$7C
sts 0x0060,r16
ldi r16,$12
sts 0x0061,r16
ldi r16,$11
sts 0x0062,r16
ldi r16,$12
sts 0x0063,r16
ldi r16,$7C
sts 0x0064,r16
ldi r16,$00
sts 0x0065,r16

;caracter: r
ldi r16,$7C
sts 0x0066,r16
ldi r16,$08
sts 0x0067,r16
ldi r16,$04
sts 0x0068,r16
ldi r16,$00
sts 0x0069,r16

;caracter: m
ldi r16,$7C
sts 0x006a,r16
ldi r16,$04
sts 0x006b,r16
ldi r16,$78
sts 0x006c,r16
ldi r16,$04
sts 0x006d,r16
ldi r16,$78
sts 0x006e,r16
ldi r16,$00
sts 0x006f,r16

;caracter: a
ldi r16,$30
sts 0x0070,r16
ldi r16,$4A
sts 0x0071,r16
ldi r16,$4A
sts 0x0072,r16
ldi r16,$4A
sts 0x0073,r16
ldi r16,$3C
sts 0x0074,r16
ldi r16,$00
sts 0x0075,r16

;caracter: n
ldi r16,$7C
sts 0x0076,r16
ldi r16,$04
sts 0x0077,r16
ldi r16,$04
sts 0x0078,r16
ldi r16,$04
sts 0x0079,r16
ldi r16,$78
sts 0x007a,r16
ldi r16,$00
sts 0x007b,r16

;caracter: d
ldi r16,$38
sts 0x007c,r16
ldi r16,$44
sts 0x007d,r16
ldi r16,$44
sts 0x007e,r16
ldi r16,$44
sts 0x007f,r16
ldi r16,$3F
sts 0x0080,r16
ldi r16,$00
sts 0x0081,r16

;caracter: o
ldi r16,$38
sts 0x0082,r16
ldi r16,$44
sts 0x0083,r16
ldi r16,$44
sts 0x0084,r16
ldi r16,$44
sts 0x0085,r16
ldi r16,$38
sts 0x0086,r16
ldi r16,$00
sts 0x0087,r16


;Fin de palabra: Armando

;caracter:
ldi r16,$00
sts 0x0088,r16
ldi r16,$00
sts 0x0089,r16

Thank you for all, and sorry for the inconvenient.
g2wj.jpg
 
Hi,

I have learned scrolling Led display in C with Pic if u need help in that i can do that...
 
Hola Armandito,

En inglés es mejor, incluyendo los comentarios del código.

Posting in English and showing the details and comments also in English would help others to help you.

By the way, you say you have questions. What questions are those?
 
Hola Armandito,

En inglés es mejor, incluyendo los comentarios del código.

Posting in English and showing the details and comments also in English would help others to help you.

By the way, you say you have questions. What questions are those?


Hehehe, sorry.

I complete the code with this:

;Proyecto final

;Aqui se define la estructura basica del programa
.include "m8535def.inc"
.org $00
rjmp inicio
.org $15

inicio: ldi r16,$5f ;configure the stack
out spl,r16
ldi r17,$02
out sph,r17

confpacb: ldi r16, $ff
out ddra, r16 ;port A exit
out ddrc, r16 ;port C exit
ldi r23, $0
out ddrb, r23 ;port B exit


retardo: ldi r22, 100 ;with this values 100,5,100
repite4: ldi r21,5 ;the retard is near to
repite3: ldi r20,100 ;one second
repite2: dec r20
cpi r20,0
brne repite2
dec r21
cpi r21,0
brne repite3
dec r22
cpi r22,0
brne repite4
reti
retardo1: ldi r22, 50
repite5: ldi r21,5
repite6: ldi r20,100
repite7: dec r20
cpi r20,0
brne repite7
dec r21
cpi r21,0
brne repite6
dec r22
cpi r22,0
brne repite5
reti

;Here starts the code for the matrix leds

rcall confpacb
rcall almac

denues: ldi YH, $0
ldi YL, $70
ldi XH, $0
ldi XL, $70
ldi r16, $6 ;matrix of 6 columns
ldi r17, $13 ;Armando Cifuentes: has 17 leters with spaces
mul r16, r13 ;leters of the message in hex
movw r31:r30, r1:r0
add r26, r30
adc r27, r3
mov r21, r28
repit: mov r28, r21
ldi r16, $0
otravez: ldi r20, $0f
rcall mandamsg
ldi r17, $11
add r28, r17
inc r16
cp r16, r18
brlt otravez
inc r21
cp r21, r26
brne repit

mandamsg:
rcall almac


almac:
rcall almaca
rcall almacr
rcall almacm
rcall almacaa
rcall almacn
rcall almacd
rcall almaco
rcall almaccero


;Leters

;The word starts: Armando
;caracter: A
almaca:
ldi r16,$7C
sts 0x0060,r16
ldi r16,$12
sts 0x0061,r16
ldi r16,$11
sts 0x0062,r16
ldi r16,$12
sts 0x0063,r16
ldi r16,$7C
sts 0x0064,r16
ldi r16,$00
sts 0x0065,r16

;caracter: r
almacr:
ldi r16,$7C
sts 0x0066,r16
ldi r16,$08
sts 0x0067,r16
ldi r16,$04
sts 0x0068,r16
ldi r16,$00
sts 0x0069,r16

;caracter: m
almacm:
ldi r16,$7C
sts 0x006a,r16
ldi r16,$04
sts 0x006b,r16
ldi r16,$78
sts 0x006c,r16
ldi r16,$04
sts 0x006d,r16
ldi r16,$78
sts 0x006e,r16
ldi r16,$00
sts 0x006f,r16

;caracter: a
almacaa:
ldi r16,$30
sts 0x0070,r16
ldi r16,$4A
sts 0x0071,r16
ldi r16,$4A
sts 0x0072,r16
ldi r16,$4A
sts 0x0073,r16
ldi r16,$3C
sts 0x0074,r16
ldi r16,$00
sts 0x0075,r16

;caracter: n
almacn:
ldi r16,$7C
sts 0x0076,r16
ldi r16,$04
sts 0x0077,r16
ldi r16,$04
sts 0x0078,r16
ldi r16,$04
sts 0x0079,r16
ldi r16,$78
sts 0x007a,r16
ldi r16,$00
sts 0x007b,r16

;caracter: d
almacd:
ldi r16,$38
sts 0x007c,r16
ldi r16,$44
sts 0x007d,r16
ldi r16,$44
sts 0x007e,r16
ldi r16,$44
sts 0x007f,r16
ldi r16,$3F
sts 0x0080,r16
ldi r16,$00
sts 0x0081,r16

;caracter: o
almaco:
ldi r16,$38
sts 0x0082,r16
ldi r16,$44
sts 0x0083,r16
ldi r16,$44
sts 0x0084,r16
ldi r16,$44
sts 0x0085,r16
ldi r16,$38
sts 0x0086,r16
ldi r16,$00
sts 0x0087,r16


;end of the word: Armando

;caracter:
almaccero:
ldi r16,$00
sts 0x0088,r16
ldi r16,$00
sts 0x0089,r16


but doesn't work. The matrix led doesn't show me anything.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top