I did try using define, same thing happens. I have been using this LCD for a couple of years now. This is happening since I upgraded to windows7 64 bit. and using microcode studio
K
I did try using define, same thing happens. I have been using this LCD for a couple of years now. This is happening since I upgraded to windows7 64 bit. and using microcode studio
K
I also changed pic, used different pins for RS RE LCDout. I just have not changed the LCD module with a new one.. maybe its the LCD ...
How about:
Code:Mainloop: LCDOUT $FE,1 ' Clear display PAUSE 50 LCDOUT $FE,2," This is a test" ' Move to 1st line, writes 15 CHAR LCDOUT $FE,$C0,"Next or Select" ' Move to 2nd line, writes 14 CHAR PAUSE 200 GOTO Mainloop End
Louie
taking a cue from Louie, I'd say, you're writing too fast for the lcd to keep pace.
You can try this
Code:Mainloop: LCDOUT $FE,1 ' Clear display LCDOUT $FE,2," This is a test" ' Move to 1st line, writes 15 CHAR LCDOUT $FE,$C0,"Next or Select" ' Move to 2nd line, writes 14 CHAR STOP End
I think the revolution of the earth might of affected my chip. no but seriously I did not touch anything and it is working now...
even with pause 100 after the LCDout...
Althought i do not understand why I need these two line for my frequency:
OSCCON = %01110000 '8 Mhz
Define OSC 8
the OSCCON = %01110000 says that is is running at 8Mhz...
The program is not stable if I do not have BOTH of these lines... why ??
ken
OSSCON=%0111000 ... configures the actual PIC hardwareOSCCON = %01110000 '8 Mhz
Define OSC 8
Define OSC 8 ... is a directive to the COMPILER to notifiy it that you have set the PIC hardware for 8 MHz
Dwight
These PIC's are like intricate puzzles just waiting for one to discover their secrets and MASTER their capabilities.
Got my hopes up too quickly ...
I wrote this clock program.. works good, but sooner or later, after 1 minutes or 4 minutes the Display acts up go crazy, sometimes it comes back showing a proper time.. but its really not stable...
K
'LCD testing program
INCLUDE "modedefs.bas"
OSCCON = %01110000 '8 Mhz
Define OSC 8
CMCON = 7 : ANSEL = 0 : ADCON1 = 7
'/////////////////////////
'// LCD configuration //
'/////////////////////////
DEFINE LCD_DREG PORTA ' Set LCD Data port
DEFINE LCD_DBIT 0 ' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_RSREG PORTB ' Set LCD Register Select port
DEFINE LCD_RSBIT 7 ' Set LCD Register Select bit
DEFINE LCD_EREG PORTB ' Set LCD Enable port
DEFINE LCD_EBIT 6 ' Set LCD Enable bit
DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 2 ' Set number of lines on LCD
DEFINE LCD_COMMANDUS 2500
DEFINE LCD_DATAUS 250
DEFINE CHAR_PACING 2000
pause 500
'/////////////////////////
'// PIN configuration //
'/////////////////////////
TRISB = %00000000 ' Set PORTB to all output
TRISA = %11111111 ' Set PORTA to all input
'///////////////////////////////////////////////
'// Variable Declaration and initialization //
'///////////////////////////////////////////////
SDApin var PORTB.1 ' RTC data
SCLpin var PORTB.4 ' RTC clock
Total_time var byte
RTCSec var byte :RTCMin var byte :RTCHour var byte :RTCWDay var byte :RTCDay var byte :RTCMonth var byte :RTCYear var byte :RTCCtrl var byte
lcdout $FE,1, "Bienvenue"
lcdout $FE,$C0, "Welcome"
pause 500
'////////////////////////////////////////////////////
'////////////////// PROGRAM /////////////////////////
'////////////////////////////////////////////////////
I2CWRITE SDApin,SCLpin,$D0,$00,[$49,$59,$00,$00,$00,$00,$00,$00] ' Write to DS1307 to start counter at ZERO
Pause 30
Mainloop:
I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour,RTCWDay,RTCDay,RTCMonth,RTCY ear,RTCCtrl]
Pause 30
'Will get the time from timer chip and do a 60 min count down
'Also add interrupt if someone presses start to view the charge/discharge cycle
LCDOUT $FE,1 ' Clear display
PAUSE 20
lcdout $FE,2, "Kens Clock"
lcdout $FE,$C0, "time: ", HEX2 RTCHour, ":", HEX2 RTCMin, ":", HEX2 RTCSec
Pause 300
Goto Mainloop
end
Bookmarks