博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单片机的动手实践篇--51单片机玩转12864
阅读量:5319 次
发布时间:2019-06-14

本文共 6858 字,大约阅读时间需要 22 分钟。

12864液晶的驱动和1602的类似,只不过是多了几个扩展的功能,不如画图功能:

这里讲一下:不要简单的认为12864是y轴64,x为128,那是点阵的分布,不是读写的分布,如正图表示,y轴的32行,从0到31,x轴的16 从0到15,0到7为上半个屏幕,8到15在下半个屏幕,所以绘图的时候,有两个部分要进行书写

在12864上载入任意一幅图:

示例代码:

#include
#define uint unsigned int#define uchar unsigned charsbit lcdrs = P2^4;//数据还是指令的选择端口sbit lcdwr = P2^5;//读写操作端口sbit lcden = P2^6;//使能端延时端口sbit PSB = P2^1;//串行数据还是并行数据的选择段//图片的编码,这幅图片的编码是一个哆啦a梦 unsigned char code pic1[] = { /* 0X10,0X01,0X00,0X80,0X00,0X40, */0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XC0,0X0F,0XC0,0X0F,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0X00,0X07,0X80,0X03,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFE,0XF7,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFE,0X00,0X01,0X80,0X01,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFE,0X00,0X03,0XFF,0X01,0X0F,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0X83,0X00,0X07,0XFB,0X86,0X00,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFE,0X00,0XE0,0X0F,0XFF,0XFC,0X00,0X1F,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF8,0X00,0X3F,0XE3,0XFF,0X00,0X00,0X07,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XE0,0X00,0X00,0X00,0X38,0X00,0X00,0X01,0XF8,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XC7,0X7F,0XF0,0X00,0X0C,0X00,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0X00,0X00,0X00,0X00,0X04,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0X00,0X00,0X00,0X00,0X06,0X00,0X03,0XC0,0X3E,0X00,0X00,0X00,0X00,0X00,0X03,0XFE,0X0F,0XFF,0XF0,0X00,0X02,0X00,0X0C,0X3F,0X9E,0X00,0X00,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X02,0X00,0X00,0X00,0X1F,0X00,0X00,0X00,0X00,0X00,0X07,0XFC,0X00,0X1F,0XC0,0X00,0X02,0X00,0X00,0X00,0X0F,0X00,0X00,0X00,0X00,0X00,0X07,0XF8,0X03,0XE0,0X00,0X00,0X02,0X00,0X07,0XFE,0X0F,0X00,0X00,0X00,0X00,0X00,0X07,0XF8,0X1E,0X00,0X00,0X00,0X02,0X00,0X00,0X01,0XC6,0X00,0X00,0X00,0X00,0X00,0X07,0XF8,0X30,0X00,0X00,0X00,0X02,0X00,0X00,0X00,0X06,0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X02,0X00,0X03,0XFE,0X0E,0X00,0X00,0X00,0X00,0X00,0X01,0XFC,0X00,0X00,0X00,0X00,0X7F,0XC0,0X00,0X03,0X0C,0X00,0X00,0X00,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X3F,0X80,0X3E,0X00,0X01,0X18,0X00,0X00,0X00,0X00,0X00,0X00,0XFE,0X00,0X00,0X0F,0XC0,0X00,0X01,0XF0,0X06,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X00,0X01,0XE0,0X00,0X00,0X00,0X1F,0XF8,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0X80,0X04,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X06,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFC,0X00,0X00,0X00,0X00,0X00,0X01,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XF8,0X00,0X03,0XFF,0XE0,0X1F,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0XE0,0X00,0X03,0XFF,0XC0,0X07,0XFF,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XC0,0X00,0X00,0XFF,0X80,0X03,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0X80,0X00,0X00,0X00,0X00,0X01,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0X80,0X00,0X00,0X00,0X00,0X01,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0X80,0X00,0X00,0X00,0X00,0X01,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0X80,0X3F,0X80,0X0F,0XFF,0XFF,0XFC,0X01,0XFE,0X3E,0X00,0X00,0X00,0X00,0X00,0X06,0X00,0X0F,0XC0,0X70,0X00,0X00,0X03,0XC1,0XF8,0X07,0X00,0X00,0X00,0X00,0X00,0X06,0X00,0X07,0XE0,0X30,0X00,0X00,0X00,0X43,0XF8,0X03,0X00,0X00,0X00,0X00,0X00,0X07,0X00,0X07,0XF0,0X38,0X00,0X00,0X00,0XCF,0XFC,0X03,0X00,0X00,0X00,0X00,0X00,0X03,0XC0,0X1F,0XFC,0X0F,0X00,0X00,0X03,0X1F,0XFC,0X0E,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0X81,0XF0,0X00,0XFC,0XFF,0XFE,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFE,0X1F,0XFF,0X1F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0X07,0XF0,0XFF,0XF0,0X7F,0X8F,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0X83,0XE0,0XFF,0XF8,0X0F,0XBF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XDF,0XF8,0X7D,0XFF,0X7F,0X0F,0XFF,0XC7,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0XF7,0X00,0X41,0XEF,0XF8,0X02,0X0F,0X78,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XCC,0X00,0X40,0X7F,0XE0,0X02,0X01,0XBF,0XE0,0X00,0X00,0X00,0X00,0X00,0X0F,0XFE,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0X7E,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,};void delay1ms(uint x)//延时函数{ uint i,j; for(i= x;i>0;i--) for(j=110;j>0;j--);}void write_cmd(uchar cmd)//写指令函数{ lcdrs = 0; lcdwr = 0; P0 = cmd; lcden = 1; delay1ms(5);// lcden = 0;}void write_date(uchar date)//写数据函数{ lcdrs = 1; lcdwr = 0; P0 = date; lcden = 1; delay1ms(5);// lcden = 0;}void init_12864(){ PSB = 1;//确定是并行传送 write_cmd(0x30);//基本指令操作 write_cmd(0x0c);//开显示,关掉光标 write_cmd(0x01);//清楚lcd的内容}void lcd_putpic(unsigned char code *img)//载入图画的函数{ uint i,j; //显示上半个屏幕的内容 for(i = 0;i<32;i++) { write_cmd(0x80+i);//垂直的地址 write_cmd(0x80);//水平的地址 for(j=0;j<16;j++) { write_date(*img); img++; } } //显示下半个屏幕的内容 for(i = 0;i<32;i++) { write_cmd(0x80+i);//垂直的内容 write_cmd(0x88);//水平的地址第三行的内容 for(j=0;j<16;j++) { write_date(*img); img++; } }}void setpic()//图像显示模式设置函数{ write_cmd(0x36);//选择8bit的数据流,图像显示模式 delay1ms(5);}main(){ init_12864();//初始化液晶 setpic();//初始化液晶图片显示 lcd_putpic(pic1);//载入一幅图片 delay1ms(5); while(1);}
View Code

以后载入图片只需要将图片用取模的软件,注意图片的大小必须是128x64的尺寸,否则会出现乱码,这是个比较容易犯的错误,希望大家注意

 

转载于:https://www.cnblogs.com/fengdashen/p/3358748.html

你可能感兴趣的文章
Ubuntu 12.04 Firefox/Chromium缺少Flash Player问题
查看>>
在线文件管理器elFinder支持中文
查看>>
String比较
查看>>
Django之Models
查看>>
动态添加SqlParameter
查看>>
SQLServer:探讨EXEC与sp_executesql的区别详解
查看>>
Spring缓存注解@Cache使用
查看>>
CSS 透明度级别 及 背景透明
查看>>
Linux定时任务(crond)
查看>>
apache编译安装php后需要注意以下配置
查看>>
20)升级登录标志
查看>>
机器学习之GMM-EM
查看>>
Linux 的 date 日期的使用
查看>>
PHP zip压缩文件及解压
查看>>
为MS SQL 2005加入一个用户admin
查看>>
HTML5 LocalStorage 本地存储
查看>>
SOAP web service用AFNetWorking实现请求
查看>>
jQuery Easy UI Resizable(调整大小)组件
查看>>
android AlarmManager采用
查看>>
Sail
查看>>