在12864液晶上显示任何图像


一,所需软件:

  Any to Icon在12864液晶上显示任何图像

  作用:用来把随意彩图,转化成黑白2色图。

windows画图软件在12864液晶上显示任何图像

  作用:用来编辑DIY2色图片,并可改属性改成128X64像素

字模提取软件在12864液晶上显示任何图像
 作用:把128X64像素的图片,生成编程所需要的十六进制代码。

 

二,自己完全DIY一副图画(就像在一张白纸上画自己想画的),或修改一副2色的BMP图,然后在让它在液晶上显示。

步骤如下:

1,双击打开windows画图软件

2,点击 图像->属性,设置如下,确定

在12864液晶上显示任何图像

3.点击 查看-> 缩放-> 自定义

  选择缩放到600%,确定

4.点击 查看-> 缩放-> 显示网格

在12864液晶上显示任何图像

5.通过画图工具可在网格内自己写字和画图

在12864液晶上显示任何图像

6.如果已有一幅2色的BMP图,但不是128X64,用同样方法把图用画图软件打开,放大,加上网格,再进行编辑

在12864液晶上显示任何图像

编辑成自己想要的,

在12864液晶上显示任何图像

7.保存,退出画图。

8.双击打开取字模软件软件,点击“打开图像图标”按钮

在12864液晶上显示任何图像

9.点击‘参数设置’->其他选项,设置如下,

在12864液晶上显示任何图像

10.取模方式用C51格式,把点阵生成区的代码复制到程序中即可。

如果是彩图,先用Any to Icon软件转化成2色黑白图,重复以上步骤即可。

 

C语言代码:

#include<AT89X52.h>
#include<intrins.h>

#define uint unsigned int
#define uchar unsigned char
#define lcddata P0               //宏定义lcddata为P0口数据

sbit rs=P2^0;      //定义数据,命令端
sbit rw=P2^1;      //定义读写端
sbit e=P2^2;      //定义使能端
sbit busy=P0^7;

uchar code tab[]=
{
 
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x40,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x40,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0xC2,0x40,
0x00,0x00,0x00,0x06,0x30,0x01,0xE0,0x00,0x00,0x2A,0x00,0x00,0xD8,0x01,0xC6,0x40,
0x00,0x00,0x00,0x0F,0x7B,0x63,0xE0,0x00,0x00,0x22,0x00,0x01,0x24,0x00,0x04,0x40,
0x00,0x00,0x00,0x0F,0xFB,0x63,0x07,0x34,0x00,0x14,0x00,0x01,0x04,0x00,0x08,0xF8,
0x00,0x00,0x00,0x0D,0xDB,0x63,0x01,0xBC,0x00,0x08,0x00,0x00,0x88,0x00,0x1F,0x40,
0x00,0x04,0x00,0x0C,0x1B,0x63,0x07,0xB0,0x00,0x00,0x00,0x00,0x50,0x00,0x30,0x40,
0x00,0x06,0x00,0x0C,0x1B,0x63,0xED,0xB0,0xDB,0x00,0x01,0x00,0x20,0x00,0x00,0x40,
0x00,0x02,0x00,0x0C,0x19,0xE1,0xE7,0xB0,0xDB,0x00,0x02,0x00,0x00,0x00,0x00,0x40,
0x00,0x02,0x00,0x0C,0x19,0xE1,0xE7,0xB0,0xDB,0x00,0x02,0x00,0x00,0x00,0x00,0x40,
0x00,0x02,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x42,
0x00,0x02,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x03,0xFF,0xFE,
0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x00,0x00,0x00,0x40,
0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0A,0x80,0x00,0x00,0x40,
0x00,0x02,0x20,0x00,0x00,0x0A,0x00,0x00,0xFF,0xF8,0xE0,0x05,0x00,0x00,0x00,0x40,
0x00,0x82,0x20,0x06,0xC0,0x15,0x00,0x1F,0xFF,0xFF,0xC0,0x02,0x00,0x00,0x00,0x40,
0x00,0x82,0x30,0x09,0x20,0x11,0x00,0xFB,0xFF,0xE1,0xF8,0x00,0x00,0x00,0x00,0x40,
0x01,0x82,0x10,0x08,0x20,0x0A,0x03,0x9F,0x00,0x9E,0x3E,0x00,0x00,0x00,0x00,0x40,
0x01,0x02,0x10,0x04,0x40,0x04,0x0E,0x70,0x00,0x81,0xC7,0x80,0x01,0x40,0x00,0x40,
0x01,0x02,0x08,0x02,0x80,0x00,0x1D,0x80,0x00,0xE0,0x61,0xE0,0x02,0xA0,0x00,0x40,
0x02,0x02,0x08,0x01,0x00,0x00,0x77,0x9F,0xFC,0xF0,0x18,0xF8,0x02,0x20,0x00,0x40,
0x06,0x02,0x08,0x00,0x00,0x01,0xDF,0x00,0x00,0xF3,0x0C,0x3C,0x01,0x40,0x00,0x00,
0x0C,0x06,0x0C,0x00,0x00,0x03,0x9E,0x00,0x00,0xF8,0x06,0x1E,0x00,0x80,0x00,0x00,
0x00,0x44,0x04,0x00,0x00,0x07,0x0E,0x30,0x01,0xFC,0x7F,0x07,0x00,0x00,0x00,0x00,
0x00,0x6C,0x06,0x00,0x00,0x07,0x0E,0x30,0x01,0xFC,0x7F,0x07,0x00,0x00,0x00,0x00,
0x00,0x38,0x03,0x00,0x00,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0x83,0xC0,0x00,0x00,0x00,
0x00,0x18,0x00,0x00,0x0F,0xFD,0xFF,0xFF,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x78,0x00,
0x00,0x00,0x00,0x00,0x3F,0x81,0xFF,0x00,0x00,0x00,0x00,0x1F,0xF0,0x00,0x48,0x00,
0x00,0x00,0x00,0x00,0xFE,0xF0,0x00,0x00,0x01,0x00,0x00,0xC0,0x1C,0x00,0x44,0x00,
0x00,0x03,0x00,0x03,0xC0,0x07,0x80,0x00,0x03,0xE2,0x07,0x00,0x1C,0x00,0x46,0x00,
0x00,0x06,0x00,0x03,0x80,0x03,0x40,0x00,0x03,0xE0,0x0C,0x00,0x0E,0x00,0x42,0x00,
0x00,0x1C,0x00,0x07,0x00,0x00,0xC0,0x00,0x00,0x20,0x18,0x00,0x07,0x00,0x42,0x00,
0x00,0xF0,0x00,0x09,0x01,0x80,0x60,0x00,0x00,0x20,0x73,0x9F,0x03,0x80,0x42,0x00,
0x00,0x10,0x00,0x1E,0x0F,0xF2,0x20,0x00,0x00,0x20,0x67,0xFF,0xC1,0xC0,0x46,0x00,
0x00,0x10,0x00,0x1E,0x1F,0xF9,0x30,0x00,0x00,0x20,0xEF,0xFF,0xE0,0xE0,0x7C,0x00,
0x03,0xFC,0x00,0x38,0x3F,0xFC,0x90,0x00,0x00,0x20,0xCB,0xFF,0xF9,0xF0,0xFF,0x00,
0x00,0x10,0x00,0x7F,0x7F,0xFE,0x10,0x00,0x00,0x20,0xDB,0xFF,0xFF,0xF0,0x41,0xC0,
0x00,0x10,0x00,0x6E,0xF9,0xBF,0x10,0x00,0x00,0x20,0xF7,0xED,0xFF,0xF0,0x40,0x60,
0x00,0x11,0x00,0x7C,0xFC,0x3F,0x10,0x00,0x00,0x20,0x67,0xE1,0xFD,0xE0,0x40,0x30,
0x03,0xFF,0x00,0x7C,0xFC,0x3F,0x10,0x00,0x00,0x20,0x67,0xE1,0xFD,0xE0,0xC0,0x10,
0x00,0x10,0x00,0x38,0xFC,0x3F,0x18,0x00,0x00,0x20,0x87,0xE0,0xFD,0xC0,0x80,0x08,
0x00,0x20,0x00,0x38,0xF1,0x8F,0x18,0x00,0x1F,0xE7,0x87,0x9C,0x7D,0xC0,0x80,0x08,
0x00,0x60,0x00,0x1C,0xFE,0x1F,0x81,0xFF,0xFF,0xC0,0x0F,0xE0,0xFF,0x80,0x80,0x04,
0x00,0x40,0x00,0x0C,0xFC,0x3F,0x80,0x00,0x00,0x00,0x0F,0xE1,0xF8,0x00,0x80,0x04,
0x01,0x80,0x00,0x00,0xF9,0xBF,0xE0,0x00,0x00,0x00,0x03,0xEC,0xF6,0x01,0x80,0x0C,
0x01,0xC3,0x00,0x00,0xF9,0xBF,0x00,0x00,0x00,0x00,0x00,0xFF,0xCC,0x01,0x80,0x18,
0x00,0x3F,0x80,0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x81,0xF0,
0x00,0x00,0xC0,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

 


};



void delaynms(uint aa)
{
  uchar bb;
  while(aa--)
  {
   for(bb=0;bb<115;bb++)     //1ms基准延时程序
   {
    ;
   }
  }
 
}



void busy_lcd(void)
{
   busy=1;      //把忙标志位置1
   e=0;       //把使能端置0
   rs=0;      //把rs端置0,为指令操作
   rw=1;      //为读操作
   e=1;       //拉高使能端
   _nop_();      //等待
   while(busy==1);    //检测忙标志位,
   e=0;       //忙标志位为0,则把使能拉低

}



void wr_i_lcd(comm)
{
  busy_lcd();      //忙标志检测
  rs=0;        //指令操作
  rw=0;        //写入操作
  e=1;        //拉高使能端
  lcddata=comm;      //放上数据
  _nop_();       //等待
  e=0;        //拉低使能端,数据写入液晶
}



void wr_d_lcd(dat)
{
  busy_lcd();      //忙标志检测
  rs=1;        //数据操作
  rw=0;        //写入操作
  e=1;        //拉高使能端
  lcddata=dat;      //放上数据
  _nop_();       //等待
  e=0;        //拉低使能端,数据写入液晶
}


void init_lcd(void)
{
  wr_i_lcd(0x30);  //基本指令集
  delaynms(1);   //等待
  wr_i_lcd(0x30);  //再设置一次为基本指令集,因为ST7920中有2个寄存器用来设置使用哪个指令集
  delaynms(1);   //等待
  wr_i_lcd(0x0c);  //开显示,关游标,关游标位置
  delaynms(1);   //等待
  wr_i_lcd(0x01);  //清屏,地址指针指向00H
  delaynms(20);   //等待>10ms
  wr_i_lcd(0x06);  //光标右移,整体不移
}

 



void img_disp(uchar code *img)
{
  uchar i,j;
  for(j=0;j<32;j++)
  {
   for(i=0;i<8;i++)
 {
   wr_i_lcd(0x34);       //扩充指令集,关绘图
   wr_i_lcd(0x80+j);    //先将垂直坐标(Y)写入绘图RAM地址
   wr_i_lcd(0x80+i);    //再将水平坐标(X)写入绘图RAM地址
   wr_i_lcd(0x30);    //打开基本指令集
   wr_d_lcd(img[j*16+i*2]);  //将D15--D8写入到RAM,
   wr_d_lcd(img[j*16+i*2+1]);   //将D7--D0写入到RAM
 }
  }
  for(j=32;j<64;j++)    //下半屏
  {
   for(i=0;i<8;i++)
 {
   wr_i_lcd(0x34);       //扩充指令集,关绘图
   wr_i_lcd(0x80+j-32);    //先将垂直坐标(Y)写入绘图RAM地址
   wr_i_lcd(0x88+i);    //再将水平坐标(X)写入绘图RAM地址
   wr_i_lcd(0x30);    //打开基本指令集
   wr_d_lcd(img[j*16+i*2]);  //将D15--D8写入到RAM,
   wr_d_lcd(img[j*16+i*2+1]);   //将D7--D0写入到RAM
 }
  }
  wr_i_lcd(0x36);                //打开绘图显示

}



void main(void)
{
  while(1)
  {
    init_lcd();     //初始化
     img_disp(tab);    //显示图像
     delaynms(1000);
 
  }
 
}

 

 

 

 

 


  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32驱动12864 COG液晶显示器主要通过以下几个步骤完成: 1. 硬件连接:首先,将液晶显示器与STM32微控制器进行连接。通常,液晶显示器有16位并行接口,需要将其接到STM32的相应引脚上。此外,还需将液晶显示器的其他引脚(如控制引脚和电源引脚)连接到STM32上。 2. 初始化:通过编程设置STM32的GPIO引脚模式和状态,以使其能够与液晶显示器进行通信。该步骤包括设置数据线的输入/输出方向,选择字体和显示模式,以及调整亮度和对比度等参数。 3. 编写驱动程序:通过编写适当的驱动程序,将数据和命令通过STM32发送到液晶显示器。驱动程序应包括写入像素的功能,以及设置显示区域、光标位置和图形等的功能。 4. 显示数据:将要显示的数据写入到液晶显示器的内部RAM中。通过驱动程序,在特定的像素位置上写入1或0,以显示相应的图像或字符。 5. 刷新显示:在更新完整个显示区域的数据后,需要进行刷新操作以使数据在液晶显示器上呈现出来。通过驱动程序发送刷新命令,触发液晶显示器对其内部RAM中的数据进行更新。 在编写完以上驱动程序后,通过调用相关函数和设置适当的参数,可以实现STM32驱动12864 COG液晶显示器的基本功能,如显示字符、图形和动画等。此外,还可以通过添加更多的功能和优化算法来优化液晶显示的性能和效果。 ### 回答2: STM32驱动12864 COG液晶显示可以通过以下步骤完成: 1. 硬件连接:将液晶显示器的引脚与STM32微控制器连接。液晶显示器有64行和128列。需要连接R/W引脚,用于读写操作;E引脚,用于使能液晶显示器;RS引脚,用于选择指令或数据;以及数据引脚D0至D7,用于传输数据和指令。 2. 初始化GPIO:使用STM32的GPIO库初始化所需引脚。根据液晶显示器的数据手册,为每个引脚设置正确的模式和速度。 3. 编写液晶显示器驱动程序:根据液晶显示器的工作方式,编写能够向液晶显示器发送指令和数据的驱动程序。这包括控制指令和数据的传输,清除和设置显示的特定功能,以及处理液晶显示器的光栅。 4. 编写应用程序:在主函数中编写应用程序,通过驱动程序向液晶显示器发送所需的指令和数据。这可以包括显示文本或图像,设置光标位置,滚动显示等操作。 5. 编译和烧录:使用STM32的开发环境,将代码编译成可执行文件,并将其烧录到STM32微控制器中。 6. 调试和测试:使用串口或其他方式输出调试信息,并观察液晶显示器是否正确显示预期的内容。如果存在问题,可以根据调试信息进行相应的调整和修复。 综上所述,通过硬件连接、初始化GPIO、编写液晶显示器驱动程序、编写应用程序、编译和烧录、调试和测试等步骤,就可以实现STM32驱动12864 COG液晶显示。 ### 回答3: STM32是一款广泛应用于嵌入式系统的微控制器,它具有高性能、低功耗和丰富的外设资源。要驱动12864 COG液晶显示,需要了解液晶显示的工作原理和STM32的驱动方式。 首先,液晶显示是一种基于液晶分子对光的电光效应的显示技术。12864表示该液晶显示屏分辨率为128行64列。COG是Chip-on-Glass的缩写,意味着驱动芯片直接集成在玻璃基板上,减少了外部芯片数量,提高了集成度。 为了驱动液晶显示, 我们首先需要了解液晶显示的接口类型,12864 COG液晶通常采用并行接口或串行接口。在STM32中,我们可以使用GPIO来模拟并行接口,或使用SPI或I2C等串行接口。 在通过并行接口驱动液晶显示时,需要将STM32的GPIO引脚连接到液晶显示屏的数据引脚和控制引脚,并使用相应的控制逻辑进行数据传输。通过设置GPIO引脚的输入/输出模式、电平和时序等参数,可以向液晶显示屏发送控制指令和显示数据。 而通过SPI或I2C等串行接口驱动液晶显示时,需要配置STM32的相应外设模块,如SPI或I2C控制器,来实现数据的传输。需要设置好通信速率、传输格式和时序等参数,并正确处理控制指令和显示数据的传输顺序。 无论是使用并行接口还是串行接口,都需要编写相应的驱动程序来操作STM32的外设模块和GPIO引脚,以实现对液晶显示屏的控制和数据的显示。 总的来说,要驱动STM32驱动12864 COG液晶显示,需要了解液晶显示的接口类型、STM32的外设资源和驱动方式。并根据接口类型选择合适的驱动模式和相应的GPIO设置,编写相应的驱动程序来控制液晶显示屏的显示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值