day56,page70

本文详细介绍了如何使用C语言实现一个简单的菜谱输入和输出程序,通过控制台交互来实现用户输入一个字符并输出,适用于编程初学者了解基本的输入输出操作。

新编大众菜谱page291

#include<stdio.h>

void main(){

  char c;

  printf("input a character\n");

  c=getchar();

  putchar(c);

}


#include “Menu.h” #include “dczloco.h” #include “loco.h” void Menu::openMenu() { if (!display) return; update = false; menu_page = MENU_SETTINGS; sub_page = -1; selected_item = 0; showSettings(sub_page); highlightItem(selected_item); is_menu = true; } bool Menu::isMenu() const { return is_menu; } void Menu::closeMenu() { if (!display) return; if (menu_page > MENU_SETTINGS) { showLast(); return; } clearAll(); update = true; display->setFont(u8g2_font_crox2hb_tf);//菜单返回低 updateInfo(); if (always_new) { showListening(); } else showSelectedLBJ(0); menu_page = MENU_CLOSED; sub_page = 0; is_menu = false; } void Menu::handleKey(bool up) { if (!display) return; if (!is_menu) return; if (is_msg) return; switch (menu_page) { case MENU_CLOSED: break; case MENU_SETTINGS: if (up) selected_item–; else selected_item++; if (selected_item < 0) { sub_page–; selected_item = 3; } if (selected_item > 3) { sub_page++; selected_item = 0; } if (sub_page > -1) { sub_page = -1; /*if (always_new) { sub_page = -1;//页数 } else { menu_page = MENU_RX_INFO; sub_page = -1; //showInfo((int8_t) sub_page); break; }*/ } if (sub_page < -1)//页数 sub_page = -1; showSettings(sub_page); highlightItem(selected_item); break; case MENU_ABOUT: if (up) sub_page--; else sub_page++; if (sub_page < 1) sub_page = 1; if (sub_page > 1) sub_page = 1; showAbout(sub_page); break; case MENU_Buzzer: break; case MENU_OLED: break; case MENU_Bzz: break; case MENU_LCDA: break; } } void Menu::showSettings(int16_t page) { if (!display) return; clearAll(); display->setFont(u8g2_font_wqy16_t_gb2312); display->drawUTF8(96, 16, “系统设置”); display->drawHLine(0, 20, 256); switch (page) { case -1: { items[0] = "蜂鸣器开关";//蜂鸣器 items[1] = "震动开关";//震动 items[2] = "背光灯开关";//背光灯 items[3] = "关于";//关于 for (int i = 0, c = 38; i < 4; ++i, c += 18) { display->drawUTF8(0, c, items[i].c_str()); } break; } default: break; } } void Menu::highlightItem(int8_t item) { display->drawBox(0, 23 + item * 18, 256, 18); display->setDrawColor(0); display->drawUTF8(0, 38 + item * 18, items[item].c_str()); display->setDrawColor(1); display->sendBuffer(); } void Menu::acknowledge() { if (!display) return; if (is_msg) { showLast(); return; } switch (menu_page) { case MENU_SETTINGS: if (sub_page == -1) { switch (selected_item) { case 0: menu_page = MENU_Buzzer;//蜂鸣器 showBuzzer(); selected_item = 0; highlightItem(selected_item); break; case 1: menu_page = MENU_Bzz;//震动 showBzz(); selected_item = 0; highlightItem(selected_item); break; case 2: menu_page = MENU_LCDA;//背光灯 showLCDA(); selected_item = 0; highlightItem(selected_item); break; case 3: menu_page = MENU_ABOUT;//关于 sub_page = 1; showAbout(1); break; default: break; } } break; case MENU_Buzzer://蜂鸣器 if (bz_buzzer ) { prb_count = 0; prb_timer = 0; car_count = 0; car_timer = 0; bz_buzzer = false; showBuzzer(); pinMode(beep_pin, OUTPUT);//pinMode(beep_pin, INPUT); highlightItem(selected_item); } else { bz_buzzer = true; showBuzzer(); pinMode(beep_pin, INPUT);//pinMode(beep_pin, OUTPUT); highlightItem(selected_item); } break; case MENU_Bzz://震动 if (bz_bzz ) { prb_count = 0; prb_timer = 0; car_count = 0; car_timer = 0; bz_bzz = false; showBzz(); pinMode(BOARD_LED, INPUT); highlightItem(selected_item); } else { bz_bzz = true; showBzz(); pinMode(BOARD_LED, OUTPUT); highlightItem(selected_item); } break; case MENU_LCDA://背光灯 if (bz_LCDA ) { prb_count = 0; prb_timer = 0; car_count = 0; car_timer = 0; bz_LCDA = false; showLCDA(); pinMode(LEDA_PIN, INPUT); highlightItem(selected_item); } else { bz_LCDA = true; showLCDA(); pinMode(LEDA_PIN, OUTPUT); highlightItem(selected_item); } break; break; default: return; } } void Menu::showLast() { if (is_msg) is_msg = false; switch (menu_page) { case MENU_Buzzer://蜂鸣器 sub_page = -1;//第1页 showSettings(sub_page); selected_item = 0;//第一项 highlightItem(selected_item); menu_page = MENU_SETTINGS; break; default: case MENU_Bzz://震动 sub_page = -1;//第1页 showSettings(sub_page); selected_item = 1;//第2项 highlightItem(selected_item); menu_page = MENU_SETTINGS; break; case MENU_LCDA://背光灯 sub_page = -1;//第1页 showSettings(sub_page); selected_item = 2;//第3项 highlightItem(selected_item); menu_page = MENU_SETTINGS; break; case MENU_ABOUT://关于 sub_page = -1;//第1页 showSettings(sub_page); selected_item = 3;//第4项 highlightItem(selected_item); menu_page = MENU_SETTINGS; break; return; } } void Menu::showAbout(int16_t page) { clearAll(); display->setFont(u8g2_font_wqy16_t_gb2312); display->drawUTF8(112, 14, "关于"); display->drawHLine(0, 18, 256); //display->drawUTF8(118, 12, String(page).c_str()); char buffer[32]; if (page == 1) { } display->sendBuffer(); } void Menu::showMessage(const char *title, const char *message) { is_msg = true; display->setFont(FONT_12_GB2312); display->setDrawColor(0); display->drawBox(12, 4, 104, 58); display->setDrawColor(1); display->drawFrame(12, 4, 104, 58); display->drawUTF8(15, 16, title); display->drawHLine(14, 18, 100); pwordUTF8(String(message), 18, 34, 100, 58); display->sendBuffer(); } void Menu::updatePage() { if (!is_menu) return; if (millis64() - update_timer < 30) return; switch (menu_page) { case MENU_FREQ: //showFreq(); highlightItem(selected_item); break; case MENU_TF_SETTINGS: if (sub_page != 1) return; //showTFSettings(sub_page); highlightItem(selected_item); break; default: return; } update_timer = millis64(); } void Menu::showBuzzer(bool send) { clearAll(); // display->setDrawColor(0); // display->drawBox(0,0,128,64); // display->setDrawColor(1); display->setFont(u8g2_font_wqy16_t_gb2312); display->drawUTF8(0, 14, “蜂鸣器”); display->drawHLine(0, 18, 256); items[0] = "蜂鸣器开关 "; if (bz_buzzer ) items[0] += "[已关闭]";//已开启 else items[0] += "[已开启]";//已关闭 if (send) display->sendBuffer(); } void Menu::showBzz(bool send) { clearAll(); display->setFont(u8g2_font_wqy16_t_gb2312); display->drawUTF8(0, 14, "震动"); display->drawHLine(0, 18, 256); items[0] = "震动开关 "; if (bz_bzz ) items[0] += "[已开启]"; else items[0] += "[已关闭]"; if (send) display->sendBuffer(); } void Menu::showLCDA(bool send) { clearAll(); display->setFont(u8g2_font_wqy16_t_gb2312); display->drawUTF8(0, 14, “背光灯”); display->drawHLine(0, 18, 256); items[0] = "背光灯 "; if (bz_LCDA ) items[0] += "[已开启]"; else items[0] += "[已关闭]"; if (send) display->sendBuffer(); } 这个一个菜单的代码,但是我想修改一下,添加一个可以修改RTC时间的菜单,已经有RTC初始化的程序了,用的#include <RTClib.h>库,不需要修改秒钟,最好是时间是横着一排通过上下来修改,我的屏幕是256*128的
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值