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

📄 topway-graphiclcm-s1d13700-demopro-v0.2.c

📁 topwaydisplay 5.7 inches black and while lcd with s1d13700 source code
💻 C
📖 第 1 页 / 共 5 页
字号:
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};  
    

//-----------------------------------
// Delay Routine
//-----------------------------------
void delayms(uint m)        // 12MHz Xtal, close to ms value
{
    uint j;
    uint i;
    
    for(i=0; i<m; i++)
        for(j=0; j<109; j++)
            _nop_();
}

//-----------------------------------
//   间接控制方式(INTEL8080时序?
//-----------------------------------?
//-----指令码传送子程序--------------------
void SdCmd(uchar Command)
{
    A0  = 1;                // 选择指令写通道
    LCDBUS = Command;       // 指令码送数据口
    _CS = 0;                // 选择模块
    _WR = 0;                // 写信号有效
   _WR = 1;                 // 写信号无效
    _CS = 1;                // 封锁模块
   delayms(1);              // 延迟,LM2068E、LM1095E使用
}
//-----数据传送子程序-------------------
void SdData(uchar DData)
{
    A0  = 0;                // 选择数据写通道
    LCDBUS = DData;         // 数据送数据口
    _CS = 0;                // 选择模块
    _WR = 0;                // 写信号有效
    _WR = 1;                // 写信号无效
    _CS = 1;                // 封锁模块
}
//------数据读取子程序------------------
uchar RdData()
{
    uchar DData;
    A0= 1;                  // 选择数据读通道
    LCDBUS=0xff;
    _CS = 0;                // 选通模块
    _RD = 0;                // 读信号有效
    DData=LCDBUS;           // 取数据
    _RD = 1;                // 读信号无效
    _CS = 1;                // 封锁模块
    return(DData);          // 返回读取的数据
}
//-----------------------------------
//     初始化子程序
//-----------------------------------
void initLCDM(void)
{
//-------系统设置指令-----------------------
    SdCmd(0x40);           //System Set (带8个参数)
    SdData(0x30);          // IV=1,W/S=0,M2=0,M0=0
    SdData(0x87);          // WF=1 FX=8
    SdData(0x07);          // FY=8
    SdData(0x28);          // C/R=40个字符/行  LM2068
//    SdData(0x18);        // C/R=24个字符/行  LM1095
    SdData(0x47);          // TC/R  LM2068/LM1095通用
    SdData(0xef);          // L/F=240 LM2068
//    SdData(0x7f);        // L/F=128 LM1095
    SdData(0x30);          // AP=0030H
    SdData(0x00);          //
//------显示区域设置指令---------------------
    SdCmd(0x44);           //Scroll (带10个参数)
    SdData(0x00);          // SAD1= 0000H
    SdData(0x00);          //
    SdData(0xef);          // SL1=240行   LM2068
//    SdData(0x7f);        // SL1=128行   LM1095
    SdData(0x00);          // SAD2= 1000H
    SdData(0x10);          //
    SdData(0xef);          // SL2=240行   LM2068
//    SdData(0x7f);        // SL2=128行   LM1095
    SdData(0x00);          // SAD3= 6000H
    SdData(0x60);          //
    SdData(0x00);          // SAD4= 0000H
    SdData(0x00);          //
//------显示功能设置----------------------------
    SdCmd(0x5a);           // HDOT SCR (带1个参数)
    SdData(0x00);          //
    SdCmd(0x5b);           // OVLAY (带1个参数)
    SdData(0x01);          // OV=0,DM1=0,DM0=0,MX=01(XOR)
    SdCmd(0x5d);           //CSRFORM (带2个参数)
    SdData(0x07);          // CX=8
    SdData(0x17);          // CM=1, CY=8
//------显示开关指令-----------------------------
    SdCmd(0x59);           // Display ON/OFF(带1个参数)
    SdData(0x14);          // 第1、2显示区显示开
}

//-----清屏子程序--------------------------------
void ClearRAM()
{
 uint i;
  SdCmd(0x46);             // 设置光标地址
  SdData(0x00);
  SdData(0x00);
  SdCmd(0x4c);             // 设置光标移动方向
  SdCmd(0x42);             // 写数据指令
    for (i=0;i<0x7fff;i++) // 循环写32K单元?
    {
    SdData(0x00);          // 写数据0
    }
}

//-------字符写入子程序----------------------
void PrintASCII(uint x,y,uchar *pstr)
// 坐标(x,y),x为水平方向字符位;y为垂直方向字符行;*pstr ASCII字符代码数组名
{
  uint addr;              // 第一显示区域为文本属性
  addr=y*0x30+x;          // 计算显示RAM地址
  SdCmd(0x46);            // 设置字符显示首地址
  SdData(addr);
  SdData(addr>>8);
  SdCmd(0x4c);            // 地址水平加1设置
  SdCmd(0x42);            // 写数据指令
  while(*pstr>0)
    {
    SdData(*pstr++);      // 写入字符代码
    }       
}

void PrintGB(uchar x,y,uchar *pstr)
// 坐标(x,y),x为水平方向字符位;y为垂直方向像素行;*pstr 中文字符代码数组名
{
 uint addr,pter;
 uchar i,j;               // 第二显示区域为图形属性
 addr=y*0x30+x+0x1000;    // 计算显示RAM地址
 while(*pstr>0)
   {
   pter = *pstr++;
   pter= (pter-1)*32;     // 计算中文字库字符首地址
    for (i=0;i<2;i++)
      {
      SdCmd(0x46);        // 设置中文字符显示首地址
      SdData(addr);
      SdData(addr>>8);
      SdCmd(0x4f);        // 设置地址垂直加1行
      SdCmd(0x42);        // 写数据指令
      for (j=0;j<16;j++)
        {
        SdData(CCTAB[pter+j+16*i]); // 写入字模数据
        }
      addr=addr+1;        // 下一个地址修正?
      }
   }
}

//-----图画写入子程序-----------------------------------
void ShowBMP(uint x,y,width,high,uchar bmp[])
// 坐标(x,y),x为水平方向像素列;y为垂直方向像素行
//width:图形水平像素点数;high:图形垂直像素点数;bmp[]:图形数组名
{
 uchar i,j;
 uint addr,k=0;           // 第二显示区域为图形属性
 addr=y*0x30+x+0x1000;    // 计算显示RAM地址
 for(i=0;i<high;i++)      // 写入行循环量
    {
    SdCmd(0x46);          // 设置图形显示首地址
    SdData(addr);
    SdData(addr>>8);
    SdCmd(0x4c);          // 设置地址水平加1

⌨️ 快捷键说明

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