Quote Originally Posted by mackrackit View Post
PIN 3 on the LCD is for contrast. Hook a pot up as a voltage divider with the wiper going to display pin #3. Then adjust until the black boxes go away. Then try sending "HELLO WORLD" to the display.
thanks for the advice mackrackit.I've tested my LCD before and I found nothing's wrong with it.Even I connect pin 3 directly to the ground, my LCD still can display variable words clearly.

Quote Originally Posted by mister_e View Post
Hi, try a direct connection (porta to porta) with following. And of course don't forget to connect the Transmitter board GND with the Receiver board GND.

Receiver
Code:
        @       __CONFIG _HS_OSC & _LVP_OFF
        define OSC 20
        
        DEFINE LCD_DREG PORTC 'LCD data port
        DEFINE LCD_DBIT 0 'LCD data starting bit 0 or 4
        DEFINE LCD_RSREG PORTB 'LCD register select port
        DEFINE LCD_RSBIT 7 'LCD register select bit
        DEFINE LCD_EREG PORTB 'LCD enable port
        DEFINE LCD_EBIT 5 'LCD enable bit
        DEFINE LCD_RWREG PORTB 'LCD read/write port
        DEFINE LCD_RWBIT 6 'LCD read/write bit
        DEFINE LCD_BITS 8 'LCD bus size 4 or 8
        DEFINE LCD_LINES 2 'Number lines on LCD
        DEFINE LCD_COMMANDUS 2000 'Command delay time in us
        DEFINE LCD_DATAUS 50 'Data delay time in us
        
        TRISC = %00000000 'Set port B as output
        TRISB = %00000000 'Set port D as output
        low PORTB.6 'Set the R/W bit to low
        
        pause 1000 'wait until the LCD initializes
        
        INCLUDE "modedefs.bas"
        Counter VAR BYTE
        ReciverPIN VAR PORTA.0
        ADCON1 = 7 ' Alla digitala
        PAUSE 500

Main:
        SERIN ReciverPIN,T2400,[9],Counter
        GOSUB LCD
        GOTO Main

LCD:
        LCDOUT $FE,1
        LCDOUT $FE,$80,#Counter
        PAUSE 500
        RETURN

        END
Transmitter
Code:
        @       __CONFIG _HS_OSC & _LVP_OFF
        DEFINE OSC 20
        ADCON1=7
        ;CMCON = 7 'Alla I/O Digitala
        LEDPin VAR PORTB.4
        TransmitterPIN VAR PORTA.0
        INCLUDE "modedefs.bas"
        Counter VAR BYTE
        Synk VAR BYTE
        Synk = $55
        DEFINE CHAR_PACING 500
        Counter = 0
        
        HIGH TransmitterPin
        pause 200

Main:
        HIGH LEDPin
        PAUSE 100
        LOW LEDPin
        PAUSE 100
        SEROUT TransmitterPIN,T2400,[Synk,Synk,9,Counter]
        HIGH LEDPin
        PAUSE 100
        LOW LEDPin
        PAUSE 100
        
        Counter = Counter + 1
        PAUSE 600
        GOTO Main
        END
If you want to switch to the inverted mode, you just need to change T2400 to N2400, and the HIGH TransmitterPIN to LOW TransmitterPIN.

Work just fine here.

Unfortunately your picture don't help... it's a bit fuzzy
hi mister_e, I feel very sorry about the picture quality. I will attach the better one soon. Just try the code above but the error occur when I try to compile it using my microcode studio and it says " Error TRANSM~1.ASM 94 : [235] opcode expected instead of '0' "
After remove ' & _LVP_OFF ', microcode studio compile it succesfully.
The code works fine when I connect my transmitter and receiver pin directly and I can see the counting number display on my LCD.but It only works once when I try it using my RF modules.I got no result after try it the 2nd time.Only static number ( noise) shows up on my LCD.How do i reduce the noise??