1.46寸的OLED显示屏的驱动芯片好神秘

2020-01-30 13:59发布

我刚来公司不久,公司让我给新产品设计一款OLED液晶屏。但是驱动芯片居然是SSD1327的。找了几天,练个1327的影子都没查到。眼看时间一天天过去,过几天就要上交任务了,愁死我了,谁能救救我啊,万分感谢。!这是本人写的程序,求高手指点
#include<C8051F000.h>
#define uchar unsigned char
#define uint unsigned int
sbit DC=P1^3;
sbit CS=P1^1;
sbit CLK=P2^0;
sbit DIN=P2^1;
sbit LED=P3^3;
void delay(uchar k)
{
        uchar i,j;
        for(i=0;i<100;i++)
                for(j=0;j<k;j++);

}
void writeCOM(uchar com)
{
        uchar i;
        CS=0;
        DC=0;
        for(i=0;i<8;i++)
        {
                CLK=0;
                if(com&0x80==0x80)
                        DIN=1;
                else
                        DIN=0;
                CLK=1;
                CLK=1;
                com<<=1;
        }
        CS=1;
        DC=1;               
}
void writeDAT(uchar dat)
{
        uchar i;
        CS=0;
        DC=1;
        for(i=0;i<8;i++)
        {
                CLK=0;
                if(dat&0x80==0x80)
                        DIN=1;
                else
                        DIN=0;
                CLK=1;
                CLK=1;
                dat<<=1;
        }
        CS=1;
        DC=0;
}
void int_dis(void)
{
        uint i,j;
        writeCOM(0xAE);//关闭OLED
        writeCOM(0x15);//设定显示列地址
        writeCOM(0x00);
        writeCOM(0x3F);
        writeCOM(0x75);//设定显示行地址
        writeCOM(0x00);
        writeCOM(0x4F);
        writeCOM(0x81);//设定对比度
        writeCOM(0x40);
        writeCOM(0xA0);//设定重置数据
        writeCOM(0x00);
        writeCOM(0xA1);//设定显示起始地址
        writeCOM(0x00);
        writeCOM(0xA2);//设定显示结束地址
        writeCOM(0x00);
        writeCOM(0xA4);//设定显示模式
        writeCOM(0xA8);//设定驱动路数
        writeCOM(0x5F);
        writeCOM(0xB1);//设定相位长度
        writeCOM(0x53);
        writeCOM(0xB3);//设定显示时钟
        writeCOM(0x41);
        writeCOM(0xBC);//设定电压
        writeCOM(0x10);
        writeCOM(0xBE);//设定VCOMH
        writeCOM(0x05);//0.8*VCC
        writeCOM(0xAB);//选择外部VDD供电
        writeCOM(0x00);
        writeCOM(0xAE);//打开OLED
        delay(50);
        LED=0;
        delay(10);
        for(i=0;i<128;i++)
                for(j=0;j<64;j++)
                         writeDAT(0xf0);
       
}
void main()
{
while (1)
{

        WDTCN = 0xDE;
        WDTCN = 0xAD;
        PRT1CF = 0x00;
        PRT2CF = 0x00;
    PRT3CF = 0xff;
        int_dis();
        LED=1;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。