基於51的OLED驅動

2021-06-18 09:39:23 字數 2316 閱讀 1118

oled12864.h

#include "reg51.h"

#include "6x8.h"

#include "8x16.h"

#include "16x16.h"

#define xlevell 0x00

#define xlevelh 0x10

#define xlevel ((xlevelh&0x0f)*16+xlevell)

#define max_column 128

#define max_row 64

#define brightness 0xcf

#define x_width 128

#define y_width 64

sbit lcd_scl=p1^4; //時鐘 d0(sclk)

sbit lcd_sda=p1^5; //d1(mosi) 資料

sbit lcd_rst=p1^6; //復位

sbit lcd_dc =p1^7; //資料/命令控制

void lcd_dly_ms(unsigned int ms) //lcd 延時1ms

return;

}void lcd_wrdat(unsigned char dat) //**lcd寫資料

}void lcd_wrcmd(unsigned char cmd) //****lcd寫命令 }

void lcd_setxy(unsigned char x, unsigned char y) //lcd 設定座標

void lcd_fill(unsigned char bmp_dat) //bmp_dat=0x00全屏滅,bmp_dat=0xff全屏亮

lcd_setxy(x,y);

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

lcd_wrdat(f6x8[c][i]);

x+=6;

j++;

}}void lcd_cler_6x8(unsigned char x,y,n)//清除n個6*8字元

for(i=0;i<6*n;i++)

lcd_wrdat(0x00);

}void lcd_8x16(unsigned char x, y,unsigned char ch)//顯示8*16一組標準ascii字串 顯示的座標(x,y),y為頁範圍0~7

lcd_setxy(x,y);

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

lcd_wrdat(f8x16[c*16+i]);

lcd_setxy(x,y+1);

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

lcd_wrdat(f8x16[c*16+i+8]);

x+=8;

j++;

}}void lcd_cler_8x16(unsigned char x, y,n) //清除n個8*16字元

lcd_setxy(x,y);

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

lcd_wrdat(0x00);

lcd_setxy(x,y+1);

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

lcd_wrdat(0x00);

}void lcd_16x16(unsigned char x, y, n)//顯示16*16點陣 顯示的座標(x,y),y為頁範圍0~7,n表示該漢字是陣列f16x16中的第n個(從0開始)。

lcd_setxy(x,y + 1);

for(wm = 0;wm < 16;wm++) //

}void lcd_cler_16x16(unsigned char x,y,n)//清除n個16*16字

void draw_bmp(unsigned char x0, y0,x1, y1,unsigned char bmp)//顯示顯示bmp128×64起始點座標(x,y),x的範圍0~127,y為頁的範圍0~7*

;

8x16.h

const unsigned char code f8x16=	  

93 0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94

};

16x16.h

根據需要對漢字取模放入陣列中。根據驅動函式進行使用。例:在(0,0)處寫「囧」:lcd_16x16(0, 0, 0);

unsigned char code f16x16 = 	  	 

;

基於51的DHT11驅動

1.感測器效能說明 測溼範圍 20 90 測溫範圍 0 50c 測溫精度 2c 測溼精度 5 rh 2.介面說明 長度大於20m 時採用5k 上拉電阻 3.電源引腳 電源供電電壓 3 5.5v 電源引腳 vcc,gnd 可增加乙個 100nf 的電容用以去耦濾波 4.序列介面 單線雙向,採取但匯流排...

鴻蒙系統 OLED螢幕驅動

hi3861 oled驅動 hispark wifi開發套件又提供乙個oled螢幕,但是鴻蒙原始碼中沒有這個螢幕的驅動,我們需要自己去移植。2 設定i2c引腳復用 確定i2c引腳,檢視原理圖,可以看到oled螢幕使用到的是i2c0,引腳是gpio13 gpio14 i2c io復用也可以選擇3 4 ...

STM32基於SPI的顯示(OLED)

主函式實驗結果 總結本文使用spi 通訊的oled螢幕,晶元使用的是stm32f103zet6。oled模組整體來說比較簡單,就是加字模,調函式的過程。初學者可以好好看看裡面包含的函式,還是很有趣的。oled,即有機發光二極體。oled由於同時具備自發光,不需要光源 對比度高 厚度薄 視角廣 反應速...