五一劳动节过了,我又回来了,上次说到哪来了?说到我把例程都抄完了,流程图也清晰度画了出来,那么,对单片机的程序的总体结构和需要的器件都有个大致的了解,所以,这一博客(本期),将会有如下内容:
- 需要的功能
- 既然例程的流程图出来了,我自己需要做的电子钟的流程图也可以类比画出来
- 通过流程图解释介绍电子钟需要的相关功能与操作方法
最近两期思路
下期(4)预告:画出试验电路(不是成品电路)的原理图(顺便介绍成品电子钟概念外观结构),电路图,元件清单
下下期(5)预告:做出试验电路的电路板,组装
之后的大量:编写程序
正文开始:
需要的功能
- 时间方面,可以显示公历,农历,提示节日与节气
- 显示温度
- 可以设定3组闹钟,并且每组闹钟的开关与时间可以单独控制
- 可以储存最近一次保存的时间,闹钟等相关数据
- 电压表时刻监测电池电压,提示是否充电
- 屏幕背光可以单独控制亮灭及其亮度,做到节电的目的
- 使用一个感应按键在某些情况下方便操作
- 硬件方面:增加锂电池充电模块
- 增加程序下载调试接口
画出流程图
这个流程图一画出来,用了一个晚自习的时间酝酿,终于是有一个大致的结构了,没有画出来之前,脑袋中就只有上面那8条的概念,只知道应该挺复杂的,画出来之后,唉呀妈呀,绝对对于我来说是一个大工程了
流程图的解释
首先,开始运行程序
第一步:初始化各部分硬件
- 配置T0定时器,按键扫描(按键分为短按,长按连续加数,长按切换模式)和闹铃(滴滴,滴滴,滴滴)
- 配置T1定时器,背光的亮度是可以控制的,通过调节背光Led的占空比,节能,晚上又不晃眼
- 读取存储芯片中数据,包括时间和闹钟,倒计时
- 初始化时钟模块,设置芯片中上一次备份的时间
- 初始化液晶:配置好液晶引脚并清屏
- 初始化温度,启用温度转换确定温度传感器没有坏
- 等待2秒时间
- 到此时所有初始化差不多完成了,就只剩下电压表功能(数模转换芯片),想想可以省略掉了,因为电压可以直接读取出来(只要芯片没有坏),就不要初始化也行,坏了也没有办法啊
第一步结束
第二步:进入初始界面(显示各种必要信息)
- 显示时间和日期
- 刷新提示标识,若当天有节日或节气则有提示
- 刷新倒计时天数
- 刷新温度显示
- 刷新电源电压
- 刷新闹钟提示标识,若3闹钟有一个打开就有闹钟提示
第二步结束
晚自习结束,下次更新
这是一条富强民主文明和谐自由平等公正法制爱国敬业诚信友善的的分割线(2019.5.4)D10
第三步:进入(while)循环
- 检测是否有按键按下,若为否
- 检测是否为模式1(持续更新主页时间温度等信息),是的话继续
- 200ms刷新一次时间于电压,并判断一次闹钟时间是否到达
- 2s刷新一次温度(因为温度转换时间比较长)
- 3s刷新1次日期:为什么是3秒呢,因为有一个功能是农历日期与公历日期持续切换状态,间隔为3秒换一次
- 每一天结束的时候刷新日期(日期数据加一天),刷新倒计时(倒计时减一天)到此循环结束
主页状态就一直像上面的方式运行保持电子钟的时间走动
第四步:若检测到按键按下
注意此处内容是写程序的核心,程序的结构就是根据操作方式写出来的,所以看看下面的图片理解一下这个闹钟是如何操作的
在如下主页状态下
- 点按公农:切换另外一种日期格式显示3秒后恢复
- 长按公农:直接显示另外一种日期格式
- 点按调试:进入调时间界面
如图,时间需要设置公历日期,公历日期对应的农历日期
(突然发现没有年份,日后再补,需要年份,因为存在闰月关系)
(为什么公历农历都有设置呢不能自动对应吗,可以自动对应但是算法复杂,水平不够,所以用查表的方法每过一天日期自动加1并显示就行,在程序中公历和农历没有对应的关系)
光标自动移动起提示作用,上键点按加1,长按连加,按确认键光标移动到下一个位置,最后按下确认保存时间,更改模式,初始化主页,进入while循环 - 长按调时:进入倒计时(倒数日)设定界面
此处要用上公历与倒计时的对应关系,为了操作方便,可以设置目标日期与目标天数,比如设置目标日期时,会自动计算出天数并显示在右方,想想此处的程序应该会比较麻烦,慢慢来 - 点按闹钟:进入闹钟设置时间界面
设置方法与上面的方法相似,此界面只能设置闹钟时间,并不能设置闹钟开关 - 长按闹钟:进入闹钟开关界面
如果只是想查看闹钟时间,再次按下闹钟退出,或者说继续操作,上打开开关,回车下一个开关 - 此处还有一个开关是感应开关,不需要按下的那种,手靠近就能感应的到,由于控制背光与闹钟响铃时的静音
再提示一下:注意上面内容是写程序的核心,程序的结构就是根据操作方式写出来的,所以看看上面的图片理解一下这个闹钟是如何操作的
完。其他细节详见最上方流程图
这是一条富强民主文明和谐自由平等公正法制爱国敬业诚信友善的的分割线(2019.5.5)D11
感谢你能看到结尾
便捷目录(粗体为目前位置):
51单片机电子钟 是如何做成的(1)—写在前面
51单片机电子钟 是如何做成的(2)—分析例程结构
51单片机电子钟 是如何做成的(3)—电子钟总体结构与操作
51单片机电子钟 是如何做成的(4)—试验电路的 原理图 元件清单绘制
51单片机电子钟 是如何做成的(5)—试验电路 的电路板制作(热转印法)