当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

0123456789叫什么键?总结很全面速看!192*64点阵液晶黑白屏模块19264G-925-PN说明书及ST7525驱动

我开始制作0.5 ~ 30V的可调电源,因为发现的成品机箱大小,所以选择了这个屏幕。

晶联讯的屏

JLX19264G-925 图像型点阵液晶模块的特性

(1)192*64 点阵单色图片,或其它小于 192*64 点阵的单色图片;

(2)可选用 16*16 点阵或其他点阵的图片来自编汉字,按照 16*16 点阵汉字来计算可显示 12 字*4 行;

(3)按照 8*16 点阵汉字来计算可显示 24 字*4 行;

(4)按照 5*8 点阵汉字来计算可显示 32 字*8 行;

(5)可软件调对比度、正显/反显转换、行列扫描方向可改(可旋转 180 度使用)。

(6)接口简单:并行、串行、IIC 接口;

(7)采用 ST7525, 带背光,有3.3V、5V版本可选。

外形尺寸及接口引脚功能

模块的接口引脚功能:

电路框图

背光参数

正常工作电流为:48~120mA(LED 灯数共 6 颗);

工作电压:3.0V、5.0V

指令功能:

下表是“ST7525”IC 支持的指令:

CD:0:指令; 1:数据 W/R: 0:写; 1:读 D7~D0:有用的数据位; -:不必理会的

点阵与 DD RAM(显示数据存储器)地址的对应关系

请留意页的定义:PAGE,与平时所讲的“页”并不是一个意思,在此表示 ” 8 个行就是一个“页”,一个 192*64 点阵的屏分为 8 个“页”,从第 0“页”到第 7“页”。

DB7--DB0 的排列方向:数据是从下向上排列的。最低位 D0 是在最上面,最高位 D7 是在最下面。 每一位(bit)数据对应一个点阵,通常“1”代表点亮该点阵,“0”代表关掉该点阵.如下图所示:

程序举例:

液晶模块与 MCU(以 8051 系列单片机为例)接口图如下:

串行接口

程序

// JLX19264G-925-PN-S 驱动IC是ST7525 串行接口

#include <reg52.h>

#include <in;

#include <C;

sbit CS1=P0^5; /*对应LCD的CS引脚*/

sbit reset=P0^7; /*对应LCD的RST引脚*/

sbit rs=P0^6; /*对应LCD的RS引脚*/

sbit sclk=P2^2; //对应LCD的SCK(D0)

sbit sid=P2^3; //对应LCD的SDA(D1)

sbit key=P2^0;

#define DataBus P1

void delay_us(int i);

void delay(int i);

//写指令到LCD模块

void transfer_command(int data1)

{

char i;

cs1=0;

rs=0;

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

{

sclk=0;

if(data1&0x80) sid=1;

else sid=0;

sclk=1;

data1=data1<<=1;

}

cs1=1;

}

//写数据到LCD模块

void transfer_data(int data1)

{

char i;

cs1=0;

rs=1;

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

{

sclk=0;

if(data1&0x80) sid=1;

else sid=0;

sclk=1;

data1=data1<<=1;

}

cs1=1;

}

//延时1

void delay(int i)

{

int j,k;

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

for(k=0;k<110;k++);

}

void waitkey()

{

repeat:

if(key==1)goto repeat;

else delay(2500);

}

//LCD模块初始化

void initial_lcd()

{

reset=0; //低电平复位

delay(100);

reset=1; //复位完毕

delay(200);

transfer_command(0xe2); //软复位

delay(200);

transfer_command(0x2f); //打开内部升压

delay(200);

transfer_command(0xa0); //

transfer_command(0x81); //微调对比度

transfer_command(0x79); //微调对比度的值,可设置范围0x00~0xFF

transfer_command(0xeb); //1/9偏压比(bias)

transfer_command(0xc4); //行列扫描顺序:从上到下

transfer_command(0xaf); //开显示

}

void lcd_address(uchar page,uchar column)

{

column=column-1; //我们平常所说的第1列,在LCD驱动IC里是第0列。所以在这里减去1.

page=page-1;

transfer_command(0xb0+page); //设置页地址。每页是8行。一个画面的64行被分成8个页。我们平常所说的第1页,在LCD驱动IC里是第0页,所以在这里减去1

transfer_command(((column>>4)&0x0f)+0x10); //设置列地址的高4位

transfer_command(column&0x0f); //设置列地址的低4位

}

//全屏清屏

void clear_screen()

{

unsigned char i,j;

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

{

lcd_address(1+i,1);

for(j=0;j<192;j++)

{

transfer_data(0x00);

}

}

}

void display_graphic_192x64(uchar *dp)

{

uchar i,j;

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

{

lcd_address(i+1,1);

for(j=0;j<192;j++)

{

transfer_data(*dp);

dp++;

}

}

}

//==================display a piture of 128*64 dots================

void full_display(uchar data_left,uchar data_right)

{

int i,j;

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

{

lcd_address(i+1,1);

for(j=0;j<96;j++)

{

transfer_data(data_left);

transfer_data(data_right);

}

}

}

//显示32x32点阵图像、汉字、生僻字或32x32点阵的其他图标

void display_graphic_32x32(uchar page,uchar column,uchar *dp)

{

uchar i,j;

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

{

lcd_address(page+j,column);

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

{

transfer_data(*dp); //写数据到LCD,每写完一个8位的数据后列地址自动加1

dp++;

}

}

}

//显示16x16点阵图像、汉字、生僻字或16x16点阵的其他图标

void display_graphic_16x16(uchar page,uchar column,uchar *dp)

{

uchar i,j;

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

{

lcd_address(page+j,column);

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

{

transfer_data(*dp); //写数据到LCD,每写完一个8位的数据后列地址自动加1

dp++;

}

}

}

//写入一组16x16点阵的汉字字符串(字符串表格中需含有此字)

//括号里的参数:(页,列,汉字字符串)

void display_string_16x16(uchar page,uchar column,uchar reverse, uchar *text)

{

uchar i,j,k,data1;

uint address;

j = 0;

while(text[j] != '')

{

i=0;

address=1;

while(Chinese_text_16x16[i]> 0x7e )

{

if(Chinese_text_16x16[i] == text[j])

{

if(Chinese_text_16x16[i+1] == text[j+1])

{

address = i*16;

break;

}

}

i +=2;

}

if(column>191)

{

column =0;

page +=2;

}

if(address !=1)

{

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

{

lcd_address(page+k,column);

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

{

if(reverse==1) data1=~Chinese_code_16x16[address];

else data1=Chinese_code_16x16[address];

transfer_data(data1);

address++;

}

}

j +=2;

}

else

{

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

{

lcd_address(page+k,column);

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

{

if(reverse==0) transfer_data(0x00);

else transfer_data(0xff);

}

}

j++;

}

column +=16;

}

}

//显示8x16点阵图像、ASCII, 或8x16点阵的自造字符、其他图标

void display_graphic_8x16(uchar page,uchar column,uchar *dp)

{

uchar i,j;

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

{

lcd_address(page+j,column);

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

{

transfer_data(*dp); //写数据到LCD,每写完一个8位的数据后列地址自动加1

dp++;

}

}

}

//显示8x16的点阵的字符串,括号里的参数分别为(页,列,字符串指针)

void display_string_8x16_2(uchar page,uchar column,uchar reverse, uchar *text)

{

uchar data1;

uint i=0,j,k,n;

while(text[i]>0x00)

{

if((text[i]>=0x20)&&(text[i]<=0x7e))

{

j=text[i]-0x20;

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

{

lcd_address(page+n,column);

for(k=0;k<8;k++)

{

if(reverse==1) data1=~ascii_table_8x16[j][k+8*n];

else data1=ascii_table_8x16[j][k+8*n];

transfer_data(data1);

}

if(reverse==0) transfer_data(0x00);

else transfer_data(0xff);

}

i++;

column+=8;

}

else

i++;

if(column>127)

{

column=0;

page+=2;

}

}

}

void display_string_8x16(uint page,uint column,uchar *text)

{

uint i=0,j,k,n;

while(text[i]>0x00)

{

if((text[i]>=0x20)&&(text[i]<=0x7e))

{

j=text[i]-0x20;

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

{

lcd_address(page+n,column);

for(k=0;k<8;k++)

{

transfer_data(ascii_table_8x16[j][k+8*n]);//显示5x7的ASCII字到LCD上,y为页地址,x为列地址,最后为数据

}

}

i++;

column+=8;

}

else

i++;

}

}

//显示一串5x8点阵的字符串

//括号里的参数分别为(页,列,是否反显,数据指针)

void display_string_5x8(uint page,uint column,uchar reverse,uchar *text)

{

uchar i=0,j,k,data1;

while(text[i]>0x00)

{

if((text[i]>=0x20)&&(text[i]<=0x7e))

{

j=text[i]-0x20;

lcd_address(page,column);

for(k=0;k<5;k++)

{

if(reverse==1) data1=~ascii_table_5x8[j][k];

else data1=ascii_table_5x8[j][k];

transfer_data(data1);

}

if(reverse==1) transfer_data(0xff);

else transfer_data(0x00);

i++;

column+=6;

}

else

i++;

}

}

void display_string_5x8_1(uint page,uint column,uchar *text)

{

uint i=0,j,k;

while(text[i]>0x00)

{

if((text[i]>=0x20)&&(text[i]<0x7e))

{

j=text[i]-0x20;

lcd_address(page,column);

for(k=0;k<5;k++)

{

transfer_data(ascii_table_5x8[j][k]);//显示5x7的ASCII字到LCD上,y为页地址,x为列地址,最后为数据

}

i++;

column+=6;

}

else

i++;

}

}

void main(void)

{

while(1)

{

initial_lcd();

clear_screen(); //clear all dots

display_graphic_192x64(bmp2);

waitkey();

clear_screen(); //clear all dots

display_graphic_192x64(bmp1);

waitkey();

clear_screen(); //clear all dots

display_graphic_192x64(bmp3);

waitkey();

clear_screen(); //clear all dots

display_graphic_192x64(bmp6);

waitkey();

clear_screen(); //clear all dots

display_graphic_192x64(bmp5);

waitkey();

clear_screen();

display_string_5x8(1,1,1," MENU "); //显示5x8点阵的字符串,括号里的参数分别为(页,列,是否反显,数据指针)

display_string_5x8(3,1,0," Select>>>>");

display_string_5x8(3,100,1,"1.Graphic ");

display_string_5x8(4,100,0,"2.Chinese " );

display_string_5x8(5,100,0,"3.Movie ");

display_string_5x8(6,100,0,"4.Contrast ");

display_string_5x8(7,100,0,"5.Mirror ");

display_string_5x8(8,1,1," PRE USER DEL NEW ");

display_string_5x8(8,59,0," ");

display_string_5x8(8,94,0," ");

display_string_5x8(8,97+48,0," ");

waitkey();

clear_screen();

display_string_8x16_2(1,1,1,"--");

display_string_16x16(1,17,1,"→粉尘测试 ");

display_string_16x16(3,33,0,"一般测试");

display_string_16x16(5,33,0,"校准模式");

display_string_16x16(7,33,0,"充电模式 ↓");

waitkey();

clear_screen();

display_graphic_32x32(1,49,cheng1); //在第1页,第49列显示单个汉字"成"

display_graphic_32x32(1,89,gon); //在第1页,第49列显示单个汉字"成"

display_graphic_16x16(6,1,zhuang1); //在第5页,第1列显示单个汉字"状"

display_graphic_16x16(6,(1+16),tai1); //在第5页,第17列显示单个汉字"态"

// display_graphic_8x16(6,(1+16*2),mao_hao); //在第5页,第25列显示单个字符":"

display_graphic_16x16(6,(1+16*2+8),shi1); //在第5页,第41列显示单个汉字"使"

display_graphic_16x16(6,(1+16*3+8),yong1); //在第5页,第49列显示单个汉字"用"

display_graphic_8x16(6,(89),num0); //在第5页,第89列显示单个数字"0"

display_graphic_8x16(6,(89+8*1),num0); //在第5页,第97列显示单个数字"0"

display_graphic_8x16(6,(89+8*2),mao_hao); //在第5页,第105列显示单个字符":"

display_graphic_8x16(6,(89+8*3),num0); //在第5页,第113列显示单个数字"0"

display_graphic_8x16(6,(89+8*4),num0); //在第5页,第121列显示单个数字"0"

waitkey();

clear_screen(); //clear all dots

display_string_8x16(1,1,"(<"0123456abt~`!@#$%^">)");//在第1页,第1列显示字符串

display_string_8x16(3,1,"{[(<" '&*|\@#_-+=' ">)]}");//在第*页,第*列显示字符串

display_string_5x8_1(5,1,"[!#$%&'()*+,-./0123456789:;<=>?]");

display_string_5x8_1(6,1,"[ABCDEFGHIJKLMNOPQRSTUVWXYZabcd]");

display_string_5x8_1(7,1,"(abcdefghijklmnopqrstuvwxyzabcd)");

display_string_5x8_1(8,1,"{[(<" '&*|\@abcde012#_-+=' ">)]}");

waitkey();

full_display(0xff,0xff);

waitkey();

full_display(0x55,0xaa);

waitkey();

full_display(0xaa,0x55);

waitkey();

full_display(0xff,0x00);

waitkey();

full_display(0x00,0xff);

waitkey();

}

}

并行接口

并行程序与串行只是接口定义、写数据和命令不一样,其它都一样

并行程序:

#include <reg52.h>

#include <in;

sbit cs1=P3^2; //对应 LCD 的 CS

sbit reset=P3^1; //对应 LCD 的 RST

sbit rs=P3^0; //对应 LCD 的 RS

sbit e=P3^5; //对应 LCD 的 RD(E)

sbit wr=P3^4; //对应 LCD 的 WR

sbit key=P2^0; /*按键接口,P2.0 口与 GND 之间接一个按键*/

//写指令到 LCD 模块

void transfer_command(int data1)

{

cs1=0;

rs=0;

wr=0;

e=0;

P1=data1;

e=1;

e=0;

P1=0x00;

cs1=1;

}

//写数据到 LCD 模块

void transfer_data(int data1)

{

cs1=0;

rs=1;

wr=0;

e=0;

P1=data1;

e=1;

e=0;

P1=0x00;

cs1=1;

}

图 10.IIC 接口

IIC 程序与串、并行接口定义、写数据和命令不一样,取模代码是一样的

IIC 程序:

// 液晶演示程序 JLX19264G-925,IIC 接口!

// 驱动 IC 是:ST7525

#include <reg52.h>

#include <in;

sbit reset=P3^2; //对应 LCD 的 RST

sbit scl=P3^1; //对应 LCD 的 SCK(D0)

sbit sda=P3^0; //对应 LCD 的 SDA(D1)

sbit key=P2^0;

void delay_us(int i);

void delay(int i);

//延时 1

void delay(int i)

{

int j,k;

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

for(k=0;k<110;k++);

}

//延时 2

void delay_us(int i)

{

int j,k;

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

for(k=0;k<10;k++);

}

void waitkey()

{

repeat:

if(key==1)goto repeat;

else delay(400);

}

void transfer(int data1)

{

int i;

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

{

scl=0;

if(data1&0x80) sda=1;

else sda=0;

scl=1;

scl=0;

data1=data1<<1;

}

sda=0;

scl=1;

scl=0;

}

void start_flag()

{

scl=1; /*START FLAG*/

sda=1; /*START FLAG*/

sda=0; /*START FLAG*/

}

void stop_flag()

{

scl=1; /*STOP FLAG*/

sda=0; /*STOP FLAG*/

sda=1; /*STOP FLAG*/

}

//写命令到液晶显示模块

void transfer_command(uchar com)

{

start_flag();

transfer(0x7c);

transfer(com);

stop_flag();

}

字库文件C部分内容:

文件很长不方便全部列出,可自己按相同格式补齐

1.《0123456789叫什么键?总结很全面速看!192*64点阵液晶黑白屏模块19264G-925-PN说明书及ST7525驱动》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《0123456789叫什么键?总结很全面速看!192*64点阵液晶黑白屏模块19264G-925-PN说明书及ST7525驱动》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2248911.html

上一篇

10086怎么查短信套餐使用情况?终于找到答案了行程卡,短信查!

下一篇

029-95500是什么号码看这里!陕西保险业持续行动积极处理包茂高速铜川段重大交通事故善后工作

0123456789叫什么键

0123456789叫什么键

0123456789叫什么键相关介绍,很多朋友以为电视能画中画、可以上网播放片就是智能电视,其实不然~~不是所有电视都叫智能电视(借用特仑苏广告词!)所以说不少网友对智能电视的概念很是模糊,今天本人就来教大家辨认什么叫做智能电视! 技术定...

0123456789叫什么键?总结很全面速看!电脑键盘失灵怎么解决

0123456789叫什么键?总结很全面速看!电脑键盘失灵怎么解决

0123456789叫什么键相关介绍,一:键盘上的数字键盘坏了 这是很多新朋友会经常犯最低的错误,一般是一个桌面键盘,导致失败的数字小键盘(0123456789)键盘的大部分原因是我们关闭数字小键盘,你可以看到如果时键盘上的数字键打开,上...

0123456789叫什么键看这里!电脑键盘失灵怎么解决

0123456789叫什么键看这里!电脑键盘失灵怎么解决

0123456789叫什么键相关介绍,(9500.163.com) 一:键盘上的数字键盘坏了 这是很多新朋友会经常犯最低的错误,一般是一个桌面键盘,导致失败的数字小键盘(0123456789)键盘的大部分原因是我们关闭数字小键盘,你可以看...

0123456789叫什么键?终于找到答案了电脑键盘失灵怎么解决

0123456789叫什么键?终于找到答案了电脑键盘失灵怎么解决

0123456789叫什么键相关介绍,一:键盘上的数字键盘坏了 这是很多新朋友会经常犯最低的错误,一般是一个桌面键盘,导致失败的数字小键盘(0123456789)键盘的大部分原因是我们关闭数字小键盘,你可以看到如果时键盘上的数字键打开,上...

关于0123456789叫什么键,你需要知道这些电脑键盘失灵怎么解决

关于0123456789叫什么键,你需要知道这些电脑键盘失灵怎么解决

0123456789叫什么键相关介绍,一:键盘上的数字键盘坏了 这是很多新朋友会经常犯最低的错误,一般是一个桌面键盘,导致失败的数字小键盘(0123456789)键盘的大部分原因是我们关闭数字小键盘,你可以看到如果时键盘上的数字键打开,上...

0123456789叫什么键?我来告诉你答案干货 | 你应该了解的25个JS技巧

0123456789叫什么键?我来告诉你答案干货 | 你应该了解的25个JS技巧

0123456789叫什么键相关介绍,写代码的时候总有重复的东西。次数多了,你就会想找捷径。(代号伯纳德肖)。 这类问题中有很大一部分解决起来甚至连库都不用装。下面就是我多年来收集的前 25 个捷径和小技巧。 1. 类型检查小工具 Jav...

关于0123456789叫什么键,你需要知道这些干货 | 你应该了解的25个JS技巧

关于0123456789叫什么键,你需要知道这些干货 | 你应该了解的25个JS技巧

0123456789叫什么键相关介绍,写代码的时候总有重复的东西。次数多了,你就会想找捷径。(代号伯纳德肖)。 这类问题中有很大一部分解决起来甚至连库都不用装。下面就是我多年来收集的前 25 个捷径和小技巧。 1. 类型检查小工具 Jav...

0123456789叫什么键?我来告诉你答案电脑键盘失灵怎么解决

0123456789叫什么键?我来告诉你答案电脑键盘失灵怎么解决

0123456789叫什么键相关介绍,(9500.163.com) 一:键盘上的数字键盘坏了 这是很多新朋友会经常犯最低的错误,一般是一个桌面键盘,导致失败的数字小键盘(0123456789)键盘的大部分原因是我们关闭数字小键盘,你可以看...