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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

OLED12864源代碼分享 IIC協議

[復制鏈接]
跳轉到指定樓層
樓主
以下代碼的截圖的OLED分區顯示漢字因為字符的代碼。請按照左邊的編號自行謄寫

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

使用道具 舉報

沙發
ID:60656 發表于 2021-4-9 22:51 | 只看該作者
請教樓主,OLED 顯示數字 數列排版 字符旋轉90度 有什么思路
回復

使用道具 舉報

板凳
ID:390416 發表于 2021-4-13 09:23 | 只看該作者
zxq9781 發表于 2021-4-9 22:51
請教樓主,OLED 顯示數字 數列排版 字符旋轉90度 有什么思路

那就需要90度計算,比較麻煩
回復

使用道具 舉報

地板
ID:884042 發表于 2021-4-17 10:54 | 只看該作者
zxq9781 發表于 2021-4-9 22:51
請教樓主,OLED 顯示數字 數列排版 字符旋轉90度 有什么思路

你直接在字模軟件里改變取模方式就行了,OLED的控制器有專用的90度顯示指令,好好看芯片手冊
回復

使用道具 舉報

5#
ID:60656 發表于 2021-4-18 19:50 | 只看該作者
xjx51 發表于 2021-4-17 10:54
你直接在字模軟件里改變取模方式就行了,OLED的控制器有專用的90度顯示指令,好好看芯片手冊

ASIC 字符用的幾個用漢字 取模 旋轉一下搞定,90度旋轉的指令沒找到
回復

使用道具 舉報

6#
ID:903287 發表于 2021-5-5 10:01 | 只看該作者
#include "all.H"

u8 xdata OLED_Write_Buffer[8][8][16];
u8 xdata OLED_Modify_Allow=0;

void OLED_Write_Reg(u8 Reg)
{
        IIC_Start();
        IIC_Write_Byte(0x78);
        IIC_Read_Ack();
        IIC_Write_Byte(0x00);
        IIC_Read_Ack();
        IIC_Write_Byte(Reg);
        IIC_Read_Ack();
        IIC_Stop();
}

void OLED_Write_Data(u8 PAGE,u8 SEG16)
{
        u8 i;
        PAGE=0;
        SEG16=0;
       
        OLED_Write_Reg(0xb0+PAGE);
        OLED_Write_Reg(SEG16|0x10);
        OLED_Write_Reg(0);
       
        IIC_Start();
        IIC_Write_Byte(0x78);
        IIC_Read_Ack();
        IIC_Write_Byte(0x40);
        IIC_Read_Ack();
        for(i=0;i<16;i++)
        {
                IIC_Write_Byte(OLED_Write_Buffer[PAGE][SEG16][i]);
                IIC_Read_Ack();
        }
        IIC_Stop();       
}

void OLED_New_Display_Ser()
{
        static xdata u8 count;
        static xdata u8 PAGE=0;
        switch(count)
        {
                case 10:/*OLED_Modify_Allow=0;*/OLED_Write_Data(PAGE,0);break;
                case 20:OLED_Write_Data(PAGE,1);break;
                case 30:OLED_Write_Data(PAGE,2);break;
                case 40:OLED_Write_Data(PAGE,3);break;
                case 50:OLED_Write_Data(PAGE,4);break;
                case 60:OLED_Write_Data(PAGE,5);break;
                case 70:OLED_Write_Data(PAGE,6);break;
                case 80:OLED_Write_Data(PAGE,7);count=0;PAGE++;PAGE=PAGE%8;break;
               
                default:OLED_Modify_Allow=1;break;
        }
        count++;
}

void OLED_Display_Symbor_ser(u8 PAGE,u8 SEG16,u8 Dat1,u8 Dat2)
{
        u8 data i,Value1,Value2;
        Value1=Dat1-' ';
        Value2=Dat2-' ';
        for(i=0;i<8;i++)
        {
                OLED_Write_Buffer[PAGE][SEG16][i]=F8X16[Value1*16+i];
        }
        for(i=0;i<8;i++)
        {
                OLED_Write_Buffer[PAGE][SEG16][i+8]=F8X16[Value2*16+i];
        }
        for(i=0;i<8;i++)
        {
                OLED_Write_Buffer[PAGE+1][SEG16][i]=F8X16[Value1*16+8+i];
        }
        for(i=0;i<8;i++)
        {
                OLED_Write_Buffer[PAGE+1][SEG16][i+8]=F8X16[Value2*16+8+i];
        }
}

void OLED_Display_Chines_Ser(u8 PAGE,u8 SEG16,u8 Dat)        //ÖDÎÄÏÔê¾
{
        u8 xdata i=0;
        for(i=0;i<16;i++)
        {
                OLED_Write_Buffer[PAGE][SEG16][i]=Hzk[Dat][i];
        }
        for(i=0;i<16;i++)
        {
                OLED_Write_Buffer[PAGE+1][SEG16][i]=Hzk[Dat+1][i];
        }
}

void OLED_Write_fixed_Buffer()
{
        OLED_Display_Symbor_Ser(0,0,'*','*');
        OLED_Display_Symbor_Ser(0,1,'*',' ');
        OLED_Display_Chines_Ser(0,2,0);
        OLED_Display_Chines_Ser(0,3,2);
        OLED_Display_Chines_Ser(0,4,4);
        OLED_Display_Chines_Ser(0,5,6);
        OLED_Display_Symbor_Ser(0,6,'*','*');
        OLED_Display_Symbor_Ser(0,7,'*','*');
       
        OLED_Display_Symbor_Ser(2,0,'2','0');
        OLED_Display_Symbor_Ser(2,1,' ',' ');
        OLED_Display_Chines_Ser(2,2,8);
        OLED_Display_Symbor_Ser(2,3,' ',' ');
        OLED_Display_Chines_Ser(2,4,10);
        OLED_Display_Symbor_Ser(2,5,' ',' ');
        OLED_Display_Chines_Ser(2,6,32);
        OLED_Display_Symbor_Ser(2,7,' ',' ');
       
        OLED_Display_Chines_Ser(4,0,16);
        OLED_Display_Chines_Ser(4,1,18);
        OLED_Display_Symbor_Ser(4,2,' ',' ');
        OLED_Display_Symbor_Ser(4,3,' ',' ');
        OLED_Display_Chines_Ser(4,4,12);
        OLED_Display_Symbor_Ser(4,5,' ',' ');
        OLED_Display_Chines_Ser(4,6,14);
        OLED_Display_Symbor_Ser(4,7,' ',' ');
       
        OLED_Display_Symbor_Ser(6,0,'w','q');
        OLED_Display_Symbor_Ser(6,1,'x','d');
        OLED_Display_Symbor_Ser(6,2,'z','.');
        OLED_Display_Symbor_Ser(6,3,'t','a');
        OLED_Display_Symbor_Ser(6,4,'o','b');
        OLED_Display_Symbor_Ser(6,5,'a','o');
        OLED_Display_Symbor_Ser(6,6,'.','c');
        OLED_Display_Symbor_Ser(6,7,'o','m');
}
       
void OLED_Init()
{
        OLED_Write_Reg(0x40);
       
        OLED_Write_Reg(0x81);
        OLED_Write_Reg(0xff);
       
        OLED_Write_Reg(0xda);
        OLED_Write_Reg(0x12);
       
        OLED_Write_Reg(0xc8);
        OLED_Write_Reg(0xa1);
        OLED_Write_Reg(0xa6);
       
        OLED_Write_Reg(0xa8);
        OLED_Write_Reg(0x3f);
       
        OLED_Write_Reg(0x20);
        OLED_Write_Reg(0x00);
       
        OLED_Write_Reg(0x8d);
        OLED_Write_Reg(0x14);
       
        OLED_Write_Reg(0xa4);
        OLED_Write_Reg(0xaf);
       
        OLED_Write_Reg(0xd3);
        OLED_Write_Reg(0x00);
       
        OLED_Write_Reg(0xd5);
        OLED_Write_Reg(0x00);
       
        OLED_Write_Reg(0xd9);
        OLED_Write_Reg(0x22);
       
        OLED_Write_Reg(0xdb);
        OLED_Write_Reg(0x20);
       
        OLED_Write_Data(0,0);
       
        OLED_Write_fixed_Buffer();
}
回復

使用道具 舉報

7#
ID:903287 發表于 2021-5-5 10:01 | 只看該作者
#include "all.H"

void IIC_Delay()
{
        _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}

void IIC_Init()
{
        P2M0&=0x3f;
        P2M1&=0x3f;
        SCL_GPIO=1;//ê±Öó
        _nop_();
        SDA_GPIO=1;//êy¾Y
        _nop_();
       
}

void IIC_Start()        //Æeê¼DÅoÅ
{
        SDA_GPIO=1;
        SCL_GPIO=1;

        IIC_Delay();
        SDA_GPIO=0;
        IIC_Delay();
        SCL_GPIO=0;
        IIC_Delay();
}

void IIC_Stop()        //í£Ö1DÅoÅ
{
       
        SDA_GPIO=0;
        SCL_GPIO=1;
        IIC_Delay();
        SDA_GPIO=1;
        IIC_Delay();
}

void IIC_Write_Byte(u8 IIC_Byte)//Ïò×üÏß·¢Ëíò»¸ö×Ö½ú
{
        u8 i;
        SCL_GPIO=0;
        SDA_GPIO=1;
        for(i=0;i<8;i++)
        {
                SDA_GPIO=(bit)(IIC_Byte&0x80);
                IIC_Byte<<=1;
                SCL_GPIO=1;
                IIC_Delay();
                SCL_GPIO=0;
                IIC_Delay();
        }
        SDA_GPIO=1;
}

u8 IIC_Read_Byte()//¶áè¡êy¾Y·μ»Ø
{
        u8 i,Value;
        SCL_GPIO=0;
        SDA_GPIO=1;
        for(i=0;i<8;i++)
        {
                Value=(Value<<1)|SDA_GPIO;
                SCL_GPIO=1;
                IIC_Delay();
                SCL_GPIO=0;
                IIC_Delay();
        }
        return Value;
}

u8 IIC_Read_Ack()//μ¥Ƭ»ú¼ì2aIIC′ó»ú·¢à′μÄó|′eDÅoÅ
{
        u8 ack=1,i=0;
        SCL_GPIO=1;
        IIC_Delay();
        while((ack)&&(i<5))//ÕaÑùD′2»»áËàÑ-»·
        {
                ack=SDA_GPIO;
                i++;
        }
        SCL_GPIO=0;
        return ack;
}

void IIC_Write_Ack(bit Ack)//μ¥Ƭ»ú·¢Ëíó|′e¸ø′ó»ú
{
        SDA_GPIO=Ack;
        IIC_Delay();
        SCL_GPIO=1;
        IIC_Delay();
        SCL_GPIO=0;
        IIC_Delay();
        SDA_GPIO=1;
        IIC_Delay();
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲第一区国产精品 | 久久久久久蜜桃一区二区 | 国产精品乱码一区二区三区 | av二区三区 | 黄色国产在线播放 | 国产日韩一区二区三免费高清 | www.亚洲区 | 国产天堂 | 天天天操| 欧美激情一区二区三级高清视频 | 日韩国产黄色片 | 综合国产在线 | 精品一区二区电影 | 欧美日韩国产高清视频 | 最新中文字幕第一页视频 | 国产精品成人国产乱一区 | 国产精品视频在线播放 | 精品在线一区 | 亚洲午夜三级 | 国产精品久久久乱弄 | 91在线看视频 | 欧美一区二区在线 | 午夜影院黄 | 国产精品久久久久久久久久久久 | 特级毛片www| www精品 | 福利电影在线 | 亚洲免费人成在线视频观看 | 久久亚洲一区二区三区四区 | 视频一区二区中文字幕日韩 | 国产精品高潮呻吟久久 | 特黄色毛片 | 蜜桃传媒一区二区 | 国产成人免费视频 | 久久一 | 视频1区| 免费成人高清在线视频 | 91影视 | 久久久久久久久一区 | 国产精品午夜电影 | 日日操av |