标题: 51单片机12864显示汉字源程序 [打印本页]

作者: 孙文超    时间: 2020-10-5 17:22
标题: 51单片机12864显示汉字源程序


单片机源程序如下:
#include <reg51.h>

#define LCDLCDDisp_Off   0x3e
#define LCDLCDDisp_On    0x3f
#define Page_Add         0xb8
#define LCDCol_Add       0x40
#define Start_Line       0xC0

#define data_ora P0
sbit LCD_CS1=P2^4 ;   
sbit LCD_CS2=P2^3 ;   
sbit RESET=P2^3 ;  
sbit LCDDi=P2^2 ;     
sbit LCDRW=P2^1 ;     
sbit LCDEnable=P2^0 ;     



char code Hz_sun[]=
{
0x0 ,0x2 ,0x82 ,0x82, 0xF2, 0x4A, 0x26, 0x80 ,0x60, 0x0 ,0xFF, 0x20 ,0x40 ,0x80 ,0x0 ,
        0x0 ,0x1, 0x1 ,0x40, 0x80, 0x7F ,0x4 ,0x2 ,0x1 ,0x40, 0x80, 0x7F, 0x0 ,0x0 ,0x1 ,0x3 ,0x0
};

char code Hz_wen[]=
{
0x8, 0x8 ,0x8, 0x18, 0x68, 0x88, 0x9, 0xE ,0x8, 0x8 ,0xC8, 0x38, 0x8 ,0xC, 0x8 ,0x0, 0x80,
        0x80 ,0x40, 0x40, 0x20, 0x11, 0xA ,0x4, 0xA ,0x11 ,0x10, 0x20, 0x40, 0xC0, 0x40, 0x0
};


char code Hz_chao[]=
{
0x40, 0x48, 0x48, 0xFF ,0x48 ,0x48, 0x82 ,0x42, 0x3E, 0x2 ,0x22, 0x42, 0x3F ,0x2, 0x0, 0x0 ,0x40,
        0x3F ,0x10, 0x1F ,0x22 ,0x42, 0x40, 0x5F, 0x51, 0x51 ,0x51, 0x51 ,0x5F, 0x60, 0x20, 0x0
};

char code Hz_zhen[]=
{
0x0 ,0x4, 0x4, 0xF4, 0x54 ,0x54, 0x54, 0x5F ,0x54 ,0x54 ,0x54, 0xFC, 0x16 ,0x4, 0x0, 0x0, 0x10 ,0x10 ,
        0x90 ,0x5F, 0x35 ,0x15, 0x15, 0x15 ,0x15 ,0x15, 0x35 ,0x5F, 0xD0, 0x18, 0x10, 0x0
};

char code Hz_shuai[]=
{
0x0 ,0xFC ,0x0, 0x0, 0xFF, 0x0 ,0x0, 0xF8 ,0x8, 0x8, 0xFF, 0x8, 0x8, 0xFC ,0x8, 0x0, 0x0 ,0x87, 0x40,
        0x30 ,0xF, 0x0, 0x0, 0x3F ,0x0 ,0x0 ,0xFF, 0x10 ,0x20, 0x1F, 0x0 ,0x0
};


char code Hz_te[]=
{
0x20 ,0x1C ,0x10 ,0xFF, 0x90, 0x50, 0x48, 0x48, 0x48, 0x7F ,0x48 ,0xC8, 0x4C, 0x68, 0x40, 0x0, 0x2,
        0x2 ,0x1, 0xFF, 0x0, 0x2 ,0x2 ,0x6 ,0x1A ,0x42, 0x82 ,0x7F, 0x2 ,0x3 ,0x2 ,0x0
};



char code Hz_mo[]=
{
0x0 ,0x4 ,0x4, 0xE4 ,0xA4 ,0xBF, 0xA4 ,0xA4, 0xA4, 0xBF, 0xA4 ,0xF4, 0x26 ,0x4 ,0x0 ,0x0 ,0x8 ,
        0x88 ,0x88 ,0x8B, 0x4A ,0x4A ,0x2A ,0x1E, 0x2A, 0x4A, 0x4A, 0x8B ,0x88, 0x8C, 0x8, 0x0
};

char code Hz_a[]=
{
0xFC ,0x4 ,0xFE ,0x4, 0xFE ,0x42, 0xB2 ,0xE, 0x0, 0xE2 ,0x22 ,0xF2, 0x22, 0xFF, 0x2, 0x0 ,0xF ,
        0x4 ,0xF ,0x0 ,0xFF ,0x8 ,0x11 ,0xE,0x0, 0xF, 0x4 ,0x4F, 0x80 ,0xFF ,0x0, 0x0
};

void LCDdelay(unsigned int t)
{
        unsigned int i,j;
        for(i=0;i<t;i++);
        for(j=0;j<10;j++);
}

void CheckState()               
{
   unsigned char dat,DATA;
   LCDDi=0;
   LCDRW=1;
   do
   {
      DATA=0x00;
      LCDEnable=1;        
          LCDdelay(2);
          dat=DATA;
      LCDEnable=0;
      dat=0x80 & dat;
    }
    while(dat!=0x00);
}

void write_com(unsigned char cmdcode)
{
    CheckState();
        LCDDi=0;
        LCDRW=0;
        P1=cmdcode;               
        LCDdelay(2);
        LCDEnable=1;
        LCDdelay(2);
        LCDEnable=0;
}


void write_data(unsigned char LCDDispdata)
{
    CheckState();
        LCDDi=1;
        LCDRW=0;
        P1=LCDDispdata;
        LCDdelay(2);
        LCDEnable=1;
        LCDdelay(2);
        LCDEnable=0;
}


void Clr_Scr()
{
        unsigned char j,k;
        LCD_CS1=0;
        LCD_CS2=0;
         write_com(Page_Add+0);
         write_com(LCDCol_Add+0);
         for(k=0;k<8;k++)
         {
                write_com(Page_Add+k);
                  for(j=0;j<64;j++)  
                {
                      write_com(LCDCol_Add+j);
                        write_data(0x00);
                }
        }
}


void hz_LCDDisp16(unsigned char page,unsigned char column, unsigned char code *hzk)
{
        unsigned char j=0,i=0;
        for(j=0;j<2;j++)
        {
                write_com(Page_Add+page+j);
                write_com(LCDCol_Add+column);
                for(i=0;i<16;i++)
                        write_data(hzk[16*j+i]);
        }
}


void init_lcd()
{
        LCDdelay(100);        
        LCD_CS1=1;
        LCD_CS2=1;
        LCDdelay(100);
        write_com(LCDLCDDisp_Off);         
        write_com(Page_Add+0);
        write_com(Start_Line+0);
        write_com(LCDCol_Add+0);
        write_com(LCDLCDDisp_On);
}

全部资料51hei下载地址:
1.rar (446.7 KB, 下载次数: 63)

作者: 123yqs    时间: 2020-11-24 19:01
怎么修改字哟
作者: 染沫冉    时间: 2021-5-6 16:58
123yqs 发表于 2020-11-24 19:01
怎么修改字哟

生成字模,然后替换取模函数里的汉字内容




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1