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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

基于51單片機(jī)的OLED底層代碼

[復(fù)制鏈接]
ID:128396 發(fā)表于 2016-6-28 11:41 | 顯示全部樓層 |閱讀模式
基于51單片機(jī)的OLED底層代碼
0.png
  1. #include <reg52.h>
  2. #include "function.h"
  3. #include "word_lib.h"

  4. #define X_WIDTH 128        //顯示屏每行的顯示點(diǎn)數(shù)
  5. #define Y_WIDTH 64         //顯示屏每列的顯示點(diǎn)數(shù)

  6. /*************************************************************************************
  7.           以下為設(shè)置控制OLED的端口,D0、D1、RST、DC依次對(duì)應(yīng)OLED的CK、DI、RST、DC
  8. **************************************************************************************/
  9. sbit  OLED_D0 = P1^0;  
  10. sbit  OLED_D1 = P1^1;
  11. sbit  OLED_RST= P1^2;
  12. sbit  OLED_DC = P1^3;

  13. /*************************************************************************************
  14.           函數(shù)名稱:  void OLED_WrCmd(unsigned char cmd)
  15.           函數(shù)功能: OLED顯示屏下指令操作
  16.           調(diào)用函數(shù):  無(wú)       
  17.           入口參數(shù):  cmd
  18.           出口參數(shù):  無(wú)
  19.           返回值:    無(wú)
  20.           其他:      可以不理解,直接拿過(guò)來(lái)用
  21. **************************************************************************************/
  22. void OLED_WrCmd(unsigned char cmd)
  23. {
  24.     unsigned char i=8;
  25.     OLED_DC=0;;;;
  26.     OLED_D0=0;;;;
  27.     while(i--)
  28.     {
  29.         if(cmd&0x80)
  30.         {
  31.             OLED_D1=1;
  32.         }       
  33.         else
  34.         {
  35.             OLED_D1=0;;;;
  36.         }                                 
  37.             OLED_D0=1;;;;                                                          
  38.         ;;;;;;

  39.         OLED_D0=0;;   
  40.         cmd<<=1;;   
  41.     }        
  42.        
  43. }

  44. /**************************************************************************************
  45.     函數(shù)名稱:  void OLED_Fill(unsigned char bmp_dat)
  46.     函數(shù)功能: 讓OLED清屏或者全屏亮,取決于參數(shù)
  47.     調(diào)用函數(shù):  OLED_WrCmd(0xb0+y); OLED_WrDat(bmp_dat);
  48.     入口參數(shù):  bmp_dat//一般為0x00或者0xff
  49.     出口參數(shù):  無(wú)
  50.     返回值:    無(wú)
  51.     其他:      可用此函數(shù)進(jìn)行清屏操作,如OLED_Fill(0),可以清除所有的顯示
  52. ***************************************************************************************/
  53. void OLED_Fill(unsigned char bmp_dat)
  54. {
  55.     unsigned char y,x;
  56.     for(y=0;y<8;y++)
  57.     {
  58.         OLED_WrCmd(0xb0+y);
  59.         OLED_WrCmd(0x01);
  60.         OLED_WrCmd(0x10);
  61.         for(x=0;x<X_WIDTH;x++)
  62.         OLED_WrDat(bmp_dat);
  63.     }
  64. }

  65. /******************************************************************************************************
  66.           函數(shù)名稱:  void OLED_Init(void)   
  67.           函數(shù)功能: OLED顯示屏初始化
  68.           調(diào)用函數(shù):  OLED_WrCmd(unsigned char cmd),寫(xiě)命令CD_Fill(0x00);  //初始清屏  OLED_Set_Pos(0,0);寫(xiě)地址        
  69.           入口參數(shù):  無(wú)
  70.           出口參數(shù):  無(wú)
  71.           返回值:    無(wú)
  72.           其他:      可以不理解,直接拿過(guò)來(lái)用
  73. *******************************************************************************************************/
  74. void OLED_Init(void)        
  75. {  
  76.     OLED_D0=1;
  77.     //OLED_CS=1;        //預(yù)制SLK和SS為高電平         
  78.     OLED_RST=0;
  79.     ;;;;;;;
  80.     OLED_RST=1;
  81.    
  82.     //從上電到下面開(kāi)始初始化要有足夠的時(shí)間,即等待RC復(fù)位完畢   

  83.     OLED_WrCmd(0xae);//--turn off oled panel
  84.     OLED_WrCmd(0x00);//---set low column address
  85.     OLED_WrCmd(0x10);//---set high column address
  86.     OLED_WrCmd(0x40);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
  87.     OLED_WrCmd(0x81);//--set contrast control register
  88.     OLED_WrCmd(0xcf); // Set SEG Output Current Brightness
  89.     OLED_WrCmd(0xa1);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
  90.     OLED_WrCmd(0xc8);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
  91.     OLED_WrCmd(0xa6);//--set normal display
  92.     OLED_WrCmd(0xa8);//--set multiplex ratio(1 to 64)
  93.     OLED_WrCmd(0x3f);//--1/64 duty
  94.     OLED_WrCmd(0xd3);//-set display offset        Shift Mapping RAM Counter (0x00~0x3F)
  95.     OLED_WrCmd(0x00);//-not offset
  96.     OLED_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency
  97.     OLED_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec
  98.     OLED_WrCmd(0xd9);//--set pre-charge period
  99.     OLED_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
  100.     OLED_WrCmd(0xda);//--set com pins hardware configuration
  101.     OLED_WrCmd(0x12);
  102.     OLED_WrCmd(0xdb);//--set vcomh
  103.     OLED_WrCmd(0x40);//Set VCOM Deselect Level
  104.     OLED_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)
  105.     OLED_WrCmd(0x02);//
  106.     OLED_WrCmd(0x8d);//--set Charge Pump enable/disable
  107.     OLED_WrCmd(0x14);//--set(0x10) disable
  108.     OLED_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5)
  109.     OLED_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7)
  110.     OLED_WrCmd(0xaf);//--turn on oled panel   
  111.     OLED_Fill(0x00);  //初始清屏
  112.     OLED_Set_Pos(0,0);        
  113. }

  114. /**********************************************************************************
  115.           函數(shù)名稱:  void OLED_WrDat(unsigned char dat)
  116.           函數(shù)功能: 寫(xiě)下點(diǎn),每次寫(xiě)8個(gè),從上到下豎著寫(xiě),亮是1,滅是0
  117.           調(diào)用函數(shù):  無(wú)
  118.           入口參數(shù):  dat//一般為0x**,8位,即8個(gè)點(diǎn),亮或滅
  119.           出口參數(shù):  無(wú)
  120.           返回值:    無(wú)
  121.           其他:      
  122. **********************************************************************************/
  123. void OLED_WrDat(unsigned char dat)
  124. {
  125.     unsigned char i=8;
  126.     OLED_DC=1;;;;         
  127.     OLED_D0=0;;;;          
  128.     ;;;;   
  129.     while(i--)
  130.     {
  131.         if(dat&0x80)
  132.         {
  133.             OLED_D1=1;
  134.         } //1.1
  135.         else
  136.         {
  137.             OLED_D1=0;
  138.         }
  139.         OLED_D0=1;
  140.         ;;;;;;
  141.         //;;            
  142.         OLED_D0=0;;;;   
  143.         dat<<=1;   
  144.     }
  145. }

  146. /************************************************************************************
  147.           函數(shù)名稱:  void OLED_Set_Pos(unsigned char x, unsigned char y)
  148.           函數(shù)功能: 確定點(diǎn)亮顯示屏的起始位置
  149.           調(diào)用函數(shù):  OLED_WrCmd
  150.           入口參數(shù):  x、y分別為起始位置的橫縱坐標(biāo)
  151.           出口參數(shù):  無(wú)
  152.           返回值:    無(wú)
  153.           其他:      
  154. *************************************************************************************/
  155. void OLED_Set_Pos(unsigned char x, unsigned char y)
  156. {
  157.     OLED_WrCmd(0xb0+y);
  158.     OLED_WrCmd(((x&0xf0)>>4)|0x10);
  159.     OLED_WrCmd((x&0x0f)|0x01);
  160. }

  161. /***********************************************************************************
  162.     函數(shù)名稱: void Show_En_small(unsigned charx,unsigned char y,unsigned char En[])
  163.     函數(shù)功能: 寫(xiě)數(shù)字或字母,但建議用此函數(shù)寫(xiě)字母或冒號(hào)等符號(hào),調(diào)用例子見(jiàn)main函數(shù),
  164.                    后面有專(zhuān)門(mén)寫(xiě)數(shù)字的函數(shù)。
  165.     調(diào)用函數(shù): OLED_WrDat ();     OLED_Set_Pos();
  166.     入口參數(shù): x、y確定橫縱坐標(biāo),En[]確定顯示內(nèi)容
  167.     出口參數(shù): 無(wú)
  168.     返回值:   無(wú)
  169.     其他:
  170. *************************************************************************************/

  171. void Show_En_small (unsigned char x,unsigned char y,unsigned char En[])
  172. {
  173.     unsigned char e=0,i=0,j=0;
  174.    
  175.     while (En[j] != '\0')
  176.     {
  177.         e = En[j] - 32;
  178.         if(x>120)
  179.             {x=0;y++;}
  180.         OLED_Set_Pos(x,y);
  181.         for (i=0; i<6; i++)
  182.                 {
  183.             OLED_WrDat(EnSmallWord[e*6+i]);
  184.         }
  185.                 x+=6;
  186.         j++;
  187.     }
  188. }

  189. /****************************************************************************************
  190.     函數(shù)名稱:void Show_Number (unsigned char x, unsigned char y,unsigned char data)
  191.     函數(shù)功能:通過(guò)前兩個(gè)參數(shù)給定寫(xiě)坐標(biāo),第三個(gè)給一個(gè)數(shù)字,函數(shù)即可以在指定的位置寫(xiě)下這個(gè)數(shù)
  192.                   字,調(diào)用一次這個(gè)函數(shù)只能寫(xiě)下一個(gè)數(shù)字。具體調(diào)用方法見(jiàn)mian函數(shù)。
  193.     調(diào)用函數(shù):OLED_WrDat()
  194.     入口參數(shù):要寫(xiě)坐標(biāo)x,y,小字庫(kù)第data行
  195.     出口參數(shù):無(wú)
  196.     返回值:  無(wú)
  197.     其他:    無(wú)
  198. *****************************************************************************************/
  199. void Show_Number (unsigned char x,unsigned char y,unsigned char number)
  200. {
  201.     unsigned char i=0;
  202.         number*=6;
  203.     if(x>120)
  204.         {x=0;y++;}
  205.     OLED_Set_Pos(x,y);
  206.     for (i=0; i<6; i++)
  207.         {
  208.         OLED_WrDat(NumberSmallWord [number+i]);
  209.     }
  210. }

復(fù)制代碼


OLED_base.zip

37.68 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5

OLED底層代碼

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:91471 發(fā)表于 2016-6-28 17:36 | 顯示全部樓層
哥,小白弱弱的問(wèn)一下:
; 是什么意思?有什么作用?
;; 是什么意思?有什么作用?
;;; 是什么意思?有什么作用?
;;;; 是什么意思?有什么作用?
;;;;; 是什么意思?有什么作用?
;;;;;; 是什么意思?有什么作用?
;;;;;;; 是什么意思?有什么作用?
;;;;;;;; 是什么意思?有什么作用?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精产嫩模国品一二三区 | 欧美精品在线观看 | 高清欧美性猛交 | 日韩精品在线看 | 黄网免费看 | 成年女人免费v片 | 色就干| 亚洲一区二区免费看 | 欧美videosex性极品hd | 日韩视频免费看 | 国产精品免费大片 | 91精品久久久久久久99 | 日韩一二区在线观看 | 97超在线视频 | 欧美精品在线播放 | 91麻豆蜜桃一区二区三区 | 欧日韩不卡在线视频 | www.亚洲免费| 国产亚洲欧美日韩精品一区二区三区 | 在线视频一区二区三区 | 色天天综合 | 成人在线免费观看视频 | 国产在线麻豆精品入口 | 国产精品亚洲综合 | 亚洲三区视频 | 国产美女在线观看 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 阿v视频在线观看 | 欧美黑人一区 | 午夜欧美一区二区三区在线播放 | 国产精品片aa在线观看 | 在线观看av网站 | 一区二区三区四区免费在线观看 | 亚洲精品99 | 视频一区在线 | 欧美精品一区二区三区四区 在线 | 一区二区高清不卡 | 精品国产乱码久久久久久1区2区 | 亚洲精品一区二区三区在线 | 7777精品伊人久久精品影视 | 天天影视亚洲综合网 |