⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd320240.c

📁 2007年全国大学生电子设计大赛
💻 C
📖 第 1 页 / 共 5 页
字号:
   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 + -