Autor Tema: PIC16F84 LCD Melodias Ayuda  (Leído 2544 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado aecno

  • PIC10
  • *
  • Mensajes: 2
PIC16F84 LCD Melodias Ayuda
« en: 31 de Julio de 2009, 02:27:08 »
Hola buenas noches.
Estoy trabajando en un proyecto que incorpora un PIC16F84, un lcd 2x16 y un buzzer.
Trabajo con isis de proteus en lenguaje ensamblador.
Ya tengo listo el menu que tiene que aparecer en el lcd para cambiar de melodia y para escoger la melodia que queremos se reproduzca. Esto con ra4 y ra3.
El portb como salida.

Al momento de compilarlo primero me aparecian muchos errores:
"Argument data out of range"
algo de "call instruction"
Despues borre los org que tenia
y al momento de compilarlo todo marca correcto.
Pero a la hora de simularlo me marca muchas advertencias, "Program or Eeprom data has an invalid address"

Necesito de ustedes para que me puedan orientar y/o ayudar en esto pues es un proyecto urgente para la escuela.

Como dato personal adicional:
Estoy en cursos de verano y no soy un erudito en esto.


Les dejo el programa ensamblador sin las librerias:
Adjunto incluyo el diagrama esquematico en ISIS de Proteus, el archivo .asm, el fichero .hex y las librerias utilizadas.

;En la pantalla LCD aparece un mensaje de bienvenida
;Al presionar RA4 nos indica tonos a seleccionar.
;Con RA3 seleccionamos el tono y se escuchara en el piezoelectrico (buzzer)
;
; ZONA DE DATOS **********************************************************************

   LIST      P=16F84A
   INCLUDE      <P16F84A.INC>
   INCLUDE <RETARDOS.INC>
   INCLUDE <LCD_4BIT.INC>
   INCLUDE <LCD_MENS.INC>
   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
   CBLOCK  0x10   ; Temporary storage
              tempo
              tptrl
              tptrh
              note
              length
              pitch
              temp             
              dl1
              dl2 
              ENDC

; ZONA DE CÓDIGOS ********************************************************************

   ;ORG   0X00
   ;ORG   0X100

entrypoint
   goto    sethardware         ; Salto a inicio de mi programa.-
   ;org   0x4

intvector     goto    toggle

sethardware:
              clrw                    ; Zero.
              movwf   PORTA         ; Ensure PORTB is zero before we enable it.      
              movwf   PORTB           ; Ensure PORTB is zero before we enable it.
              bsf     STATUS,RP0      ; Select Bank 1
              clrf    TRISB         ; Port B is outputs             
         ; Set up timer 0 for tone generation
         movlw   0x02            ; Prescaler on, internal clocking, divide by 4           
         movwf   OPTION_REG
              bcf     STATUS,RP0      ; Back to bank 0
Start:
   clrf   PORTB
   call   LCD_Inicializa
   movlw  Mensaje0           ; Apunta al mensaje 0.
   call   LCD_Mensaje
   call   Retardo_500ms         ; Visualiza el mensaje durante este tiempo.
   call     LCD_Linea2
   movlw  Mensaje1            ; Apunta al mensaje 1.
   call   LCD_Mensaje
   call   Retardo_500ms         ; Visualiza el mensaje durante este tiempo.
   goto     ask0

ask0:
   BTFSC  PORTA,4
   goto     Tune1
   goto   ask0
   goto   $-2

Tune1: 
   call   LCD_Borra       ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  Mensaje2         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms 
   goto   ask1 

ask1:
   BTFSC  PORTA,4
   goto     Tune2
   btfsc  PORTA,3
   goto   play0
   goto   ask1

Tune2:
   call   LCD_Borra      ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  Mensaje3         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms 
   goto   ask2

ask2:
   BTFSC  PORTA,4
   goto     Tune3
   btfsc  PORTA,3
   goto   play1
   goto     ask2

Tune3: 
   call   LCD_Borra       ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  Mensaje4         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms 
   goto   ask3 

ask3:
   BTFSC  PORTA,4
   goto     Tune4
   btfsc  PORTA,3
   goto   play2
   goto     ask3

Tune4:
   call   LCD_Borra       ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  Mensaje5         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms 
   goto   ask4 

ask4:
   BTFSC  PORTA,4
   goto     Tune5
   btfsc  PORTA,3
   goto   play3
   goto     ask4

Tune5:
   call   LCD_Borra        ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  Mensaje6          ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms 
   goto   ask5

ask5:
   BTFSC  PORTA,4
   goto     Start
   btfsc  PORTA,3
   goto   play4
   GOTO   ask5            ; Repite la visualización de todos los mensajes.                                 


play0
   call   LCD_Borra        ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  NOWPLAYING         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms
   call     LCD_Linea2
   movlw  Mensaje2
   call   LCD_Mensaje
   call   playtune0
   goto   ask1

play1
   call   LCD_Borra        ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  NOWPLAYING         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms
   call     LCD_Linea2
   movlw  Mensaje3
   call   LCD_Mensaje
   call   playtune1
   goto   ask2   

play2
   call   LCD_Borra        ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  NOWPLAYING         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms
   call     LCD_Linea2
   movlw  Mensaje4
   call   LCD_Mensaje
   goto   ask3

play3
   call   LCD_Borra        ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  NOWPLAYING         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms
   call     LCD_Linea2 
   movlw  Mensaje5
   call   LCD_Mensaje
   goto   ask4

play4
   call   LCD_Borra        ; Borra la pantalla y se mantiene así durante
   call   Retardo_500ms      ; este tiempo.
   movlw  NOWPLAYING         ; Apunta al mensaje 2.
   call   LCD_Mensaje
   call   Retardo_500ms
   call     LCD_Linea2
   movlw  Mensaje6
   call   LCD_Mensaje
   goto   ask5


;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
   addwf   PCL,F
Mensaje0                     ; Posición inicial del mensaje 0.
   DT "Welcome!!!", 0x00
Mensaje1                     ; Posición inicial del mensaje 1.
   DT "Select a song:", 0x00   
Mensaje2                     ; Posición inicial del mensaje 2.
   DT "Bach 'Badinerie'", 0x00
Mensaje3
   DT "Mozart", 0x00
Mensaje4
   DT "Himno Alegria", 0x00
Mensaje5
   DT "Titanic", 0x00
Mensaje6
   DT "Mario Bros", 0x00
NOWPLAYING
   DT "Now Playing...", 0x00


playtune0:
              movlw   0x13
         movwf   PORTB
         movlw   0x50
             movwf   tempo
         movlw   tune0 / 0x100
         movwf   tptrh
         movlw   tune0 % 0x100
         movwf   tptrl
         goto    playtune

playtune1:
         movlw   0x23
         movwf   PORTB
         movlw   0xA0
             movwf   tempo
         movlw   tune1 / 0x100
         movwf   tptrh
         movlw   tune1 % 0x100
         movwf   tptrl
         goto    playtune
                 
;Subroutine to play a tune
playtune      call    gettunedata       ; Lookup note from tune table
         movwf   note              ; Store the note code
         btfsc   note,7      ; Bit 7 set => end of tune
         goto    Start      ; Back to waiting for a button press
          incf    tptrl,F           ; Increment the tune pointer
         call    gettunedata       ; Get the note length
         movwf   length            ; Store it
                                                                             
; Play the stored note
; The tune table supports two octaves and 8 note lengths.
playnote      btfsc   note,6       ; Bit 6 set => rest
              goto    playwait          ; Silence ensues...     
         movf    note,W      ; Retrieve the note        
              andlw   0x3F              ; Mask off the pitch index
         call    pitchtable        ; and look it up in the pitchtable
          movwf   pitch             ; Transfer the value to Timer 0
          movwf   TMR0
          bcf     INTCON,T0IF       ; Clear Timer Interrupt
         bsf     INTCON,T0IE       ; Enable interrupts for Timer 0
         bsf     INTCON,GIE
playwait      movf    length,W          ; Retrieve the note length
         movwf   dl1               ; and store it in delay counter 1
loop1         movf    tempo,W             ; This value sets the timing resolution
         movwf   dl2
loop2         nop                       ; Inner delay loop delay
         nop     
         decfsz  dl2,F             
              goto    loop2
              decfsz  dl1,F             ; Outer delay loop
              goto    loop1
              bcf     INTCON,T0IE       ; Timer interrupts off           

;Fetch next note/length pair:
            incf    tptrl,F           ; Increment tune ptr           
          btfsc   STATUS,Z        ; Test for low byte rollover
          incf    tptrh,F           ; Inc high byte
              goto    playtune           ; Loop for next note

; Routine to fetch data from the tune tables
gettunedata   movf    tptrh,W         ; Set up PCLATH for the jump
              movwf   PCLATH                     
         movf    tptrl,W         ; Get low address of tptr
         movwf   PCL         ; Jump off to the table entry                                   

; Pitch lookup function                                   
pitchtable    clrf    PCLATH           ; Clear PCLATH for zero page
         addwf PCL,F
         retlw 0x11               ;C5  // Midi Code 60
         retlw 0x1F               ;C#
         retlw 0x2B               ;D
         retlw 0x37               ;D#
         retlw 0x42               ;E
         retlw 0x4D               ;F
         retlw 0x57               ;F#
         retlw 0x61               ;G
         retlw 0x6A          ;G#
         retlw 0x72               ;A (440)
         retlw 0x7A               ;Bb
         retlw 0x81               ;B
         retlw 0x89               ;C6 // Midi Code 72
         retlw 0x8F               ;Db
         retlw 0x96               ;D
         retlw 0x9C               ;Eb
         retlw 0xA1               ;E
         retlw 0xA7               ;F
         retlw 0xAC               ;F#
         retlw 0xB0               ;G
         retlw 0xB5               ;Ab
         retlw 0xB9               ;A (880)
         retlw 0xBD               ;Bb
         retlw 0xC1               ;B
         retlw 0xC4               ;C7 // Midi Code 84
         retlw 0xC8               ;Db
         retlw 0xCB               ;D
         retlw 0xCE               ;Eb
         retlw 0xD1               ;E
         retlw 0xD3               ;F
         retlw 0xD6               ;F#
         retlw 0xD8               ;G
         retlw 0xDA               ;Ab
         retlw 0xDC               ;A (1760)
               retlw 0xDE          ;Bb
         retlw 0xE0               ;
         retlw 0xE2               ;C8 // Midi Code 96


;Interrupt service - toggle the drive polarity to the sounder
;Note that this does not preserve the status bits - be careful,
;and that there is an assumption we are addressing bank 0.
toggle        movwf   temp
              movf    pitch,W
              movwf   TMR0
         movf    PORTB,W
              xorlw   0x0F
              movwf   PORTB
         bcf     INTCON,T0IF
         movf    temp,w
         retfie
;Tune Tables             
;Must be on even byte boundary                       
                       
         ;org 0x246

; Tune 0 Data
; Bach 'Badinerie' from Suite No 2
tune0   retlw 0x17   ;B
   retlw 0x78   ;240
   retlw 0x1A   ;D
   retlw 0x3C   ;120
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x78   ;240
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x0E   ;D
   retlw 0x3C   ;120
   retlw 0x0B   ;B
   retlw 0xF0   ;480
   retlw 0x06   ;F#
   retlw 0x3C   ;120
   retlw 0x0B   ;B
   retlw 0x3C   ;120
   retlw 0x0E   ;D
   retlw 0x3C   ;120
   retlw 0x0B   ;B
   retlw 0x3C   ;120
   retlw 0x0D   ;C#
   retlw 0x3C   ;120
   retlw 0x0B   ;B
   retlw 0x3C   ;120
   retlw 0x0D   ;C#
   retlw 0x3C   ;120
   retlw 0x0B   ;B
   retlw 0x3C   ;120
   retlw 0x0A   ;A#
   retlw 0x3C   ;120
   retlw 0x0D   ;C#
   retlw 0x3C   ;120
   retlw 0x10   ;E
   retlw 0x3C   ;120
   retlw 0x0D   ;C#
   retlw 0x3C   ;120
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x0B   ;B
   retlw 0x78   ;240
   retlw 0x17   ;B
   retlw 0x78   ;240
   retlw 0x1A   ;D
   retlw 0x3C   ;120
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x78   ;240
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x0E   ;D
   retlw 0x3C   ;120
   retlw 0x0B   ;B
   retlw 0xF0   ;480
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x0E   ;D
   retlw 0x78   ;240
   retlw 0x17   ;B
   retlw 0x78   ;240
   retlw 0x0E   ;D
   retlw 0x78   ;240
    retlw 0x10   ;E
   retlw 0x3C   ;60
   retlw 0x0E   ;D
   retlw 0x3C   ;30
   retlw 0x0D   ;C#
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x78   ;240
   retlw 0x1A   ;D
   retlw 0x78   ;240
   retlw 0x12   ;F#
   retlw 0x78   ;220
   retlw 0x12   ;F#
   retlw 0x3C   ;30
   retlw 0x14   ;G#
   retlw 0x3C   ;65
   retlw 0x11   ;F
   retlw 0x78   ;270
   retlw 0x0D   ;C#
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x15   ;A
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x11   ;F
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x15   ;A
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x15   ;A
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x15   ;A
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x11   ;F
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x11   ;F
   retlw 0x39   ;115
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x19   ;C#
   retlw 0x3E   ;125
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x11   ;F
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x39   ;115
   retlw 0x1A   ;D
   retlw 0x3E   ;125
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x11   ;F
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;120
   retlw 0x1A   ;D
   retlw 0x3C   ;120
   retlw 0x19   ;C#
   retlw 0x3C   ;120
   retlw 0x17   ;B
   retlw 0x3C   ;120
   retlw 0x19   ;C#
   retlw 0x3C   ;120
   retlw 0x15   ;A
   retlw 0x3C   ;120
   retlw 0x14   ;G#
   retlw 0x3C   ;120
   retlw 0x12   ;F#
   retlw 0x3C   ;130
   retlw 0x15   ;A
   retlw 0x78   ;210
   retlw 0x14   ;G#
   retlw 0x3C
   retlw 0x12   ;F#
   retlw 0x3C   ;
   retlw 0x12   ;F#
   retlw 0xE0   ;480
   retlw 0xFF   
   retlw 0

; Tune 1
; Mozart Eine Klein Nachtmusik

   
tune1            

   retlw 0x13   ;G
   retlw 0x43   ;538
   retlw 0x40   ;REST
   retlw 0x4D   ;617
   retlw 0x0E   ;D
   retlw 0x18   ;193
   retlw 0x40   ;REST
   retlw 0x1D   ;232
   retlw 0x13   ;G
   retlw 0x3E   ;498
   retlw 0x40   ;REST
   retlw 0x48   ;582
   retlw 0x0E   ;D
   retlw 0x1B   ;218
   retlw 0x40   ;REST
   retlw 0x18   ;192
   retlw 0x13   ;G
   retlw 0x15   ;168
   retlw 0x40   ;REST
   retlw 0x19   ;207
   retlw 0x0E   ;D
   retlw 0x15   ;168
   retlw 0x40   ;REST
   retlw 0x15   ;172
   retlw 0x13   ;G
   retlw 0x17   ;188
   retlw 0x40   ;REST
   retlw 0x18   ;197
   retlw 0x17   ;B
   retlw 0x17   ;188
   retlw 0x40   ;REST
   retlw 0x1B   ;222
   retlw 0x1A   ;D
   retlw 0x3B   ;478
   retlw 0x40   ;REST
   retlw 0x83   ;1052
   retlw 0x18   ;C
   retlw 0x47   ;568
   retlw 0x40   ;REST
   retlw 0x4A   ;597
   retlw 0x15   ;A
   retlw 0x15   ;168
   retlw 0x40   ;REST
   retlw 0x1D   ;237
   retlw 0x18   ;C
   retlw 0x3C   ;483
   retlw 0x40   ;REST
   retlw 0x52   ;657
   retlw 0x15   ;A
   retlw 0x16   ;183
   retlw 0x40   ;REST
   retlw 0x16   ;177
   retlw 0x18   ;C
   retlw 0x1C   ;228
   retlw 0x40   ;REST
   retlw 0x12   ;147
   retlw 0x15   ;A
   retlw 0x16   ;183
   retlw 0x40   ;REST
   retlw 0x18   ;197
   retlw 0x12   ;F#
   retlw 0x18   ;198
   retlw 0x40   ;REST
   retlw 0x14   ;167
   retlw 0x15   ;A
   retlw 0x1D   ;238
   retlw 0x40   ;REST
   retlw 0x18   ;192
   retlw 0x0E   ;D
   retlw 0x39   ;458
   retlw 0x40   ;REST
   retlw 0x82   ;1042
   retlw 0x13   ;G
   retlw 0x27   ;313
   retlw 0x40   ;REST
   retlw 0x3E   ;497
   retlw 0x13   ;G
   retlw 0x6B   ;858
   retlw 0x40   ;REST
   retlw 0x1E   ;242
   retlw 0x17   ;B
   retlw 0x31   ;395
   retlw 0x15   ;A
   retlw 0x21   ;268
   retlw 0x40   ;REST
   retlw 0x07   ;57
   retlw 0x13   ;G
   retlw 0x16   ;183
   retlw 0x40   ;REST
   retlw 0x18   ;197
   retlw 0x13   ;G
   retlw 0x16   ;180
   retlw 0x15   ;A
   retlw 0x13   ;155
   retlw 0x13   ;G
   retlw 0x12   ;145
   retlw 0x12   ;F#
   retlw 0x10   ;133
   retlw 0x40   ;REST
   retlw 0x22   ;272
   retlw 0x12   ;F#
   retlw 0x68   ;833
   retlw 0x40   ;REST
   retlw 0x1F   ;252
   retlw 0x15   ;A
   retlw 0x2C   ;355
   retlw 0x18   ;C
   retlw 0x1B   ;218
   retlw 0x40   ;REST
   retlw 0x14   ;162
   retlw 0x12   ;F#
   retlw 0x13   ;158
   retlw 0x40   ;REST
   retlw 0x19   ;202
   retlw 0x15   ;A
   retlw 0x2F   ;380
   retlw 0x13   ;G
   retlw 0x13   ;158
   retlw 0x40   ;REST
   retlw 0x22   ;272
   retlw 0x13   ;G
   retlw 0x78   ;963
   retlw 0x40   ;REST
   retlw 0x1D   ;237
   retlw 0x17   ;B
   retlw 0x2A   ;343
   retlw 0x40   ;REST
   retlw 0x03   ;27
   retlw 0x15   ;A
   retlw 0x22   ;278
   retlw 0x40   ;REST
   retlw 0x0C   ;102
   retlw 0x13   ;G
   retlw 0x16   ;183
   retlw 0x40   ;REST
   retlw 0x1A   ;212
   retlw 0x13   ;G
   retlw 0x19   ;205
   retlw 0x15   ;A
   retlw 0x12   ;150
   retlw 0x13   ;G
   retlw 0x11   ;140
   retlw 0x12   ;F#
   retlw 0x12   ;148
   retlw 0x40   ;REST
   retlw 0x1F   ;252
   retlw 0x12   ;F#
   retlw 0x5B   ;728
   retlw 0x40   ;REST
   retlw 0x27   ;317
   retlw 0x15   ;A
   retlw 0x2D   ;365
   retlw 0x18   ;C
   retlw 0x1A   ;208
   retlw 0x40   ;REST
   retlw 0x13   ;152
   retlw 0x12   ;F#
   retlw 0x14   ;163
   retlw 0x40   ;REST
   retlw 0x19   ;207
   retlw 0x13   ;G
   retlw 0x14   ;163
   retlw 0x40   ;REST
   retlw 0x19   ;207
   retlw 0x13   ;G
   retlw 0x13   ;153
   retlw 0x40   ;REST
   retlw 0x1A   ;212
   retlw 0x13   ;G
   retlw 0x1C   ;225
   retlw 0x12   ;F#
   retlw 0x15   ;175
   retlw 0x10   ;E
   retlw 0x1E   ;240
   retlw 0x12   ;F#
   retlw 0x12   ;150
   retlw 0x13   ;G
   retlw 0x18   ;198
   retlw 0x40   ;REST
   retlw 0x16   ;177
   retlw 0x13   ;G
   retlw 0x10   ;128
   retlw 0x40   ;REST
   retlw 0x23   ;287
   retlw 0x17   ;B
   retlw 0x17   ;190
   retlw 0x15   ;A
   retlw 0x0D   ;105
   retlw 0x13   ;G
   retlw 0x1F   ;255
   retlw 0x15   ;A
   retlw 0x0F   ;125
   retlw 0x17   ;B
   retlw 0x18   ;193
   retlw 0x40   ;REST
   retlw 0x1A   ;212
   retlw 0x17   ;B
   retlw 0x10   ;128
   retlw 0x40   ;REST
   retlw 0x20   ;257
   retlw 0x1A   ;D
   retlw 0x19   ;200
   retlw 0x18   ;C
   retlw 0x0F   ;125
   retlw 0x17   ;B
   retlw 0x1F   ;250
   retlw 0x18   ;C
   retlw 0x10   ;135
   retlw 0x1A   ;D
   retlw 0x59   ;713
   retlw 0x40   ;REST
   retlw 0x7B   ;987
   retlw 0x0E   ;D
   retlw 0xBA   ;1495
   retlw 0x10   ;E
   retlw 0x7C   ;998
   retlw 0x40   ;REST
   retlw 0x48   ;577
   retlw 0x0E   ;D
   retlw 0x19   ;205
   retlw 0x0C   ;C
   retlw 0x16   ;183
   retlw 0x40   ;REST
   retlw 0x31   ;397
   retlw 0x0C   ;C
   retlw 0x14   ;163
   retlw 0x40   ;REST
   retlw 0x4C   ;612
   retlw 0x0C   ;C
   retlw 0x17   ;190
   retlw 0x0B   ;B
   retlw 0x12   ;148
   retlw 0x40   ;REST
   retlw 0x39   ;457
   retlw 0x0B   ;B
   retlw 0x13   ;153
   retlw 0x40   ;REST
   retlw 0x43   ;537
   retlw 0x0B   ;B
   retlw 0x17   ;190
   retlw 0x09   ;A
   retlw 0x13   ;153
   retlw 0x40   ;REST
   retlw 0x37   ;447
   retlw 0x09   ;A
   retlw 0x16   ;178
   retlw 0x40   ;REST
   retlw 0x41   ;522
   retlw 0x07   ;G
   retlw 0x2E   ;375
   retlw 0x06   ;F#
   retlw 0x33   ;410
   retlw 0x04   ;E
   retlw 0x2D   ;363
   retlw 0x40   ;REST
   retlw 0x01   ;12
   retlw 0x06   ;F#
   retlw 0x35   ;428
   retlw 0x40   ;REST
   retlw 0x02   ;22
   retlw 0x07   ;G
   retlw 0x16   ;178
   retlw 0x40   ;REST
   retlw 0x50   ;642
   retlw 0x09   ;A
   retlw 0x10   ;133
   retlw 0x40   ;REST
   retlw 0x4C   ;612
   retlw 0x0B   ;B
   retlw 0x0E   ;113
   retlw 0x40   ;REST
   retlw 0xB4   ;1442
   retlw 0x0E   ;D
   retlw 0xBA   ;1495
   retlw 0x10   ;E
   retlw 0x82   ;1043
   retlw 0x40   ;REST
   retlw 0x39   ;462
   retlw 0x0E   ;D
   retlw 0x2D   ;360
   retlw 0x0C   ;C
   retlw 0x16   ;178
   retlw 0x40   ;REST
   retlw 0x1E   ;242
   retlw 0x0C   ;C
   retlw 0x10   ;128
   retlw 0x40   ;REST
   retlw 0x1F   ;252
   retlw 0x0C   ;C
   retlw 0x10   ;133
   retlw 0x40   ;REST
   retlw 0x1C   ;227
   retlw 0x0C   ;C
   retlw 0x2C   ;355
   retlw 0x0B   ;B
   retlw 0x13   ;153
   retlw 0x40   ;REST
   retlw 0x1E   ;247
   retlw 0x0B   ;B
   retlw 0x0D   ;108
   retlw 0x40   ;REST
   retlw 0x23   ;282
   retlw 0x0B   ;B
   retlw 0x10   ;133
   retlw 0x40   ;REST
   retlw 0x1E   ;247
   retlw 0x0B   ;B
   retlw 0x2F   ;380
   retlw 0x09   ;A
   retlw 0x13   ;158
   retlw 0x40   ;REST
   retlw 0x1B   ;222
   retlw 0x09   ;A
   retlw 0x13   ;153
   retlw 0x40   ;REST
   retlw 0x1E   ;242
   retlw 0x09   ;A
   retlw 0x10   ;128
   retlw 0x40   ;REST
   retlw 0x23   ;282
   retlw 0x07   ;G
   retlw 0x2B   ;350
   retlw 0x06   ;F#
   retlw 0x2F   ;380
   retlw 0x04   ;E
   retlw 0x31   ;395
   retlw 0x06   ;F#
   retlw 0x35   ;428
   retlw 0x40   ;REST
   retlw 0x05   ;47
   retlw 0x07   ;G
   retlw 0xB4   ;468
   retlw 0xFF
   


   END


Espero me puedan ayudar, se los agradeceria demasiadoo

De antemano mil gracias :D


 

anything