96*64dot65K色全彩oled显示屏的应用
oled显示屏的范例已经发过一次了。呵,不过,再次彩色的显示效果就是不一样。驱动芯片为ssd1332。控制MCU为M16。以下为部分代码。晚点上传图片效果。
图片是用微距模式拍的,能看得出点。实际上,现实中很难看出点。拍出来后经过放大了。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121530.JPG
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121531.JPG
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121532.JPG
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121533.JPG
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121534.JPG
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121535.JPG
http://cache.amobbs.com/bbs_upload782111/files_6/armok01121536.JPG
部分源代码如下:
void esbusini(void)
{
OLED_WR_DDR|=OLED_WR;
OLED_WR_PORT&=~OLED_WR;
OLED_RD_DDR|=OLED_RD;
OLED_RD_PORT&=~OLED_RD;
OLED_CS_DDR|=OLED_CS;
OLED_CS_PORT&=~OLED_CS;
OLED_RES_DDR|=OLED_RES;
OLED_RES_PORT&=~OLED_RES;
_delay_ms(100);
OLED_RES_PORT|=OLED_RES;
_delay_ms(100);
}
void ini_oled(void)
{
esbusini();
WriteCommand(0x15); //SET BIAS
WriteCommand(0x00); //Set line0 to COM0
WriteCommand(0x81); //set High Brightness
WriteCommand(0xdf);
WriteCommand(0x82); //set High Brightness
WriteCommand(0x1f);
WriteCommand(0x83); //set High Brightness
WriteCommand(0xff);
WriteCommand(0x87); //set High Brightness
WriteCommand(0x0f);
WriteCommand(0xa0);//Set Re-map & DataFormat地址自动增加
WriteCommand(0x60); //set 65k color format 256c
WriteCommand(0xa4); //set Normal Display
WriteCommand(0xa8); //set Multiplex Ratio
WriteCommand(0x3f);
WriteCommand(0xa9); //set Power Control加电
WriteCommand(0x03);
WriteCommand(0xaf); //set Display on
WriteCommand(0xb8);//Set Gray Scale Table
WriteCommand(0x01);
WriteCommand(0x05);
WriteCommand(0x09);
WriteCommand(0x0d);
WriteCommand(0x11);
WriteCommand(0x15);
WriteCommand(0x19);
WriteCommand(0x1d);
WriteCommand(0x21);
WriteCommand(0x25);
WriteCommand(0x29);
WriteCommand(0x2d);
WriteCommand(0x31);
WriteCommand(0x35);
WriteCommand(0x39);
WriteCommand(0x3d);
WriteCommand(0x41);
WriteCommand(0x45);
WriteCommand(0x49);
WriteCommand(0x4d);
WriteCommand(0x51);
WriteCommand(0x55);
WriteCommand(0x59);
WriteCommand(0x5d);
WriteCommand(0x61);
WriteCommand(0x65);
WriteCommand(0x69);
WriteCommand(0x6d);
WriteCommand(0x71);
WriteCommand(0x75);
WriteCommand(0x79);
WriteCommand(0x7d);
WriteCommand(0xbb);
WriteCommand(0x7f);
WriteCommand(0xbc);
WriteCommand(0x7f);
WriteCommand(0xbd);
WriteCommand(0x7f);
}
#define LED_DDRDDRD
#define LED_PORT PORTD
#define LED (1<
//-----------------------------------------------------------------------------
void disp_all()
{
uchar ii,jj;
WriteCommand(0x15);
WriteCommand(0x00);
WriteCommand(0x5f);
WriteCommand(0x75);
WriteCommand(0x00);
WriteCommand(0x3f);
for(ii=0;ii<64;ii++)
{
for(jj=0;jj<96;jj++)
{
WriteData(0xff);
WriteData(0xff);
}
}
}
int main()
{
uchar ii,jj;
// DDRD&=~(KEY1|KEY2);
// PORTD=_BV(KEY2)|_BV(KEY1);//键盘引脚上拉电阻开
LED_DDR|=LED;
LED_PORT&=~LED;
ini_oled();
LED_PORT&=~LED;
ini_oled();
_delay_ms(100);
disp_all();
LED_PORT|=LED;
while(1);
} 更多详情请看www.hhdzw.2008red.com。 楼主,这个OLED屏要多少米才能买到啊? 呵,www.hhdzw.2008red.com上边有报价的。 好像不是很贵,我们单位用的据说可以到640×480分辨率的单色OLED差不多一万块左右一片,很小的,才0.3英寸。 一万块左右一片?还不是很贵?我服了楼上的~~~~~真有米! 既然是65K色全彩oled显示屏,就显示一个全彩的照片看看效果吧
可否把图片搞得小一点?改为800左右的像素就足够了 彩虹大哥,楼主大哥的才一百多元,他给的网址里有,跟普通的液晶差不多,当然我说不是很贵了。
我们单位用的还不是很贵的话,我脑袋就有问题了:-),不过反正是单位出钱,我也不心疼,我自己哪有那么多钱玩那个,一年的工资啊!!! 此屏的大小为1.04inch。因为没有65K色的相应的(RGB对应)取模软件,故暂时没有办法显示65536色的显示屏。况且那边准备推出262144色的屏,也没有时间玩这个了。最近考试又多。无线接口都需要调试。将屏点亮后就不管了。
希望有这方面的玩家。 回复【8楼】astankvai 陈超
-----------------------------------------------------------------------
请问12864的oled的取模软件哪儿有下?谢谢 淘宝上有卖的,才10块! 回复【10楼】525vivi
淘宝上有卖的,才10块!
-----------------------------------------------------------------------
2006年一万块左右一片0.3吋的,现在是1.3吋的10元钱。
高科技的东东,价格走向是多么的滑稽。 现在是1.3吋的10元钱。
页:
[1]