欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 0.96寸IIC12864OLED最強單片機例程,通俗易懂,方便引用 [打印本頁]

作者: 854100995    時間: 2018-11-16 11:07
標題: 0.96寸IIC12864OLED最強單片機例程,通俗易懂,方便引用
此例程在該模塊贈送資料的基礎上,新增
32x32字體顯示函數,


64x64字體顯示函數,

文字和數字反碼顯示函數(可用于設置位置顯示)

變量顯示示例(可用于顯示程序中定義的變化的變量)

十進制數轉字符串并顯示示例



附件中共兩個程序,一個用于程序存儲器較小的單片機上使用(如STC89C52),

一個用于程序存儲器13K以上的單片機上使用。

此程序親測可用于STC全系列單片機(12T和STC1T),STC1T顯示時刷新速度更快。


IMG_20181116_104431.jpg (753.34 KB, 下載次數: 194)

IMG_20181116_104431.jpg

IMG_20181116_104438.jpg (739.87 KB, 下載次數: 110)

IMG_20181116_104438.jpg

IMG_20181116_104441.jpg (718.23 KB, 下載次數: 107)

IMG_20181116_104441.jpg

IMG_20181116_104443.jpg (728.71 KB, 下載次數: 113)

IMG_20181116_104443.jpg

IMG_20181116_104531.jpg (696.28 KB, 下載次數: 132)

IMG_20181116_104531.jpg

IMG_20181116_104448.jpg (694.54 KB, 下載次數: 133)

IMG_20181116_104448.jpg

IMG_20181116_104452.jpg (734 KB, 下載次數: 124)

IMG_20181116_104452.jpg

IMG_20181116_104459.jpg (729.38 KB, 下載次數: 115)

IMG_20181116_104459.jpg

IMG_20181116_104505.jpg (714.69 KB, 下載次數: 113)

IMG_20181116_104505.jpg

IMG_20181116_104507.jpg (713.77 KB, 下載次數: 138)

IMG_20181116_104507.jpg

0.png (38.42 KB, 下載次數: 120)

0.png

0.png (14.92 KB, 下載次數: 103)

0.png

0.96寸IIC12864OLED最強例程.zip

192.84 KB, 下載次數: 1161, 下載積分: 黑幣 -5


作者: luo713ok    時間: 2018-11-30 13:20
謝謝樓主分享
作者: 1113634577    時間: 2018-12-4 21:54
學習參考
作者: 原來如鳥    時間: 2019-1-2 18:04
謝謝分享,我已經下載學習中,感謝。
作者: SengChuary    時間: 2019-1-2 18:49
好教材,支持!
作者: hellowC8051    時間: 2019-1-29 08:55
謝謝樓主分享
作者: bg4esa    時間: 2019-2-26 21:07
不錯,謝謝分享
作者: johnsbark    時間: 2019-3-23 08:25
謝謝分享,好東西啊
作者: a1357787200    時間: 2019-4-6 13:43
剛好學學
作者: qiuzf    時間: 2019-5-7 17:35
謝謝樓主分享
作者: 陳必成    時間: 2019-5-7 20:05
啥都別說了,就佩服你們這樣的人
作者: 陳仕祥    時間: 2019-6-1 09:33
先謝樓主
作者: luhshuay    時間: 2019-6-15 23:00
啥都別說了,就佩服你們這樣的人
作者: zhongzl728    時間: 2019-7-20 18:48
謝謝樓主分享
作者: 3760609865    時間: 2019-7-21 14:58
謝謝分享,下來學習學習。
作者: 3760609865    時間: 2019-7-21 15:00
謝謝分享,下來學習學習。
作者: asd安德森    時間: 2019-8-10 13:09
謝謝分享
作者: ahweixiao    時間: 2019-8-23 22:00
這個能用來測試超聲波么
作者: whsbk    時間: 2019-9-10 09:50
謝謝分享,iic只要兩個數據線可以節省io,正在找stc單片機驅動iic的方法,感謝分享
作者: zxy2266    時間: 2019-9-10 21:11
不知道樓主搞過SSD1305沒有,這個芯片的那個寶很少
作者: 3078    時間: 2019-9-16 14:14
xi謝謝樓主分享 拿來學習
作者: ljj200526    時間: 2019-9-17 21:56
下來學習一下,謝謝分享!
作者: 6467778399    時間: 2019-9-26 14:39


學習學習備用
作者: lyl_420819    時間: 2019-10-1 20:29
好資料,下載學習,謝謝分享。
作者: quhong0411    時間: 2019-10-15 16:02
感謝分享,學習中。
作者: caesarvan    時間: 2019-10-24 02:35
謝謝樓主分享
作者: 冷月楓    時間: 2019-10-28 15:51
STC8a8k怎么用不了啊

作者: z805502494    時間: 2019-12-19 21:56
好好,太好了謝謝
作者: waerdeng    時間: 2019-12-20 19:40

不錯,可以分享一下設計,學習一下
作者: adadad123    時間: 2019-12-28 23:30
謝謝樓主分享
作者: 米花卷    時間: 2019-12-29 13:42
雖然沒看懂但也覺得不錯
作者: bg4rfb    時間: 2019-12-30 12:32
謝謝分享!
作者: hfsdage    時間: 2020-4-1 20:26
感謝樓主分享。
作者: shiyb    時間: 2020-4-1 23:50
多謝,已經下載,學習中
作者: 太陽黑子1    時間: 2020-4-2 17:13
非常好啊,謝謝!
作者: david1011    時間: 2020-4-2 17:37
冷月楓 發表于 2019-10-28 15:51
STC8a8k怎么用不了啊

我也用不了,你現在可以了嗎

作者: xmfjfhcel    時間: 2020-4-3 07:57
這個程序我用STC589C52, 會卡死, 我卡死的地方在于SPRINTF這個函數。去掉就可以了。但這個的精華個人覺得就在于用了SPRINTF函數,我不明白為啥我用這個SPRINTF會卡死。 沒辦法,只好找的這個論壇別的可用的。 程序差不多。這個屏我看著高手們做的程序都頭暈,他們太歷害了,努力向他們學……
作者: 向日葵單片機    時間: 2020-4-12 09:28
謝謝分享
作者: 51heihuo    時間: 2020-4-12 20:27
謝謝分享,在學習這個屏幕,小字體都搞定了,自己嘗試寫個大字體32×32的,一直亂碼。下載下來學習一下!
作者: yyzf998    時間: 2020-5-2 11:20
樓主強大!威武!為你點贊!
作者: pangjineng    時間: 2020-5-21 12:01
"可用于顯示程序中定義的變化的變量"
讀起來好別扭
作者: 瓶子    時間: 2020-5-21 13:05
下載一份學習一下
作者: liqingyong    時間: 2020-5-21 15:14
謝謝分享
作者: hhdsdy    時間: 2020-5-22 00:19
下載一個看看,謝謝分享!
作者: wwh2382    時間: 2020-5-22 11:08
怎么圖片打開得很慢
作者: hhdsdy    時間: 2020-5-30 16:19
之前沒有用過OLED,在淘寶下單一個0.96寸(驅動芯片:SH1106(可兼容SSD1306))的時候剛好看到這個帖子,所以干脆就不用賣家提供的測試程序而直接用這個的,OLED一次點亮,但是最后面有一、兩列豎線,8頁都有,本以為是程序沒有處理好(故意設坑的程序也是有遇到的),但看了下程序沒有問題,帖子里也沒人反應有這個現象,難道是OLED生成就這樣的?但很快就否定了。
上賣家頁面看帶圖的評價里是正常的,那就肯定是程序的問題,翻看到另一個賣家里的介紹,里面的一個內容讓我注意到了(就不把圖片里的文字打出來了,大家自己看圖),這個說得很明白,那就百度查找翻看指令,好像沒有列偏移的,直接改設置坐標的程序,整行顯示的正常了,顯示半行的后面還有,肯定是清屏的還需要改,于是又改了全屏、清屏、初始化里的內容,這才一切正常。



之間百度指令時,設置列地址時,有的說列地址是1到128,也有的認為是0到127(針對1306驅動),有這爭論是因為設置坐標子函數的最后一句 OLED_WrCmd((x&0x0f)|0x01);     對 |0x01 有人發出疑問,之前沒看指令介紹時我也不理解,看了指令認為是編寫錯誤,指令里并不要求列地址低四位里的D0必須為1,那么|0x01就是畫蛇添足,也滿足不了加一的目的(D0為0有效果,為1就不變),這個歡迎大家討論一下。我是認為列地址是0到127的,先不說都是習慣地址從0開始的,就大家初始化時列地址低四位是送0x00而不是0x01就能說明問題,而且英文版里的資料也是這樣寫的,雖然我看不懂英文。     剛才還說到了全屏和清屏子函數,里面的是OLED_WrCmd(0x01);  也就是說列地址低四位是送0X01,而不是0X00,真有點自相矛盾啊

老眼昏花了,對于0.96寸的6*8字符都看不清了,就不對是0X00還是0X01進行驗證了,一列的差別對我來說真的不容易看到,希望有人有興趣驗證一下。另外,樓主既然掛上最強的例程,先不說這幾個還未定論的數據,至少程序要能選擇是SH1106還是SSD1306的驅動,免得驅動不同還得改好幾個地方。

再次謝謝樓主分享的程序!



作者: ii11nnocent    時間: 2020-7-23 16:05
謝謝樓主分享,單片機小白第一次接觸這個屏幕,正在學習中。
作者: 這是個用戶名    時間: 2020-8-31 13:24
有大佬可以告知一下32*32的字模怎么取嗎?自己取的都是亂碼,樓主取好的就可以用

作者: 杰瑤電子    時間: 2020-11-10 16:19
可以使用,就是不明白特殊字體怎么弄的
作者: 564988996    時間: 2021-2-25 16:23
樓主強大!威武!為你點贊
作者: guo_hit    時間: 2021-4-27 15:46
這個程序我用STM32, 會卡死, 我卡死的地方在于SPRINTF這個函數。
作者: engineerarui    時間: 2021-4-27 17:24
淺談LCD、OLED、TFT取模及其程序開發的算法取舍https://blog.csdn.net/yagnruinihao/article/details/47133455

單片機控制OLED12864顯示屏之模塊化編程
https://blog.csdn.net/yagnruinihao/article/details/115842157
作者: yygdzjs    時間: 2021-5-1 21:17
在某一個寶下單一個0.96寸(驅動芯片:SSD1306).
遇到了 白色條.
找了一段時間,不知道什么原因.
下載,測試一下. 謝謝!
作者: 無聊到處逛    時間: 2021-5-2 20:48
剛好要用到,謝謝樓主了
作者: yygdzjs    時間: 2021-5-9 15:48
關于   最后一句 OLED_WrCmd((x&0x0f)|0x01);  引起的第1豎顯示問題解決了.
未解決問題點:  全部點顯示  后 ,再全部滅  有 操作時留有  "鋸齒余暉"  問題, 請教一下大家

解決問題點:
//問題點1: OLED12864 無顯示
  這個程序是 STC89C52 的程序 ,
  1.1 IO修改
    //-STC89C52
        sbit SCL=P1^3; //串行時鐘
        sbit SDA=P1^2; //串行數據
     //-STC8H8K 修改后
        sbit SCL=P5^1; //串行時鐘
        sbit SDA=P5^0; //串行數據
    加
        //-STC8H8K   頻率設置 5.55296Mhz        
        P5M1 &= 0xFE;   P5M0 &= 0xFE;;   //設置為準雙向口  P5.0
        P5M1 &= 0xFD;   P5M0 &= 0xFD;;   //設置為準雙向口  P5.1        
  1.2現在測試是 STC8H8K  單片機,燒錄時內部晶振  改5.5296Mhz.
  
//問題點2: OLED12864 第1列顯示不正常
  2.1 修改  LQ12864.h  3個函數
//        // *********************OLED 設置坐標************************************
//        void OLED_Set_Pos(unsigned char x, unsigned char y)
//        {
//                OLED_WrCmd(0xb0+y);
//                OLED_WrCmd(((x&0xf0)>>4)|0x10);
//        //        OLED_WrCmd((x&0x0f)|0x01);  //列的第1行 錯誤,無法清零
//                OLED_WrCmd(x&0x0f);        //列的第1行 錯誤,無法清零  修改
//        }
//        // *********************OLED全屏************************************
//        void OLED_Fill(unsigned char bmp_dat)
//        {
//                unsigned char y,x;
//                for(y=0;y<8;y++)
//                {
//                        OLED_WrCmd(0xb0+y);
//        //                OLED_WrCmd(0x01);  //列的第1行 錯誤,無法清零  注銷
//                        
//                        OLED_WrCmd(0x10);
//                        for(x=0;x<X_WIDTH;x++)
//                        OLED_WrDat(bmp_dat);
//                }
//        }
//        // *********************OLED復位************************************
//        void OLED_CLS(void)
//        {
//                unsigned char y,x;
//                for(y=0;y<8;y++)
//                {
//                        OLED_WrCmd(0xb0+y);
//        //                OLED_WrCmd(0x01);  //列的第1行 錯誤,無法清零  注銷
//                        OLED_WrCmd(0x10);
//                        for(x=0;x<X_WIDTH;x++)
//                        OLED_WrDat(0);
//                }
//        }  
//問題點3: OLED12864 時鐘只能6Mhz左右才有顯示,修改后 5~35MHz 可以
  3.1 修改  LQ12864.h  3個函數(IO操作加入3個 空操作指令) ,增加系統帶頭文件
                void IIC_Start();
                void IIC_Stop();
                void Write_IIC_Byte(unsigned char IIC_Byte);

4.未解決問題點:  全部點顯示  后 ,再全部滅  有 操作時留有  "鋸齒余暉"  問題, 請教一下大家

while(1)
        {
                OLED_Fill(0xff); //屏全亮
                delay(4000);
                OLED_Fill(0x00); //屏全滅  操作時留有  "鋸齒余暉"  問題:
                delay(4000);
                OLED_P16x16Ch(24,0,1);
                OLED_P16x16Ch(40,0,2);
                OLED_P16x16Ch(57,0,3);
                OLED_P16x16Ch(74,0,4);
                OLED_P16x16Ch(91,0,5);
                for(i=0; i<8; i++)//通過點整顯示漢字 -- i表示字表數組的位置
                {
//                        OLED_P16x16Ch(i*16,0,i);
                         OLED_P16x16Ch(i*16,2,i+8);
                         OLED_P16x16Ch(i*16,4,i+16);
                         OLED_P16x16Ch(i*16,6,i+24);
                }
                delay(4000);
                OLED_CLS();//清屏

                OLED_P8x16Str(0,0,"HelTec");//第一行 -- 8x16的顯示單元顯示ASCII碼
                OLED_P8x16Str(0,2,"OLED Display");
                OLED_P8x16Str(0,4,"helte");
                OLED_P6x8Str(0,6,"12345");
                OLED_P6x8Str(0,7,"heltec");
                delay(4000);
                OLED_CLS();

                Draw_BMP(0,0,128,8,BMP1);  //圖片顯示(圖片顯示慎用,生成的字表較大,會占用較多空間,FLASH空間8K以下慎用)
                delay(8000);
                Draw_BMP(0,0,128,8,BMP2);
                delay(8000);
        }




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1