在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

項目 | 瑞薩RA2L1--電子時鐘

RA生態工作室 ? 2022-01-11 17:38 ? 次閱讀

1.概述

本篇文章主要介紹通過往期內容的學習,使用e2studio對R7FA2L1AB2DFL的開發板進行電子時鐘項目開發,主要用到exit、oled、rtc、觸摸按鍵、溫濕度傳感器模塊。

2.硬件準備

首先需要準備一個開發板,這里我準備的是芯片型號 R7FA2L1AB2DFL 的開發板。

pYYBAGGLLTuAKokoAAL5D_IbQXA990.png

3.系統框圖

poYBAGHc706AVIHvAAFcdU7xZXE138.png

4.新建工程

poYBAGHc772AZ_N8AAFlqE_YUtE059.png

5.工程模板

poYBAGHc79qAMrctAAEH8lrmoLo677.png

6.保存工程路徑

poYBAGHc7_eAFTkDAADDqe4dfRE991.png

7.芯片配置

本文中使用R7FA2L1AB2DFL來進行演示。

pYYBAGHc8BSAHCFuAADyeOX8NrY605.png

8.工程模板選擇

pYYBAGHc8C-AIgalAAC3NuUkuGQ765.png

9.LED&IO配置

配置LED燈的P103、P104腳配置為輸出,用于指示觸摸狀態。

pYYBAGHc8E-AHDR-AAC53Y1smgo239.png

將P208引腳設置為輸入模式,可以給P208命名。將溫濕度傳感器DATA接在P208引腳上,作為數據傳輸IO。

pYYBAGHc8KeAePLTAARh7yOAWRQ225.png

10.IIC配置

點擊Stacks->New Stack->Driver->Connectivity->I2C Master Driver on r_iic_master。

poYBAGHc8ZSAKegOAAD4cwaDLT0857.png

11.IIC屬性配置

設置IIC的配置,需要注意從機的地址,在stm32等程序中寫的是0x78,但是這里的地址位數是7位,故需要右移一位,變成0x3c。

pYYBAGHc8ceAeqvKAAHOmGlcWYM026.png

12.RTC配置

點擊Stacks->New Stack->Driver->Timers -> RTC Driver on r_rtc。

poYBAGHc8fKAWaK0AADoScLUb0Y796.png

13.RTC屬性配置

poYBAGHc8iaASHS2AAUKoygkFiM723.png

14.EXIT配置

點擊Stacks->NewStack->Driver->Input -> External IRQ Driver on r_icu。

poYBAGHc8raAcQ5yAAC_c92ZyoE091.png

15.EXIT屬性配置

poYBAGHc8s-AFehGAACNbmitf24219.png

16.觸摸引腳配置

將引腳配置的操作模式設置從“禁用”更改為“已啟用”,并使能P109/P110引腳。

pYYBAGHc8vqAVJPDAAWG8D-YyMQ810.png

17.觸摸配置

點擊Stacks → New Stack → Middleware →CapTouch → TOUCH Driver on rm_touch。

pYYBAGHc8xOAFSFRAAJ7P4mPNGw139.png

點擊CTSU Driver on r_ctsu。

點擊DTC啟用。

點擊Add DTCDriver for Transmission → New → TransferDriver on r_dtc。

點擊Add DTC Driver for Reception → New → TransferDriver on r_dtc,并將配置生成并導入工程中。

(內容過長具體配置調試過程請看往期文章)

qe_touch_sample.c文件中加入觸摸代碼(觸摸功能)。

pYYBAGHc9EGAJTyGAAGRjJykP4M234.png

18.添加工程文件

需要添加如下文件,其中dht11.c是驅動文件,dht11.h是頭文件,oled.c是驅動文件,oled.h是頭文件,oledfont.h放字模數據,pic.h放圖片數據,user.c頁面顯示,user.h是頭文件,代碼在最后給出。

poYBAGHc9JKAKpSPAABvRP7I9kM323.png

19.圖片取模

顯示圖片需要對圖片進行取模。先打開需要取模的圖片,再設置輸出數據格式,最后保存即可。

poYBAGHc9KqAYNeSAAKNtPMf7Bo456.pngpoYBAGHc9MWAevjdAAERtovaFxQ483.png

顯示漢字需要先進行取模,生成字模前先進行設置。

pYYBAGHc9PiAQtHMAAVur1TVYZA682.png

設置完之后就可以取自己想要漢字的編碼,輸入完畢點擊生成字模即可。

poYBAGHc9QGATgwAAAdokhssKjY762.png

20.結果演示

頁面0 初始界面

pYYBAGHc9RyAV7SCAAHIid4o--M436.png

頁面1 初始顯示時間日期

pYYBAGHc9TSAJBwrAAKfn0IpRIM671.png

頁面2 顯示溫濕度

poYBAGHc9ZeAdEfeAAIa-ZkU044981.pngpoYBAGHc9aaAEGDnAAIif1lHCvg676.png

頁面3 時間日期設置頁面(第一次進入等待一會再調時)

pYYBAGHc9iOAJzS9AAQ_5F8y-I4461.png

按下觸摸按鍵TS10,觸摸成功LED2亮,對應的設置的時間數+1。

pYYBAGHc9jyAeMenAAQcZl1rNZU200.png

按下觸摸按鍵TS11,觸摸成功LED1亮,變換設置的時間單位,設置時間分別為秒-分-時-日-月-年。

pYYBAGHc9naAAfwWAAnG6fnXwEM053.png

如下是我們通過按鍵設置時間。

pYYBAGHc9teAEtnGAAIX606eFfs981.png

21.代碼

qe_touch_config.c代碼:


#include "qe_touch_config.h"
#define TOUCH_SCAN_INTERVAL_EXAMPLE (20)    /* milliseconds */
void qe_touch_main(void);

uint64_t button_status;
#if (TOUCH_CFG_NUM_SLIDERS != 0)
uint16_t slider_position[TOUCH_CFG_NUM_SLIDERS];
#endif
#if (TOUCH_CFG_NUM_WHEELS != 0)
uint16_t wheel_position[TOUCH_CFG_NUM_WHEELS];
#endif

extern rtc_time_t get_time;
extern rtc_time_t set_time;
extern uint8_t rtc_second;//秒
extern uint8_t rtc_minute;//分
extern uint8_t rtc_hour;//時
extern uint8_t rtc_day;//日
extern uint8_t rtc_month;//月
extern uint16_t rtc_year;//年
uint8_t button1_value=0;
uint8_t button2_value=0;
uint8_t button1;
uint8_t button2;
uint8_t set_falg=0;
void qe_touch_main(void)
{
    fsp_err_t err;

    /* Open Touch middleware */
    RM_TOUCH_Open(g_qe_touch_instance_config01.p_ctrl, g_qe_touch_instance_config01.p_cfg);

    /* Main loop */
  //  while (true)
  //  {
            button1=0;button2=0;
        /* for [CONFIG01] configuration */
            err = RM_TOUCH_ScanStart(g_qe_touch_instance_config01.p_ctrl);
            if (FSP_SUCCESS != err)
            {
                while (true) {}
            }
            while (0 == g_qe_touch_flag) {}
            g_qe_touch_flag = 0;

            err = RM_TOUCH_DataGet(g_qe_touch_instance_config01.p_ctrl, &button_status, NULL, NULL);
            if (FSP_SUCCESS == err)
            {
                /* TODO: Add your own code here. */
                if(button_status==1)
                {
                    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);
                    button1=1;
                }
                else if(button_status==2)
                {
                    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
                    button2=1;
                }
                else
                {
                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_LOW);
                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
                }
            }
            if(button2>button2_value)
            {
                set_falg++;
                if(set_falg==6)set_falg=0;
                OLED_Clear();
            }
            if(button1>button1_value)
            {
                R_RTC_CalendarTimeGet(&g_rtc0_ctrl, &get_time);//獲取RTC計數時間
                rtc_second=get_time.tm_sec;//秒
                rtc_minute=get_time.tm_min;//分
                rtc_hour=get_time.tm_hour;//時
                rtc_day=get_time.tm_mday;//日
                rtc_month=get_time.tm_mon;//月
                rtc_year=get_time.tm_year; //年               
                if(set_falg==0){rtc_second++;if(rtc_second>=60)rtc_second=0;}
                else if(set_falg==1){rtc_minute++;if(rtc_minute>=60)rtc_minute=0;}
                else if(set_falg==2){rtc_hour++;if(rtc_hour>=24)rtc_hour=0;}
                else if(set_falg==3){rtc_day++;if(rtc_day>=32)rtc_day=1;}
                else if(set_falg==4){rtc_month++;if(rtc_month>=13)rtc_month=1;}
                else if(set_falg==5){rtc_year++;if(rtc_year>=200)rtc_year=0;}
                set_time.tm_sec=rtc_second;
                set_time.tm_min=rtc_minute;
                set_time.tm_hour=rtc_hour;
                set_time.tm_mday=rtc_day;
                set_time.tm_mon=rtc_month;
                set_time.tm_year=rtc_year;
                R_RTC_CalendarTimeSet(&g_rtc0_ctrl, &set_time);
            }
            R_RTC_CalendarTimeGet(&g_rtc0_ctrl, &get_time);
            if(set_falg==0){OLED_ShowCHinese(40,1,11);OLED_ShowCHinese(56,1,12);OLED_ShowCHinese(72,1,15);OLED_ShowNum(80,3,get_time.tm_sec,2,16);}
            else if(set_falg==1){OLED_ShowCHinese(40,1,11);OLED_ShowCHinese(56,1,12);OLED_ShowCHinese(72,1,14);OLED_ShowNum(56,3,get_time.tm_min,2,16);}
            else if(set_falg==2){OLED_ShowCHinese(40,1,11);OLED_ShowCHinese(56,1,12);OLED_ShowCHinese(72,1,13);OLED_ShowNum(32,3,get_time.tm_hour,2,16);}
            else if(set_falg==3){OLED_ShowCHinese(40,1,11);OLED_ShowCHinese(56,1,12);OLED_ShowCHinese(72,1,2);OLED_ShowNum(88,5,get_time.tm_mday,2,16);}
            else if(set_falg==4){OLED_ShowCHinese(40,1,11);OLED_ShowCHinese(56,1,12);OLED_ShowCHinese(72,1,1);OLED_ShowNum(56,5,get_time.tm_mon,2,16);}
            else if(set_falg==5){OLED_ShowCHinese(40,1,11);OLED_ShowCHinese(56,1,12);OLED_ShowCHinese(72,1,0);OLED_ShowNum(8,5,get_time.tm_year+1900,4,16);}
            button2_value=button2;
            button1_value=button1;
        /* FIXME: Since this is a temporary process, so re-create a waiting process yourself. */
        R_BSP_SoftwareDelay(TOUCH_SCAN_INTERVAL_EXAMPLE, BSP_DELAY_UNITS_MILLISECONDS);
  //  }
}

dht11.c代碼:

#include "hal_data.h"
#include 
#include "dht11.h"

uint8_t Temp;
uint8_t Humi;
uint8_t retry=0;
uint8_t NO_dht11_flag=0;
bsp_io_level_t p_port_value_dht11;

void DHT11_Rst()
{
    DHT11_IO_OUT();//SET OUTPUT
    DHT11_DQ_LOW;//拉低DQ
    R_BSP_SoftwareDelay(18, BSP_DELAY_UNITS_MILLISECONDS);//拉低至少18ms
    DHT11_DQ_HIGH;//DQ=1
    R_BSP_SoftwareDelay(20, BSP_DELAY_UNITS_MICROSECONDS);//主機拉高20~40us
}

void DHT11_Check()
{
    DHT11_IO_IN();//SET INPUT
    retry=0;
    R_IOPORT_PinRead(&g_ioport_ctrl, DHT11, &p_port_value_dht11);
    while(p_port_value_dht11&&retry<100)
    {
          R_IOPORT_PinRead(&g_ioport_ctrl, DHT11, &p_port_value_dht11);
          retry++;
          R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MICROSECONDS);
    }
    if(retry>=100)NO_dht11_flag=1;
    else retry=0;
    while(!p_port_value_dht11&&retry<100)
    {
          R_IOPORT_PinRead(&g_ioport_ctrl, DHT11, &p_port_value_dht11);
          retry++;
          R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MICROSECONDS);
    }
    if(retry>=100)NO_dht11_flag=1;
    if(NO_dht11_flag==1)
    {
        //printf("No dht11\n");
        R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);
    }
}

void DHT11_Read_Data()
{
        uint8_t buf[5];
        uint8_t i;
        NO_dht11_flag=0;

        DHT11_Rst();
        DHT11_Check();
        if(NO_dht11_flag==0)
        {
               for(i=0;i<5;i++)//讀取40位數據
               {
                     buf[i]=DHT11_Read_Byte();
               }
               if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])//校驗讀的溫濕度結果是否正確
               {
                     Humi=buf[0];
                     Temp=buf[2];
               }
               //else printf("Receive error\n");
        }
        R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);
}

//從DHT11讀取一個位   返回值:1/0
uint8_t DHT11_Read_Bit(void)
{
      retry=0;
      while(p_port_value_dht11&&retry<100)//等待變為低電平
      {
             R_IOPORT_PinRead(&g_ioport_ctrl, DHT11, &p_port_value_dht11);
             retry++;
             R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MICROSECONDS);
      }

      retry=0;
      while(!p_port_value_dht11&&retry<100)//等待變為高電平
      {
             R_IOPORT_PinRead(&g_ioport_ctrl, DHT11, &p_port_value_dht11);
             retry++;
             R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MICROSECONDS);
      }
      R_BSP_SoftwareDelay(30, BSP_DELAY_UNITS_MICROSECONDS);
      R_IOPORT_PinRead(&g_ioport_ctrl, DHT11, &p_port_value_dht11);
      if(p_port_value_dht11)return 1;
      else return 0;
}

//從DHT11讀取一個字節   //返回值:讀到的數據
uint8_t DHT11_Read_Byte(void)
{
    uint8_t i,dat;
    dat=0;
   for (i=0;i<8;i++)
  {
      dat<<=1;
      dat|=DHT11_Read_Bit();
    }
    return dat;
}

dht11.h代碼:


#ifndef _DHT11_H_
#define _DHT11_H_

//IO方向設置
#define DHT11_IO_IN()  R_IOPORT_PortDirectionSet(&g_ioport_ctrl, BSP_IO_PORT_02, 0<<8, 1<<8)
#define DHT11_IO_OUT() R_IOPORT_PortDirectionSet(&g_ioport_ctrl, BSP_IO_PORT_02, 1<<8, 1<<8)
//IO操作
#define DHT11_DQ_LOW   R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_02_PIN_08, BSP_IO_LEVEL_LOW) //數據端口   PA0
#define DHT11_DQ_HIGH  R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_02_PIN_08, BSP_IO_LEVEL_HIGH)  //數據端口   PA0

void DHT11_Rst(void);
void DHT11_Check(void);
void DHT11_Read_Data(void);
uint8_t DHT11_Read_Bit(void);
uint8_t DHT11_Read_Byte(void);

#endif

oled.c代碼:


#include "oled.h"
#include "oledfont.h"
#include "hal_data.h"
#include "stdint.h"
#include "user.h"

uint8_t CMD_Data[]={
0xAE,
0x00,
0x10,
0x40,
0xB0,
0x81,
0xFF,
0xA1,
0xA6,
0xA8,
0x3F,
0xC8,
0xD3,
0x00,
0xD5,
0x80,
0xD8,
0x05,
0xD9,
0xF1,
0xDA,
0x12,
0xD8,
0x30,
0x8D,
0x14,
0xAF
};      //初始化命令

extern fsp_err_t err;
extern int  timeout_ms;
extern  i2c_master_event_t i2c_event ;

void WriteCmd(void)
{
    uint8_t i = 0;
    uint8_t ii[2]={0x00,0x00};

    for(i=0;i<27;i++)
    {
        ii[1]=CMD_Data[i];
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);
        assert(FSP_SUCCESS == err);



        /* Since there is nothing else to do, block until Callback triggers*/
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
        {
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);
            timeout_ms--;
        }

        if (I2C_MASTER_EVENT_ABORTED == i2c_event)
        {
            __BKPT(0);
        }
        /* Read data back from the I2C slave */
        i2c_event = I2C_MASTER_EVENT_ABORTED;
        timeout_ms           = 100;


    }
}

    //向設備寫控制命令
    void OLED_WR_CMD(uint8_t cmd)
{
        uint8_t ii[2]={0x00,0x00};

        ii[1]=cmd;
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);
        assert(FSP_SUCCESS == err);
        /* Since there is nothing else to do, block until Callback triggers*/
        //while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms)
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
        {
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);
            timeout_ms--;
        }

        if (I2C_MASTER_EVENT_ABORTED == i2c_event)
        {
            __BKPT(0);
        }
        /* Read data back from the I2C slave */
        i2c_event = I2C_MASTER_EVENT_ABORTED;
        timeout_ms           = 100;

    }
    //向設備寫數據
    void OLED_WR_DATA(uint8_t data)
{
        uint8_t ii[2]={0x40,0x00};
        ii[1]=data;
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);
        assert(FSP_SUCCESS == err);
        /* Since there is nothing else to do, block until Callback triggers*/
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
        {
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);
            timeout_ms--;
        }
        if (I2C_MASTER_EVENT_ABORTED == i2c_event)
        {
            __BKPT(0);
        }
        /* Read data back from the I2C slave */
        i2c_event = I2C_MASTER_EVENT_ABORTED;
        timeout_ms           = 100;
    }

    //清屏
void OLED_Clear(void)
{
    uint8_t i,n;
    for(i=0;i<8;i++)
    {
        OLED_WR_CMD(0xb0+i);//設置頁地址(0~7)
        OLED_WR_CMD (0x00); //設置顯示位置—列低地址
        OLED_WR_CMD (0x10); //設置顯示位置—列高地址
        for(n=0;n<128;n++)
            OLED_WR_DATA(0);//更新顯示
        }

/*
    for(i=0; i<27; i++)
    {
        HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,CMD_Data+i,1,0x100);
    }

    */
}

//開啟OLED顯示
void OLED_Display_On(void)
{
    OLED_WR_CMD(0X8D);  //SET DCDC命令
    OLED_WR_CMD(0X14);  //DCDC ON
    OLED_WR_CMD(0XAF);  //DISPLAY ON
}
//關閉OLED顯示
void OLED_Display_Off(void)
{
    OLED_WR_CMD(0X8D);  //SET DCDC命令
    OLED_WR_CMD(0X10);  //DCDC OFF
    OLED_WR_CMD(0XAE);  //DISPLAY OFF
}

//坐標設置
void OLED_Set_Pos(uint8_t x, uint8_t y)
{
    OLED_WR_CMD(0xb0+y);
    OLED_WR_CMD(((x&0xf0)>>4)|0x10);
    OLED_WR_CMD(x&0x0f);
}

void OLED_On(void)
{
    uint8_t i,n;
    for(i=0;i<8;i++)
    {
        OLED_WR_CMD(0xb0+i);    //設置頁地址(0~7)
        OLED_WR_CMD(0x00);      //設置顯示位置—列低地址
        OLED_WR_CMD(0x10);      //設置顯示位置—列高地址
        for(n=0;n<128;n++)
            OLED_WR_DATA(1);
    } //更新顯示
}
unsigned int oled_pow(uint8_t m,uint8_t n)
{
    unsigned int result=1;
    while(n--)result*=m;
    return result;
}
//顯示2個數字
//x,y :起點坐標
//len :數字的位數
//size:字體大小
//mode:模式   0,填充模式;1,疊加模式
//num:數值(0~4294967295);
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2)
{
    uint8_t t,temp;
    uint8_t enshow=0;
    for(t=0;t128-1)
        {
            x=0;
            y=y+2;
        }
        if(Char_Size ==16)
            {
            OLED_Set_Pos(x,y);
            for(i=0;i<8;i++)
                OLED_WR_DATA(F8X16[c*16+i]);
            OLED_Set_Pos(x,y+1);
            for(i=0;i<8;i++)
                OLED_WR_DATA(F8X16[c*16+i+8]);
            }
            else {
                OLED_Set_Pos(x,y);
                for(i=0;i<6;i++)
                OLED_WR_DATA(F6x8[c][i]);
            }
}

//顯示一個字符號串
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
{
    unsigned char j=0;
    while (chr[j]!='\0')
    {
        OLED_ShowChar(x,y,chr[j],Char_Size);//一次顯示一個字符
            x+=8;
        if(x>120){x=0;y+=2;}
            j++;
    }
}

//顯示漢字
//hzk 用取模軟件得出的數組
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no)
{
    uint8_t t,adder=0;
//定位(0xbx,x為第幾行。0x1x ,x為列地址 高四位;0x0x,x為列地址第4位。
//比如你想定 位到第3行,第126(0x7e)列,就要寫WrCmd(0xb3);WrCmd(0x17);WrCmd(0x0e);)
    OLED_Set_Pos(x,y);
    for(t=0;t<16;t++)
        {
                OLED_WR_DATA(Hzk[2*no][t]);
                adder+=1;
     }
        OLED_Set_Pos(x,y+1);
    for(t=0;t<16;t++)
            {
                OLED_WR_DATA(Hzk[2*no+1][t]);
                adder+=1;
      }
}

//--------------------------------------------------------------
// Prototype      : void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);
// Calls          :
// Parameters     : x0,y0 -- 起始點坐標(x0:0~127, y0:0~7); x1,y1 -- 起點對角線(結束點)的坐標(x1:1~128,y1:1~8)
// Description    : 顯示BMP位圖
//--------------------------------------------------------------
void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[])
{
    unsigned int j=0;
    unsigned char x,y;

  if(y1%8==0)
        y = y1/8;
  else
        y = y1/8 + 1;
    for(y=y0;y;y++)>;t++)>

oled.h代碼:


#ifndef OLED_H_
#define OLED_H_
#include "stdint.h"

void WriteCmd(void);
void OLED_WR_CMD(uint8_t cmd);
void OLED_WR_DATA(uint8_t data);
void OLED_Init(void);
void OLED_Clear(void);
void OLED_Display_On(void);
void OLED_Display_Off(void);
void OLED_Set_Pos(uint8_t x, uint8_t y);
void OLED_On(void);
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2);
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size);
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size);
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no);
void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);

#endif /* OLED_H_ */

oledfont.h代碼:

#ifndef OLEDFONT_H_
#define OLEDFONT_H_
#include "stdint.h"

//8*6 ASCII字符集點陣
const unsigned char F6x8[][6] =
{
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
    0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
    0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
    0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
    0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
    0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
    0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
    0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
    0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
    0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
    0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
    0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
    0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
    0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
    0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
    0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
    0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
    0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
    0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
    0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
    0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
    0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
    0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
    0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
    0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
    0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
    0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
    0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
    0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
    0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
    0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
    0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
    0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
    0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
    0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
    0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
    0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
    0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
    0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
    0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
    0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
    0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
    0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
    0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
    0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
    0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
    0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
    0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
    0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
    0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
    0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
    0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
    0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
    0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
    0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
    0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
    0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
    0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
    0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
    0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
    0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
    0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
    0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
    0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
    0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
    0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
    0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
    0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
    0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
    0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
    0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
    0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
    0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
    0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
    0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
    0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
    0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
    0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
    0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
    0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
    0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};

//16*8 ASCII字符集點陣
const unsigned char F8X16[]=
{
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//sp /0
 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!  /1
 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"  /2
 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//#  /3
 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$  /4
 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//%  /5
 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//&  /6
 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'  /7
 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//(  /8
 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//)  /9
 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//*  /10
 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+  /11
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//,  /12
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//-  /13
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.  /14
 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,///  /15
 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0  /16
 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1  /17
 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2  /18
 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3  /19
 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4  /20
 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5  /21
 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6  /22
 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7  /23
 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8  /24
 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9  /25
 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:  /26
 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//;  /27
 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//<  /28
 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//=  /29
 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//>  /30
 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//?  /31
 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@  /32
 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A  /33
 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B  /34
 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C  /35
 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D  /36
 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E  /37
 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F  /38
 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G  /39
 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H  /40
 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I  /41
 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J  /42
 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K  /43
 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L  /44
 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M  /45
 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N  /46
 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O  /47
 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P  /48
 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q  /49
 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R  /50
 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S  /51
 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T  /52
 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U  /53
 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V  /54
 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W  /55
 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X  /56
 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y  /57
 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z  /58
 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[  /59
 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\  /60
 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//]  /61
 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^  /62
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_  /63
 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`  /64
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a  /65
 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b  /66
 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c  /67
 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d  /68
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e  /69
 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f  /70
 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g  /71
 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h  /72
 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i  /73
 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j  /74
 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k  /75
 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l  /76
 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m  /77
 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n  /78
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o  /79
 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p  /80
 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q  /81
 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r  /82
 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s  /83
 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t  /84
 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u  /85
 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v  /86
 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w  /87
 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x  /88
 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y  /89
 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z  /90
 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{  /91
 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//}  /92
 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00};//|  /93

//部分漢字
const unsigned char Hzk[][32]=
{
      //年(0) 月(1) 日(2) 生(3) 態(4) 工(5) 作(6) 室(7) 溫(8) 度(9) 濕(10) 設(11) 置(12) 時(13) 分(14) 秒(15)

{0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00},
{0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"年",0*/

{0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00},
{0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*"月",1*/

{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*"日",2*/

{0x80,0x40,0x30,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00},
{0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},/*"生",3*/

{0x00,0x04,0x84,0x84,0x44,0x24,0x54,0x8F,0x14,0x24,0x44,0x84,0x84,0x04,0x00,0x00},
{0x41,0x39,0x00,0x00,0x3C,0x40,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00},/*"態",4*/

{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00},
{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*"工",5*/

{0x00,0x80,0x60,0xF8,0x07,0x40,0x30,0x0F,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0x00},
{0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x00,0x00},/*"作",6*/

{0x10,0x0C,0x24,0x24,0xA4,0x64,0x25,0x26,0x24,0x24,0xA4,0x24,0x24,0x14,0x0C,0x00},
{0x40,0x40,0x48,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4B,0x48,0x40,0x40,0x00},/*"室",7*/

{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},/*"溫",8*/

{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00},
{0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},/*"度",9*/

{0x10,0x60,0x02,0x8C,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x44,0x48,0x50,0x7F,0x40,0x40,0x7F,0x50,0x48,0x44,0x40,0x00},/*"濕",10*/

{0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9E,0x82,0x82,0x82,0x9E,0xA0,0x20,0x20,0x00},
{0x00,0x00,0x00,0x3F,0x90,0x88,0x40,0x43,0x2C,0x10,0x28,0x46,0x41,0x80,0x80,0x00},/*"設",11*/

{0x00,0x17,0x15,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x15,0x17,0x00,0x00},
{0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x40,0x40,0x00},/*"置",12*/

{0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00},
{0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00},/*"時",13*/

{0x80,0x40,0x20,0x90,0x88,0x86,0x80,0x80,0x80,0x83,0x8C,0x10,0x20,0x40,0x80,0x00},
{0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x00,0x00,0x00},/*"分",14*/

{0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0xC0,0x38,0x00,0xFF,0x00,0x08,0x10,0x60,0x00},
{0x08,0x06,0x01,0xFF,0x01,0x06,0x81,0x80,0x40,0x40,0x27,0x10,0x0C,0x03,0x00,0x00},/*"秒",15*/
};

#endif /* OLEDFONT_H_ */
#ifndef OLEDFONT_H_
#define OLEDFONT_H_
#include "stdint.h"

//8*6 ASCII字符集點陣
const unsigned char F6x8[][6] =
{
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
    0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
    0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
    0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
    0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
    0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
    0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
    0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
    0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
    0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
    0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
    0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
    0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
    0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
    0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
    0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
    0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
    0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
    0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
    0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
    0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
    0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
    0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
    0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
    0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
    0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
    0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
    0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
    0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
    0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
    0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
    0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
    0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
    0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
    0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
    0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
    0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
    0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
    0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
    0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
    0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
    0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
    0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
    0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
    0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
    0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
    0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
    0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
    0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
    0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
    0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
    0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
    0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
    0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
    0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
    0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
    0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
    0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
    0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
    0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
    0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
    0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
    0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
    0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
    0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
    0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
    0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
    0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
    0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
    0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
    0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
    0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
    0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
    0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
    0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
    0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
    0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
    0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
    0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
    0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
    0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};

//16*8 ASCII字符集點陣
const unsigned char F8X16[]=
{
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//sp /0
 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!  /1
 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"  /2
 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//#  /3
 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$  /4
 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//%  /5
 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//&  /6
 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'  /7
 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//(  /8
 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//)  /9
 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//*  /10
 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+  /11
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//,  /12
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//-  /13
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.  /14
 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,///  /15
 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0  /16
 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1  /17
 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2  /18
 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3  /19
 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4  /20
 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5  /21
 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6  /22
 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7  /23
 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8  /24
 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9  /25
 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:  /26
 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//;  /27
 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//<  /28
 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//=  /29
 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//>  /30
 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//?  /31
 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@  /32
 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A  /33
 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B  /34
 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C  /35
 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D  /36
 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E  /37
 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F  /38
 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G  /39
 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H  /40
 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I  /41
 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J  /42
 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K  /43
 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L  /44
 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M  /45
 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N  /46
 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O  /47
 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P  /48
 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q  /49
 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R  /50
 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S  /51
 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T  /52
 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U  /53
 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V  /54
 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W  /55
 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X  /56
 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y  /57
 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z  /58
 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[  /59
 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\  /60
 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//]  /61
 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^  /62
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_  /63
 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`  /64
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a  /65
 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b  /66
 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c  /67
 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d  /68
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e  /69
 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f  /70
 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g  /71
 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h  /72
 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i  /73
 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j  /74
 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k  /75
 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l  /76
 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m  /77
 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n  /78
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o  /79
 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p  /80
 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q  /81
 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r  /82
 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s  /83
 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t  /84
 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u  /85
 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v  /86
 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w  /87
 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x  /88
 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y  /89
 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z  /90
 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{  /91
 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//}  /92
 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00};//|  /93

//部分漢字
const unsigned char Hzk[][32]=
{
      //年(0) 月(1) 日(2) 生(3) 態(4) 工(5) 作(6) 室(7) 溫(8) 度(9) 濕(10) 設(11) 置(12) 時(13) 分(14) 秒(15)

{0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00},
{0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"年",0*/

{0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00},
{0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*"月",1*/

{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*"日",2*/

{0x80,0x40,0x30,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00},
{0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},/*"生",3*/

{0x00,0x04,0x84,0x84,0x44,0x24,0x54,0x8F,0x14,0x24,0x44,0x84,0x84,0x04,0x00,0x00},
{0x41,0x39,0x00,0x00,0x3C,0x40,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00},/*"態",4*/

{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00},
{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*"工",5*/

{0x00,0x80,0x60,0xF8,0x07,0x40,0x30,0x0F,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0x00},
{0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x00,0x00},/*"作",6*/

{0x10,0x0C,0x24,0x24,0xA4,0x64,0x25,0x26,0x24,0x24,0xA4,0x24,0x24,0x14,0x0C,0x00},
{0x40,0x40,0x48,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4B,0x48,0x40,0x40,0x00},/*"室",7*/

{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},/*"溫",8*/

{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00},
{0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},/*"度",9*/

{0x10,0x60,0x02,0x8C,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x44,0x48,0x50,0x7F,0x40,0x40,0x7F,0x50,0x48,0x44,0x40,0x00},/*"濕",10*/

{0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9E,0x82,0x82,0x82,0x9E,0xA0,0x20,0x20,0x00},
{0x00,0x00,0x00,0x3F,0x90,0x88,0x40,0x43,0x2C,0x10,0x28,0x46,0x41,0x80,0x80,0x00},/*"設",11*/

{0x00,0x17,0x15,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x15,0x17,0x00,0x00},
{0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x40,0x40,0x00},/*"置",12*/

{0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00},
{0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00},/*"時",13*/

{0x80,0x40,0x20,0x90,0x88,0x86,0x80,0x80,0x80,0x83,0x8C,0x10,0x20,0x40,0x80,0x00},
{0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x00,0x00,0x00},/*"分",14*/

{0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0xC0,0x38,0x00,0xFF,0x00,0x08,0x10,0x60,0x00},
{0x08,0x06,0x01,0xFF,0x01,0x06,0x81,0x80,0x40,0x40,0x27,0x10,0x0C,0x03,0x00,0x00},/*"秒",15*/
};

#endif /* OLEDFONT_H_ */

pic.h代碼:

#ifndef PIC_H_
#define PIC_H_

unsigned char BMP1[] =
{

 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,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
 0XF0,0X98,0X8C,0X84,0X06,0X06,0X04,0X0C,0X18,0XF0,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,0XFF,0X65,0X65,0X01,0X00,0X00,0X00,0X00,
 0X00,0XFF,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,
 0XFF,0XCB,0XCB,0XC0,0X10,0X30,0XF0,0X00,0X00,0XFF,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,0XF0,0X1C,0X06,0XF3,0XF9,0XFC,0XFC,0XFF,0XFF,0XFF,0XFF,0XFC,
 0XFC,0XF9,0XE3,0X06,0X3C,0XF0,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,0X03,0X0C,0X38,0X23,
 0X47,0XCF,0XDF,0X9F,0X9F,0X9F,0X9F,0XDF,0XCF,0X47,0X31,0X38,0X0E,0X03,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,
 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,

};

unsigned char BMP2[] =
{

 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,
 0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XE0,0X38,0X18,0X0C,0X0C,
 0X04,0X04,0X0C,0X0C,0X18,0X38,0XF0,0XC0,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,0X06,0XC0,0X60,0X38,0X18,0X0C,
 0X0C,0X04,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0XFE,0X00,0X00,0X00,0X00,0XFF,0XFF,
 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,0X04,0X04,0X04,0X04,0X04,0X00,
 0X00,0X00,0X1F,0XFF,0XC0,0X80,0X00,0X00,0X00,0X00,0XFF,0XFF,0X00,0X00,0X00,0X00,
 0X00,0XFF,0X00,0X00,0X00,0X00,0XFF,0XFF,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,0X60,0X30,0X18,0X08,0X00,0X01,0X03,0X03,0X06,
 0X04,0X0C,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0XFF,0X00,0X00,0X00,0X00,0XFF,0XFF,
 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,0XE0,0XF8,0X0C,0X07,0X03,0X01,0X80,0X20,0X10,0X00,0X08,
 0X08,0X0F,0X08,0X00,0X10,0X20,0XC0,0X01,0X03,0X03,0X0E,0X3C,0XF0,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,0X3F,0XF8,0XC0,
 0X00,0X00,0X00,0X0F,0X20,0X40,0X40,0X80,0X80,0X80,0X80,0X80,0X40,0X20,0X18,0X07,
 0X00,0X00,0X80,0XE0,0X7F,0X0F,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,0X06,0X0C,0X18,0X18,0X30,0X30,0X30,
 0X30,0X30,0X30,0X30,0X30,0X10,0X18,0X0C,0X0C,0X06,0X03,0X01,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,

};

const unsigned char gImage_zz[] =
{
 0X00,0X00,0X00,0X00,0XF0,0XF0,0X30,0XB0,0XB0,0XB0,0XB0,0XB0,0X30,0XF0,0XF0,0X00,
 0X40,0X40,0XB0,0X70,0X70,0XC0,0XF0,0XF0,0X80,0X40,0X40,0XC0,0XC0,0XC0,0X00,0X70,
 0X70,0X30,0XB0,0XB0,0X30,0XF0,0XF0,0X00,0X80,0X80,0X70,0XB0,0XB0,0X30,0XF0,0XF0,
 0X00,0XF0,0XF0,0X30,0XB0,0XB0,0XB0,0XB0,0XB0,0X30,0XF0,0XF0,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0X7F,0X7F,0X60,0X6F,0X6F,0X6F,0X6F,0X6F,0X60,0X7F,0X7F,0X00,
 0XF0,0XF0,0X0D,0XEE,0XEE,0X1D,0X6F,0X6F,0X9D,0X7C,0X7C,0X81,0XEF,0XEF,0X9C,0XE0,
 0XE0,0X82,0XF1,0XF1,0X02,0X6D,0X6D,0X8C,0XFD,0XFD,0X1C,0X73,0X73,0X0E,0X7D,0X7D,
 0X00,0X7F,0X7F,0X60,0X6F,0X6F,0X6F,0X6F,0X6F,0X60,0X7F,0X7F,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0XE4,0XE4,0X04,0X3C,0X3C,0X18,0XE7,0XE7,0X27,0XDB,0XDB,0X1B,
 0XC4,0XC4,0XDC,0X07,0X07,0X3C,0XC7,0XC7,0X3B,0X1B,0X1B,0X00,0X27,0X27,0X20,0XC7,
 0XC7,0XFF,0XE3,0XE3,0X1B,0X18,0X18,0X1F,0X20,0X20,0X1F,0X38,0X38,0XFF,0XE3,0XE3,
 0X38,0XC7,0XC7,0XDB,0XC4,0XC4,0X04,0XFC,0XFC,0X3B,0XE0,0XE0,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0X88,0X88,0X79,0X08,0X08,0XFF,0XF8,0XF8,0X86,0XB6,0XB6,0X4F,
 0X37,0X37,0X7E,0XB6,0XB6,0X40,0XC9,0XC9,0X88,0X00,0X00,0X00,0X40,0X80,0XC0,0X01,
 0X01,0X00,0X41,0X41,0X01,0X01,0X01,0XB0,0XB6,0XB6,0X46,0XCF,0XCF,0XCE,0XC1,0XC1,
 0X77,0X30,0X30,0X00,0XC7,0XC7,0X36,0XFF,0XFF,0X08,0X00,0X00,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0X93,0X93,0X0C,0XFE,0XFE,0X9F,0X61,0X61,0X0D,0X6D,0X6D,0X9C,
 0X9E,0X9E,0X62,0XED,0XED,0X00,0X11,0X11,0X91,0X80,0X80,0X80,0X00,0X02,0X82,0X80,
 0X80,0X82,0X80,0X80,0X80,0X00,0X00,0XFF,0X03,0X03,0X7C,0X11,0X11,0X7D,0X01,0X01,
 0X6E,0X0E,0X0E,0X82,0X13,0X13,0X10,0X9F,0X9F,0X80,0X82,0X82,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0XC4,0XC4,0XC7,0X38,0X38,0XFC,0X07,0X07,0X1C,0XDB,0XDB,0X03,
 0X3F,0X3F,0XC4,0XDF,0XDF,0XC3,0XE0,0XE0,0X3B,0X38,0X38,0X27,0XFB,0XFB,0X03,0XF8,
 0XF8,0X1F,0XDC,0XDC,0X18,0XFB,0XFB,0XC3,0X23,0X23,0X04,0X3C,0X3C,0X3F,0XE3,0XE3,
 0XFB,0XFB,0XFB,0XC0,0XDF,0XDF,0XC3,0XF8,0XF8,0XC4,0X23,0X23,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0XFE,0XFE,0X06,0XF6,0XF6,0XF6,0XF6,0XF6,0X06,0XFE,0XFE,0X00,
 0X3F,0X3F,0XC7,0X36,0X36,0X4E,0X4E,0X4E,0X47,0XF6,0XF6,0XF1,0X08,0X08,0X88,0XFF,
 0XFF,0X46,0X36,0X36,0X0E,0X39,0X39,0X8E,0X7E,0X7E,0X40,0XFF,0XFF,0X80,0X3F,0X3F,
 0XB0,0XF6,0XF6,0XB0,0X7F,0X7F,0XF7,0X7E,0X7E,0X81,0X00,0X00,0X00,0X00,0X00,0X00,
 0X00,0X00,0X00,0X00,0X0F,0X0F,0X0C,0X0D,0X0D,0X0D,0X0D,0X0D,0X0C,0X0F,0X0F,0X00,
 0X00,0X00,0X0F,0X00,0X00,0X0C,0X0C,0X0C,0X0C,0X01,0X01,0X0D,0X0C,0X0C,0X0D,0X03,
 0X03,0X0E,0X0E,0X0E,0X0E,0X00,0X00,0X01,0X02,0X02,0X00,0X0F,0X0F,0X03,0X00,0X00,
 0X0F,0X0D,0X0D,0X01,0X0C,0X0C,0X03,0X0E,0X0E,0X0F,0X0C,0X0C,0X00,0X00,0X00,0X00,
 
};

#endif /* PIC_H_ */

user.c代碼:


#include "hal_data.h"
#include "stdint.h"
#include "user.h"
#include "oled.h"
#include "pic.h"
#include "dht11.h"

extern volatile bool rtc_flag;
//extern uint16_t adc_result_buffer[3];
extern uint8_t page_flag;
extern uint8_t rtc_second;      //秒
extern uint8_t rtc_minute;      //分
extern uint8_t rtc_hour;        //時
extern uint8_t rtc_day;         //日
extern uint8_t rtc_month;       //月
extern uint16_t rtc_year;       //年
extern rtc_time_t set_time;
extern rtc_time_t get_time;

extern uint8_t Temp;
extern uint8_t Humi;
extern uint8_t retry;
extern uint8_t NO_dht11_flag;
extern bsp_io_level_t p_port_value_dht11;

void page0(void)
{
    OLED_Clear();
    while(page_flag==0)
    {
        OLED_DrawBMP(0,0,64,8,gImage_zz);
        OLED_ShowString(88,1,"RA",16);
        OLED_ShowCHinese(80,3,3);//生
        OLED_ShowCHinese(96,3,4);//態
        OLED_ShowCHinese(72,5,5);//工
        OLED_ShowCHinese(88,5,6);//作
        OLED_ShowCHinese(104,5,7);//室
        R_BSP_SoftwareDelay(200, BSP_DELAY_UNITS_MILLISECONDS);
    }
}
void page1(void)
{
    OLED_Clear();
    OLED_ShowString(16,1,"RA",16);
    OLED_ShowCHinese(32,1,3);//生
    OLED_ShowCHinese(48,1,4);//態
    OLED_ShowCHinese(64,1,5);//工
    OLED_ShowCHinese(80,1,6);//作
    OLED_ShowCHinese(96,1,7);//室
    OLED_ShowCHinese(40,5,0);//年
    OLED_ShowCHinese(72,5,1);//月
    OLED_ShowCHinese(104,5,2);//日
    OLED_ShowString(48,3,":",16);
    OLED_ShowString(72,3,":",16);

    while(page_flag==1)
    {
         if(rtc_flag)
         {
              R_RTC_CalendarTimeGet(&g_rtc0_ctrl, &get_time);//獲取RTC計數時間
              rtc_flag=0;
              rtc_second=get_time.tm_sec;//秒
              rtc_minute=get_time.tm_min;//分
              rtc_hour=get_time.tm_hour;//時
              rtc_day=get_time.tm_mday;//日
              rtc_month=get_time.tm_mon;//月
              rtc_year=get_time.tm_year; //年
         }

         OLED_ShowNum(8,5,rtc_year+1900,4,16);//年
         OLED_ShowNum(56,5,rtc_month,2,16);//月
         OLED_ShowNum(88,5,rtc_day,2,16);//日
         OLED_ShowNum(32,3,rtc_hour,2,16);//時
         OLED_ShowNum(56,3,rtc_minute,2,16);//分
         OLED_ShowNum(80,3,rtc_second,2,16);//秒

         }
}

void page2(void)
{
    OLED_Clear();
    while(page_flag==2)
    {

         OLED_ShowCHinese(58,2,8);//溫度
         OLED_ShowCHinese(74,2,9);
         OLED_ShowString(90,2,":",16);
         OLED_ShowCHinese(58,5,10);//濕度
         OLED_ShowCHinese(74,5,9);
         OLED_ShowString(90,5,":",16);
         OLED_DrawBMP(0,1,56,8,BMP1);

         DHT11_Read_Data();
         OLED_ShowNum(98,2,Temp,2,16);
         OLED_ShowString(116,2,"C",16);
         OLED_ShowNum(98,5,Humi,2,16);
         OLED_ShowString(116,5,"%",16);
         OLED_DrawBMP(0,1,56,8,BMP2);

         R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS);
    }
}

void page3(void)
{
    OLED_Clear();
    while(page_flag==3)
    {
        qe_touch_main();
    }
}

user.h代碼:


#ifndef USER_H_
#define USER_H_
#include "stdint.h"

void page0(void);
void page1(void);
void page2(void);
void page3(void);

#endif /* OLED_H_ */

hal_entry.c代碼:

#include "hal_data.h"
#include "oled.h"
#include "user.h"
#include "dht11.h"
#include "qe_touch_config.h"
//#include "pic.h"
//#include "oledfont.h"

FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER

uint8_t page_flag=0;
uint8_t rtc_second;//秒
uint8_t rtc_minute;//分
uint8_t rtc_hour;//時
uint8_t rtc_day;//日
uint8_t rtc_month;//月
uint16_t rtc_year;//年
rtc_time_t get_time;
rtc_time_t set_time;

i2c_master_event_t i2c_event = I2C_MASTER_EVENT_ABORTED;
void IIC_master_callback(i2c_master_callback_args_t *p_args)
{
    i2c_event = I2C_MASTER_EVENT_ABORTED;
    if (NULL != p_args)
    {
        /* capture callback event for validating the i2c transfer event*/
        i2c_event = p_args->event;
    }
}

fsp_err_t err = FSP_SUCCESS;
int  timeout_ms = 100;
/* rtc_time_t is an alias for the C Standard time.h struct 'tm' */
rtc_time_t set_time =
{
    .tm_sec  = 0,      /* 秒,范圍從 0 到 59 */
    .tm_min  = 0,      /* 分,范圍從 0 到 59 */
    .tm_hour = 0,      /* 小時,范圍從 0 到 23*/
    .tm_mday = 11,       /* 一月中的第幾天,范圍從 1 到 31*/
    .tm_mon  = 11,      /* 月份,范圍從 0 到 11*/
    .tm_year = 121,     /* 自 1900 起的年數,2021為121*/
//    .tm_wday = 5,       /* 一周中的第幾天,范圍從 0 到 6*/
//    .tm_yday=0,         /* 一年中的第幾天,范圍從 0 到 365*/
//    .tm_isdst=0;        /* 夏令時*/
};

volatile bool rtc_flag = 0;//RTC延時1s標志位
/* Callback function */
void rtc_callback(rtc_callback_args_t *p_args)
{
    /* TODO: add your own code here */
    if(p_args->event == RTC_EVENT_PERIODIC_IRQ)
        rtc_flag=1;
}

/* Callback function */
void exit0_callback(external_irq_callback_args_t *p_args)
{
    /* TODO: add your own code here */
    (void) p_args;
    page_flag++;
    if(page_flag>=4)
    {
        page_flag=0;

    }
}

void hal_entry(void)
{
    /* TODO: add your own code here */
    /* Initialize the RTC module*/
       err = R_RTC_Open(&g_rtc0_ctrl, &g_rtc0_cfg);
       /* Handle any errors. This function should be defined by the user. */
       assert(FSP_SUCCESS == err);
       /* R_RTC_CalendarTimeSet must be called at least once to start the RTC */
       R_RTC_CalendarTimeSet(&g_rtc0_ctrl, &set_time);
       /* Set the periodic interrupt rate to 1 second */
       R_RTC_PeriodicIrqRateSet(&g_rtc0_ctrl, RTC_PERIODIC_IRQ_SELECT_1_SECOND);
       /* IIC初始化*/
       err = R_IIC_MASTER_Open(&g_i2c_master0_ctrl, &g_i2c_master0_cfg);
       assert(FSP_SUCCESS == err);
       /* Configure the external interrupt. */
       fsp_err_t err = R_ICU_ExternalIrqOpen(&g_external_irq0_ctrl, &g_external_irq0_cfg);
       assert(FSP_SUCCESS == err);
       /* Enable the external interrupt. */
       /* Enable not required when used with ELC or DMAC. */
       err =  R_ICU_ExternalIrqEnable(&g_external_irq0_ctrl);
       assert(FSP_SUCCESS == err);

       WriteCmd();//OLED初始化
       OLED_Clear();//清屏

        while(1)
        {
            if(page_flag==0)
            {
                page0();
            }
            if(page_flag==1)
            {
                page1();
            }
            if(page_flag==2)
            {
                page2();
            }
            if(page_flag==3)
            {
                page3();
            }
        }

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}

/*******************************************************************************************************************//**
 * This function is called at various points during the startup process.  This implementation uses the event that is
 * called right before main() to set up the pins.
 *
 * @param[in]  event    Where at in the start up process the code is currently at
 **********************************************************************************************************************/
void R_BSP_WarmStart(bsp_warm_start_event_t event)
{
    if (BSP_WARM_START_RESET == event)
    {
#if BSP_FEATURE_FLASH_LP_VERSION != 0

        /* Enable reading from data flash. */
        R_FACI_LP->DFLCTL = 1U;

        /* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
         * C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
#endif
    }

    if (BSP_WARM_START_POST_C == event)
    {
        /* C runtime environment and system clocks are setup. */

        /* Configure pins. */
        R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
    }
}

#if BSP_TZ_SECURE_BUILD

BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable ();

/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable ()
{

}
#endif

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17148

    瀏覽量

    351197
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9097

    瀏覽量

    367557
  • 嵌入式
    +關注

    關注

    5082

    文章

    19126

    瀏覽量

    305201
  • 開發板
    +關注

    關注

    25

    文章

    5050

    瀏覽量

    97471
  • 瑞薩電子
    +關注

    關注

    37

    文章

    2866

    瀏覽量

    72210
收藏 人收藏

    評論

    相關推薦

    電子RZ/N2L MPU產品介紹

    生態合作伙伴RT-Thread推出了一款高性能、多功能以太網MPU開發板EtherKit,搭載電子RZ/N
    的頭像 發表于 12-19 16:50 ?273次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>電子</b>RZ/N<b class='flag-5'>2L</b> MPU產品介紹

    FPB-RA6E2 評估板入門學習

    FPB-RA6E2 評估板入門學習
    的頭像 發表于 12-11 09:22 ?190次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b> FPB-<b class='flag-5'>RA6E2</b> 評估板入門學習

    電子RA2L1 MCU產品介紹

    RA2L1 MCU是RA家族RA2系列廣受歡迎的一款產品。RA2L1 MCU專為超低功耗應用
    的頭像 發表于 12-10 10:51 ?279次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>電子</b><b class='flag-5'>RA2L1</b> MCU產品介紹

    電子推出RA8E1RA8E2微控制器產品群

    全球半導體解決方案供應商電子(TSE:6723)宣布,推出RA8E1RA8E2微控制器(MCU)產品群,進一步擴展其業界卓越和廣受歡迎
    的頭像 發表于 11-09 16:59 ?532次閱讀

    RA-Eco-RA2E1-48PIN-V1.0開發板試用】RA-Eco-RA2E1-48PIN-V1.0開發板基于Keil MDK環境搭建

    系列中功耗最低的 CPU)。 這款產品采用優化的制程和電子的低功耗工藝技術,是業界一流水平的超低功耗微控制器。 RA-Eco-RA2L1-48PIN-V1.0 以R7FA
    發表于 11-04 22:58

    RA8D1 CPK開發板】RA8D1移植ThreadX操作系統

    首先感謝[RA生態工作室]( RA MCU 生態社區)提供的
    發表于 10-20 20:22

    e2studio(1)----芯片之搭建FSP環境

    視頻教學 樣品申請 請勿添加外鏈 e2studio軟件 e2studio是的集成開發環境,FSP 提供了眾多可提高效率的工具,用于開發針對
    發表于 09-30 15:28

    試用活動 | 100套!!RA6E2/RA4E2開發板評測活動

    活動簡介: RA6E2/RA4E2開發板評測活動是一個針對
    的頭像 發表于 09-10 11:18 ?613次閱讀
    試用活動 | 100套!!<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA6E2</b>/<b class='flag-5'>RA4E2</b>開發板評測活動

    RA2L1系列CAN通信應用

    RA2L1系列CAN通信應用
    的頭像 發表于 06-26 08:06 ?613次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA2L1</b>系列CAN通信應用

    基于電子RA系列的野火耀陽RA8D1開發板產品簡介

    野火耀陽RA8D1開發板是一款功能強大的開發板,適用于各種嵌入式應用開發。它采用電子RA系列R7FA8D
    的頭像 發表于 05-29 14:19 ?835次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>電子</b><b class='flag-5'>RA</b>系列的野火耀陽<b class='flag-5'>RA8D1</b>開發板產品簡介

    RA0E1開發分享之一

    介紹生態社區的RA0E1開發板。
    的頭像 發表于 05-10 13:57 ?930次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA0E1</b>開發分享之一

    電子RA產品家族新增RA0E1 MCU產品組

    電子RA產品家族新增RA0E1 MCU產品組。RA0E1系列是一款低功耗、低成本微控制器,結
    的頭像 發表于 04-11 15:17 ?917次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>電子</b><b class='flag-5'>RA</b>產品家族新增<b class='flag-5'>RA0E1</b> MCU產品組

    電子RA家族推出RA8系列高算力通用MCU

    電子RA家族推出RA8系列高算力通用MCU,是業界首款基于Arm? Cortex?-M85(CM85)內核的32位MCU,主頻高達480
    的頭像 發表于 04-02 14:14 ?1440次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>電子</b><b class='flag-5'>RA</b>家族推出<b class='flag-5'>RA</b>8系列高算力通用MCU

    RX和RA系列主時鐘電路和子時鐘電路設計指南

    電子發燒友網站提供《RX和RA系列主時鐘電路和子時鐘電路設計指南.pdf》資料免費下載
    發表于 02-19 10:20 ?1次下載
    RX和<b class='flag-5'>RA</b>系列主<b class='flag-5'>時鐘</b>電路和<b class='flag-5'>子時鐘</b>電路設計指南

    基于RA2E1 MCU芯片的藍牙平衡小車設計

    項目RA2E1 MCU芯片作為主控,搭載電源模塊、MPU6050模塊、超聲波模塊、OLED模塊、藍牙模塊、電機模塊等組成的藍牙平衡小車。該小車有平衡模式、跟隨模式和避障模式三種
    的頭像 發表于 01-08 12:17 ?1807次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA2E1</b> MCU芯片的藍牙平衡小車設計
    主站蜘蛛池模板: 51精品视频免费国产专区| 888午夜不卡理论久久| 日本一区视频| 日韩成人影院| 亚洲国产网| 欧美在线伊人| 午夜免费伦费影视在线观看| 丁香激情六月天| 色噜噜综合网| 在线天堂资源www中文在线| 在线播放网址| 四虎国产永久在线观看| 日本www.色| 午夜免费视频网站| 亚洲激情a| 美国一级毛片片aa久久综合| 天天爱天天射| 国产福利vr专区精品| 久久噜国产精品拍拍拍拍| 男女啪视频大全1000| 中文天堂在线视频| 狠狠色综合网站久久久久久久| 国产午夜精品一区二区| 亚洲h视频| 99综合久久| 九九热在线视频观看这里只有精品| 国产精品久久久久久久久齐齐| 久久久久久久久综合影视网| 国产老头和美女在线观看| 性xxxxbbbb免费播放视频| 99久精品| 热99精品| 国产精品17p| 在线精品国产成人综合第一页| 欧美污网站| 午夜高清视频在线观看| 免费观看黄视频网站| 国产美女主播在线| 37pao强力打造免费高速高清 | 黄a在线| 午夜爱爱爱爱爽爽爽网站免费|