• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

做了一个带定时器和PWM调光的时钟

本人菜鸟一枚,学习单片机有2年了,只是停留在玩的阶段,前一段时间做了一个时钟,试着往里加程序,增加了倒计时定时器,PWM调光,后来又给定时器增加了掉电记忆功能,也就是EEPROM应用,现在贴出来和初学者共同进步,并欢迎大神们拍砖!废话不说,传照片!

全部回复(31)
正序查看
倒序查看
2015-08-02 20:26

    主控芯片是STC12C5204AD,4位数码管动态扫描显示,因为STC芯片IO口有推挽输出,所以数码管直接接到了芯片上,省了4只三极管但是也有弊端,就是显示不均匀

    28脚芯片去掉VCC,GND ,晶振(STC芯片内置RC振荡器,本想省去晶振,但考虑定时器要精准一点,还是接了一只12M晶振)占2个IO口,4位数码管占12个IO,加上一个PWM输出,一个蜂鸣器(按键音和定时器回零提示),DS1302占3个IO,算了一下,21个IO ,还有富余,人机互动是4只按键,每只按键用了一个口,共用了25个IO。

    电路简单,所以没画原理图,直接做了99SE的PCB,没在电脑上,明天传

0
回复
2015-08-03 09:11
@流淌的歌声1104
    主控芯片是STC12C5204AD,4位数码管动态扫描显示,因为STC芯片IO口有推挽输出,所以数码管直接接到了芯片上,省了4只三极管[图片]但是也有弊端,就是显示不均匀[图片]  28脚芯片去掉VCC,GND,晶振(STC芯片内置RC振荡器,本想省去晶振,但考虑定时器要精准一点,还是接了一只12M晶振)占2个IO口,4位数码管占12个IO,加上一个PWM输出,一个蜂鸣器(按键音和定时器回零提示),DS1302占3个IO,算了一下,21个IO,还有富余,人机互动是4只按键,每只按键用了一个口,共用了25个IO。  电路简单,所以没画原理图,直接做了99SE的PCB,没在电脑上,明天传
占楼,坐等楼主继续上图
0
回复
guang卢
LV.7
4
2015-08-04 13:00
占位置听课,!!!
0
回复
2015-08-04 21:50
电脑坏了,更新晚了,让各位久等了,继续上图

0
回复
2015-08-05 10:13
已经被添加到社区经典图库喽
http://www.dianyuan.com/bbs/classic/
0
回复
Rachelmi
LV.9
7
2015-08-05 16:31
@电源网-fqd
占楼,坐等楼主继续上图[图片]
0
回复
Rachelmi
LV.9
8
2015-08-05 16:32
占个位置
0
回复
2015-08-05 19:43

昨天电脑坏了昨天晚上修好了,鼠标又坏了l老子说祸不单行,让他说着了。他还说过祸兮福所倚福兮祸所伏,祸来了,福也该来了吧?翘首企盼

扯远了,刚才弄了半天,99SE文件没传上去,大神们,管理员,告诉小菜怎么弄?

0
回复
Rachelmi
LV.9
10
2015-08-06 10:35
@流淌的歌声1104
昨天电脑坏了[图片]昨天晚上修好了,鼠标又坏了[图片]l老子说祸不单行,让他说着了。他还说过祸兮福所倚福兮祸所伏,祸来了,福也该来了吧?翘首企盼[图片]扯远了,刚才弄了半天,99SE文件没传上去,大神们,管理员,告诉小菜怎么弄?
好运马上就要到了,表遭急
0
回复
2015-08-06 21:13
@Rachelmi
好运马上就要到了,表遭急

谢谢旅长吉言,把程序传上去

可调红灯定时器.rar

KEILUV3 C文件

0
回复
2015-08-06 21:25
@流淌的歌声1104
谢谢旅长吉言,把程序传上去可调红灯定时器.rarKEILUV3C文件

99SE格式PCB,刚开始学,画的很乱

Backup of Copy of 时钟.zip

0
回复
2015-08-06 21:45
@流淌的歌声1104
99SE格式PCB,刚开始学,画的很乱BackupofCopyof时钟.zip
头文件和引脚定义

从左到右一次是K1,K2,K3,K4,K1是时钟/定时转换键,在时钟模式K2、K3是是时钟调节键,K4是确认键。如果K2没按下,K3、K4是调光键,同样在定时模式,K2、K3是是时钟调节键,K4是确认键。

0
回复
guang卢
LV.7
14
2015-08-07 08:13
@流淌的歌声1104
头文件和引脚定义[图片]从左到右一次是K1,K2,K3,K4,K1是时钟/定时转换键,在时钟模式K2、K3是是时钟调节键,K4是确认键。如果K2没按下,K3、K4是调光键,同样在定时模式,K2、K3是是时钟调节键,K4是确认键。
小电路,大程序啊,不错不错,实现功能上个图!
0
回复
Rachelmi
LV.9
15
2015-08-07 13:29
@流淌的歌声1104
头文件和引脚定义[图片]从左到右一次是K1,K2,K3,K4,K1是时钟/定时转换键,在时钟模式K2、K3是是时钟调节键,K4是确认键。如果K2没按下,K3、K4是调光键,同样在定时模式,K2、K3是是时钟调节键,K4是确认键。
点个赞!
0
回复
2015-08-07 20:04
@流淌的歌声1104
头文件和引脚定义[图片]从左到右一次是K1,K2,K3,K4,K1是时钟/定时转换键,在时钟模式K2、K3是是时钟调节键,K4是确认键。如果K2没按下,K3、K4是调光键,同样在定时模式,K2、K3是是时钟调节键,K4是确认键。
延时程序,只有像我这样的小菜还在用这个,由于延时程序被调用时时钟或定时器在停止状态,所以不会出现什么影响。听高手说有调用数码管扫描函数作为延时的,我没弄明白怎么用,有会用的高手请指点一下下

下面是数码管扫描函数。如果用DS1302提供的秒来驱动秒点闪的话,秒点就会亮一秒,暗一秒,有慢半拍的感觉,所以从数码管扫描函数里计算出半秒时间来对半秒标志取反,然后检测半秒标志控制秒点闪烁,但是又出现了新问题,秒点会一直闪,只好给他设置了栏杆,只有在时钟或定时运行状态下它才可以闪,其他状态下关闭,一直闪的问题解决了,还有一个小问题就是在定时状态下秒点闪烁和走秒不同步,有时看着有点别扭,请高手指点一下怎样解决

0
回复
2015-08-07 20:27
@流淌的歌声1104
延时程序,只有像我这样的小菜还在用这个[图片],由于延时程序被调用时时钟或定时器在停止状态,所以不会出现什么影响。听高手说有调用数码管扫描函数作为延时的,我没弄明白怎么用,有会用的高手请指点一下下[图片]下面是数码管扫描函数。如果用DS1302提供的秒来驱动秒点闪的话,秒点就会亮一秒,暗一秒,有慢半拍的感觉,所以从数码管扫描函数里计算出半秒时间来对半秒标志取反,然后检测半秒标志控制秒点闪烁,但是又出现了新问题,秒点会一直闪,只好给他设置了栏杆,只有在时钟或定时运行状态下它才可以闪,其他状态下关闭,一直闪的问题解决了,还有一个小问题就是在定时状态下秒点闪烁和走秒不同步,有时看着有点别扭,请高手指点一下怎样解决[图片][图片]
怎么没人关注?伤心!
0
回复
Rachelmi
LV.9
18
2015-08-10 10:29
@流淌的歌声1104
延时程序,只有像我这样的小菜还在用这个[图片],由于延时程序被调用时时钟或定时器在停止状态,所以不会出现什么影响。听高手说有调用数码管扫描函数作为延时的,我没弄明白怎么用,有会用的高手请指点一下下[图片]下面是数码管扫描函数。如果用DS1302提供的秒来驱动秒点闪的话,秒点就会亮一秒,暗一秒,有慢半拍的感觉,所以从数码管扫描函数里计算出半秒时间来对半秒标志取反,然后检测半秒标志控制秒点闪烁,但是又出现了新问题,秒点会一直闪,只好给他设置了栏杆,只有在时钟或定时运行状态下它才可以闪,其他状态下关闭,一直闪的问题解决了,还有一个小问题就是在定时状态下秒点闪烁和走秒不同步,有时看着有点别扭,请高手指点一下怎样解决[图片][图片]
帮顶起~~!
0
回复
2015-08-19 21:27
@Rachelmi
帮顶起~~!

谢谢师长!这一段时间忙了点,没有更新,对不起大家啦。不管帖子沉到哪里,我也要把该做的事做完!下面说一下这个时钟的功能

1、实时时钟,不怕掉电

2、倒计时定时器功能,最长60分钟,倒计时归零后报警提醒。初次上电显示E5E5,设定一次后掉电记忆

3、PWM调光功能,PWM1输出三极管驱动,可直接驱动LED

4、4只按键实现全部功能

4只按键功能:

    从左到右按键1,时钟、定时切换,上电显示时钟,按一下按键1切换到定时,再按返回到时钟

    按键2,时钟界面时,按一次始终停止,再按小时加1,到59再从1加。按按键3,分钟加1加到59再回到1继续加1.按按键4退出,时钟按     调整后时间运行。

    定时界面时,按按键2定时进入调整界面,按按键2分钟加1,到59后回到1继续加1.按按键3秒加1,倒59回到1再加1按按键4定时开始       计时,所调整定时时间记忆到单片机EEPROM中,每次调整都会更新到最后一次所调试间。定时运行时,按按键4定时停止,再按一次       返回到定时时间,再按又开始倒计时

    时钟界面时,按键3调光亮度加,按键4亮度减小。定时界面时亮度不可调

    

0
回复
Rachelmi
LV.9
20
2015-08-20 11:27
@流淌的歌声1104
谢谢师长!这一段时间忙了点,没有更新,对不起大家啦。不管帖子沉到哪里,我也要把该做的事做完!下面说一下这个时钟的功能1、实时时钟,不怕掉电2、倒计时定时器功能,最长60分钟,倒计时归零后报警提醒。初次上电显示E5E5,设定一次后掉电记忆3、PWM调光功能,PWM1输出三极管驱动,可直接驱动LED4、4只按键实现全部功能4只按键功能:  从左到右按键1,时钟、定时切换,上电显示时钟,按一下按键1切换到定时,再按返回到时钟  按键2,时钟界面时,按一次始终停止,再按小时加1,到59再从1加。按按键3,分钟加1加到59再回到1继续加1.按按键4退出,时钟按  调整后时间运行。  定时界面时,按按键2定时进入调整界面,按按键2分钟加1,到59后回到1继续加1.按按键3秒加1,倒59回到1再加1按按键4定时开始   计时,所调整定时时间记忆到单片机EEPROM中,每次调整都会更新到最后一次所调试间。定时运行时,按按键4定时停止,再按一次   返回到定时时间,再按又开始倒计时  时钟界面时,按键3调光亮度加,按键4亮度减小。定时界面时亮度不可调    
很全面
0
回复
jag6510
LV.3
21
2015-08-21 15:18
@Rachelmi
很全面[图片]
顶 顶 顶 顶 顶
0
回复
Rachelmi
LV.9
22
2015-08-24 11:12
@jag6510
顶 顶 顶 顶 顶
加油!
0
回复
2015-08-27 21:29
@Rachelmi
加油!

谢谢师长帮顶,由您等前辈地帮扶,我等小菜鸟才能成长起来,感激不尽

上面是DS1302初始化函数,因为有备用电池,所以无须每次开机都初始化,看到有前辈用往DS1302的RAM中写入数据,上电时读出数据与写入数据相同,则说明DS1302正在运行,不初始化。可是我怎样实验都没成功,只好另寻他法。后又看到别的前辈用检测DS1302秒寄存器是否为1来判断DS1302是否运行,以此决定是否初始化,结果我用也没成功,我开始怀疑是否我的人品有问题无奈之下只好加了下面的else,每次上电都将秒写成30,因此时钟每次上电都会出现误差。请前辈指点一下,小菜感激不尽,定当加倍努力

0
回复
2015-08-27 21:44
@流淌的歌声1104
谢谢师长帮顶,由您等前辈地帮扶,我等小菜鸟才能成长起来,感激不尽[图片][图片]上面是DS1302初始化函数,因为有备用电池,所以无须每次开机都初始化,看到有前辈用往DS1302的RAM中写入数据,上电时读出数据与写入数据相同,则说明DS1302正在运行,不初始化。可是我怎样实验都没成功,只好另寻他法。后又看到别的前辈用检测DS1302秒寄存器是否为1来判断DS1302是否运行,以此决定是否初始化,结果我用也没成功,我开始怀疑是否我的人品有问题[图片]无奈之下只好加了下面的else,每次上电都将秒写成30,因此时钟每次上电都会出现误差。请前辈指点一下,小菜感激不尽,定当加倍努力[图片][图片]

突然想到数码管扫描既然能产生半秒定时,能否拿来做延时?就是设置一个变量,每扫描完数码管一次自加一次,自加次数有延时时间决定,不知是否可行?

0
回复
jag6510
LV.3
25
2015-08-30 08:19
@流淌的歌声1104
[图片]突然想到数码管扫描既然能产生半秒定时,能否拿来做延时?就是设置一个变量,每扫描完数码管一次自加一次,自加次数有延时时间决定,不知是否可行?
顶顶顶
0
回复
2015-08-30 20:59
@jag6510
顶顶顶

花了一个晚上做的电路图

Backup of Sheet1.~(1).Sch.Zip

刚刚学会用99SE,不对的地方请指正

0
回复
Rachelmi
LV.9
27
2015-08-31 11:01
@流淌的歌声1104
花了一个晚上做的电路图BackupofSheet1.~(1).Sch.Zip刚刚学会用99SE,不对的地方请指正
不错呀
0
回复
hnqylgq
LV.4
28
2015-08-31 19:20
不错,非常棒!我是来学习的,谢谢你的分享!
0
回复
Rachelmi
LV.9
29
2015-09-01 10:00
@hnqylgq
不错,非常棒!我是来学习的,谢谢你的分享!
0
回复
45280
LV.4
30
2015-09-21 01:51
@Rachelmi
[图片]

做时钟从来没用过1302…… 

0
回复
林浩7856
LV.5
31
2015-09-21 10:48
@流淌的歌声1104
昨天电脑坏了[图片]昨天晚上修好了,鼠标又坏了[图片]l老子说祸不单行,让他说着了。他还说过祸兮福所倚福兮祸所伏,祸来了,福也该来了吧?翘首企盼[图片]扯远了,刚才弄了半天,99SE文件没传上去,大神们,管理员,告诉小菜怎么弄?
哈哈  倒霉么
0
回复