单片机
返回首页

PIC单片机+LCD12864显示汉字程序

2019-10-28 来源:51hei

 

#include 

#define RS RD2    

#define CS2 RD1    

#define CS1 RD0    

#define E RD4    

#define RW RD3    

#define BUSY RC7 

const unsigned char tab2[]={

/*--  文字:  福  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x08,0x08,0x89,0xCE,0x28,0x18,0x02,0x7A,0x4A,0x4A,0x4A,0x4A,0x4A,0x7A,0x02,0x00,

0x02,0x01,0x00,0xFF,0x01,0x02,0xFF,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0xFF,0x00,


/*--  文字:  建  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x42,0x62,0x5A,0xC6,0x10,0x54,0x54,0x54,0xFF,0x54,0x54,0x7C,0x10,0x10,0x00,

0x40,0x23,0x14,0x08,0x17,0x28,0x29,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x40,0x00,


/*--  文字:  工  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,

0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,


/*--  文字:  程  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x10,0x12,0xD2,0xFE,0x91,0x11,0x80,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,

0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,


/*--  文字:  学  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,

0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,


/*--  文字:  院  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,

0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00,


/*--  文字:  ,  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x58,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


/*--  文字:  环  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x22,0x22,0xFE,0x22,0x22,0x00,0x02,0xC2,0x32,0xFE,0x42,0x82,0x02,0x02,0x00,

0x00,0x04,0x04,0x03,0x12,0x0A,0x04,0x03,0x00,0x00,0xFF,0x00,0x00,0x03,0x0E,0x00,


/*--  文字:  境  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x20,0x20,0xFE,0x20,0x20,0x00,0x24,0xAC,0xB4,0xA5,0xA6,0xB4,0xAC,0x24,0x00,0x00,

0x10,0x30,0x1F,0x08,0x08,0x00,0x80,0x4F,0x3A,0x0A,0x0A,0x7A,0x8F,0x80,0xE0,0x00,


/*--  文字:  优  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x40,0x20,0xF8,0x17,0x02,0x10,0x10,0xF0,0x1F,0xF0,0x12,0x1C,0x14,0x10,0x00,0x00,

0x00,0x00,0xFF,0x00,0x40,0x20,0x18,0x07,0x00,0x3F,0x40,0x40,0x40,0x78,0x20,0x00,


/*--  文字:  美  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x84,0x84,0x94,0x95,0x96,0x94,0xFC,0x94,0x96,0x95,0x94,0x94,0x84,0x80,0x00,

0x80,0x80,0x44,0x44,0x24,0x14,0x0C,0x07,0x0C,0x14,0x24,0x64,0xC4,0x44,0x00,0x00,


/*--  文字:  ,  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x58,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


/*--  文字:  历  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0xFE,0x02,0x22,0x22,0x22,0x22,0xFA,0x22,0x22,0x22,0xE2,0x02,0x02,0x00,

0x40,0x30,0x0F,0x00,0x40,0x20,0x18,0x06,0x01,0x00,0x20,0x60,0x3F,0x00,0x00,0x00,


/*--  文字:  史  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,

0x80,0x80,0x41,0x40,0x22,0x14,0x08,0x17,0x20,0x20,0x20,0x40,0x41,0xC0,0x40,0x00,


/*--  文字:  悠  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x20,0x10,0xFC,0x03,0xF8,0x20,0x10,0x0C,0x17,0xA4,0x44,0xB4,0x0C,0x04,0x04,0x00,

0x40,0x70,0x03,0x00,0x38,0x40,0x40,0x45,0x59,0x40,0x40,0x70,0x01,0x13,0x61,0x00,


/*--  文字:  久  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x80,0x40,0x30,0x0C,0x0B,0x08,0xC8,0xBC,0x08,0x00,0x00,0x00,0x00,0x00,

0x40,0x41,0x20,0x20,0x10,0x08,0x04,0x03,0x00,0x01,0x06,0x18,0x30,0x60,0x20,0x00,


/*--  文字:  。  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x18,0x24,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


/*--  文字:  欢  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,

0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,


/*--  文字:  迎  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,

0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00,


/*--  文字:  你  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00,

0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00,


/*--  文字:  的  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,

0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00,


/*--  文字:  到  --*/

0x00,0x22,0x72,0x2A,0x26,0xE2,0x2A,0x72,0x22,0x00,0xF8,0x00,0x00,0xFF,0x00,0x00,

0x00,0x42,0xC2,0x42,0x22,0x3F,0x22,0x12,0x12,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,


/*--  文字:  来  --*/

0x00,0x80,0x84,0x84,0x94,0xA4,0xC4,0xFF,0x84,0xC4,0xB4,0x94,0x84,0x84,0x80,0x00,

0x20,0x20,0x10,0x10,0x08,0x04,0x02,0xFF,0x01,0x02,0x04,0x08,0x18,0x30,0x10,0x00,

/*--  文字:  !  --*/

0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


/*--  文字:  电  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,

0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,


/*--  文字:  子  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xE2,0x12,0x0A,0x06,0x02,0x00,0x80,0x00,0x00,

0x01,0x01,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,


/*--  文字:  信  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x80,0x40,0x30,0xFC,0x07,0x0A,0xA8,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00,

0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,


/*--  文字:  息  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0xFC,0x54,0x54,0x56,0x55,0x54,0x54,0x54,0xFC,0x00,0x00,0x00,0x00,

0x00,0x20,0x38,0x01,0x3D,0x41,0x41,0x45,0x59,0x41,0x41,0x71,0x00,0x08,0x30,0x00,


/*--  文字:  工  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,

0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,


/*--  文字:  程  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x10,0x12,0xD2,0xFE,0x91,0x11,0x80,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,

0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,


/*--  文字:  !  --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:     --*/

/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

                

//写指令代码(左)

void l_w_code(char l_code)

{

        //check_busy();

        PORTD=0x12;                        

        PORTC=l_code;

        E=1;

        E=0;

        asm('nop');

}

        

//写显示数据(左)        

void l_w_data(char l_data)

{

        //check_busy();

        PORTD=0x16;                                

        PORTC=l_data;

        E=1;

        E=0;

        asm('nop');

}

//写指令代码(右)

void r_w_code(char        r_code)

{

        //check_busy();

        PORTD=0x11;                                

        PORTC=r_code;

        E=1;

        E=0;

        //asm('nop');

}

        

//写显示数据(右)        

void r_w_data(char r_data)

{

        //check_busy();

        PORTD=0x15;                                        

        PORTC=r_data;

        E=1;

        E=0;

        asm('nop');

}        

void initializeLCD(void)

{

        l_w_code(0x3f);

        l_w_code(0xc0);                

        l_w_code(0xb8);                

        l_w_code(0x40);        

        r_w_code(0x3f);        

        r_w_code(0xc0);        

        r_w_code(0xb8);        

        r_w_code(0x80);        


void l_display(void)

{

        unsigned char m,n;

    unsigned char i;

    unsigned char x=0xb8;

    unsigned char y=0x40;

        unsigned int k=0;

        //k=0;

    l_w_code(x);                        //写入页地址

    l_w_code(y);                        //第一列开始

for(i=0;i<4;i++)


        for(y=0x40;y<0x80;y+=0x10)

        {

          for (m=0;m<2;m++)

          { 

             l_w_code(x);                        //写入页地址

             l_w_code(y);                        //第一列开始

             for(n=0;n<16;n++)

             {

                          l_w_data(tab2[k++]);

             }

              x+=0x01;

          }

          x=x-0x02;

     }


     for(y=0x40;y<0x80;y+=0x10)

         {

          for (m=0;m<2;m++)

          { 

            r_w_code(x);                        //写入页地址

            r_w_code(y);                        //第一列开始

            for(n=0;n<16;n++)

            {

                         r_w_data(tab2[k++]);

            }

             x+=0X01;

          }  

         x-=0x02;

     }

   x+=0x02;

}

}

void delaycnt(unsigned int cnt)

        while(--cnt);

}

void main(void)

{

        //port_init();

        TRISC=0X00;

        TRISD=0X00;

        initializeLCD();

        while(1)

        {

                l_display();

            delaycnt(65535);


        }

}



进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章