搜索
bottom↓
回复: 40

MCS-51单片机装备 彩色1.04英寸65k色OLED屏

[复制链接]

出0入0汤圆

发表于 2009-7-16 13:02:09 | 显示全部楼层 |阅读模式
OLED,昨天调试成功!

OLED程序根据网友“草真多”的AVR程序移植修改,在“AS-04单片机实验开发板”上硬件(STC89LE516RD+ 11.0592MHz)实验调试通过。
(AS-04 MCU StudyBoard + LCD1602 + 2.4 TFT LCD touch panel + OLED + VS1003B MP3)
20090701 11.00am pass 周密
20090715 18:05 ok at OLED board + AS-04 (STC89LE516RD+)


(原文件名:OLED SSD1332T7 模块1.jpg)


(原文件名:OLED SSD1332T7 模块2.jpg)


(原文件名:OLED SSD1332T7 模块3.jpg)


(原文件名:SSD1332T7显示效果1.jpg)


(原文件名:SSD1332T7显示效果2.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2009-7-16 13:19:13 | 显示全部楼层
/*-----------------------------------------------------------------------------------------------
OLED实验01:        显示彩条、单色彩色的测试
Cx51语言程序,文件名:main.c等         
程序在“AS-04单片机实验开发板”上硬件(STC89LE516RD+ 11.0592MHz)实验调试通过。
(AS-04 MCU StudyBoard + LCD1602 + 2.4 TFT LCD touch panel + OLED + VS1003B MP3)
电子科技大学成都学院 周密,20090715。QQ1881003,http://shop34222612.taobao.com/       
-----------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------
由于时间关系,没有自己编程写程序(有空还是应该自己写),不是原创;PCB设计和硬件焊接组装是原创。
特此声明!如果网友认为侵权,请联系我(QQ 1881003)!

致谢:
LCD程序根据LCD屏店主提供的以及其他网友的程序移植修改;
触摸屏手写程序根据网友“正点原子@SCUT”的STM32程序移植修改;
OLED程序根据网友“草真多”的AVR程序移植修改。

这里顺便说一句,移植修改程序,有时候比自己编写还费神费事哦!          
-----------------------------------------------------------------------------------------------*/
//20090701 11.00am pass 周密
//20090715 18:05 ok at OLED board + AS-04 (STC89LE516RD+)

#include <reg52.h>

        #define DAT P2
       
        sbit RW         =P1^0;//WR#
        sbit E                 =P1^1;//RD#
        sbit REST        =P1^2;       
        sbit RS         =P3^6; //DC
        sbit CS         =P1^6;
        sbit ON         =P3^7;

#define Uchar unsigned char
#define Uint unsigned int
extern unsigned char code tx9[];
extern unsigned char code tx6[];
extern unsigned char code tx7[];
extern unsigned char code tx8[];
extern unsigned char code tx5[];
void Initial(void);
void dispBmp(Uchar *Pbmp);
void ComWrite(Uchar COM);
void DataWrite(Uchar DATA);
void ColorSet(int ptr1);
void SendDATA(int ptr);
void Display1(void);
void Display2(void);
void Display3(void);
unsigned char RGB[]={0x00,0x1f,0x07,0xe0,0xf8,0x00,0x00,0x00,0xff,0xff};
unsigned char
ColorBar[]={0xff,0xff,0xf8,0x00,0xff,0xe0,0x07,0xe0,0x07,0xff,0x00,0x1f,0x00,0x00};

void delay(Uint x)     //延时函数Delay。x=1时为1ms延时程序
{
        Uchar  j=0;                 //根据汇编代码分析表明,用j进行的内部循环大约延时8us(12MHz)
        while(x--)
        {       
                for(j=0;j<125;j++) //125应根据实验进行补偿调整为123(12MHz)
                {;}       
        }
}


void main(void)
{
ON=0;
ON=1;
Initial();
while(1)
{
dispBmp(tx9);
dispBmp(tx5);
dispBmp(tx8);
dispBmp(tx7);
dispBmp(tx6);
dispBmp(tx5);
Display1();
Display2();
Display3();
ColorSet(0x0000);
ColorSet(0xffff);
ColorSet(0xf800);
ColorSet(0x07e0);
ColorSet(0x001f);
}
}


void Initial(void)
{
CS=0;
delay(10);
REST=0;
delay(10);
REST=1;
delay(10);
ComWrite(0x81); //set High Brightness
ComWrite(0xdf);
ComWrite(0x82); //set High Brightness
ComWrite(0x1f);
ComWrite(0x83); //set High Brightness
ComWrite(0xff);
ComWrite(0x87); //set High Brightness
ComWrite(0x0f);
ComWrite(0xa0);
ComWrite(0x60); //set 65k color format
ComWrite(0xa4); //set Normal Display
ComWrite(0xa8); //set Multiplex Ratio
ComWrite(0x3f);

ComWrite(0xad); //set Power Control
ComWrite(0x8f);
//ComWrite(0xa9); //set Power Control
//ComWrite(0x03);

ComWrite(0xaf); //set Display on
ComWrite(0xb8);
ComWrite(0x01);
ComWrite(0x05);
ComWrite(0x09);
ComWrite(0x0d);
ComWrite(0x11);
ComWrite(0x15);
ComWrite(0x19);
ComWrite(0x1d);
ComWrite(0x21);
ComWrite(0x25);
ComWrite(0x29);
ComWrite(0x2d);
ComWrite(0x31);
ComWrite(0x35);
ComWrite(0x39);
ComWrite(0x3d);
ComWrite(0x41);
ComWrite(0x45);
ComWrite(0x49);
ComWrite(0x4d);
ComWrite(0x51);
ComWrite(0x55);
ComWrite(0x59);
ComWrite(0x5d);
ComWrite(0x61);
ComWrite(0x65);
ComWrite(0x69);
ComWrite(0x6d);
ComWrite(0x71);
ComWrite(0x75);
ComWrite(0x79);
ComWrite(0x7d);
}


void ColorSet(int ptr1)
{
Uchar i;
Uint j;
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
for(i=0;i<64;i++)
{
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(j=0;j<96;j++)
{
SendDATA(ptr1);
}
}
delay(1000);
}


void dispBmp(Uchar *Pbmp)
{
register Uint i, j;
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
for(i=0;i<64;i++)
{
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(j=0;j<96*2;j++)
{
DataWrite(*Pbmp++);
}
}
delay(1000);
}
void ComWrite(Uchar COM)
{
E =1;
RS=0;
RW=0;
CS=0;
P2=COM;
//E =0;
CS=1;
RW=1;
RS=1;
}
void DataWrite(Uchar DATA)
{
E =1;
RS=1;
RW=0;
CS=0;
P2=DATA;
CS=1;
RW=1;
RS=0;
}
void SendDATA(int par)
{
RS=1;
RW=0;
CS=0;
P2=(par>>8);
CS=1;
RW=1;
RS=0;
RS=1;
RW=0;
CS=0;
P2=(0xff&par);
CS=1;
RW=1;
RS=0;
}
void Display1(void)
{
Uint i,j;
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
for(i=0;i<64;i++)
{
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(j=0;j<13;j++)
{
DataWrite(ColorBar[0]);
DataWrite(ColorBar[1]);
}
for(j=0;j<14;j++)
{
DataWrite(ColorBar[2]);
DataWrite(ColorBar[3]);
}
for(j=0;j<14;j++)
{
DataWrite(ColorBar[4]);
DataWrite(ColorBar[5]);
}
for(j=0;j<14;j++)
{
DataWrite(ColorBar[6]);
DataWrite(ColorBar[7]);
}
for(j=0;j<14;j++)
{
DataWrite(ColorBar[8]);
DataWrite(ColorBar[9]);
}
for(j=0;j<14;j++)
{
DataWrite(ColorBar[10]);
DataWrite(ColorBar[11]);
}
for(j=0;j<13;j++)
{
DataWrite(ColorBar[12]);
DataWrite(ColorBar[13]);
}
}
delay(1000);
}
void Display2(void)
{
Uint i,j;
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
for(i=0;i<32;i++)
{
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(j=0;j<32;j++)
{
DataWrite(RGB[0]);
DataWrite(RGB[1]);
}
for(j=0;j<32;j++)
{
DataWrite(RGB[2]);
DataWrite(RGB[3]);
}
for(j=0;j<32;j++)
{
DataWrite(RGB[4]);
DataWrite(RGB[5]);
}
}
for(i=0;i<32;i++)
{
for(j=0;j<48;j++)
{
DataWrite(RGB[6]);
DataWrite(RGB[7]);
}
for(j=0;j<48;j++)
{
DataWrite(RGB[8]);
DataWrite(RGB[9]);
}
}
delay(1000);
}
void display3(void)
{
unsigned int i;
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(i=0;i<6144;i++)
{
DataWrite(0xf8);
DataWrite(0x00);
}
delay(1000);
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(i=0;i<6144;i++)
{
DataWrite(0x07);
DataWrite(0xc0);
}
delay(1000);
ComWrite(0x0a1);
ComWrite(0x00);
ComWrite(0x75);
ComWrite(0x00);
ComWrite(0x3f);
ComWrite(0x15);
ComWrite(0x00);
ComWrite(0x5f);
for(i=0;i<6144;i++)
{
DataWrite(0x00);
DataWrite(0x1f);
}
delay(1000);
}

出0入0汤圆

发表于 2009-7-16 15:48:19 | 显示全部楼层
STC89LE516RD换华邦的W78E365来试试  也是64KROM
价格便宜一般QFP也就5.50元

出0入0汤圆

 楼主| 发表于 2009-7-16 16:39:39 | 显示全部楼层
你给个W78E365样品,实验一下

出0入0汤圆

发表于 2009-7-16 19:19:52 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2009-7-21 12:19:09 | 显示全部楼层
再上几张显示效果图:



(原文件名:SSD1332T7显示效果4.jpg)

出0入0汤圆

发表于 2009-8-7 21:00:03 | 显示全部楼层
能否用LCDHype驱动,显示电脑的信息啊

出0入0汤圆

 楼主| 发表于 2009-8-13 13:33:05 | 显示全部楼层
能否用LCDHype驱动,显示电脑的信息啊 ?没用过!

出0入0汤圆

 楼主| 发表于 2009-8-13 13:45:21 | 显示全部楼层
再上几张显示效果图:

(原文件名:SSD1332T7显示效果7.jpg)


(原文件名:SSD1332T7显示效果12.jpg)

出0入0汤圆

发表于 2009-8-13 16:24:47 | 显示全部楼层
楼主,你的12V是怎么产生的?

出0入0汤圆

 楼主| 发表于 2009-8-27 21:10:13 | 显示全部楼层
楼主,你的12V是怎么产生的?

看见   OLED SSD1332T7 模块3.jpg  没有?  他们产生的。

出0入0汤圆

发表于 2009-8-27 22:13:33 | 显示全部楼层
【10楼】 zhou__mi
看见“OLED SSD1332T7 模块3.jpg”没有?  他们产生的。  
————————————————————
恩………这个板子……………………做一些上来卖吧。

出0入0汤圆

发表于 2009-8-28 00:15:07 | 显示全部楼层
mark  正好有屏

出0入0汤圆

发表于 2009-8-28 21:04:40 | 显示全部楼层
好东西,记号.

出0入0汤圆

发表于 2009-9-3 12:57:59 | 显示全部楼层
嗯 谢谢分享~~·

出0入0汤圆

发表于 2009-9-16 00:41:33 | 显示全部楼层
LZ能分享一下12v电源的电路么?
谢谢了

出0入0汤圆

发表于 2009-10-27 09:05:08 | 显示全部楼层
sdm

出0入0汤圆

发表于 2009-10-29 01:29:54 | 显示全部楼层
LZ的OLED转接板不错,自带12V升压电路了,能否提供成品或套件???偶订10片

出0入0汤圆

 楼主| 发表于 2009-10-30 22:25:10 | 显示全部楼层
OLED屏我买的用了些,http://item.taobao.com/auction/item_detail-0db1-b0de3e486bfdf1ed5f6fa119ca9dd227.htm 有销售
带12V升压电路OLED转接板有多的:http://item.taobao.com/auction/item_detail.jhtml?item_id=80da0a7ee99216f131acd5de8ff5f696&x_id=0db2

出0入0汤圆

发表于 2009-10-30 23:40:47 | 显示全部楼层
记号个,,

出0入0汤圆

发表于 2009-11-5 20:10:55 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-12-14 22:13:20 | 显示全部楼层
我也有个oled屏,不过我不会弄。

出0入0汤圆

发表于 2009-12-16 22:55:06 | 显示全部楼层
我的板子收到几天了,没忙过来焊接,今天一口气全都焊好了,一次OK,周老师不错,很仔细的告诉我焊接需要注意的细节。

正面 (原文件名:z1.jpg)


背面 (原文件名:b1.jpg)

出0入0汤圆

发表于 2009-12-16 23:49:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-25 08:36:15 | 显示全部楼层
想请问楼主这个屏能在5v下工作吗?

出0入18汤圆

发表于 2009-12-27 17:04:53 | 显示全部楼层
不错嘛,楼主是四川的吗?

出0入0汤圆

发表于 2009-12-29 19:02:35 | 显示全部楼层
回25楼的朋友,周老师的板子只要3.3V供电就OK,因为SSD1332自带了升压驱动,只要外接MOS管和电感等元件就能产生所需的12V

出0入0汤圆

发表于 2010-1-4 17:55:47 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-1-8 15:49:38 | 显示全部楼层
屏幕买不到了。PCB和元件我做的多,可转让(5楼有地址。原来是想给我们“显示器技术”专科学生准备的,他们有OLED的理论课,有驱动实验课)。但是原来焊接过的,千万不要拆了,引脚很容易断(我买了22张屏幕,刚焊接安装技巧没到位,报废了7张屏幕)。

出0入0汤圆

发表于 2010-1-8 16:47:39 | 显示全部楼层
现在还有屏和板子卖吗?
不错的屏。
用过单色,和16色,但没用过彩色的OLED.

出0入0汤圆

发表于 2010-1-14 23:38:50 | 显示全部楼层
记号,学习中...

出0入0汤圆

发表于 2010-1-22 18:24:48 | 显示全部楼层
我有10块这个屏。谁要买的抓紧啊!

出0入0汤圆

发表于 2010-3-21 16:20:32 | 显示全部楼层
早就听说周老功力超强了。今天见识到了。

出0入0汤圆

发表于 2010-4-6 19:44:36 | 显示全部楼层
回复【楼主位】zhou__mi
-----------------------------------------------------------------------

早就买了一些着这种屏,一直没调。有几点不明,还望周老师赐教。

1 我看到您的板上用的电感,是小封装的,不知道通过的电流多大?

2 技术手册上的 N-MosFET 太难搞了,有没有替代型号推荐。SI2302 可以吗?

3 总感觉技术手册给的参数过于严格,有没有什么建议。

谢过,谢过

出0入0汤圆

 楼主| 发表于 2010-8-26 12:29:58 | 显示全部楼层
回34楼。没时间去查: 1N5822
                      MGSF1N02LT1

出0入0汤圆

发表于 2010-12-23 12:40:42 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-12-24 20:24:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-3 10:13:00 | 显示全部楼层
我的屏可以画线 矩形 不能写字 什么情况

出0入0汤圆

发表于 2011-9-14 21:34:07 | 显示全部楼层
请问各位大侠! 谁用过维信诺的VGF160128B-S001   
请教  焊接方法  和 驱动程序  我的邮箱:zhaochuanyu1982@sina.com  
我的QQ:149233310  
以下是我在买屏的淘宝网址:http://item.taobao.com/item.htm?id=10453536837

出0入0汤圆

发表于 2013-9-12 21:26:19 | 显示全部楼层
有没有背部无 PCB及零件全彩的 OLED
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 06:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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