Ir ao conteúdo
  • Cadastre-se

PIC Assembly Matriz de Led


Posts recomendados

boa noite pessoal, estou me debatendo com um código em assembly a algumas semanas, o problema é o seguinte de uma contador de uma matriz de led 7x5 que tem como objetivo ir de a-z maiúsculo e minusculo e também números de 1 a 9, porém com todos esses valores estoura o program counter sendo assim estava procurando na internet que usando o pclath eu consigo resolver esse problema, sendo que não posso separar em duas tabelas, segue o que ja fiz, agradecido desde ja

 

 

#include "p16f877a.inc"

; config
; __config 0x3f39
 __config _fosc_xt & _wdte_off & _pwrte_off & _boren_off & _lvp_off & _cpd_off & _wrt_off & _cp_off


offset    equ    20h
pointer    equ    21h
contint    equ    22h
aux    equ    23h

    org    0x0000            ; processor reset vector
    goto    inicio                 ; go to beginning of program
    org    0x0004            ; processor interrup vector
    goto    intertim                   ; go to interrup of program

inicio    bsf    status,5
    movlw    06h
    movwf    adcon1
    clrf    trisa
    movlw    00h    ;rb0 ?
    movwf    trisb
    movlw    0f8h
    movwf    trisd
    movlw    60h
    movwf    intcon
    movlw    84h
    movwf    option_reg
    bcf    status,5
    clrf    portd
    movlw    64h
    movwf    tmr0
    clrf    offset
    clrf    pointer
    clrf    contint
    bsf    intcon,7
ini1    nop
    goto    ini1
    
intertim    bsf    portd,0
    movlw    65h
    subwf    contint,w
    btfss    status,z
    goto    inttim1
    movlw    02h
    iorwf    portd,f
    clrf    contint
    movlw    05h
    addwf    offset,f
inttim1    movlw    0b9h
    subwf    offset,w
    btfsc    status,z
    clrf    offset
    movf    offset,w
    addwf    pointer,w
    call    tabela
    movwf    portb
    rlf    portb,f
    movf    pointer,w
    call    tabelacol
    movwf    porta
    incf    pointer,f
    movlw    05h
    subwf    pointer,w
    btfsc    status,z
    clrf    pointer
    movlw    64h
    movwf    tmr0
    incf    contint,f
    bcf    intcon,2
    bcf    portd,0
    retfie

tabelacol    addwf    pcl,f
    retlw    10h
    retlw    08h
    retlw    04h
    retlw    02h
    retlw    01h
    
    
tabela    addwf    pcl,f
    retlw    3eh;
    retlw    51h
    retlw    49h
    retlw    45h
    retlw    3eh
    retlw    44h;1
    retlw    42h
    retlw    0ffh
    retlw    40h
    retlw    40h
    retlw    42h;2    
    retlw    61h
    retlw    51h
    retlw    49h
    retlw    46h
    retlw    22h;3    
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    36h
    retlw    0fh;4
    retlw    08h
    retlw    08h
    retlw    08h
    retlw    7fh
    retlw    4fh;5
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    31h
    retlw    3eh;6
    retlw    51h
    retlw    49h
    retlw    49h
    retlw    31h
    retlw    01h;7
    retlw    01h
    retlw    09h
    retlw    09h
    retlw    7fh
    retlw    36h;8
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    36h
    retlw    06h;9
    retlw    09h
    retlw    09h
    retlw    09h
    retlw    7eh
    retlw    3eh;a
    retlw    09h
    retlw    09h
    retlw    09h
    retlw    7eh
    retlw    7fh;b
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    36h
    retlw    3eh;c
    retlw    41h
    retlw    41h
    retlw    41h
    retlw    22h
    retlw    7fh;d
    retlw    41h
    retlw    41h
    retlw    41h
    retlw    3eh
    retlw    7fh;e
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    41h
    retlw    7fh;f
    retlw    09h
    retlw    09h
    retlw    09h
    retlw    01h
    retlw    3eh;g
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    32h
    retlw    7fh;h
    retlw    08h
    retlw    08h
    retlw    08h
    retlw    7fh
    retlw    41h;i
    retlw    41h
    retlw    7fh
    retlw    41h
    retlw    41h
    retlw    41h;j
    retlw    41h
    retlw    3fh
    retlw    01h
    retlw    01h
    retlw    7fh;k
    retlw    0ch
    retlw    12h
    retlw    21h
    retlw    40h
    retlw    7fh;l
    retlw    40h
    retlw    40h
    retlw    40h
    retlw    40h
    retlw    10h;l
    retlw    22h
    retlw    20h
    retlw    22h
    retlw    10h
    retlw    7fh;m
    retlw    02h
    retlw    04h
    retlw    02h
    retlw    7fh
    retlw    7fh;n
    retlw    04h
    retlw    08h
    retlw    10h
    retlw    7fh; 0111 1111
    retlw    3eh;o
    retlw    41h
    retlw    41h
    retlw    41h
    retlw    3eh
    retlw    7fh;p
    retlw    09h
    retlw    09h
    retlw    09h
    retlw    06h
    retlw    3eh;q
    retlw    41h
    retlw    51h
    retlw    61h
    retlw    7eh
    retlw    7fh;r
    retlw    09h
    retlw    19h
    retlw    29h
    retlw    46h
    retlw    26h;s
    retlw    49h
    retlw    49h
    retlw    49h
    retlw    32h
    retlw    01h;t
    retlw    01h
    retlw    7fh
    retlw    01h
    retlw    01h
    retlw    3fh;u
    retlw    40h
    retlw    40h
    retlw    40h
    retlw    3fh
    retlw    1fh;v
    retlw    20h
    retlw    40h
    retlw    20h
    retlw    1fh
    retlw    7fh;w
    retlw    20h
    retlw    10h
    retlw    20h
    retlw    7fh
    retlw    63h;x
    retlw    14h
    retlw    08h
    retlw    14h
    retlw    63h
    retlw    03h;y
    retlw    04h
    retlw    78h
    retlw    04h
    retlw    03h
    retlw    21h;z
    retlw    51h
    retlw    49h
    retlw    45h
    retlw    43h
    retlw    3ch;a
    retlw    42h
    retlw    42h
    retlw    24h
    retlw    7fh
    retlw    7fh;b
    retlw    48h
    retlw    48h
    retlw    48h
    retlw    30h
    retlw    3ch;c
    retlw    42h
    retlw    42h
    retlw    42h
    retlw    24h
    retlw    30h;d
    retlw    48h
    retlw    48h
    retlw    48h
    retlw    7fh
    retlw    3ch;e
    retlw    4ah
    retlw    4ah
    retlw    4ah
    retlw    24h
    retlw    7eh;f
    retlw    0ah
    retlw    0ah
    retlw    0ah
    retlw    02h
    retlw    24h;g
    retlw    4ah
    retlw    4ah
    retlw    4ah
    retlw    3ch
    retlw    7fh;h
    retlw    08h
    retlw    08h
    retlw    08h
    retlw    78h
    retlw    00h;i
    retlw    00h
    retlw    7ah
    retlw    00h
    retlw    00h
    retlw    20h;j
    retlw    40h
    retlw    7dh
    retlw    00h
    retlw    00h
    retlw    7eh;k
    retlw    18h
    retlw    24h
    retlw    30h
    retlw    00h
    retlw    7eh;l
    retlw    40h
    retlw    40h
    retlw    40h
    retlw    40h
    retlw    7eh;m
    retlw    02h
    retlw    04h
    retlw    02h
    retlw    7eh
    retlw    78h;n
    retlw    04h
    retlw    04h
    retlw    04h
    retlw    78h
    retlw    3ch;o
    retlw    42h
    retlw    42h
    retlw    42h
    retlw    3ch
    retlw    7eh;p
    retlw    12h
    retlw    12h
    retlw    12h
    retlw    0ch
    retlw    04h;q
    retlw    0ah
    retlw    2ah
    retlw    2ah
    retlw    7eh
    retlw    00h;r
    retlw    00h
    retlw    7eh
    retlw    04h
    retlw    02h
    retlw    4ch;s
    retlw    52h
    retlw    52h
    retlw    52h
    retlw    64h
    retlw    02h;t
    retlw    02h
    retlw    7eh
    retlw    02h
    retlw    02h
    retlw    3eh;u
    retlw    40h
    retlw    40h
    retlw    40h
    retlw    3eh
    retlw    1eh;v
    retlw    20h
    retlw    40h
    retlw    20h
    retlw    1eh
    retlw    7eh;w
    retlw    40h
    retlw    20h
    retlw    40h
    retlw    7eh
    retlw    62h;x
    retlw    14h
    retlw    08h
    retlw    14h
    retlw    62h
    retlw    02h;y
    retlw    04h
    retlw    78h
    retlw    04h
    retlw    02h
    retlw    62h;z
    retlw    52h
    retlw    4ah
    retlw    46h
    retlw    42h
    end

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá amigo. Isto não deve te ajudar muito. Mas eis um bom momento pra cogitares migrar para outra linguagem. P.ex. em c ficaria algo como...

unsigned char const tabela[]

{

0x3e,
0x51,
0x49,

//...

0x4a,

0x46,

0x42,

}

...

//p.ex.

unsigned int i=0;

PORTB=tabela[ i ];

i++;

...

 

Em 22/09/2018 às 22:16, Willian18 disse:

algumas semanas

Digitei isso em alguns segundos kk

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...