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

📄 12232e.c

📁 这是单片机驱动液晶显示lcd的驱动程序.希望能够给大家分享.
💻 C
📖 第 1 页 / 共 2 页
字号:
0x0F,0xF8,0x63,0x1A,0x7F,0xFC,0xC4,0x30,0x60,0x0C,0x60,0x00,0x46,0xFC,0x48,0x00,
0x0F,0xF8,0x06,0x1E,0x7F,0xFC,0x00,0x30,0x60,0x3C,0xCF,0xFE,0xCE,0xFC,0x30,0x00,
0x0C,0x18,0x04,0x0E,0x60,0x0C,0x00,0x30,0x60,0x18,0x4F,0xFE,0x8C,0xCC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0E,0x00,0x00,0xC0,0x00,0x3C,0x0C,0x00,0x06,0x18,0x00,0x18,
0x00,0x03,0xBF,0xE0,0x1C,0x00,0xE1,0xC0,0x6F,0xE0,0x1F,0xFF,0x0E,0x18,0x0E,
0x18,0x00,0x01,0xE0,0x60,0x18,0x00,0xFF,0xF8,0x3C,0xD8,0x3F,0xFF,0x0C,0x38,
0x0E,0x30,0x07,0x00,0x60,0x63,0xFF,0xF0,0x31,0x98,0x0E,0xF0,0x30,0x1C,0x1F,
0xB0,0x0F,0xFF,0x0C,0x00,0x7F,0xC0,0x70,0x00,0x1F,0xF0,0x03,0xE0,0x70,0x18,
0x19,0xB0,0x00,0x73,0x0C,0x0E,0xC0,0xC0,0xE6,0x03,0x83,0x01,0xCE,0x70,0xEF,
0xD8,0x3B,0xFC,0x00,0x66,0x01,0x06,0xFE,0xC1,0xC6,0x01,0xFF,0xF8,0xDF,0xC1,
0xED,0xF8,0x73,0x6C,0x78,0xE6,0x03,0x00,0xF7,0x83,0xFF,0xC0,0x3F,0xE0,0x0E,
0x60,0x6D,0xB0,0xFF,0x6E,0x18,0xCE,0x06,0x01,0xBF,0x87,0x7F,0xC0,0x30,0xC0,
0x3F,0xF0,0xDD,0xB0,0xFE,0xE0,0x39,0x8C,0x06,0x0F,0xED,0x9F,0x0C,0x03,0x3F,
0xC1,0x87,0x60,0xDF,0xF0,0x1C,0xC0,0x33,0x0C,0x00,0x0D,0xFF,0x07,0x18,0x03,
0x61,0xC3,0xFF,0xF0,0xDB,0x60,0x1C,0xC0,0x37,0x78,0x0E,0x1B,0x03,0x06,0x18,
0x06,0x7F,0x86,0x0F,0x01,0xB8,0x60,0x3D,0xC0,0x7C,0x70,0x1C,0x33,0x07,0x06,
0x38,0x0C,0x61,0x86,0x1B,0x01,0x80,0xE0,0xEF,0x80,0xDC,0x00,0x00,0x37,0x0E,
0x0F,0xFF,0x9C,0xC7,0x8D,0xF1,0xE3,0x81,0xC3,0x83,0xF9,0x8F,0xFC,0x00,0x00,
0x00,0x0C,0x00,0x00,0xC6,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0E,0x00,0x00,0xC0,0x00,0x3C,0x0C,0x00,0x06,0x18,0x00,0x18,
0x00,0x03,0xBF,0xE0,0x1C,0x00,0xE1,0xC0,0x6F,0xE0,0x1F,0xFF,0x0E,0x18,0x0E,
0x18,0x00,0x01,0xE0,0x60,0x18,0x00,0xFF,0xF8,0x3C,0xD8,0x3F,0xFF,0x0C,0x38,
0x0E,0x30,0x07,0x00,0x60,0x63,0xFF,0xF0,0x31,0x98,0x0E,0xF0,0x30,0x1C,0x1F,
0xB0,0x0F,0xFF,0x0C,0x00,0x7F,0xC0,0x70,0x00,0x1F,0xF0,0x03,0xE0,0x70,0x18,
0x19,0xB0,0x00,0x73,0x0C,0x0E,0xC0,0xC0,0xE6,0x03,0x83,0x01,0xCE,0x70,0xEF,
0xD8,0x3B,0xFC,0x00,0x66,0x01,0x06,0xBE,0xC1,0xC6,0x01,0xFF,0xF8,0xDF,0xC1,
0xED,0xF8,0x73,0x6C,0x78,0xE6,0x03,0x00,0xB6,0x83,0xFF,0xC0,0x3F,0xE0,0x0E,
0x60,0x6D,0xB0,0xFF,0x6E,0x18,0xCE,0x06,0x01,0xB6,0x87,0x7F,0xC0,0x30,0xC0,
0x3F,0xF0,0xDD,0xB0,0xFE,0xE0,0x39,0x8C,0x06,0x0F,0x6D,0x9F,0x0C,0x03,0x3F,
0xC1,0x87,0x60,0xDF,0xF0,0x1C,0xC0,0x33,0x0C,0x00,0x0D,0x7B,0x07,0x18,0x03,
0x61,0xC3,0xFF,0xF0,0xDB,0x60,0x1C,0xC0,0x37,0x78,0x0E,0x1B,0x03,0x06,0x18,
0x06,0x7F,0x86,0x0F,0x01,0xB8,0x60,0x3D,0xC0,0x7C,0x70,0x1C,0x33,0x07,0x06,
0x38,0x0C,0x61,0x86,0x1B,0x01,0x80,0xE0,0xEF,0x80,0xDC,0x00,0x00,0x37,0x0E,
0x0F,0xFF,0x9C,0xC7,0x8D,0xF1,0xE3,0x81,0xC3,0x83,0xF9,0x8F,0xFC,0x00,0x00,
0x00,0x0C,0x00,0x00,0xC6,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0E,0x00,0x00,0xC0,0x00,0x3C,0x0C,0x00,0x06,0x18,0x00,0x18,
0x00,0x03,0xBF,0xE0,0x1C,0x00,0xE1,0xC0,0x6F,0xE0,0x1F,0xFF,0x0E,0x18,0x0E,
0x18,0x00,0x01,0xE0,0x60,0x18,0x00,0xFF,0xF8,0x3C,0xD8,0x3F,0xFF,0x0C,0x38,
0x0E,0x30,0x07,0x00,0x60,0x63,0xFF,0xF0,0x31,0x98,0x0E,0xF0,0x30,0x1C,0x1F,
0xB0,0x0F,0xFF,0x0C,0x00,0x7F,0xC0,0x70,0x00,0x1F,0xF0,0x03,0xE0,0x70,0x18,
0x19,0xB0,0x00,0x73,0x0C,0x0E,0xC0,0xC0,0xE6,0x03,0x83,0x01,0xCE,0x70,0xEF,
0xD8,0x3B,0xFC,0x00,0x66,0x01,0x06,0xFE,0xC1,0xC6,0x01,0xFF,0xF8,0xDF,0xC1,
0xED,0xF8,0x73,0x6C,0x78,0xE6,0x03,0x00,0xF7,0x83,0xFF,0xC0,0x3F,0xE0,0x0E,
0x60,0x6D,0xB0,0xFF,0x6E,0x18,0xCE,0x06,0x01,0xBF,0x87,0x7F,0xC0,0x30,0xC0,
0x3F,0xF0,0xDD,0xB0,0xFE,0xE0,0x39,0x8C,0x06,0x0F,0xED,0x9F,0x0C,0x03,0x3F,
0xC1,0x87,0x60,0xDF,0xF0,0x1C,0xC0,0x33,0x0C,0x00,0x0D,0xFF,0x07,0x18,0x03,
0x61,0xC3,0xFF,0xF0,0xDB,0x60,0x1C,0xC0,0x37,0x78,0x0E,0x1B,0x03,0x06,0x18,
0x06,0x7F,0x86,0x0F,0x01,0xB8,0x60,0x3D,0xC0,0x7C,0x70,0x1C,0x33,0x07,0x06,
0x38,0x0C,0x61,0x86,0x1B,0x01,0x80,0xE0,0xEF,0x80,0xDC,0x00,0x00,0x37,0x0E,
0x0F,0xFF,0x9C,0xC7,0x8D,0xF1,0xE3,0x81,0xC3,0x83,0xF9,0x8F,0xFC,0x00,0x00,
0x00,0x0C,0x00,0x00,0xC6,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar data j=32;/*所建立的第一个汉字数组中元素的个数*/
/*为在液晶中第一行得显示数据*/
uchar data j1=28;/*所建立的第二个汉字数组中元素的个数*/
/*为在液晶中第二行得显示数据*/
uchar data k=0x80;/*起始点:80h-8fh为在第一行显示*/
uchar data k1=0x92;/*起始点:90h-9fh为在第二行显示*/
/********************扩充指令集画图********************/
uchar data z;/*图形数组的页,为实际点阵行数*/
uchar data y;/*图形数组的列,为实际点阵列数除以8*/
uchar data Column;/*起始点设定:为在液晶中显示的实际起始列*/
uchar data Page;/*起始点设定:为在液晶中显示的实际起始行*/
/**************************************************/
void WCom(uchar);/*写指令*/
void Clearlcd();/*清屏*/
void Imim();/*初始化*/
void Dat(uchar);/*送数据*/
void Delay();/*延时*/
void Hanz();/*写汉字*/
void Hanz1();
void Tuxing();
void Clearlcd1();
/********************主程序********************/
void main()
{
 Delay();/*延时*/
loop:
 Imim();/*初始化*/
 p=Hanzi;/*指针指向数组的首地址*/
 p1=Hanzi1;
// p2=Tu;
 Hanz();/*写汉字程序*/
 Hanz1();
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 Clearlcd();
 z=64;/*图形数组的页,为实际点阵行数*/
 y=16;/*图形数组的列,为实际点阵列数除以8*/
 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
 Tuxing();
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 Clearlcd1();
 z=64;/*图形数组的页,为实际点阵行数*/
 y=16;/*图形数组的列,为实际点阵列数除以8*/
 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
// p2=Tu2;
 Tuxing();
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 Clearlcd1();
 z=16;/*图形数组的页,为实际点阵行数*/
 y=16;/*图形数组的列,为实际点阵列数除以8*/
 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
// p2=Tu4;
 Tuxing();
 z=16;/*图形数组的页,为实际点阵行数*/
 y=16;/*图形数组的列,为实际点阵列数除以8*/
 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
 Page=16;/*起始点设定:为在液晶中显示的实际起始行*/
// p2=Tu5;
 Tuxing();
 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();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);/*扩充功能设定*/
// Clearlcd1();/*在扩充功能下清屏*/
 pp=p2;
 pp=pp+16*y*2;
 for(h=0;h<z;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 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 + -