
51多功能计时器开发板
简介
89c52开发板,可检测温湿度、正计时、倒计时、日历,适合新手学习项目
简介:89c52开发板,可检测温湿度、正计时、倒计时、日历,适合新手学习项目开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
不包含单片机及最小系统!!!
不包含单片机及最小系统!!!
不包含单片机及最小系统!!!
正在画完整开发板
我接了最小系统板,电池盒和升压模块

单片机可随意替换
部分库函数来自B站江协科技
建议看他的51教程,非常详细
51单片机入门教程-2020版 程序全程纯手打 从零开始入门_哔哩哔哩_bilibili
本人初二学生,这是两年前的作品,现在开源领个卷
第一次做,好多封装画错了(现已改正),飞了好多线。
用的自动布线,可能有些小问题,不影响使用
原理图和PCB当时画的很难看,懒得改了
一、功能
【模式键】依次切换下列模式
1.温湿度检测
自动显示
2.正计时
【开始、暂停键】开始、暂停计时
【选择键】复位
3.时钟
年月日星期及时分秒交替显示,掉电保存
【开始、暂停键】进入、退出设置模式,待设置的日期闪烁
【加键】【减键】进行设置(程序中有越界检测,如秒只能设置为0~59),
【选择键】设置下一数据(如设置年时按下后设置月),顺序为年-月-日-时-分-秒-星期,默认为24小时制
4.倒计时
【选择键】开始设置,再按一次设置下一数据(如设置秒时按下后设置分),顺序为秒-分-时-零点几秒
【加键】【减键】进行设置(程序中有越界检测,如秒只能设置为0~59),
【开始、暂停键】开始、暂停计时
倒计时结束后全屏闪烁,蜂鸣器鸣叫,按下任意键(【模式】除外)关闭
二、程序
如果觉得蜂鸣器太吵,将main.c中的368、382、383、400、401行注释掉



引脚定义在.c文件中





三、烧录
附件中有源码和HEX文件,具体方法可以看B站江协科技的51视频
我用的STC-ISP:

USB转TTL:

四、部分代码及原理图
4.1代码简单讲解
对应模块代码已封装成对应库函数,在江科大的基础上修改,故在此不做说明,建议观看他的51视频
完整源码及hex文件在附件
使用KeyFlag作为模式标志位,main函数中利用switch语句进行不同功能的切换
注:1.写代码的时候踩过一个坑,DHT11的单总线通信为异步时序,对高低电平时间有严格控制,所以在获取温湿度时需暂停数码管扫描的定时器,这也是温湿度模式下数码管闪烁的原因。数码管闪烁并不是因为拍摄,事实上人眼也可见,目前还没有想到解决方法
2.貌似是计时函数中语句过多的原因,导致原本0.1秒的计时需要89毫秒就执行一次,目前也还没有想到解决方法
大部分重复性工作在定时器中断函数中进行,避免了在主函数中进行过多delay
中断函数:

4.2原理图简单讲解
由于51单片机gpio输出电流过小,不足以驱动数码管,所以加了一个三态门,这样就可以点亮数码管

数码管是0.36英寸共阳极
0.36英寸是为了让板子在10*10以内可以白嫖
蜂鸣器是无源蜂鸣器,同理采用三极管驱动

设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程

评论