新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Zynq的OLED驅動設計

        基于Zynq的OLED驅動設計

        作者: 時間:2015-04-22 來源:網絡 收藏

          4.2 寫數據和命令的實現

        本文引用地址:http://www.104case.com/article/273002.htm

          在SCLK時鐘下,根據要寫入的數據或者命令,設置SDIN引腳的電平,一位一位地把數據寫入SSD1306.SSD1306每次傳送的命令和數據均為一個字節,傳送數據和命令的區別是通過Set__DC宏,設置該函數為寫數據,通過Clr__DC宏,設置該函數為寫命令。實現一個字節的數據傳輸代碼如下:

          for(i=0;i<8;i++)

          {

          Clr__SCLK;

          if(data&0x80)

          Set_OLED_SDIN;

          else

          Clr_OLED_SDIN;

          Set_OLED_SCLK;

          data《=1;

          }

          4.3 顯存數據寫入SSD1306存儲器

          我們采用的辦法是在PS的內部建立一個OLED的GRAM(共128個字節),在每次修改的時候,只是修改PS上的GRAM(實際上就是SRAM),在修改完之后,一次性把PS上的GRAM寫入到OLED的GRAM.具體代碼如下:

          voidOLED_Refresh_Gram(void)

          {

          u8i,n;

          for(i=0;i<4;i++)

          {

          write_cmd(0xb0+i);//設置頁地址

          write_cmd(0x00);//設置顯示位置-列低地址,偏移了2列

          write_cmd(0x10);//設置顯示位置-列高地址

          for(n=0;n<128;n++)write_data(OLED_GRAM[n][i]);

          }

          }

          4.4 顯示結果

          系統實現了OLED的字母、數字和點陣圖形實時顯示,如圖5所示。

          

         

          圖5 OLED運行結果

          5 結論

          系統采用可軟硬件協同設計的器件,定制硬件IP核,采用傳統ARM程序設計方法設計OLED驅動程序和測試程序,實現了實時顯示。解決了基于器件在廣電儀器和電力儀表儀器中人機交互的工程技術,具有集成度高、可移植性強和通用性好等優點。


        上一頁 1 2 3 下一頁

        關鍵詞: Zynq OLED

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丰城市| 汶川县| 阳朔县| 罗定市| 衡南县| 重庆市| 祁阳县| 五大连池市| 渝中区| 台中市| 铁力市| 资兴市| 永川市| 都江堰市| 清苑县| 赞皇县| 长阳| 子洲县| 连山| 北碚区| 龙州县| 三明市| 长丰县| 秦皇岛市| 昌江| 华容县| 万全县| 昭苏县| 宁德市| 海宁市| 图片| 广德县| 庄浪县| 富顺县| 赞皇县| 江源县| 保靖县| 博白县| 堆龙德庆县| 雷波县| 修文县|