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

📄 st12864.c

📁 12864lcd(带中文字库)显示程序(C语言版含LCD型号)
💻 C
字号:
#include <reg51.h>
#include <absacc.h>
#include <ctype.h>
#include <intrins.h>
#include <setjmp.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define uint unsigned int
#define uchar unsigned char
#define xchar unsigned char code
sbit  RS    = P3^0;
sbit  RRW   = P3^1;
sbit  E     = P3^2;
sbit  RST   = P3^3;
sbit  BF    = ACC^7;

xchar hz1[256]=
{
/*--  调入了一幅图像:E:\WD\12864-~3.BMP  --*/
/*--  宽度x高度=128x64  --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x88,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x11,
0xAA,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x55,
0x9C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x39,
0x9C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x39,
0xAA,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x55,
0x88,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,
0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,
0xBF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,
0x8C,0x00,0x00,0x00,0x00,0x1D,0xCF,0x02,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x31,
0x92,0x00,0x00,0x00,0x07,0xDD,0x9B,0x86,0x00,0x6C,0x78,0x00,0x00,0x00,0x00,0x49,
0x80,0x00,0x00,0x03,0xC4,0xCD,0x99,0x0E,0x00,0x66,0xC8,0xE0,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x06,0xEC,0x47,0x97,0x0E,0x00,0x66,0x8D,0xFC,0x00,0x00,0x00,0x01,
0x92,0x00,0x01,0x86,0x6E,0xC7,0x1F,0x96,0x00,0x66,0x8D,0x6D,0xE0,0x00,0x00,0x49
};
xchar hz2[256]=
{
0x8C,0x00,0x01,0x86,0x67,0xC3,0x19,0x96,0x00,0x67,0x8C,0x67,0xB8,0x00,0x00,0x31,
0xBF,0x00,0x03,0xC6,0x67,0xC3,0x11,0xBF,0x80,0xC7,0x8C,0x63,0x18,0x00,0x00,0xFD,
0x8C,0x00,0x01,0xC0,0x44,0x67,0x99,0xBF,0x80,0xC7,0x8C,0x63,0x90,0x00,0x00,0x31,
0x92,0x00,0x00,0xC0,0x8C,0x65,0x99,0x86,0x00,0xCD,0x8C,0xC1,0xC0,0x00,0x00,0x49,
0x80,0x00,0x00,0xE1,0x9C,0x6D,0xEF,0x8F,0x81,0xFC,0x9C,0xC0,0xC0,0x00,0x00,0x01,
0x80,0x00,0x00,0x61,0x37,0xDD,0xE6,0x00,0x01,0xF0,0xF8,0xC4,0x60,0x00,0x00,0x01,
0x92,0x00,0x00,0x73,0xF3,0x80,0x00,0x00,0x00,0x00,0x21,0xE4,0x60,0x00,0x00,0x49,
0x8C,0x00,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x60,0x00,0x00,0x31,
0xBF,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0xFD,
0x8C,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x31,
0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x92,0x10,0x00,0x00,0x00,0x0F,0xFF,0x00,0x5C,0x00,0x00,0x00,0x00,0x80,0x00,0x49,
0x8C,0x08,0x00,0x00,0x00,0x0C,0x00,0xFF,0xBB,0x00,0x00,0x00,0x00,0x40,0x00,0x31,
0xBF,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0xBF,0x80,0x00,0x00,0x00,0x40,0x00,0xFD
};
xchar hz3[256]=
{
0x8C,0x04,0x00,0x00,0x00,0x0F,0xFF,0x03,0x08,0x40,0x00,0x00,0x00,0x20,0x00,0x31,
0x92,0x04,0x00,0x00,0x00,0x0C,0x00,0xFC,0x10,0x39,0x00,0x00,0x00,0x10,0x00,0x49,
0x80,0x02,0x00,0x00,0x07,0xFC,0xC0,0x04,0x33,0xE5,0x00,0x00,0x00,0x08,0x00,0x01,
0x80,0x01,0x00,0x00,0x09,0xFC,0xA0,0x7F,0xBF,0xBF,0xC0,0x00,0x00,0x04,0x00,0x01,
0x92,0x01,0x00,0x00,0x1E,0xFE,0xDE,0x9F,0xDF,0xE0,0xE0,0x01,0xFE,0x02,0x00,0x49,
0x8C,0x00,0x80,0x00,0x16,0xFF,0xE1,0xEF,0xEC,0x00,0x18,0x02,0x7F,0x01,0x00,0x31,
0xBF,0x00,0x40,0x00,0x23,0x7F,0x01,0x6F,0xE3,0xF8,0x04,0x07,0xBF,0x80,0xC0,0xFD,
0x8C,0x00,0x20,0x00,0x23,0x7F,0xA2,0x37,0xFF,0x56,0x02,0x05,0xBF,0x80,0x20,0x31,
0x92,0x00,0x20,0x00,0x23,0x7F,0xC2,0x37,0xFB,0xEB,0x81,0x08,0xDF,0xC0,0x00,0x49,
0x80,0x00,0x10,0x00,0x23,0x7F,0xD2,0x37,0xFF,0x75,0x40,0xFF,0x5F,0xC0,0x00,0x01,
0x80,0x00,0x08,0x00,0x23,0x7F,0xE2,0x37,0xFF,0xFF,0xA0,0x8F,0x5F,0xC0,0x00,0x01,
0x92,0x00,0x04,0x00,0x23,0x7F,0x6A,0x37,0xF0,0x3F,0xFF,0x0F,0xFF,0xC0,0x00,0x49,
0x8C,0x00,0x02,0x00,0x16,0xFE,0x3E,0x37,0xF8,0x07,0xF9,0x0C,0x1F,0xC0,0x00,0x31,
0xBF,0x00,0x01,0x00,0x1E,0xFE,0x7E,0x37,0xFB,0xFB,0xCF,0xF8,0x0F,0xC0,0x00,0xFD,
0x8C,0x00,0x00,0x80,0x09,0xFD,0xFD,0x6F,0xE8,0x00,0x20,0x07,0xEF,0xC0,0x00,0x31,
0x92,0x00,0x00,0x40,0x07,0xF8,0x01,0xEF,0xCF,0xFF,0xFF,0x00,0x0F,0x80,0x00,0x49
};
xchar hz4[256]=
{
0x80,0x00,0x00,0x30,0x00,0x00,0x00,0x9F,0xF8,0x7F,0xC8,0xFF,0xFF,0x80,0x00,0x01,
0x80,0x00,0x00,0x08,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x02,0x7F,0x00,0x00,0x01,
0x92,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x00,0x00,0x49,
0x8C,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,
0xBF,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,
0x8C,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,
0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x88,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x11,
0xAA,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x55,
0x9C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x39,
0x9C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x38,0x70,0xE1,0xC3,0x87,0x0E,0x1C,0x39,
0xAA,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x54,0xA9,0x52,0xA5,0x4A,0x95,0x2A,0x55,
0x88,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x10,0x20,0x40,0x81,0x02,0x04,0x08,0x11,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};

void delayms(uint v)
{
  while(v!=0)v--;
}

void delay(uint n)
{
  uint m;
  while(n-->0)
  for(m=0;m<1250;m++)
  { };
}
void check_busy()
{
 RS=0;RRW=1;
 do
 {
  P1=0xff;P1=ACC;E=1;delayms(3);E=0;
 }
 while(BF==1);
}
void wcom(uchar C)
{
check_busy();
RS=0;RRW=0;P1=C;E=1;E=0;
}
void wdata(uchar D)
{
check_busy();
RS=1;RRW=0;P1=D;E=1;E=0;
}
void initial()
{
   wcom(0x30);
  delayms(1000);
  wcom(0x30);
  delayms(1000);
  wcom(0x30);
  delayms(1000);
  wcom(0x08);
  delayms(1000);
  wcom(0x01);
  delay(2);
  wcom(0x06);
  delayms(1000);
  wcom(0x0c);
  delayms(1000);
}
void disp_bmp8()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
    }
    }
void disp_bmp7()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
    }
    }
void disp_bmp6()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
    }
    }
void disp_bmp5()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
    }
    }
void disp_bmp4()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
    }
}void disp_bmp3()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      for(n=0;n<16;n++)
      { wdata(0xaa);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x55);}
      for(n=0;n<16;n++)
      { wdata(0x55);}
    }
}void disp_bmp2()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0xff);}
      for(n=0;n<16;n++)
      { wdata(0xff);}
    }
}
void disp_bmp1()
{
    uchar m,n,xaa,xbb;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
      m++;
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
      m++;
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      { wdata(0x00);}
      for(n=0;n<16;n++)
      { wdata(0x00);}
    }
}

void disp_bmp()
{
    uchar m,n;
    wcom(0x3c);delayms(1000);
    wcom(0x03);delayms(1000);
    wcom(0x36);delayms(1000);
    wcom(0x01);delay(2);
    for(m=0;m<16;m++)
    {
      wcom(0x80+m);wcom(0x80);
      for(n=0;n<16;n++)
      {
        wdata(hz1[n+16*m]);
      }
      for(n=0;n<16;n++)
      {
        wdata(hz3[n+16*m]);
      }
    }
    for(m=0;m<16;m++)
    {
      wcom(0x90+m);wcom(0x90);
      for(n=0;n<16;n++)
      {
        wdata(hz2[n+16*m]);
      }
      for(n=0;n<16;n++)
      {
        wdata(hz4[n+16*m]);
      }
    }
}



 void dispzk(uchar d,uchar m,uchar n )
 {
  uchar i;
  i=0;
  for(i=0;i<16;i++)
  {
   wcom(d+i);
   wdata(m);wdata(n+i);
  }

 }

void main ()
{
  uchar i,j,k,t,ch;
   RST=0;delayms(3);RST=1;
  delay(2);
  while(1)
  {
  initial();
  disp_bmp();
  delay(20);
  disp_bmp5();
  delay(50);
  disp_bmp6();
  delay(50);
  disp_bmp3();
  delay(50);
  disp_bmp4();
  delay(50);
  disp_bmp8();
  delay(50);
  disp_bmp7();
  delay(50);
  disp_bmp2();
  delay(50);
  disp_bmp1();
  delay(50);
   wcom(0x38);
  wcom(0x01);
  delay(1);
 dispzk(0x80,0xb0,0xa1);
  dispzk(0x90,0xb0,0xb1);
  dispzk(0x80,0xb0,0xa1);
    delay(50);
    wcom(0x34);
    wcom(0x04);
    delay(20);
    wcom(0x04);
    delay(20);
    wcom(0x04);
    delay(10);
   dispzk(0x90,0xb0,0xb1);
    delay(30);
    wcom(0x34);
    wcom(0x05);
    delay(20);
    wcom(0x05);
    delay(20);
    wcom(0x05);
    delay(20);
    wcom(0x05);
    delay(20);
    }
 }

⌨️ 快捷键说明

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