导航:首页 > 免费软件 > 12864图片取模软件

12864图片取模软件

发布时间:2022-09-02 09:28:19

㈠ 为什么12864取模软件字体大小选小四,生成字的则为20*20的点阵

你好: 注意你发的图中的一句话“汉字库:宋体16.dot,横向取模左高位...”,这个就是汉字点阵的参数,你要根据LCD的显示原理来正确取模,数据才正确,比如,LCD显示一个汉字是从右到左显示点阵数据,而你取从左到右的数据就会相反显示汉字。

㈡ 急!重金!谁有12864带字库的液晶的图片取模软件麻烦发给我一个,谢谢了。

广州锐显 ,他们下载页面有。你自己搜搜吧

㈢ 谁有51单片机12864液晶的图片制作取模软件

51单片机12864液晶的图片制作取模软件

㈣ 如何把图片取模后的数组运用到程序中

你下一个12864取模软件,
然后用普通的修改照片的工具就可以修改分辨率了(addse或者PS都可以),
将图片分辨率修改为128:64然后保存为BMP文件,用取模软件加载,得到图模。然后用画图程序显示OK

㈤ 怎样用12864液晶显示屏画实时曲线

一. 显示图片

显示图片的要点在于:1.取模 2.利用扩展指令设置液晶3.清楚液晶地址的概念
1.1取模
取模软件用的是“字模221”下图是他的参数设置

这里对参数设置先解释一下,所谓横向取模就是,一张图片从图片最左上角的8位开始取模,从左向右,每次取8位二进制数据转化为16进制保存,第一排取完之后,接着到第二排最左边8位开始取模,以此类推。为什么要这样取模呢?因为12864液晶的横纵坐标就是这个取模顺序,这点在之后还会详细提到。
1.2液晶的设置
液晶显示图片必须用扩充指令集,初始化和显示字符的初始化不一样。我用的初始化函数如下:

void init_picture()//显示图片的初始化函数
{
lcd_wcmd(0x36);//写指令函数,扩充指令集,绘图G=1打开
lcd_wcmd(0x36);
lcd_wcmd(0x3E);
lcd_wcmd(0x01);//清屏
Light= 0;//打开背光
}
1.3将取出的字模写进相应地址
首先应该知道地址究竟是怎样的,结合下图讲清楚。12864液晶分为半屏和下半屏。当你想要点亮某个地方时,必须先写这个地方的垂直地址紧接着写入它的水平地址,水平地址液晶可以自动加1,而垂直地址不会。图中水平坐标从0x80+00到0x80+0F,一共16个,其中0x80+00到0x80+07是上半屏的坐标,其中0x80+08到0x80+0F是下半屏的坐标。水平坐标每个两字节,先写入的数据填充在高字节。垂直坐标只有0x80+00到0x80+1F,图中上半截0x80+00到0x80+1F是上半屏的垂直地址,另外的那部分一样的是下半屏垂直地址。每个垂直地址只确定一排,所以水平和垂直地址不能确定某个点的位置,只能确定某个两字节的位置,通过写进2字节数据确定点亮某个点或几个点。比如我们写入lcd_wcmd(0x81;(垂直地址)lcd_wcmd(0x80)(水平地址); 这就是说我们将在图中水平坐标00,垂直坐标01的位置(红圈处)输入数据。

知道地址的知识之后就明白为什么要横向取模了,接下来只要将取模的数据一个个按取模生成的顺序写进液晶就行了。下面是我用的代码,其中uchar=unsignedchar,uint=unsigned int。
void show_Pic(uchar*address)//显示图片函数
{ //address是是指向数组的指针,用法:show_Pic(XY)当中XY为数组名
uchari,j;
for(i=0;i<32;i++) //上半屏的32排依次先写满
{
lcd_wcmd(0x80+i);//先送垂直地址
lcd_wcmd(0x80); //再送水平地址,水平地址可自加1
for(j=0;j<16;j++)//每排128个点,所以一共要16个两位16进制数(也就是8位二进制数)才能全部控制
{
lcd_wdat(*address);
address++;
}
}
for(i=0;i<32;i++) //下半屏的32排操作原理和上半屏一样
{
lcd_wcmd(0x80+i);
lcd_wcmd(0x88);
for(j=0;j<16;j++)
{
lcd_wdat(*address);
address++;
}
}
}
1.4实际显示结果
下图是我显示的一个坐标系和一条龙

下面的代码是我的主函数,这部分加上上面我上面讲的函数和一些基本设置就是整个代码,XY是这幅坐标图片取模得到的数组

void main()
{
init_picture();
文章原创来于12864:http://www.hzjingxian.com
show_Pic(XY);
while(1) //进入程序主循环
{
}
}
二. 用打点方式显示任意图像
有的同学认为打点只需按照上面的显示图片的方法点亮需要的点就是了,其实这不行。因为你写进去的是八个点的控制,会影响周围的点,很容易出现乱码。比如,你写进去的是0x80,x想的是只点亮左边一个点,其他的都不要影响,但是右边的7个0也是会显示的,如果在要显示0的地方原来显示的是1的话,你现在写进去的0就把1覆盖了,这样就容易产生乱码。所以我建议,你先把液晶的数据读出来,再用data&=(~(0x01<<(7-bit)))(bit是你点亮哪一位,data是读出来的数据)置0,置1也是类似的,最后再把data重新写进去就行了。
我的单片机接口是乱的,所以每一个液晶接口都用了位定义,并且用到了寄存器B,寄存器B的每一个当做一个变量的位来操作。我的具体代码如下:

bit lcd_busy() // 读写判断数据的D7读写位,用于判断1602是否忙
{
bitresult;
D7 =1; //数据口D7置1,为读状态做准备
LCD_RS = 0; // 选择指令寄存
LCD_RW = 1; // 选择读控制线
LCD_EN = 1; // 开使能控制线
delayNOP(); // 时序延时
result = D7; // 读D7的电平
LCD_EN = 0; // 关使能
return(result); // 返回值1:忙,0可以执行操作
}
unsigned charreadData(void) //读取数据函数
{
uchar i;
D0 = 1; D1 = 1; D2 = 1; D3 = 1;
D4 = 1; D5 = 1; D6 = 1; D7 = 1;
lcd_busy();
LCD_RS=1; LCD_RW=1;
LCD_EN=0; LCD_EN=1;
B_0=D0;B_1=D1; B_2=D2; B_3=D3;//B_1=B^1,在程序前段有位定义
B_4=D4;B_5=D5; B_6=D6;B_7=D7;
for(i=1;i<=7;i++)
delayNOP();//这个函数是{_nop_();_nop_();_nop_();_nop_();};
LCD_EN=0;
returnB;
}
uchar DrawDots(uchar x,uchar y,ucharcolor)//打点函数
{
ucharrow,xlabel,xlabel_bit;
uchar Read_H=0,Read_L=0;
lcd_wcmd(0x34); //扩充指令
lcd_wcmd(0x36); //绘图指令
xlabel=x>>4; //去16*16首地址
xlabel_bit=x & 0x0F;
if(y<32) row=y;
else
{
row=y-32;
xlabel+=8;
}
lcd_wcmd(row+0x80);
lcd_wcmd(xlabel+0x80);
readData();
Read_H=readData();
Read_L=readData();

lcd_wcmd(row+0x80);
lcd_wcmd(xlabel+0x80);

if(xlabel_bit<8)
{
switch(color)
{
case 0:Read_H&=(~(0x01<<(7-xlabel_bit))); break; //变暗,看不见
case 1:Read_H |=(0x01<<(7-xlabel_bit));break; //变亮 ,看得见
case 2:Read_H ^=(0x01<<(7-xlabel_bit));break; //反转
default:break;
}
lcd_wdat(Read_H);
lcd_wdat(Read_L);
}
else
{
switch(color)
{
case 0:Read_L&=(~(0x01<<(15-xlabel_bit))); break; //变暗 ,看不见
case 1:Read_L |=(0x01<<(15-xlabel_bit));break; //变亮 ,看得见
case 2:Read_L ^=(0x01<<(15-xlabel_bit));break; //反转
default:break;
}
lcd_wdat(Read_H);
lcd_wdat(Read_L);
}
lcd_wcmd(0x30);//恢复正常模式
}
如果你的单片机和12864接口不是乱的,那可以这样写读取函数
unsigned charreadData(void)
{
uchar i ,data;
P0=0xFF;
lcd_busy();
LCD_RS=1; LCD_RW=1;//
LCD_EN=0; LCD_EN=1;
data=P0;
for(i=1;i<=7;i++)
delayNOP();
LCD_EN=0;
returndata;
}
这样,整个代码就全部讲完了,下面是显示正弦波的图片

㈥ 关于12864字模软件取模问题

你好:
注意你发的图中的一句话“汉字库:宋体16.dot,横向取模左高位...”,这个就是汉字点阵的参数,你要根据LCD的显示原理来正确取模,数据才正确,比如,LCD显示一个汉字是从右到左显示点阵数据,而你取从左到右的数据就会相反显示汉字。
希望我的回答能帮助到你。

㈦ 图形取模软件怎么用,为什么我取出来的点位数不够

你下一个12864取模,
然后用普通的修改照片的工具就可以修改分辨率了(addse或者PS都可以),
将图片分辨率修改为128:64然后保存为BMP文件,用取模加载,得到图模。然后用画图程序显示OK

㈧ 我现在做一个项目,用的液晶是12864的,现在想显示这个箭头“▶”,不知道这个箭头的代码怎么生成呢

这个得用图片方式取模取出来了。字库里面不带这个符号的
你可以搜搜广州锐显,上面有取模软件。他们的12864液晶也不错。

㈨ 单片机怎么用12864显示16X32字体

单片机用12864显示16X32字体的方法是图像取模:
1、首先先去下载取模软件,下载完成点击打开取模软件。
2、在菜单栏点击模式然后选择图形模式。
3、现在就可以点击打开图片文件,要注意的是取模之前要把图片转换为bmp格式,选择图片点击打开进行添加。
4、现在点击选项,进行参数设置。
5、根据下图进行设置字模格式,设置完成点击确定。
6、点击下面的生成字模就可以获得代码了,点击将代码复制到程序,就可以了。

阅读全文

与12864图片取模软件相关的资料

热点内容
电脑上怎么下载班智达的软件 浏览:1094
无痕迹消除图片软件 浏览:671
免费小票软件 浏览:903
华为在哪里设置软件停止运行 浏览:909
用电脑键盘调节声音大小 浏览:1215
自动刷软件赚钱 浏览:1212
古装连续剧免费版 浏览:1371
工免费漫画 浏览:1105
手机软件专门储存文件 浏览:1464
uos如何用命令安装软件 浏览:1252
有线耳机插电脑麦克风 浏览:609
侏罗纪世界3在线观看完整免费 浏览:952
单个软件怎么设置名称 浏览:676
凤凰网电脑版下载视频怎么下载视频怎么下载 浏览:1334
明白之后如何免费获得无人机 浏览:783
如何解禁软件菜单 浏览:788
副路由器连接电脑视频 浏览:1308
内置wifi电视如何装软件 浏览:1044
手机换零免费雪碧 浏览:1542
国行苹果如何下载美版软件 浏览:1150