LCD12864显示图片

合集下载

LCD12864图形液晶并口显示2

LCD12864图形液晶并口显示2

LCD12864图形液晶并口显示【教学引入】液晶屏,在生活中很常见,我们常见的液晶显示器,如电脑的显示器,电视机,手机等等。

液晶屏在生活中已得到了普遍应用,它显示个各种各样的画面。

上次呢,我们让12864显示了汉字,这次我们让它显示图形。

【教学目标】1、掌握LCD12864液晶屏的绘图用法;2、编写LCD12864液晶屏的指令代码;【知识目标】1、掌握LCD12864液晶屏的绘图用法;2、掌握LCD12864液晶屏指令代码;【教学准备】电脑、Proteus、Keil、MCS-51系列单片机综合实验箱【教学方法】教法:讲授法、讨论法学法:练习法、探究法【教学课时】四课时【教学过程】一、12864液晶介绍12864液晶屏不仅能显示汉字,还能显示图形。

今天呢,我们就来看看液晶屏怎么显示图形的。

首先呢,我们看看显示坐标关系1、图形显示坐标水平方向X——以字节为单位垂直方向Y——以位为单位由图可知,水平方向为0~31,以位为单位;垂直方向为0~7、8~16,以2个字节为单位,分为上下两个块。

如下图2、图片取模有了图像显示的坐标,我们该把图片变成代码了,PCtoLCD2002不仅能取模汉字,还能取模图片。

字模软件PCtoLCD2002双击图标打开软件可以看到下图所示的画面,此软件也是绿色软件打开后可以直接使用。

软件有两种工作模式:字符模式和图形模式;上图界面是字符模式。

可以通过菜单栏模式(C)切换工作模式。

我们选择图形模式,最大化,如下图。

单击工具栏中的图标按钮,看到如下图所示的对话框。

我们可以根据自己的实际需要而进行的设置,因其简单易用这里不再详细讲述其使用方法。

设置完成后,单击左下角的确定保存。

设置如下图回到PCtoLCD2002完美版-(图形模式)界面,单击按钮,导入要显示的128X64的bmp图片,单击图标按钮,可以看到软件下方的数据显示区域出现的对应的显示数据。

如下图阅“12864M.PDF”12864M液晶显示模块技术手册——四、用户指令集1、指令表2:(RE=1:扩充指令集),如下图,讲解了12864的扩充指令集。

带字库LCD12864自定义图形、汉字显示

带字库LCD12864自定义图形、汉字显示

带字库的LCD12864自定义图片、汉字显示
一、将图片修改成128*64像素
1、打开win7自带的画图软件,载入图片(图片不满足128*64)
2、点击重新调整大小(或者图片处右击鼠标),如下设置,保持纵横比不勾选。

3、图片另存为,选择单色位图。

二、LCD12864用ZIMO21软件取模(BMP图片)
1、基本设置里面设置LCD的大小(如果图片像素就是128*64就不需要设置,直接打开)
2、打开BMP图片(黑白)
3、发现图片偏小,不足128*64,此时生成的数据就缺少128*64个点,显示会照成错误,需要修改一下图片大小。

改成128*64
3、直接调入128*64图片
4、设置参数,如下
5、取模选择C51格式
6、显示效果
三、PCtoLCD2002图片取模设置
四、PCtoLCD2002汉字取模设置(根据程序而定)
1、汉字取模参数设置
2、显示效果如下。

LCD12864显示中文及图片C程序

LCD12864显示中文及图片C程序

/****************************************屏幕显示驱动*****************************************/#include "GT23L24T3Y.h"#include "print.h"#include <stdio.h>#include <string.h>#include "bmp_picture.h"#include "lcd_12864.h"#include "..\user\rtc.h"u8 comTable[]={4,5,6,7,3,2,1,0};extern void Setlcd_Addr ( u8 row,u8 column );//外部函数调用声明extern u8 Num_Code[];//字库获得函数extern u8 Big_Num_Code[];//字库获得函数extern u8 Picture_Code[];//字库获得函数extern u8 arrow1[];extern u8 arrow2[];u8 testlcd[]="测试数据";/************************************************************************//显示中文输出//函数名:print_16//功能:显示16x16点阵字符串。

// 函数名:print_16// 功能:显示16点阵字符串// 形参:// row:x轴// column:y轴// *lcd:显示字符串// logic:显示取反// wei.显示位值// len长度*************************************************************************/void _print_15 ( u8 row,u8 column,const char *lcd,u8 logic ,u8 wei,u8 len){u8 w=0,x=0,y=0,l=0,read_data=0;u8 Length=0;GT_cs1;//字库片选至高for ( l=len; l>0; l=l-2 ) //总字节{w=*lcd;if ( w&0x80 ) //为1则为汉字,为0则为ASCII码{GT_cs0; //字库片选选定GT23_Write ( GT23_write_15 ( lcd ) ); //写入字库指令以及文字地址for ( x=0; x<2; x++ ){Setlcd_Addr (row,column);for(y=0;y<16;y++){read_data=GT23_Read();if(logic == true){// read_data = ~read_data;}WriteData(read_data );}row++;}GT_cs1;//字库片选至高row-=2;column+=16;if(column>=128){row+=2;column=0;}lcd=lcd+2;}}}/************************************************************************//描述:显示中文输出//使用:顶层函数调用参数:row 行column 列*lcd 字符串logic 反白*************************************************************************/ void print_15 ( u8 row,u8 column,const char *lcd,u8 logic ){u8 c=strlen ( lcd );_print_15(row,column,lcd,logic,0,c);}/************************************************************************ //描述:显示图片输出//使用:顶层函数调用参数:row 行column 列*lcd 字符串logic 反白*************************************************************************/ void print_array(u16 row,u16 column,u16 size_x,u16 size_y,const u8 *ptr, u8 logic){u8 w=0,x=0,y=0,l=0,read_data=0;u8 Length=0;for( x=0;x<size_x/8;x++){Setlcd_Addr (row,column);for(y=0;y<size_y;y++){read_data=*( ptr + (y+x*size_y) );if(logic == true){read_data = ~read_data;}WriteData1(read_data);// WriteData1(0XFF);}row++;}}u8 OpMgsCode[][10] ={"病人信息","循环播放","房号与床号","从机音量","对比度","广播""恢复","音乐","主机音量","时间"};u8 DayCode[][7]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};void PrintMainFace(time mytime,u8 PeopleNum){//待机界面函数u8 Hrd,Ten,One;Lcd_Clr();//清屏print_15 ( 0,16, "月",false );print_15 ( 0,48, "日",false );print_15 ( 0,70, &DayCode[mytime.day][0],false );//显示星期//日期显示Ten=mytime.month/10;One=mytime.month%10;print_array(0 , 0, 16 , 7 , &Num_Code[Ten*14], false);print_array(0 , 8, 16 , 7 , &Num_Code[One*14], false);Ten=mytime.date/10;One=mytime.date%10;print_array(0 , 32, 16 , 7 , &Num_Code[Ten*14], false);print_array(0 , 40, 16 , 7 , &Num_Code[One*14], false);//时间显示Ten=mytime.hour/10;One=mytime.hour%10;print_array(2 , 20, 32 , 21 , &Big_Num_Code[Ten*84], false);print_array(2 , 42, 32 , 21 , &Big_Num_Code[One*84], false);Ten=mytime.minute/10;One=mytime.minute%10;print_array(2 , 68, 32 , 21 , &Big_Num_Code[Ten*84], false);print_array(2 , 90, 32 , 21 , &Big_Num_Code[One*84], false);//住院人数显示print_15 ( 6,32, "住院人数",false );Hrd=PeopleNum/100;PeopleNum=PeopleNum%100;Ten=PeopleNum/10;One=PeopleNum%10;if(Hrd ){print_array(6 , 96, 16 , 7 , &Num_Code[Hrd*14], false);}print_array(6 , 102, 16 , 7 , &Num_Code[Ten*14], false);print_array(6 , 110, 16 , 7 , &Num_Code[One*14], false);}void PrintPictureFace(u8 Index){time mytime;Lcd_Clr();//清屏mytime.month = 10;mytime.date = 16;mytime.hour = 12;mytime.minute = 15;mytime.day =3;PrintMainFace(mytime,96);//print_array(0 , 10, 48 , 8 , arrow1, false);//左箭头显示// print_array(0,38 ,48 ,48 , &Picture_Code[288*Index], false);//图片显示// print_array(0,108, 48 , 8 , arrow2, false); //右箭头显示//print_15 ( 6,33, &OpMgsCode[0][Index],false );//提示信息显示}。

LCD12864串口显示

LCD12864串口显示

逻辑工作电压(VDD):4.5~5.5V 电源地(GND):0V 工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)
三、接口时序
模块有并行和串行两种连接方法(时序如下): 8 位并行连接时序图 MPU 写资料到模块
MPU 从模块读出资料
2








串行数据传送共分三个字节完成: 第一字节:串口控制—格式 11111ABC
一、液晶显示模块概述
12864A-1 汉字图形点阵液晶显示模块,可显示汉字及图形,内置 8192 个中文汉字(16X16 点阵)、128 个字符(8X16 点阵)及 64X256 点阵显示 RAM(GDRAM)。 主要技术参数和显示特性: 电源:VDD 3.3V~+5V(内置升压电路,无需负压); 显示内容:128 列× 64 行 显示颜色:黄绿 显示角度:6:00 钟直视 LCD 类型:STN 与 MCU 接口:8 位或 4 位并行/3 位串行 配置 LED 背光 多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等
H/L
-
功能说明 模块的电源地 模块的电源正端 LCD 驱动电压输入端 并行的指令/数据选择信号;串行的片选信号 并行的读写选择信号;串行的数据口 并行的使能信号;串行的同步时钟 数据 0 数据 1 数据 2 数据 3 数据 4 数据 5 数据 6 数据 7 并/串行接口选择:H-并行;L-串行 空脚 复位 低电平有效 空脚 背光源正极(LED+5V) 背光源负极(LED-OV)
(AC)到“00H”
设 定 DDRAM 的 地 址 计 数 器
地址归
(AC)到“00H”,并且将游

LCD12864_ESUART通过串口命令显示图片

LCD12864_ESUART通过串口命令显示图片

void delay_ms(uint t)//ms 延时函数
{ uint x,y; for(x=t;x>0;x‐‐) for(y=120;y>0;y‐‐);
}
void lcd12864_port_init()//LCD12864 端口初始化函数 {
//TRISB0=0;//选端‐CS,设为输出,低电平有效,已跳线接 GND TRISB2=0;//数据/命令选择端‐CD,设为输出 TRISB3=0;//复位端‐RST,设为输出 TRISB4=0;//数据输入端‐SDI,设为输出 TRISB5=0;//时钟输入端‐SCK,设为输出 TRISA4=0;//背光输入端‐BL,设为输出 //CS=1;//片选端初始化为 1,暂不选中 LCD12864 CD=0;//初始化选择发送命令 RST=1;//初始化复位端为高电平,暂不复位 SDI=1;//数据输入线初始化为 1 SCK=1;//时钟输入线初始化为高电平 }
LCD12864_ESUART 通过串口命令显示图片 原理图 1(图中红色方框处为 MCU 引脚端口)
原理图 2(LCD12864 引脚端口)
图 3(LC12864‐ST7565R 驱动的仅 SPI 写入时序图)
以下 3 幅图为要显示在 LCD12864 上的 BMP 单色位图(128*64 像素)
配置寄存器设置
********************************************************************* ******************************************/ __PROG_CONFIG(1,0xc100);//使能振荡器切换;使能故障保护时钟监控;XT 振荡器; __PROG_CONFIG(2,0x0a16);//看门狗分频 1:32;禁用看门狗;欠压复位 2.7V;硬件使 能欠压复位;使能上电延时定时器; __PROG_CONFIG(3,0x8100);//使能 MCLR 引脚;timer1 高功耗运行;PORTB<4:0>引 脚复位后为数字 I/O;CCP2 与 IO 与 RC1 复用; __PROG_CONFIG(4,0x0081);//禁止后台调试,RB6、7 为通用 I/O 口;禁止变址寻址; 禁止低压编程;堆栈满/下溢导致复位; __PROG_CONFIG(5,0xC00f);//数据 EEPROM 无代码保护;引导区无代码保护;程序 存储块 3-0 无代码保护; __PROG_CONFIG(6,0xe00f);//数据 EEPROM 无写保护;引导区无写保护;配置寄存 器无写保护;程序存储块 3-0 无写保护; __PROG_CONFIG(7,0x400f);//引导区无表读保护;程序存储块 3-0 无表读保护;

12864显示图形

12864显示图形

看到工具箱旁边那个LCD12864很久没用了(当初买回来用的时候只是简单地测试了一下),于是萌生了重新写一次接口程序的想法(而且这次要给它加个图片显示的功能),好,说做就做,就用Atmega16和ICCAVR来做吧,最近这MCU和平台用得比较熟练。

马上从书堆里把当初打印出来的中文datasheet给翻了出来,依葫芦画瓢地写了个初始化程序。

好,OK。

编译通过。

于是又写了一个可以自定义从XY坐标值开始输出显示的函数,再次编译,也通过,OK。

于是呼马上写了四行简单的字符烧到单片机上试了一下,嘿嘿,一次通过。

如下图:后来在进一步测试的时候也出了点小问题。

就是我是使用USBISP烧写器把程序烧写进AVR的(此时实验板由USBISP烧写器供电),想要实现从第一行的第一个字符开始连续显示"0123456789"。

刚烧写完程序后能看到LCD12864上正常显示"0123456789",但是把烧写器从实验板上断开连接,单独用USB给实验板供电的时候,LCD的第一行只是显示"123456789",第一个字符消失了……,左思右想地弄了一个多小时后,终于把问题给解决了,就是把初始化程序的延时适当增加了些,真是奇怪。

刚开始一直想不通为什么在烧写器供电的情况下就正常显示,而换到USB供电后就出了问题。

后来再想想,估计是跟供电有关。

在使用USBISP烧写器供电的时候,LCD的背光灯明显比用USB供电的时候来得亮,而且对比度也高很多,看来是因为换到USB供电后,供电不怎么充足,以至于LCD在上电初始化的时候花上了更多的时间去初始化(因为供电低了,功率小了,跑起来有点力不从心,用的时间就久了嘛……我是觉得可以这样去理解的)接下来呢,就到了有点难度的画图了。

当初刚买到12864的时候只是简单测试了字符显示功能,除了因为画图还不需要用到,另外一个原因就是那datasheet上关于画图那部分的内容不怎么看得懂……。

液晶12864显示图片

液晶12864显示图片

液晶12864显示图片液晶12864简介12864是128*64点阵液晶模块的点阵数简称。

基本参数1、低电源电压(VDD:+3.0~+5.5V)。

2、显示分辨率:128×64 点。

3、内置汉字字库,提供8192 个16×16 点阵汉字。

4、内置128 个16×8 点阵字符。

5、2MHZ 时钟频率。

6、显示方式:STN、半透、正显。

7、驱动方式:1/32DUTY,1/5BIAS。

8、视角方向:6 点。

9、背光方式:侧部高亮白色LED。

10、通讯方式:串行、并口可选。

11、内置DC-DC 转换电路,无需外加负压。

12、无需片选信号,简化软件设计。

13、工作温度: 0℃~+55℃ ,存储温度: -20℃~+60℃。

液晶12864接口液晶12864显示图片程序源代码/*******************12864显示图片******************** 处理器:51单片机* 开发环境:keil* 功能:12864显示图片****************************************************/#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int/*12864端口定义 */#define LCD_data P0 //数据口sbit LCD_RS = P1^0; //寄存器选择输入sbit LCD_RW = P1^1; //液晶读/写控制sbit LCD_EN = P2^5; //液晶使能控制sbit LCD_PSB = P1^2; //串/并方式控制unsigned char code zhu[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFE,0x7D,0x7F,0xFF,0xFF,0xFF,0xFD,0xEF,0xFF,0xF0,0x04,0x3F,0xFF, 0xFF,0xFF,0xFF,0xFD,0xBD,0x7F,0xFF,0xFF,0xFF,0xE6,0xE7,0xFF,0xF4,0x00,0x7F,0xFF, 0xFF,0xFF,0xFF,0xFD,0x3D,0x7F,0xFF,0xFF,0xFF,0xDE,0x00,0xFF,0xF0,0x00,0x7F,0xFF, 0xFF,0xFF,0xFF,0xC4,0x3E,0x7F,0xFF,0xFF,0xFF,0xA8,0x00,0x1F,0xF0,0x00,0x7F,0xFF, 0xFF,0xFF,0xFF,0xBA,0x46,0x7F,0x7F,0xFF,0xFF,0x70,0x00,0x0E,0xF0,0x00,0xFF,0xFF, 0xFF,0xFF,0xFF,0x7D,0xBB,0x5F,0x7F,0xFF,0xFE,0xE1,0x70,0x01,0xF0,0x00,0xFF,0xFF, 0xFF,0xFF,0xFF,0x7D,0xA3,0xEF,0x9F,0xFF,0xFF,0x06,0xF8,0x03,0xF0,0x00,0xFF,0xFF, 0xFF,0xFF,0xF0,0x7C,0x07,0xB6,0x07,0xFF,0xFF,0xCC,0xF9,0x81,0xF0,0x01,0xFF,0xFF, 0xFF,0xFF,0xEF,0x75,0xDF,0xB8,0x01,0xFF,0xFF,0x98,0xF9,0x80,0xF1,0xF1,0xEF,0xFF, 0xFF,0xFF,0xEF,0x6D,0xEF,0x58,0xE0,0xFF,0xFF,0x90,0x70,0x00,0xF3,0xFB,0xFF,0xFF, 0xFF,0xFF,0xEF,0xBB,0xEE,0xD9,0xF0,0xFF,0xFF,0xB0,0x0C,0x00,0x73,0x1B,0xAF,0xFF, 0xFF,0xFF,0xF7,0x87,0xAE,0xC2,0xF0,0x7F,0xFF,0xE0,0x0C,0x62,0x36,0xFD,0xFF,0xFF, 0xFF,0xFF,0xF0,0x33,0xDD,0xD2,0x60,0x7F,0xFF,0xE0,0x31,0x61,0x76,0xFD,0xEF,0xFF, 0xFF,0xFF,0xEF,0xA0,0x3B,0xF4,0x18,0x3F,0xFF,0xE0,0x30,0x09,0x6C,0x3D,0xFF,0xFF, 0xFF,0xFF,0xDF,0x83,0xB6,0xA5,0x98,0x3F,0xFF,0xE0,0x00,0x01,0x7B,0xDD,0xAF,0xFF, 0xFF,0xFF,0xDE,0x83,0xCF,0xED,0x80,0x3F,0xFF,0xE0,0x00,0x01,0xFA,0xDD,0xFF,0xFF, 0xFF,0xFF,0xDD,0x7B,0xDE,0xF4,0x00,0x3F,0xFF,0xE0,0x00,0x09,0xFB,0xDD,0xEF,0xFF, 0xFF,0xFF,0xEE,0x5B,0xDF,0xF4,0x00,0x3F,0xFF,0xF0,0x00,0x29,0xF9,0xBB,0xFF,0xFF, 0xFF,0xFF,0xF1,0x79,0xBE,0xB4,0x00,0x3F,0xFF,0xF0,0x00,0x33,0xFF,0xFA,0xAF,0xFF, 0xFF,0xFF,0xEF,0x68,0x03,0xF8,0x00,0x3F,0xFF,0xF8,0x0F,0xE3,0xFF,0xF7,0xFF,0xFF, 0xFF,0xFF,0xDF,0x70,0x16,0xEA,0x01,0x3F,0xFF,0xF8,0x1F,0xC7,0xEF,0xF6,0xEF,0xFF, 0xFF,0xFF,0x07,0x80,0x0F,0xFA,0x1D,0x7F,0xE0,0x3C,0x7F,0x87,0xEF,0xEF,0xFF,0xFF, 0xFF,0xFF,0x0B,0xA0,0x2A,0xB6,0x1E,0x70,0x1F,0xBF,0x3E,0x0F,0xD3,0x9A,0xAF,0xFF, 0xFF,0xFF,0x85,0xA0,0x5F,0xF7,0x3C,0xF7,0xE0,0x3C,0x00,0x3F,0xDC,0x7F,0xFF,0xFF, 0xFF,0xFF,0x41,0x11,0x2E,0xF6,0x81,0xF8,0x00,0x3F,0x00,0xFF,0xAF,0x8E,0xEF,0xFF, 0xFF,0xFF,0x94,0xA0,0xFF,0xF7,0xFF,0xF8,0x00,0x3F,0xFF,0x1F,0xBF,0x77,0xFF,0xFF, 0xFF,0xFF,0xE2,0x3F,0xAA,0xB7,0x8B,0xFC,0x00,0x3F,0xDF,0xDF,0x6A,0xFA,0xAF,0xFF, 0xFF,0xFF,0x88,0x01,0xFF,0xFB,0x75,0xFC,0x00,0x3F,0xDF,0xBE,0xFE,0xFB,0xFF,0xFF, 0xFF,0xFF,0x40,0x00,0x3E,0xEB,0xB7,0xFE,0x00,0x3F,0xE0,0x7C,0x78,0xFB,0xF7,0xFF, 0xFF,0xFF,0x00,0x00,0x0F,0xFD,0xC7,0xFE,0x01,0xBF,0xFF,0xFA,0xA7,0x70,0x6F,0xFF, 0xFF,0xFF,0x0F,0xBF,0x0A,0xAA,0xFF,0xFE,0x0F,0xBF,0xFF,0xE7,0xCF,0x8F,0xAF,0xFF, 0xFF,0xFF,0x47,0x5E,0x2F,0xFF,0x7F,0xFF,0x1F,0xBF,0xFF,0xDF,0xEF,0x8F,0xAF,0xFF, 0xFF,0xFF,0x38,0x21,0xDE,0xEE,0x9F,0xFF,0xBF,0x7F,0xFF,0x3F,0xEF,0x0F,0xB7,0xFF, 0xFF,0xFF,0x07,0xD6,0x2F,0xFF,0xE7,0xFF,0xC0,0xFF,0xFC,0xFF,0xF0,0xEF,0xBF,0xFF, 0xFF,0xFF,0x41,0x8C,0xCA,0xBA,0xB9,0xFF,0xFF,0xFF,0xE3,0xFF,0xFD,0xF0,0x6F,0xFF, 0xFF,0xFF,0x93,0xCC,0xDF,0xFF,0xFE,0x3F,0xFF,0xFE,0x00,0x7F,0xFD,0xF7,0x7F,0xFF, 0xFF,0xFF,0x40,0x03,0x2E,0xEE,0xEF,0xC2,0x03,0xC0,0xFF,0x9F,0xFD,0xF7,0xAF,0xFF, 0xFF,0xFF,0xC0,0x03,0x3F,0xFF,0xFF,0xF9,0xFC,0x37,0xFF,0xE3,0xFE,0xE7,0xDF,0xFF, 0xFF,0xFF,0xD1,0xCC,0xFB,0xBB,0xBB,0xE7,0xFF,0x8F,0xFF,0xFC,0x3E,0x17,0xDF,0xFF,0xFF,0xFF,0xC0,0x8C,0xFF,0xFF,0xFF,0x9F,0xFF,0xDF,0xFF,0xFF,0xC6,0xF7,0xEF,0xFF,0xFF,0xFF,0xC0,0x90,0x2F,0xEF,0xEE,0x7F,0xFF,0xBF,0xFF,0xFF,0xF9,0xFB,0xF7,0xFF,0xFF,0xFF,0xC0,0xA0,0x3F,0xFF,0xF9,0xDF,0xFF,0xBF,0xFF,0xDF,0xFE,0xFB,0xFF,0xFF,0xFF,0xFF,0x10,0xC0,0x08,0x00,0x00,0x0F,0xFF,0xBF,0xFF,0x80,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xE8,0x80,0x7F,0xFF,0xFF,0xF3,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xC0,0x7F,0xFF,0xFF,0xFC,0x7E,0x5F,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,0x81,0xE0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};#define delayNOP0(); {_nop_();_nop_();};#define delayNOP1(); {_nop_();_nop_();_nop_();_nop_();};void delay(int In,int Out) {int i,j;for(i=0;i<In;i++){for(j=0;j<Out;j++){;}}}/*******************************************************************//*检查LCD忙状态 *//*lcd_busy为1时,忙,等待。

22 LCD12864液晶屏显示

22 LCD12864液晶屏显示
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HL-1 开发板
手把手教你学 51 单片机 C 语言教程 第 22 课 (12864 中文图形点阵液晶显示模块实验)
1.128*64 液晶模块简介 12864 是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及 12864 全点 阵液晶显示器组成。可完成图形显示,也可以显示 128 个(64 点阵)汉字。 实验板配套 128x64 点阵液晶模块,型号为 12864F,主要特性如下: 背光颜色:黄色 控制器:ST7920 尺寸:93*70mm 字库:带汉字库 接口: 可以串行, 或者并行工作, 强烈建议用串行模式工作, 接线数量大大减少, 而且显示速度和并行模式完全一致。 2.引脚定义与连接(需要用杜邦线自己连接,加强动手能力) 工作于串行模式时的引脚定义及与 HL-K52 开发板的连接如下: PIN1------------GND,接 0V PIN2------------VDD,接+5V PIN4------------ CS,片选,接 STC12C5A16AD 的 P0.0 脚 PIN5------------SID,数据,接 STC12C5A16AD 的 P0.1 脚 PIN6------------SCK,脉冲,接 STC12C5A16AD 的 P0.2 脚 PIN15-----------PSB 并行模式:PSB=1(高电平) ;串行模式:PSB=0(低电
3.操作命令 操作命令分为基本命令集和扩充命令集。具体见后面的两个表格。初学者不看 这两个表也可以,因为大部分命令你现在都不会用到。
慧净电子网:
慧净小店:/
ห้องสมุดไป่ตู้
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HL-1 开发板

LCD12864液晶的使用之字库型液晶(二)

LCD12864液晶的使用之字库型液晶(二)
Read_H=ReadByte(); //读高8位
Read_L=ReadByte(); //读低8位
write_LCD_command(ROW+0x80); //送入垂直地址
write_LCD_command(xlabel+0x80);//再送入水平地址
if(xlabel_bit<8)
{
switch(color)
address++;//指针地址指向下个位置
}
}
}
还有一点要注意的就是显示图片和显示ASCII码、汉字的初始化函数不同,显示图片用的是扩展指令:
void init_BMP()
{
write_LCD_command(0x36);//CL=1--8位。扩充指令(RE=1),绘图打开(G=1)
delay(100);//适当延时
下面这个显示温度曲线:
这两个的仿真图大家可以做一下!
/echoas/blog/item/525d2f74bc735508b151b92d.html
{
ROW=y;
}
else//显示的是下半屏
{
ROW=y-32;
xlabel+=8; //规定显示在下半屏
}
write_LCD_command(ROW+0x80); //送入垂直地址
write_LCD_command(xlabel+0x80);//再送入水平地址
ReadByte();//读取当前GDRAM数据前腰进行一次空读,接下来就可以读出数据了
break;
default:break;
}
write_LCD_data(Read_H);//将数据写入GDRAM

12864液晶显示图片,画点,画任意直线

12864液晶显示图片,画点,画任意直线

玩转12864液晶(2)--显示图片,画点,画任意直线本帖被红金龙吸味执行加亮操作(2009-07-04)通过上一篇的实验,相信大家都掌握了显示字符的基本用法。

下面我们来看一下12864液晶更高级的用法。

首先是它的绘图功能。

让我们先来显示一整副的图片吧,也就是128x64大小。

在使用绘图功能时,先要打开扩充指令集,然后再打开绘图功能。

接着就是送数据显示了。

这里我们首先要弄明白ST7920的显示坐标关系。

其显示坐标如下。

从图中可以看出,X方向共有8个字(16个字节)Y方向共有0~31 行分为上下两个屏。

弄懂了之后我们就可以依照此坐标来显示一整屏的图片了。

随便用一个图片的提取转换软件,讲一副126X64大小的图片转换成字节数据,总共字节大小为128*64/8 = 1024个字节。

下面我们来看看这个显示整屏图像的函数void v_Lcd12864DrawPicture_f( unsigned char code *pPicture ){unsigned char i, j, k ;for( i = 0 ; i < 2 ; i++ )//分上下两屏写{for( j = 0 ; j < 32 ; j++ ){v_Lcd12864SendCmd_f( 0x80 + j ) ;//写Y坐标if( i == 0 ) //写X坐标{v_Lcd12864SendCmd_f( 0x80 ) ;}else{v_Lcd12864SendCmd_f( 0x88 ) ;}for( k = 0 ; k < 16 ; k++ ) //写一整行数据{v_Lcd12864SendData_f( *pPicture++ ) ;}}}v_Lcd12864SendCmd_f( 0x30 ) ;}看看效果图片如下:显示一个人的图像下面来看看如何在任意一个位置显示或者是擦除一个点对于12864这种二值显示屏来说,其显示状态无外乎显示和不显示一个点这两种状态。

12864液晶图像显示图文教程——最全版

12864液晶图像显示图文教程——最全版
2:1 的过程中图片会被拉伸变形,不过缩小到 128*64 像素后也不 是太明显。 也可以使用 windows 操作系统自带的绘图工具修改图片大小,并保存为.bmp 格式文件,再利用自摸 提取软件提取字模。 例子如下:(该图片是利用 Photoshop 软件编辑而成的,像素 128*64,经绘图工具保存为.bmp 格式)
uchar i,j; write_cmd(0x34);//扩充指令集动作 write_cmd(0x34);//关绘图显示功能 for(i=0;i<32;i++)//上半屏 { write_cmd(0x80+i);//垂直地址 write_cmd(0x80); //水平地址,水平地址自动加 1 for(j=0;j<16;j++) { write_data(0x00); } } for(i=0;i<32;i++)//下半屏 { write_cmd(0x88+i);//垂直地址 write_cmd(0x88);//水平地址,水平地址自动加 1 for(j=0;j<16;j++) { write_data(0x00); } } write_cmd(0x36);//开绘图显示 write_cmd(0x30);//回到基本指令集 } //函数名称:display_image(uchar *p) //函数功能:显示图片 void display_image(uchar *p) { uchar i,j; write_cmd(0x34);//扩充指令集动作 write_cmd(0x34);//关绘图显示功能 /*上半屏显示设置*/ for(i=0;i<32;i++)//上半屏 { write_cmd(0x80+i);//垂直地址 write_cmd(0x80); //水平地址,水平地址自动加 1

LCD12864液晶资料介绍

LCD12864液晶资料介绍

LCD12864液晶资料介绍LCD12864液晶模块12864LCD显示块是所说的点阵液晶显示模块,就是由128*64个液晶显示点组成的一个128列*64行的阵列,所以也就叫成了12864.每个显示点都对应着有一位二进制数,0表示灭,1表示亮。

存储这些点阵信息的RAM被称为显示数据存储器.如果要显示某个图形或汉字就是将相应的点阵信息写入到对应的存储单元中。

图形或汉字的点阵信息是由自己设计,这时候问题的关键是显示点在液晶屏上的位置与其在存储器中的地址之间的关系.带中文字库的TS128X64(图2—6)是一种具有4位/8位并行、2线或3线串行多种接口方式,引脚功能见图表2-2,显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。

利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字、也可完成图形显示、低电压低功耗是其又一显著特点。

由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块.图2-6 TS12864液晶实物图编号名称引脚说明编号名称引脚说明1VSS电源地11DB4三态数据线2VDD电源正极12DB5三态数据线3V0对比度调整13DB6三态数据线4RS(CS)显示数据14DB7三态数据线5R/W读/写选择端(H/L)15PSB传输方式6E使能信号16NC悬空7DB0三态数据线17RESET复位端,低电平有效8DB1三态数据线18VOUT驱动电压输出端9DB2三态数据线19A背光源正极10DB3三态数据线20K背光源负极及对比度调整。

LCD12864的原理分析以及使用方法(含代码分析)

LCD12864的原理分析以及使用方法(含代码分析)

LCD12864液晶显示模块的使用与分析(函代码分析)一、LCD12864功能应用LCD12864液晶显示模块能显示中文汉字、数字、字符,能显示数字与字符的个数为64个(4行,每行16个数字或字符),能显示汉字的个数为32个(4行,每行8个汉字)。

其内置了8192个中文汉字(16*16的点阵)、128个字符(8*16点阵)、以及64*256 点阵显示RAM(GDRAM)。

图1外观尺寸图图2外观尺寸图图3 LCD12864读操作时序图4 LCD12864写操作时序二、LCD12864主要技术参数(1)工作电压:3.3V-5.5V,模块最佳电压为5V。

(2)可以在显示界面显示数字、字母和中文汉字。

(3)与外部单片机的通信方式有并行或串行两种通信方式,这里主要介绍并行通信方式。

(4)显示内容:128 列× 64 行(5)显示颜色:黄绿/蓝屏/灰屏(6)LCD 类型:STN(7)与MCU 接口:8 位或4 位并行/3 位串行(8)配置LED 背光(9)多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等三、LCD12864液晶显示的电路用法分析图5 LCD12864电路连接图图6 LCD12864电路连接图LCD12864模块主要用来显示所要的界面信息或数据,所以要求能显示汉字,字符和数字,而LCD12864满足系统要求的显示功能。

LCD12864在显示字母和数字时,是4*16的显示字符模块,即可以显示4行,每行可以显示16个字母或数字;在显示汉字时,是4*8的汉字显示模块,即可以显示4行,每行可以显示8个汉字。

下面进行介绍的是并行通信的显示方式。

按照电路原理图跟单片机最小系统进行连线,如图6所示。

LCD12864共有20个引脚,其引脚具体功能如表1所示,由表可得LCD12864引脚组成为8位数据传输端口(DB0-DB7);两个电源引脚(VCC,GND);两个电源背光引脚(BLK,BLA),控制LCD的背景亮度;一个VO引脚,外接一个上拉电阻(控制LCD12864的字符对比度,让字符更加的清晰可见);RST复位引脚,低电平有效,此处直接接高电平;第16、17位空引脚,不用管;剩下的RS,RW,EN 和PSB四个引脚则跟LCD12864的写入息息相关,通过PSB可以控制LCD12864跟单片机的通信方式,输入高电平,则LCD12864跟单片机的通信模式为并行通信,低电平则为串行通信。

电子小设计液晶显示屏幕元器件基础知识LCD12864点阵型液晶介绍

电子小设计液晶显示屏幕元器件基础知识LCD12864点阵型液晶介绍

电子小设计液晶显示屏幕元器件基础知识LCD12864点阵型液晶介绍LCD12864点阵型液晶简介:12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。

可完成图形显示,也可以显示8×4个(16×16点阵)汉字。

LCD12864点阵型液晶实物LCD12864 引脚介绍:管脚号管脚名称LEVER 管脚功能描述1 VSS 0 电源地2 VDD 5.0V 电源电压3 V0 - 液晶显示器驱动电压4 D/I(RS) H/L D/I=“H”,表示DB7∽DB0为显示数据D/I=“L”,表示DB7∽DB0为显示指令数据5 R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0R/W=“L”,E=“H→L”数据被写到IR或DR6 E H/L R/W=“L”,E信号下降沿锁存DB7∽DB0R/W=“H”,E=“H”DDRAM数据读到DB7∽DB07 DB0 H/L 数据线8 DB1 H/L 数据线9 DB2 H/L 数据线10 DB3 H/L 数据线11 DB4 H/L 数据线12 DB5 H/L 数据线13 DB6 H/L 数据线14 DB7 H/L 数据线15 CS1 H/L H:选择芯片(右半屏)信号16 CS2 H/L H:选择芯片(左半屏)信号17 RET H/L 复位信号,低电平复位18 VOUT -10V LCD驱动负电压19 LED - LED背光板电源20 LED- - LED背光板电源LCD12864液晶屏幕原理图:LCD12864液晶屏幕原理图LCD12864液晶屏幕驱动程序://12864液晶操作口sbit rs = P1^0;sbit rw = P1^1;sbit en = P1^2;/*******12864驱动程序************///===========液晶写指令========== void writecommand(uchar command){checkbusy();rs=0;rw=0;en=1;P0=command; //液晶数据线P0en=0;}//============液晶写数据============ void writedata(uchar date){checkbusy();rs=1;rw=0;en=1;P0=date;en=0;}//=========液晶设置==========void lcdset(void){writecommand(0x30); //基本指令集writecommand(0x01); //清屏,DDRAM的地址归零writecommand(0x02); //地址归位writecommand(0x0c); //显示开,光标关,反白关writecommand(0x06); //DDRAM地址加1}//=========设置光标===========void cursor(uchar y,uchar x){uchar command = 0x80;writecommand(0x0f);//开光标闪烁if( y == 2)y = 3;else if(y == 3)y = 2;command |= (y-1) << 3;command = (x-1);writecommand(command);}//========字符显示=======void display(uchar y, uchar x, uchar *p){switch (y){case 1:writecommand(0x7f x); break; //液晶第一行case 2:writecommand(0x8f x); break; //0x90 (x-1) case 3:writecommand(0x87 x);break;case 4:writecommand(0x97 x);break;default:break;}while(*p)writedata(*p );}//=========显示数字=======void displayNumber(uchar y,uchar x,uchar number) {switch (number){//引号内数字为中文全角输入占据一个汉字位置case 0:display(y,x,'0');break;case 1:display(y,x,'1');break;case 2:display(y,x,'2');break;case 3:display(y,x,'3');break;case 4:display(y,x,'4');break;case 5:display(y,x,'5');break;case 6:display(y,x,'6');break;case 7:display(y,x,'7');break;case 8:display(y,x,'8');break;case 9:display(y,x,'9');break;default:break;}}void displaytime0(void) //静态数据{display(1, 2, '智能作息系统');display(2, 3, '年');display(2, 6, '月');display(3, 1, '星期');display(3, 8, '℃');display(4, 3, '-'); //全角输入display(4, 6, '-');}/*******12864主程序调用************/lcdset();delay(1000);lcdset(); //调用两次可以解决上电后液晶不能自动复位问题/*显示版本信息*/display(1,3,'welcome!');display(2,2,'智能作息系统');display(3,3,'版本1.0');display(4,1,'制作人: 马云');writecommand(0x01); //清屏LCD12864液晶屏幕显示效果:LCD12864液晶屏幕显示效果。

在12864显示任意图片及参考程序

在12864显示任意图片及参考程序

用12864显示单色图片首先介绍本12864液晶显示器:型号:QC12864B因为单片机读取的是数据,而不是直接的图片。

得将图片进行取模,图片应该是单色图片,像素128*64。

下面我为大家介绍个实例。

①、在电脑附件画图,首先设置属性开始画图保存文件,注意格式:②、然后进行取模。

③、编程:#include<reg51.h>#define uchar unsigned char#define uint unsigned int //宏定义#define lcd P2 //数据端口sbit rs=P1^2; //指令/数据选择信号sbit rw=P1^1; //读写选择信号sbit e=P1^0; //使能端sbit psb=P1^3; //串并选择端,高电平为并行,低电平为串行uchar code ai[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xCE,0x00,0x00,0x00,0x00,0x00,0x01,0xC1,0xE0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xC7,0x00,0x00,0x00,0x00,0x00,0x03,0x31,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x0E,0xC0,0x00,0x00,0x00,0x00,0x00,0x03,0x9B,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x78,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x00, 0x00,0x00,0x00,0xF8,0xEF,0x00,0x00,0x00,0x00,0x00,0x1B,0xFC,0x1E,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0xFE,0x00,0x00,0x00,0x00,0x00,0x1E,0x60,0x38,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x38,0x70,0x20,0x00,0x00,0x00, 0x00,0x00,0x00,0x3E,0x63,0x00,0x00,0x00,0x00,0x00,0x30,0x7F,0xE0,0x00,0x00,0x00, 0x00,0x00,0x03,0xF8,0x73,0x00,0x00,0x00,0x00,0x00,0x33,0xF8,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0x37,0x00,0x00,0x00,0x00,0x00,0x06,0xE0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0xC7,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0xF8,0x1C,0x00,0x00,0x00,0x00,0x00,0x01,0x83,0x80,0x00,0x00,0x00, 0x00,0x00,0x0F,0xD8,0x7C,0x00,0x00,0x00,0x00,0x00,0x03,0xC7,0x00,0x00,0x00,0x00, 0x00,0x00,0x0F,0x18,0xE6,0x00,0x00,0x00,0x00,0x00,0x06,0x7E,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x19,0x87,0x10,0x00,0x00,0x00,0x00,0x0E,0x1C,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xF8,0x03,0x90,0x00,0x00,0x00,0x00,0x18,0x3E,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x78,0x01,0xF8,0x00,0x00,0x00,0x00,0x30,0xE3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x0F,0x00,0x00,0x07,0xD0,0x00,0x01,0xF1,0xE0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1C,0x0E,0x00,0x00,0x0C,0x38,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1C,0x1E,0x00,0x00,0x1C,0x38,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x1E,0x00,0x00,0x38,0x18,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x1E,0x00,0x00,0x38,0x18,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x1E,0x00,0x00,0x30,0x18,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x3E,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x3E,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x3E,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x2E,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1B,0xEE,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1B,0xEE,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xCE,0x00,0x00,0x38,0x00,0x00,0x00,0x60,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x19,0xCE,0x00,0x00,0x38,0x18,0x00,0x00,0x60,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0xCE,0x00,0x00,0x1C,0x10,0x00,0x00,0x71,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0x8E,0x00,0x00,0x0E,0x70,0x00,0x00,0x71,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x3E,0x1F,0x00,0x00,0x07,0xE0,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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=z;x>0;x--)for(y=110;y>0;y--);}void xiezhiling(uchar a)//写指令函数{rs=0;rw=0;lcd=a;delay(5);e=1;delay(5);e=0;}void xieshuju(uchar a)//写数据函数{rs=1;rw=0;lcd=a;delay(5);e=1;delay(5);e=0;}void qingping() //清除DDRAM的数据:送入0 {uchar x,y,a,b,c;x=0x80;y=0x80;xiezhiling(0x34);//关闭绘图功能for(a=0;a<2;a++){for(b=0;b<32;b++){xiezhiling(y+b);xiezhiling(x);for(c=0;c<16;c++)xieshuju(0x00);}x=0x88;}xiezhiling(0x36);//打开绘图功能xiezhiling(0x30);}void tupian(uchar *p) //图片数据提取函数{uchar x,y,a,b,c;xiezhiling(0x34); //关闭绘图功能x=0x80;y=0x80;for(c=0;c<2;c++){for(a=0;a<32;a++){xiezhiling(y+a);xiezhiling(x);for(b=0;b<16;b++)xieshuju(*p++);}x=0x88;}xiezhiling(0x36); //打开绘图功能xiezhiling(0x30);}void init() //初始化函数{xiezhiling(0x30);//功能设定为基本指令xiezhiling(0x0c);//显示开,游标关xiezhiling(0x01);//清除显示qingping(); //清屏}void main(){init();tupian(ai);while(1);}④、作品展示:谢谢!!!。

任务八 LCD12864液晶显示.

任务八 LCD12864液晶显示.

⑥ 写数据指令
R/W RS 0 1 D7 DB7 D6 DB6 D5 D4 DB5 D3 DB4 D2 DB3 D1 DB2 D0 DB1 DB0
功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令 执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0 表示不显示。写数据到DDRAM前,要先执行“设置页地址”及 “设置列地址”命令。 ⑦ 读数据指令
④ 列地址(Y Address)设置指令
R/W RS 0 0 DB7 0 DB6 1 DB5 DB4 DB3 DB2 DB1 DB0
显示列地址(0~63)
功能:设置了页地址和列地址,就唯一确定了显示RAM中的一个单 元,用指令“0xb8+add”表示,add取值范围是0~63。 这样MPU就可 以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。下 面图7-4画出了LCD12864点阵结构图,其中左半屏和右半屏都有64列, 64行分为8页,显示缓冲页地址、列地址与点阵位置对应,单片机只需 把字摸数据送到DDRAM中,就可显示所需出字符。
图8-8 单片机与12864硬件接线图
2. 流程图和编程思想 通过分析和接线, 12864液晶模块的驱动软件流程图如图7-9.
图8-9 软件流程图
通过以上流程图,具体的思想,首先初始化,主要完成TG12864的复位, 清屏等。然后复位操作(RST=0),其主要状态有设置显示状态为关显示 状态,显示起始寄存器清零,显示RAM第一行 对应显示屏上的第一行,在复 位期间状态字中RESET位置“1”。最后是清屏操作,主要完成对12864内 部的数据存储器清零。
表8-3 RAM地址映像表
⑤ 读状态指令
R/W RS DB7 DB6 DB5 DB4 DB0 DB3 DB2 DB1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档