sbit lcdrs=P2^6;
sbit lcden=P2^7;
sbit lcdrw=P2^5;
sbit D10=P1^0;
sbit D20=P1^1;
sbit D30=P1^2;
sbit D40=P1^3;
sbit D50=P1^4;
sbit D60=P1^5;
sbit lwchose=P1^6;
sbit hgchose=P1^7;
char code temp0[]="20LogAu=10dB";
char code temp1[]="20LogAu=20dB";
char code temp2[]="20LogAu=30dB";
char code temp3[]="20LogAu=40dB";
char code temp4[]="20LogAu=50dB";
char code temp5[]="20LogAu=60dB";
char code templ0[]="lw_10dB";
char code templ1[]="lw_20dB";
char code templ2[]="lw_30dB";
char code templ3[]="lw_40dB";
char code templ4[]="lw_50dB";
char code templ5[]="lw_60dB";
char code temph0[]="hg_10dB";
char code temph1[]="hg_20dB";
char code temph2[]="hg_30dB";
char code temph3[]="hg_40dB";
char code temph4[]="hg_50dB";
char code temph5[]="hg_60dB";
char num;
void delay(int z);
void write_com(char com)// 指令子函数
{
lcdrs=0;
lcdrw=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
lcdrw=1;
lcdrs=1;
}
void write_data(char datae) // 数据子函数
{
lcdrs=1;
lcdrw=0;
P0=datae;
delay(5);
lcden=1;
delay(5);
lcden=0;
void init()
{
lcden=0;
write_com(0x06); // 输入方式的设置
write_com(0x0c);
write_com(0x02); //复位
void main()
{
init();
lab: while (1)
{
if (D10==0)
{
write_com(0x01); //清屏
P3=0x22;
for(num=0;num<12;num++)
{
write_data(temp0[num]);
delay(5);
}
write_com(0x80+10);
goto lab;
else if (D20==0)
{
write_com(0x01); //清屏
P3=0x0a;
for(num=0;num<12;num++)
{
write_data(temp1[num]);
delay(5);
}
write_com(0x80+10);
goto lab;
}
else if (D30==0)
{
write_com(0x01); //清屏
P3=0x02;
for(num=0;num<12;num++)
{
write_data(temp2[num]);
delay(5);
}
write_com(0x80+10);
goto lab;
}
else if (D40==0)
{
write_com(0x01); //清屏
P3=0x04;
for(num=0;num<12;num++)
{
write_data(temp3[num]);
delay(5);
}
write_com(0x80+10);
goto lab;
}
else if (D50==0)
{
write_com(0x01); //清屏
P3=0x08;
for(num=0;num<12;num++)
{
write_data(temp4[num]);
delay(5);
}
write_com(0x80+10);
goto lab;
}
else if (D60==0)
{
write_com(0x01); //清屏
P3=0x00;
for(num=0;num<12;num++)
{
write_data(temp5[num]);
delay(5);
}
write_com(0x80+10);
goto lab;
}
TAB1: if (lwchose==0)
{
if (D10==0)
{
delay(5);
if (D10==0)
{
write_com(0x01); //清屏
P3=0x7a;
for(num=0;num<7;num++)
{
write_data(templ0[num]);
delay(5);
}
write_com(0x80+10);
goto TAB1;
}
}
else if (D20==0)
{
delay(5);
if (D20==0)
{
write_com(0x01); //清屏
P3=0x6a;
for(num=0;num<7;num++)
{
write_data(templ1[num]);
delay(5);
}
write_com(0x80+10);
goto TAB1;
}
}
else if (D30==0)
{
delay(5);
if (D30==0)
{
write_com(0x01); //清屏
P3=0x62;
for(num=0;num<7;num++)
{
write_data(templ2[num]);
delay(5);
}
write_com(0x80+10);
goto TAB1;
}
}
else if (D40==0)
{
delay(5);
if (D40==0)
{
write_com(0x01); //清屏
P3=0x64;
for(num=0;num<7;num++)
{
write_data(templ3[num]);
delay(5);
}
write_com(0x80+10);
goto TAB1;
}
}
else if (D50==0)
{
delay(5);
if (D50==0)
{
write_com(0x01); //清屏
P3=0x68;
for(num=0;num<7;num++)
{
write_data(templ4[num]);
delay(5);
}
write_com(0x80+10);
goto TAB1;
}
}
else if (D60==0)
{
delay(5);
if (D60==0)
{
write_com(0x01); //清屏
P3=0x60;
for(num=0;num<7;num++)
{
write_data(templ5[num]);
delay(5);
}
write_com(0x80+10);
goto TAB1;
}
}
}
TAB2: if (hgchose==0)
{
if (D10==0)
{
delay(5);
if (D10==0)
{
write_com(0x01); //清屏
P3=0x3a;
for(num=0;num<7;num++)
{
write_data(temph0[num]);
delay(5);
}
write_com(0x80+10);
goto TAB2;
}
}
else if (D20==0)
{
delay(5);
if (D20==0)
{
write_com(0x01); //清屏
P3=0x2a;
for(num=0;num<7;num++)
{
write_data(temph1[num]);
delay(5);
}
write_com(0x80+10);
goto TAB2;
}
}
else if (D30==0)
{
delay(5);
if (D30==0)
{
write_com(0x01); //清屏
P3=0x22;
for(num=0;num<7;num++)
{
write_data(temph2[num]);
delay(5);
}
write_com(0x80+10);
goto TAB2;
}
}
else if (D40==0)
{
delay(5);
if (D40==0)
{
write_com(0x01); //清屏
P3=0x24;
for(num=0;num<7;num++)
{
write_data(temph3[num]);
delay(5);
}
write_com(0x80+10);
goto TAB2;
}
}
else if (D50==0)
{
delay(5);
if (D50==0)
{
write_com(0x01); //清屏
P3=0x28;
for(num=0;num<7;num++)
{
write_data(temph4[num]);
delay(5);
}
write_com(0x80+10);
goto TAB2;
}
}
else if (D60==0)
{
delay(5);
if (D60==0)
{
write_com(0x01); //清屏
P3=0x20;
for(num=0;num<7;num++)
{
write_data(temph5[num]);
delay(5);
}
write_com(0x80+10);
goto TAB2;
}
}
}
}
void delay(int z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
上一篇:keil中的单片机模块化编程
下一篇:初始的STC89C52RC单片机小实验
推荐阅读最新更新时间:2024-03-16 15:12