要用2个按键控制独立显示1,2行,怎么改
附程序:
#include
#include
#define out P0
sbit RS = P3^0;
sbit RW = P3^1;
sbit E = P3^2;
sbit S1 = P1^0;
sbit S2 = P1^1;
void lcd_w_cmd(unsigned char com);
void lcd_w_dat(unsigned char dat);
unsigned char lcd_r_start();
void lcd_int();
void delay(unsigned int i);
void delay1();
void word()
{
lcd_w_cmd(0x80);
lcd_w_dat('h');
lcd_w_cmd(0x81);
lcd_w_dat('e');
lcd_w_cmd(0x82);
lcd_w_dat('l');
lcd_w_cmd(0x83);
lcd_w_dat('l');
lcd_w_cmd(0x84);
lcd_w_dat('o');
lcd_w_cmd(0x86);
lcd_w_dat('w');
lcd_w_cmd(0x87);
lcd_w_dat('o');
lcd_w_cmd(0x88);
lcd_w_dat('r');
lcd_w_cmd(0x89);
lcd_w_dat('l');
lcd_w_cmd(0x8A);
lcd_w_dat('d');
}
void number()
{
lcd_w_cmd(0xc0);
lcd_w_dat('0');
lcd_w_cmd(0xc1);
lcd_w_dat('1');
lcd_w_cmd(0xc2);
lcd_w_dat('2');
lcd_w_cmd(0xc3);
lcd_w_dat('3');
lcd_w_cmd(0xc4);
lcd_w_dat('4');
lcd_w_cmd(0xc5);
lcd_w_dat('5');
lcd_w_cmd(0xc6);
lcd_w_dat('6');
lcd_w_cmd(0xc7);
lcd_w_dat('7');
lcd_w_cmd(0xc8);
lcd_w_dat('8');
lcd_w_cmd(0xc9);
lcd_w_dat('9');
}
void main()
{
P1=0xff;
lcd_int();
delay(255);
word();
number();
if (S1==0)
{ delay(100);
if(S1==0)
P1=word;
}
if (S2==0)
{ delay(100);
if(S2==0)
P1=number;
}
while(1);
}
void delay1()
{
_nop_();
_nop_();
_nop_();
}
void lcd_int()
{
lcd_w_cmd(0x3c);
lcd_w_cmd(0x0e);
lcd_w_cmd(0x01);
lcd_w_cmd(0x06);
lcd_w_cmd(0x80);
}
unsigned char lcd_r_start()
{
unsigned char s;
RW=1;
delay1();
RS=0;
delay1();
E=1;
delay1();
s=out;
delay1();
E=0;
delay1();
RW=0;
delay1();
return(s);
}
void lcd_w_cmd(unsigned char com)
{
unsigned char i;
do{
i=lcd_r_start();
i=i&0x80;
delay(2);
}while(i!=0);
RW=0;
delay1();
RS=0;
delay1();
E=1;
delay1();
out=com;
delay1();
E=0;
delay1();
RW=1;
delay(255);
}
void lcd_w_dat(unsigned char dat)
{
unsigned char i;
do{
i=lcd_r_start();
i=i&0x80;
delay(2);
}while(i!=0);
RW=0;
delay1();
RS=1;
delay1();
E=1;
delay1();
P0=dat;
delay1();
E=0;
delay1();
RW=1;
delay(255);
}
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k