C51--OLED

GME12864-12

OLED寫入指令數據:

在這里插入圖片描述
1、start()開始
2、slave address 存積地址:011110 xx
寫入:b 0111 1000 (0x78)(R / W位置為0時,表示寫入)
3、ACK
4、cotrol byte:(Co) (D / C)000000

(Co置為0時,接下來傳輸的信息包含數據字節data byte)
(D / C位置為0時,表示為命令;為 1 時,表示為數據)
0000 0000 寫入命令
0100 0000 寫入數據

5、ACK
6、寫入指令/數據
7、ACK
8、STOP

//寫入命令
void Oled_Write_Cmd(char dataCmd)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x00);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataCmd); //  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}//寫入數據
void Oled_Write_Data(char dataData)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x40);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataData);//  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}

OLED顯示點:

VDD = 1.65V——3.3V
VCC = 7V —— 15V

128x64個點陣組成:

64=8Page*8bit
自動右移
橫向:SEG0——SEG127
豎向:Page0——Page7

尋址模式:

頁地址模式:

在這里插入圖片描述
水平橫向尋址,寫到127時,他會返回到該行的頭部。

1、發送cmd:0x20
2、發送cmd:0x02;(默認為頁模式)

水平地址模式:

在這里插入圖片描述
水平橫向尋址,寫到127時,他會返回到下一行的頭部

垂直地址模式:

在這里插入圖片描述
豎向尋址,到尾部時,會返回下一列的頭部繼續

頁模式:顯示一個點

配置頁地址模式:
Oled_Write_Cmd(0x20);
Oled_Write_Cmd(0x02);
配置顯示地址:
Oled_Write_Cmd(0xB0);//配置page1-8
Oled_Write_Cmd(0x00);//列地址,從頭開始
Oled_Write_Cmd(0x10);

主函數:
1、OLED初始化
2、選擇一個位置
2.1、確認為頁面尋址模式

Oled_Write_Cmd(0x20);
Oled_Write_Cmd(0x02);

2.2、選擇PAGE0

Oled_Write_Cmd(0xB0);//1011 0000(0xB0)配置page1-8.

3、顯示一個點

#include "reg52.h"
#include "intrins.h"sbit SCL = P0^1;
sbit SDA = P0^3;void ICC_Start()
{SDA = 1;SCL = 1;_nop_();	//一個nop用時5usSDA = 0;_nop_();
}void ICC_Stop()
{SDA = 0;SCL = 1;_nop_();SDA = 1;_nop_();
}char ICC_ACK()
{char flag;SDA = 1;		//在時鐘脈沖9期間釋放_nop_();SCL = 1;_nop_();flag = SDA;_nop_();SCL = 0;_nop_();return flag;
}void IIC_Send_Byte(char dataSend)
{int i;for(i = 0;i < 8;i++){SCL = 0;						//SCL低電平,讓SDA做好數據準備SDA = dataSend & 0x80;			//與上1000 0000 獲得dataSend的最高位,給SDA_nop_();						//發送數據建立的時間SCL = 1;						//SCL高電平,開始發送數據_nop_();						//發送數據需要時間SCL= 0;						//發送完畢,SCL拉回低電平_nop_();dataSend = dataSend << 1;}
}//寫入命令
void Oled_Write_Cmd(char dataCmd)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x00);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataCmd); //  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}//寫入數據
void Oled_Write_Data(char dataData)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x40);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataData);//  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}void Oled_Init()
{Oled_Write_Cmd(0xAE);//--display offOled_Write_Cmd(0x00);//---set low column addressOled_Write_Cmd(0x10);//---set high column addressOled_Write_Cmd(0x40);//--set start line addressOled_Write_Cmd(0xB0);//--set page addressOled_Write_Cmd(0x81); // contract controlOled_Write_Cmd(0xFF);//--128Oled_Write_Cmd(0xA1);//set segment remapOled_Write_Cmd(0xA6);//--normal / reverseOled_Write_Cmd(0xA8);//--set multiplex ratio(1 to 64)Oled_Write_Cmd(0x3F);//--1/32 dutyOled_Write_Cmd(0xC8);//Com scan directionOled_Write_Cmd(0xD3);//-set display offsetOled_Write_Cmd(0x00);//Oled_Write_Cmd(0xD5);//set osc divisionOled_Write_Cmd(0x80);//Oled_Write_Cmd(0xD8);//set area color mode offOled_Write_Cmd(0x05);//Oled_Write_Cmd(0xD9);//Set Pre-Charge PeriodOled_Write_Cmd(0xF1);//Oled_Write_Cmd(0xDA);//set com pin configuartionOled_Write_Cmd(0x12);//Oled_Write_Cmd(0xDB);//set VcomhOled_Write_Cmd(0x30);//Oled_Write_Cmd(0x8D);//set charge pump enableOled_Write_Cmd(0x14);//Oled_Write_Cmd(0xAF);//--turn on oled panel}void main()
{Oled_Init();				//OLED初始化Oled_Write_Cmd(0x20);		//選擇一個位置,確認為頁面尋址模式Oled_Write_Cmd(0x02);Oled_Write_Cmd(0xB0);		//1011 0000(0xB0)配置page1-8.//顯示一個點while(1);
}

頁模式:顯示字符

選擇列地址顯示
主函數:
1、OLED初始化
2、選擇一個位置
2.1、確認為頁面尋址模式

Oled_Write_Cmd(0x20);
Oled_Write_Cmd(0x02);

2.2、選擇PAGE0

Oled_Write_Cmd(0xB0);//1011 0000(0xB0)配置page1-8.
Oled_Write_Cmd(0x00);//列地址,從頭開始
Oled_Write_Cmd(0x10);

3、顯示屏寫入數據

用點陣液晶取模工具取模
要勾選縱向取模,文字倒序

顯示字符A:

#include "reg52.h"
#include "intrins.h"sbit SCL = P0^1;
sbit SDA = P0^3;void ICC_Start()
{SCL = 0;	//防止雪花屏SDA = 1;SCL = 1;_nop_();	//一個nop用時5usSDA = 0;_nop_();
}void ICC_Stop()
{SCL = 0;	//防止雪花屏SDA = 0;SCL = 1;_nop_();SDA = 1;_nop_();
}char ICC_ACK()
{char flag;SDA = 1;		//在時鐘脈沖9期間釋放_nop_();SCL = 1;_nop_();flag = SDA;_nop_();SCL = 0;_nop_();return flag;
}void IIC_Send_Byte(char dataSend)
{int i;for(i = 0;i < 8;i++){SCL = 0;						//SCL低電平,讓SDA做好數據準備SDA = dataSend & 0x80;			//與上1000 0000 獲得dataSend的最高位,給SDA_nop_();						//發送數據建立的時間SCL = 1;						//SCL高電平,開始發送數據_nop_();						//發送數據需要時間SCL= 0;						//發送完畢,SCL拉回低電平_nop_();dataSend = dataSend << 1;}
}//寫入命令
void Oled_Write_Cmd(char dataCmd)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x00);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataCmd); //  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}//寫入數據
void Oled_Write_Data(char dataData)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x40);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataData);//  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}void Oled_Init(void)
{Oled_Write_Cmd(0xAE);//--display offOled_Write_Cmd(0x00);//---set low column addressOled_Write_Cmd(0x10);//---set high column addressOled_Write_Cmd(0x40);//--set start line addressOled_Write_Cmd(0xB0);//--set page addressOled_Write_Cmd(0x81); // contract controlOled_Write_Cmd(0xFF);//--128Oled_Write_Cmd(0xA1);//set segment remapOled_Write_Cmd(0xA6);//--normal / reverseOled_Write_Cmd(0xA8);//--set multiplex ratio(1 to 64)Oled_Write_Cmd(0x3F);//--1/32 dutyOled_Write_Cmd(0xC8);//Com scan directionOled_Write_Cmd(0xD3);//-set display offsetOled_Write_Cmd(0x00);//Oled_Write_Cmd(0xD5);//set osc divisionOled_Write_Cmd(0x80);//Oled_Write_Cmd(0xD8);//set area color mode offOled_Write_Cmd(0x05);//Oled_Write_Cmd(0xD9);//Set Pre-Charge PeriodOled_Write_Cmd(0xF1);//Oled_Write_Cmd(0xDA);//set com pin configuartionOled_Write_Cmd(0x12);//Oled_Write_Cmd(0xDB);//set VcomhOled_Write_Cmd(0x30);//Oled_Write_Cmd(0x8D);//set charge pump enableOled_Write_Cmd(0x14);//Oled_Write_Cmd(0xAF);//--turn on oled panel}//清屏
void Oled_Clear()
{int i,j;//unsigned char i,j;		char范圍-128——127,定義char類型會產生越界for(i = 0;i < 8;i++){Oled_Write_Cmd(0xB0 + i);		//Page0——Page7Oled_Write_Cmd(0x00);			//每個Page從0開始Oled_Write_Cmd(0x10);for(j = 0;j < 128;j++){			//0——127列,依次寫入0,每寫入數據列地址自動偏移。Oled_Write_Data(0);			}}
}/*--  文字:  A  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   (一個Page為8位)--*/
char A1[8] = {0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00};char A2[8] = {0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};void main()
{int i;Oled_Init();				//OLED初始化Oled_Write_Cmd(0x20);		//選擇一個位置,確認為頁面尋址模式Oled_Write_Cmd(0x02);Oled_Clear();				//清屏Oled_Write_Cmd(0xB0);		//1011 0000(0xB0)配置page1-8.//顯示一個點Oled_Write_Cmd(0x00);		//列地址,從頭開始Oled_Write_Cmd(0x10);for(i = 0;i < 8;i++){Oled_Write_Data(A1[i]);}Oled_Write_Cmd(0xB1);	Oled_Write_Cmd(0x00);Oled_Write_Cmd(0x10);for(i = 0;i < 8;i++){Oled_Write_Data(A2[i]);}while(1);
}
各數據類型大小和取值范圍:
https://blog.csdn.net/weixin_42856843/article/details/81989737

頁模式:顯示圖片

大小:128x64像素
保存模式:bmp模式

位圖(Bitmap)模式:它沒有進行數據壓縮,其內部存儲的色彩信息(灰度圖,RGB 或 ARGB)直接以二進制的形式暴露在外,也十分方便借助計算機軟件進行簡單或深入的分析。

#include "reg52.h"
#include "intrins.h"sbit SCL = P0^1;
sbit SDA = P0^3;void ICC_Start()
{SCL = 0;	//防止雪花屏SDA = 1;SCL = 1;_nop_();	//一個nop用時5usSDA = 0;_nop_();
}void ICC_Stop()
{SCL = 0;	//防止雪花屏SDA = 0;SCL = 1;_nop_();SDA = 1;_nop_();
}char ICC_ACK()
{char flag;SDA = 1;		//在時鐘脈沖9期間釋放_nop_();SCL = 1;_nop_();flag = SDA;_nop_();SCL = 0;_nop_();return flag;
}void IIC_Send_Byte(char dataSend)
{int i;for(i = 0;i < 8;i++){SCL = 0;						//SCL低電平,讓SDA做好數據準備SDA = dataSend & 0x80;			//與上1000 0000 獲得dataSend的最高位,給SDA_nop_();						//發送數據建立的時間SCL = 1;						//SCL高電平,開始發送數據_nop_();						//發送數據需要時間SCL= 0;						//發送完畢,SCL拉回低電平_nop_();dataSend = dataSend << 1;}
}//寫入命令
void Oled_Write_Cmd(char dataCmd)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x00);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataCmd); //  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}//寫入數據
void Oled_Write_Data(char dataData)
{ICC_Start();			//	1、start()開始IIC_Send_Byte(0x78);	//	2、slave address  存積地址:011110 xx//	寫入:b 0111 1000(0x78)(R/W位置為0時,表示寫入)ICC_ACK();				//	3、ACKIIC_Send_Byte(0x40);	//	4、cotrol byte:(Co) (D/C)000000	//(Co置為0時,接下來傳輸的信息包含數據字節data byte)//(D / C位置為0時,表示為命令;為 1 時,表示為數據)//  0000 0000 寫入命令//	0100 0000 寫入數據ICC_ACK();				//	5、ACKIIC_Send_Byte(dataData);//  6、寫入指令/數據ICC_ACK();				//	7、ACKICC_Stop();				//	8、STOP
}void Oled_Init(void)
{Oled_Write_Cmd(0xAE);//--display offOled_Write_Cmd(0x00);//---set low column addressOled_Write_Cmd(0x10);//---set high column addressOled_Write_Cmd(0x40);//--set start line addressOled_Write_Cmd(0xB0);//--set page addressOled_Write_Cmd(0x81); // contract controlOled_Write_Cmd(0xFF);//--128Oled_Write_Cmd(0xA1);//set segment remapOled_Write_Cmd(0xA6);//--normal / reverseOled_Write_Cmd(0xA8);//--set multiplex ratio(1 to 64)Oled_Write_Cmd(0x3F);//--1/32 dutyOled_Write_Cmd(0xC8);//Com scan directionOled_Write_Cmd(0xD3);//-set display offsetOled_Write_Cmd(0x00);//Oled_Write_Cmd(0xD5);//set osc divisionOled_Write_Cmd(0x80);//Oled_Write_Cmd(0xD8);//set area color mode offOled_Write_Cmd(0x05);//Oled_Write_Cmd(0xD9);//Set Pre-Charge PeriodOled_Write_Cmd(0xF1);//Oled_Write_Cmd(0xDA);//set com pin configuartionOled_Write_Cmd(0x12);//Oled_Write_Cmd(0xDB);//set VcomhOled_Write_Cmd(0x30);//Oled_Write_Cmd(0x8D);//set charge pump enableOled_Write_Cmd(0x14);//Oled_Write_Cmd(0xAF);//--turn on oled panel}//清屏
void Oled_Clear()
{int i,j;//unsigned char i,j;		char范圍-128——127,定義char類型會產生越界for(i = 0;i < 8;i++){Oled_Write_Cmd(0xB0 + i);		//Page0——Page7Oled_Write_Cmd(0x00);			//每個Page從0開始Oled_Write_Cmd(0x10);for(j = 0;j < 128;j++){			//0——127列,依次寫入0,每寫入數據列地址自動偏移。Oled_Write_Data(0);			}}
}code unsigned char bmpImager[] = {/*--  調入了一幅圖像:12864演示圖片.bmp  --*/
/*--  寬度x高度=128x64  (有128x8x8個數據)--*/
0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF0,0xF0,
0xF0,0xE0,0xE0,0x60,0x70,0x70,0x30,0x30,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x1C,
0x0C,0x1C,0x1C,0x1C,0x18,0x18,0x18,0x18,0x18,0x30,0x30,0x30,0x60,0x60,0xE0,0xE0,
0xE0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0x1F,0x07,0x07,0x03,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0x7F,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x70,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,
0x40,0xE0,0x70,0x30,0x30,0x30,0x70,0xF0,0xE0,0x00,0x00,0x00,0xF0,0xF0,0x70,0x30,
0x30,0x70,0xF0,0xE0,0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x74,0xFF,0xFF,
0x00,0x00,0x00,0xE0,0xF0,0x30,0x30,0x30,0x70,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0x07,0x0F,0x1F,0xFF,0xFF,0x0F,0x01,0x00,0x00,0x00,0x80,0xE0,0xF0,
0xF8,0xF8,0xFC,0xFC,0x7E,0x7E,0x7E,0xFE,0xFC,0xF8,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xF8,0xFC,0xFC,0xFE,0x7E,0xFE,0xFC,0xF8,
0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x01,0x0F,0xFF,0xFF,0x1F,0x0F,0x07,0x03,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x60,0x60,0xE0,0x60,0x7F,0x3F,0x02,0x00,
0x38,0x7D,0xFE,0x66,0xE6,0x66,0x76,0x7F,0x7F,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,
0x00,0x00,0x7F,0x7F,0x00,0x00,0x1F,0x3F,0x7A,0x60,0xE0,0xE0,0x60,0x78,0x7F,0x7F,
0x00,0x00,0x38,0x7D,0x7F,0xE6,0x46,0x66,0x76,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xE0,0x00,0x00,0x00,0x3E,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0x03,0x00,0x00,0x00,0x60,0xF0,0xF8,
0xF8,0xF8,0xF0,0xF0,0x70,0x00,0x00,0x00,0x07,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0x80,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0F,0x1C,0x38,0x60,0xE0,0xC1,0x81,
0x83,0x03,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x83,
0x83,0x83,0xC1,0xE0,0x70,0x38,0x1C,0x0F,0x03,0x80,0x80,0xA0,0xB0,0xB8,0xFC,0xF7,
0xF7,0x92,0x94,0xDC,0xF8,0xD0,0xC0,0x40,0x00,0x00,0x00,0xC0,0xC2,0x46,0xFC,0x40,
0x00,0x10,0x70,0xC7,0x9E,0xC0,0xFE,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xF0,
0xA0,0xB0,0xB3,0xFF,0xB2,0x90,0xB0,0xF0,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x84,0x84,0x84,0x86,0xB6,0xE6,0x96,0x8E,0x86,0x86,0xC0,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x3F,0xFF,0xFF,0x7F,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,
0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xFC,0xFC,0xFE,0xFE,0xFE,0xFE,0xFF,0x7F,0xFF,
0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x89,0x8C,0x96,0xB7,0xD5,0xD6,
0xD6,0xD6,0xDF,0xD7,0xCE,0x5C,0x18,0x18,0x08,0x00,0x00,0x00,0x00,0x40,0x7F,0xB0,
0xD8,0x6C,0x30,0x19,0x0F,0x1F,0x78,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x08,0x1F,
0x0C,0x0D,0x0C,0x7F,0xC4,0x84,0x86,0x87,0x80,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x01,0x31,0x60,0xC0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0x7F,0xF8,0xE1,0xE1,0xC1,0xC1,0x81,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xC1,0x81,0xC1,0xE1,0xF5,0xFE,0x1F,
0x01,0x00,0x00,0xE0,0xC0,0x60,0x60,0xC0,0xC0,0x00,0x01,0xE1,0xC1,0x61,0x61,0xC1,
0xC1,0x81,0x01,0x01,0xE1,0xE0,0x60,0x60,0xC0,0x80,0x00,0x60,0xF8,0xF8,0x40,0x01,
0xC1,0xE0,0x60,0x60,0xE0,0xC0,0x00,0x01,0xFD,0xF9,0x00,0xF8,0xFC,0x80,0xC0,0xE0,
0x60,0x00,0x00,0x00,0x01,0x01,0x01,0xC1,0xC1,0x61,0x61,0x61,0xE0,0xC0,0x00,0xC0,
0xE0,0x60,0x60,0x60,0xC0,0x00,0x01,0xE1,0xE0,0x60,0x60,0xE0,0xC0,0x60,0x60,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x03,0x07,0x03,0x03,
0x03,0x03,0x02,0x03,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x0F,0x07,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0x10,0x30,0x1F,0x0F,0x00,0x00,0xFF,0xBC,0x10,0x30,0x1F,
0x1F,0x0F,0x00,0x22,0xFF,0x18,0x10,0x10,0x1F,0x0F,0x00,0x00,0x1F,0x1F,0x10,0x08,
0x1E,0x1E,0x13,0x1B,0x1F,0x1F,0x00,0x00,0x1F,0x1F,0x00,0x1F,0x1F,0x03,0x07,0x1E,
0x18,0x00,0x00,0x18,0x18,0x00,0x04,0x0F,0x1D,0x30,0x10,0x10,0x1C,0x1C,0x00,0x0F,
0x1F,0x10,0x30,0x18,0x1F,0x07,0x00,0x1F,0x1F,0x00,0x00,0x1F,0x1F,0x00,0x00,0x1F,};void Oled_Show_Image(unsigned char *image)
{unsigned int j;unsigned char i;		//char范圍-128——127,定義char類型會產生越界for(i = 0;i < 8;i++){Oled_Write_Cmd(0xB0 + i);		//Page0——Page7Oled_Write_Cmd(0x00);			//每個Page從0開始Oled_Write_Cmd(0x10);for(j = 128 * i;j < (128 * (i + 1));j++){			//0——127列,依次寫入0,每寫入數據列地址自動偏移。Oled_Write_Data(image[j]);			}}
}void main()
{Oled_Init();				//OLED初始化Oled_Write_Cmd(0x20);		//選擇一個位置,確認為頁面尋址模式Oled_Write_Cmd(0x02);Oled_Clear();				//清屏Oled_Show_Image(bmpImager);while(1);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210019.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210019.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210019.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

操作系統———磁盤調度算法模擬

實驗目的 磁盤是可供多個進程共享的設備&#xff0c;當有多個進程都要求訪問磁盤是&#xff0c;應采用一種最佳調度算法&#xff0c;以使各進程對磁盤的平均訪問時間最小。目前最成用的磁盤調度算法有先來先服務&#xff08;FCFS&#xff09;&#xff0c;最短尋道時間優先&…

Spring Boot的配置文件

配置文件的作用 整個項目中所有重要的數據都是在配置文件中配置&#xff0c;如數據庫的連接信息&#xff0c;項目的啟動端口&#xff0c;用于發現和定位問題的普通日志和異常日志等等。配置文件可以分為兩類 系統使用的配置文件&#xff08;系統配置文件&#xff09;&#xf…

【Kotlin】

Lambda 就是一小段可以作為參數傳遞的代碼。 因為正常情況下&#xff0c;我們向某個函數傳參時只能傳入變量&#xff0c;而借助Lambda 卻允許傳入一小段代碼。 Lambda 表達式的語法結構&#xff1a; {參數名1: 參數類型, 參數名2: 參數類型 -> 函數體}首先&#xff0c;最外…

JS基礎源碼之手寫模擬new

JS基礎源碼之手寫模擬new 手寫模擬new初步實現最終實現 手寫模擬new new 運算符創建一個用戶定義的對象類型的實例或具有構造函數的內置對象類型之一。 我們先看看new實現了哪些功能&#xff1a; function Person (name,age){this.name name;this.age age;this.habit Games;…

開發猿的平平淡淡周末---2023/12/9

上周回顧 完成了遺留的開發任務&#xff0c;基本全部完成進一步了解了系統當時設計的原理熟悉了代碼的重構 2023.12.9 天氣晴 溫度適宜 前言 小伙伴們大家好&#xff0c;時間很快&#xff0c;又來到了周末&#xff0c;也是一個平平淡淡的周末。上周只更了一篇博客...原…

滲透測試 | 滲透測試之信息收集

滲透測試&#xff08;penetration test&#xff0c;pentest&#xff09;是實施安全評估&#xff08;即審計&#xff09;的具體手段。 滲透測試可能是單獨進行的一項工作&#xff0c;也可能是常規研發生命周期&#xff08;例如&#xff0c;Microsoft SDLC&#xff09;里 IT 安全…

Unicode編碼解碼

一、Unicode概述 Unicode是一種字符編碼標準&#xff0c;旨在解決不同字符集之間的兼容性問題。它為全球所有語言提供了一種統一的編碼方式&#xff0c;使得各種字符能夠在計算機系統中正確顯示和處理。Unicode字符集包含了世界上幾乎所有的字符&#xff0c;包括中文字符、英文…

算法Day23 簡單吃飯(0-1背包)

簡單吃飯&#xff08;0-1背包&#xff09; Description Input Output Sample 代碼 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int total scanner.nextInt(…

WebDriver核心方法和屬性:掌握自動化測試的利器

在自動化測試中&#xff0c;Selenium WebDriver是一個非常重要的工具。它提供了一種方式來模擬用戶與瀏覽器的交互&#xff0c;從而進行各種操作&#xff0c;如點擊按鈕、輸入文本等。本文將介紹WebDriver的核心方法和屬性&#xff0c;以及如何使用它們。 1. 啟動和關閉瀏覽器…

使用es256算法生成jwt

1、使用hutool來做 1、先去jwt解密/加密 - bejson在線工具弄個公私鑰 2、導入hutool maven <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.22</version></dependency><depe…

高項備考葵花寶典-項目進度管理輸入、輸出、工具和技術(中,很詳細考試必過)

項目進度管理的目標是使項目按時完成。有效的進度管理是項目管理成功的關鍵之一&#xff0c;進度問題在項目生命周期內引起的沖突最多。 小型項目中&#xff0c;定義活動、排列活動順序、估算活動持續時間及制定進度模型形成進度計劃等過程的聯系非常密切&#xff0c;可以視為一…

Pytorch中的resize和reshape

torch.reshape() 官方文檔的大致意思是&#xff1a; 返回與輸入具有相同數據和元素數量的張量&#xff0c;但是具有指定形狀。如果可能&#xff0c;返回的張量將是輸入的視圖&#xff0c;也就是說原本的tensor并沒有被改變&#xff0c;如果想要改變那么就將改變的tensor賦值給…

情深不必糾纏

那一年&#xff0c;男孩女孩在萬千人中相遇了。多年后女人的一封郵件&#xff0c;讓男人與女人的靈魂相遇了。他們無緣夫妻&#xff0c;卻發現彼此是靈魂的陪伴。不能攜手相守&#xff0c;卻懂得彼此的心靈。 有一天&#xff0c;女人告訴男人要回家了&#xff0c;問男人心里會不…

ejs —— 三目運算符的用法

EJS&#xff08;Embedded JavaScript&#xff09;是一種簡單的模板語言&#xff0c;它允許將JavaScript代碼嵌入到HTML中。在EJS中&#xff0c;<%、<%和<%-是用于將JavaScript代碼嵌入到模板中的語法。 <%&#xff1a;這是EJS的輸出表達式&#xff0c;用于將變量的…

阿里云安裝docker

文章目錄 一、 yum 進行安裝&#xff08;os版本 CentOS 7&#xff09; 推薦二、 apt-get 進行安裝(os版本 Ubuntu 14.04/16.04&#xff09;三、測試四、阿里云docker加速 一、 yum 進行安裝&#xff08;os版本 CentOS 7&#xff09; 推薦 # step 1: 安裝必要的一些系統工具 su…

<HarmonyOS第一課>應用服務上架【課后考核】

【習題】HarmonyOS應用/元服務上架 判斷題 元服務發布的國家與地區僅限于“中國大陸” 正確(True) 編譯打包的軟件包存放在項目目錄build > outputs > default下 正確(True) 單選題 創建應用時&#xff0c;應用包名需要和app.json5或者config.json文件中哪個字段保持…

VMware安裝Ubuntu20.04并使用Xshell連接虛擬機

文章目錄 虛擬機環境準備重置虛擬網絡適配器屬性&#xff08;可選&#xff09;配置NAT模式的靜態IP創建虛擬機虛擬機安裝配置 Xshell連接虛擬機 虛擬機環境準備 VMware WorkStation Pro 17.5&#xff1a;https://customerconnect.vmware.com/cn/downloads/details?downloadGr…

基于Java旅游信息管理系統

基于Java旅游信息管理系統 功能需求 1、旅游目的地管理&#xff1a;系統需要能夠記錄和管理各個旅游目的地的詳細信息&#xff0c;包括景點介紹、交通方式、住宿推薦等。管理員可以添加、編輯和刪除目的地信息。 2、旅游線路規劃&#xff1a;系統需要提供旅游線路規劃功能&a…

C++類名后面跟大括號和跟小括號的區別

在 C 中&#xff0c;類名后面跟著大括號 {} 和小括號 () 有不同的含義和作用。 大括號 {}&#xff1a; 初始化對象&#xff1a;當在聲明類對象時使用大括號 {} 時&#xff0c;這表示對對象進行初始化。這種方式也稱為列表初始化或者統一初始化。示例&#xff1a;MyClass obj{};…

網上下載的pdf文件,為什么不能復制文字?

不知道大家有沒有到過這種情況&#xff1f;在網上下載的PDF文件打開之后&#xff0c;發現選中文字之后無法復制。甚至其他功能也都無法使用&#xff0c;這是怎么回事&#xff1f;該怎么辦&#xff1f; 當我們發現文件打開之后&#xff0c;編輯功能無法使用&#xff0c;很可能是…