Autor Tema: Migración del 16f877a al 18f4525  (Leído 2263 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado maxwell81

  • PIC10
  • *
  • Mensajes: 1
Migración del 16f877a al 18f4525
« en: 17 de Octubre de 2006, 06:26:35 »
Hola a todos, he realizado un código para manejar un lcd y un teclado en el 16f877a, pero se me quedó corto la memoria, este programa funciona tanto simulado con el Proteus como montado en placa board, luego cambie al 18f4525, me funciona también con el Proteus pero no me va montado en placa board.

Pensé que era problema del programador, pero lo he comprobado con un pequeño programa que parpadee un led, y va bien, y el circuito está bien montado, porque sólo tengo que cambiar el pic del 16f877 que va y cuando lo saco y meto el 18f4525 ya no va, con el mismo código, sólo cambiado los includes y las librerías.

----------------------------------------------------------------------------------
---------------------------------------------------------------------------------
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,nobrownout//ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhzç
#use fast_io (B)
#use fast_io (A)
#use fast_io (D)
#define use_portb_lcd TRUE //define que el lcd valla  por el puerto b y no por el d
#include<lcd2.c> //libreria manejo lcd
#include<KBD4x4ABCD_PROTEUS.c>

int tecla;
int desplaza,veces;

void main()
{




   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   lcd_init(); //inicializa lcd

------------------------------------------------------------------
-----------------------------------------------------------------
#include <18f4525.h>


#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,nobrownout//ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhzç
#use fast_io (B)
#use fast_io (A)
#use fast_io (D)

#define use_portb_lcd true //define que el lcd valla  por el puerto b y no por el d

#include<lcd18f.c> //libreria manejo lcd
#include<teclado18f.c>

int tecla2;
int desplaza,veces;

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF|ADC_TAD_MUL_0);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(VREF_LOW|-2);
   setup_low_volt_detect(FALSE);
   setup_oscillator(False);

lcd_init(); //inicializa

-------------------------------------------------------------
------------------------------------------------------------
Las librerías del lcd son la misma, pero sólo he cambiado la dirección de los registro para
el 18f4525, porque son diferentes al 16f877a

Gracias


 

anything