2019 年天津科技大学电子设计竞赛:算法与策略-----B题
border="0" width="363" height="333" src="//music.163.com/outchain/player?type=0&id=2665666166&auto=1&height=430">
B题简直堪称弱智题目…
分两类说明一下:正规做法、非正规做法。
这里强调一下,看官方提供的材料清单中并没有RTC模块 ,可见并不是想让用正规的方法做呀!
一、正规做法:
1、说明:首先说明下这题在现实生活中 到底应用在哪里呢?
手机关机了,或者以前的手机把电池扣下来了,为什么开机时间仍然是对的呢?现在的智能手机可以从网上自动校准时间,而以前的手机通常需要自己设定时间,然后保存,再把电池扣下来,过半小时,再开机,发现时间仍然是对的 ,这是怎么回事呢?
这全仰仗了RTC,原来在手机内部还有一块小电池它是用来保证实时时钟(RTC)的运行,RTC是一个独立的定时器。 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。如果想了解的可以简要的看下这篇文章的介绍部分。
2、STM32例程:
为什么要提供STM32的例程呢?因为我之前准备的毕设里面就有实时时钟部分。如果大家不会STM32就不要去涉及!关注微信公众号,回复RTC实时时钟例程,即可。
说明:
(1)、该例程只有显示年月日的功能。
(2)、在此处设置时间。
3、Arduino正规做法:
PS:我猜一说有简单的方法就没人用这复杂的方法,所以也简略些,直接甩链接。
https://www.geek-workshop.com/forum.php?mod=viewthread&tid=847&highlight=RTC
.
二、嘿嘿嘿的做法:
直接讲最最最最简单的方法,算法最简单的,但是可能硬件部分麻烦一点,但是它依然是最最最最简单的方法。
1、元器件的准备:
电池、arduino、稳压模块、按键、OLED 屏幕
2、程序底层(使用到的知识):
(1)按键的使用:
知识点:digitalRead()
例程教学:网址
(2)OLED的使用:
OLED里面我们只需要学会显示数字还有:/即可。
下面的程序是显示1-100cm,既能显示数字也能显示字符了,搞明白了那oled部分就没问题了。
#include "U8glib.h" //加载显示库文件
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI 实例化
void setup() {}
void loop() {for(int i=1;i<101;i++){u8g.firstPage(); //一下是显示实现部分do {u8g.setFont(u8g_font_fub30);//设置字体和自号,目前测试字号有fub14,17,20,30u8g.setPrintPos(0, 50); //显示的位置u8g.print(i);//显示变量i的值u8g.setFont(u8g_font_fub14);//设置字体和自号u8g.setPrintPos(95, 50); //显示的位置u8g.print("cm");//显示cm字样} while( u8g.nextPage() );delay(100);//显示的时间间隔。}
}`
说明:① 想显示什么数字就把i变成什么数字,那么显示时间是不是也是数字。② 字符cm可以显示了那么 :/是不是也是可以显示了。
以上部分就不在解释了,我怕挨出题人的打。
想继续了解oled其他玩法的同学,我送给大家两个网站,包含所有库函数:① 全英文最全:http://clz.me/u8glib/reference/ ② 全中文可能不咋全:https://geek-workshop.com/forum.php?mod=viewthread&tid=10634&page=1#pid71775
3、算法部分:
我要说明一点,根据《2、程序底层(使用到的知识)》,两个第一问已经做出来了,如果没做出来,先不要往下看了。
现在来解决两个第二问。
更改年月日时分秒是不是一回事啊,如果学会了修改任意一个就都会修改了啊。
下面我只写伪代码,自己转换成C语言去吧,我再多写点就出来了。
演示:修改月份为3:
~~~~ 只写两个 ~~~~
① 3个按键的算法:
上电—开始修改时间—>按下A按键–此时默认修改秒钟–>按下B按键–分钟被选中–>再按下B按键----时钟被选中–>再按下B按键----日被选中–>再按下B按键----月份被选中–>按下A按键–确定修改月份–>按下C按键–显示1–>再按下C按键–显示2–>-->再按下C按键–显示3–>按下A按键–确定月份改为3–>退出大循环,回到刚上电的程序。
② 8个按键的算法:
上电—按下月按键—>按下调按键–显示1–>再按下调按键–显示2–>再按下调按键–显示3–>按下确定按键—结束–>回到刚上电的状态
注意:
① 程序要有循环。(eg:在我调节月份的时候我不小心按多了一次,本来要3,却按多了一次变成4了,怎么办呢?对的,按到12的时候再循环回去变成1)
② 必须掌握语法:for、if(或switch)、break、continue等。
③时间一秒一秒的过去怎么做到的呢?延时即可,也可以自己调用定时器。但其实延时就是用的定时器计时的。
脱离现实直接写文章,如有错误之处还请指点批正!
2019 年天津科技大学电子设计竞赛:算法与策略-----B题相关推荐
- 桂电全国计算机设计大赛获奖名单,广西教育厅网:桂电学子在2019年全国大学生电子设计竞赛中再创佳绩...
来源:广西教育厅网 近日,2019年全国大学生电子设计竞赛结果公布,桂林电子科技大学学子获得全国一等奖8项(本科组6项.高职高专组2项).二等奖9项(本科组8项.高职高专组1项),在参赛的1109所院 ...
- 【电子设计大赛】2019 年全国大学生电子设计竞赛 仪器设备和主要元器件清单
文章目录 2019 年全国大学生电子设计竞赛 仪器设备和主要元器件清单 本科组 1.仪器设备清单 2. 主要元器件清单 高职高专组 1. 仪器设备清单 2. 主要元器件清单 2019 年全国大学生电子 ...
- 2019 年全国大学生电子设计竞赛 仪器设备和主要元器件清单√☺♥
@[TOC](2019 年全国大学生电子设计竞赛 仪器设备和主要元器件清单)√☺♥ [本科组] 1. 仪器设备清单 数字示波器(500MHz,双通道) 带 Z 轴输入端子的示波器(100MHz) 函数 ...
- 2019年全国大学生电子设计竞赛综合测评题解析
2019年全国大学生电子设计竞赛综合测评题解析 题目如下,设计制作电路产生下列四路信号: 1.频率为19kHz ~ 21kHz连续可调的方波脉冲信号,幅度不小于3.2V: 2.与方波同频率的正弦波信号 ...
- 2019年全国大学生电子设计竞赛获奖名单
2019年全国大学生电子设计竞赛获奖名单(初评).pdf下载地址:https://www.90pan.com/b1565658
- 我和电赛的成长故事与总结#2019年全国大学生电子设计竞赛#
依稀记得知晓<全国大学生电子设计竞赛>的名字是在大一新生营参观电控科协的时候.近两年的时光,从手持烙铁练焊接至今手持烙铁调电路,从C语言里转了个圈回到了零点,从单片机里转了半圈又回到零点, ...
- 2021年山东科技大学电子设计竞赛(A4题)——教室人员计数及灯控系统
目录 题目 摘要 1.系统方案 1.1. 蓝牙模块选择 1.2. 感光模块选择 1.3. 计数模块选择 1.4. 液晶显示模块选择 1.5. 数据存储模块选择 2.电路及程序设计 2.1 系统电路设计 ...
- 「权威发布」2019年全国大学生电子设计竞赛获奖名单【涵盖国一、二等奖】
点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 往期电赛文章合集 //end 大家好,我是张巧龙,一名电子技术爱好者,会写一些关 ...
- 2017年、2019年全国大学生电子设计竞赛综合测评——常用电路Multisim仿真——方波、三角波振荡电路
相关原创博客: 2017年综合测评仿真电路讲解: 题目和结果链接: 常用电路Multisim仿真--方波.三角波振荡电路: 常用电路Multisim仿真--有源低通滤波器设计: 常用电路Multisi ...
最新文章
- matlab图像处理命令(一)
- 计算机系本科毕业论文评阅评语,毕业论文评阅教师评语
- opencv学习笔记(六)---图像梯度
- 收集Cocos2d提供的字体
- java加按钮_如何从零开始对接第三方登录(Java版):QQ登录和微博登录
- Java实现回形数,只利用数组、循环和if-else语句
- c语言序列化后只有四位小数,《C编程.高级C》4.序列化
- 计算机课组会议讲话,备课组长会议讲话稿
- linux提升nvme性能,基于SPDK的NVMe SSD性能评估指南
- Wijmo 5 与Breeze 的组合,及与METRONIC 的集成
- Magnification API-Windows放大镜
- 如何创建SQL Server Management Studio 18(SSMS)扩展
- 如何通俗理解泊松分布?
- 友盟统计 H5 vue 隐藏友盟图标
- ubuntu: 安装 摄像头驱动
- uni-app H5中使用wx-open-launch-weapp打开微信小程序
- C语言写一个函数,可以逆序一个字符串的内容。
- openpose中文论文
- matlab中的电子器件,对电力电子器件控制设计进行硬件在环测试
- micropython里面外接tf(sd)卡读取模块
热门文章
- 配置GitHub二级域名,xxx.github.io
- linux debian_Debian Linux | 第1部分
- d3d12.dll丢失怎么修复-d3d12.dll修复工具下载
- 亢奋、焦虑、担忧,EOS拥趸者的无眠23小时
- 新手小白学java 编码转换流 OutputStreamWriter InputStreamReader
- daocloud(道客daocloud)
- 【Python】模拟radius coa报文
- 2014 年最热门的国人开发开源软件 TOP 100
- AngularJS 精妙绝伦的控制器
- java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function