当前位置:首页 » 图片素材 » 12864图片素材
扩展阅读
做个不爱说话的男人图片 2025-05-30 11:33:17

12864图片素材

发布时间: 2022-06-30 15:31:29

㈠ (51 单片机)关于 12864 区域 绘图,即 任意起始位置,绘任意太小的图片

下面论述的前提:LZ 得清楚,12864 实际上是 256*32 点,把后面的 一半 搬到 第三行、第四行进行显示的。(这也是为什么 反白显示 只能是 1、3同步、2、4同步的原因)
首先得了解 绘图区 的结构:12864 这个屏的 绘图区,分有 16大列,每大列 有 16小列(点),16*16=256,于是 它分成了 前 8大列 放在 第一、二行,后8 大列放在 第三、四行。告诉你这个结构,是想说:12864 的绘图区,是以 大列(16小列) 为单位进行 数据输入 显示的。现在来说题目:
1、从 0,0开始,这个最简单,由于从原点开始,可以直接输入数据。但要注意:
①输入的 横向长度,必须是 大列(16点)的整数倍,也就是说,你输入的数据,必须是 2Byte 的整数倍。如不足 长度,应自行补充。比如输入的 图片长度 为 35×16,横向35,不是 16的整数倍,那么输完 前面的 32 点后,横向还有 3个点,要补0 扩展成 16位 再输入。也就是说,你补充了0(图片显示为空白)后,实际数据为 48×16。
②因12864 不支持 自动换行,数据输入时,要自行在 图片 横向结束时,进行换行(不是 12864 的四个行,而是每个 小点行)。
2,不从 0,0开始,这个比较繁琐。如果 起点的 横坐标的是 16的整数倍,可以直接通过 绘图 大列定位。如果起点坐标不是 16 的整数倍,那么要 先在图片每横向数据 的前面进行 填0 补充,虚构一个 16的整数倍。比如,起点在 18,0,那就需要在前面补 2个0,虚构起点在 16,0 的位置。这只是困难的开头,2个0 补充在数据头后,数据的低 2位就得 往 下一个数据 推了。这就是 连续数据 移位,一直移动到 横向长度 的结尾,再根据 LZ 上一个问题的方法处理结尾。连续数据 移位,比如:11100001 ,00011110,01111000,10000111,连续右移2位后,是 00111000,01000111,10011110,00100001, 11(000000,00000000),括号部分为12864补充 的长度,让数据为 16点 的整数倍。
1-1,图片尺寸不足 12864,就会导致其他区域数据的不定性(为上次图片的遗留),如果只需这个图片,那就应该在 绘图之前,进行 绘图区清0,也就是 输入 12864 点 的 0数据。
1-2,下半屏的坐标,参考 了解的 屏结构。

㈡ 12864的工作原理是什么谁能详细说明下

12864是属于LCD 液晶显示的,LCD是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。

12864就是利用这样的原理实现字符与图片的显示的。但是单纯的液晶屏仅仅指那两片玻璃屏,不容易操作,所以一般都会加上驱动IC。

下面我以图片详细像你说明:

大体就是这样了。

㈢ 带字库的12864LCD如何同时显示图片与文字

上广州锐显的网站看看吧,他们有例程,可以问客服要

㈣ 12864如何显示动画啊

动画其实是图片的显示。存若干张图片,循环显示图片即可。

㈤ image2Lcd软件生成12864液晶屏所需图片代码的方法,就是怎么设置才能生成数组为1024的图片库。

用一些裁剪软件将图片裁剪成(128:64也就是2:1)的形式,保存位JPG格式,用IMAGE2LCD打开就号了,生成的16进制c文件数组要去掉前6位。

㈥ stm32驱动12864显示图片,程序下载进去后,怎么要过一段时间才显示出来

12864属于点阵式液晶,需要将屏幕上每一个点都刷完才能显示一帧图片(其实图片对于点阵式液晶来说也就是一个超大的表示点阵数据的数组),而12864的控制器刷屏幕的速度不够高,因此需要等一段时间才能显示出来,这一点你可以用示波器观察下12864的行同步信号,是比较慢的。

㈦ 12864显示64*128的图片,里面取模完了的一个数组,为什么是十六进制的12864只有显示和

你好:
首先你没搞懂二进制和十六进制的换算,0xff表示11111111,这样就表示全都要显示,0xfe表示11111110,这样只有最低位处不显示其他都显示。
具体换算算法在这里讲不清楚,你去网络文库搜索一下。
用十六进制的原因是这样表示更方便,4个字符的格子能显示8个字符格子的数据;其次是12864液晶成像原理,它不是一位数据一位数据往上写,而是两字节两字节的往上写,所以这样的程序具有更高的可读性,而不是要去花很多时间去看二进制数据。
希望我的回答能帮助到你。

㈧ c51单片机控制12864程序(c语言),显示几个字,或一些简单的图片就行!先谢谢了!

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit CS=P2^5; //片选信号
sbit SID=P2^6; //数据信号
sbit SCLK=P2^7; //时钟信号
sbit RST=P2^2; //复位信号
sbit CH = P2^4; //并行、串行选择信号
/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。
* 输入 : t
* 输出 : 无
***********************************************************************/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0; i<t; i++)
for(j=0; j<10; j++);
}
/********************************************************************
* 名称 : sendbyte()
* 功能 : 按照液晶的串口通信协议,发送数据
* 输入 : zdata
* 输出 : 无
***********************************************************************/
void sendbyte(unsigned char zdata)
{
unsigned int i;
for(i=0; i<8; i++)
{
if((zdata << i) & 0x80)
{
SID = 1;
}
else
{
SID = 0;
}
SCLK = 0;
SCLK = 1;
}
}
/********************************************************************
* 名称 : write_com()
* 功能 : 写串口指令
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void write_com(unsigned char cmdcode)
{
CS = 1;
sendbyte(0xf8);
sendbyte(cmdcode & 0xf0);
sendbyte((cmdcode << 4) & 0xf0);
delay(2);
}
/********************************************************************
* 名称 : write_data()
* 功能 : 写串口指令
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void write_data(unsigned char Dispdata)
{
CS = 1;
sendbyte(0xfa);
sendbyte(Dispdata & 0xf0);
sendbyte((Dispdata << 4) & 0xf0);
delay(2);
}
/********************************************************************
* 名称 : lcdinit()
* 功能 : 初始化函数
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void lcdinit()
{
RST = 0;
delay(100);
RST = 1;
delay(20000);
write_com(0x30);
delay(50);
write_com(0x0c);
delay(50);
}
/********************************************************************
* 名称 : hzkdis()
* 功能 : 显示字符串
* 输入 : *s
* 输出 : 无
***********************************************************************/
void hzkdis(unsigned char code *s)
{
while(*s > 0)
{
write_data(*s);
s++;
delay(50);
}
}
/********************************************************************
* 名称 : Test()
* 功能 : 显示子函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Test()
{
write_com(0x03);
delay(50);
write_com(0x81);
hzkdis(" HOT-51");
write_com(0x91);
hzkdis("单片机开发板");
write_com(0x89);
hzkdis(" ");
write_com(0x98);
hzkdis(" 东流电子");
}

/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main()
{
CH = 0;
delay(1);
lcdinit();
delay(10);
while(1)
{
Test();
delay(5000);
}
}