shanan 发表于 2017-5-6 08:47

分享:4位数码管时钟带光控和温度_STC15W408AS

本帖最后由 shanan 于 2017-5-6 12:31 编辑


淘了一个数码管时钟散件,用来复习51 (STC15W408AS),重头开始写软件,代码量:3053行,25个文件,生成hex,一个用了7K(DS18B20),一个用了5K(热敏电阻)。分享给有需要的同学,按键扫描,状态机,数码管显示,DS18B20这些代码可以参考一下。
源文件如下列表:
    adc.c
    adc.h
    constdef.h
    const_var.c
    const_var.h
    ds1302.c
    ds1302.h
    ds18b20.c
    ds18b20.h
    extern_var.c
    extern_var.h
    init.c
    init.h
    interrupt_routine.c
    iodef.h
    main.c
    pca.c
    pca.h
    segmentdisplay.c
    segmentdisplay.h
    subrountine.c
    subrountine.h
    typedef.h
    uart.c
    uart.h

实现的功能有:
1. 开机首先显示编译日期,然后开始交替显示 时间(小时、分钟)和温度,数码管的亮度会适应环境光而变化,温度显示3位,编译可配置DS18B20精度,支持9,10,11,12位;
2. 短按上键,显示日期(月、日);
3. 短按下键,显示闹钟时间;
4. 长按上键,进入多功能选择界面,短按上键,轮流选择:秒表、倒计时、测光、测温、闹钟,短按下键进入功能;
5. 秒表:下键开始和暂停计时,计时最小单位是秒,十六进制显示,上键复位,长按上键退出功能,回到时钟;
6. 倒计时:下键开始和暂停计时,计时最小单位是秒,十进制显示,上键增加定时10秒,长按上键退出功能,回到时钟;
7. 测光:固定显示当前ADC采样值,长按上键退出功能,回到时钟;
8. 测温:固定显示当前温度,长按上键退出功能,回到时钟;
9. 闹钟:短按上键依次选择:设置小时,分钟,开关,退出;下键调值;
10. 设置时钟:上下键同时按下保持1秒,然后显示SET,松开;短按上键依次选择:设置年,月和日,小时和分钟,秒和星期,整点报时开关,退出;下键调值;
11. 扩展:代码支持热敏电阻和DS18B20,通过宏定义USE_18B20选择,使用DS18B20时,需要先修改硬件,修改如图,R11短路,Q6上安装DS18B20(正面朝外)并增加4.7K上拉电阻,短路D2:


原理图:


工程文件打包:




xumch 发表于 2017-5-6 23:14

感谢楼主。

abc痕迹 发表于 2020-8-23 23:55

不错

yifeidengdai 发表于 2020-8-24 09:02

谢谢

xinghe280 发表于 2020-8-24 17:52

感谢分享

ayb_ice 发表于 2020-8-25 14:01

这么巧了,我也买了这个套件,也自己改了程序,我的是语音报时的

cainiao518 发表于 2020-8-25 16:58

不错哦

vody 发表于 2020-9-17 07:58

xiexielouzhu

王王王先生 发表于 2021-4-3 11:46

ayb_ice 发表于 2020-8-25 14:01
这么巧了,我也买了这个套件,也自己改了程序,我的是语音报时的

可以上传参考下,方便的话,可以发邮箱1024695255@qq.com谢谢{:handshake:}

ljx468 发表于 2022-6-2 20:49

感谢分享
页: [1]
查看完整版本: 分享:4位数码管时钟带光控和温度_STC15W408AS