tacbanon,
Not sure why you want to run at 48 MHz clock rate, but here is a routine that I have used at 8 MHz on a 18F4550 (and I know it works) on my EasyPic6 with PBP v2.6.
Code:'**************************************************************** '* Name : EasyPic_18F4550_DisplayDemo.pbp * '* Author : John R. Ellis * '* Date : 11/28/2009 * '* Version : 1.0 * '* Notes : Setup is for use on EasyPic6 development board * '* : * '* Device : 18F4550 installed in EasyPic6 * '* Memory : 408 bytes of Program Memory required * '* Ref: : * '**************************************************************** Define OSC 8 ;--- if you un-comment these, you must comment the ones in the .inc file-- ASM ; 18F2550/4550, 8mhz crystal __CONFIG _CONFIG1L, _PLLDIV_2_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L & _VREGEN_ON_2L __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H __CONFIG _CONFIG3H, _PBADEN_OFF_3H ; PortB resets as digital __CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L ENDASM INCLUDE "ALLDIGITAL.pbp" ' Sets all registers for digital ops. ' User must make sure the AllDigital.pbp file ' is in same directory location as this source ' code before compiling. 'DEFINE SHOWDIGITAL 1 ' When uncommented will show analog settings ' in Assembler Results window. ' A/D & Comparators disabled for digital ops ' All of these statements should be commented out when using the ' INCLUDE "AllDigital.pbp" statement to set digital ops. 'ADCON1 = %00001111 'CMCON = 7 ' Initialize Hardware ' ------------------- TRISA =%00000000 TRISB =%00000000 TRISC =%00000000 TRISD =%00000000 TRISE.0 = 0 TRISE.1 = 0 TRISE.2 = 0 INTCON2.7 = 0 '** DEFINE LCD Control Constants ** '==================================== L CON 254 ' Control Byte ($FE) Clr CON 1 ' Clear the display Line1 CON 128 ' Point to beginning of line 1 ($80) Line2 CON 192 ' Point to beginning of line 2 ($C0) ' LCD DEFINES FOR USE WIH 2x16 LCD INSTALLED IN EASYPIC6 '======================================================= DEFINE LCD_DREG PORTB ' Use PortB for LCD Data DEFINE LCD_DBIT 0 ' Use lower(4) 4 bits of PortB ' PORTB.0 thru PORTB.3 connects to ' LCD DB4 thru LCD DB-7 respectively DEFINE LCD_RSREG PORTB ' PORTB for RegisterSelect (RS) bit DEFINE LCD_RSBIT 4 ' PORTB.4 pin for LCD's RS line DEFINE LCD_EREG PORTB ' PORTB for Enable (E) bit DEFINE LCD_EBIT 5 ' PORTB.5 pin for LCD's E line DEFINE LCD_BITS 4 ' Using 4-bit bus DEFINE LCD_LINES 2 ' Using 2 line Display DEFINE LCD_COMMANDUS 2000 ' Command Delay (uS) DEFINE LCD_DATAUS 200 ' Data Delay (uS) 'Main Loop '========= Main: Pause 1000 ' Delay to let LCD start up LCDOut L,CLR:Pause 50 ' Clear Display LCDOut L,Line1+2," TEST " ' Display "TEST" on 1st line PAUSE 500 LCDOut L,Line2+2,"..Power On.. !!" ' Display "Power on" on 2nd line PAUSE 10000 Goto Main ' Continue loop




Bookmarks