找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16302|回复: 24
打印 上一主题 下一主题
收起左侧

12864在单片机上显示图片(无偿奉上)

  [复制链接]
跳转到指定楼层
楼主
#include<stc12.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define LCD_data  P0            
sbit LCD_RS=P1^0;        // 数据/命令选择端   
sbit LCD_RW=P1^1;        // 读写选择端  
sbit LCD_EN=P1^2;        // 使能信号  
sbit LCD_PSB=P1^6;    // 并/串选择
uchar code table[64][16]={
   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFE,0xDF,0x00,0x1C,0x0E,0x1D,0xFE,0xAF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFE,0xBF,0xF5,0xFD,0xEF,0xD0,0x21,0xB7,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFD,0x81,0x80,0x3C,0x0E,0xD7,0xBD,0xBF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xF9,0x7D,0xB5,0xBD,0xEE,0xD0,0x20,0x03,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xF4,0xEF,0x80,0x3C,0x0E,0xD7,0xFD,0xBF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFD,0xAB,0xF7,0xFF,0xFE,0x10,0x3D,0x37,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFD,0xAB,0x00,0x00,0x03,0xD2,0xB8,0xAF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFD,0x6D,0xEE,0xFB,0x7F,0x90,0x25,0xDF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFC,0xED,0xC5,0xF9,0x06,0x4A,0xBD,0x9B,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFD,0xEF,0xF8,0xF6,0x7F,0xDA,0xBC,0x6B,0x7B,0xEF,0xBD,0xF8,0x00,0x00,0x00,
      0xFF,0xFD,0x8F,0x07,0x2F,0x03,0x1F,0x31,0xF3,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xFF,0xFD,0xFF,0xF8,0x00,0x00,0x00,
      0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x3F,0xDC,0xFF,0xF8,0x00,0x00,0x00,
      0xC0,0x2F,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xBD,0x8C,0xFF,0xF8,0x00,0x00,0x00,
      0xF1,0xFF,0xFF,0xFF,0xC7,0xEF,0xFF,0xFC,0xFF,0xB9,0x04,0xFF,0xF8,0x00,0x00,0x00,
      0xE8,0xFF,0xFF,0xFF,0x07,0x1F,0x7F,0xFF,0x3F,0xF0,0x20,0xFF,0xF8,0x00,0x00,0x00,
      0xDB,0x7F,0xFF,0xFC,0x0C,0x1C,0x7F,0x7F,0xCF,0xEE,0x71,0xFF,0xF8,0x00,0x00,0x00,
      0xFB,0xF7,0xE3,0xF8,0x00,0x10,0xDF,0x8F,0xF3,0xFE,0x7D,0xFF,0xF8,0x00,0x00,0x00,
      0xFF,0xFB,0xC1,0xF0,0x00,0x00,0x97,0xC1,0xF8,0xFE,0xFF,0xEF,0xF8,0x00,0x00,0x00,
      0xFB,0xEB,0x98,0xE0,0x00,0x39,0x10,0xF0,0x3C,0x3F,0xFF,0xBF,0xF8,0x00,0x00,0x00,
      0xFF,0xF1,0xA4,0xE0,0x00,0x04,0x10,0x1C,0x06,0x1F,0x8F,0x97,0xF8,0x00,0x00,0x00,
      0xFF,0xD1,0x8A,0xC0,0x00,0x00,0x30,0x00,0x01,0x0F,0x07,0x8F,0xF8,0x00,0x00,0x00,
      0xFF,0xE0,0x8A,0x00,0x00,0x00,0x30,0x38,0x00,0x06,0x33,0x1B,0xF8,0x00,0x00,0x00,
      0xFF,0xA0,0x44,0x00,0x00,0x00,0x50,0x40,0x00,0x06,0x4B,0x17,0xF8,0x00,0x00,0x00,
      0xFF,0xC0,0x60,0x00,0x0F,0xC0,0x48,0x00,0x00,0x02,0xA2,0x05,0xF8,0x00,0x00,0x00,
      0xFF,0x40,0x70,0x00,0x3F,0xE0,0x88,0x00,0x00,0x00,0xA2,0x03,0xF8,0x00,0x00,0x00,
      0xFF,0x80,0xF8,0x00,0x00,0xF1,0x04,0x07,0xE0,0x00,0x44,0x01,0xF8,0x00,0x00,0x00,
      0xFE,0x81,0xE8,0x00,0x01,0xC2,0x04,0x4F,0xF8,0x00,0x0F,0x03,0xF8,0x00,0x00,0x00,
      0xFF,0x00,0x08,0x00,0x01,0x84,0x02,0x3E,0x00,0x00,0x1F,0x82,0xF8,0x00,0x00,0x00,
      0xFD,0x00,0x10,0x00,0x00,0x88,0x01,0x06,0x00,0x00,0x10,0x41,0xF8,0x00,0x00,0x00,
      0xFE,0x01,0xE0,0x01,0x13,0x08,0x00,0x87,0x00,0x00,0x10,0x01,0xB8,0x00,0x00,0x00,
      0xFF,0x06,0x20,0x00,0x88,0x10,0x00,0x43,0x00,0x00,0x10,0x01,0x18,0x00,0x00,0x00,
      0xFD,0x0A,0x10,0x01,0x44,0x10,0x00,0x22,0x00,0x00,0x18,0x01,0xB8,0x00,0x00,0x00,
      0xF8,0x11,0x10,0x00,0x80,0x10,0x00,0x21,0x91,0x00,0x14,0x01,0xF8,0x00,0x00,0x00,
      0xFC,0x10,0x88,0x70,0x00,0x10,0x00,0x10,0x22,0x03,0xE0,0x00,0xB8,0x00,0x00,0x00,
      0xFE,0x20,0x84,0x4C,0x00,0x20,0x00,0x10,0x45,0x05,0x31,0x00,0xF8,0x00,0x00,0x00,
      0xF4,0x20,0x43,0x8B,0x80,0xC0,0x00,0x10,0x02,0x08,0x88,0x80,0xB8,0x00,0x00,0x00,
      0xFC,0x20,0x40,0x08,0xFF,0x00,0x00,0x10,0x00,0x18,0x40,0x40,0x78,0x00,0x00,0x00,
      0xF6,0x20,0x40,0x08,0x80,0x00,0x00,0x08,0x00,0x68,0x40,0x00,0xD8,0x00,0x00,0x00,
      0xFC,0x20,0x40,0x08,0x80,0x00,0x00,0x06,0x03,0x90,0x20,0x20,0x68,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,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,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 delay(uint z)  // 延时函数
{
uint x,y;
for(x=0;x<z;x++)
  for(y=0;y<110;y++);
}
//写指令数据到LCD
void write_cmd(uchar cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
//写显示数据到LCD
void write_dat(uchar dat)
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
//12864初始化
void lcd_init()//12964初始化
{
LCD_PSB=1;    //并口模式
write_cmd(0x34);  //基本指令操作
delay(5);
write_cmd(0x0c);  //显示开,光标关
delay(5);
write_cmd(0x01);  //消除所有显示
delay(5);
}
//主函数
main()
{
uchar i,j;
delay(10);
lcd_init();    //初始化
for(i=0;i<32;i++)
{
  write_cmd(0x80+i);
  write_cmd(0x80);
  for(j=0;j<16;j++)
  {
  write_dat(table[i][j]);
  }
}
for(i=0;i<32;i++)
{
  write_cmd(0x80+i);
  write_cmd(0x88);
  for(j=0;j<16;j++)
  {
   write_dat(table[i+32][j]);
  }
}  
write_cmd(0x36);    //打开绘图模式
write_cmd(0x30);    //基本操作模式
while(1);     //没有的话 会一直闪烁 甚至不显示
}

评分

参与人数 2威望 +10 黑币 +10 收起 理由
xiaoou + 5 + 5 很给力!
hujia + 5 + 5 共享资料的积分奖励,希望大家多多发布各种.

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:26188 发表于 2014-8-28 16:49 | 只看该作者
好东西  楼主能共享一下 电路图吗
回复

使用道具 举报

板凳
ID:63839 发表于 2014-8-28 17:07 | 只看该作者
hujia 发表于 2014-8-28 16:49
好东西  楼主能共享一下 电路图吗


12864的电路图

QQ截图20140828170626.png (21.81 KB, 下载次数: 171)

QQ截图20140828170626.png
回复

使用道具 举报

地板
ID:57234 发表于 2014-8-28 17:10 | 只看该作者

赞一个啊,楼主的这屏  是带字库的 还是不带字库的呢?
回复

使用道具 举报

5#
ID:63839 发表于 2014-8-28 17:12 | 只看该作者
xiaoou 发表于 2014-8-28 17:10
赞一个啊,楼主的这屏  是带字库的 还是不带字库的呢?

带字库 不过不能显示汉字“三”和“庚”这是我用的keil4的bug
回复

使用道具 举报

6#
ID:65477 发表于 2014-8-29 09:53 | 只看该作者
楼主,你用的是12864 那个型号的?
回复

使用道具 举报

7#
ID:63839 发表于 2014-8-29 13:51 | 只看该作者
浅墨画青梅 发表于 2014-8-29 09:53
楼主,你用的是12864 那个型号的?

QC1602A
回复

使用道具 举报

8#
ID:65477 发表于 2014-8-29 13:54 | 只看该作者

我读书少,表要骗我,12864和1602是同一码事?!
回复

使用道具 举报

9#
ID:63839 发表于 2014-8-29 17:45 | 只看该作者
浅墨画青梅 发表于 2014-8-29 13:54
我读书少,表要骗我,12864和1602是同一码事?!

看错了 我以为是我的另一个有关1602显示时钟的帖子呢  12864就是在网上买的普通的  后面只有QC PASS
回复

使用道具 举报

10#
ID:64246 发表于 2014-9-5 12:57 | 只看该作者
去隔膜就好了呗!
回复

使用道具 举报

11#
ID:66181 发表于 2014-9-15 12:21 | 只看该作者
谢谢分享
回复

使用道具 举报

12#
ID:66016 发表于 2014-9-15 21:49 | 只看该作者
谢谢楼主分享!!!
回复

使用道具 举报

13#
ID:60805 发表于 2014-9-28 21:51 | 只看该作者
没贴张图吗?
回复

使用道具 举报

14#
ID:66787 发表于 2014-9-30 15:58 | 只看该作者
没有图呀
回复

使用道具 举报

15#
ID:69318 发表于 2014-11-24 14:19 | 只看该作者
什么意思不懂那个是什么字模
回复

使用道具 举报

16#
ID:69215 发表于 2014-11-25 00:54 | 只看该作者
感谢楼主了! 已下载,作个参考资料很不错的.
回复

使用道具 举报

17#
ID:71359 发表于 2014-12-30 13:25 | 只看该作者
谢谢楼主
回复

使用道具 举报

18#
ID:71795 发表于 2015-4-6 20:37 | 只看该作者
这程序写的不错
回复

使用道具 举报

19#
ID:80273 发表于 2015-5-17 17:51 | 只看该作者
感谢楼主的分享
回复

使用道具 举报

20#
ID:80272 发表于 2015-5-17 18:37 | 只看该作者
额,主函数里初始化后面的几个for循环放while(1)后面吧,你的程序执行一次就死循环了
回复

使用道具 举报

21#
ID:84566 发表于 2015-7-3 17:18 | 只看该作者
使用楼主的程序确实可以显示图片,但是有几点建议
1、可以使用指针 ,不使用二维数组
2、将不必要的延时去掉,可以加快图片刷新的速度
3、我经过修改后,图形显示的速度还是很快的,而楼主的程序要经过2--3秒的时间才可以显示出来
回复

使用道具 举报

22#
ID:94867 发表于 2016-3-23 07:17 | 只看该作者
最近正在弄12864显示图片
回复

使用道具 举报

23#
ID:153199 发表于 2017-1-1 12:31 | 只看该作者
感谢分享
回复

使用道具 举报

24#
ID:184803 发表于 2017-7-21 22:53 | 只看该作者
注释写错了  write_com(0x34)是扩充指令
回复

使用道具 举报

25#
ID:222006 发表于 2018-5-22 15:22 | 只看该作者
测试过没毛病老铁
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表