Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目
基于单片机的太空飞机游戏机设计与实现
大家可用于 课程设计 或 毕业设计
单片机-嵌入式毕设选题大全及项目分享:
https://blog.csdn.net/m0_71572576/article/details/125409052
连接 OLED显示器
MCU(学长选arduino)
/*
太空游戏源码
*/
#include
#include
#ifdef U8X8_HAVE_HW_SPI
#include
#万一
#ifdef U8X8_HAVE_HW_I2C
#include
#万一
// 请取消注释下面的构造器行之一
// 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:垃圾,可能会击中玩家
*/
...
篇幅有限,只展示部分代码
单片机-嵌入式毕设选题大全及项目分享:
https://blog.csdn.net/m0_71572576/article/details/125409052