找到一塊OLED顯示屏,便寫了一個可以顯示字符,數字,圖片的程序(這里一顯示51黑電子和QQ圖標為例,顯示其他,可通過取模軟件進行更改)在壓縮包中附有工程文件,和取模軟件,以及使用方法
制作出來的實物圖如下:
顯示51黑電子.jpg (2.58 MB, 下載次數: 54)
下載附件
2020-11-21 15:48 上傳
顯示qq圖標.jpg (2.45 MB, 下載次數: 51)
下載附件
2020-11-21 15:48 上傳
OLED顯示屏.jpg (2.19 MB, 下載次數: 62)
下載附件
2020-11-21 15:48 上傳
具體單片機程序如下(這里僅復制部分,工程文件有完整程序)
- #include "OLED.h"
- #inclide "intrins.h"
- /******************************************************************************/
- // 定義顯示字符:51
- /******************************************************************************/
- uint8 code oledTable2[] = {
- 0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00,//5
- 0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00};//1
- /******************************************************************************/
- // 定義顯示漢字:黑電子
- /******************************************************************************/
- uint8 code oledTable3[]={
- 0x00,0x00,0x3E,0x22,0x2A,0x32,0x22,0xFE,0x22,0x32,0x2A,0x22,0x3E,0x00,0x00,0x00,
- 0x88,0x68,0x09,0x09,0x29,0xC9,0x09,0x0F,0x29,0xC9,0x09,0x09,0x29,0xC8,0x08,0x00,//黑0
- 0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
- 0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,//電1
- 0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//子2
- /******************************************************************************/
- // 定義顯示圖畫
- /******************************************************************************/
- //QQ圖標
- uint8 code oledTable4[]={
- 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,0x80,0x80,0x80,0x00,0x00,0x00,0x00};//C:\Users\xzs\Desktop\捕獲.bmp0//C:\Users\xzs\Desktop\捕獲.bmp0
- void display2(uint8 page,uint8 lie,uint8 *p)
- {//顯示一個字符
- uint8 i;
-
- Oled_Write_Cmd(0xb0+page); //page 0
- Oled_Write_Cmd(0x00+lie); //low
- Oled_Write_Cmd(0x10+lie); //high
- for(i=0;i<8;i++){
- Oled_Write_Data(p[i]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb1+page); //page 1
- Oled_Write_Cmd(0x00+lie); //low
- Oled_Write_Cmd(0x10+lie); //high
- for(i=0;i<8;i++){
- Oled_Write_Data(p[i+8]);//寫數據oledTable1
- }}
-
- void display3(uint8 page,uint8 lie,uint8 *p)
- {//顯示漢字
- uint8 i;
- Oled_Write_Cmd(0xb0+page); //page 0
- Oled_Write_Cmd(0x00+lie); //low
- Oled_Write_Cmd(0x10+lie); //high
- for(i=0;i<16;i++){
- Oled_Write_Data(p[i]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb1+page); //page 1
- Oled_Write_Cmd(0x00+lie); //low
- Oled_Write_Cmd(0x10+lie); //high
- for(i=0;i<16;i++){
- Oled_Write_Data(p[i+16]);//寫數據oledTable1
- }}
-
- void display4()
- {//顯示一幅圖
- uint8 i;
- Oled_Init();
- Oled_Screen_Clear();
- Oled_Write_Cmd(0xb0); //page 0
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb1); //page 1
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+128]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb2); //page 2
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+256]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb3); //page 3
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+384]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb4); //page 4
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+512]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb5); //page 5
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+640]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb6); //page 6
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+768]);//寫數據oledTable1
- }
- Oled_Write_Cmd(0xb7); //page 7
- Oled_Write_Cmd(0x00); //low
- Oled_Write_Cmd(0x10); //high
- for(i=0;i<128;i++){
- Oled_Write_Data(oledTable4[i+896]);//寫數據oledTable1
- }
- }
- int main(void)
- { Oled_Init();
- Oled_Screen_Clear();
- display2(0,0,oledTable2);//51黑電子
- display2(0,1,oledTable2+16);
- display3(0,2,oledTable3);
- display3(0,3,oledTable3+32);
- display3(0,4,oledTable3+64);
- //display4();//qq圖標的顯示
-
-
- while(1);
- }
復制代碼
全部資料51hei下載地址:
取模.zip
(5.01 MB, 下載次數: 22)
2020-11-21 14:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
OLED屏幕顯示.zip
(37.51 KB, 下載次數: 31)
2020-11-21 14:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|