2021——06温度计数器
-
前期验证准备工作
将ds1302,ds18b20添加进main.
分别在各自的.c文件中添加相对于的驱动函数
并将各自都文件加入主文件 -
按键S4的设定:
设备上电后,自动进入参数设置界面(图 1)此时,通过按键 S4 切换 4 个温度
采集间隔时间,分别为 1 秒、5 秒、30 秒和 60 秒;
按照图示界面修改数码管初始值,先显示1s,之后设置时间间隔,定义Timec=1默认1s,Timec改变时间间隔
数码管显示:
3.写S5按键功能
/第一部分/:显示数码管的功能
定义变量:Cai_start=0;//默认不进行采集,按下之后进行采集
在主函数中进行判断Cai的值进而显示数码管的值
将时间定义在主文件中调用(要求23:59:00):
extern unsigned char shijian[];
在循环前初始化时钟!在循环添加得到时间函数!
要求的闪烁功能:偶数秒与奇数秒 (%)
/第二部分/ 采集温度存储功能
通过定时器实现存储:开一个5ms定时器,老方法,声明定时器!!!初始化定时器!!! 定义tt(uint型!!!)
判断是否采集 == 1, 如果== 1,按照时间间隔(1s)进行采集
用数组存10个温度变量——定义Save[10],定义wendu(在主函数中读取温度,定义标志位Save_n=0,将温度存入数组之后,使Save_n++,再判断是否svaen==10,如果=10,则采集的时间Cai=0即不采集了 (取时间间隔的巧:将条件变成Timec×200(原200是1s的条件))
采集10个数据完成后,L1闪烁,数码管显示改变成所给的初始显示
/第三部分/ 温度依次显示,且LED闪烁
温度依次显示从0开始;
LED闪烁:
由于当Cai=0时,就跳出循环,故设置标志位LED_shan=1,判断LED== 1&&tt== 200,满足就使得L1闪烁
(定义标志位fla(闪烁常见))
开定时器暂且在s5打开