找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4394|回復(fù): 3
收起左側(cè)

各位大神,誰有用51驅(qū)動128x64的LCD,驅(qū)動芯片是ST7567

[復(fù)制鏈接]
ID:127575 發(fā)表于 2016-6-21 17:09 | 顯示全部樓層 |閱讀模式
各位大神幫幫忙,程序的時序沒有問題,硬件方面參考手冊,現(xiàn)在貼上c文件,


#include "reg51.h"
#include "absacc.h"
#define unchar  unsigned char
#define unint   unsigned int
//--------------------------------------------------------- 4線SPI接口 驅(qū)動
                                                                                                                                                  
sbit    RSTB        =P1^3;

sbit    SDI     =P1^0;
sbit        SCL                =P2^0;
sbit    CS0          =P1^4;
sbit    A0      =P1^2;

sbit    KEY            =P1^5;
//sbit    LED            =P2^0;
unchar code graphic1[]=
{

/*--  寬度x高度=128x64  --*/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x81,0xC1,0x41,0x41,0x41,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x81,0x01,0x01,0x81,0x81,0xC1,0x01,0x81,0xC1,0x81,0x81,0xC1,0xC1,0x01,
0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0xBC,0x84,0xC4,0x74,0x10,0x18,0x08,0x08,0x08,0x60,0xF0,0xB0,
0xD0,0xF0,0xF8,0xFC,0xFE,0xFF,0xE7,0xF3,0xFD,0xF8,0xFC,0xFE,0xFE,0xFF,0xFD,0xFC,
0xFC,0xFE,0xF6,0xF2,0xD0,0x80,0x00,0x00,0x80,0x00,0xE0,0xC0,0xF0,0xF8,0xFE,0xFC,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,
0xFF,0xFE,0xFE,0xFF,0xF9,0xFC,0xF4,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xF8,0xFC,0xFC,0xFE,0xFE,
0xFA,0xFA,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x02,0x47,0xC7,0xCF,0xDF,0xEF,0xEE,0xEE,0xEF,0xF7,0x77,0x7F,0x7F,
0x3F,0x1F,0x1F,0x3F,0x3F,0x3F,0xFF,0xDF,0xD7,0xD7,0xD5,0xC5,0xE5,0xF1,0xFF,0xFF,
0xFF,0xFF,0xFF,0x7F,0xFF,0xD9,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0xBF,0xDF,0x4F,0x77,0x83,0x03,0x01,0x00,0x00,0xC0,0xC0,0xF0,0xF8,0xFC,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
0xF0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x01,0x00,0x01,0x01,0x03,0x03,0x07,0x07,
0x05,0x05,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x81,0xC1,0x43,0xC7,0xC3,0x07,0x03,0x02,0x00,
0x00,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xE7,0xF7,0xFF,0xFF,0xF7,
0xFB,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xC7,0x85,0x86,0x87,
0x8F,0x8F,0x1D,0x19,0x3D,0x3C,0x3C,0x7C,0x7D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0xF7,0xFB,0xF8,0xFC,0xF8,0xF8,0xFC,0xFE,0xF8,0xFC,0xFE,0xFC,0xFF,0xFF,
0xFF,0xFF,0x7F,0x7F,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xE0,0xC0,0x67,0x7C,0x3F,0x3B,0x39,0x1C,0x1C,0x0E,0x0F,
0x0F,0x0F,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x0F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x01,0x21,0x71,0x59,0x9B,
0xEF,0x7F,0x3F,0x03,0x03,0x01,0x01,0x03,0x00,0x00,0x03,0x07,0x07,0x03,0x07,0x07,
0x0F,0x07,0x07,0x0F,0x07,0x0F,0x0F,0x0F,0x1F,0x9F,0x9F,0xDF,0xFB,0xFB,0x79,0x39,
0x19,0x18,0x08,0x18,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,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xC0,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0xC0,0xC0,0x00,0x00,
0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x01,0x01,0x80,0x80,0x00,0x01,0x01,0x00,
0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x84,0xEC,0x79,0x93,0xD7,0x77,0xFF,0xFD,0x6B,0xCB,
0x89,0x80,0x80,0x00,0x00,0x40,0x48,0x7F,0x3F,0xA4,0xE4,0x7F,0x3F,0x7F,0x7F,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x02,0x02,0x7A,0x7A,0xFE,0xFF,0x25,0x7D,0x7D,0x01,0x01,
0x00,0x00,0x00,0x48,0x69,0x39,0xFF,0xFF,0x14,0x24,0x25,0x35,0xFF,0xFF,0x10,0x10,
0x00,0x00,0x00,0x3E,0x3F,0x25,0x3F,0xBF,0xFF,0x7F,0x14,0x14,0xFF,0xFF,0x00,0x00,
0x00,0x08,0x2C,0xFF,0xFB,0xEA,0xC2,0xFD,0x7F,0xF3,0xFF,0x0E,0xC0,0xC0,0x00,0x00,
0x48,0x69,0x39,0xFF,0xFF,0x14,0x24,0x25,0x35,0xFF,0xFF,0x10,0x10,0x00,0x00,0x44,
0x64,0xFF,0xFF,0x0A,0x12,0xB2,0xFF,0xFF,0xB9,0x81,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x83,0x83,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x83,
0x83,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x83,0x83,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,0x83,0x83,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x82,0x83,0x81,0x80,0x80,0x81,0x83,0x83,0x81,0x80,0x80,
0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x80,0x80,
0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x80,0x83,0x83,0x80,0x80,0x80,0x80,0x80,
0x81,0x83,0x83,0x81,0x81,0x81,0x80,0x80,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0xFF,
};
void Init_ST7567();
void Write_ST7567_COM(unchar COMDADA_4SPI);
void Write_ST7567_DISPLAY_DATA_serial_4SPI(unchar DADA_4SPI);
void Delay_ms(unsigned long value);
void HDReset();
void Keypress(void);
void clear_screen(unchar xx);
void Display_pic1();


void main()
{
//      Write_ST7567_COM(0xe2);       
//        SCL=1;
        Init_ST7567();

        while(1)
        {
//         clear_screen(0x33);
//                 Keypress();         
//         clear_screen(0xff);
//                 Keypress();
//         clear_screen(0x55);
//                 Keypress();
//         clear_screen(0xaa);
//                 Keypress();
//         Display_pic1();
//         Keypress();
//          Write_ST7567_COM(0xa7);           // //0xa6正向顯示,0xa7反向顯示
         Display_pic1();
         Keypress();
         }

}

//--------------------------------------------------------------------------

void Init_ST7567()
{
        HDReset();
        Delay_ms(100);

       Write_ST7567_COM(0xe2);          //SOFT RESET//寄存器復(fù)位

       Write_ST7567_COM(0xaf);          //0xaf顯示器開
       Write_ST7567_COM(0x2f);          //0x2f升壓電路,電壓管理電路,
                     
       Write_ST7567_COM(0x25);           //0x20-0x27為V5電壓內(nèi)部電阻調(diào)整設(shè)置

       Write_ST7567_COM(0x81);           // SET EV 調(diào)對比度
       Write_ST7567_COM(0x1F);           //0x01-0x3f電量寄存器設(shè)置模式

       Write_ST7567_COM(0xa0);           //0xa0為Segment正向,0xa1 為Segment反向
                     
       Write_ST7567_COM(0xc8);           //0xc0正向掃描,0xc8反射掃描

       Write_ST7567_COM(0xa6);           // //0xa6正向顯示,0xa7反向顯示
       Write_ST7567_COM(0xa4);           // //0xa4正常顯示,0xa5全屏點亮

//      Write_ST7567_COM(0xac);           //
//      Write_ST7567_COM(0x00);       

       Write_ST7567_COM(0xf8);           // //背壓比設(shè)置
       Write_ST7567_COM(0x00);                 //00--10
}


void clear_screen(unchar xx)
{
unchar i,j;
for(i=0;i<8;i++)
        {
                CS0=0;
                Write_ST7567_COM(0xb0+i);         //SET PAGE 0---8
            Write_ST7567_COM(0x10);         //SET COLUMN MSB
                Write_ST7567_COM(0x00);          //SET CLUMN LSB
                for(j=0;j<128;j++)
                {
                        Write_ST7567_DISPLAY_DATA_serial_4SPI(xx);
                }
         }
}

void Display_pic1()
{
        unint i,j,adressd=0;

        for(i=0;i<8;i++)
        {
                CS0=0;
                Write_ST7567_COM(0xb0+i);
            Write_ST7567_COM(0x10);
                Write_ST7567_COM(0x00);
                for(j=0;j<128;j++)
                {
                        Write_ST7567_DISPLAY_DATA_serial_4SPI(graphic1[adressd]);
                        adressd++;
                }
        }
}
//***************************************************************************SPI4
void Write_ST7567_COM(unchar COMDADA_4SPI)
{
        unchar bit8;
        A0=0;
        CS0=0;
        for(bit8=0;bit8<8;bit8++)
        {
                Delay_ms(10);
                SCL=0;
                Delay_ms(10);
                if((COMDADA_4SPI&0x80)==0x80)
                SDI=1;
                else               
                SDI=0;
                        Delay_ms(10);
                SCL=1;
                        Delay_ms(10);
                COMDADA_4SPI=(COMDADA_4SPI<<1);

        }
    CS0=1;
                       
}

void Write_ST7567_DISPLAY_DATA_serial_4SPI(unchar DADA_4SPI)
{   
        unchar bit8;
        A0=1;
        CS0=0;                               

        for(bit8=0;bit8<8;bit8++)
        {
        Delay_ms(10);
                SCL=0;
                Delay_ms(10);
                if((DADA_4SPI&0x80)==0x80)
                SDI=1;
                else
                SDI=0;
                Delay_ms(10);
                SCL=1;
                DADA_4SPI=(DADA_4SPI<<1);

        }
        CS0=1;
}

               
void Delay_ms(unsigned long value)
{
        unint i,j;
    for (i=0;i<value;i++)
                for (j=0;j<500;j++);
}

void HDReset()
{
        RSTB=0;
        Delay_ms(2);
        RSTB=1;
        Delay_ms(4);
}

void Keypress()
        {
        while(KEY)
        Delay_ms(10);
        }                  

回復(fù)

使用道具 舉報

ID:127575 發(fā)表于 2016-6-21 17:11 | 顯示全部樓層
完全不知道問題出在哪,各位大神幫幫忙,或者能提供一份已經(jīng)調(diào)試成功的51版本ST7567LCD驅(qū)動,小弟感激不盡

回復(fù)

使用道具 舉報

ID:748788 發(fā)表于 2023-4-16 17:08 | 顯示全部樓層
程序沒錯,編譯下載可用
回復(fù)

使用道具 舉報

ID:996773 發(fā)表于 2023-4-17 10:47 | 顯示全部樓層
還是自己寫一個吧,驅(qū)動12864是基本功,這個不會自己寫,路很難走
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表