vasanthkumar.M
Newbie level 3
>>Hi Friends i am new to this field,,,So kindly help me to solve this issue...
>>I Sucessfully to interfaced PIC16F877A with LCD and Keypad...
>>I want to do an simple calculator program using PIC16F877A....
>>After interfacing LCD and Keypad..i write an array to copy the value of key pressed in it...
>>But when i try update it in main prograsm it is not retriving..........anyone please help me to solve problem...
>>I have attache my code with this and help me....
>>I Sucessfully to interfaced PIC16F877A with LCD and Keypad...
>>I want to do an simple calculator program using PIC16F877A....
>>After interfacing LCD and Keypad..i write an array to copy the value of key pressed in it...
>>But when i try update it in main prograsm it is not retriving..........anyone please help me to solve problem...
>>I have attache my code with this and help me....
Code:
#include<pic.h>
#include "lcd.h"
extern int i;
int i;
void add();
void sub(int,int);
void mul(int,int);
void div(float,float);
void main()
{
TRISC=0x0F;
PORTC=0x00;
init();
int a,q,k;
while(1)
{
cmd(0x01);
cmd(0x80);
display("PIC CALCULATOR");
delay2();
cmd(0xC0);
keypad1();
q=i+k;
data(q+0x30);
}
}
//void add()
//{
//int r,t,e;
//r=a[0]+a[1];
//t=r%10;
//r=r/10;
//e=r%10;
//cmd(0x01);
//cmd(0x80);
//display("Addition");
//cmd(0xC0);
//data(c+0x30);
//data(d+0x30);
//delay2();
//}
//void sub(int a,int b)
//{
//int c,d,e;
//c=a-b;
//d=c%10;
//c=c/10;
//e=c%10;
//cmd(0x01);
//cmd(0x80);
//display("subraction");
//cmd(0xC0);
//data(c+0x30);
//data(d+0x30);
//}
//void mul(int a,int b)
//{
//int c,d,e;
//c=a*b;
//d=c%10;
//c=c/10;
//e=c%10;
//cmd(0x01);
//cmd(0x80);
//display("multiplication");
//cmd(0xC0);
//data(c+0x30);
//data(d+0x30);
//}
//void div(float a,float b)
//{
//float c;
//int d,e,f,g,h;
//c=a/b;
//h=c*1000;
//d=h%10;
//h=h/10;
//e=h%10;
//h=h/10;
//f=h%10;
//h=h/10;
//g=h%10;
//cmd(0x01);
//cmd(0x80);
//display("Division");
//cmd(0xC0);
//data(g+0x30);
//data(f+0x30);
//data('.');
//data(e+0x30);
//data(d+0x30);
//}
#include<pic.h>
#include "lcd.h"
extern int i;
int i;
extern int a[4];
int a[4];
int q;
void keypad1()
{
TRISC=0xF0;
PORTC=0x00;
while(q<=1)
{
PORTC=0x01;
if(RC4==1)
{
data('7');
i=7;
q++;
delay2();
}
else if(RC5==1)
{
data('8');
i=8;
q++;
delay2();
}
else if(RC6==1)
{
data('9');
i=9;
q++;
delay2();
}
else if(RC7==1)
{
data('/');
i='/';
q++;
delay2();
}
else
{
}
PORTC=0x02;
if(RC4==1)
{
data('4');
i=4;
q++;
delay2();
}
else if(RC5==1)
{
data('5');
i=5;
q++;
delay2();
}
else if(RC6==1)
{
data('6');
i=6;
q++;
delay2();
}
else if(RC7==1)
{
data('*');
i='*';
q++;
delay2();
}
else
{
}
PORTC=0x04;
if(RC4==1)
{
data('1');
i=1;
q++;
delay2();
}
else if(RC5==1)
{
data('2');
i=2;
q++;
delay2();
}
else if(RC6==1)
{
data('3');
i=3;
q++;
delay2();
}
else if(RC7==1)
{
data('-');
i='-';
q++;
delay2();
}
else
{
}
PORTC=0x08;
if(RC4==1)
{
data('N');
i='N';
q++;
delay2();
}
else if(RC5==1)
{
data('0');
i=0;
q++;
delay2();
}
else if(RC6==1)
{
data('=');
i='=';
q++;
delay2();
}
else if(RC7==1)
{
data('+');
i='+';
q++;
delay2();
}
else
{
}
}
}
#include<pic.h>
#include "lcd.h"
void init()
{
TRISB=0x00;
TRISE=0x00;
PORTB=0x00;
PORTE=0x00;
ADCON1=0x02;
cmd(0x01);//clear
delay1();
// cmd(0x02);// cursor return home
// delay();
// cmd(0x06);//Entry mode set
// delay();
cmd(0x0E);//display on,cursor on,cursor blinking off
delay1();
cmd(0x1C);//cursor or display shift
delay1();
cmd(0x38);//interface length,no of lines
delay1();
// while(1)
// {
// cmd(0x80);
// display("Calculator");
// }
}
void cmd(unsigned char cd)
{
PORTE=0x04;
PORTB=cd;
delay1();
RE2=0;
}
void data(unsigned char dt)
{
PORTE=0x05;
PORTB=dt;
delay1();
RE2=0;
}
void display(const char *s)
{
while(*s)
data(*s++);
}
void delay1()
{
unsigned int q;
for(q=0;q<1000;q++)
{
}
}
void delay2()
{
unsigned int w;
for(w=0;w<30000;w++)
{
}
}
void cmd(unsigned char);
void data(unsigned char);
void display(const char *s);
void delay1();
void delay2();
void keypad1();
void init();
Last edited by a moderator: