Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

LCD and Key board interfacing with PIC sample code

Status
Not open for further replies.

drbizzarow

Advanced Member level 1
Joined
May 24, 2006
Messages
414
Helped
25
Reputation
50
Reaction score
15
Trophy points
1,298
Activity points
3,662
Hi to ALL


I anybody share me sample code for PIC with LCD and 4X4 key pad interfacing plssss

i am using PCW CSS compiler ............

here are the pin info:

Lcd in 4 bit mode D4..D7 to pic port RD4...RD7

RS = RC0
EN = RA4
RW = RA5

pls help
 

Attachments

  • kb.bmp
    1.6 MB · Views: 48
  • lcd.JPG
    lcd.JPG
    53.6 KB · Views: 96

If you dont mind, i have a code for LCD with keyboard interfacing but, i did it with miKroC. I can give you the algorithm so you can use it for any other software you want to work with. But if you want my own code for miKroC, then just signify, i'll send it to you. opopson
 

Hi, Opopson.
I'm interested your MikroC coding,can you sent to me ?
Or you attach the coding here.
Thank you.


Linspire
 

i need PCW sample code on which i can change my LCD pin like i want in mk CKT.
 

Ok this is the code for MiKroC to read in keyboard to LCD Screen:


unsigned short keydata = 0, special = 0, down = 0,shift=1,i=1;

//char text[];
char letter,let;
sbit PS2_Data at RC0_bit;
sbit PS2_Clock at RC1_bit;
sbit PS2_Data_Direction at TRISC0_bit;
sbit PS2_Clock_Direction at TRISC1_bit;
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

unsigned char speFunction(unsigned short input)
{
switch (input)
{
case 1:
letter = "F" ;
break;
case 2:
letter = "@";
break;
case 5:
letter = "a";
break;
}
return letter;
}


void main() {

ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;

Lcd_Init(); // Initialize LCD

Lcd_Cmd(_LCD_CLEAR); // Clear display
//Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off

UART1_Init(19200); // Initialize UART module at 19200 bps
Ps2_Config(); // Init PS/2 Keyboard
Delay_ms(100);
Lcd_Out(1,1,"Ready"); // Write text in first row
// Wait for keyboard to finish
UART1_Write_Text("Ready");
UART1_Write(10); // Line Feed
UART1_Write(13); // Carriage return

do {

if (Ps2_Key_Read(&keydata, &special, &down)) {}
/*if (down && (keydata != 0)) { // Backspace
let = speFunction(keydata);
Lcd_Cmd(_Lcd_Clear);
Lcd_Chr(2,1,letter);
}*/ // uncomment this line if usart terminal also expects line feed
// for new line transition

else
if (down && !special && keydata) {
UART1_Write(keydata);

Lcd_Cmd(_Lcd_Clear);
Lcd_Chr(2,shift,keydata);
while(!down)
{ shift++;
//delay here
}

}



Delay_ms(1);

// debounce

}
while (1);
}
Opopson
 
Last edited:

Hmm how about show the schematic diagram also ?
Thanks opopson.


Linspire
 

My ISP is bad now it can seem to be able to upload attachments. Once I can do that, i will send it

opopson
 

Alright, I will take your code as my new learning.


Linspire
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top