LCD12864显示屏 带中文字库
带字库LCD12864自定义图形、汉字显示
![带字库LCD12864自定义图形、汉字显示](https://img.taocdn.com/s3/m/f342bce74693daef5ef73df9.png)
带字库的LCD12864自定义图片、汉字显示
一、将图片修改成128*64像素
1、打开win7自带的画图软件,载入图片(图片不满足128*64)
2、点击重新调整大小(或者图片处右击鼠标),如下设置,保持纵横比不勾选。
3、图片另存为,选择单色位图。
二、LCD12864用ZIMO21软件取模(BMP图片)
1、基本设置里面设置LCD的大小(如果图片像素就是128*64就不需要设置,直接打开)
2、打开BMP图片(黑白)
3、发现图片偏小,不足128*64,此时生成的数据就缺少128*64个点,显示会照成错误,需要修改一下图片大小。
改成128*64
3、直接调入128*64图片
4、设置参数,如下
5、取模选择C51格式
6、显示效果
三、PCtoLCD2002图片取模设置
四、PCtoLCD2002汉字取模设置(根据程序而定)
1、汉字取模参数设置
2、显示效果如下。
LCD12864驱动程序(带字库的)
![LCD12864驱动程序(带字库的)](https://img.taocdn.com/s3/m/853ab001b52acfc789ebc9fb.png)
{
while(buf--);
}*/
/***********忙检测********************/
void Busy()
{
DataPort=0xFF;
RS=0;
RW=1;
while (1)
{
E =1;
if (P0^7==0) break;
}
E=0;
}
void main(void)
{
TMOD=0x01; ///选择定时器模式
TR0=1; //开中断,并允许T0中断
ET0=1;
EA=1; //总开关
Init_LCቤተ መጻሕፍቲ ባይዱ();
Clear_LCD();
while(1);
}
void t0(void) interrupt 1 using 0
{
//delay(100);
/*void Line_Num(uchar k)
{
//uint l;
if(k>=128&&k<=135)l=1;
if(k>135&&k<=143) l=3;
if(k>143&&k<=151) l=2;
if(k>151&&k<=159) l=4;
}*/
/*******************逐行显示***************************************/
void Write_Data(uchar Data)
{
Busy();
RS=1;
RW=0;
带中文字库LCD12864液晶仿真
![带中文字库LCD12864液晶仿真](https://img.taocdn.com/s3/m/a59c3b7d7fd5360cba1adb4f.png)
字库LCD12864液晶/*-----------------------------------------------名称:LCD12864 字库液晶芯片组st7920------------------------------------------------*/#include <stdio.h>#include <reg52.h>#include <string.h>/******************************************************************/ /* 定义数组 */ /******************************************************************/ unsigned char code IC_DAT[];unsigned char code IC_DAT2[];unsigned char code Photo1[];/******************************************************************/ /* 定义接口信息 */ /******************************************************************/ sbit RS =P2^4;sbit WRD=P2^5;sbit E= P2^6;sbit PSB=P2^1;sbit RES=P2^3;/******************************************************************//* 函数声明 *//******************************************************************/void TransferData(char data1,bit DI);void display(void);void display_grapic(void);void delayms(unsigned int n);void DisplayLine(unsigned char line1,unsigned char line2);void DisplayGraphic(unsigned char code *adder);void delay(unsigned int m);void lcd_mesg(unsigned char code *adder1);//显示的是1行 31行 21行 41行unsigned char code IC_DAT[]={"去年今日此门中,""人面桃花相映红。
中文字符型液晶12864
![中文字符型液晶12864](https://img.taocdn.com/s3/m/37188bff700abb68a982fb1b.png)
一、概述二、带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
三、基本特性:(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口管脚号管脚名称电平管脚功能描述1 VSS 0V 电源地2 VCC 3.0+5V 电源正3 V0 - 对比度(亮度)调整4RS(CS)H/L RS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID) H/L R/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR6 E(SCLK) H/L 使能信号7 DB0 H/L 三态数据线8 DB1 H/L 三态数据线9 DB2 H/L 三态数据线10 DB3 H/L 三态数据线11 DB4 H/L 三态数据线12 DB5 H/L 三态数据线13 DB6 H/L 三态数据线14 DB7 H/L 三态数据线15 PSB H/L H:8位或4位并口方式,L:串口方式(见注释1)16 NC - 空脚17 /RESET H/L 复位端,低电平有效(见注释2)18 VOUT - LCD驱动电压输出端19 A VDD 背光源正端(+5V)(见注释3)20 K VSS 背光源负端(见注释3)*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。
12864LCD液晶显示屏中文资料
![12864LCD液晶显示屏中文资料](https://img.taocdn.com/s3/m/a4fe8374caaedd3383c4d38b.png)
12864LCD液晶显示屏中文资料一、概述二、带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
三、基本特性:(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口的J8和“VCC”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
LCD12864资料
![LCD12864资料](https://img.taocdn.com/s3/m/bd4d7dce58f5f61fb73666b4.png)
12864LCD液晶显示屏一、概述二、带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
三、基本特性:(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口管脚名称电平管脚功能描述管脚号1 VSS 0V 电源地2 VCC 3.0+5V 电源正3 V0 - 对比度(亮度)调整RS=“H”,表示DB7——DB0为4 RS(CS)H/L显示数据RS=“L”,表示DB7——DB0为显示指令数据5 R/W(SID) H/L R/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR 或DR6 E(SCLK) H/L 使能信号7 DB0 H/L 三态数据线8 DB1 H/L 三态数据线9 DB2 H/L 三态数据线10 DB3 H/L 三态数据线11 DB4 H/L 三态数据线12 DB5 H/L 三态数据线13 DB6 H/L 三态数据线14 DB7 H/L 三态数据线15 PSB H/LH:8位或4位并口方式,L:串口方式(见注释1)16 NC - 空脚17 /RESET H/L 复位端,低电平有效(见注释2)18 VOUT - LCD驱动电压输出端19 A VDD 背光源正端(+5V)(见注释3)20 K VSS 背光源负端(见注释3)*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。
LCD12864中文字库说明书
![LCD12864中文字库说明书](https://img.taocdn.com/s3/m/ffadd517df80d4d8d15abe23482fb4daa48d1d43.png)
(一)(一)概述 (3)(二)(二)外形尺寸1 方框图 (3)2 外型尺寸图 (4)(三)(三)模块的接口 (4)(四)(四)硬件说明 (5)(五) 指令说明 (7)(五)(五)读写操作时序 (8)(六)(六)交流参数 (11)(七)(七)软件初始化过程 (12)(八)(八)应用举例 (13)(九)(九)附录1半宽字符表 (20)2 汉字字符表 (21)一、概述FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCI I字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:●●低电源电压(V DD:+3.0--+5.5V)●●显示分辨率:128×64点●●内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)●●内置 128个16×8点阵字符●●2MHZ时钟频率●●显示方式:STN、半透、正显●●驱动方式:1/32DUTY,1/5BIAS●●视角方向:6点●●背光方式:侧部高亮白色L ED,功耗仅为普通L ED的1/5—1/10 ●●通讯方式:串行、并口可选●●内置DC-DC转换电路,无需外加负压●●无需片选信号,简化软件设计●●工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃二、方框图3、外形尺寸图三、模块接口说明*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
LCD12864详解
![LCD12864详解](https://img.taocdn.com/s3/m/533c9589aa00b52acec7ca44.png)
12864液晶一、概述带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:低电源电压(VDD:+3.0--+5.5V)显示分辨率:128×64点内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)内置 128个16×8点阵字符2MHZ时钟频率显示方式:STN、半透、正显驱动方式:1/32DUTY,1/5BIAS视角方向:6点背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10通讯方式:串行、并口可选内置DC-DC转换电路,无需外加负压无需片选信号,简化软件设计工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口管脚号管脚名称电平管脚功能描述1 VSS 0V 电源地2 VCC 3.0+5V 电源正3 V0 - 对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID) H/L R/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR6 E(SCLK) H/L 使能信号7 DB0 H/L 三态数据线8 DB1 H/L 三态数据线9 DB2 H/L 三态数据线10 DB3 H/L 三态数据线11 DB4 H/L 三态数据线12 DB5 H/L 三态数据线13 DB6 H/L 三态数据线14 DB7 H/L 三态数据线15 PSB H/L H:8位或4位并口方式,L:串口方式(见注释1)16 NC - 空脚17 /RESET H/L 复位端,低电平有效(见注释2)18 VOUT - LCD驱动电压输出端19 A VDD 背光源正端(+5V)(见注释3)20 K VSS 背光源负端(见注释3)*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。
128X64(带字库)说明书
![128X64(带字库)说明书](https://img.taocdn.com/s3/m/817dc2cea8114431b80dd843.png)
、概述带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128X64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8X4行16X16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:lll l l l l l l l l l l 低电源电压(VDD:+3.0--+5.5V )显示分辨率:128 X64点内置汉字字库,提供8192个16X16点阵汉字(简繁体可选)内置128个16X8点阵字符2MHZ时钟频率显示方式:STN半透、正显驱动方式:1/32DUTY, 1/5BIAS视角方向:6点背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5 —1/10 通讯方式:串行、并口可选内置DC-DC转换电路,无需外加负压无需片选信号,简化软件设计工作温度:0 °C - +55C ,存储温度:-20C - +60C模块接口说明*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND 用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口管脚号管脚名称电平管脚功能描述1 VSS 0V 电源地2 VCC 3.0+5V 电源正3 V0 - 对比度(亮度)调整4 RS=“H',表示DB7DB0为显示数据RS(CS H/LRS=“L” ,表示DB7DB0为显示指令数据5 R/W=“H' ,E= “H‘ ,数据被读到DB7DB0R/W(SID) H/LR/W=“L” ,E= “HRL” , DB7 —— DB0的数据被写到IR 或DR6 E(SCLK) H/L 使能信号7 DB0 H/L 三态数据线8 DB1 H/L 三态数据线9 DB2 H/L 三态数据线10 DB3 H/L 三态数据线11 DB4 H/L 三态数据线12 DB5 H/L 三态数据线13 DB6 H/L 三态数据线14 DB7 H/L 三态数据线15 PSB H/L H 8位或4位并口方式,L:串口方式(见注释1)16 NC - 空脚17 /RESET H/L 复位端,低电平有效(见注释2)18 VOUT - LCD驱动电压输岀端19 A VDD 背光源正端(+5V)(见注释3)20 K VSS 背光源负端(见注释3)*注释1 :如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC 用焊锡短接。
带中文字库的12864LCD显示程序
![带中文字库的12864LCD显示程序](https://img.taocdn.com/s3/m/0e3cdb0e580216fc700afdf7.png)
//带中文字库的12864LCD显示程序#include <reg52.H>#include <intrins.H>#define uchar unsigned char#define uint unsigned intsbit dula = P2^6;sbit wela = P2^7;//SCM12864-05端口定义#define LCD_DATA P0 //数据口sbit RS = P3^5; //并行的指令/数据选择信号, H数据, L命令sbit RW = P3^6; //并行读写选择信号, H读, L写sbit E = P3^4; //并行使能端, H有效, L无效sbit PSB = P3^7; //并/串接口选择, H并,L串sbit RET = P3^3; //复位, L有效uchar code datas1[] = {"广东工业大学"};uchar code datas2[] = {"自动化学院2004级"};uchar code datas3[] = {"网络工程 (4)班"};uchar code datas4[] = {""};//延时约2usvoid delayUs(){nop_();_nop_();}//延时 a * 1msvoid delayMs(uint a){uint i, j;for(i = a; i > 0; i--)for(j = 100; j > 0; j--);}//检测LCD是否处于忙状态, 若忙返回1, 空闲返回0bit checkBusy(){ bit busy;RS = 0;RW = 1;E = 1;delayUs();busy = (bit)(LCD_DATA&0x80);E = 0;return busy;}//等待LCD到空闲void wait(){while(checkBusy());}//写命令void writeCmd(uchar cmd){wait();RS = 0;RW = 0;E = 0;delayUs();LCD_DATA = cmd;delayUs();E = 1;delayUs();E = 0;}//写数据void writeData(uchar dat){wait();RS = 1;RW = 0;E = 0;delayUs();LCD_DATA = dat;delayUs();E = 1;delayUs();E = 0;}//初始化LCDvoid init(){PSB = 1; //并口方式writeCmd(0x30); //基本指令, 扩充指令为34HdelayMs(10);writeCmd(0x0c); //显示开, 关光标delayMs(10);writeCmd(0x01); //清屏delayMs(10);}void setPosition(uchar x, uchar y){ uchar p;switch(x%4){case 0: p = 0x80; break; //第一行开始地址case 1: p = 0x90; break; //第二行case 2: p = 0x88; break; //第三行case 3: p = 0x98; break; //第四行}p += y;writeCmd(p);}void writeString(uchar * str){uchar i = 0;while(str[i] != '\0'){writeData(str[i++]);}}/**//***************************LCD12864***************************/void main(){//先关闭数码管, 使两个锁存器锁存, 因开了数码管, USB电压驱动不够, 将无法使LCD正常工作dula = wela = 0;init();setPosition(0, 0);writeString(datas1);setPosition(1, 0);writeString(datas2);setPosition(2, 0);writeString(datas3);setPosition(3, 0);writeString(datas4);while(1);}。
LCD12864带中文字库图形显示单片机程序多图
![LCD12864带中文字库图形显示单片机程序多图](https://img.taocdn.com/s3/m/6ee1f4214431b90d6d85c729.png)
LCD12864带中文字库图形显示-单片机程序(多图)代码:#include ;#define uchar unsigned charsbit rs=P2^2;//写指令/数据sbit rw=P2^3;//读状态/写sbit e=P2^4;//使能端sbit psb=P2^5;//串/并输入//校徽unsigned char code image[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x1F,0xFF,0x80,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0xF4,0xFC,0x7E,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x0D,0xF0,0xFC,0xFF,0x80,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x13,0xF0,0x78,0x7F,0xC0,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x75,0xF7,0xFF,0xFC,0xE0,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xF8,0xF8,0x00,0xF9,0x78,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xFD,0xCF,0xFF,0x1E,0xFC,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0xFA,0x3F,0xFF,0x66,0xFE,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0xFD,0xFF,0xFD,0x79,0xFF,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x0E,0xF3,0xFF,0xFA,0xFE,0xF0,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x18,0x2F,0xFF,0xF0,0xFF,0x69,0x80,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x3E,0xBF,0xFF,0x93,0xFF,0xDF,0xE0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0x7F,0xFF,0x9F,0xFF,0xEF,0xE0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0x7E,0x07,0x9F,0x07,0xF7,0xF0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFF,0x00,0x00,0x0F,0xF3,0xF0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFD,0xFF,0x80,0x00,0x1F,0xFB,0xF8,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFD,0xFF,0xE0,0x00,0x3F,0xFD,0xF8,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFB,0xF9,0xE0,0x00,0x79,0xFD,0xFC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFB,0xFC,0x10,0x00,0x81,0xFD,0xFC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xFB,0xFE,0x00,0x02,0x03,0xFE,0xFC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xF7,0xFE,0x00,0x00,0x07,0xFE,0xFC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xF7,0xF0,0x40,0xF8,0x10,0x7E,0xFE,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xF7,0xF0,0x00,0x00,0x00,0xFF,0x7E,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xF7,0xFC,0x00,0x00,0x01,0xFF,0x7E,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x06,0x37,0xFE,0x00,0x00,0x07,0xFF,0x72,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x06,0x77,0xFF,0x80,0x00,0x0F,0xFF,0x5E,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xF7,0xF3,0xE0,0x00,0x7D,0xFF,0x7E,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x06,0x37,0xFC,0x7F,0x07,0xE1,0xFF,0x5E,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,0xF7,0xFE,0xBF,0x07,0xCB,0xFF,0xC6,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xF7,0xFC,0x1E,0x06,0x1F,0xFE,0xFE,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,0x37,0xFD,0x0F,0xD9,0x1F,0xFE,0xC4,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x1B,0xFE,0x80,0x00,0x3F,0xFE,0xEC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFB,0xFF,0xC0,0x00,0xFF,0xFD,0xFC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xD9,0xFF,0xA8,0x0B,0xFF,0xFD,0xBC,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xED,0xFF,0xFC,0x0B,0xFF,0xFB,0xE8,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xEC,0xFF,0xFE,0x8F,0xFF,0xFB,0x28,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xCE,0xFF,0xFF,0xDF,0xFF,0xF7,0xD0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x73,0x7F,0xFF,0xDF,0xFF,0xE7,0x30,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x6F,0xBF,0xFE,0x8B,0x23,0xEE,0xE0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x37,0x9F,0xED,0xFF,0xFF,0xDD,0xC0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x1F,0xCF,0xBF,0xFF,0xFD,0xBA,0xC0,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x1E,0xE5,0x7F,0xFF,0xFE,0x79,0x80,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x0D,0x7B,0xFE,0x63,0xFC,0xDB,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x06,0x3C,0xFE,0x27,0xF3,0xFE,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0x5F,0x1F,0xFF,0xCF,0x5C,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xEB,0xE3,0xFC,0x3C,0x78,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xDB,0xFC,0x03,0xFB,0x30,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x3E,0xDF,0xFF,0x9D,0xE0,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x1F,0xBB,0xFC,0xFD,0xC0,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x0F,0xAA,0xBE,0xBF,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x03,0xEE,0xBE,0xBC,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x7E,0x9F,0xF0,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x0F,0xFF,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};void delay(int i){uchar j;while(i--)for(j=110;j>;0;j--);}//读状态,检测忙void check_busy(){rs=0;rw=1;e=1;P0=0xff;while((P0&0x80)==0x80);e=0;}//写指令void write_com(uchar com) {check_busy();rs=0;rw=0;e=1;P0=com;delay(5);e=0;delay(5);}//写数据void write_data(uchar _data) {check_busy();rs=1;rw=0;e=1;P0=_data;delay(5);e=0;delay(5);}//初始化lcdvoid init(){rw=0;psb=1;//选择为并行输入delay(50);write_com(0x30);//基本指令操作delay(5);write_com(0x0c);//显示开,关光标delay(5);write_com(0x06);//写入一个字符,地址加1 delay(5);write_com(0x01);delay(5);}void wstring(uchar *str){while(*str){write_data(*str);delay(5);str++;}}void lcd_draw(unsigned char code *pic) {unsigned i,j,k;write_com(0x34);//扩充指令集for(i=0;i绘图更好的一个算法:(可以绘分块,也可绘全屏)void lcd_block(char num,char flag){//x1:列数,yl:行数,x:列坐标,//sx:该图形距离第一幅图的距离//此函数也可以用来画全屏图unsigned i,j,k,xl,yl,x,y,sx;unsigned char code *pic;switch(num){case 0: j=0;pic=image0;xl=5;yl=12;sx=3;x=0x80|sx;break;case 1:j=13;pic=image4;xl=4;yl=37;sx=0;x=0x80|sx;break; case 2:j=13;pic=image4;xl=4;yl=37;sx=3;x=0x80|sx;break; case 3:j=13;pic=image4;xl=4;yl=12;sx=6;x=0x80|sx;break; case 4: j=7;pic=image4;xl=4;yl=31;sx=0;x=0x88|sx;break;case 5: j=7;pic=image5;xl=4;yl=31;sx=3;x=0x88|sx;break;case 6: j=7;pic=image5;xl=4;yl=31;sx=6;x=0x88|sx;break;case 7: j=0;pic=image7;xl=16;yl=64;sx=0;x=0x80|sx;break;}write_com(0x34);for(j;j;31) {y=j-32;x=0x88|sx;} else y=j;write_com(0x80+y);write_com(x);for(k=0;k<xl;k++){if(flag)write_data(*pic++);else write_data(~(*pic++));}}/*for(j;j<yl;j++){write_com(0x80+j);write_com(x);for(k=0;k<xl;k++){if(flag)write_data(*pic++);else write_data(~(*pic++));}}*/write_com(0x36);//显示图形write_com(0x30);//基本指令集}。
12864液晶显示屏
![12864液晶显示屏](https://img.taocdn.com/s3/m/9303e66f561252d380eb6eea.png)
12864液晶显示屏(带字库)一、12864液晶显示屏介绍市场上的12864 LCD主要分为二种,一种是采用KS0108及其兼容控制器,它不带任何字库;另一种是采用ST7920控制器的,它带有中文字库(8000多汉字)。
需要提醒读者的是,带字库的12864 LCD一般都集成有-10V负压电路,因此,可直接使用;而很多不带字库的12864 LCD不带-10V负压电路,使用时比较麻烦,需要自己组装负压电路,在选购12864 LCD时应特别注意!我们这里出售的是带字库的12864液晶显示屏,可以直接和DD-900实验开发板配合使用,如下图所示。
二、12864液晶显示屏管脚功能带字库12864液晶显示屏显示分辨率为128×64, 内置有8192 个16×16 点汉字和128 个16×8点ASCII 字符集,可构成全中文人机交互图形界面。
带字库12864 LCD的管脚功能如下表所示。
12864点阵型LCD管脚功能脚号符号功能1 VSS 逻辑电源地2 VDD +5V逻辑电源3 V0 对比度调整端4 RS(CS)数据\指令选择。
高电平,表示数据DB0-DB7为显示数据;低电平,表示数据DB0-DB7为指令数据5 R/W(SID)在并口模式下,该脚为读\写选择端在串口模式下,该脚为串行数据输入端6 E (SCLK)在并口模式下,该脚为读写使能端,E的下降沿锁定数据在串口模式下,该脚为串行时钟端7 ~14 DB0~DB7 在并口模式下,为8位数据输入输出引脚在串口模式下,未用15 PSB 并口/串口选择端。
高电平时为8位或4位并口模式;低电平时为串口模式16 NC 空17 REST 复位信号,低电平有效18 VOUT LCD驱动电压输出端19 BLA 背光电源正极20 BLK 背光电源负极从表中可以看出,12864液晶显示屏可分为串口和并口两种数据传输方式,当15脚为高电平时,为并口方式,数据通过7~14脚与单片机进行并行传输;当15脚为低电平时,为串口方式,数据通过5、6脚与单片机进行串行传输。
lcd12864带字库经典程序
![lcd12864带字库经典程序](https://img.taocdn.com/s3/m/9473a96b011ca300a6c39040.png)
X++;
Delay5Ms();
}
}
}
/***********短延时********************************************************/
voidDelay5Ms(void)
{
unsignedintTempCyc= 5552;
while(TempCyc--);
WriteDataLCD(DData);
}
/***********按指定位置显示一串字符*****************************************/
voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData)
voidWriteDataLCD(unsignedcharWDLCD)
{
ReadStatusLCD();//检测忙
LCD_RS= 1;
LCD_RW= 0;
LCD_Data=WDLCD;
LCD_E= 1;
LCD_E= 1;
LCD_E= 0;
}
/***********写指令********************************************************/
sbitLCD_RS=P1^0;
sbitLCD_RW=P1^1;
sbitLCD_E=P1^2;
sbitPSB=P1^6;//PSB脚为-12系列的串、并通讯功能切换,使用位并行接口,PSB=1
/********宏定义***********************************************************/
带字库12864液晶详解
![带字库12864液晶详解](https://img.taocdn.com/s3/m/af41d3cea300a6c30c229ff9.png)
H/L R/W=“L”,E=“H→L”, DB7——DB0 的数据被写到 IR 或 DR
H/L 使能信号 H/L 三态数据线 H/L 三态数据线 H/L 三态数据线 H/L 三态数据线
11 DB4 12 DB5 13 DB6 14 DB7 15 PSB 16 NC 17 /RESET 18 VOUT 19 A
20 K
H/L 三态数据线 H/L 三态数据线 H/L 三态数据线 H/L 三态数据线 H/L H:8 位或 4 位并口方式,L:串口方式(见注释 1) - 空脚 H/L 复位端,低电平有效(见注释 2) - LCD 驱动电压输出端 VDD 背光源正端(+5V)(见注释 3)
VSS 背光源负端(见注释 3)
示移
改变 DDRAM 的内容
位控
制
DL=0/1:4/8 位数据 功能
0 0 0 0 1 DL X RE X X RE=1: 扩充指令操作 设定
RE=0: 基本指令操作
设定
CGRA
M
0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定 CGRAM 地址
地址
设定
DDRA
M
00
地址
读取 忙标 志和 0 1 地址 写数 1 0 据到
*注释 1:如在实际应用中仅使用并口通讯模式,可将 PSB 接固定高电平,也可 以将模块上的 J8 和“VCC”用焊锡短接。
*注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端 悬空。
*注释 3:如背光和模块共用一个电源,可以将模块上的 JA、JK 用焊锡短接。
12864J中文字库
![12864J中文字库](https://img.taocdn.com/s3/m/a52c34c805087632311212a4.png)
一、液晶显示模块概述12864J汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压);显示内容:128列× 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等二、外形尺寸外观尺寸:93×70×12.5mm 视域尺寸:73×39mm外形尺寸图外形尺寸UNITDIMENITEM NOMINAL模块体积 93×70×12.5 mm视域 73.0×39.0 mm行列点阵数 128×64 dots点距离 0.52×0.52 mm点大小 0.48×0.48 mm二、模块引脚说明128X64HZ 引脚说明1 VSS - 模块的电源地2 VDD - 模块的电源正端3 V0 - LCD驱动电压输入端4 RS(CS) H/L 并行的指令/数据选择信号;串行的片选信号5 R/W(SID) H/L 并行的读写选择信号;串行的数据口6 E(CLK) H/L 并行的使能信号;串行的同步时钟7 DB0 H/L 数据08 DB1 H/L 数据19 DB2 H/L 数据210 DB3 H/L 数据311 DB4 H/L 数据412 DB5 H/L 数据513 DB6 H/L 数据614 DB7 H/L 数据715 PSB H/L 并/串行接口选择:H-并行;L-串行16 NC 空脚17 /RET H/L 复位低电平有效18 NC 空脚19 LED_A - 背光源正极(LED+5V)20 LED_K - 背光源负极(LED-OV)逻辑工作电压(VDD):4.5~5.5V电源地(GND):0V工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)三、接口时序模块有并行和串行两种连接方法(时序如下):8位并行连接时序图MPU写资料到模块MPU从模块读出资料2、串行连接时序图串行数据传送共分三个字节完成:第一字节:串口控制—格式 11111ABCA为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCDB为数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式 DDDD0000第三字节:(并行)8位数据的低4位—格式 0000DDDD串行接口时序参数:(测试条件:T=25℃ VDD=4.5V)四、用户指令集1、指令表1:(RE=0:基本指令集)指令码指令RS RWDB7DB6DB5DB4DB3DB2DB1DB说明执行时间(540KHZ)清除显示0 0 0 0 0 0 0 0 0 1将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”4.6ms地址归位0 0 0 0 0 0 0 0 1 X设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容4.6ms进入点设定0 0 0 0 0 0 0 1 I/D S指定在资料的读取与写入时,设定游标移动方向及指定显示的移位,S为1全屏移动72us显示状态开/关0 0 0 0 0 0 1 D C BD=1:整体显示ONC=1:游标ONB=1:游标位置ON72us游标或显示移位控制0 0 0 0 0 1S/CR/LX X设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容72us功能设定0 0 0 0 1 DL XREX XDL=1 (必须设为1)RE=1:扩充指令集动作RE=0:基本指令集动作72us设定CGRA M地址0 0 0 1AC5AC4AC3AC2AC1AC设定CGRAM地址到地址计数器(AC)72us设定DDRA M地址0 0 1AC6AC5AC4AC3AC2AC1AC设定DDRAM地址到地址计数器(AC)72us读取忙碌标志(BF)和地址0 1 BFAC6AC5AC4AC3AC2AC1AC读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值0us写资料到RAM 1 0 D7 D6D5 D4 D3D2D1D0写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72us读出RAM 的值1 1 D7 D6D5 D4 D3D2D1D0从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)72us指令表—2:(RE=1:扩充指令集)指令码指令RS RWDB7DB6DB5DB4DB3DB2DB1DB说明执行时间540KHZ待命模式0 0 0 0 0 0 0 0 0 1将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”72us卷动地址或IRAM地址选择0 0 0 0 0 0 0 0 1 SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM地址72us反白选择0 0 0 0 0 0 0 1 R1 R0选择4行中的任一行作反白显示,并可决定反白与否72us睡眠模式0 0 0 0 0 0 1 SL X XSL=1:脱离睡眠模式SL=0:进入睡眠模式72us扩充功能设定0 0 0 0 1 1 X1REG 0RE=1:扩充指令集动作RE=0:基本指令集动作G=1 :绘图显示ONG=0 :绘图显示OFF72us设定IRAM地址或卷动地址0 0 0 1AC5AC4AC3AC2AC1ACSR=1:AC5—AC0为垂直卷动地址SR=0:AC3—AC0为ICON IRAM地址72us设定绘图RAM 地址0 0 1AC6AC5AC4AC3AC2AC1AC设定CGRAM地址到地址计数器(AC)72us备注:1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
LCD12864 液晶显示屏中文资料
![LCD12864 液晶显示屏中文资料](https://img.taocdn.com/s3/m/d4034dea4afe04a1b071de53.png)
将以上 16 位地址连续写入即可
备注:当 IC1 在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取 BF 标志时,BF 需为零,方可接受新的指令;
如果在送出一个指令前并不检查 BF 标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指
DB7
H/L
三态数据线
15
PSB
H/L
H:8 位或 4 位并口方式,L:串口方式(见注释 1)
16
NC
-
空脚
17 /RESET H/L
复位端,低电平有效(见注释 2)
18 VOUT
-
LCD 驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释 3)
20
K
VSS
背光源负端(见注释 3)
*注释 1:如在实际应用中仅使用串口通讯模式,可将 PSB 接固定低电平,也可以将模块上的 J8 和“GND”用焊锡短接。 *注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释 3:如背光和模块共用一个电源,可以将模块上的 JA、JK 用焊锡短接。
● 字型产生 RAM(CGRAM) 字型产生 RAM 提供图象定义(造字)功能, 可以提供四组 16×16 点的自定义图象空间,使用
者可以将内部字型没有提供的图象字型自行定义到 CGRAM 中,便可和 CGROM 中的定义一样地通过 DDRAM 显示在屏幕中。
● 地址计数器 AC 地址计数器是用来贮存 DDRAM/CGRAM 之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写 入 DDRAM/CGRAM 的值时,地址计数器的值就会自动加一,当 RS 为“0”时而 R/W 为“1”时,地址计数器的值会被读取到 DB6——DB0 中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓝屏LCD12864显示屏带中文字库带背光12864-5V ST7920需要用串口,请把R9上的0欧电阻改到R10带中文字库的,兰屏,白字以下是在液晶模块的第二行第一个字符的位置显示字母“A”的程序: ORG 0000HRS EQU P3.7;确定具体硬件的连接方式RW EQU P3.6 ;确定具体硬件的连接方式E EQU P3.5 ;确定具体硬件的连接方式MOV P1,#00000001B ;清屏并光标复位ACALL ENABLE;调用写入命令子程序MOV P1,#00111000B ;设置显示模式:8位2行5x7点阵ACALL ENABLE ;调用写入命令子程序MOV P1,#00001111B ;显示器开、光标开、光标允许闪烁ACALL ENABLE ;调用写入命令子程序MOV P1,#00000110B ;文字不动,光标自动右移ACALL ENABLE ;调用写入命令子程序MOV P1,#0C0H ;写入显示起始地址(第二行第一个位置)ACALL ENABLE ;调用写入命令子程序MOV P1,#01000001B ;字母A的代码SETB RS ;RS=1CLR RW ;RW=0 ;准备写入数据CLR E ;E=0 ;执行显示命令ACALL DELAY ;判断液晶模块是否忙?SETB E ;E=1 ;显示完成,程序停车AJMP $ENABLE:CLR RS ;写入控制命令的子程序CLR RWCLR EACALL DELAYSETB ERETDELAY:MOV P1,#0FFH ;判断液晶显示器是否忙的子程序CLR RSSETB RWCLR ENOPSETB EJB P1.7,DELAY ;如果P1.7为高电平表示忙就循环等待RETEND程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。
注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序DELAY,然后输入显示位置的地址0C0H,最后输入要显示的字符A的代码41H。
SMC1602A(16*2)模拟口线接线方式连接线图:---------------------------------------------------|LCM-----51 | LCM-----51 | LCM------51 |------------------------------------------------||DB0-----P1.0 | DB4-----P1.4 | RW-------P2.0 ||DB1-----P1.1 | DB5-----P1.5 | RS-------P2.1 ||DB2-----P1.2 | DB6-----P1.6 | E--------P2.2 ||DB3-----P1.3 | DB7-----P1.7 | VLCD接1K电阻到GND|---------------------------------------------------[注:AT89S52使用12M晶振]=============================================================*/#define LCM_RW P2_0 //定义引脚#define LCM_RS P2_1#define LCM_E P2_2#define LCM_Data P1#define Busy 0x80 //用于检测LCM状态字中的Busy标识#i nclude <at89x51.h>void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); void Delay5Ms(void);void Delay400Ms(void);unsigned char code uctech[] = {"uctech"};unsigned char code net[] = {""};void main(void){Delay400Ms(); //启动等待,等LCM讲入工作状态LCMInit(); //LCM初始化Delay5Ms(); //延时片刻(可不要)DisplayListChar(0, 5, uctech);DisplayListChar(0, 0, net);ReadDataLCM();//测试用句无意义while(1);}//写数据void WriteDataLCM(unsigned char WDLCM){ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //若晶振速度太高可以在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}//写指令void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}//读数据unsigned char ReadDataLCM(void){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);}//读状态unsigned char ReadStatusLCM(void){LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); //检测忙信号return(LCM_Data);}void LCMInit(void) //LCM初始化{LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号 WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0C,1); // 显示开及光标设置}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; // 算出指令码WriteCommandLCM(X, 0); //这里不检测忙信号,发送地址码WriteDataLCM(DData);}//按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) {unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>0x20) //若到达字串尾则退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符ListLength++;X++;}}}//5ms延时void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}//400ms延时void Delay400Ms(void){unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA--) {TempCycB=7269;while(TempCycB--); };。