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

📄 c23-1.c

📁 51单片机上实现LCD模拟驱动以及汉字显示
💻 C
字号:
#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
#define dataport P0
sbit CS1=P2^4;
sbit CS2=P2^3;
sbit RS=P2^7;
sbit RW=P2^6;
sbit EN=P2^5;
sbit RST=P2^2;
//==============================================================
void delay(unsigned long v);
void busy(void);
void wcode(uchar c,uchar csl,uchar csr);
void wdata(uchar c,uchar csl,uchar csr);
void startline(uchar i);
void dis_on(uchar o);
void reset(void);
void initlcd(void);
void set_xy(uchar x,uchar y);
void lw(uchar x,uchar y,dd);
void dis_hz(uchar x,uchar y,uchar n,uchar fb);
uchar code hz[];
//==============================================================
void main(void)
{
  uchar loop;
  initlcd();
  delay(1000);
  while(1)
  {
    for(loop=0;loop<8;loop++)
    {
     dis_hz(loop,0,loop,0);
     delay(1000);
    }
    for(loop=0;loop<8;loop++)
    {
     dis_hz(loop,2,loop+8,1);
     delay(1000);
    }
    for(loop=0;loop<8;loop++)
    {
     dis_hz(loop,4,loop+16,0);
     delay(1000);
    }
    for(loop=0;loop<8;loop++)
    {
     dis_hz(loop,6,loop+24,1);
     delay(1000);
    }
	 delay(10000);
  }
}
//===============================================================
void delay(unsigned long v)
{
   while(v!=0)v--;
}
//===============================================================
void busy(void)
{
  RS=0;RW=1;dataport=0xff;
  while(1)
  {
     EN=1;
     if(dataport<0x80) break;
     EN=0;
  }
  EN=0;
}
//================================================================
void wcode(uchar c,uchar csl,uchar csr)
{
  CS1=csl;
  CS2=csr;
  busy();
  RS=0;RW=0;
  dataport=c;
  EN=1;
  EN=0;
}
//================================================================
void wdata(uchar c,uchar csl,uchar csr)
{
  CS1=csl;
  CS2=csr;
  busy();
  RS=1;RW=0;
  dataport=c;
  EN=1;
  EN=0;
}
//================================================================
void startline(uchar i)
{
  i=i+0xc0;
  wcode(i,1,1);
}
//================================================================
void dis_on(uchar o)
{
  o=o+0x3e;
  wcode(o,1,1);
}
//================================================================
void reset(void)
{
  RST=0;
  delay(20);
  RST=1;
  delay(20);
}
//================================================================
void initlcd(void)
{
  uchar x,y;  
  reset();
  startline(0);
  dis_on(0);
  for(y=0;y<8;y++)
  {
     for(x=0;x<128;x++)
	 lw(x,y,0);
  }
  dis_on(1);
}
//================================================================
void set_xy(uchar x,uchar y)
{
  x=x+0x40;
  y=y+0xb8;
  wcode(x,1,1);
  wcode(y,1,1);
}
//================================================================
void lw(uchar x,uchar y,dd)
{
  if(x>=64)
  {
    set_xy(x-64,y);
    wdata(dd,0,1);
  }
  else
  {
     set_xy(x,y);
     wdata(dd,1,0);
  }
}
//=================================================================
void dis_hz(uchar x,uchar y,uchar n,uchar fb)
{
  uchar i,dz;
  for(i=0;i<16;i++)
  {
    dz=hz[2*i+n*32];
    if(fb)dz=255-dz;
    lw(x*16+i,y,dz);
    dz=hz[(2*i+1)+n*32];
    if(fb)dz=255-dz;
    lw(x*16+i,y+1,dz);
  }
}
//==================================================================
uchar code hz[]=
{0x00,0x20,0x80,0x20,0x84,0x10,0x84,0x10,0x94,0x08,0xA4,0x04,0xC4,0x02,0xFF,0xFF,
 0x84,0x01,0xC4,0x02,0xB4,0x04,0x94,0x08,0x84,0x18,0x84,0x30,0x80,0x10,0x00,0x00,/*"来",0*/

 0x00,0x00,0x22,0x42,0x72,0xC2,0x2A,0x42,0x26,0x22,0xE2,0x3F,0x2A,0x22,0x72,0x12,
 0x22,0x12,0x00,0x00,0xF8,0x0F,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,/*"到",1*/

 0x00,0x40,0x00,0x30,0xF8,0x0F,0x48,0x00,0x48,0x08,0x48,0x50,0xC8,0x4F,0x08,0x20,
 0xFF,0x10,0x08,0x0B,0x09,0x0C,0x0A,0x12,0xC8,0x21,0x88,0x40,0x08,0xF0,0x00,0x00,/*"成",2*/

 0x20,0x04,0x24,0x02,0x24,0x7F,0xA4,0x25,0x7F,0x25,0x24,0x25,0x34,0x25,0x28,0x7F,
 0x24,0x00,0x00,0x00,0xFE,0xFF,0x22,0x08,0x52,0x08,0x8A,0x10,0x06,0x0F,0x00,0x00,/*"都",3*/

 0x00,0x00,0x00,0x00,0xF8,0x0F,0x48,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0xFF,0x3F,
 0x48,0x44,0x48,0x44,0x48,0x44,0x48,0x44,0xF8,0x4F,0x00,0x40,0x00,0x70,0x00,0x00,/*"电",4*/

 0x00,0x60,0xFE,0x1F,0x12,0x21,0x12,0x41,0xFE,0x3F,0x00,0x00,0xC8,0x7F,0x08,0x30,
 0x49,0x2C,0x8A,0x23,0x8C,0x23,0x68,0x2C,0x08,0x20,0xC8,0x7F,0x08,0x00,0x00,0x00,/*"脑",5*/

 0x10,0x08,0x10,0x08,0xFF,0x0F,0x10,0x04,0x10,0x0A,0x12,0x04,0x02,0x02,0x02,0x01,
 0xC2,0x00,0xF2,0xFF,0x4E,0x00,0x82,0x00,0x02,0x01,0x02,0x06,0x02,0x02,0x00,0x00,/*"坏",6*/

 0x00,0x00,0x00,0x00,0x00,0x58,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,/*",",7*/

 0x00,0x04,0x00,0x02,0x00,0x01,0xC0,0x00,0x70,0x00,0x20,0x40,0x00,0x80,0xFF,0x7F,
 0x00,0x00,0x10,0x00,0x20,0x00,0xC0,0x00,0x80,0x01,0x00,0x07,0x00,0x02,0x00,0x00,/*"小",8*/

 0x02,0x10,0x02,0x10,0x02,0x08,0xFA,0x7C,0xAA,0x23,0xAF,0x32,0xAA,0x2A,0xAA,0x26,
 0xAA,0x2A,0xAF,0x32,0xAA,0x22,0xFA,0x42,0x02,0x82,0x02,0x7E,0x02,0x00,0x00,0x00,/*"葛",9*/

 0x00,0x04,0x00,0x02,0x00,0x01,0xC0,0x00,0x70,0x00,0x20,0x40,0x00,0x80,0xFF,0x7F,
 0x00,0x00,0x10,0x00,0x20,0x00,0xC0,0x00,0x80,0x01,0x00,0x07,0x00,0x02,0x00,0x00,/*"小",10*/

 0x08,0x40,0x08,0x40,0x08,0x40,0x08,0x20,0x78,0x20,0x88,0x11,0x09,0x0A,0x0E,0x04,
 0x08,0x0A,0x88,0x11,0x78,0x10,0x08,0x20,0x08,0x60,0x08,0x20,0x08,0x20,0x00,0x00,/*"文",11*/

 0x00,0x00,0x00,0x01,0x08,0x21,0x08,0x71,0x08,0x29,0x08,0x25,0x08,0x27,0xFF,0x21,
 0x08,0x21,0x08,0x21,0x08,0x29,0x08,0x71,0x08,0x21,0x08,0x01,0x00,0x01,0x00,0x00,/*"去",12*/

 0x00,0x00,0x00,0x40,0x02,0x42,0x22,0x22,0xC2,0x22,0x0A,0x12,0x32,0x1A,0x02,0x0E,
 0xFA,0x03,0x12,0x06,0x02,0x0A,0x02,0x1A,0x0A,0x32,0x06,0x63,0x02,0x02,0x00,0x00,/*"买",13*/

 0x02,0x00,0x02,0x42,0x32,0x42,0x52,0x22,0x92,0x12,0x1F,0x0A,0x32,0x06,0x52,0xFF,
 0x12,0x06,0x1F,0x0A,0x92,0x12,0x52,0x32,0x32,0x62,0x02,0x22,0x02,0x02,0x00,0x00,/*"菜",14*/

 0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"。",15*/

 0x20,0x21,0x24,0x11,0x2C,0x4D,0x35,0x81,0xE6,0x7F,0x34,0x05,0x2C,0x59,0x24,0x21,
 0x00,0x18,0xFC,0x07,0x24,0x00,0x24,0x00,0xE2,0xFF,0x22,0x00,0x22,0x00,0x00,0x00,/*"新",16*/

 0xF2,0x7F,0x12,0x25,0xFE,0x24,0x12,0x24,0xFE,0x24,0x12,0x25,0xF2,0x7F,0x00,0x00,
 0xC2,0x3F,0x42,0x40,0x42,0x40,0x42,0x40,0x42,0x40,0x7E,0x40,0x00,0x78,0x00,0x00,/*"配",17*/

 0x00,0x00,0xFE,0x3F,0x12,0x11,0x12,0x11,0xFE,0x3F,0x00,0x00,0x00,0x00,0xFE,0xFF,
 0x92,0x40,0x92,0x23,0x92,0x0C,0x92,0x10,0xFE,0x68,0x00,0xC4,0x00,0x40,0x00,0x00,/*"眼",18*/

 0x40,0x01,0x30,0x01,0xEF,0x7F,0x24,0x21,0x24,0x11,0x04,0x08,0x20,0x40,0xA4,0x2F,
 0xAC,0x1A,0xB5,0x0A,0xA6,0x0A,0xB4,0x3A,0xAC,0x4F,0x24,0x40,0x20,0x70,0x00,0x00,/*"镜",19*/

 0x20,0x04,0x20,0x02,0x2A,0x02,0x2A,0x01,0xAA,0xFF,0xEA,0x4A,0xBA,0x4A,0xAE,0x4A,
 0xA9,0x4A,0xA9,0x4A,0xA9,0x4A,0xA9,0xFF,0x29,0x00,0x20,0x00,0x20,0x00,0x00,0x00,/*"看",20*/

 0x00,0x80,0x84,0x80,0x84,0x44,0x94,0x44,0x95,0x24,0x96,0x14,0x94,0x0C,0xFC,0x07,
 0x94,0x0C,0x96,0x14,0x95,0x24,0x94,0x64,0x94,0xC4,0x84,0x44,0x80,0x00,0x00,0x00,/*"美",21*/

 0x20,0x80,0x20,0x80,0x20,0x40,0x20,0x41,0xE0,0x22,0x38,0x22,0x27,0x14,0x20,0x0C,
 0x20,0x0C,0x20,0x0B,0xE0,0x10,0x20,0x30,0x20,0xE0,0x20,0x40,0x20,0x00,0x00,0x00,/*"女",22*/

 0x00,0x00,0x00,0x00,0x00,0x58,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,/*",",23*/

 0x10,0x42,0x10,0x81,0xFF,0x7F,0x90,0x00,0x40,0x40,0x12,0x50,0xD2,0x57,0x56,0x55,
 0x5A,0x55,0xD3,0x7F,0x5A,0x55,0x56,0x55,0xD2,0x57,0x12,0x50,0x10,0x40,0x00,0x00,/*"撞",0*/

 0x00,0x00,0x22,0x42,0x72,0xC2,0x2A,0x42,0x26,0x22,0xE2,0x3F,0x2A,0x22,0x72,0x12,
 0x22,0x12,0x00,0x00,0xF8,0x0F,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,/*"到",1*/

 0x08,0x02,0x88,0x01,0x68,0x00,0xFF,0xFF,0x28,0x00,0x40,0x40,0x08,0x40,0x08,0x41,
 0x09,0x41,0x0A,0x41,0xFC,0x7F,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x40,0x00,0x00,/*"柱",2*/

 0x00,0x01,0x00,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x41,0x02,0x81,0xE2,0x7F,
 0x12,0x01,0x0A,0x01,0x06,0x01,0x02,0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x00,0x00,/*"子",3*/

 0x00,0x80,0x00,0x60,0xFE,0x1F,0x12,0x41,0x12,0x81,0xFE,0x7F,0x20,0x42,0x50,0x5C,
 0x48,0x41,0x44,0x4E,0x43,0x44,0x44,0x50,0x48,0x4C,0xB0,0x43,0x10,0x41,0x00,0x00,/*"脸",4*/

 0x04,0x02,0xC4,0x01,0xBC,0x7F,0x84,0x20,0x84,0x3F,0x54,0x40,0x90,0x41,0x12,0x40,
 0xF4,0x7F,0x10,0x40,0x18,0x40,0xF4,0x7F,0x12,0x42,0x10,0x41,0x90,0x40,0x00,0x00,/*"碰",5*/

 0x10,0x08,0x10,0x08,0xFF,0x0F,0x10,0x04,0x10,0x0A,0x12,0x04,0x02,0x02,0x02,0x01,
 0xC2,0x00,0xF2,0xFF,0x4E,0x00,0x82,0x00,0x02,0x01,0x02,0x06,0x02,0x02,0x00,0x00,/*"坏",6*/

 0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"。",7*/

    





  
   
     
  
 
 


⌨️ 快捷键说明

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