Ir ao conteúdo
  • Cadastre-se

dmmartins

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

posts postados por dmmartins

  1. ola vtrx, gosto de assebly mesmo, tenho a placa uno, fiz algumas coisas em delphi7, mas gostaria de ver este tutorial em bascom, Não é curso, é meu hobby mesmo e quero terminar esse projeto, vou postar o codigo que falta para continuar o topico. A respeito do email era pra manter o contato. grato amigo.

    <

                                ;80x7 Display 
                           ; projeto dm_led  
                           ; iniciado em 23/10/2021
                           ; desenvolvido por Dino Martins
        list    p=16F877A
        list    n=0
        include <P16F877A.INC>
        __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF & _CPD_OFF & _DEBUG_OFF
        ERRORLEVEL -302
        #DEFINE bank0    bcf    STATUS,RP0    ;volta para banco 0
        #DEFINE bank1    bsf STATUS,RP0      ;seleciona banco 1
        cblock 0x20
    load
    load2
    flags 
    cycles
    countnum
    countai
    countjq
    countrz
    countsp
    rall1     
    temp1
    temp2
        ENDC
    DCounter1 EQU 0X0C


     #DEFINE bt_enter            portd,0 
     #DEFINE bt_back             portd,1 
     #DEFINE bt_space           portd,2
     #DEFINE bt_numero        portd,3 
     #DEFINE bt_ai                   portd,4
     #DEFINE bt_jq                   portd,5 
     #DEFINE bt_rz                   portd,6

    ;*************************************
         ORG 0x00             ;This sets up
          GOTO INICIO
         ORG 0X04
         RETFIE
      ;***********************
    tablent  
                 ADDWF 02h,1
                 RETLW b'00000001'  ;     enter
                 RETLW b'00000001' 
                 RETLW b'00000001' 
                 RETLW b'00000001' 
                 RETLW b'00000001' 
                 RETLW b'00000000' 
    ;***********************
    Tablesp
                 ADDWF 02h,1      ;Add W to Program Counter    
                 RETLW b'00000000'  ;         space
                 RETLW b'00000000' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 

    ;***********************
    Tablenum ; numeros
                 ADDWF 02h,1      ;Add W to Program Counter    
                 RETLW 3Eh  ;         ;0
                 RETLW 41h 
                 RETLW 41h
                 RETLW 41h
                 RETLW 3Eh
                 RETLW b'00000000' 
                 RETLW 00h           ;1
                 RETLW 10h
                 RETLW 20h
                 RETLW 7Fh 
                 RETLW 00h
                 RETLW b'00000000' 
               RETLW 27h           ;2
                 RETLW 49h
                 RETLW 49h
                 RETLW 49h
                 RETLW 31h
                 RETLW b'00000000' 
                 RETLW 22h           ;3
                 RETLW 41h
                 RETLW 49h 
                 RETLW 49h
                 RETLW 36h
                 RETLW b'00000000' 
                 RETLW 0Ch           ;4
                 RETLW 14h
                 RETLW 24h
                 RETLW 7Fh
                 RETLW 04h
                 RETLW b'00000000' 
                 RETLW 7Ah           ;5
                 RETLW 49h
                 RETLW 49h
                 RETLW 49h
                 RETLW 46h
                 RETLW b'00000000' 
                 RETLW 3Eh           ;6
                 RETLW 49h
                 RETLW 49h 
                 RETLW 49h 
                 RETLW 26h
                 RETLW b'00000000' 
                 RETLW 40h           ;7
                 RETLW 47h
                 RETLW 48h
                 RETLW 50h
                 RETLW 60h
                 RETLW b'00000000' 
                 RETLW 36h            ;8
                 RETLW 49h
                 RETLW 49h
                 RETLW 49h
                 RETLW 36h
                 RETLW b'00000000' 
                 RETLW 32h            ;9
                 RETLW 49h
                 RETLW 49h
                 RETLW 49h 
                 RETLW 3Eh
                 RETLW b'00000000'   

                 RETLW b'00001000'  ; traço    
                 RETLW b'00001000' 
                 RETLW b'00001000' 
                 RETLW b'00001000' 
                 RETLW b'00001000' 
                 RETLW b'00000000' 

                  RETLW b'00000000'  ;parentese        
                 RETLW b'00000000' 
                 RETLW b'00111110' 
                 RETLW b'01000001' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 

                 RETLW b'00000000'  ;parentese        
                 RETLW b'01000001' 
                 RETLW b'00111110' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 

                 RETLW b'00000000'  ;barra       
                 RETLW b'00000001' 
                 RETLW b'00000100' 
                 RETLW b'00010000' 
                 RETLW b'01000000' 
                 RETLW b'00000000' 

                 RETLW b'00000000'  ;barra       
                 RETLW b'01000000' 
                 RETLW b'00010000' 
                 RETLW b'00000100' 
                 RETLW b'00000001' 
                 RETLW b'00000000' 

                 RETLW b'00000000'  ; exclamação      
                 RETLW b'00000000' 
                 RETLW b'01111101' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 
                 RETLW b'00000000' 

    ;****************************************
    Tableai 
                 ADDWF 02h,1      ;Add W to Program Counter    
                 RETLW b'00111111'  ;A        
                 RETLW b'01001000' 
                 RETLW b'01001000' 
                 RETLW b'01001000' 
                 RETLW b'00111111' 
                 RETLW b'00000000' 

                 RETLW b'01111111'  ;  B      
                 RETLW b'01001001' 
                 RETLW b'01001001' 
                 RETLW b'01001001' 
                 RETLW b'00110110' 
                 RETLW b'00000000' 

                 RETLW b'00111110'  ;  C    
                 RETLW b'01000001' 
                 RETLW b'01000001' 
                 RETLW b'01000001' 
                 RETLW b'00100010' 
                 RETLW b'00000000' 

                 RETLW b'01111111'  ;  D    
                 RETLW b'01000001' 
                 RETLW b'01000001' 
                 RETLW b'01000001' 
                 RETLW b'00111110' 
                 RETLW b'00000000' 

                 RETLW 7Fh ;E
                 RETLW 49h
                 RETLW 49h
                 RETLW 49h
                 RETLW 41h
                 RETLW b'00000000' 

                 RETLW b'01111111'  ; F     
                 RETLW b'01001000' 
                 RETLW b'01001000' 
                 RETLW b'01001000' 
                 RETLW b'01000000' 
                 RETLW b'00000000' 

                 RETLW b'00111110'  ; G     
                 RETLW b'01000001' 
                 RETLW b'01000001' 
                 RETLW b'01000101' 
                 RETLW b'00100110' 
                 RETLW b'00000000' 

                 RETLW b'01111111'  ; H   
                 RETLW b'00001000' 
                 RETLW b'00001000' 
                 RETLW b'00001000' 
                 RETLW b'01111111' 
                 RETLW b'00000000' ; 

                 RETLW b'00000000'  ; I     
                 RETLW b'01000001' 
                 RETLW b'01111111' 
                 RETLW b'01000001' 
                 RETLW b'00000000' 
                 RETLW b'00000000'  
    ;*********************************
    tablejq
                 ADDWF 02h,1             ;             Add W to Program Counter
                 RETLW b'00000110' ; J     
                 RETLW b'00000001' 
                 RETLW b'00000001'
                 RETLW b'00000001'
                 RETLW b'01111110' 
                 RETLW b'00000000' 

                 RETLW b'01111111' ; K   
                 RETLW b'00001000' 
                 RETLW b'00010100'
                 RETLW b'00100010'
                 RETLW b'00000001' 
                 RETLW b'00000000' 

                 RETLW b'01111111' ;L     
                 RETLW b'00000001' 
                 RETLW b'00000001'
                 RETLW b'00000001'
                 RETLW b'00000001' 
                 RETLW b'00000000' 

                 RETLW b'00111100' ;Ç    
                 RETLW b'01000010' 
                 RETLW b'01000011'
                 RETLW b'01000010'
                 RETLW b'00100100' 
                 RETLW b'00000000' 

                 RETLW b'01111111'; M
                 RETLW b'00100000'
                 RETLW b'00011110'
                 RETLW b'00100000'
                 RETLW b'01111111'
                 RETLW b'00000000' 

                 RETLW b'01111111' ;N    
                 RETLW b'00100000' 
                 RETLW b'00011000'
                 RETLW b'00000100'
                 RETLW b'01111111' 
                 RETLW b'00000000' 

                 RETLW 3Eh ;O
                 RETLW 41h
                 RETLW 41h
                 RETLW 41h
                 RETLW 3Eh
                 RETLW b'00000000' 

                 RETLW b'01111111' 😜  
                 RETLW b'01001000' 
                 RETLW b'01001000'
                 RETLW b'01001000'
                 RETLW b'00110000' 
                 RETLW b'00000000' 

                 RETLW b'00111110' ;Q  
                 RETLW b'01000001' 
                 RETLW b'01000101'
                 RETLW b'01000011'
                 RETLW b'00111111' 
                 RETLW b'00000000' 
    ;**************************************
    tablerz
                 ADDWF 02h,1             ;          Add W to Program Counter
                 RETLW b'01111111' ;R  
                 RETLW b'01001000' 
                 RETLW b'01001100'
                 RETLW b'01001010'
                 RETLW b'00110001' 
                 RETLW b'00000000' 

                 RETLW 32h ;S
                 RETLW 49h
                 RETLW 49h
                 RETLW 49h
                 RETLW 26h
                 RETLW b'00000000' 

                 RETLW 40h ;T
                 RETLW 40h
                 RETLW 7Fh
                 RETLW 40h
                 RETLW 40h
                 RETLW b'00000000' 

                 RETLW b'01111110' ;U  
                 RETLW b'00000001' 
                 RETLW b'00000001'
                 RETLW b'00000001'
                 RETLW b'01111110' 
                 RETLW b'00000000' 

                 RETLW b'01111000' ;v  
                 RETLW b'00000110' 
                 RETLW b'00000001'
                 RETLW b'00000110'
                 RETLW b'01111000' 
                 RETLW b'00000000' 

                 RETLW b'01111110' ; W
                 RETLW b'00000001' 
                 RETLW b'00011111'
                 RETLW b'00000001'
                 RETLW b'01111110' 
                 RETLW b'00000000' 

                 RETLW b'01000001' ; X 
                 RETLW b'00100010' 
                 RETLW b'00011100'
                 RETLW b'00100010'
                 RETLW b'01000001' 
                 RETLW b'00000000' 

                 RETLW b'01100000' ;Y  
                 RETLW b'00010000' 
                 RETLW b'00001111'
                 RETLW b'00010000'
                 RETLW b'01100000' 
                 RETLW b'00000000' 

                 RETLW b'01000011' ;Z 
                 RETLW b'01000101' 
                 RETLW b'01001001'
                 RETLW b'01010001'
                 RETLW b'01100001' 
                 RETLW b'00000000'  
    ;****************************************

    ;*************************
    GHOST      
                          BCF PORTA,0           
                          BSF PORTA,1
                NOP
                BCF PORTA,1
    ;************************
                  MOVF 2ch,0    ;01
                  CALL DelA
                  MOVF 2dh,0 
                  CALL DelA
                  MOVF 2eh,0
                  CALL DelA
                  MOVF 2fh,0
                  CALL DelA
                  MOVF 30h,0 
                  CALL DelA
               
                  MOVF 31h,0  ;02
                  CALL DelA
                  MOVF 32h,0
                  CALL DelA
                  MOVF 33h,0
                  CALL DelA
                  MOVF 34h,0 
                  CALL DelA
                  MOVF 35h,0 
                  CALL DelA
                  MOVF 36h,0
                  CALL DelA

                  MOVF 37h,0   ;03
                  CALL DelA
                  MOVF 38h,0
                  CALL DelA
                  MOVF 39h,0
                  CALL DelA
                  MOVF 3ah,0 
                  CALL DelA
                  MOVF 3bh,0
                  CALL DelA
                  MOVF 3ch,0
                  CALL DelA
                  MOVF 3dh,0
                  CALL DelA

                  MOVF 3eh,0  ;04
                  CALL DelA        
                  MOVF 3fh,0  
                  CALL DelA
                  MOVF 40h,0
                  CALL DelA
                  MOVF 41h,0
                  CALL DelA
                  MOVF 42h,0
                  CALL DelA
                  MOVF 43h,0 
                  CALL DelA

                  MOVF 44h,0 ;05
                  CALL DelA
                  MOVF 45h,0
                  CALL DelA
                  MOVF 46h,0
                  CALL DelA
                  MOVF 47h,0
                  CALL DelA
                  MOVF 48h,0 
                  CALL DelA
                  MOVF 49h,0  
                  CALL DelA
                 return ;até fica regular
                  MOVF 4ah,0  ;06
                  CALL DelA
                  MOVF 4bh,0
                  CALL DelA
                  MOVF 4ch,0
                  CALL DelA
                  MOVF 4dh,0
                  CALL DelA     
                  MOVF 4eh,0  
                  CALL DelA
                  MOVF 4fh,0
                  CALL DelA

                  MOVF 50h,0   ;07
                  CALL DelA
                  MOVF 51h,0
                  CALL DelA
                  MOVF 52h,0 
                  CALL Dela
                  MOVF 53h,0 
                  CALL Dela
                  MOVF 54h,0
                  CALL Dela
                  MOVF 55h,0
                  CALL Dela
                  

                  MOVF 56h,0  ;08
                  CALL Dela 
                  MOVF 57h,0 
                  CALL Dela
                  MOVF 58h,0  
                  CALL Dela
                  MOVF 59h,0
                  CALL Dela
                  MOVF 5ah,0
                  CALL Dela
                  MOVF 5bh,0
                  CALL Dela
                    
                  MOVF 5ch,0   ;09
                  CALL DelA
                  MOVF 5dh,0  
                  CALL DelA
                  MOVF 5eh,0
                  CALL DelA
                  MOVF 5fh,0
                  CALL DelA
                  MOVF 60h,0
                  CALL DelA
                  MOVF 61h,0 
                  CALL DelA
                  
                
                  MOVF 62h,0  ;10
                  CALL DelA
                  MOVF 63h,0
                  CALL DelA
                  MOVF 64h,0
                  CALL DelA
                  MOVF 65h,0
                  CALL DelA
                  MOVF 66h,0 
                  CALL DelA
                  MOVF 67h,0           
                  CALL DelA

                  MOVF 68h,0  ;10
                  CALL DelA
                  MOVF 69h,0
                  CALL DelA
                  MOVF 6ah,0
                  CALL DelA
                  MOVF 6bh,0
                  CALL DelA
                  MOVF 6ch,0 
                  CALL DelA
                  MOVF 6dh,0
                  CALL DelA
               
                  MOVF 6eh,0  ;10
                  CALL DelA
                  MOVF 6fh,0
                  CALL DelA
                  MOVF 70h,0
                  CALL DelA
                  MOVF 71h,0
                  CALL DelA
                  MOVF 72h,0 
                  CALL DelA
                  MOVF 73h,0           
                  CALL DelA
                  RETURN    
    ;*****************************
    DelA
            MOVWF PORTB
         MOVLW .16       
        MOVWF DCounter1       
    LOOP    
        DECFSZ DCounter1, 1
        GOTO LOOP
                BSF PORTA,0
                BSF PORTA,1
                BCF PORTA,1
                RETURN
    ;*****************************
    F_entra  
              MOVLW 06
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGh2ent
              MOVF 73h,0      ; 37H Move table pointer to W
              CALL Tablent
              MOVWF 00        ;(move into what FSR looks at)
              INCF FSR,1      ;Increment the FSR to look at next file
              INCF 73h,1
              DECFSZ  cycles ,1
              GOTO FillGh2ent
              RETURN
    ;*****************SPACE*********************
    F_SPACE  
              MOVLW 06
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGh2SP 
              MOVF countSP,0      ; 37H Move table pointer to W
              CALL Tablesp
              MOVWF 00        ;(move into what FSR looks at)
              INCF FSR,1      ;Increment the FSR to look at next file
              INCF countSP,1
              DECFSZ  cycles ,1
              GOTO FillGh2SP
              RETURN
    ;*********** NUMEROS **********************
    F_numero 
              MOVLW 06
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGh2numm 
              MOVF countnum,0 ; 
              CALL Tablenum ; numeros
              MOVWF 00        ;(move into what FSR looks at)
              INCF FSR,1      ;Increment the FSR to look at next file
              INCF countnum,1
              DECFSZ  cycles ,1
              GOTO FillGh2numm
              RETURN
    ;*****************************
    F_x   ;back
              MOVLW 07
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load2          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGh12 
           CLRF INDF     ;apagar o registrador INDF  
           DECF FSR,1     ;incrementar o ponteiro
              DECFSZ  cycles ,1
              GOTO FillGh12
              INCF FSR,1
              RETURN
    ;*****************************
    F_ai  
              MOVLW 06
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGhlaii
              MOVF countai,0      ; 37H Move table pointer to W
              CALL Tableai
              MOVWF 00        ;(move into what FSR looks at)
              INCF FSR,1      ;Increment the FSR to look at next file
              INCF countai,1
              DECFSZ  cycles ,1
              GOTO FillGhlaii
              RETURN
    ;**********************************
    F_jq  
              MOVLW 06
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGhljqq
              MOVF countjq,0      ; 37H Move table pointer to W
              CALL Tablejq
              MOVWF 00        ;(move into what FSR looks at)
              INCF FSR,1      ;Increment the FSR to look at next file
              INCF countjq,1
              DECFSZ  cycles ,1
              GOTO FillGhljqq
              RETURN
    ;*****************************
    F_rz
              MOVLW 06
              MOVWF cycles       ;5 cycles of Loading
              MOVFW load          ;11H
              MOVWF fsr    ;Move start of Ghost locations to FSR
    FillGhlrzz
              MOVF countrz,0      ; 37H Move table pointer to W
              CALL Tablerz
              MOVWF 00        ;(move into what FSR looks at)
              INCF FSR,1      ;Increment the FSR to look at next file
              INCF countrz,1
              DECFSZ  cycles ,1
              GOTO FillGhlrzz
              RETURN

    ;*****************************
    Main      

                  MOVLW 00
                  MOVWF countnum
                   movlw   2cH
                   movwf   load
                   call F_numero 
    Main1  
            bcf portd,0 ;enter
            bcf portd,1 ;backspace
            bcf portd,2 ;space
            bcf portd,3 ;numero
            bcf portd,4 ;ai
            bcf portd,5 ;jq
            bcf portd,6 ;rz
            bcf portd,7 ;space
          
    ;********************************
    Main2      
                   CALL  RESET1          
                   CALL  GHOST

                  btfss  bt_numero    
                  goto   numeros         ;zero
                   btfss  bt_ai
                   goto   L_AI  
                   btfss  bt_jq
                   goto   L_JQ 
                  btfss  bt_rz
                   goto   L_RZ
                   btfss  bt_space
                   goto space1   
                   btfss  bt_enter
                   goto   entra
                   btfss bt_back
                   goto back
                   goto main1
    ;******flags**********
    flags_1
           
            bsf portd,0 ;enter
            bsf portd,1 ;back
            bsf porta,2 ;space
            bsf portd,3 ;numero
            bsf portd,4 ;ai
            bsf portd,5 ;jq
            bsf portd,6 ;rz
          
            return
    ;********************
    entra
            btfsc portd,0 
            goto Main2
            bsf portd,0
            clrf countai
            clrf countjq
            clrf countrz
            clrf countnum
            clrf countsp
            movf 73h,0          
            XORLW 36h       
            btfss 03,2   
            goto passent
            goto main2
    passent
            clrf 73h
            movf fsr,0
            movwf load
            call flags_1
            call f_entra
            clrf countnum
    ent
            btfsc portd,0 ; testa se 0
            goto main1
            goto ent      
    ;**************
    back ;volta
            btfsc portd,1 
            goto Main2
            bsf portd,1
            clrf countai
            clrf countjq
            clrf countrz
            clrf countnum
          movf fsr,0          
            XORLW 2ch        
           btfss 03,2   
          goto pass
            goto main2
    pass
            clrf load2
            movf fsr,0
            movwf load2
            call flags_1
            call F_x 
            movf fsr,0
            movwf load 
    bk
            btfsc portd,1 ; testa se 0
            goto main2
           goto bk    
    ;****************
    space1 ; espaço
            btfsc portd,2   
            goto Main2
            bsf portd,2
             clrf countai
             clrf countjq
             clrf countrz
             clrf countnum
             clrf countsp
            movf fsr ,0          
            XORLW 3eh  ;fim da tabela       
            btfss 03,2   
            goto passpace
             clrf countsp
             goto main1
    passpace
            movf fsr,0
            clrf load
            movwf load
            call flags_1
            call F_space
             nop
           clrf countsp
           movf fsr,0
            clrf load
            movwf load     
            call F_space
            clrf countnum
    spe
            btfsc portd,2 ; testa se 0
           goto main1  
           goto spe

    ;**************
    numeros
         btfsc    portd,3   ;pula se zero
             goto    Main2 
             bsf      portd,3   
             movf   countnum,0          
             XORLW 60h        
             BTFSS 03,2         
             goto  fillnum    ; faz o fill
             goto passnum ; jump
    fillnum
             call flags_1      ; all flags bsf
             call f_numero  ;call fill
    nu
             btfss portd,3 ; testa se 0
             goto nu
             goto main1
    passnum
             clrf            countnum
             call flags_1
             call f_numero   
    num
             btfsc portd,3 ; testa se 0
             goto main1
             goto num

    ;******* LETRAS *******
    L_AI   
          btfsc     portd,4   ;pula se zero
             goto      Main2    
             bsf         portd,4 
             nop
             clrf countjq
             clrf countrz
             clrf countnum
             movf      countai,0
             XORLW 36H       
             BTFSS 03,2    
             goto fillai
             goto passai
    fillai
            call flags_1 ;marca como press
             call f_ai
    na
             btfsc portd,4 ; testa se 0
             goto main1
             goto na

    passai
             call flags_1
             clrf countai
             call f_ai
    nai
             btfsc portd,4
             goto main1
          goto nai
    ;****************
    L_JQ 
          btfsc      portd,5   ;pula se zero
             goto       Main2     
             bsf          portd,5 
             nop
             clrf countai
             clrf countrz
             clrf countnum
             movf       countjq,0
             XORLW 36h       
             BTFSS 03,2    
             goto  filljq
              goto passjq
    filljq
             call flags_1
             call f_jq
    nj
             btfsc portd,5 ; testa se 0
             goto main1
             goto nj

    passjq
             clrf     countjq
             call flags_1
             call f_jq
    njq
             btfsc portd,5 ; testa se 0
             goto main1
             goto njq

    ;**************
    L_RZ 
          btfsc       portd,6   ;pula se zero
             goto         Main2     
             bsf           portd,6
             nop
             clrf countjq
             clrf countai
             clrf countnum
             movf countrz,0
             XORLW 36h           
             BTFSS 03,2    
             goto fillrz
             goto passrz
    fillrz
             call flags_1
             call f_rz
    nr
             btfsc portd,6 ; testa se 0
             goto main1
             goto nr

    passrz
             call flags_1
             clrf countrz
             call f_rz
    nrz
             btfsc portd,6 ; testa se 0
             goto main1
             goto nrz

    ;**************
    RESET1
                 MOVLW 107
                 MOVWF RALL1
                 BSF PORTA,0
    RALL2
             nop
                nop
                 DECFSZ RALL1,1
                 GOTO CLK
                 RETURN
    CLK      BSF PORTA,1
                 BCF PORTA,1
                 GOTO RALL2  
    ;***************************  
    INICIO

        BANK1
        MOVLW b'11111100'
        MOVWF TRISA ; SETA PORTA COMO ENTRADA
        MOVLW b'00000000' 
        MOVWF TRISB ; SETA PORTB COMO SAIDA
        MOVLW b'00001111'
        MOVWF TRISC ; SETA PORTC COMO ENTRADA
        MOVLW b'11111111'
        MOVWF TRISD ; SETA PORTD COMO SAIDA/ENTRADA
        MOVLW b'00000000'
        MOVWF TRISE ; SETA PORTE COMO SAIDA
        MOVLW b'10000001' ; ps0=1;prescale 1:4;psa= timer0;tose=subida;tocs=clockinternorbpu=0pullupativados
        MOVWF OPTION_REG ; PULL UP DESABILITADOS E TMR0 1:256
        MOVLW b'10000000' ;
        MOVWF INTCON ;INTERRUPÇÃO TIMER0 HABILITADA
        MOVLW b'00000110' ;00000110
        MOVWF ADCON1        
        BANK0 
        MOVLW H'7'
           MOVWF CMCON
            
    ;*************************************************
           clrf load2
           clrf load
           clrf  cycles 
           clrf countnum
           clrf countsp
           clrf countai
           clrf countjq
           clrf countrz
           clrf rall1
           clrf porta
           clrf portb
           clrf portc
           clrf portd
           clrf porte
           clrf 73h   ;  ENTRA       
          goto main
     
            END


     
     
        

    >

    o que eu quero é colocar de 12 a 24 caracters nesse display, 24 matrix 7x6 no total, mas quero começar com 12 x7 . não é scrolling. quero  letras fixas. assembly 

  2. desculpa a demora, tirei a parte dos butões pra ficar menor o cidigo

    <

        
        list    p=16f877a
        list    n=0
        include
        __config _cp_off & _wdt_off & _boden_off & _pwrte_on & _xt_osc & _lvp_off & _cpd_off & _debug_off
        errorlevel -302
        #define bank0    bcf    status,rp0    ;volta para banco 0
        #define bank1    bsf status,rp0      ;seleciona banco 1
        cblock 0x20
    load
    load2
    flags 
    cycles
    countnum
    countai
    countjq
    countrz
    countsp
    rall1     

        endc
    dcounter1 equ 0x0c


     #define bt_enter            portd,0 
     #define bt_back             portd,1 
     #define bt_space           portd,2
     #define bt_numero        portd,3 
     #define bt_ai                   portd,4
     #define bt_jq                   portd,5 
     #define bt_rz                   portd,6

    ;*************************************

         org 0x00             ;this sets up the ports  
          goto inicio
         org 0x04
         retfie
    ;***********************
    tablent  
                 addwf 02h,1
                 retlw b'00000001'  ;     enter
                 retlw b'00000001' 
                 retlw b'00000001' 
                 retlw b'00000001' 
                 retlw b'00000001' 
                 retlw b'00000000' 
    ;***********************
    tablesp
                 addwf 02h,1      ;add w to program counter    
                 retlw b'00000000'  ;         space
                 retlw b'00000000' 
                 retlw b'00000000' 
                 retlw b'00000000' 
                 retlw b'00000000' 
                 retlw b'00000000' 

    ;***********************
    tablenum ; numeros
                 addwf 02h,1      ;add w to program counter    
                 retlw 3eh  ;         ;0
                 retlw 41h 
                 retlw 41h
                 retlw 41h
                 retlw 3eh
                 retlw b'00000000' 
                 retlw 00h           ;1
                 retlw 10h
                 retlw 20h
                 retlw 7fh 
                 retlw 00h
                 retlw b'00000000' 
               retlw 27h           ;2
                 retlw 49h
                 retlw 49h
                 retlw 49h
                 retlw 31h
                 retlw b'00000000' 
                 retlw 22h           ;3
                 retlw 41h
                 retlw 49h 
                 retlw 49h
                 retlw 36h
                 retlw b'00000000' 
                 retlw 0ch           ;4
                 retlw 14h
                 retlw 24h
                 retlw 7fh
                 retlw 04h
                 retlw b'00000000' 
                 retlw 7ah           ;5
                 retlw 49h
                 retlw 49h
                 retlw 49h
                 retlw 46h
                 retlw b'00000000' 
                 retlw 3eh           ;6
                 retlw 49h
                 retlw 49h 
                 retlw 49h 
                 retlw 26h
                 retlw b'00000000' 
                 retlw 40h           ;7
                 retlw 47h
                 retlw 48h
                 retlw 50h
                 retlw 60h
                 retlw b'00000000' 
                 retlw 36h            ;8
                 retlw 49h
                 retlw 49h
                 retlw 49h
                 retlw 36h
                 retlw b'00000000' 
                 retlw 32h            ;9
                 retlw 49h
                 retlw 49h
                 retlw 49h 
                 retlw 3eh
                 retlw b'00000000'   

                 retlw b'00001000'  ; traço    
                 retlw b'00001000' 
                 retlw b'00001000' 
                 retlw b'00001000' 
                 retlw b'00001000' 
                 retlw b'00000000' 

                  retlw b'00000000'  ;parentese        
                 retlw b'00000000' 
                 retlw b'00111110' 
                 retlw b'01000001' 
                 retlw b'00000000' 
                 retlw b'00000000' 

                 retlw b'00000000'  ;parentese        
                 retlw b'01000001' 
                 retlw b'00111110' 
                 retlw b'00000000' 
                 retlw b'00000000' 
                 retlw b'00000000' 

                 retlw b'00000000'  ;barra       
                 retlw b'00000001' 
                 retlw b'00000100' 
                 retlw b'00010000' 
                 retlw b'01000000' 
                 retlw b'00000000' 

                 retlw b'00000000'  ;barra       
                 retlw b'01000000' 
                 retlw b'00010000' 
                 retlw b'00000100' 
                 retlw b'00000001' 
                 retlw b'00000000' 

                 retlw b'00000000'  ; exclamação      
                 retlw b'00000000' 
                 retlw b'01111101' 
                 retlw b'00000000' 
                 retlw b'00000000' 
                 retlw b'00000000' 

    ;****************************************
    tableai 
                 addwf 02h,1      ;add w to program counter    
                 retlw b'00111111'  ;a        
                 retlw b'01001000' 
                 retlw b'01001000' 
                 retlw b'01001000' 
                 retlw b'00111111' 
                 retlw b'00000000' 

                 retlw b'01111111'  ;  b      
                 retlw b'01001001' 
                 retlw b'01001001' 
                 retlw b'01001001' 
                 retlw b'00110110' 
                 retlw b'00000000' 

                 retlw b'00111110'  ;  c    
                 retlw b'01000001' 
                 retlw b'01000001' 
                 retlw b'01000001' 
                 retlw b'00100010' 
                 retlw b'00000000' 

                 retlw b'01111111'  ;  d    
                 retlw b'01000001' 
                 retlw b'01000001' 
                 retlw b'01000001' 
                 retlw b'00111110' 
                 retlw b'00000000' 

                 retlw 7fh ;e
                 retlw 49h
                 retlw 49h
                 retlw 49h
                 retlw 41h
                 retlw b'00000000' 

                 retlw b'01111111'  ; f     
                 retlw b'01001000' 
                 retlw b'01001000' 
                 retlw b'01001000' 
                 retlw b'01000000' 
                 retlw b'00000000' 

                 retlw b'00111110'  ; g     
                 retlw b'01000001' 
                 retlw b'01000001' 
                 retlw b'01000101' 
                 retlw b'00100110' 
                 retlw b'00000000' 


                 retlw b'01111111'  ; h   
                 retlw b'00001000' 
                 retlw b'00001000' 
                 retlw b'00001000' 
                 retlw b'01111111' 
                 retlw b'00000000' ; 

                 retlw b'00000000'  ; i     
                 retlw b'01000001' 
                 retlw b'01111111' 
                 retlw b'01000001' 
                 retlw b'00000000' 
                 retlw b'00000000'  
    ;*********************************
    tablejq
                 addwf 02h,1             ;             add w to program counter
                 retlw b'00000110' ; j     
                 retlw b'00000001' 
                 retlw b'00000001'
                 retlw b'00000001'
                 retlw b'01111110' 
                 retlw b'00000000' 

                 retlw b'01111111' ; k   
                 retlw b'00001000' 
                 retlw b'00010100'
                 retlw b'00100010'
                 retlw b'00000001' 
                 retlw b'00000000' 

                 retlw b'01111111' ;l     
                 retlw b'00000001' 
                 retlw b'00000001'
                 retlw b'00000001'
                 retlw b'00000001' 
                 retlw b'00000000' 

                 retlw b'00111100' ;ç    
                 retlw b'01000010' 
                 retlw b'01000011'
                 retlw b'01000010'
                 retlw b'00100100' 
                 retlw b'00000000' 

                 retlw b'01111111'; m
                 retlw b'00100000'
                 retlw b'00011110'
                 retlw b'00100000'
                 retlw b'01111111'
                 retlw b'00000000' 

                 retlw b'01111111' ;n    
                 retlw b'00100000' 
                 retlw b'00011000'
                 retlw b'00000100'
                 retlw b'01111111' 
                 retlw b'00000000' 

                 retlw 3eh ;o
                 retlw 41h
                 retlw 41h
                 retlw 41h
                 retlw 3eh
                 retlw b'00000000' 

                 retlw b'01111111' 😜  
                 retlw b'01001000' 
                 retlw b'01001000'
                 retlw b'01001000'
                 retlw b'00110000' 
                 retlw b'00000000' 

                 retlw b'00111110' ;q  
                 retlw b'01000001' 
                 retlw b'01000101'
                 retlw b'01000011'
                 retlw b'00111111' 
                 retlw b'00000000' 
    ;**************************************
    tablerz
                 addwf 02h,1             ;          add w to program counter
                 retlw b'01111111' ;r  
                 retlw b'01001000' 
                 retlw b'01001100'
                 retlw b'01001010'
                 retlw b'00110001' 
                 retlw b'00000000' 

                 retlw 32h ;s
                 retlw 49h
                 retlw 49h
                 retlw 49h
                 retlw 26h
                 retlw b'00000000' 

                 retlw 40h ;t
                 retlw 40h
                 retlw 7fh
                 retlw 40h
                 retlw 40h
                 retlw b'00000000' 

                 retlw b'01111110' ;u  
                 retlw b'00000001' 
                 retlw b'00000001'
                 retlw b'00000001'
                 retlw b'01111110' 
                 retlw b'00000000' 

                 retlw b'01111000' ;v  
                 retlw b'00000110' 
                 retlw b'00000001'
                 retlw b'00000110'
                 retlw b'01111000' 
                 retlw b'00000000' 

                 retlw b'01111110' ; w
                 retlw b'00000001' 
                 retlw b'00011111'
                 retlw b'00000001'
                 retlw b'01111110' 
                 retlw b'00000000' 

                 retlw b'01000001' ; x 
                 retlw b'00100010' 
                 retlw b'00011100'
                 retlw b'00100010'
                 retlw b'01000001' 
                 retlw b'00000000' 

                 retlw b'01100000' ;y  
                 retlw b'00010000' 
                 retlw b'00001111'
                 retlw b'00010000'
                 retlw b'01100000' 
                 retlw b'00000000' 

                 retlw b'01000011' ;z 
                 retlw b'01000101' 
                 retlw b'01001001'
                 retlw b'01010001'
                 retlw b'01100001' 
                 retlw b'00000000'  
    ;****************************************

    ghost      ; auqi se usar taé 8 caractere fica bom 
                          bcf porta,0           
                          bsf porta,1
                nop
                bcf porta,1
    ;************************
                  movf 2ch,0 
                  call dela
                  movf 2dh,0 
                  call dela
                  movf 2eh,0
                  call dela
                  movf 2fh,0
                  call dela
                  movf 30h,0 
                  call dela
               
                  movf 31h,0
                  call dela
                  movf 32h,0
                  call dela
                  movf 33h,0
                  call dela
                  movf 34h,0 
                  call dela
                  movf 35h,0 
                  call dela
                  movf 36h,0
                  call dela

                  movf 37h,0
                  call dela
                  movf 38h,0
                  call dela
                  movf 39h,0
                  call dela
                  movf 3ah,0 
                  call dela
                  movf 3bh,0
                  call dela
                  movf 3ch,0
                  call dela
                  movf 3dh,0
                  call dela

                  movf 3eh,0 
                  call dela        
                  movf 3fh,0  
                  call dela
                  movf 40h,0
                  call dela
                  movf 41h,0
                  call dela
                  movf 42h,0
                  call dela
                  movf 43h,0 
                  call dela

                  movf 44h,0 
                  call dela
                  movf 45h,0
                  call dela
                  movf 46h,0
                  call dela
                  movf 47h,0
                  call dela
                  movf 48h,0 
                  call dela
                  movf 49h,0  
                  call dela
        
                  movf 4ah,0
                  call dela
                  movf 4bh,0
                  call dela
                  movf 4ch,0
                  call dela
                  movf 4dh,0
                  call dela     
                  movf 4eh,0  
                  call dela
                  movf 4fh,0
                  call dela
              return
                  movf 50h,0
                  call dela
                  movf 51h,0
                  call dela
                  movf 52h,0 
                  call dela
                  movf 53h,0 
                  call dela
                  movf 54h,0
                  call dela
                  movf 55h,0
                  call dela

                  movf 56h,0
                  call dela 
                  movf 57h,0 
                  call dela
                  movf 58h,0  
                  call dela
                  movf 59h,0
                  call dela
                  movf 5ah,0
                  call dela
                  movf 5bh,0
                  call dela
            
                  movf 5ch,0
                  call dela
                  movf 5dh,0  
                  call dela
                  movf 5eh,0
                  call dela
                  movf 5fh,0
                  call dela
                  movf 60h,0
                  call dela
                  movf 61h,0 
                  call dela
      
                
                  movf 62h,0  
                  call dela
                  movf 63h,0
                  call dela
                  movf 64h,0
                  call dela
                  movf 65h,0
                  call dela
                  movf 66h,0 
                  call dela
                  movf 67h,0           

                  return    
    ;************************
            
    dela
            movwf portb
         movlw 0x30        
        movwf dcounter1       
    loop    
        decfsz dcounter1, 1
        goto loop
                bsf porta,0
                bsf porta,1
                bcf porta,1
                return


    ;***************************  
    inicio

        bank1
        movlw b'11111100'
        movwf trisa ; seta porta como entrada
        movlw b'00000000' 
        movwf trisb ; seta portb como saida
        movlw b'00001111'
        movwf trisc ; seta portc como entrada
        movlw b'11111111'
        movwf trisd ; seta portd como saida/entrada
        movlw b'00000000'
        movwf trise ; seta porte como saida
        movlw b'10000001' ; ps0=1;prescale 1:4;psa= timer0;tose=subida;tocs=clockinternorbpu=0pullupativados
        movwf option_reg ; pull up desabilitados e tmr0 1:256
        movlw b'10000000' ;
        movwf intcon ;interrupção timer0 habilitada
        movlw b'00000110' ;00000110
        movwf adcon1        
        bank0 
        movlw h'7'
           movwf cmcon
            
    ;*************************************************
           clrf load2
           clrf load
           clrf  cycles 
           clrf countnum
           clrf countsp
           clrf countai
           clrf countjq
           clrf countrz
           clrf rall1
           clrf porta
           clrf portb
           clrf portc
           clrf portd
           clrf porte
           clrf 73h   ;  entra

          goto main


            end


     
     
        >

  3. GetData  


      movf   LOW(CHANNEL01),w      ; PWM 1
        addwf   FSR0L,F
        movf   HIGH(CHANNEL01),w
        addwfc  FSR0H,F
        movff   INDF0,CCPR1L        
        lfsr    0,RxBuffer          
       
        movf   LOW(CHANNEL02),w  ;PWM 2 
        addwf   FSR0L,F
        movf   HIGH(CHANNEL02),w
        addwfc  FSR0H,F
        movff   INDF0,CCPR2L          
         lfsr    0,RxBuffer    

                                    
        movf   LOW(CHANNEL03),w   ;PWM 3
        addwf   FSR0L,F
        movf   HIGH(CHANNEL03),w
        addwfc  FSR0H,F

        movff   INDF0,PWM03           

        lfsr    0,RxBuffe

     
        ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    PWMs
        clrf    PWM00
        movff    TMR0L,TEMPO
        movf    TEMPO,W
        CPFSEQ    PWM00,W
        bra        OKGO    
        return

    OKGO
    ;---------------------- porta de saida-------------------
        clrf    LEDA       

        movf    TEMPO,W       
        CPFSLT    PWM03,0
        bsf        LEDA,0

        movf    LEDA,W
        CPFSEQ    LATA,W         
        movff    LEDA,LATA   

    ; ;como colocar essa saída(Lata) em um bit do registrador 74hc595

  4. Ola amigo, mudando os bits, tenho um projeto dmx de 6 canais, usando o pic f84a , quero converter para 16 canais usando dois registradores 74hc595 se possível em asm , a ideia é que cada pata do registrador receba um canal.. Grato.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!