找回密码
 注册
关于网站域名变更的通知
查看: 137|回复: 3
打印 上一主题 下一主题

QC12864液晶(ST7920芯片)-画图显示图片源程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-24 09:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
用育松12864显示图片  `4 E; I( M' G* P" |

4 t: ~1 N2 g* o( f2 a* }单片机源程序如下:; }; x* a0 `. S/ H& I
  • #include <AT89X52.h>       //调用51单片机的头文件
  • #include <Intrins.h>    //因为本例中用到空操作_nop_();所以必须调用这个头文件
  • //12864液晶相关I/O设置
  • sbit RS=P3^5;                         //并行数据/控制字选择 H:数据  L:控制字
  • sbit RW=P3^6;                         //并行读/写选择       H:读    L:写
  • sbit E =P3^4;                         //并行读写使能        H有效,下降沿锁定数据
  • sbit PSB=P3^7;                     //串口,并口选择       H:并口  L:串口(开发板上引脚标识为CS1)
  • sbit RST=P2^1;                     //复位引脚            L:液晶复位
  • sbit DB0=P0^7;                         //
  • sbit DB1=P0^6;                         //
  • sbit DB2=P0^5;                         //
  • sbit DB3=P0^4;                         //
  • sbit DB4=P0^3;                         //
  • sbit DB5=P0^2;                         //
  • sbit DB6=P0^1;                         //
  • sbit DB7=P0^0;                         //
  • unsigned char code picture[]={
  • /*--  调入了一幅图像:F:\kaifaban\GL8\05.bmp  --*/
  • /*--  宽度x高度=128x64  --*/
  • 0x00,0x02,0x80,0x2A,0x91,0x15,0x5E,0x1F,0xFF,0xCB,0x50,0x01,0x7E,0xA1,0x00,0x00,
  • 0x00,0x04,0x94,0x50,0xC0,0x06,0xB7,0xBF,0xFE,0x74,0xA0,0x00,0xF5,0xD0,0x80,0x00,
  • 0x20,0x00,0x28,0x57,0x00,0x0A,0xDF,0xFF,0xFF,0x8A,0x80,0x00,0x73,0xD2,0x00,0x00,
  • 0x00,0x00,0x80,0x02,0xF0,0x1A,0xBB,0xFF,0xFA,0x51,0x00,0x00,0x9D,0xF4,0x00,0x04,
  • 0x00,0x00,0x00,0x03,0xD0,0x15,0x77,0xFF,0xE7,0xAA,0x00,0x00,0x7F,0xB8,0x00,0x00,
  • 0x00,0x00,0x00,0x02,0xE8,0xAA,0xEF,0xFF,0xFF,0xD4,0x00,0x00,0x1F,0xEC,0x00,0x00,
  • 0x41,0x00,0x00,0x03,0xD0,0x55,0xFF,0xFF,0xFE,0xE0,0x00,0x00,0x2F,0xEC,0x00,0x00,
  • 0x00,0x00,0x00,0x00,0xA8,0x0B,0xBF,0xFF,0xFF,0x10,0x00,0x00,0x2F,0xFE,0x00,0x00,
  • 0x42,0xA8,0x00,0x0F,0x50,0x2F,0xFF,0xFF,0xFE,0x40,0x00,0x00,0x17,0xF4,0x00,0x00,
  • 0x02,0x04,0x00,0x01,0xBC,0x16,0xFF,0xFF,0xFF,0xA8,0x00,0x00,0x17,0xFE,0x00,0x00,
  • 0x00,0x00,0x00,0x46,0x45,0x2D,0xF8,0x7F,0xFD,0x57,0x00,0x00,0x0F,0xFE,0x00,0x00,
  • 0x00,0x52,0x00,0x02,0x22,0x1F,0xF9,0x1F,0xF5,0x00,0x40,0x00,0x0B,0xFF,0x01,0x00,
  • 0x00,0x24,0x01,0x0C,0x22,0x77,0xFA,0xBF,0x54,0x00,0xA0,0x00,0x07,0xFE,0x00,0x0C,
  • 0x80,0x14,0x00,0x1E,0x04,0x3F,0xFD,0x1D,0xF0,0x00,0x28,0x00,0x0B,0xFF,0x00,0x04,
  • 0x00,0x51,0x40,0x19,0x11,0xDF,0xF4,0x7E,0x80,0x00,0x50,0x00,0x17,0xFF,0x00,0x00,
  • 0x48,0x58,0xAA,0xBA,0x98,0x3F,0xF8,0x3A,0x00,0x00,0x20,0x00,0x03,0xFF,0x00,0x00,
  • 0x20,0xA0,0xAA,0xEA,0xA0,0x0F,0xFF,0xF4,0x01,0x00,0x00,0x00,0x13,0xFF,0x00,0x20,
  • 0x20,0x20,0x21,0x2E,0x60,0x07,0xFF,0xE8,0x02,0xFD,0x00,0x00,0x05,0xFF,0x80,0x00,
  • 0x00,0x00,0xA3,0xCB,0x80,0x07,0xFF,0xD0,0x05,0xD7,0x00,0x00,0x13,0xFF,0x04,0x00,
  • 0x10,0x00,0x2A,0xFB,0x40,0x07,0xBF,0xE0,0x01,0xA3,0xC0,0x00,0x01,0xFF,0xA0,0x00,
  • 0x40,0x01,0x2A,0xD4,0x11,0x15,0xFF,0x80,0x00,0x57,0x80,0x00,0x4B,0xFF,0x00,0x00,
  • 0x88,0x02,0x15,0xDA,0x42,0x8B,0xBD,0xC0,0x00,0x07,0xC0,0x00,0xA8,0xFF,0x90,0x00,
  • 0x00,0x01,0x2B,0x35,0x21,0x0B,0xBF,0x00,0x00,0x02,0x88,0x01,0x59,0xFF,0x00,0x00,
  • 0x00,0x01,0x55,0x1A,0xC4,0x15,0x7F,0x80,0x00,0x10,0x80,0x04,0xAE,0xFF,0x80,0x00,
  • 0x80,0x05,0x4A,0x15,0x24,0x0E,0xFE,0x00,0x00,0x05,0x00,0x09,0x0A,0xFF,0x18,0x01,
  • 0x08,0x02,0xD3,0x54,0x20,0x0D,0x7F,0x00,0x00,0x00,0x00,0x00,0x42,0xFF,0xA0,0x00,
  • 0x10,0x1D,0x48,0x30,0x88,0x36,0xFD,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0x22,0xE0,
  • 0x00,0x15,0x54,0x52,0x0B,0xDE,0xFE,0x00,0x00,0x00,0x00,0x00,0x09,0xFF,0xAE,0xB8,
  • 0x00,0x2A,0x52,0x80,0x07,0xDD,0xBA,0x00,0x00,0x00,0x00,0x15,0xA5,0xFF,0x54,0x94,
  • 0x40,0x2A,0xA9,0x50,0x0D,0xED,0xFC,0x00,0x00,0x00,0x00,0x09,0xF5,0xFF,0xAB,0x50,
  • 0x02,0xA1,0x66,0x80,0x0B,0xFD,0x70,0x00,0x00,0x00,0x00,0x03,0xF5,0xFF,0xA5,0x50,
  • 0x02,0x00,0x02,0xA0,0x03,0xFD,0xF8,0x00,0x00,0x00,0x00,0x08,0xFB,0xFF,0x42,0xA8,
  • 0x02,0x80,0xDD,0x40,0x0D,0xFB,0xE0,0x00,0x00,0x00,0x00,0x00,0xF3,0xFF,0x22,0xB0,
  • 0x02,0x40,0x25,0x00,0x03,0xFF,0xF0,0x00,0x00,0x00,0x00,0x02,0x37,0xFF,0xA8,0xC0,
  • 0x01,0x00,0x00,0x80,0x1B,0xFB,0xC0,0x00,0x00,0x00,0x00,0x00,0x27,0xFF,0x51,0x00,
  • 0xB5,0x01,0x00,0x00,0x07,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0x00,0x00,
  • 0x9A,0x00,0x00,0x00,0x17,0xFF,0x80,0x00,0x00,0x08,0x00,0x00,0x0F,0xFF,0x00,0x80,
  • 0x74,0x00,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x00,0x09,0xC0,0x00,0x0F,0xFF,0x00,0x00,
  • 0x91,0x20,0x00,0x00,0x1F,0xFF,0x80,0x00,0x00,0x05,0x80,0x00,0x0F,0xFE,0x00,0x00,
  • 0x65,0x14,0x00,0x00,0x1F,0xFF,0xC0,0x00,0x00,0x02,0xA0,0x00,0x0F,0xFF,0x20,0x00,
  • 0x90,0x08,0x00,0x00,0x03,0xFF,0x80,0x00,0x00,0x00,0x2A,0x00,0x1F,0xFE,0x02,0x00,
  • 0x24,0x04,0x00,0x00,0x03,0xFF,0xC0,0x00,0x02,0x00,0x56,0x00,0x1F,0xFE,0x20,0x00,
  • 0x50,0x00,0x00,0x00,0x1B,0xF7,0x80,0x00,0x0E,0x00,0x48,0x00,0x1F,0xFC,0x00,0x00,
  • 0x24,0x00,0x00,0x00,0x1F,0xFF,0xE0,0x00,0x05,0xD4,0x00,0x00,0x1F,0xFC,0x00,0x00,
  • 0x52,0x80,0x00,0x00,0x1F,0xF7,0xC0,0x00,0x01,0x70,0x00,0x00,0x3F,0xF0,0x00,0x00,
  • 0x45,0x40,0x00,0x00,0x1F,0xFF,0xF0,0x00,0x01,0x1E,0x80,0x00,0x3F,0xFC,0x00,0x20,
  • 0x5A,0x80,0x00,0x00,0x1F,0xFF,0xE0,0x00,0x01,0x47,0x40,0x00,0x7F,0xFA,0x00,0x20,
  • 0x15,0x40,0x00,0x00,0x0F,0xFF,0xF8,0x00,0x00,0x51,0xA0,0x00,0x7F,0xFC,0x00,0x00,
  • 0x16,0x80,0x00,0x00,0x1F,0xFF,0xF8,0x00,0x00,0x20,0xE0,0x01,0xFF,0xF8,0x00,0x00,
  • 0x15,0x40,0x00,0x00,0x0F,0xFF,0xFC,0x00,0x00,0x44,0x38,0x01,0xFF,0xF8,0x00,0x00,
  • 0x0A,0xA0,0x00,0x00,0x1F,0xFF,0xFA,0x00,0x00,0x29,0x30,0x03,0xFF,0xF0,0x00,0x00,
  • 0x05,0x40,0x00,0x00,0x0D,0xFF,0xFD,0x00,0x00,0x0A,0x48,0x07,0xFF,0xF8,0x00,0x00,
  • 0x05,0x00,0x00,0x00,0x1F,0xFF,0xFA,0x00,0x00,0x0A,0x80,0x2F,0xFF,0xF0,0x80,0x00,
  • 0x00,0x00,0x00,0x00,0x0D,0xFF,0xFE,0x80,0x00,0x02,0x00,0x0F,0xFF,0xF9,0x00,0x00,
  • 0x00,0x00,0x00,0x00,0x1B,0xFF,0xFD,0x40,0x00,0x00,0x00,0xBF,0xFF,0xF5,0x00,0x00,
  • 0x00,0x00,0x00,0x00,0x0B,0xF7,0xFE,0xA0,0x00,0x00,0x00,0x3F,0xFF,0xF4,0x01,0x54,
  • 0x00,0x00,0x00,0x00,0x17,0xF6,0xFD,0x50,0x00,0x00,0x01,0x7F,0xFF,0xF4,0x16,0xD0,
  • 0x00,0x00,0x00,0x00,0x09,0xF2,0xFE,0xA8,0x00,0x00,0x04,0xFF,0xFF,0xF5,0x70,0x10,
  • 0x00,0x00,0x00,0x00,0x0A,0xD0,0xFA,0xAA,0x00,0x00,0x15,0xFF,0xFF,0xEA,0xEA,0x20,
  • 0x00,0x00,0x00,0x00,0x03,0xE0,0x17,0x55,0x40,0x00,0x23,0xFF,0xFF,0xF5,0x94,0x60,
  • 0x00,0x00,0x00,0x00,0x0F,0xF0,0x74,0x4A,0xA8,0x01,0x5F,0xFF,0xFF,0xAA,0xF6,0x80,
  • 0x00,0x00,0x00,0x00,0x03,0xF1,0x7B,0x55,0x50,0x82,0x3F,0xFF,0xFF,0xE9,0x7A,0x20,
  • 0x00,0x00,0x00,0x00,0x07,0xF5,0xF6,0x2A,0xAA,0x25,0xFF,0xFF,0xFF,0x6A,0x68,0x00,
  • 0x00,0x00,0x00,0x00,0x0B,0xFF,0xFB,0x41,0x55,0x57,0xFF,0xFF,0xFF,0xD1,0x50,0x00,
  • };
  • //名称:液晶用延时函数
  • void delay(unsigned int t)
  • {
  •         unsigned int i;
  •         for(i=0;i<t;i++);
  • }
  • /*名称:字节内 的位数据位置转换 函数
  •   功能: 把dat中的第7位和第0位交换、
  •         第6位和第1位交换、第5位和第2位交换
  •         第4位和第3位交换
  • */
  • unsigned char num(unsigned char dat)
  • {
  •    unsigned char val;
  •         val = ((dat & 0x01) << 7) | ((dat & 0x02) << 5) | ((dat & 0x04) << 3) | ((dat & 0x08) << 1) |
  •    ((dat & 0x10) >> 1) | ((dat & 0x20) >> 3) | ((dat & 0x40) >> 5) | ((dat & 0x80) >> 7);
  •    return  val;
  • }
  • //名称:写命令函数
  • void write_com(unsigned char cmdcode)
  • {
  •         RS=0;                   //设置该字节数据为命令代码
  •         RW=1;                   //设置此次操作为读
  •         E=1;                    //使能
  •         _nop_();                    //空操作,做短暂的延时
  •         _nop_();                    //空操作,做短暂的延时
  •         E=0;                    //失能
  •         RS=0;                   //设置该字节数据为命令代码
  •         RW=0;                   //设置此次操作为读写
  •         P0=num(cmdcode);            //将命令写入总线
  •         _nop_();                    //空操作,做短暂的延时
  •         E=1;                                   //E的下降沿,数据写入
  •         _nop_();                    //空操作,做短暂的延时
  •         E=0;                                   //E的下降沿,数据写入
  • }
  • //名称:写数据函数
  • void write_data(unsigned char Rsspdata)
  • {
  •         RS=0;                   //设置该字节数据为命令代码
  •         RW=1;                   //设置此次操作为读
  •         E=1;                    //使能
  •         _nop_();                    //空操作,做短暂的延时
  •         _nop_();                    //空操作,做短暂的延时
  •         E=0;                    //失能
  •         RS=1;                   //设置该字节数据为数据代码
  •         RW=0;                   //设置此次操作为读写
  •         P0=num(Rsspdata);           //将数据写入总线
  •         _nop_();                    //空操作,做短暂的延时
  •         E=1;                                   //E的下降沿,数据写入
  •         _nop_();                    //空操作,做短暂的延时
  •         E=0;                                   //E的下降沿,数据写入
  • }
  • //名称:图片显示函数 ,图片取模值放到数组picture
  • void img_disp(unsigned char code *img)
  • {
  •           unsigned char i,j;
  •           for(j=0;j<32;j++)                //垂直地址y32行,上下两屏共64行
  •           {
  •             for(i=0;i<8;i++)        //再设定水平地址x(0-8)
  •             {
  •                       write_com(0x34);     //扩展指令集
  •                                                  //连续写两个字节完成垂直于水平的坐标
  •                       write_com(0x80+j);   //先设定垂直地址y(0-32)
  •                       write_com(0x80+i);      //再设定水平地址x(0-8)
  •                       write_com(0x30);                  //基本指令集
  •                       write_data(img[j*16+i*2]);
  •                       write_data(img[j*16+i*2+1]);
  •             }
  •           }
  •           for(j=32;j<64;j++)
  •           {
  •             for(i=0;i<8;i++)
  •             {
  •               write_com(0x34);                  //扩展指令集
  •                         //连续写两个字节完成垂直于水平的坐标
  •               write_com(0x80+j-32);   //先设定垂直地址(0-32)
  •               write_com(0x88+i);      //再设定水平地址(0-8)
  •               write_com(0x30);                  //基本指令集
  •               write_data(img[j*16+i*2]);
  •               write_data(img[j*16+i*2+1]);
  •             }
  •           }
  •           write_com(0x36);                                  //扩展指令集,绘图显示ON
  • }
  • //名称:12864初始化函数
  • void init_lcd(void)
  • {
  •         RST=0;           //复位液晶
  •         delay(250);      //加些延时
  • ……………………
    ( Z# B7 q) `8 ?* I
: A1 q) x$ |6 t( H- u
7 o1 e& q" u  T7 q% r

该用户从未签到

2#
发表于 2022-6-24 10:52 | 只看该作者
图片什么软件画的,好漂亮' O' P0 \3 e# M! i7 p3 X0 M
很详细,非常感谢。

该用户从未签到

3#
发表于 2022-6-24 14:02 | 只看该作者
/ D8 L  {% J4 O8 x: S/ D8 L  {% J4 O8 x: S/ D8 L  {% J4 O8 x: S/ D8 L  {% J4 O8 x: S
* t5 R3 Q  w; V; G  l2 t8 K

该用户从未签到

4#
发表于 2022-6-24 14:04 | 只看该作者
看一看,学习学习。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-10 11:26 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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