📄 文档 (4)相位可调.txt
字号:
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+8;
xianshu(a);
}
else if (key==10)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+9;
xianshu(a);
}
else if (key==13)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+0;
xianshu(a);
}
}
return a;
}
void main()
{
uchar i;
uchar t;
uchar i2;
uchar j=0; //标记
ulong a=1000,b=1000; //a用来记录频率;b用来记录频率间隔(开始是为1000HZ)
ulong c=0;
uchar code d[]="please insert F:";
uchar code q[]="insert code: ";
uchar code w[]="please insert DF:" ;
uchar ask[10];
uchar str0='1';
uchar str1='2';
uchar str2='3';
uchar str3='A';
uchar str4='4';
uchar str5='5';
uchar str6='6';
uchar str7='B';
uchar str8='7';
uchar str9='8';
uchar str10='9';
uchar str11='c';
uchar str12='*';
uchar str13='0';
uchar str14='#';
uchar str15='D';
unsigned char offset=0x80; //定义一个偏移地址变量,lcd1602 写入控制字时用到
unsigned char key;
delay(2);
lcd1602_bus=0xff;
lcd1602_init();
lcd1602_wrcmd(offset+0x00);
xianshi(0);
// lcd1602_clear();
while(1)
{
key=getkey_ii();
if(key==7)
{
j=j+1;
if(j>4)j=0;
xianshi(j);
}
if (key==3)
{
if (j==0) j=5;
j=j-1;
xianshi(j);
}
if(key==0 || ((j==0)&&(key==15)))
{ key=getkey_ii();
ad9850(a,b,c);
delay(1000);
}
if(key==1 || ((j==1)&&(key==15)))
{
key=18;
i2=0;
lcd1602_init();
lcd1602_clear();
while(key!=15)
{
key=getkey_ii();
delay(100);
if (key==0) {i2=i2+1; ask[i2-1]=1 ;}
if (key==13) {i2=i2+1; ask[i2-1]=0; }
lcd1602_clear();
for(i=0;i<18;i++) lcd1602_wrdata(q[i]);
lcd1602_wrcmd(offset+0x40); //换行
for(i=0;i<i2;i++) lcd1602_wrdata(ask[i]+0x30);
}
lcd1602_clear();
key=18;
while(key!=15)
{
for(i=0;i<i2;i++)
{
if(ask[i]==0) ad9850(0,0,0);
if(ask[i]==1) ad9850(300,0,0);
lcd1602_clear();
lcd1602_wrcmd(offset+0x40); //换行
for(t=0;t<i2;t++) lcd1602_wrdata(ask[t]+0x30);
delay_1ms(10);
key=getkey_ii();
}
}
xianshi(j);
}
if(key==2|| ((j==2)&&(key==15)))
{ a=0;
lcd1602_clear();
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
key=18; //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次
while(key!=15 )
{
key=getkey_ii();
if(key==0)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
a=a*10+1;
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
xianshu(a);
//lcd1602_wrcmd(offset+0x40);
// for(i=0;i<11;i++) lcd1602_wrdata(str12[i]);
}
else if (key==1)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+2;
xianshu(a);
//lcd1602_wrcmd(offset+0x40);
//for(i=0;i<15;i++) lcd1602_wrdata(str22[i]);
}
else if (key==2)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+3;
xianshu(a);
// lcd1602_wrcmd(offset+0x40);
// for(i=0;i<15;i++) lcd1602_wrdata(str31[i]);
}
else if (key==4)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
a=a*10+4;
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
xianshu(a);
}
else if (key==5)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+5;
xianshu(a);
}
else if (key==6)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+6;
xianshu(a);
}
else if (key==8)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+7;
xianshu(a);
}
else if (key==9)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+8;
xianshu(a);
}
else if (key==10)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+9;
xianshu(a);
}
else if (key==13)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
lcd1602_wrcmd(offset+0x40); //换行
a=a*10+0;
xianshu(a);
}
}
xianshi(0);
j=0;
ad9850(a,b,c);
} //设定频率
if(key==4 || ((j==3)&&(key==15)))
{ b=0;
lcd1602_clear();
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
key=18; //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次
while(key!=15 )
{
key=getkey_ii();
if(key==0)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
b=b*10+1;
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
xianshu(b);
//lcd1602_wrcmd(offset+0x40);
// for(i=0;i<11;i++) lcd1602_wrdata(str12[i]);
}
else if (key==1)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+2;
xianshu(b);
//lcd1602_wrcmd(offset+0x40);
//for(i=0;i<15;i++) lcd1602_wrdata(str22[i]);
}
else if (key==2)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+3;
xianshu(b);
// lcd1602_wrcmd(offset+0x40);
// for(i=0;i<15;i++) lcd1602_wrdata(str31[i]);
}
else if (key==4)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
b=b*10+4;
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
xianshu(b);
}
else if (key==5)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+5;
xianshu(b);
}
else if (key==6)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+6;
xianshu(b);
}
else if (key==8)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+7;
xianshu(b);
}
else if (key==9)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+8;
xianshu(b);
}
else if (key==10)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+9;
xianshu(b);
}
else if (key==13)
{
lcd1602_clear();
lcd1602_wrcmd(offset+0x00);
for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
lcd1602_wrcmd(offset+0x40); //换行
b=b*10+0;
xianshu(b);
}
}
xianshi(0);
j=0;
ad9850(a,b,c);
}
if(key==5|| ((j==4)&&(key==15)))
{
c=dushu();
ad9850(a,b,c);
}
//相位控制
if(key==12){a=a-b; ad9850(a,b,c);} // *键用来步减
if(key==14) {a=a+b; ad9850(a,b,c);} // #用来步加
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -