TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: groundman en 12 de Marzo de 2006, 08:42:00

Título: incluir subprogramas mplab
Publicado por: groundman en 12 de Marzo de 2006, 08:42:00
hola.queria hacer un proyecto en asm,para el pic16f84.
este proyecto consta del
            programa     principal.ASM
            sub programa LCD_CXX.ASM
                    TECLADO.ASM
que hay que incluir en el programa principal a parte de las lineas:
#include"LCD_CXX.ASM" Y #include"TECLADO.ASM"

para que en la memoria de programa,al compilar salga todo en orden,porque cuando lo compilo;
en la memoria de programa me sale:primero las lineas de LCD_CXX,luego las de TECLADO;
y luego otra vez las de LCD_CXX.




   
Título: RE: incluir subprogramas mplab
Publicado por: groundman en 12 de Marzo de 2006, 11:17:00
bueno,al final solucione el problema,todo estaba en que tenia que cambiar la extension de lcd_cxx.asm por lcd_cxx.inc  y lo mismo con el teclado.asm

e incluirlas en el proyecto junto ha p16f84.inc

no entiendo por que el libro que me compre de microcontroladores pic "diseño practico de aplicaciones"2º edicion.
no traia estas correcciones si puestas en el proyecto no funcionan.
ahora las he puesto de esta manera y no da ningun error,claro siempre modificando en el programa principal: include "lcd_cxx.asm" por include "lcd_cxx.inc" y  include "teclado.asm" por include "teclado.inc".Rebotado
Título: RE: incluir subprogramas mplab
Publicado por: maunix en 14 de Marzo de 2006, 08:09:00
Escrito originalmente por groundman
bueno,al final solucione el problema,todo estaba en que tenia que cambiar la extension de lcd_cxx.asm por lcd_cxx.inc  y lo mismo con el teclado.asm

e incluirlas en el proyecto junto ha p16f84.inc

no entiendo por que el libro que me compre de microcontroladores pic "diseño practico de aplicaciones"2º edicion.
no traia estas correcciones si puestas en el proyecto no funcionan.
ahora las he puesto de esta manera y no da ningun error,claro siempre modificando en el programa principal: include "lcd_cxx.asm" por include "lcd_cxx.inc" y  include "teclado.asm" por include "teclado.inc".Rebotado


La verdad me parece extraño, hacer un include de un .inc o un .asm o un .yoquese
es lo mismo.

Es como hacer un "merge" o un copiar y pegar.  No debiera haber diferencia alguna.

Si subes los fuentes a algun servidor con el caso en que te salia "todo desordenado" tal vez te pueda dar una mano a clarificar el problema pero me parece por demás raro ya que al parecer trabajas con código fijo o fixed coding (no usas el linker ni nada parecido).

Saludos
Título: RE: incluir subprogramas mplab
Publicado por: BrunoF en 14 de Marzo de 2006, 22:15:00
Pues en realidad la diferencia reside en la intepretacion de la extension(tipo de archivo) por parte del compilador, y no en el contenido del archivo mismo.
Saludos
Título: RE: incluir subprogramas mplab
Publicado por: maunix en 16 de Marzo de 2006, 05:07:00
Escrito originalmente por BrunoF
Pues en realidad la diferencia reside en la intepretacion de la extension(tipo de archivo) por parte del compilador, y no en el contenido del archivo mismo.
Saludos


En realidad , como bien me dijo RedPic en su momento, es un ensamblador, no un compilador.  

Mas allá de los detalles me parece extraño el error o al menos nunca me pasó algo igual a pesar de haber hecho eso muchas veces y es por eso que le pedí si podia postearlo como ejemplo para ver si realmente es eso o es que hay otra cosa en el código que haga que se ensamble de esa forma.
Título: RE: incluir subprogramas mplab
Publicado por: javisus en 23 de Marzo de 2006, 12:28:00
La verdad es que en ese libro no se equivocan,
Un proyecto en con MPLAB IDE, puede tener perfectamente tres programas
con la extensión .asm, uno de ellos es es principal los otros debes tratarlos como código relocalizable. También es posible ponerlos como Object code (.o)
el linker los enlazará y equilicuá se hizo el programa.
En fin si tienes más dudas , postéalas,se explícito y adelante....
Título: RE: incluir subprogramas mplab
Publicado por: maunix en 24 de Marzo de 2006, 08:37:00
Escrito originalmente por javisus
La verdad es que en ese libro no se equivocan,
Un proyecto en con MPLAB IDE, puede tener perfectamente tres programas
con la extensión .asm, uno de ellos es es principal los otros debes tratarlos como código relocalizable. También es posible ponerlos como Object code (.o)
el linker los enlazará y equilicuá se hizo el programa.
En fin si tienes más dudas , postéalas,se explícito y adelante....



Claro javisus pero para eso el código se debe modificar para que sea relocatable o reubicable.  De hecho yo programo así pero la mayoría no lo hace así, porque les es más fácil (coincido que al principio es algo engorroso el codigo reubicable) programar de esa forma.

Entonces la forma de enlazarlos es mediante el linker script e ir agregando .asm al proyecto.

De todas formas, creo que escapa a lo que nuestro amigo pretende hacer.
Título: RE: incluir subprogramas mplab
Publicado por: groundman en 04 de Abril de 2006, 08:21:00
como me digisteis que posteara el problema ahi os mando el programaprincipal
tipico3 del libro que os comentaba.

y luego las dos librerias que tube que modificar de .asm a .inc


otra cosa que queria preguntar es que cuando compilo el programa yo queria
que primero metiera en la memoria de programa de la siguiente forma

tipico3.asm
lcd_cxx.inc o .asm "si es que funconara y
teclado.inc

ya que de la forma que lo he compilado se me queda el tipico3 al final.



;PROYECTO TÖPICO 3
;"ESCRITURA DE MENSAJES DE TECLADO SOBRE LCD"
;Se desea realizar un programa que visualice sobre el LCD las teclas
;que se vayan pulsando. Cada pulsaci¢n ir  acompa¤ada de un "beep" de
;0,25 segundos sobre el zumbador piezoel‚ctrico conectado a RA3
 
;DIRECTIVAS DEL PROGRAMA
 
 
      LIST    P=16F84 ; Se emplea el PIC 16F84
      RADIX    HEX    ; Sistema de numeraci¢n hexadecimal
       __CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
;ETIQUETAS DEL PROGRAMA
 
      INCLUDE  "P16F84.INC"
TEMP_1     EQU 0x0C
DELAY_1  EQU 0x0D
DELAY_2  EQU 0x0E
DELAY_3  EQU 0x0F
LCD_VAR  EQU 0x10
KEY_VAR  EQU 0x12
   
    
;POSICIONAMIENTO DE LA RUTINA DE INICIO
    ORG    0    ; El programa comienza en la direcci¢n 0 y
   goto    INICIO   ; salta a la direcci¢n 5 para sobrepasar el
   ORG    5    ; vector de interrupci¢n
 
   
 
;RUTINA HEX_ASCII: Rutina que pasa el valor HEXADECIMAL que contiene
;W a valor ASCII, para ser mostrado por el LCD
 
 
HEX_ASCII   addwf PCL,1
      retlw "0"
      retlw "1"
      retlw "2"
      retlw "3"
      retlw "4"
      retlw "5"
      retlw "6"
      retlw "7"
      retlw "8"
      retlw "9"
      retlw "A"
      retlw "B"
      retlw "C"
      retlw "D"
      retlw "E"
      retlw "F"
   
;PROGRAMA PRINCIPAL

 

INICIO    call    UP_LCD
   call    LCD_INI
   call    DISPLAY_ON_CUR_OFF
   bsf    STATUS,RP0       ; Selecci¢n del banco 1
   clrf    PORTA         ; Puerta A como salida
   movlw    b"10000111"
   movwf    OPTION_REG
   bcf    STATUS,RP0
   bsf    PORTA,3       ; Desactivaci¢n del zumbador
NO_HAY    call    KEY_SCAN       ; Se hace un chequeo del teclado
   movlw    0x80
   subwf    TECLA,W       ; Sobre TECLA quedar  la tecla pulsada o 0x80
   btfsc    STATUS,Z
   goto    NO_HAY          ; No se ha pulsado ninguna tecla
   call    KEY_OFF       ; S¡ se ha pulsado. Se espera a que se suelte
   bcf    PORTA,3       ; Se genera un "beep"
   movlw    d"25"
   movwf    TEMP_1
   call    DELAY10       ; Se crea una temporizaci¢n de 25 ms
   bsf    PORTA,3       ; Se desactiva zumbador
   call    KEY_HEX       ; Se pasa a valor hexadecimal
   call    HEX_ASCII       ; Se pasa el valor hexadecimal a c¢digo ASCII
   movwf    TECLA          ; Se guarda temporalmente en TECLA
   call    UP_LCD
   call    BORRA_Y_HOME
   call    DISPLAY_ON_CUR_OFF
   movlw    0x81          ; Primer car cter de primera l¡nea
   call    LCD_REG
   movf    TECLA,W
   call    LCD_DATO       ; Se saca por el LCD
   goto    NO_HAY          ; Se vuelve a empezar
      
 
;RUTINA DE DELAY DE 10 MS: Esta rutina utiliza el TMR0.
;Es una temporizaci¢n de 10 ms que se repite tantas veces
;como indique la variable TEMPO1
 
 
DELAY10    bcf    INTCON,2    ; Borra flag del TMR0
      movlw    0xD8
      movwf    TMR0       ; Carga el TMR0 con valor 39
DELAY10_1    btfss    INTCON,2    ; Espera rebosamiento del TMR0
      goto    DELAY10_1
      decfsz    TEMP_1,F
      goto    DELAY10
      return
 
 
;RUTINA DE DELAY DE 1 SEGUNDO: Se basa en la rutina de 10ms, repiti‚ndola 100 veces
 
 
DELAY1S    movlw    0x64
      movwf    TEMP_1
      call    DELAY10
      return
 
 
;RUTINA KEY_OFF: Esta rutina espera que la tecla reci‚n pulsada sea soltada.
;Debe usarse justo despu‚s de llamar a la rutina KEY_SCAN
 
 
KEY_OFF    movf    TECLA,W
      movwf    TEMP_1       ; Guarda temporalmente la tecla
KEY_OFF_NO   call    KEY_SCAN    ; Mira si se ha soltado
      movlw    0x80
      subwf    TECLA,W
      btfss    STATUS,Z
      goto    KEY_OFF_NO    ; Bucle mientras no se suelte
      movf    TEMP_1,W    ; Ya se ha soltado
      movwf    TECLA       ; Se repone la tecla
      return
 
 
;RUTINA DE DELAY VARIABLE: Esta rutina realiza una temporizaci¢n que
;depende del valor del acumulador en el momento en que se le llama
 
DELAY_V    movwf    DELAY_1
      clrf    DELAY_3
      clrf    DELAY_2
DELAY_LOOP    decfsz    DELAY_3,F
      goto    DELAY_LOOP
      decfsz    DELAY_2,F
      goto    DELAY_LOOP
      decfsz   DELAY_1,F
      goto    DELAY_LOOP
      return
       INCLUDE "LCD_CXX.INC"
      INCLUDE "TECLADO.INC"   
 
      END

aqui la libreria teclado
   LIST
TECLADO.ASM
 
 
;Conjunto de rutinas para el manejo del teclado.
;No es un programa en s¡ mismo. Para utilizarlo hay que
;colocar en el programa principal:
;KEY_VAR EQU dir_inicio_del_bloque
 
;BLOQUE DE ETIQUETAS
 
 
   CBLOCK    KEY_VAR       ;Inicio de las variables
       TECLA         ;Retorno del c¢digo de tecla
       KEY_1         ;N§ de filas a explorar
       KEY_2           ;Temporal de c¢digo
        KEY_DELAY_1      ;Variable de temporizaci¢n
       KEY_DELAY_2      ;Variable de temporizaci¢n
   ENDC         
 
 
;RUTINA KEY_SCAN: Rutina de exploraci¢n del teclado. La variable
;"Tecla" retorna con el c¢digo de la tecla pulsada o el c¢digo 0x80
;si no se pulsa ninguna.
 
 
KEY_SCAN   bsf    STATUS,RP0      ;Selecciona p gina 1
      movlw   b"00001111"
      movwf   PORTB         ;RB7-RB4 salidas, RB3-RB0 entradas
      bsf    OPTION_REG,NOT_RBPU   ;Activa cargas pull-up
      bcf    STATUS,RP0      ;Selecciona p gina 0
      movlw   4
      movwf   KEY_1         ;N§ de columnas a explorar
      movlw   b"01111111"
      movwf   TECLA         ;Columna a activar
KEY_SCAN_1   movf    TECLA,W
      movwf   PORTB         ;Activa fila
      nop
      movf   PORTB,W
      movwf   KEY_2
      subwf   TECLA,W         ;Lee las columnas
      btfss    STATUS,Z       ;Hay alguna pulsada ?
      goto   KEY_SCAN_2      ;Si hay alguna pulsada
      bsf    STATUS,C       ;No hay ninguna en esa fila
      rrf    TECLA,F         ;Selecciona siguiente fila
      decfsz    KEY_1,F         ;Salta si se han terminado las filas
      goto   KEY_SCAN_1
      movlw   0x80
      goto   VOLVER         ;Retorna c¢digo 0x80 (no hay pulsaci¢n)
      
KEY_SCAN_2   movlw   .100         ;Bucle de temporizaci¢n de unos 20 ms
      movwf   KEY_DELAY_1      ;para evitar el rebote de los pulsadores
KEY_SCAN_3   clrf   KEY_DELAY_2      
      clrwdt
KEY_SCAN_4   decfsz    KEY_DELAY_2,F
      goto    KEY_SCAN_4
      decfsz    KEY_DELAY_1,F
      goto   KEY_SCAN_3
      movf   TECLA,W         ;Tras la temporizaci¢n se lee nuevamente
      movwf   PORTB         ;si la tecla es la misma. As¡ se
      nop            ;evitan los rebotes.
      movf   PORTB,W
      subwf   KEY_2,W
      btfss   STATUS,Z      ;Es la misma ??
      goto   KEY_SCAN_1      ;No, seguir con la exploraci¢n
      movf   KEY_2,W           ;S¡, guardar en variable de salida TECLA el valor
                  ; recogido
VOLVER          movwf   TECLA
      return            ;Fin de exploraci¢n                        
 
;RUTINA KEY_HEX:   Convierte el c¢digo de tecla que haya en la variable
;"Tecla" a Hex. (0-F). El resultado se devuelve en la variable "Tecla".
;Usa como rutina auxiliar Key_tabla
 
KEY_TABLA   movf   KEY_1,W
      addwf   PCL,F      ;Calcula desplazamiento
      retlw   0x7D      ;0
      retlw   0xEE      ;1
      retlw   0xED      ;2
      retlw   0xEB      ;3
      retlw   0xDE      ;4
      retlw   0xDD      ;5
      retlw   0xDB      ;6
      retlw   0xBE      ;7
      retlw   0xBD      ;8
      retlw   0xBB      ;9
      retlw   0x7E      ;A
      retlw   0x7B      ;B
      retlw   0x77      ;C
      retlw   0xB7      ;D
      retlw   0xD7      ;E
      retlw   0xE7      ;F

KEY_HEX      movf   TECLA,W
      movwf   KEY_2      ;Almacena el c¢digo temporalmente
      clrf    KEY_1      ;Contador HEX a 0
KEY_HEX_2   call   KEY_TABLA   ;Busca c¢digo en la tabla
      subwf    KEY_2,W      ;Compara con el de la tecla
      btfsc    STATUS,Z   ;Coincide ?
      goto    KEY_HEX_1   ;S¡
      incf    KEY_1,F      ;No, incrementa contador HEX
      goto   KEY_HEX_2
KEY_HEX_1   movf   KEY_1,W
      movwf   TECLA      ;Carga contador HEX en la variable de salida
      return
 
 
 
 
;RUTINA HEX_7SEG:   Rutina de conversi¢n de HEX (0-F) a 7 segmentos.
;El acumulador W contiene, durante la llamada, el c¢digo HEX y, al retornar,
;el correspondiente a 7 segmentos
 
 
HEX_7SEG   andlw    b"00001111"
      addwf    PCL,F      ;Desplazamiento sobre la tabla
      retlw    b"00111111"   ;0
      retlw    b"00000110"   ;1
      retlw    b"01011011"   ;2
      retlw    b"01001111"   ;3
      retlw    b"01100110"   ;4
      retlw    b"01101101"   ;5
      retlw    b"01111101"   ;6
      retlw    b"00000111"   ;7
      retlw    b"01111111"   ;8
      retlw    b"01100111"   ;9
      retlw    b"01110111"   ;A
      retlw    b"01111100"   ;B
      retlw    b"00111001"   ;C
      retlw    b"01011110"   ;D
      retlw    b"01111001"   ;E
      retlw    b"01110001"   ;F
   LIST

aqui el lcd_cxx

   LIST
;LCD_CXX.ASM
 
 
;El conjunto de rutinas que se presentan a continuaci¢n permiten realizar
;las tareas b sicas de control del m¢dulo de visualizaci¢n LCD. Se emplean
;con los PIC 16cxx. En el programa principal se deber  reservar memoria
;para el bloque de variables que utiliza el LCD del modo:
;   LCD_VAR EQU dir_inicio_del_bloque

;BLOQUE DE ETIQUETAS
 
 
   #define ENABLE       bsf PORTA,2 ;Activa E
   #define DISABLE    bcf PORTA,2 ;Desactiva
   #define LEER       bsf PORTA,1 ;Pone LCD en Modo RD
   #define ESCRIBIR    bcf PORTA,1 ;Pone LCD en Modo WR
   #define OFF_COMANDO    bcf PORTA,0 ;Desactiva RS (modo comando)
   #define ON_COMANDO    bsf PORTA,0 ;Activa RS (modo datos)
   CBLOCK    LCD_VAR
      LCD_TEMP_2   ;Inicio de las variables. Ser  la primera direcci¢n libre
            ; disponible
      LCD_TEMP_1   
   ENDC      
 
 
;RUTINA UP_LCD: Con esta rutina se configura el PIC para que trabaje con el LCD.
 
 
UP_LCD      bsf   STATUS,RP0    ;Banco 1
       clrf    PORTB       ;RB <0-7> salidas digitales
      clrf    PORTA       ;RA <0-4> salidas digitales
       bcf    STATUS,RP0    ;Banco 0
      OFF_COMANDO       ;RS=0
      DISABLE       ;E=0
      return
 
 
;RUTINA LCD_BUSY: Con esta rutina se chequea el estado del
;flag BUSY del m¢dulo LCD, que indica, cuando est  activado, que el
;m¢dulo a£n no ha terminado el comando anterior. La rutina espera a
;que se complete cualquier comando anterior antes de retornar al
;programa principal, para poder enviar un nuevo comando.
 
 
LCD_BUSY   LEER          ;Pone el LCD en Modo RD
      bsf    STATUS,RP0
      movlw    H"FF"
      movwf    PORTB       ;Puerta B como entrada
      bcf    STATUS,RP0    ;Selecciona el banco 0
      ENABLE          ;Activa el LCD
      nop
L_BUSY       btfsc    PORTB,7      ;Chequea bit de Busy
      goto    L_BUSY
      DISABLE        ;Desactiva LCD
      bsf    STATUS,RP0
      clrf    PORTB       ;Puerta B salida
      bcf    STATUS,RP0
      ESCRIBIR         ;Pone LCD en modo WR
      return
 
 
;RUTINA LCD_E: Se trata de una peque¤a rutina que se encarga de generar
;un impulso de 1æ s (para una frecuencia de funcionamiento de 4 Mhz)
;por la patita de salida de la Puerta A RA2, que se halla conectada
;a la se¤al E (Enable) del m¢dulo LCD. Con esta rutina se pretende activar
;al m¢dulo LCD.
 
 
LCD_E       ENABLE         ;Activa E
      nop
      DISABLE         ;Desactiva E
      return
 
 
;RUTINA LCD_DATO: Es una rutina que pasa el contenido cargado en el
;registro W, el cual contiene un car cter ASCII, a la PUERTA B, para
;visualizarlo por el LCD o escribirlo en la CGRAM.
 
 
LCD_DATO    OFF_COMANDO       ;Desactiva RS (modo comando)
      movwf   PORTB       ;Valor ASCII a sacar por PORTB
      call    LCD_BUSY    ;Espera a que se libere el LCD
      ON_COMANDO       ;Activa RS (modo dato)
      call    LCD_E       ;Genera pulso de E
       return
 
 
;RUTINA LCD_REG: Rutina parecida a la anterior, pero el contenido de W
;ahora es el c¢digo de un comando para el LCD, que es necesario pasar
;tambi‚n a la PUERTA B para su ejecuci¢n.
 
 
LCD_REG    OFF_COMANDO       ;Desactiva RS (modo comando)
      movwf    PORTB       ;C¢digo de comando
      call    LCD_BUSY    ;LCD libre?.
      call    LCD_E       ;S¡. Genera pulso de E.
       return
 
 
;RUTINA LCD_INI: Esta rutina se encarga de realizar la secuencia de
;inicializaci¢n del m¢dulo LCD de acuerdo con los tiempos dados por
;el fabricante (15 ms). Se especifican los valores de DL, N y F,
;as¡ como la configuraci¢n de un interfaz de 8 l¡neas con el bus
;de datos del PIC, y 2 l¡neas de 16 caracteres de 5 x 7 pixels.
 
 
LCD_INI   movlw   b"00111000"
      call   LCD_REG    ;C¢digo de instrucci¢n
      call   LCD_DELAY   ;Temporiza
      movlw   b"00111000"
      call   LCD_REG      ;C¢digo de instrucci¢n
      call   LCD_DELAY   ;Temporiza
      movlw    b"00111000"
      call   LCD_REG      ;C¢digo de instrucci¢n
      call    LCD_DELAY   ;Temporiza
      return
 
 
;RUTINA BORRA_Y_HOME: Borra el display y retorna el cursor a la posici¢n 0.
 
 
BORRA_Y_HOME   movlw    b"00000001"    ;Borra LCD y Home.
      call    LCD_REG
      return
 
 
;RUTINA DISPLAY_ON_CUR_OFF: Control del display y cursor.
;Activa el display y desactiva es cursor
 
DISPLAY_ON_CUR_OFF   movlw b"00001100"    ;LCD on, cursor off.
         call    LCD_REG
         return
 
 
;RUTINA LCD_DELAY: Se trata de un rutina que implementa un retardo
;o temporizaci¢n de 5 ms. Utiliza dos variables llamadas LCD_TEMP_1
;y LCD_TEMP_2, que se van decrementando hasta alcanzar dicho tiempo.
 
 
LCD_DELAY   clrwdt
      movlw    10
      movwf    LCD_TEMP_1
      clrf    LCD_TEMP_2
LCD_DELAY_1    decfsz   LCD_TEMP_2,F
      goto   LCD_DELAY_1
      decfsz   LCD_TEMP_1,F
      goto   LCD_DELAY_1
      return
   LIST

y aqui el p16f84.inc que este si estaba en extension .inc   


        LIST
; P16F84.INC  Standard Header File, Version 2.00    Microchip Technology, Inc.
        NOLIST

; This header file defines configurations, registers, and other useful bits of
; information for the PIC16F84 microcontroller.  These names are taken to match
; the data sheets as closely as possible.  

; Note that the processor must be selected before this file is
; included.  The processor may be selected the following ways:

;       1. Command line switch:
;               C: MPASM MYFILE.ASM /PIC16F84
;       2. LIST directive in the source file
;               LIST   P=PIC16F84
;       3. Processor Type entry in the MPASM full-screen interface

;==========================================================================
;
;       Revision History
;
;==========================================================================

;Rev:   Date:    Reason:

;2.00   07/24/96 Renamed to reflect the name change to PIC16F84.
;1.01   05/17/96 Corrected BADRAM map
;1.00   10/31/95 Initial Release

;==========================================================================
;
;       Verify Processor
;
;==========================================================================

        IFNDEF __16F84
           MESSG "Processor-header file mismatch.  Verify selected processor."
        ENDIF

;==========================================================================
;
;       Register Definitions
;
;==========================================================================

W                            EQU     H"0000"
F                            EQU     H"0001"

;----- Register Files------------------------------------------------------

INDF                         EQU     H"0000"
TMR0                         EQU     H"0001"
PCL                          EQU     H"0002"
STATUS                       EQU     H"0003"
FSR                          EQU     H"0004"
PORTA                        EQU     H"0005"
PORTB                        EQU     H"0006"
EEDATA                       EQU     H"0008"
EEADR                        EQU     H"0009"
PCLATH                       EQU     H"000A"
INTCON                       EQU     H"000B"

OPTION_REG                   EQU     H"0081"& H"0001"
TRISA                        EQU     H"0085"& H"0005"
TRISB                        EQU     H"0086"& H"0006"
EECON1                       EQU     H"0088"
EECON2                       EQU     H"0089"

;----- STATUS Bits --------------------------------------------------------

IRP                          EQU     H"0007"
RP1                          EQU     H"0006"
RP0                          EQU     H"0005"
NOT_TO                       EQU     H"0004"
NOT_PD                       EQU     H"0003"
Z                            EQU     H"0002"
DC                           EQU     H"0001"
C                            EQU     H"0000"

;----- INTCON Bits --------------------------------------------------------

GIE                          EQU     H"0007"
EEIE                         EQU     H"0006"
T0IE                         EQU     H"0005"
INTE                         EQU     H"0004"
RBIE                         EQU     H"0003"
T0IF                         EQU     H"0002"
INTF                         EQU     H"0001"
RBIF                         EQU     H"0000"

;----- OPTION Bits --------------------------------------------------------

NOT_RBPU                     EQU     H"0007"
INTEDG                       EQU     H"0006"
T0CS                         EQU     H"0005"
T0SE                         EQU     H"0004"
PSA                          EQU     H"0003"
PS2                          EQU     H"0002"
PS1                          EQU     H"0001"
PS0                          EQU     H"0000"

;----- EECON1 Bits --------------------------------------------------------

EEIF                         EQU     H"0004"
WRERR                        EQU     H"0003"
WREN                         EQU     H"0002"
WR                           EQU     H"0001"
RD                           EQU     H"0000"

;==========================================================================
;
;       RAM Definition
;
;==========================================================================

        __MAXRAM H"CF"
        __BADRAM H"07", H"50"-H"7F", H"87"

;==========================================================================
;
;       Configuration Bits
;
;==========================================================================

_CP_ON                       EQU     H"000F"
_CP_OFF                      EQU     H"3FFF"
_PWRTE_ON                    EQU     H"3FF7"
_PWRTE_OFF                   EQU     H"3FFF"
_WDT_ON                      EQU     H"3FFF"
_WDT_OFF                     EQU     H"3FFB"
_LP_OSC                      EQU     H"3FFC"
_XT_OSC                      EQU     H"3FFD"
_HS_OSC                      EQU     H"3FFE"
_RC_OSC                      EQU     H"3FFF"

        LIST
   


   




 
Título: RE: incluir subprogramas mplab
Publicado por: maunix en 04 de Abril de 2006, 09:24:00
Escrito originalmente por groundman
como me digisteis que posteara el problema ahi os mando el programaprincipal
tipico3 del libro que os comentaba.

y luego las dos librerias que tube que modificar de .asm a .inc


otra cosa que queria preguntar es que cuando compilo el programa yo queria
que primero metiera en la memoria de programa de la siguiente forma

tipico3.asm
lcd_cxx.inc o .asm "si es que funconara y
teclado.inc

ya que de la forma que lo he compilado se me queda el tipico3 al final.




Me has mareado un poco con semejante mezcla de archivos.  Podrias subir los archivos en un .zip ? asi lo reviso y te digo como hacer lo que pretendes?

Saludos
Título: RE: incluir subprogramas mplab
Publicado por: groundman en 04 de Abril de 2006, 15:05:00
antes intente mandar los archivos pero no se podia no se por que,te los envio en un rar por que el winzip no lo tengo instalado pero si lo quieres en zip dimelo y te lo mando.

con estos archivos, los que hacen falta ,para que el programa funcione.
al compilarlo con el mplab 7.31 me dio los errores que te comentaba y dige,
que cuando cambie la extension de .asm a .inc ya no me marco los errores y
el programa se compilo bien

los archivos quedaron asi en source files

tipico3.asm

y en header files
lcd_cxx.inc
P16P84.INC
teclado.inc

a ver si he hecho algo mal ,y espero que esta vez se pueda enviar el rar

Lo sentimos, No hay suficiente espacio disponible para subir el adjunto..

esto es lo que me pasa.


Título: Re: RE: incluir subprogramas mplab
Publicado por: maunix en 08 de Abril de 2006, 14:25:17
antes intente mandar los archivos pero no se podia no se por que,te los envio en un rar por que el winzip no lo tengo instalado pero si lo quieres en zip dimelo y te lo mando.

con estos archivos, los que hacen falta ,para que el programa funcione.
al compilarlo con el mplab 7.31 me dio los errores que te comentaba y dige,
que cuando cambie la extension de .asm a .inc ya no me marco los errores y
el programa se compilo bien

los archivos quedaron asi en source files

tipico3.asm

y en header files
lcd_cxx.inc
P16P84.INC
teclado.inc

a ver si he hecho algo mal ,y espero que esta vez se pueda enviar el rar

Lo sentimos, No hay suficiente espacio disponible para subir el adjunto..

esto es lo que me pasa.




groundman, Hagamos una cosa, mandame un mensaje privado y te paso un mail a donde me puedas mandar tu código.

Un abrazo
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 13 de Abril de 2006, 09:08:16
hola maunix,te he enviado los archivos que me pedistes.
pero tengo una pregunta que hacerte aparte de esto.

veras aunque esta no pertenece a este hilo,no se si me podras responder.
respecto a un grabador gtp usb lite.he puesto la pregunta en programadores pero nadie contesta
no se si es que  todos tienen el mismo problema. me graba bien los pic 16f876 y 18f2550
que son de los que disponia pero el pic16f84 no hay manera he probado unos cuantos
y nada ,no se que es lo que pasa.sabrias tu decirme.

gracias
Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 09:15:28
hola maunix,te he enviado los archivos que me pedistes.
pero tengo una pregunta que hacerte aparte de esto.

veras aunque esta no pertenece a este hilo,no se si me podras responder.
respecto a un grabador gtp usb lite.he puesto la pregunta en programadores pero nadie contesta
no se si es que  todos tienen el mismo problema. me graba bien los pic 16f876 y 18f2550
que son de los que disponia pero el pic16f84 no hay manera he probado unos cuantos
y nada ,no se que es lo que pasa.sabrias tu decirme.

gracias


Yo tambien tengo el lite y no me funciona con algunos Pics.

La respuesta que obtuve de marmatar (encargado de la distribución comercial del mismo) es la de que la versión free tenía algunos bugs que fueron corregidos pero ya como version COMERCIAL.

La versión comercial cuesta alrededor de u$s 25 el pic solamente.  Es decir te dan un 18F2550 ya grabado con el firmware correcto que se comunica bien con las ultimas versiones del Winpic y corrige varios bugs de grabación que fueron apareciendo.

Es decir que si no te anda el lite... poco puedes hacer para quejarte, para quejarte hay que comprarlo jejeje.

Si te fijas en todo el hilo del gtp-lite ahi figura como fueron sucediendose las cosas.

Un abrazo


PD: aún no me llega tu mail pero ni bien tenga un tiempo revisaré el código que me mencionas.  En cuanto a .rar no hay problema ya que también uso el winrar.  Eso sí, fijate que el winrar tiene opción para crear archivos .ZIP también por lo cual no debieras tener problemas si necesitas comunicarte con gente que tiene solo formato ZIP.


Título: Re: incluir subprogramas mplab
Publicado por: Nocturno en 13 de Abril de 2006, 12:13:12
Es decir que si no te anda el lite... poco puedes hacer para quejarte, para quejarte hay que comprarlo jejeje.

Si te fijas en todo el hilo del gtp-lite ahi figura como fueron sucediendose las cosas.

Mauricio, me parecen muy desafortunadas tus palabras. No veo porqué estableces una analogía entre consultar y quejarse.

Yo considero que ambas acciones son completamente diferentes y, si bien a la primera en este foro siempre hemos dado la mejor respuesta posible, de la segunda no veo ningún ejemplo representativo, ni en las versiones gratuitas del GTPUSB, ni mucho menos en la versión comercial del mismo.

Es más, podría encontrar en el foro decenas (quizás algún ciento) de mensajes de usuarios que han comprado el GTPUSB y tras recibirlo escriben con satisfacción sobre las prestaciones de su compra.

No voy a entrar en los detalles de la respuesta del amigo Marcelo porque ni conozco la pregunta que le hiciste, ni la base de su respuesta, pero sí te puedo decir que en el foro se han discutido, arreglado, ayudado y asesorado sobre muchos errores de programación que han ido teniendo los usuarios con las distintas versiones del GTPUSB:
El GTPUSB 232: http://www.todopic.com.ar/foros/index.php?topic=1719.0
El GTPUSB Lite: http://www.todopic.com.ar/foros/index.php?topic=1716.0
El GTPUSB Summer: http://www.todopic.com.ar/foros/index.php?topic=1718.0

Así que no puedo más que indignarme ante tu afirmación, puesto que por la parte que me toca, también he aportado la ayuda que he podido en esos hilos. Imagino que dicha indignación no será comparable a la de otros usuarios que también ayudaron y sobre todo a la de Sispic, su creador.

Al contrario que a ti, no me gusta complementar lo ya respondido por otros foristas, aún cuando su respuesta pueda no ser todo lo completa que yo habría considerado, salvo casos en los que exista la confianza suficiente para que no se entienda como una "invasión". Pero en esta ocasión no me voy a reprimir, y voy a ampliar la respuesta que has dado a groundman, porque no sólo la considero insuficiente, sino también falsa.

Groundman, si hay un PIC que se programa sin problemas por encima de todos es el 16F84. No he visto su pregunta en el foro de Programadores, pero intentaré encontrarla para ayudarte allí. Son pocos los post que se quedan sin responder en este magnífico foro, así que si aún no ha tenido respuesta ten un poco de paciencia porque verás como en breve recibes ayuda.
Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 12:51:52
Nocturno creo que mis palabras fueron mal interpretadas.

He estado en contacto con marcelo (marmatar) para adquirir 3  gtp-usb para la empresa que trabajo y también fue surgiendo durante para amigos que quiere un buen programador (algo que no se lo comenté porque durante el plazo en que espero su rta) , y no hablo de uno sino de varios.  En definitiva, me parece MUY BUEN PROGRAMADOR,  :D .  En lo concreto estoy esperando alguna novedad sobre si se puede usar el GTPUSB con XP o W2000 sin ser usuario administrador para poder concretar la operación.

No es mi intención criticarla ni mucho menos.  Solo que usando el gtpusb lite tuve un par de inconvenientes (en lo puntual con el 18F4580) y me dijo marcelo lo siguiente "muchos problemas fueron solucionados en versiones posteriores", de ahi que haya dicho que si algun pic no se programa bien por 2 razones.

1) Que la solución este en el foro, de hecho lo apunté a que vaya a la seccion de programadores gtpusb lite para recabar información ahi.

2) Que este solucionada en la versión comercial del producto

Si pertenezco al foro es porque me parece que hay gente maravillosa y muy capaz aquí, no para venir a criticar.  De hecho a veces no posteo por falta de tiempo pero no por falta de interes.

Sin más me despido , esperando que aceptes y acepten mis disculpas por una mala interpretación o bien una mala redacción mia.

Saludos




Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 13:01:17
Al contrario que a ti, no me gusta complementar lo ya respondido por otros foristas, aún cuando su respuesta pueda no ser todo lo completa que yo habría considerado, salvo casos en los que exista la confianza suficiente para que no se entienda como una "invasión". Pero en esta ocasión no me voy a reprimir, y voy a ampliar la respuesta que has dado a groundman, porque no sólo la considero insuficiente, sino también falsa.

Esto también me lo apunto modulay y realmente yo no pienso como uds respecto a este tema.

En ocasiones veo que muchos postean sobre el mismo tema solo para agregar algo.

¿Acaso soy el único que hace esto? Fijarse porfavor porque eso se agregar cosas abajo de otros es muy común en el foro y no me considero que yo sea el único que lo haga.

¿Esta mal agregar información o una corrección? 

Es realmente la primera vez que veo un planteo así y de ahí mi confusión.  Me gustaría que pegara un vistazo al foro de Microchip o en la lista de correo piclist donde la gente se va corrigiendo y va agregando información constantemente y no por eso se siente uno invadido o agredido o lo que sea.

A mi no me molesta que me corrijan si me equivoco o que agreguen información por más que esten diciendo lo mismo siempre que ayude a mostrar otro punto de vista de lo mismo o agregar luz u otra explicación mejor.

En realidad muchos de estas cosas me gustaria charlarlas por chat, porque tal vez la palabra escrita en forma permanente no sea la mejor forma de aclarar una idea además que hay muchos delays en el trato del tema.

Si estas de acuerdo, me gustaria hablar contigo, con modulay y con quien opine que agregar informacion a un post para agregar informacion o para corregir la misma sea invasivo y/u ofensivo.

Saludos






Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 13:45:17
Quisiera agregar algo y lo hago como otro post para no editar lo que ya escribí y que se tome como una corrección.

Creo que un foro debes ser un lugar donde haya información útil para la gente.  Donde si se trata un tema, el mismo quede aclarado.

En alguna que otra ocasión cuando alguien hace una pregunta y otro le dice "te respondi en privado", yo aporto mi opinión de que me parece que esto está mal, que un foro es para que si alguien pregunta lo haga en el foro sino estaríamos armando un foro de 'preguntas' cuyas respuestas no estarían posteadas poruqe fueron hechas en privado.

El otro extremo sería que la gente preguntaria y preguntaría muchas veces lo mismo porque no habría un lugar donde recurrir a la información comun.

Por otra parte, que ocurre si la información posteada es incorrecta? Hay que dejarla asi y que un usuario nuevo lea y haga las cosas mal?  A mi modo de verlo, en el foro se genera y se adquiere conocimiento, y porque no correjir o permitir que nos corrijan?

Lo veo tan básico a eso que me cuesta entender que sea ofensivo corregir a alguien, en serio lo digo una y otra vez, pero estuve pensando el tema y puede que en otros lugares eso se tome como ofensivo.  Al fin de cuentas, tenemos en común solo el lenguaje ya que las costumbres de cada lugar son bastante diferentes y puede que en eso yo esté errado.  Tal vez en otros lugares corregir o ser correjidos sea ofensivo, de mal gusto o bien invasivo.

Si es así, me gustaría que se ponga en algun post del estilo "usos y buenas costumbres" donde se aclare el tema ya que uno con el afan de aportar una ayuda termina ofendiendo o irritando a los demas lo cual no es mi intención ni cerca.

Los que me conocen personalmente saben que no es así y jamás me jacto de lo que sé o agredo al que no sabe, solo me molesta o me irrita la vagancia de cuando la gente demanda que le solucionen los problemas en forma inmediata, urgente y encima con una explicación de 2 lineas de lo que necesita hacer.

En lo personal opino que el correjir y ser correjido y aceptar los errores es la mejor forma de progresar.  Asumir el error (como yo asumo que tal vez he sido ofensivo por postear alguna corrección o agregar información) es una forma de mejorar, de ser cada vez mejores.  Creo que las culturas que han evolucionado han sido las que se han auto corrigiendo, han avanzado y han desechado o reconocido los errores cuando los han detectado.

Como dije antes estoy abierto a seguir dialogando del tema, pero me gustaría que sea por un chat que es mucho mas dinamico.  Me pueden enviar un mensaje privado asi intercambiamos msn , yahoo, icq o lo que usen.  También podria ser algun canal en un servidor irc.

Un abrazo
Título: Re: incluir subprogramas mplab
Publicado por: Modulay en 13 de Abril de 2006, 17:04:14
Pero vamos a ver,Mauricio.
¿Crees sinceramente que soy el que ha desencadenado todo esto?
¿No has pensado por un momento que pueda ser cuestión tuya y no de todos los demás?
Si olvidaras un poco eso de corregir,corregir,corregir, y te relajaras un poco quizá vieras las cosas de otro color.
¿El chat? pues sí,la gente puede cambiar de un medio a otro,pero estamos aquí...no se trata de que me convenzas a mí o al resto de foreros de que no eres tal y como te vemos,unos de una forma,otros de otra.Se trata de escuchar un poco,compartir y llevarnos lo mejor que podamos.
Y desde luego añadiéndome a tu lista negra,o expresándolo mas bien,no consigues más que hacerte mas daño del que supuestamente me haces a mi,o del que me puedas hacer.
Creo que vas a contrarreloj,Mauricio.Tómate un respiro,olvídate un poco del foro y date tus juergas con los amigos,la novia.Disfruta de todo lo que te ofrece la vida...¿del foro? también,pero para ello te digo con el corazón en la mano que deberías intentar abandonar un poco esa especie de carrera que disputas contra tí mismo,y que con frecuencia,se torna contra los demás.
Seguro que en persona eres buen tío,pero como ya te he dicho,no sirve de nada intentar convencer a nadie de ello,invierte tu energía en demostrarlo.
No es sólo conocimiento,seguro que al igual que yo,ves que detrás de todo esto lo que hay son personas y que realmente eso es lo más importante,que está por encima de todo.El llevarnos bien depende de nosotros,pero todos tenemos que poner de nuestra parte,incluído tú.
Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 17:50:43
Modulay si lees mi post no dije que desencadenaras tu esto, solo que tu mismo me dijiste algo similar respecto a postear donde otro posteó.

De todas formas te agradezco tus consejos.

Saludos
Título: Re: incluir subprogramas mplab
Publicado por: Modulay en 13 de Abril de 2006, 17:56:07
Es lo que has puesto.
Si quieres lo "CORRIJO" y le pongo la tilde que le falta
Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 18:48:03
Es lo que has puesto.
Si quieres lo "CORRIJO" y le pongo la tilde que le falta

Es cierto, va con acento :) :D :lol: :lol:

Me has hecho reir. 

De todas formas, capté tu onda. 

Saludos
Título: Re: incluir subprogramas mplab
Publicado por: BrunoF en 13 de Abril de 2006, 19:11:13
Buenas...
Si bien me he sentido tocado por tus palabras Mauricio, no soy de ofenderme fácil, así que caso omiso.
Con respecto a este rollo, debo destacar que los Argentinos somos muy "crudos" a la hora de hablar y escribir. No utilizamos un lenguaje tan coloquial como el resto de los paises de los cuales muchisimos foreros son oriundos.
Con esto no quiero justificar nada.Simplemente digo que esto puede resultar en algunos casos chocante para otros lectores.
Mi mayor anhelo es que todos nos pongamos de acuerdo en un solo fin: Crear una mejor comunidad, poder hacer nuevas amistades, y sobre todo...¡divertirnos!.

Con respecto a tus posts Mauricio, solo puedo decir que hasta a mi, que soy Argentino, no me termina de cerrar la forma en la que respondes, acotas u opinas sobre ciertas cosas. Estoy seguro que tus intenciones son las mejores.
Por ahí lo que falta es que logres "amabilizar" un poco tus mensajes.
No se, es solo una humilde opinion, tomenla o dejenla.
Exitos. Bruno.
Título: Re: incluir subprogramas mplab
Publicado por: Modulay en 13 de Abril de 2006, 19:58:07

Me has hecho reir. 


Puedes apostar a que será por poco tiempo majete :lol:
Título: Re: incluir subprogramas mplab
Publicado por: maunix en 13 de Abril de 2006, 20:42:59
Bruno gracias por tus palabras :)

La verdad, debe ser como tu dices que no doy muchas vueltas para decir algo.

Suelo ser breve y por ahi directo  :? :?

Es que en los foros en inglés me he acostumbrado a hablar asi y no me di cuenta que acá estaba mal visto.

Trataré de suavizar mis posts y sino..... volveré a mi montaña. jajaja

 :lol: :lol: :lol:

Título: Re: incluir subprogramas mplab
Publicado por: groundman en 16 de Abril de 2006, 19:35:41
hola,como al final no puedo programar los 16f84 estoy utilizando los 16f876 retocando el programa principal
que tengo para el 16f84.
uno de los retoques es poner las siguientes lineas aparte de los include "16f876.inc" y list "p16f876"
                bcf
   movlw   0x06
   movwf   ADCON1
esto es para comutar las salidas de PORTA a digitales ,y de esa manera anular las entradas analogicas.
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 16 de Abril de 2006, 19:54:36
hola ,hay alguna diferencia de las mas significativas ,aparte de conmutar las salidas analogicas a digitales desde
el ADCON1
y desactivar el bit de configuracion que no se porque desactiva el RB3, o almenos si no lo desactivas
no sale el dato esperado por la PB, tendra algo que ver con PGM.

es que quiero retocar un programa que estaba en un 16f84 para ejecutarlo en un 16f876
porque no me funciona,algo se me escapa.

ya que el mismo programa retocado funciona en el f84 pero no en el f876

el programa es un lector de teclado que la tecla pulsada se visualiza en un display.

gracias
Título: Re: incluir subprogramas mplab
Publicado por: maunix en 17 de Abril de 2006, 10:24:13
hola ,hay alguna diferencia de las mas significativas ,aparte de conmutar las salidas analogicas a digitales desde
el ADCON1
y desactivar el bit de configuracion que no se porque desactiva el RB3, o almenos si no lo desactivas
no sale el dato esperado por la PB, tendra algo que ver con PGM.

es que quiero retocar un programa que estaba en un 16f84 para ejecutarlo en un 16f876
porque no me funciona,algo se me escapa.

ya que el mismo programa retocado funciona en el f84 pero no en el f876

el programa es un lector de teclado que la tecla pulsada se visualiza en un display.

gracias

groundman las diferencias entre el F84 y el F876 son numerosas y no alcanzo a entender bien con que estas en problemas.   

En general, uno cuando pasa a un pic 'mayor' debe deshabilitar modulos que no usa.  El código compila digamos, porque las instrucciones son las mismas pero el hardware difiere y es ahí donde uno necesita adaptar. 

Es raro que consigas un documento que te explique la migracion de cada pic N1 al pic N2 ya que depende mucho del software que uno esté haciendo.


Sería importante que si tu código se puede ver que lo postees así te echamos una mano con el mismo ;) ;)

Incluso creo que sería más rápido si abres un nuevo tema donde trates tu problemática de migración de código.

Saludos



Título: Re: incluir subprogramas mplab
Publicado por: groundman en 17 de Abril de 2006, 18:27:27
ok.abrire otro tema .
es que no estoy acostubrado al manejo de los foros.no se hacer, ni el seleccionar el texto de otro usuario para
contestar o rectificar lo que haya dicho.

de ahi que no me haya dado cuenta de que se habia abierto una segunda continuacion del tema.

ni de la pequeña discusion o contraste de opiniones.
Título: Re: incluir subprogramas mplab
Publicado por: BrunoF en 18 de Abril de 2006, 01:02:01
Hola, fijate que arriba de cada mensaje publicado, hay un boton que dice "citar", asi de facil puedes citar lo que ha dicho otra persona, o incluso tu mismo.

Seria bueno como dice Maunix que abras un nuevo tema para tu problematica, ya que como el dice, lo que mas informacion aportara sobre cómo orientarte o solucionar tu problema, sera mirando el codigo fuente en si.

Exitos!!
Título: Re: incluir subprogramas mplab
Publicado por: aragon99 en 16 de Abril de 2011, 21:26:45
hola, soy nuevo en el foro y tambien se ke es un tema antiguo pero el probloem,a es que quiero correr el mismo programa pero al simularlo no hace nada alguien ke lo aya simulado en proteus i ke me poddria proporcionar la imagen
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 17 de Abril de 2011, 15:14:16
con imagen.te refieres al conexionado?
Título: Re: incluir subprogramas mplab
Publicado por: aragon99 en 19 de Abril de 2011, 11:22:12
si groundman me refiero al conexiado
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 20 de Abril de 2011, 15:41:33
esta imagen es un proyecto que estoy empezando a hacer.falta alguna conexion que ya te dire cuando lo tenga un poco mas avanzado.

(http://img97.imageshack.us/img97/1497/lcdbn.jpg)
By groundman (http://profile.imageshack.us/user/groundman) at 2011-04-20
Título: Re: incluir subprogramas mplab
Publicado por: aragon99 en 21 de Abril de 2011, 23:34:21
groundman pero veo por tus comentarios que tu realisaste este proyecto aun tienes el codigo con el ke lo hiciste s simular'
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 22 de Abril de 2011, 07:39:47
en aquel tiempo no usaba el proteus para simular solo el mpsim.si quieres el codigo,lo tienes en la respuesta #7 del principio de este tema.
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 23 de Abril de 2011, 14:37:39
aragon99.te adjunto el codigo para que lo simules.

aunque no esta basado en tablas.este codigo que no esta acabado del todo aunque te servira para empezar,utiliza unas direcciones de la ram para introducir el
texto.el cual se visualizara en la lcd.
Título: Re: incluir subprogramas mplab
Publicado por: groundman en 23 de Abril de 2011, 14:42:28
ah.se me olvidaba.la lcd que uso en proteus es el LM016L de 2x16 caracteres.y para que funcione,tienes que hacer clic sobre el y cambiar la frecuencia
de 250kB a 10MB