久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3550|回復: 0
打印 上一主題 下一主題
收起左側

SSD1309 2.42寸OLED驅動程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:904570 發表于 2021-5-8 12:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
SSD1309 2.42寸OLED驅動程序
可顯示變化,框架式編程。
有需要用的著拿去。不謝!!
全部工程在附件里就不貼出來了。有字庫頭文件的。
#include "all.h"

u8 xdata OLED_Write_Buffer[8][8][16];//漢字數組
sbit reset=P2^6;
//sbit scl=P2^4;
//sbit sda=P2^5;


void OLED_Write_com(u8 com)//寫指令
{
        IIC_start();
        IIC_Write_Byte(0x78);         //DC=0; RW=0  選擇SLAVE ADDRESS
        IIC_Read_Ack();
        IIC_Write_Byte(0x00);
        IIC_Read_Ack();
        IIC_Write_Byte(com);
        IIC_Read_Ack();
  delay(1);
        IIC_stop();
}
//寫數據到OLED顯示模塊
void transfer_data(u8 dat)
{
        IIC_start();
        IIC_Write_Byte(0x78);        //DC=0; RW=0   選擇SLAVE ADDRESS
        IIC_Read_Ack();
        IIC_Write_Byte(0x40);
        IIC_Read_Ack();
        IIC_Write_Byte(dat);
        IIC_Read_Ack();
        IIC_stop();
}
void lcd_address(u8 page,u8 column)
{
        column=column-1; //我們平常所說的第1列,在LCD驅動IC里是第0列。所以在這里減去1.
        page=page-1;
        OLED_Write_com(0xb0+page); //設置頁地址。每頁是8 行。一個畫面的64 行被分成8 個頁。我們平常所說的第1 頁,在LCD 驅動IC 里是第0 頁,所以在這里減去1
        OLED_Write_com(((column>>4)&0x0f)+0x10); //設置列地址的高4 位
        OLED_Write_com(column&0x0f); //設置列地址的低4 位
}

//=========================================================

//全屏清屏
void clear_screen()
{
        unsigned char i,j;
        for(j=0;j<8;j++)
                {
                lcd_address(1+j,1);
                for(i=0;i<128;i++)   //1305:132     1309:128
                        {
                        transfer_data(0x00);
                        }
                }
}


void display_string_8x16(u8 page,u8 column,u8 dat)
{
        u8 k,val,pag1,pag2;
        pag1=(page*2)-1;
        pag2=page*2;
        val=dat-' ';
                               
                                        lcd_address(pag1,column*8);
                                        for(k=0;k<8;k++)
                                                {
                                                       
                                                transfer_data(F8X16[val*16+k]); //寫數據到LCD,每寫完1 字節的數據后列地址自動加1
                                                       
                                          }
                                                lcd_address(pag2,column*8);
                                                for(k=0;k<8;k++)
                                                {
                                                       
                                                transfer_data(F8X16[val*16+8+k]); //寫數據到LCD,每寫完1 字節的數據后列地址自動加1
                                                       
                                          }
                                       
               
                       
}
void OLED_Display_buffer(u8 page,u8 seg,u16 buffer)//顯示一個5位數的變量
{
   display_string_8x16(page,seg,(buffer/10000)+'0');
         display_string_8x16(page,seg+1,(buffer%10000)/1000+'0');
         display_string_8x16(page,seg+2,(buffer%1000)/100+'0');
         display_string_8x16(page,seg+3,(buffer%100)/10+'0');
         display_string_8x16(page,seg+4,(buffer%10)+'0');
}

void display_string_16x16(u8 page,u8 column,u8 data1 )  //顯示16x16 點陣圖像、漢字、生僻字或16x16 點陣的其他圖標
{
        u8 i,pag1,pag2;
        pag1=(page*2)-1;
        pag2=page*2;
       
                lcd_address(pag1,(column*16)+1);
                for (i=0;i<16;i++)
                        {
                        transfer_data(Hzk[data1][i]); //寫數據到LCD,每寫完一個8 位的數據后列地址自動加1
                       
                        }
                        lcd_address(pag2,(column*16)+1);
                for (i=0;i<16;i++)
                        {
                        transfer_data(Hzk[data1+1][i]); //寫數據到LCD,每寫完一個8 位的數據后列地址自動加1
                       
                        }
               
}
void OLED_Write_fixed_Buffer()//寫固定漢字16X16
{
                        display_string_16x16(2,0,0);                       
            display_string_16x16(2,1,2);                               
            display_string_16x16(2,2,4);               
      display_string_16x16(2,3,6);       
                  
                       
}

void OLED_Init()
{

        reset=0;
        delay(1);
  reset=1;
        delay(3);
       
        OLED_Write_com(0xfd);
        OLED_Write_com(0x12);
       
        OLED_Write_com(0xAE);        // Set Display Off

        OLED_Write_com(0xD5);         //Set Display Clock Divide Ratio/Oscillator Frequency
        OLED_Write_com(0x90);        //         1305:0x60~0x90(324~396KHz)           1309: 0x70~0xd0(360~540KHz)

        OLED_Write_com(0xA8);        //Set Multiplex Ratio
        OLED_Write_com(0x3F);        //

        OLED_Write_com(0xD3);        //Set Display Offset
        OLED_Write_com(0x00);        //

        OLED_Write_com(0x40);        // Set Display Start Line

  OLED_Write_com(0xA1);        // Set SEG/Column Mapping (0xA0/0xA1)
        OLED_Write_com(0xC8);        // Set COM/Row Scan Direction (0xC0/0xC8)

        OLED_Write_com(0xDA);        //Set COM Pins Hardware Configuration
        OLED_Write_com(0x12);        // Set Alternative Configuration (0x02/0x12)
       
        OLED_Write_com(0x81);        //Set Current Control
  OLED_Write_com(0xDF);  //
       
        OLED_Write_com(0xD9);        //Set Pre-Charge Period
        OLED_Write_com(0x82);        //

        OLED_Write_com(0xDB);        //Set VCOMH Deselect Level
        OLED_Write_com(0x34);        //

//        OLED_Write_com(0x20);
//        OLED_Write_com(0x02);        // Set Page Addressing Mode (0x00/0x01/0x02)

        OLED_Write_com(0xA4);        // Set Entire Display On/Off (0xA4/0xA5)
        OLED_Write_com(0xA6);        // Set Normal/Inverse Display (0xA6/0xA7)
        clear_screen(); //清屏
        delay(10);
       
        OLED_Write_com(0xAF); //開顯示
       
       
        delay(30);
         //OLED_Write_fixed_Buffer();
}


ssd1309_2.42OLED顯示驅動.rar

84.81 KB, 下載次數: 65, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99精品久久久久久中文字幕 | 99精品欧美一区二区蜜桃免费 | 日韩乱码av | 久久男人 | 91精品国产自产精品男人的天堂 | 国产一区二区三区亚洲 | 国产精品久久久久久吹潮 | 久久精品亚洲精品 | 久久亚洲国产精品 | 亚洲欧美男人天堂 | 日韩高清中文字幕 | 成人精品一区二区 | 四虎影 | 国产福利视频 | 欧美精品一区二区三区在线四季 | 欧美一区视频 | 日韩欧美国产精品 | 日本一区二区三区四区 | 亚洲国产成人精品久久久国产成人一区 | 免费看a | 亚洲精品一区二区三区蜜桃久 | 日本免费在线观看视频 | 亚洲一区二区成人 | 99精品国产一区二区青青牛奶 | 午夜精品久久久久久久99黑人 | 一区二区三区网站 | 久久久激情视频 | 热re99久久精品国产99热 | 搞黄视频免费看 | 91精品久久久久久久久中文字幕 | 日韩欧美一区二区三区 | 91在线精品视频 | 亚洲精品乱码久久久久久按摩观 | 日日夜夜精品视频 | 亚洲成人免费观看 | 国产精品久久久久久久久 | 亚洲91| 在线看91 | 久久久精品一区 | 在线看91 | 国产精品一区二区欧美黑人喷潮水 |