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

📄 lcm.c

📁 12864液晶(STC7920控制器)屏上用基本指令与扩充指令分时显示文字、图片、图片与文字混合、任意位置的图片。
💻 C
📖 第 1 页 / 共 2 页
字号:
 z=64;/*图形数组的页,为实际点阵行数*/
 y=16;/*图形数组的列,为实际点阵列数除以8*/
 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
 Tuxing();	   //龙的图形
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 Clearlcd1();
 z=64;/*图形数组的页,为实际点阵行数*/
 y=16;/*图形数组的列,为实际点阵列数除以8*/
 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
 p2=MyTu;
 Tuxing();	//左边是物理所的图标,右边是中科院 物理所两行文字		
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 Clearlcd1();
 z=32;/*图形数组的页,为实际点阵行数*/
 y=4;/*图形数组的列,为实际点阵列数除以8*/
 Column=5;/*起始点设定:为在液晶中显示的实际起始列,一列占一个汉字*/
 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
 p2=MyTu2;
 OneTuxing();  //一个小的图标
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 goto loop;
 }

/********************写指令子程序********************/
void WCOM(uchar d)    /*写指令程序*/
{
 R_W=1;
 D_I=0;/*设置状态*/
Loop:
 P1=0xFF;
 E=1;/*使能有效*/
 q=P1;/*将p1口状态读入*/
 E=0;/*关闭使能信号*/
 if(q&0x80)/*判断屏幕是否忙*/
 {
 goto Loop;/*若忙,循环等待*/
 }
 R_W=0;
 D_I=0;/*写数据指令*/
 P1=d;/*将数据送入p1口*/
 E=1;/*使能信号开*/
 E=0;/*使能信号关*/
}
/********************送数据子程序********************/
void Dat(uchar d)
{
 R_W=1;
 D_I=0;/*读状态指令*/
Loop:
 P1=0xFF;
 E=1;/*使能*/
 q=P1;
 E=0;
 if(q&0x80)
 {
 goto Loop;
 }/*判忙*/
 D_I=1;/*送数据指令*/
 R_W=0;
 P1=d;
 E=1;/*使能信号开*/
 E=0;/*使能信号关*/
}
/********************初始化子程序********************/
void Imim()
{
 P0=0xff;
 P1=0xff;
 P2=0xff;
 P3=0xff;
 E=0;
 Delay();
 WCOM(0x38);/*功能设定*/
 WCOM(0x08);/*关显示指令*/
 WCOM(0x06);/*游标右移*/
 Clearlcd();/*清屏*/
 WCOM(0x0c);/*开显示指令*/
}
/********************延时子程序********************/
void Delay()
{
 uchar data i,j;
 for(i=0;i<255;i++)
  for(j=0;j<255;j++);
}
/********************基本指令集清屏子程序********************/
void Clearlcd()
{
 D_I=0;
 R_W=0;
 P1=0x01;
 WCOM(0x01);/*清除显示*/
}
/********************写第一行汉字主程序********************/
void Hanz()
{
 WCOM(k); /*设置第一行起始点*/
 for(i=0;i<j;i++,p++)
 {
  wbyte=*p;
  Dat(wbyte);/*将汉字数组数据送入*/
 }
}
/********************写第二行汉字主程序********************/
void Hanz1()
{
  WCOM(k1);/*设置第二行起始点*/
  for(i=0;i<j1;i++,p1++)
 {
  wbyte=*p1;
  Dat(wbyte);/*将汉字数组数据送入*/
 }
}
/********************扩充指令集画图子程序********************/
void Tuxing()
{
 uchar data v;
 uchar data w;
 uchar data x;
 uchar data h;
 WCOM(0x34);/*功能设定*/
 WCOM(0x36);/*扩充功能设定*/
 pp=p2;
 pp=pp+16*y*2;
 for(h=0;h<z/2;h++)  /*页循环*/
 {
  v=Column|0x80;
  w=Page|0x80;
  WCOM(w);/*送入起始页地址*/
  WCOM(v);/*送入起始列地址*/
  Page++; /*准备对下一页进行操作*/
  for(x=0;x<2*y;x++) /*列循环*/
   {
    if(x<y)
    {
     wbyte=*p2;
     Dat(wbyte);/*循环送入图形数据*/
     p2=p2+1;
    }
    else
     {
      wbyte=*pp;
      Dat(wbyte);/*循环送入图形数据*/
      pp=pp+1;
     }
   }
  }
}
 /*---------------------------------------*/
void MyTuxing()
{
 uchar data v;
 uchar data w;
 uchar data x;
 uchar data h;
 uchar data NextPage;
 NextPage=Page;
 WCOM(0x34);/*功能设定*/
 WCOM(0x36);/*扩充功能设定*/
 pp=p2;
 pp=pp+16*y*2;
 for(h=0;h<z/2;h++)  /*页循环*/
 {
  v=Column|0x80;
  w=Page|0x80;
  WCOM(w);/*送入起始页地址*/
  WCOM(v);/*送入起始列地址*/
  
  for(x=0;x<y;x++) /*列循环*/
   {
     wbyte=*p2;
     Dat(wbyte);/*循环送入图形数据*/
     p2=p2+1;
   }
  WCOM(w+16);/*送入起始页地址*/
  WCOM(v);/*送入起始列地址*/
   for(x=0;x<y;x++)
   {
    wbyte=*pp;
      Dat(wbyte);/*循环送入图形数据*/
      pp=pp+1;
   } 
   Page++; /*准备对下一页进行操作*/
  }
}

void OneTuxing()
{
 uchar data v;
 uchar data w;
 uchar data x;
 uchar data h;
 WCOM(0x34);/*功能设定*/
 WCOM(0x36);/*扩充功能设定*/
 for(h=0;h<z;h++)  /*页循环*/
 {
  v=Column|0x80;
  w=Page|0x80;
  WCOM(w);/*送入起始页地址*/
  WCOM(v);/*送入起始列地址*/
  Page++; /*准备对下一页进行操作*/
  for(x=0;x<y;x++) /*列循环*/
   {
    wbyte=*p2;
    Dat(wbyte);/*循环送入图形数据*/
    p2++;
   }
 }
}

/********************扩充指令集清屏子程序********************/
void Clearlcd1()
{
  uchar data Disp_Page;
  uchar data i;
  uchar data j;
  for(i=0;i<64;i++)/*共32页*/
  {
   Disp_Page=i|0x80;/*设置页地址*/
   WCOM(Disp_Page);/*送入页地址*/
   WCOM(0x80);/*送入起始列地址*/
   for(j=0;j<32;j++)
   {
    Dat(0x00);/*清屏*/
   }
  }
}

⌨️ 快捷键说明

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