We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
//Program to display String on LCD
//Program to interface Serial EEPROM AT24C02 with 8051 microcontroller (AT89C51) #include<reg51.h> #include<intrins.h> //For using [_nop_()]
sbit sda=P1^0; sbit scl=P1^1; sbit led=P0^1; bit ack; sbit led1=P0^2; sbit sav=P0^4; sbit up=P0^5; sbit down=P0^6; sfr lcd_data_pin=0xA0;//p2 port sfr output=0x80;//p0 port sbit rs=P3^1;
sbit en=P3^0; unsigned char reead,write; unsigned int temp,new_value1,new_value,test=0,num=0,i,j; void init() // to initialize the output pins and Timer0 { up=down=1;
TMOD=0x01; TL0=0xf6; TH0=0xFf; IE=0x82; TR0=1; } void delay(unsigned int count) { int i,j; for(i=0;i<count;i++) for(j=0;j<1275;j++); } void lcd_command(unsigned char comm) { lcd_data_pin=comm; en=1; rs=0; delay(1); en=0; } void lcd_data(unsigned char disp) { lcd_data_pin=disp; en=1; rs=1; delay(1); en=0; } lcd_strng(unsigned char *disp) { int x; for(x=0;disp[x]!=0;x++) { lcd_data(disp[x]); } } void lcd_ini() { lcd_command(0x38); // for using 8-bit 2 row LCD delay(5); lcd_command(0x0F); // for display on, cursor blinking delay(5); lcd_command(0x80); delay(5); } void aknowledge() //acknowledge condition { scl=1; _nop_(); _nop_(); scl=0; } void start() //start condition { sda=1; scl=1; _nop_(); //No operation _nop_(); sda=0; scl=0; } void stop() //stop condition { sda=0; scl=1; _nop_(); _nop_(); sda=1; scl=0; } void send_byte(unsigned int value) //send byte serially {
unsigned int i; unsigned int send;
send=value; for(i=0;i<8;i++) { sda=send/128; //extracting MSB send=send<<1; //shiftng left scl=1; _nop_(); _nop_(); scl=0; } ack=sda; //reading acknowledge sda=0; } unsigned char read_byte() //reading from EEPROM serially { unsigned int i; sda=1; reead=0; for(i=0;i<8;i++) { reead=reead<<1; scl=1; _nop_(); _nop_(); if(sda==1) reead++; scl=0; } sda=0; return reead; //Returns 8 bit data here } void save() //save in EEPROM { init(); while(1) { if(up==0&&down==1) //check if up pin is pressed { test++; num=test; new_value=num%10; num=num/10; if(test==9) test=0;
} if(up==1&&down==0) //check if down pin is pressed { test--; num=test; new_value=num%10; num=num/10; if(test==0) test=9;
}
start(); send_byte(0xA0); //device address aknowledge(); send_byte(0x00); //word address aknowledge(); send_byte(new_value); //send data aknowledge(); stop(); if(ack==0) { /* new_value1=new_value1+48; */ led1=1; delay(100); led1=0; delay(100); lcd_command(0x86); lcd_data(new_value);
} else led1=1; aknowledge(); }
void Read() { start(); send_byte(0xA0); aknowledge(); send_byte(0x00); aknowledge(); start(); send_byte(0xA1); //device address aknowledge(); i=read_byte(); aknowledge(); stop(); if(i==new_value) { led=0; delay(100); led=1; delay(100); write=i+48; lcd_command(0xC6); lcd_data(write); } else led=1;
aknowledge(); }
void main() { lcd_ini();
lcd_strng("Sent :"); lcd_command(0xC0); lcd_strng("Read :"); temp=0; while(1) { save(); Read(); } }
And the answer is that whatever we do, we can't even get you to understand that you can't just take the broken code from the first post and repost - that the formatting have been forever lost.
If we can't even get you to understand that you must go all the way back to the code available in the editor, then it isn't likely that we can be able to discuss actual source code with you either. So why should we even try?
sir. you do not understand. sir i ask you not to reply. is there a good person who will answer. my chief always answered well here but he says you always fight his sense and you were jealous because he was so good. i now understand him.