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

📄 lcd320240.c

📁 2007年全国大学生电子设计大赛
💻 C
📖 第 1 页 / 共 5 页
字号:
    break;
  case 2:
    DisplaySymbol(data2,addr+4,lay);
    break;
  case 3:
    DisplaySymbol(data3,addr+4,lay);
    break;
  case 4:
    DisplaySymbol(data4,addr+4,lay);
    break;
  case 5:
    DisplaySymbol(data5,addr+4,lay);
    break;
  case 6:
    DisplaySymbol(data6,addr+4,lay);
    break;

  case 7:
    DisplaySymbol(data7,addr+4,lay);
    break;
  case 8:
    DisplaySymbol(data8,addr+4,lay);
    break;

  case 9:
    DisplaySymbol(data9,addr+4,lay);
    break;
  default:
    break;
  }
}
/**********************************************************
显示 五位整数数据  
***********************************************************/
void DisplayInt5(unint D_data,unint addr,unint lay)
{
  unchar datatemp[5] = {0};
  unchar i,j;
  
  
  datatemp[0] = D_data/10000;
  D_data    = D_data%10000;
  datatemp[1] = D_data/1000;
  D_data    = D_data%1000;
  datatemp[2] = D_data/100;
  D_data    = D_data%100;
  datatemp[3] = D_data/10;
  D_data    = D_data%10;
  datatemp[4] = D_data;
  for(j=0;j<5;j++)
  {
   if(datatemp[j]>0)
    {
	 i=j;
	 break;
	}
   else
    i=4;
  }
  for(;i<5;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;
    }
  }
}
//显示任意大小的图像(图像宽度必须是8的倍数,以后改)
//data:图像数据;addr:图像显示的首地址;xcount:图像宽度,ycount:图像高度;lay:层
void DisplayPic(unchar *P_data,unint addr,unint xcount,unint ycount,unint lay)
{
  unchar addrH = 0;
  unchar addrL = 0;
  unchar datatemp;
  unint  i,j;
   
  for(i=0;i<ycount;i++)
  {
    wr_command(0x4c);		//set point move direction
    wr_command(0x46);		//set point address
    
    if(lay==2)
      addr = addr + 0x8000;
    addrL = (unchar)(addr&0X00FF);
    addrH = (unchar)((addr&0XFF00)>>8);
    
    wr_datas(addrL);
    wr_datas(addrH);
      
    for(j=0;j<(xcount/8);j++)
    {  
      wr_command(0x47);             //读地址指令
      addrL = RD_LCD();             //读地址
      addrH = RD_LCD();
  
      wr_command(0x43);            //读数据指令
      datatemp = RD_LCD();          //读数据
   
      wr_command(0x46);		//写地址指令
      wr_datas(addrL);              //写地址
      wr_datas(addrH);
      
      wr_command(0x42);    //mwrite   数据写入显示缓冲区
      
      wr_datas((*(P_data++))|datatemp); 
    }
    addr = addr + 40;
  }
}

//清除任意大小的图像(图像宽度必须是8的倍数,以后改)
//addr:清除的首地址;xcount:图像宽度;ycount:图像高度;lay:层
void ClearPic(unint addr,unint xcount,unint ycount,unint lay)
{
  unchar addrH = 0;
  unchar addrL = 0;
  unint  i,j;
  
  
  for(i=0;i<ycount;i++)
  {
    wr_command(0x4c);		//set point move direction
    wr_command(0x46);		//set point address
    
    addrL = (unchar)(addr&0X00FF);
    addrH = (unchar)((addr&0XFF00)>>8);
    
    switch(lay)
    {
    case 1:
      wr_datas(addrL);
      wr_datas(addrH);
      break;
    case 2: 
      wr_datas(addrL);
      wr_datas(0x80+addrH);
      break;
    default:
      break;
    }
  
    wr_command(0x42);    //mwrite   数据写入显示缓冲区
    for(j=0;j<xcount/8;j++)
    {
      wr_datas(0x00);  
    }
    addr = addr + 40;
  }
}
/********************************************************************************
**函数名称: void OG_Display_Array()
**函数功能: 在示波器上显示汉字
**          使用范例:OG_Display_Array("我爱北京天安门",14,0,16);
**入口参数: UCHAR *data--待显示的汉字
**          UCHAR count-待显示的汉字的长度
*           UINT addr --显示首地址
*           UINT lay  --层
**出口参数: 无
********************************************************************************/

void DisplayChineseArray(unchar *S_data,unchar count,unint addr,unint lay)
{
  unchar chNum = count/2;
  unint  P_Addr;           //页地址
  unint  B_Addr;           //页内字节地址
  unchar chI;		 //用于计数要显示的汉字个数
  //UCHAR chJ;		 //用于计数一个汉字的字模
  unint  rowNum;           //行号
  unchar *tmpzimo;
  for(chI=0;chI<chNum;chI++)
  {
    rowNum=((S_data[chI*2]-0xA1)*94 + (S_data[chI*2+1]-0xA1))*2;
    P_Addr = rowNum/16 ;                   //一页放256个字节,即16行*16
    B_Addr = (rowNum/2 - P_Addr*8)*32;    //一页放8个汉字
    
    tmpzimo = DF_Read_Main(P_Addr,B_Addr,32);    
    
    /*for(chJ=0;chJ<32;chJ++)
    {
      tmpzimo[chJ] = DF_R1[chJ];
    }*/
    
    DisplayChinese(tmpzimo,addr,lay);
    addr = addr + 2;
  }
}
//数字	//
unchar code data0[] = {
/*--  文字:  0  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
};
unchar code data1[] = {
/*--  文字:  1  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
};

unchar code data2[] = {
/*--  文字:  2  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,
};

unchar code data3[] = {
/*--  文字:  3  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,
};

unchar code data4[] = {
/*--  文字:  4  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,
};

unchar code data5[] = {
/*--  文字:  5  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,
};

unchar code data6[] = {
/*--  文字:  6  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
};

unchar code data7[] = {
/*--  文字:  7  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
};

unchar code data8[] = {
/*--  文字:  8  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,

};

unchar code data9[] = {
/*--  文字:  9  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00,
};
// 符号:
unchar code datajia[]={
/*--  文字:  +  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0xFE,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
};
unchar code datajian[]={
/*--  文字:  -  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
unchar code datadian3[] = {
/*--  文字:  .  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
};

unchar code datamaohao[] = {
/*--  文字:  :  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,
};
unchar code datatanhao[] = {
/*--  文字:  !  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x18,0x18,0x00,0x00,
};

unchar code dataxiexian[] = {
/*--  文字:  /  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x01,0x02,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,
};

unchar code datadenghao[] = {
/*--  文字:  =  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
};
unchar code datadegree[]={
/*--  调入了一幅图像:这是您新建的图像  --*/
/*--  宽度x高度=8x16  --*/
0x00,0x00,0x10,0x28,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
unchar code databfh[]={
/*--  文字:  %  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x44,0xA4,0xA8,0xA8,0xA8,0x54,0x1A,0x2A,0x2A,0x2A,0x44,0x00,0x00,
};
//大写
unchar code data_A[] = {
/*--  文字:  A  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x10,0x10,0x18,0x28,0x28,0x24,0x3C,0x44,0x42,0x42,0xE7,0x00,0x00,
};

unchar code data_B[] = {
/*--  文字:  B  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xF8,0x44,0x44,0x44,0x78,0x44,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,
};

unchar code data_C[] = {
/*--  文字:  C  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x3E,0x42,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x44,0x38,0x00,0x00,
};
unchar code data_D[] = {
/*--  文字:  D  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xF8,0x44,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,
};
unchar code data_E[] = {
/*--  文字:  E  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x42,0x42,0xFC,0x00,0x00,
};
unchar code data_F[] = {
/*--  文字:  F  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x40,0x40,0xE0,0x00,0x00,
};
unchar code data_G[] = {
/*--  文字:  G  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x3C,0x44,0x44,0x80,0x80,0x80,0x8E,0x84,0x44,0x44,0x38,0x00,0x00,
};
unchar code data_H[] = {
/*--  文字:  H  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
};
unchar code data_I[] = {
/*--  文字:  I  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
};
unchar code data_J[] = {
/*--  文字:  J  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x88,0xF0,
};
unchar code data_K[] = {
/*--  文字:  K  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xEE,0x44,0x48,0x50,0x70,0x50,0x48,0x48,0x44,0x44,0xEE,0x00,0x00,
};
unchar code data_L[] = {
/*--  文字:  L  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x42,0xFE,0x00,0x00,
};
unchar code data_M[] = {
/*--  文字:  M  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x6C,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00,
};

unchar code data_N[] = {
/*--  文字:  N  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xC7,0x62,0x62,0x52,0x52,0x4A,0x4A,0x4A,0x46,0x46,0xE2,0x00,0x00,
};

unchar code data_O[] = {
/*--  文字:  O  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,
};
unchar code data_P[] = {
/*--  文字:  P  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0xFC,0x42,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,0x40,0xE0,0x00,0x00,
};
unchar code data_Q[] = {
/*--  文字:  Q  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -