biubiu_name个人动态-biubiu_name动态记录-哔哩哔哩视频 (bilibili.com)
笔者写的所有代码都是向上面这个up主学习的,因为搜了这么多up主,就先找到这位up主使用的是sprintf函数这个比较新的笔者之前学习到的写法。
然后发这章帖子也不是为了教学,毕竟up主讲给你们听最好不过了,仅仅是记录一下完成第一个小项目的过程。
模板
模板第一步-定时器初始化
模板第二步-数码管显示测试
实验现象
完整显示我们输入的字符串内容
模板第三步-按键测试
实验现象
按键7按下可以使数字加加
模板第四步-审题
ds1302
实验现象
我们在测试过程顺便将初始值设定好
上电就是23时59分50秒,然后秒钟每秒加一,此时计时越界属性会由芯片解决
温度
实验现象
捏住红圈的地方,温度数值上升
写题
写题第一步-按键状态切换
笔者有几处默写错误(图片中是最后正确的结果),说一下:
1.为了区分闹钟设置和时钟设置,通常会在状态切换之前加上一个逻辑判断,而且这个条件确实好,就是按下S7时,Disp_Mode就会处于0x10,&0x0f依旧是0,而且保证了低四位不是0,即不是闹钟模式,就可以区分开;
2.这个else的作用很大,笔者现在才意识到,每次进入时只会进入一个if语句,不会接着执行后一句if语句;(最后面标志位的改变不是这一步的)
写题第二步-状态变化,数码管显示界面变化
每一个框都是一小步,一小步一小步来写
实验现象
此时就能实现时钟设置、闹钟设置、温度显示、按键加减功能了
写题第三步-Led闪烁
变量和标志位的定义你也可以现在写Proc函数时需要一个就定义一个
实验现象
较完整的实现题目的所有要求(每一个要求都得分点)
优化
up主的板子上电时温度会显示85度,但是笔者倒是没事,所以没写上,如果一直上电都是这样,为了不扣分,可以在主函数初始化的时候直接读取温度,然后延时个750ms,就可以去掉了。
源码
链接:https://pan.baidu.com/s/1rkB-EhfK85fwbmJzZUmfjA?pwd=1234
提取码:1234