清达光电HGS128646-Y-EH应用资料——产品编码:
OLED产品编码规则 HGS 25664 1 – Y - E H- LV- U
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺
⑴: 清达光电OLED模块: HGS→图形点阵OLED; HCS→字符OLED ⑵: 显示规格: 字符→每行字符数*行数; 图形→行点数*列点数 ⑶: 产品序列号: 字母→OLED玻璃; 数字→OLED模块 ⑷: 显示颜色: A→琥珀色; B→蓝色; C→彩色; G→绿色; W→白色; Y→黄色 ⑸: 工作温度:超宽温,具体请参照详细资料 ⑹: 电源: 省略→5V; LV→3.3V ⑺: 内部序号
清达光电HGS128646-Y-EH应用资料——模块规格
显示类型 OLED/黄色
数据输入 8-bits 80、串行
占空比 1/64
驱动 IC SSD1325
外壳 0.7 T
工作温度 -40 oC ~ 80 oC 储存温度 -40 oC ~ 80 oC
外形尺寸 93.0(W)×70.0(H)×9.4MAX.(T) mm
可视区 65.0(W)×33.0(H) mm
有效区 61.41(W)×30.69(H) mm
点阵 128 DOTS×64 DOTS ---
点距离 0.48(W)×0.48(H ) mm
大小 0.455(W)×0.455(H) m
原理结构图
清达光电HGS128646-Y-EH应用资料——外形及接口
外形图
1 VSS 0V 接地
2 VDD +5.0V 逻辑电压
3 V0 -- 空脚
4 A0 H/L 数据/指令选择
5 /WR L 写信号
6 /RD L 读信号
7~14 DB0~DB7 H/L 数据线 串行:D1--SI D0--SCL
15 /CS L 使能信号
16 /REST L 复位信号,低有效
17 M80 H/L
18 MS H/L M80 MS:接口选择 11: 8080 00: 串行
19 NC -- 空脚
20 FG -- 框架接地
注意:在串口模式,/WR、DB3~DB7接地,DB2空脚,/RD接高。
清达光电HGS128646-Y-EH应用资料——时序相关
8080时序图
清达光电HGS128646-Y-EH应用资料——参考电路
清达光电HGS128646-Y-EH应用资料——部分示例程序代码
(2)示例程序:#include<reg51.h> #include <string.h> #include <intrins.h> #include <math.h> #define uchar unsigned char #define uint unsigned int #define DATA P1 sbit CD = P3^0; sbit WR1 = P3^1; sbit RD1 = P3^3; sbit CS = P3^4; sbit RES = P3^5; //17 18脚拉高; uchar RAM_data[4];
延时子程序; *******************************************
void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=124;y>0;y--); } void delay_100us(uchar z) { z=z*16; while(z--); } /******************************************* 写入指令和数据; *******************************************/
void wr_data(uchar b) //写数据 ; { RD1=1; CS=0; CD=1; DATA=b; WR1=0; WR1=1; _nop_(); CS=1; }
void wr_com(uchar com) //写命令; { RD1=1; CS=0; CD=0; DATA=com; WR1=0; WR1=1; _nop_(); CS=1; }
/***********************转换程序 : 16阶灰度,一个地址8位,4位一个像素,想控制8个点,就须写4个地址的RAM数据; **************/
void change(uchar b) { uchar i; for(i=0;i<4;i++) { switch(b&0xc0) { case 0x00: RAM_data[i]=0x00;break; case0x40: RAM_data[i]=0x0f;break; case 0x80: RAM_data[i]=0xf0;break; case 0xc0: RAM_data[i]=0xff;break; default: break; } b=b<<2; wr_data(RAM_data[i]); } } /******************************************* 工作窗口设置; *******************************************
/ void SET_AW(uchar a,uchar b,uchar c,uchar d) { wr_com(0x15); wr_com(a); wr_com(b); wr_com(0x75); wr_com(0x0c+c); wr_com(0x0c+d); }
/******************************************* 隔行,隔列,全屏,隔点程序; *******************************************/ void all_screen(uchar b) //128*80整个RAM区清屏; { uchar i,j; wr_com(0x15); wr_com(0x00); wr_com(0x3f); wr_com(0x75); wr_com(0x00); wr_com(0x4f); for (j=0;j<80;j++) for (i=0;i<64;i++) wr_data(b); } void fill(uchar b)//128*64显示界面的操作,b=0清屏;b=F0H隔列;b=FFH 全屏; { uchar i,j; SET_AW(0,63,0,63); for (j=0;j<64;j++) for (i=0;i<64;i++) wr_data(b); } /********************************** 写入一副128*64的图片;(逐行式,顺向) *******************************************/
void wr_BMP(uchar code *s) { uchar i,j; SET_AW(0,63,0,63); for (j=0;j<64;j++) for (i=0;i<16;i++) change(*s++); } /******************************* 写入8*8字符; x y-->行列地址;n首字符序号,end_n尾字符序号; **********************/
void word_88(uchar x,uchar y,uchar n) //8*8字符单个写;
{ uchar i; SET_AW(x,x+3,y,y+7); for(i=0;i<8;i++) change(table_88[8*n+i]); } void show_88(uchar x,uchar y,uchar n,uchar end_n) //写入y一串8*8字符,可自动换行; { uchar i; for(i=n;i<=end_n;i++) { if(x>60) {y=y+8;x=0;} word_88(x,y,i); x=x+4; } }
篇幅有限更多程序请联系QQ 453189731