• 【毕业设计】基于单片机的太空游戏机 - 嵌入式 物联网 stm32 51



    1 简介

    Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目

    基于单片机的太空飞机游戏机设计与实现

    大家可用于 课程设计 或 毕业设计


    单片机-嵌入式毕设选题大全及项目分享:

    https://blog.csdn.net/m0_71572576/article/details/125409052


    2 主要器件

    2.1 硬件器件

    • 任意单片机
    • OLED 显示屏 128x64×1 ( i2c 和 SPI 都可以工作)
    • 按钮开关 12mm ×3(SparkFun 按钮开关 12mm)
    • 电阻 10k 欧姆× 3
    • 通用印刷电路板×1( 或者你可以在面包板上制作)
    • 母头 8 位 1 排 (0.1") ×1
    • 公头 40 位置 1 排 (0.1") ×1
    • 4xAA 电池座×1

    在这里插入图片描述

    3 实现效果

    在这里插入图片描述

    在这里插入图片描述

    4 设计原理

    4.1 器件连接

    连接 OLED显示器

    • 显示器的 Vcc 连接到 Arduino 的 5V 输出。
    • 显示器的 GND 连接到 Arduino GND 引脚。
    • 显示器的 SDA 引脚连接到 Arduino 的 A4 或 SDA 引脚。
    • 显示器的 SCL 引脚连接到 Arduino 的 A5 或 SCL 引脚。
    • 连接按钮

    MCU(学长选arduino)

    • Arduino D3的向上按钮
    • Arduino D4的向下按钮
    • Arduino D5 的点火按钮

    在这里插入图片描述

    5 部分实现代码

    /*
    
    太空游戏源码
    
    */
    
    #include <Arduino.h>
    #include <U8g2lib.h>
    
    #ifdef U8X8_HAVE_HW_SPI
    #include <SPI.h>
    #万一
    #ifdef U8X8_HAVE_HW_I2C
    #include <Wire.h>
    #万一
    
    // 请取消注释下面的构造器行之一
    // U8g2 构造器列表(图片循环页面缓冲区)
    //完整列表在这里:https://github.com/olikraus/u8g2/wiki/u8g2setupcpp
    // 请根据您的设置更新引脚编号。如果未连接复位引脚,则
    使用 U8X8_PIN_NONE
    //U8G2_NULL u8g2 ( U8G2_R0 ) ;     // 空设备,一个 8x8 像素的显示器,什么都不做
    // U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 12 , /* dc = */ 4 , /* reset = */ 6 ) ;     // Arduboy (生产,Kickstarter 版)
    //U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SSD1306_128X64_NONAME_1_3W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* reset = */ 8 ) ;
    U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_SSD1306_128X64_ALT0_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;    // 与 NONAME 变体相同,但可以解决“每 2 行被跳过”的问题
    //U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* reset = */ 8 ) ;
    //U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;    // 没有重置显示的所有板
    //U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 16 , /* data = */ 17 , /* reset = */ U8X8_PIN_NONE ) ;    // ESP32 Thing,纯软件模拟 I2C
    //U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE, /* clock = */ 16 , /* data = */ 17 ) ;    // ESP32 Thing,带引脚重新映射的硬件 I2C
    // U8G2_SSD1306_128X64_NONAME_1_6800 u8g2 ( U8G2_R0,13,11,2,3,4,5,6,A4,/ *使能= * / 7,/ * CS = * / 10,/ * DC = * / 9,/ *复位= */ 8 ) ;
    // U8G2_SSD1306_128X64_NONAME_1_8080 u8g2 ( U8G2_R0,13,11,2,3,4,5,6,A4,/ *使能= * / 7,/ * CS = * / 10,/ * DC = * / 9,/ *复位= */ 8 ) ;
    //U8G2_SSD1306_128X64_VCOMH0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 与 NONAME 变体相同,但最大化 setContrast ()范围
    //U8G2_SSD1306_128X64_ALT0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 与 NONAME 变体相同,但可以解决“每 2 行被跳过”的问题
    //U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_SH1106_128X64_VCOMH0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // 与 NONAME 变体相同,但最大化 setContrast ()范围
    //U8G2_SH1106_128X64_WINSTAR_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // 与 NONAME 变体相同,但使用更新的 SH1106 初始化序列
    //U8G2_SH1106_72X40_WISE_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SH1107_64X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SH1107_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SH1107_128X128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;
    //U8G2_SH1107_PIMORONI_128X128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;
    //U8G2_SH1107_SEEED_128X128_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_SH1107_SEEED_128X128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_SH1107_SEEED_96X96_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SH1108_160X160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SH1122_256X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 // 在 u8g2.h 中启用 U8G2_16BIT
    //U8G2_SSD1306_128X32_UNIVISION_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 21 , /* data = */ 20 , /* reset = */ U8X8_PIN_NONE ) ;    // Adafruit Feather M0 Basic Proto + FeatherWing OLED
    //U8G2_SSD1306_128X32_UNIVISION_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;    // Adafruit Feather ESP8266/32u4 板 + FeatherWing OLED
    //U8G2_SSD1306_128X32_UNIVISION_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;    // Adafruit ESP8266/32u4/ARM 板 + FeatherWing OLED
    //U8G2_SSD1306_128X32_UNIVISION_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE, /* clock = */ SCL, /* data = */ SDA ) ;    // 使用 ESP8266 HW I2C 重新映射引脚
    //U8G2_SSD1306_128X32_WINSTAR_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE, /* clock = */ SCL, /* data = */ SDA ) ;    // 使用 ESP8266 HW I2C 重新映射引脚
    //U8G2_SSD1306_64X48_ER_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;    // EastRising 0 .66 " OLED 分线板,Uno:A4=SDA,A5=SCL,5V 供电
    //U8G2_SSD1306_48X64_WINSTAR_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);   
    //U8G2_SSD1306_64X32_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
    //U8G2_SSD1306_64X32_1F_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
    //U8G2_SSD1306_96X16_ER_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // EastRising 0.69" OLED 
    // U8G2_SSD1322_NHD_256X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // 在 u8g2.h 中启用 U8G2_16BIT
    //U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 在 u8g2.h 中启用 U8G2_16BIT
    // U8G2_SSD1322_NHD_128X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1322_NHD_128X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1325_NHD_128X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1325_NHD_128X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD0323_OS128064_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD0323_OS128064_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1326_ER_256X32_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );          //实验司机为ER-OLED018-1
    //U8G2_SSD1327_SEEED_96X96_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;     // Seeedstudio Grove OLED 96x96
    //U8G2_SSD1327_SEEED_96X96_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;     // Seeedstudio Grove OLED 96x96
    // U8G2_SSD1327_EA_W128128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1327_EA_W128128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_SSD1327_EA_W128128_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 5 , /* data = */ 4 , /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_SSD1327_EA_W128128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
    // U8G2_SSD1327_MIDAS_128X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1327_MIDAS_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1327_WS_128X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1327_WS_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1329_128X96_NONAME_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1329_128X96_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1305_128X32_NONAME_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1305_128X32_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1305_128X32_ADAFRUIT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1305_128X32_ADAFRUIT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1305_128X64_ADAFRUIT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_SSD1305_128X64_ADAFRUIT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_SSD1309_128X64_NONAME0_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );  
    //U8G2_SSD1309_128X64_NONAME0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    // U8G2_SSD1309_128X64_NONAME2_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );  
    //U8G2_SSD1309_128X64_NONAME2_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    //U8G2_SSD1316_128X32_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    //U8G2_SSD1316_128X32_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     
    //U8G2_SSD1317_96X96_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;   // 未测试,未确认
    //U8G2_SSD1317_96X96_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;      // 未测试,未确认
    //U8G2_SSD1318_128X96_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    //U8G2_SSD1318_128X96_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     
    //U8G2_LD7032_60X32_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 11 , /* data = */ 12 , /* cs = */ 9 , /* dc = */ 10 , /* reset = */ 8 ) ;     // SW SPI纳米板
    //U8G2_LD7032_60X32_1_4W_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 11 , /* data = */ 12 , /* reset = */ U8X8_PIN_NONE ) ;     // 未测试!
    // U8G2_UC1701_EA_DOGS102_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_UC1701_EA_DOGS102_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_PCD8544_84X48_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 诺基亚5110显示器
    //U8G2_PCD8544_84X48_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                         // 诺基亚5110显示器
    //U8G2_PCF8812_96X65_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 也可以是 PCF8814
    //U8G2_PCF8812_96X65_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                         // 也可以是 PCF8814
    //U8G2_HX1230_96X68_1_3W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* reset = */ 8 ) ;
    //U8G2_HX1230_96X68_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_KS0108_128X64_1 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * DC = * / 17,/ * CS0 = * / 14,/ * CS1 = */ 15 , /*cs2 = */ U8X8_PIN_NONE, /*重置= */ U8X8_PIN_NONE ) ;      // 将 R/W 设置为低!
    // U8G2_KS0108_ERM19264_1 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * DC = * / 17,/ * CS0 = * / 14,/ * CS1 = */ 15 , /*cs2 = */ 16 , /*重置= */ U8X8_PIN_NONE ) ;      // 将 R/W 设置为低!
    // U8G2_ST7920_192X32_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / U8X8_PIN_NONE,/ * DC = * / 17,/ *复位= */ U8X8_PIN_NONE ) ;
    //U8G2_ST7920_192X32_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 18 /* A4 */ , /* data = */ 16 /* A2 */, /* CS = */ 17 /* A3 */, /* reset = */ U8X8_PIN_NONE ) ;
    // U8G2_ST7920_128X64_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18 / * A4 * /,/ * CS = * / U8X8_PIN_NONE,/ * DC / RS = */ 17 /* A3 */, /*reset = */ 15 /* A1 */ ) ;     // 记得将R/W设置为0 
    //U8G2_ST7920_128X64_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 18 /* A4 */ , /* data = */ 16 /* A2 */, /* CS = */ 17 /* A3 */, /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_ST7920_128X64_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* CS = */ 10 , /* reset = */ 8 ) ;
    //U8G2_ST7920_128X64_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 14 , /* data = */ 13 , /* CS = */ 15 , /* reset = */ 16 ) ; // Feather HUZZAH ESP8266, E =时钟= 14 , RW =数据= 13 , RS = CS
    //U8G2_ST7920_128X64_1_HW_SPI u8g2 ( U8G2_R0, /* CS = */ 10 , /* reset = */ 8 ) ;
    //U8G2_ST7920_128X64_1_HW_SPI u8g2 ( U8G2_R0, /* CS = */ 15 , /* reset = */ 16 ) ; // Feather HUZZAH ESP8266, E =时钟= 14 , RW =数据= 13 , RS = CS
    // U8G2_ST7565_EA_DOGM128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST7565_EA_DOGM128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_ST7565_64128N_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_ST7565_64128N_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_ST7565_EA_DOGM132_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ PIN_ONE ) ;     // DOGM132 盾牌
    //U8G2_ST7565_EA_DOGM132_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ U8X8_PIN_NONE ) ;     // DOGM132 盾牌
    // U8G2_ST7565_ZOLEN_128X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST7565_ZOLEN_128X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_ST7565_LM6059_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // Adafruit ST7565 GLCD
    //U8G2_ST7565_LM6059_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;             // Adafruit ST7565 GLCD
    //U8G2_ST7565_LX12864_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    //U8G2_ST7565_LX12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST7565_ERC12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST7565_ERC12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST7565_ERC12864_ALT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); //对比度改进版的ERC12864
    //U8G2_ST7565_ERC12864_ALT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; //对比度改进版的ERC12864
    // U8G2_ST7565_NHD_C12832_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST7565_NHD_C12832_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST7565_NHD_C12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST7565_NHD_C12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST7565_JLX12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST7565_JLX12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST7567_PI_132X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 7,/ * DC = * / 9,/ *复位= * / 8 );   // Pax Instruments Shield, LCD_BL = 6
    //U8G2_ST7567_PI_132X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 7 , /* dc = */ 9 , /* reset = */ 8 ) ;   // Pax Instruments Shield, LCD_BL = 6
    // U8G2_ST7567_JLX12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 7,/ * DC = * / 9,/ *复位= * / 8 );  
    //U8G2_ST7567_JLX12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 7 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    // U8G2_ST7567_ENH_DG128064_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
    //U8G2_ST7567_ENH_DG128064_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; 
    // U8G2_ST7567_ENH_DG128064I_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
    //U8G2_ST7567_ENH_DG128064I_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; 
    //U8G2_ST7567_64X32_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ; 
    // U8G2_ST75256_JLX172104_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST75256_JLX172104_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST75256_JLX19296_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST75256_JLX19296_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
    // U8G2_ST75256_JLX256128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75256_JLX256128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
    // U8G2_ST75256_WO256X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75256_WO256X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75256_JLX256128_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 9 , /* data = */ 8 , /* cs = */ 7 , /* dc = */ 6 , /* reset = */ 5 ) ;   // MKR零,使能U8g2 16位模式对于该显示
    //U8G2_ST75256_JLX256128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 7 , /* dc = */ 6 , /* reset = */ 5 ) ;   // MKR零,使能U8g2 16位模式对于该显示
    // U8G2_ST75256_JLX256160_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75256_JLX256160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
    // U8G2_ST75256_JLX256160M_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75256_JLX256160M_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
    // U8G2_ST75256_JLX256160_ALT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75256_JLX256160_ALT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
    // U8G2_ST75256_JLX240160_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    //U8G2_ST75256_JLX240160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;    
    //U8G2_ST75256_JLX25664_1_2ND_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;     //由于,第二I2C,使U8g2 16位模式对于该显示
    // U8G2_ST75320_JLX320240_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
    //U8G2_ST75320_JLX320240_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
    // U8G2_NT7534_TG12864R_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );  
    //U8G2_NT7534_TG12864R_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    //U8G2_ST7588_JLX12864_1_SW_I2C u8g2 ( U8G2_R0, /*时钟= */ SCL, /*数据= */ SDA, /*复位= */ 5 ) ;  
    //U8G2_ST7588_JLX12864_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 5 ) ;
    // U8G2_IST3020_ERC19264_1_6800 u8g2 ( U8G2_R0,44,43,42,41,40,39,38,37,/ *使能= * / 28,/ * CS = * / 32,/ * DC = * / 30,/ *复位= */ 31 ) ; // 将 WR 引脚与 GND 连接
    // U8G2_IST3020_ERC19264_1_8080 u8g2 ( U8G2_R0,44,43,42,41,40,39,38,37,/ *使能= * / 29,/ * CS = * / 32,/ * DC = * / 30,/ *复位= */ 31 ) ; // 将 RD 引脚与3 .3V
    连接
    // U8G2_IST3020_ERC19264_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
    // U8G2_LC7981_160X80_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
    // U8G2_LC7981_160X160_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
    // U8G2_LC7981_240X128_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
    // U8G2_LC7981_240X64_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
    // U8G2_SED1520_122X32_1 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ * DC = * / A0,/ * E1 = * / A3,/ * E2 = * / A2,/ *复位= */ A4 ) ;      // 将 R/W 设置为低!
    // U8G2_T6963_240X128_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
    // U8G2_T6963_256X64_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
    // U8G2_T6963_160X80_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
    // U8G2_T6963_128X64_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
    // U8G2_T6963_128X64_ALT_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
    // U8G2_SED1330_240X128_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将/RD = E 与+5V 连接,使能是/WR = RW,FG 与GND,14 = Uno 引脚A0
    // U8G2_SED1330_240X128_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // A0 是直流引脚,/WR =  RW  = GND,使能是 /RD = E
    // U8G2_RA8835_NHD_240X128_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将/RD = E 与+5V 连接,使能是/WR = RW,FG 与GND,14 = Uno 引脚A0
    // U8G2_RA8835_NHD_240X128_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // A0 是直流引脚,/WR =  RW  = GND,使能是 /RD = E
    //U8G2_UC1601_128X32_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; 
    //U8G2_UC1601_128X32_1_3W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* reset = */ 8 ) ;
    // U8G2_UC1604_JLX19264_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
    //U8G2_UC1604_JLX19264_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
    // U8G2_UC1608_ERC24064_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );   // SW SPI,由于 ERC24064-1 测试设置
    // U8G2_UC1608_ERC240120_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
    // U8G2_UC1608_240X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );   // SW SPI,由于 ERC24064-1 测试设置
    //U8G2_UC1610_EA_DOGXL160_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ PIN U8ONE ) ;
    //U8G2_UC1610_EA_DOGXL160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ U8X8_PIN_NONE ) ;
    //U8G2_UC1611_EA_DOGM240_1_2ND_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;     // 由于,第二个 I2C,DOGM240 测试板
    // U8G2_UC1611_EA_DOGM240_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );    // SW SPI,由于 DOGXL240 测试板
    //U8G2_UC1611_EA_DOGXL240_1_2ND_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;     // 由于,第二个 I2C,DOGXL240 测试板
    // U8G2_UC1611_EA_DOGXL240_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );    // SW SPI,由于 DOGXL240 测试板
    // U8G2_UC1611_EW50850_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 3,/ * DC = * / 16,/ *复位= */ 17 ) ; // 240x160,将 RD/WR1 引脚与3 .3V 连接,CS 为高电平
    // U8G2_UC1611_CG160160_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 3,/ * DC = * / 16,/ *复位= */ 17 ) ; // 将 WR1 和 CD1 引脚与3 .3V 连接,将 CS0 与 cs 连接,WR0 与使能连接,CD 与直流连接
    //U8G2_UC1638_160X128_1_4W_HW_SPI u8g2 ( U8G2_R2, /* cs = */ 2 , /* dc = */ 3 , /* reset = */ 4 ) ;   // 未测试 
    //U8G2_SSD1606_172X72_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // 电子墨水/电子纸显示
    // U8G2_SSD1607_200X200_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // eInk/ePaper Display,来自嵌入式艺术家的原始 LUT
    // U8G2_SSD1607_GD_200X200_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // 良好的显示
    // U8G2_SSD1607_WS_200X200_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // 波共享
    // U8G2_IL3820_296X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // bottom我2 0.9英寸EINK /电子纸显示,使 16位模式对于该显示!
    // U8G2_IL3820_V2_296X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //电子纸显示,较小的闪烁和更快的速度,使 16位模式对于该显示!
    //U8G2_LS013B7DH03_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ U8X8_PIN_NONE, /* reset = */ 8 ) ;     //没有直流线用于该显示
    //U8G2_LS027B7DH01_400X240_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ U8X8_PIN_NONE, /* reset = */ 8 ) ;     //没有直流线用于该显示
    //U8G2_LS013B7DH05_144X168_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ U8X8_PIN_NONE, /* reset = */ 8 ) ;     //没有直流线用于该显示
    // U8G2_ST7511_AVD_320X240_1_8080 u8g2 ( U8G2_R0,13,11,2,3,4,5,6,A4,/ *使能/ WR = * / 7,/ * CS = * / 10,/ * DC = * / 9,/ *重置= */ 8 ) ; // 启用 U8g2 16Bit 模式并将 RD 引脚连接到3 .3V/5V
    // 构造函数列表结束
    / *按钮设置为Arduboy生产* /
    uint8_t pin_up  =  3 ;
    uint8_t pin_down  =  4 ;
    uint8_t pin_fire  =  5 ;
    #define ST_FP 4
    
    /* 对象类型 */
    结构体_st_ot_struct
    {
      /* 
        导弹和​​命中: 
          位0 : 玩家导弹和垃圾
          位1:垃圾,可能会击中玩家
      */
    ...
    篇幅有限,只展示部分代码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234

    单片机-嵌入式毕设选题大全及项目分享:

    https://blog.csdn.net/m0_71572576/article/details/125409052


    6 最后

  • 相关阅读:
    现货白银有哪些优势
    协议-SSL协议-基础概念01-SSL位置-协议套件-握手和加密过程-对比ipsec
    C++11一些零碎的知识点介绍
    C++面向对象编程(3)——常用关键字介绍(TODO)
    微软中国总部半日游学小记
    计算机SCI期刊是如何审稿的? - 易智编译EaseEditing
    重构学习(四):代码的坏味道
    1058 选择题 (利用ASCII码)
    25 - 单例模式:如何创建单一对象优化系统性能?
    数据可视化之工具
  • 原文地址:https://blog.csdn.net/m0_71572576/article/details/125424117