单片机控制12864显示多行汉字(含PROTEUS仿真文件、程序和字模提取软件)

PROTEUS仿真电路图:

在这里插入图片描述

仿真实验结果展示:

在这里插入图片描述

汉字取模过程(软件下载链接在文末):

第一步:打开液晶仿真排版软件

设定相关参数:
在这里插入图片描述

输入汉字:
在这里插入图片描述
随便找个位置将图片保存:
在这里插入图片描述
第二步:打开液晶汉字模提取软件

设定相关参数:
在这里插入图片描述

将刚才保存的图片打开并保存数据:
在这里插入图片描述

C语言程序代码:

#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 LCDMcs=P2^4 ;    /*片选1*/
sbit LCDScs=P2^3 ;    /*片选2*/
sbit LCDDi=P2^2 ;     /*数据/指令 选择*/
sbit LCDRW=P2^1 ;     /*读/写 选择*/
sbit LCDEnable=P2^0 ;     /*读/写 使能*/

//

unsigned char code Bmp1[]=
{
/*------------------------------------------------------------------------------
 
  宽×高(像素): 128×16
  字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/256字节
  显示的汉字:关关雎鸠在河之洲
------------------------------------------------------------------------------*/
/*--  调入了一幅图像:C:\Users\dhd\Desktop\1111111.bmp  --*/
/*--  宽度x高度=128x16  --*/
0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,
0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,
0x00,0xFC,0x24,0x24,0xFE,0x24,0x10,0xFC,0x4B,0x49,0xFE,0x48,0x68,0x4C,0x08,0x00,
0x10,0x10,0xFF,0x10,0xF8,0x10,0x00,0xFC,0x04,0x16,0x45,0x84,0x7E,0x04,0x00,0x00,
0x08,0x08,0x08,0x08,0xC8,0x38,0x0F,0x08,0x08,0xE8,0x08,0x88,0x08,0x0C,0x08,0x00,
0x10,0x21,0x62,0x06,0x82,0xE2,0x22,0x22,0x22,0xF2,0x22,0x02,0xFE,0x03,0x02,0x00,
0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x16,0x10,0x90,0x50,0x30,0x10,0x00,0x00,0x00,
0x10,0x22,0x64,0x0C,0x80,0x20,0xC0,0xFF,0x20,0xC0,0xFC,0x20,0xC0,0xFF,0x00,0x00,
0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
0x10,0x3F,0x11,0x11,0x0F,0x08,0x00,0xFF,0x22,0x22,0x3F,0x22,0x23,0x32,0x20,0x00,
0x40,0x30,0x0F,0x00,0x3F,0x10,0x08,0x13,0x12,0x12,0x1A,0x52,0x82,0x7F,0x02,0x00,
0x08,0x04,0x02,0xFF,0x00,0x40,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x60,0x40,0x00,
0x04,0x04,0xFE,0x01,0x00,0x0F,0x04,0x04,0x04,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,
0x00,0x20,0x10,0x10,0x28,0x48,0x44,0x42,0x41,0x40,0x40,0x40,0x40,0x60,0x20,0x00,
0x04,0x04,0xFE,0x01,0x00,0x40,0x30,0x0F,0x00,0x00,0x3F,0x00,0x00,0xFF,0x00,0x00,


};
unsigned char code Bmp2[]=
{
/*------------------------------------------------------------------------------
  宽×高(像素): 128×16
  字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/256字节
  显示的汉字:窈窕淑女君子好逑
--------------------------------------------------------------------------
*/
0x10,0x0E,0x04,0x94,0x4C,0x24,0x05,0x86,0x84,0xE4,0x8C,0x94,0xC4,0x94,0x0C,0x00,
0x10,0x0E,0x44,0x94,0x0C,0x04,0xF5,0x06,0xF4,0x04,0x0C,0xD4,0x84,0x14,0x0C,0x00,
0x10,0x22,0x64,0x0C,0xC0,0x40,0xFF,0x44,0x44,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0xE0,0x3F,0x20,0x20,0x20,0xE0,0x20,0x20,0x30,0x20,0x00,
0x10,0x10,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0x92,0xFF,0x12,0x18,0x10,0x00,
0x80,0x80,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x80,0xC0,0x80,0x00,
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,0x82,0x82,0xE2,0x92,0x8A,0xC6,0x80,0x00,
0x40,0x42,0x44,0xCC,0x00,0x08,0x28,0x48,0x08,0xFF,0x08,0x4A,0x2C,0x08,0x00,0x00,
0x00,0x21,0x31,0x29,0x25,0x2B,0xB1,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,
0x00,0x88,0x88,0x45,0x42,0x31,0x0F,0x00,0x3F,0x42,0x45,0x48,0x58,0x40,0x70,0x00,
0x04,0x04,0xFE,0x09,0x24,0x42,0x3F,0x82,0x44,0x20,0x13,0x0C,0x13,0x60,0x20,0x00,
0x00,0x80,0x80,0x42,0x45,0x24,0x28,0x10,0x18,0x24,0x23,0x40,0xC0,0x00,0x00,0x00,
0x40,0x20,0x10,0x0C,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x40,0x22,0x15,0x08,0x14,0x63,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x1F,0x20,0x42,0x42,0x49,0x50,0x4F,0x40,0x41,0x42,0x66,0x20,0x00,

};
unsigned char code Bmp3[]=
{
/*------------------------------------------------------------------------------
  宽×高(像素): 128×16
  字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/256字节
  显示的汉字:参差荇菜左右流之
------------------------------------------------------------------------------*/

0x20,0x20,0x20,0x28,0xA8,0x6C,0x3B,0x28,0xA8,0x6A,0xAC,0x28,0x20,0x30,0x20,0x00,
0x00,0x04,0x24,0x24,0x25,0x26,0xA4,0x7C,0x24,0x26,0x25,0x34,0x26,0x84,0x00,0x00,
0x04,0x84,0x84,0x44,0x24,0x9F,0x04,0x24,0x24,0x2F,0x24,0x24,0x34,0xA6,0x04,0x00,
0x04,0x04,0x24,0x64,0xA4,0x2F,0x64,0xA4,0x24,0x2F,0x94,0x54,0x14,0x06,0x04,0x00,
0x08,0x08,0x08,0x08,0x88,0x78,0x0F,0x08,0x08,0x08,0x08,0x88,0x0C,0x08,0x00,0x00,
0x08,0x08,0x08,0x08,0xC8,0x38,0x0F,0x08,0x08,0x08,0x08,0x08,0x88,0x0C,0x08,0x00,
0x10,0x22,0x64,0x0C,0x80,0x44,0x44,0x64,0x55,0x4E,0x44,0x54,0x66,0xC4,0x00,0x00,
0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x16,0x10,0x90,0x50,0x30,0x10,0x00,0x00,0x00,
0x04,0x84,0x82,0x81,0x4A,0x4A,0x49,0x25,0x24,0x12,0x10,0x09,0x02,0x06,0x02,0x00,
0x41,0x21,0x11,0x89,0x85,0x8B,0x89,0x89,0xF9,0x89,0x8D,0x89,0xC1,0x81,0x01,0x00,
0x08,0x08,0x04,0x02,0xFF,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x00,
0x02,0x42,0x42,0x22,0x12,0x0A,0x06,0xFF,0x06,0x0A,0x12,0x12,0x22,0x63,0x22,0x00,
0x20,0x50,0x48,0x46,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x60,0x40,0x00,
0x08,0x04,0x02,0x01,0xFF,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xFF,0x01,0x00,0x00,
0x04,0x04,0xFE,0x01,0x00,0x80,0x40,0x3F,0x00,0xFF,0x00,0x3F,0x40,0x40,0x70,0x00,
0x00,0x20,0x10,0x10,0x28,0x48,0x44,0x42,0x41,0x40,0x40,0x40,0x40,0x60,0x20,0x00,

};
unsigned char code Bmp4[]=
{
/*------------------------------------------------------------------------------
   宽×高(像素): 128×16
  字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/256字节
  显示的汉字:窈窕淑女寤寐求之
------------------------------------------------------------------------------*/

0x10,0x0E,0x04,0x94,0x4C,0x24,0x05,0x86,0x84,0xE4,0x8C,0x94,0xC4,0x94,0x0C,0x00,
0x10,0x0E,0x44,0x94,0x0C,0x04,0xF5,0x06,0xF4,0x04,0x0C,0xD4,0x84,0x14,0x0C,0x00,
0x10,0x22,0x64,0x0C,0xC0,0x40,0xFF,0x44,0x44,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0xE0,0x3F,0x20,0x20,0x20,0xE0,0x20,0x20,0x30,0x20,0x00,
0x10,0x0C,0xF4,0x84,0x84,0xF4,0x05,0x56,0xD4,0x74,0x54,0x54,0xD4,0x14,0x0C,0x00,
0x10,0x0C,0xF4,0x84,0x84,0xF4,0x05,0x46,0x44,0x44,0xF4,0x44,0x44,0x54,0x0C,0x00,
0x00,0x08,0x28,0x48,0xC8,0x08,0x08,0xFF,0x88,0x0A,0x8C,0x48,0x6C,0x08,0x00,0x00,
0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x16,0x10,0x90,0x50,0x30,0x10,0x00,0x00,0x00,
0x00,0x21,0x31,0x29,0x25,0x2B,0xB1,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,
0x00,0x88,0x88,0x45,0x42,0x31,0x0F,0x00,0x3F,0x42,0x45,0x48,0x58,0x40,0x70,0x00,
0x04,0x04,0xFE,0x09,0x24,0x42,0x3F,0x82,0x44,0x20,0x13,0x0C,0x13,0x60,0x20,0x00,
0x00,0x80,0x80,0x42,0x45,0x24,0x28,0x10,0x18,0x24,0x23,0x40,0xC0,0x00,0x00,0x00,
0x02,0x42,0x3E,0x02,0x02,0xFF,0x02,0xFA,0x4B,0x4A,0x4A,0x4A,0x4B,0xFA,0x02,0x00,
0x02,0x42,0x3E,0x02,0x02,0xFF,0x42,0x22,0x12,0x0A,0xFF,0x0A,0x32,0x63,0x22,0x00,
0x00,0x10,0x10,0x08,0x04,0x42,0x81,0x7F,0x00,0x03,0x04,0x04,0x08,0x18,0x08,0x00,
0x00,0x20,0x10,0x10,0x28,0x48,0x44,0x42,0x41,0x40,0x40,0x40,0x40,0x60,0x20,0x00,

};
/****************************************************************************
函数功能:LCD延时程序
入口参数:t
出口参数:
****************************************************************************/
void LCDdelay(unsigned int t)
{
	unsigned int i,j;
	for(i=0;i<t;i++);
	for(j=0;j<10;j++);
}
/****************************************************************************
状态检查,LCD是否忙


*****************************************************************************/
void CheckState()		
{
   unsigned char dat,DATA;//状态信息(判断是否忙)
   LCDDi=0; // 数据\指令选择,D/I(RS)="L" ,表示 DB7∽DB0 为显示指令数据 
   LCDRW=1; //R/W="H" ,E="H"数据被读到DB7∽DB0 
   do
   {
      DATA=0x00;
      LCDEnable=1;	//EN下降源
	  LCDdelay(2);//延时
	  dat=DATA;
      LCDEnable=0;
      dat=0x80 & dat; //仅当第7位为0时才可操作(判别busy信号)
    }
    while(!(dat==0x00));
}
/*****************************************************************************
函数功能:写命令到LCD程序,RS(DI)=L,RW=L,EN=H,即来一个脉冲写一次
入口参数:cmdcode
出口参数:
*****************************************************************************/
void write_com(unsigned char cmdcode)
{
    CheckState();//检测LCD是否忙
	LCDDi=0;
	LCDRW=0;
	P1=cmdcode;		
	LCDdelay(2);
	LCDEnable=1;
	LCDdelay(2);
	LCDEnable=0;
}
/*****************************************************************************
函数功能:LCD初始化程序
入口参数:
出口参数:
*****************************************************************************/
void init_lcd()
{
	LCDdelay(100);	
	LCDMcs=1;//刚开始关闭两屏
	LCDScs=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);
}
/*****************************************************************************
函数功能:写数据到LCD程序,RS(DI)=H,RW=L,EN=H,即来一个脉冲写一次
入口参数:LCDDispdata
出口参数:
*****************************************************************************/
void write_data(unsigned char LCDDispdata)
{
    CheckState();//检测LCD是否忙
	LCDDi=1;
	LCDRW=0;
	P1=LCDDispdata;
	LCDdelay(2);
	LCDEnable=1;
	LCDdelay(2);
	LCDEnable=0;
}
/*****************************************************************************
函数功能:清除LCD内存程序
入口参数:pag,col,hzk
出口参数:
*****************************************************************************/
void Clr_Scr()
{
	unsigned char j,k;
	LCDMcs=0; //左、右屏均开显示
	LCDScs=0;
 	write_com(Page_Add+0);
 	write_com(LCDCol_Add+0);
 	for(k=0;k<8;k++)//控制页数0-7,共8页
 	{
		write_com(Page_Add+k); //每页每页进行写
  		for(j=0;j<64;j++)  //每页最多可写32个中文文字或64个ASCII字符
		{
      		write_com(LCDCol_Add+j);
			write_data(0x00);//控制列数0-63,共64列,写点内容,列地址自动加1
		}
	}
}
/*****************************************************************************
函数功能:左屏位置显示
入口参数:page,column,hzk
出口参数:
*****************************************************************************/
void Bmp_Left_Disp(unsigned char page,unsigned char column, unsigned char code *Bmp)
{
	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<64;i++) 
			write_data(Bmp[128*j+i]);
	}
}
/*****************************************************************************
函数功能:右屏位置显示
入口参数:page,column,hzk
出口参数:
*****************************************************************************/
void Bmp_Right_Disp(unsigned char page,unsigned char column, unsigned char code *Bmp)
{
	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=64;i<128;i++) 
			write_data(Bmp[128*j+i]);
	}
}


void main()
{
	init_lcd();
	Clr_Scr();
	LCDMcs=0; //左屏开显示
	LCDScs=1;
	Bmp_Left_Disp(0,0,Bmp1);// Bmp1为某个汉字的首地址
    Bmp_Left_Disp(2,0,Bmp2);
    Bmp_Left_Disp(4,0,Bmp3);
    Bmp_Left_Disp(6,0,Bmp4);
    
	LCDMcs=1; //右屏开显示
	LCDScs=0;
    Bmp_Right_Disp(0,0,Bmp1);
    Bmp_Right_Disp(2,0,Bmp2);
    Bmp_Right_Disp(4,0,Bmp3);
    Bmp_Right_Disp(6,0,Bmp4);
	while(1)
    {
  
	}
	   }

PROTEUS仿真文件、HEX文件和C语言程序文件:

相关文件下载

字模提取软件:

两个十分好用的取模软件下载

/*********************************************************** 实验名称:LCD12864显示汉字示例程序 程序说明:烧好程序,正确插上LCD12864即可观察到LCD显示汉字。 注意:USB供电可能不足,这时需要用变压器供电。 ***********************************************************/ /*********************************************************** 模块名称:st7920 并行方式驱动12864液晶驱动 功能概要:st7920显示驱动 完成日期:2008.07.08 驱动芯片:st7920 ***********************************************************/ #include #define uint unsigned int #define uchar unsigned char #define x1 0x80 #define x2 0x88 #define y 0x80 #define comm 0 #define dat 1 sbit RS = P2^0; //H=data; L="command"; sbit RW = P2^1; //H=read; L="write"; sbit E = P2^2; //input enable; sbit PSB= P2^3; //H=并口; L="串口"; sbit RST= P2^5; //Reset Signal 低电平有效 sbit busy=P1^7; //lcd busy bit void wr_lcd (uchar dat_comm,uchar content); void chk_busy (void); void delay (uint us); uchar code tab31[]={ " RF-X1开发板 " " 您学习的首选 " }; uchar code tab32[]={ /*-- 调入了一幅图像:F:\梁\画图\HOCO12832.bmp --*/ /*-- 宽度x高度=128x32 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00, 0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00, 0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0, 0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0, 0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60, 0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30, 0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90, 0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90, 0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0, 0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50, 0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90, 0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80, 0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00, 0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00, 0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00, 0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00, 0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00, 0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00, 0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00, 0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00, 0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00, 0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00, 0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00, 0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00, 0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00, 0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; uchar code tab5[]={ /*-- 调入了一幅图像:F:\梁\画图\COCK.bmp --*/ /*-- 宽度x高度=128x64 --*/ 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,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,0x04,0x00,0xC0,0x00,0x38, 0x00,0x00,0x30,0x00,0x00,0x69,0xC0,0x00, 0x00,0x00,0x00,0x04,0x18,0xC0,0x00,0x18, 0x00,0x00,0x30,0x00,0x01,0xFF,0xF0,0x00, 0x00,0x00,0x00,0x0C,0x18,0xC0,0x0A,0xBD, 0x50,0x1D,0x75,0xE0,0x01,0xC0,0xF0,0x00, 0x00,0x74,0x00,0x3F,0x8C,0x80,0x1F,0xFF, 0xF0,0x3F,0xFF,0xF0,0x00,0x0D,0xE0,0x00, 0x03,0x8F,0x00,0xF0,0x3F,0xF0,0x30,0x18, 0x00,0x18,0x30,0x60,0x00,0x07,0x00,0x00, 0x0C,0x03,0x80,0xDF,0x30,0x70,0x00,0x38, 0x00,0x1D,0x75,0x60,0x05,0x57,0x54,0x00, 0x10,0x41,0x80,0x3E,0x30,0x20,0x07,0xFF, 0xE0,0x1F,0xFF,0xE0,0x1F,0xFF,0xFF,0x80, 0x21,0xC1,0xC0,0x04,0x3C,0xF0,0x02,0x08, 0x00,0x18,0x30,0x60,0x3F,0x47,0xBF,0x80, 0x40,0xC1,0x80,0x7F,0x9F,0xA0,0x02,0x19, 0x80,0x1D,0x7F,0xE0,0x30,0x03,0x03,0x00, 0xC1,0xC1,0x80,0x2E,0x05,0x80,0x27,0x99, 0x80,0x0F,0xFF,0xE0,0x00,0x03,0x00,0x00, 0x81,0x83,0x00,0x04,0x0D,0x00,0x33,0xE3, 0x00,0x0C,0x70,0x00,0x00,0x03,0x00,0x00, 0x81,0x86,0x00,0x0D,0x99,0x80,0x60,0x3E, 0x00,0x00,0x38,0x01,0x00,0x07,0x00,0x00, 0x81,0xBC,0x00,0x0F,0x39,0xC6,0xE0,0x0F, 0xB6,0x00,0x3F,0xBF,0x00,0x07,0x00,0x00, 0x83,0xF0,0x00,0x1E,0xE0,0xFE,0xE0,0x03, 0xFE,0x00,0x0F,0xFE,0x01,0xFF,0x00,0x00, 0xC3,0x30,0x00,0x89,0x80,0x7C,0x00,0x01, 0xF8,0x00,0x07,0xFC,0x00,0x7C,0x00,0x00, 0x63,0x31,0xFF,0x00,0x00,0x00,0x00,0x00, 0x20,0x00,0x00,0x50,0x00,0x00,0x00,0x00, 0x63,0x19,0x12,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x19,0x04,0x3F,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80, 0x07,0x19,0x88,0x3F,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80, 0x06,0x0C,0x10,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0E,0x0C,0x20,0x00,0x00,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x40,0x00,0x00, 0x3E,0x0E,0x40,0x0A,0x6D,0xB4,0x07,0x84, 0x35,0x1A,0x67,0xA2,0x01,0xA7,0x9B,0x00, 0x45,0x86,0x80,0x0A,0xAA,0xB4,0x04,0x44, 0x26,0x92,0x68,0xA2,0x01,0x34,0x93,0x00, 0x00,0x03,0x01,0x0E,0xAE,0xB4,0x04,0x44, 0x61,0x1B,0x68,0xA2,0x01,0x0C,0x5B,0x00, 0x00,0x07,0x03,0x0A,0xBA,0xD8,0x06,0x84, 0x41,0xF2,0xC8,0x22,0x03,0x08,0xD7,0x00, 0x00,0x07,0x87,0x0D,0x96,0x68,0x05,0x84, 0x61,0x9B,0xE8,0x22,0x02,0x0C,0x5F,0x00, 0x00,0x1F,0xF6,0x0D,0xB6,0x58,0x04,0x84, 0x45,0x15,0xA8,0xA2,0x03,0x14,0xD5,0x00, 0x00,0x10,0xFC,0x05,0x92,0x48,0x04,0x84, 0x25,0x93,0xAC,0xA2,0x01,0x24,0x95,0x00, 0x00,0x00,0x00,0x0D,0x96,0x49,0x04,0x44, 0x3D,0x14,0xA7,0x1C,0x41,0xE7,0x15,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,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,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,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,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, 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,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,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,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,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,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,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,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, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; /****************************************************************************************** * 函数名称 : * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void init_lcd (void) { RST = 1; PSB = 1; wr_lcd(comm,0x30); /*30---基本指令动作*/ wr_lcd(comm,0x01); /*清屏,地址指针指向00H*/ wr_lcd(comm,0x06); /*光标的移动方向*/ wr_lcd(comm,0x0c); /*开显示,关游标*/ } /****************************************************************************************** * 函数名称 :chn_disp * 功能描述 : 显示汉字或字符 * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void chn_disp(uchar code *chn) { uchar i,j; wr_lcd(comm,0x30); wr_lcd(comm,0x80); for(j=0;j<4;j++) { for(i=0;i<16;i++) wr_lcd(dat,chn[j*16+i]); } } /****************************************************************************************** * 函数名称 :chn_disp1 * 功能描述 : 上半屏显示汉字或字符 * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void chn_disp1(uchar code *chn) { uchar i,j; wr_lcd(comm,0x30); wr_lcd(comm,0x80); j=0; for(i=0;i<16;i++) wr_lcd(dat,chn[j*16+i]); wr_lcd(comm,0x90); j=1; for(i=0;i<16;i++) wr_lcd(dat,chn[j*16+i]); } /****************************************************************************************** * 函数名称 :img_disp * 功能描述 : 显示图形 * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void img_disp(uchar code *img) { uchar i,j; for(j=0;j<32;j++) { for(i=0;i<8;i++) { wr_lcd(comm,0x34); wr_lcd(comm,y+j); wr_lcd(comm,x1+i); wr_lcd(comm,0x30); wr_lcd(dat,img[j*16+i*2]); wr_lcd(dat,img[j*16+i*2+1]); } } for(j=32;j<64;j++) { for(i=0;i<8;i++) { wr_lcd(comm,0x34); wr_lcd(comm,y+j-32); wr_lcd(comm,x2+i); wr_lcd(comm,0x30); wr_lcd(dat,img[j*16+i*2]); wr_lcd(dat,img[j*16+i*2+1]); } } wr_lcd (comm,0x36); } /****************************************************************************************** * 函数名称 :img_disp1 * 功能描述 : 下半屏显示图形 * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void img_disp1(uchar code *img) { uchar i,j; for(j=0;j<32;j++) { for(i=0;i<8;i++) { wr_lcd(comm,0x34); wr_lcd(comm,y+j); wr_lcd(comm,x2+i); wr_lcd(comm,0x30); wr_lcd(dat,img[j*16+i*2]); wr_lcd(dat,img[j*16+i*2+1]); } } wr_lcd(comm,0x36); } /****************************************************************************************** * 函数名称 :lat_disp * 功能描述 : 显示点阵 * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void lat_disp(uchar data1,uchar data2) { uchar i,j,k,x; x=x1; for(k=0;k<2;k++) { for(j=0;j<16;j++) { for(i=0;i<8;i++) { wr_lcd(comm,0x34); wr_lcd(comm,y+j*2); wr_lcd(comm,x+i); wr_lcd(comm,0x30); wr_lcd(dat,data1); wr_lcd(dat,data1); } for(i=0;i<8;i++) { wr_lcd(comm,0x34); wr_lcd(comm,y+j*2+1); wr_lcd(comm,x+i); wr_lcd(comm,0x30); wr_lcd(dat,data2); wr_lcd(dat,data2); } } x=x2; } wr_lcd(comm,0x36); } /****************************************************************************************** * 函数名称 :con_disp * 功能描述 : 当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl) { uchar i,j; for(j=0;j<yl;j++) { for(i=0;i<xl;i++) { wr_lcd(comm,0x34); wr_lcd(comm,y0+j); wr_lcd(comm,x0+i); wr_lcd(comm,0x30); wr_lcd(dat,data1); wr_lcd(dat,data2); } } wr_lcd(comm,0x36); } /****************************************************************************************** * 函数名称 :clrram * 功能描述 : 清DDRAM * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void clrram(void) { wr_lcd(comm,0x30); wr_lcd(comm,0x01); } /****************************************************************************************** * 函数名称 :wr_lcd * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void wr_lcd(uchar dat_comm,uchar content) { chk_busy (); if(dat_comm) { RS = 1; //data RW = 0; //write } else { RS = 0; //command RW = 0; //write } P0=content; //output data or comm E = 1; ; E = 0; } /****************************************************************************************** * 函数名称 :chk_busy * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void chk_busy(void) { P0 = 0xff; RS = 0; RW = 1; E = 1; while(busy==1); E = 0; } /****************************************************************************************** * 函数名称 : * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void delay(uint us) //delay time { while(us--); } /****************************************************************************************** * 函数名称 : * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void delay1(uint ms) { uint i,j; for(i=0;i<ms;i++) for(j=0;j<15;j++) delay(1); } /****************************************************************************************** * 函数名称 : * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2007-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 : 修改人: 修改日期: * 修改说明 : ******************************************************************************************/ void main() { SP=0x5f; init_lcd(); while(1) { //lat_disp(0x00,0x00); // chn_disp(tab1); //con_disp(0xff,0xff,0x8c,0x80,2,16); //delay1(8000); //clrram(); //lat_disp(0xcc,0xcc); //delay1(8000); lat_disp(0x00,0x00); chn_disp1(tab31); img_disp1(tab32); delay1 (8000); clrram(); //lat_disp (0xff,0x00); //delay1(8000); img_disp(tab5); delay1(8000); } }
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿鹿学术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值