Coding for RF module with PIC 16F877A

Thread Starter

anak_ayam

Joined Mar 28, 2008
2
Hi everyone,
I'm doing my LAB project about bus monitoring system using the RF module-> TWS434/RWS434 . I'm using 2 piece of PIC16F877A for RF Tx and RF Rx and 2 LCD's which installed on transmitter board and receiver board.I also have 4x4 matrix keypad installed at transmitter board..what I'm doing now is when I press pad 1,2 and the others the character BUS01,BUS02.....will be display on LCD.But it's not finish.I want to send that Character and also display it on the receiver board.The problem is I don't know how to make a code to send the data.Below is the code for my keypad.
please Help me with the coding..I will really appreciate it.


' PicBasic Pro program to display key number on LCD

' Define LOADER_USED to allow use of the boot loader.
' This will not affect normal program operation.
Define LOADER_USED 1

' Define LCD connections
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

' Define program variables
col var byte ' Keypad column
row var byte ' Keypad row
key var byte ' Key value
Value var byte
ADCON1 = 7 ' Make PORTA and PORTE digital


Pause 100 ' Wait for LCD to start

Lcdout $fe, 1, "Key In Bus ID" ' Display sign on message

loop:
Gosub getkey ' Get a key from the keypad
Lcdout $FE, $C0, "BUS",DEC2 key ' Display ASCII key number
PAUSE 200
Goto loop ' Do it forever

' Subroutine to get a key from keypad
getkey:
Pause 50 ' Debounce

getkeyu:
' Wait for all keys up
PORTD = 0 ' All output pins low
TRISD = $f0 ' Bottom 4 pins out, top 4 pins in
If ((PORTD >> 4) != $f) Then getkeyu ' If any keys down, loop
Pause 50 ' Debounce
getkeyp:
' Wait for keypress
For col = 0 to 3 ' 4 columns in keypad
PORTD = 0 ' All output pins low
TRISD = (dcd col) ^ $ff ' Set one column pin to output
row = PORTD >> 4 ' Read row
If row != $f Then gotkey ' If any keydown, exit
Next col

Goto getkeyp ' No keys down, go look again

gotkey: ' Change row and column to key number 1 - 16
key = (col * 4) + (ncd (row ^ $f))
Return ' Subroutine over
end
 
Top