糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 单片机控制12864显示多行汉字(含PROTEUS仿真文件 程序和字模提取软件)

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

时间:2018-11-22 00:34:37

相关推荐

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

PROTEUS仿真电路图:

仿真实验结果展示:

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

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

设定相关参数:

输入汉字:

随便找个位置将图片保存:

第二步:打开液晶汉字模提取软件

设定相关参数:

将刚才保存的图片打开并保存数据:

C语言程序代码:

#include <reg51.h>#define LCDLCDDisp_Off 0x3e#define LCDLCDDisp_On 0x3f#define Page_Add0xb8//页地址#define LCDCol_Add0x40//列地址#define Start_Line0xC0//行地址/*****液晶显示器的端口定义*****/#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语言程序文件:

相关文件下载

字模提取软件:

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

如果觉得《单片机控制12864显示多行汉字(含PROTEUS仿真文件 程序和字模提取软件)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。