📄 lcd320240.c
字号:
dist=dist*100;
ClearPic(3231,48,16,1);
DisplayFloat4(dist,3231,1);
//显示频率 分辨率
Fs=f_ff;
//Fs=Fs*2;
ClearPic(5793,108,16,1);
DisplayInt5(Fs,5793,1);
//显示总功率
power_all=account_pall(ddtbull);
power_all_db=account_dbm(power_all,k_ff);
if(power_all_db<0)
{
power_all_db=0-power_all_db;
DisplaySymbol(datajian,8287,1);
DisplayFloat3(power_all_db,8288,1);
}
else
{
DisplaySymbol(datajia,8287,1);
DisplayFloat3(power_all_db,8288,1);
}
//显示频率个数
Fn=fnum_jud(ddtbull);
DisplayInt5(Fn,4513,1);
//各频率分量显示
for(igl=0;igl<10&&igl<Fn;igl++)
{
addr2=addr0+1+1440*(igl/2)+(igl%2)*10+40;
//addr2=addr0+1+36*40*i+j*10+680;
F_base=ddtbull[1024+igl];
power_f=account_dbm(ddtbull[F_base],k_ff);
if(power_f<0)
{
power_f=0-power_f;
DisplaySymbol(datajian,addr2+2,1);
DisplayFloat3(power_f,addr2+3,1);
}
else
{
DisplaySymbol(datajia,addr2+2,1);
DisplayFloat3(power_f,addr2+3,1);
}
F_base=ddtbull[1024+igl];
Fs=f_ff;
F_base=F_base*Fs;
//temp=temp*temp3/2;
DisplayInt5(F_base,addr2+642,1);
}
//频率分量总和
power_sum=sum_fp(ddtbull);
power_sum_db= account_dbm(power_sum,k_ff);
if( power_sum_db<0)
{
power_sum_db=0- power_sum_db;
DisplaySymbol(datajian,8311,1);
DisplayFloat3(power_sum_db,8312,1);
}
else
{
DisplaySymbol(datajia,8311,1);
DisplayFloat3(power_sum_db,8312,1);
}
//功率百分比
power_all=account_pall(ddtbull);
power_sum=sum_fp(ddtbull);
power_bfb = power_all;
power_bff = power_sum;
power_bfb=power_bff/power_bfb;
power_bfb=power_bfb*power_bfb*100;
if(power_bfb<0)
{
power_bfb=0-power_bfb;
DisplaySymbol(datajian,8949,1);
DisplayFloat3(power_bfb,8950,1);
}
else
{
DisplaySymbol(datajia,8949,1);
DisplayFloat3(power_bfb,8950,1);
}
}
/*********************************************
FFT后,功率分布图的固定显示
addr0坐标原点 680
*********************************************/
void Display_glbb(unint addr0,unint lay)
{
unchar i,j;
unchar addrH = 0;
unchar addrL = 0;
unint addrtemp = 0;
unchar datatemp;
switch(lay)
{
case 1:
wr_datas(addrL);
wr_datas(addrH);
break;
case 2:
wr_datas(addrL);
wr_datas(0x80+addrH);
break;
default:
break;
}
DisplayChineseArray("音频信号分析仪",14,12,1);
DisplayChineseArray("音频信号各频率功率和占总功率",28,8920,1);
DisplaySymbol(datamaohao,8948,1);
DisplaySymbol(databfh,8954,1);
DisplayChineseArray("总功率",6,8280,1);
DisplaySymbol(datamaohao,8286,1);
DisplaySymbol(datad,8292,1);
DisplaySymbol(data_B,8293,1);
DisplaySymbol(datam,8294,1);
DisplayChineseArray("频率分量功率和",14,8296,1);
DisplaySymbol(datamaohao,8310,1);
DisplaySymbol(datad,8316,1);
DisplaySymbol(data_B,8317,1);
DisplaySymbol(datam,8318,1);
DisplayChineseArray("时间",4,664,1);
DisplaySymbol(datamaohao,668,1);
DisplaySymbol(datas,672,1);
DisplayChineseArray("周期",4,1944,1);
DisplaySymbol(datamaohao,1948,1);
DisplaySymbol(datam,1957,1);
DisplaySymbol(datas,1958,1);
DisplayChineseArray("失真度",6,3224,1);
DisplaySymbol(datamaohao,3230,1);
DisplaySymbol(databfh,3238,1);
DisplayChineseArray("频率个数",8,4504,1);
DisplaySymbol(datamaohao,4512,1);
DisplayChineseArray("频率分辨率",10,5782,1);
DisplaySymbol(datamaohao,5792,1);
DisplaySymbol(data_H,5797,1);
DisplaySymbol(dataz,5798,1);
DisplayChineseArray("返回",4,7594,1);
Redisplay_Area(7594,32,16,1);
DisplayChineseArray("暂停",4,7584,1);
Redisplay_Area(7584,32,16,1);
//画横线
for(i=0;i<6;i++)
{
for(j=0;j<20;j++)
{
addr2=addr0+36*40*i+j-1;
wr_command(0x4c); //set point move direction
wr_command(0x46); //set point address
wr_datas((unchar)(addr2&0X00FF)); // 写低地址
wr_datas((unchar)((addr2&0XFF00)>>8)); //写高地址
wr_command(0x47); //读地址指令
addrL = RD_LCD(); //读地址
addrH = RD_LCD();
wr_command(0x43); //读数据指令
datatemp = RD_LCD(); //读数据
wr_command(0x4c); //set point move direction
wr_command(0x46); //set point address
wr_command(0x42); //mwrite 数据写入显示缓冲区
wr_datas(datatemp|0xaa);
}
}
//画竖线
for(i=0;i<3;i++)
{
for(j=0;j<91;j++)
{
addr2=addr0+i*10+80*j;
wr_command(0x4c); //set point move direction
wr_command(0x46); //set point address
wr_datas((unchar)(addr2&0X00FF)); // 写低地址
wr_datas((unchar)((addr2&0XFF00)>>8)); //写高地址
wr_command(0x47); //读地址指令
addrL = RD_LCD(); //读地址
addrH = RD_LCD();
wr_command(0x43); //读数据指令
datatemp = RD_LCD(); //读数据
wr_command(0x4c); //set point move direction
wr_command(0x46); //set point address
wr_datas(addrL); // 写低地址
wr_datas(addrH); //写高地址 */
wr_command(0x42); //mwrite 数据写入显示缓冲区
wr_datas(datatemp|0x01);
}
}
//默认dBm显示
for(i=0;i<5;i++)
{
for(j=0;j<2;j++)
{
addr2=addr0+1+36*40*i+j*10+40;
DisplaySymbol(datad,addr2+7,1);
DisplaySymbol(data_B,addr2+8,1);
DisplaySymbol(datam,addr2+9,1);
DisplaySymbol(data_P,addr2,1);
DisplaySymbol(datamaohao,addr2+1,1);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<2;j++)
{
addr2=addr0+1+36*40*i+j*10+680;
DisplaySymbol(data_H,addr2+8,1);
DisplaySymbol(dataz,addr2+9,1);
DisplaySymbol(data_F,addr2,1);
DisplaySymbol(datamaohao,addr2+1,1);
}
}
}
/******************************************************
dBm与dB 的切换显示
******************************************************/
void Displaydbm_db(unint addr0,unint lay)
{
unchar i,j;
for(i=0;i<5;i++)
{
for(j=0;j<2;j++)
{
addr2=addr0+1+36*40*i+j*10+40;
DisplaySymbol(datad,addr2+7,1);
DisplaySymbol(data_B,addr2+8,1);
//DisplaySymbol(datam,addr2+9,1);
DisplaySymbol(data_P,addr2,1);
DisplaySymbol(datamaohao,addr2+1,1);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<2;j++)
{
addr2=addr0+1+36*40*i+j*10+680;
DisplaySymbol(data_H,addr2+8,1);
DisplaySymbol(dataz,addr2+9,1);
DisplaySymbol(data_F,addr2,1);
DisplaySymbol(datamaohao,addr2+1,1);
}
}
}
/********************************************************
//显示浮点数
//data:1位小数,addr:显示首地址,lay:层
**********************************************************/
void DisplayFloat3(float D_data,unint addr,unint lay)
{
unchar datatemp[3] = {0};
unint dataX10=0; //将data乘以10保存
unchar i;
dataX10 = (unint)(D_data*10);
datatemp[0] = dataX10/100;
dataX10 = dataX10%100;
datatemp[1] = dataX10/10;
dataX10 = dataX10%10;
datatemp[2] = dataX10;
for(i=0;i<2;i++)
{
switch(datatemp[i])
{
case 0:
DisplaySymbol(data0,addr+i,lay);
break;
case 1:
DisplaySymbol(data1,addr+i,lay);
break;
case 2:
DisplaySymbol(data2,addr+i,lay);
break;
case 3:
DisplaySymbol(data3,addr+i,lay);
break;
case 4:
DisplaySymbol(data4,addr+i,lay);
break;
case 5:
DisplaySymbol(data5,addr+i,lay);
break;
case 6:
DisplaySymbol(data6,addr+i,lay);
break;
case 7:
DisplaySymbol(data7,addr+i,lay);
break;
case 8:
DisplaySymbol(data8,addr+i,lay);
break;
case 9:
DisplaySymbol(data9,addr+i,lay);
break;
default:
break;
}
}
DisplaySymbol(datadian3,addr+2,lay);
switch(datatemp[2])
{
case 0:
DisplaySymbol(data0,addr+3,lay);
break;
case 1:
DisplaySymbol(data1,addr+3,lay);
break;
case 2:
DisplaySymbol(data2,addr+3,lay);
break;
case 3:
DisplaySymbol(data3,addr+3,lay);
break;
case 4:
DisplaySymbol(data4,addr+3,lay);
break;
case 5:
DisplaySymbol(data5,addr+3,lay);
break;
case 6:
DisplaySymbol(data6,addr+3,lay);
break;
case 7:
DisplaySymbol(data7,addr+3,lay);
break;
case 8:
DisplaySymbol(data8,addr+3,lay);
break;
case 9:
DisplaySymbol(data9,addr+3,lay);
break;
default:
break;
}
}
/**********************************************************
显示 四位数据 ,一位小数
***********************************************************/
void DisplayFloat4(float D_data,unint addr,unint lay)
{
unchar datatemp[4] = {0};
unint dataX10=0; //将data保存
unchar i;
dataX10 =(unint)(D_data*10);
datatemp[0] = dataX10/1000;
dataX10 = dataX10%1000;
datatemp[1] = dataX10/100;
dataX10 = dataX10%100;
datatemp[2] = dataX10/10;
dataX10 = dataX10%10;
datatemp[3] = dataX10;
for(i=0;i<3;i++)
{
switch(datatemp[i])
{
case 0:
DisplaySymbol(data0,addr+i,lay);
break;
case 1:
DisplaySymbol(data1,addr+i,lay);
break;
case 2:
DisplaySymbol(data2,addr+i,lay);
break;
case 3:
DisplaySymbol(data3,addr+i,lay);
break;
case 4:
DisplaySymbol(data4,addr+i,lay);
break;
case 5:
DisplaySymbol(data5,addr+i,lay);
break;
case 6:
DisplaySymbol(data6,addr+i,lay);
break;
case 7:
DisplaySymbol(data7,addr+i,lay);
break;
case 8:
DisplaySymbol(data8,addr+i,lay);
break;
case 9:
DisplaySymbol(data9,addr+i,lay);
break;
default:
break;
}
}
DisplaySymbol(datadian3,addr+3,lay);
switch(datatemp[3])
{
case 0:
DisplaySymbol(data0,addr+4,lay);
break;
case 1:
DisplaySymbol(data1,addr+4,lay);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -